git.iko.soy/rowtype-yoga/psfp
on master help sign in
Huge JSS change
commite418926976f0e0aa1d95a634999adb3e6e389bec authorMark Eibes <mark.eibes@gmail.com> dateMon 16 Mar 2020, 16:11 (7 years ago) parent34d0921
46 files changed+2266−1320
components/package-lock.json+962−679 components/package.json+3−2 components/spago.dhall+2 components/src/React/Basic/Helpers.purs+22 components/src/Storybook/Decorator/FullScreen.purs+29−23 components/src/Storybook/React.purs+1−3 components/src/Yoga/Box/Component.purs+36 components/src/Yoga/Box/Spec.purs+25 components/src/Yoga/Box/Stories.purs+25 components/src/Yoga/Box/Styles.purs+25 components/src/Yoga/Button/Component.purs+117−111 components/src/Yoga/Card/Component.purs+66−65 components/src/Yoga/Card/Stories.purs+9−10 components/src/Yoga/Panel/Component.purs → components/src/Yoga/Center/Component.purs+10−10 components/src/Yoga/Center/Spec.purs+14 components/src/Yoga/Panel/Stories.purs → components/src/Yoga/Center/Stories.purs+9−11 components/src/Yoga/Center/Styles.purs+21 components/src/Yoga/CompileEditor/Component.purs+40−41 components/src/Yoga/Cover/Component.purs+52 components/src/Yoga/Panel/Spec.purs → components/src/Yoga/Cover/Spec.purs+5−5 components/src/Yoga/Cover/Stories.purs+30 components/src/Yoga/Cover/Styles.purs+43 components/src/Yoga/Font.purs+5−11 components/src/Yoga/Header/Component.purs+30−31 components/src/Yoga/Header/Stories.purs+1 components/src/Yoga/JSS.purs+112 components/src/Yoga/Monaco/Editor.purs+16−14 components/src/Yoga/Panel/Styles.purs−28 components/src/Yoga/SVG/Icon.purs+23−23 components/src/Yoga/SVG/Image.purs+105−113 components/src/Yoga/Stack/Component.purs+37 components/src/Yoga/Stack/Spec.purs+25 components/src/Yoga/Stack/Stories.purs+42 components/src/Yoga/Stack/Styles.purs+51 components/src/Yoga/Theme/CSSBaseline.purs+48−38 components/src/Yoga/Theme/Default.purs+2 components/src/Yoga/Theme/Provider.js+2−2 components/src/Yoga/Theme/Styles.js+4−5 components/src/Yoga/Theme/Styles.purs+22−36 components/src/Yoga/Theme/Types.purs+10−3 components/src/Yoga/Typography/Header.purs+45−44 components/src/Yoga/Typography/Paragraph.purs+13−12 components/src/Yoga/WithSidebar/Component.purs+51 components/src/Yoga/WithSidebar/Spec.purs+20 components/src/Yoga/WithSidebar/Stories.purs+29 components/src/Yoga/WithSidebar/Styles.purs+27
components/package-lock.json+962−679
@@ -14,9 +14,9 @@
1414 }
1515 },
1616 "@babel/compat-data": {
17− "version": "7.8.5",
18− "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz",
19− "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==",
17+ "version": "7.8.6",
18+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.6.tgz",
19+ "integrity": "sha512-CurCIKPTkS25Mb8mz267vU95vy+TyUpnctEX2lV33xWNmHAfjruztgiPBbXZRh3xZZy1CYvGx6XfxyTVS+sk7Q==",
2020 "dev": true,
2121 "requires": {
2222 "browserslist": "^4.8.5",
@@ -25,18 +25,18 @@
2525 }
2626 },
2727 "@babel/core": {
28− "version": "7.8.4",
29− "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz",
30− "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==",
28+ "version": "7.8.7",
29+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz",
30+ "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==",
3131 "dev": true,
3232 "requires": {
3333 "@babel/code-frame": "^7.8.3",
34− "@babel/generator": "^7.8.4",
34+ "@babel/generator": "^7.8.7",
3535 "@babel/helpers": "^7.8.4",
36− "@babel/parser": "^7.8.4",
37− "@babel/template": "^7.8.3",
38− "@babel/traverse": "^7.8.4",
39− "@babel/types": "^7.8.3",
36+ "@babel/parser": "^7.8.7",
37+ "@babel/template": "^7.8.6",
38+ "@babel/traverse": "^7.8.6",
39+ "@babel/types": "^7.8.7",
4040 "convert-source-map": "^1.7.0",
4141 "debug": "^4.1.0",
4242 "gensync": "^1.0.0-beta.1",
@@ -48,12 +48,12 @@
4848 }
4949 },
5050 "@babel/generator": {
51− "version": "7.8.4",
52− "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz",
53− "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==",
51+ "version": "7.8.8",
52+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz",
53+ "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==",
5454 "dev": true,
5555 "requires": {
56− "@babel/types": "^7.8.3",
56+ "@babel/types": "^7.8.7",
5757 "jsesc": "^2.5.1",
5858 "lodash": "^4.17.13",
5959 "source-map": "^0.5.0"
@@ -89,51 +89,52 @@
8989 }
9090 },
9191 "@babel/helper-call-delegate": {
92− "version": "7.8.3",
93− "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz",
94− "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==",
92+ "version": "7.8.7",
93+ "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz",
94+ "integrity": "sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ==",
9595 "dev": true,
9696 "requires": {
9797 "@babel/helper-hoist-variables": "^7.8.3",
9898 "@babel/traverse": "^7.8.3",
99− "@babel/types": "^7.8.3"
99+ "@babel/types": "^7.8.7"
100100 }
101101 },
102102 "@babel/helper-compilation-targets": {
103− "version": "7.8.4",
104− "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz",
105− "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==",
103+ "version": "7.8.7",
104+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz",
105+ "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==",
106106 "dev": true,
107107 "requires": {
108− "@babel/compat-data": "^7.8.4",
109− "browserslist": "^4.8.5",
108+ "@babel/compat-data": "^7.8.6",
109+ "browserslist": "^4.9.1",
110110 "invariant": "^2.2.4",
111111 "levenary": "^1.1.1",
112112 "semver": "^5.5.0"
113113 }
114114 },
115115 "@babel/helper-create-class-features-plugin": {
116− "version": "7.8.3",
117− "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz",
118− "integrity": "sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA==",
116+ "version": "7.8.6",
117+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz",
118+ "integrity": "sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg==",
119119 "dev": true,
120120 "requires": {
121121 "@babel/helper-function-name": "^7.8.3",
122122 "@babel/helper-member-expression-to-functions": "^7.8.3",
123123 "@babel/helper-optimise-call-expression": "^7.8.3",
124124 "@babel/helper-plugin-utils": "^7.8.3",
125− "@babel/helper-replace-supers": "^7.8.3",
125+ "@babel/helper-replace-supers": "^7.8.6",
126126 "@babel/helper-split-export-declaration": "^7.8.3"
127127 }
128128 },
129129 "@babel/helper-create-regexp-features-plugin": {
130− "version": "7.8.3",
131− "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz",
132− "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==",
130+ "version": "7.8.8",
131+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz",
132+ "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==",
133133 "dev": true,
134134 "requires": {
135+ "@babel/helper-annotate-as-pure": "^7.8.3",
135136 "@babel/helper-regex": "^7.8.3",
136− "regexpu-core": "^4.6.0"
137+ "regexpu-core": "^4.7.0"
137138 }
138139 },
139140 "@babel/helper-define-map": {
@@ -205,16 +206,17 @@
205206 }
206207 },
207208 "@babel/helper-module-transforms": {
208− "version": "7.8.3",
209− "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz",
210− "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==",
209+ "version": "7.8.6",
210+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz",
211+ "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==",
211212 "dev": true,
212213 "requires": {
213214 "@babel/helper-module-imports": "^7.8.3",
215+ "@babel/helper-replace-supers": "^7.8.6",
214216 "@babel/helper-simple-access": "^7.8.3",
215217 "@babel/helper-split-export-declaration": "^7.8.3",
216− "@babel/template": "^7.8.3",
217− "@babel/types": "^7.8.3",
218+ "@babel/template": "^7.8.6",
219+ "@babel/types": "^7.8.6",
218220 "lodash": "^4.17.13"
219221 }
220222 },
@@ -256,15 +258,15 @@
256258 }
257259 },
258260 "@babel/helper-replace-supers": {
259− "version": "7.8.3",
260− "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz",
261− "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==",
261+ "version": "7.8.6",
262+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz",
263+ "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==",
262264 "dev": true,
263265 "requires": {
264266 "@babel/helper-member-expression-to-functions": "^7.8.3",
265267 "@babel/helper-optimise-call-expression": "^7.8.3",
266− "@babel/traverse": "^7.8.3",
267− "@babel/types": "^7.8.3"
268+ "@babel/traverse": "^7.8.6",
269+ "@babel/types": "^7.8.6"
268270 }
269271 },
270272 "@babel/helper-simple-access": {
@@ -321,9 +323,9 @@
321323 }
322324 },
323325 "@babel/parser": {
324− "version": "7.8.4",
325− "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz",
326− "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==",
326+ "version": "7.8.8",
327+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
328+ "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
327329 "dev": true
328330 },
329331 "@babel/plugin-proposal-async-generator-functions": {
@@ -408,12 +410,12 @@
408410 }
409411 },
410412 "@babel/plugin-proposal-unicode-property-regex": {
411− "version": "7.8.3",
412− "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz",
413− "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==",
413+ "version": "7.8.8",
414+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz",
415+ "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==",
414416 "dev": true,
415417 "requires": {
416− "@babel/helper-create-regexp-features-plugin": "^7.8.3",
418+ "@babel/helper-create-regexp-features-plugin": "^7.8.8",
417419 "@babel/helper-plugin-utils": "^7.8.3"
418420 }
419421 },
@@ -547,9 +549,9 @@
547549 }
548550 },
549551 "@babel/plugin-transform-classes": {
550− "version": "7.8.3",
551− "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz",
552− "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==",
552+ "version": "7.8.6",
553+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz",
554+ "integrity": "sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg==",
553555 "dev": true,
554556 "requires": {
555557 "@babel/helper-annotate-as-pure": "^7.8.3",
@@ -557,7 +559,7 @@
557559 "@babel/helper-function-name": "^7.8.3",
558560 "@babel/helper-optimise-call-expression": "^7.8.3",
559561 "@babel/helper-plugin-utils": "^7.8.3",
560− "@babel/helper-replace-supers": "^7.8.3",
562+ "@babel/helper-replace-supers": "^7.8.6",
561563 "@babel/helper-split-export-declaration": "^7.8.3",
562564 "globals": "^11.1.0"
563565 }
@@ -572,9 +574,9 @@
572574 }
573575 },
574576 "@babel/plugin-transform-destructuring": {
575− "version": "7.8.3",
576− "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz",
577− "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==",
577+ "version": "7.8.8",
578+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz",
579+ "integrity": "sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ==",
578580 "dev": true,
579581 "requires": {
580582 "@babel/helper-plugin-utils": "^7.8.3"
@@ -620,9 +622,9 @@
620622 }
621623 },
622624 "@babel/plugin-transform-for-of": {
623− "version": "7.8.4",
624− "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz",
625− "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==",
625+ "version": "7.8.6",
626+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz",
627+ "integrity": "sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw==",
626628 "dev": true,
627629 "requires": {
628630 "@babel/helper-plugin-utils": "^7.8.3"
@@ -730,12 +732,12 @@
730732 }
731733 },
732734 "@babel/plugin-transform-parameters": {
733− "version": "7.8.4",
734− "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz",
735− "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==",
735+ "version": "7.8.8",
736+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.8.tgz",
737+ "integrity": "sha512-hC4Ld/Ulpf1psQciWWwdnUspQoQco2bMzSrwU6TmzRlvoYQe4rQFy9vnCZDTlVeCQj0JPfL+1RX0V8hCJvkgBA==",
736738 "dev": true,
737739 "requires": {
738− "@babel/helper-call-delegate": "^7.8.3",
740+ "@babel/helper-call-delegate": "^7.8.7",
739741 "@babel/helper-get-function-arity": "^7.8.3",
740742 "@babel/helper-plugin-utils": "^7.8.3"
741743 }
@@ -800,12 +802,12 @@
800802 }
801803 },
802804 "@babel/plugin-transform-regenerator": {
803− "version": "7.8.3",
804− "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz",
805− "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==",
805+ "version": "7.8.7",
806+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz",
807+ "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==",
806808 "dev": true,
807809 "requires": {
808− "regenerator-transform": "^0.14.0"
810+ "regenerator-transform": "^0.14.2"
809811 }
810812 },
811813 "@babel/plugin-transform-reserved-words": {
@@ -875,13 +877,13 @@
875877 }
876878 },
877879 "@babel/preset-env": {
878− "version": "7.8.4",
879− "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz",
880− "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==",
880+ "version": "7.8.7",
881+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz",
882+ "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==",
881883 "dev": true,
882884 "requires": {
883− "@babel/compat-data": "^7.8.4",
884− "@babel/helper-compilation-targets": "^7.8.4",
885+ "@babel/compat-data": "^7.8.6",
886+ "@babel/helper-compilation-targets": "^7.8.7",
885887 "@babel/helper-module-imports": "^7.8.3",
886888 "@babel/helper-plugin-utils": "^7.8.3",
887889 "@babel/plugin-proposal-async-generator-functions": "^7.8.3",
@@ -904,13 +906,13 @@
904906 "@babel/plugin-transform-async-to-generator": "^7.8.3",
905907 "@babel/plugin-transform-block-scoped-functions": "^7.8.3",
906908 "@babel/plugin-transform-block-scoping": "^7.8.3",
907− "@babel/plugin-transform-classes": "^7.8.3",
909+ "@babel/plugin-transform-classes": "^7.8.6",
908910 "@babel/plugin-transform-computed-properties": "^7.8.3",
909911 "@babel/plugin-transform-destructuring": "^7.8.3",
910912 "@babel/plugin-transform-dotall-regex": "^7.8.3",
911913 "@babel/plugin-transform-duplicate-keys": "^7.8.3",
912914 "@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",
914916 "@babel/plugin-transform-function-name": "^7.8.3",
915917 "@babel/plugin-transform-literals": "^7.8.3",
916918 "@babel/plugin-transform-member-expression-literals": "^7.8.3",
@@ -921,9 +923,9 @@
921923 "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3",
922924 "@babel/plugin-transform-new-target": "^7.8.3",
923925 "@babel/plugin-transform-object-super": "^7.8.3",
924− "@babel/plugin-transform-parameters": "^7.8.4",
926+ "@babel/plugin-transform-parameters": "^7.8.7",
925927 "@babel/plugin-transform-property-literals": "^7.8.3",
926− "@babel/plugin-transform-regenerator": "^7.8.3",
928+ "@babel/plugin-transform-regenerator": "^7.8.7",
927929 "@babel/plugin-transform-reserved-words": "^7.8.3",
928930 "@babel/plugin-transform-shorthand-properties": "^7.8.3",
929931 "@babel/plugin-transform-spread": "^7.8.3",
@@ -931,7 +933,7 @@
931933 "@babel/plugin-transform-template-literals": "^7.8.3",
932934 "@babel/plugin-transform-typeof-symbol": "^7.8.4",
933935 "@babel/plugin-transform-unicode-regex": "^7.8.3",
934− "@babel/types": "^7.8.3",
936+ "@babel/types": "^7.8.7",
935937 "browserslist": "^4.8.5",
936938 "core-js-compat": "^3.6.2",
937939 "invariant": "^2.2.2",
@@ -963,46 +965,55 @@
963965 }
964966 },
965967 "@babel/runtime": {
966− "version": "7.8.4",
967− "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz",
968− "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==",
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",
977+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.8.7.tgz",
978+ "integrity": "sha512-sc7A+H4I8kTd7S61dgB9RomXu/C+F4IrRr4Ytze4dnfx7AXEpCrejSNpjx7vq6y/Bak9S6Kbk65a/WgMLtg43Q==",
969979 "dev": true,
970980 "requires": {
971− "regenerator-runtime": "^0.13.2"
981+ "core-js-pure": "^3.0.0",
982+ "regenerator-runtime": "^0.13.4"
972983 }
973984 },
974985 "@babel/template": {
975− "version": "7.8.3",
976− "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz",
977− "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==",
986+ "version": "7.8.6",
987+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
988+ "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
978989 "dev": true,
979990 "requires": {
980991 "@babel/code-frame": "^7.8.3",
981− "@babel/parser": "^7.8.3",
982− "@babel/types": "^7.8.3"
992+ "@babel/parser": "^7.8.6",
993+ "@babel/types": "^7.8.6"
983994 }
984995 },
985996 "@babel/traverse": {
986− "version": "7.8.4",
987− "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz",
988− "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==",
997+ "version": "7.8.6",
998+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz",
999+ "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==",
9891000 "dev": true,
9901001 "requires": {
9911002 "@babel/code-frame": "^7.8.3",
992− "@babel/generator": "^7.8.4",
1003+ "@babel/generator": "^7.8.6",
9931004 "@babel/helper-function-name": "^7.8.3",
9941005 "@babel/helper-split-export-declaration": "^7.8.3",
995− "@babel/parser": "^7.8.4",
996− "@babel/types": "^7.8.3",
1006+ "@babel/parser": "^7.8.6",
1007+ "@babel/types": "^7.8.6",
9971008 "debug": "^4.1.0",
9981009 "globals": "^11.1.0",
9991010 "lodash": "^4.17.13"
10001011 }
10011012 },
10021013 "@babel/types": {
1003− "version": "7.8.3",
1004− "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
1005− "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
1014+ "version": "7.8.7",
1015+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
1016+ "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
10061017 "dev": true,
10071018 "requires": {
10081019 "esutils": "^2.0.2",
@@ -1011,9 +1022,9 @@
10111022 }
10121023 },
10131024 "@emotion/cache": {
1014− "version": "10.0.27",
1015− "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.27.tgz",
1016− "integrity": "sha512-Zp8BEpbMunFsTcqAK4D7YTm3MvCp1SekflSLJH8lze2fCcSZ/yMkXHo8kb3t1/1Tdd3hAqf3Fb7z9VZ+FMiC9w==",
1025+ "version": "10.0.29",
1026+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz",
1027+ "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==",
10171028 "dev": true,
10181029 "requires": {
10191030 "@emotion/sheet": "0.9.4",
@@ -1023,9 +1034,9 @@
10231034 }
10241035 },
10251036 "@emotion/core": {
1026− "version": "10.0.27",
1027− "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.27.tgz",
1028− "integrity": "sha512-XbD5R36pVbohQMnKfajHv43g8EbN4NHdF6Zh9zg/C0nr0jqwOw3gYnC07Xj3yG43OYSRyrGsoQ5qPwc8ycvLZw==",
1037+ "version": "10.0.28",
1038+ "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.28.tgz",
1039+ "integrity": "sha512-pH8UueKYO5jgg0Iq+AmCLxBsvuGtvlmiDCOuv8fGNYn3cowFpLN98L8zO56U0H1PjDIyAlXymgL3Wu7u7v6hbA==",
10291040 "dev": true,
10301041 "requires": {
10311042 "@babel/runtime": "^7.5.5",
@@ -1048,37 +1059,43 @@
10481059 }
10491060 },
10501061 "@emotion/hash": {
1051− "version": "0.7.4",
1052− "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.4.tgz",
1053− "integrity": "sha512-fxfMSBMX3tlIbKUdtGKxqB1fyrH6gVrX39Gsv3y8lRYKUqlgDt3UMqQyGnR1bQMa2B8aGnhLZokZgg8vT0Le+A==",
1062+ "version": "0.8.0",
1063+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
1064+ "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==",
10541065 "dev": true
10551066 },
10561067 "@emotion/is-prop-valid": {
1057− "version": "0.8.6",
1058− "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.6.tgz",
1059− "integrity": "sha512-mnZMho3Sq8BfzkYYRVc8ilQTnc8U02Ytp6J1AwM6taQStZ3AhsEJBX2LzhA/LJirNCwM2VtHL3VFIZ+sNJUgUQ==",
1060− "dev": true,
1068+ "version": "0.7.3",
1069+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.7.3.tgz",
1070+ "integrity": "sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA==",
10611071 "requires": {
1062− "@emotion/memoize": "0.7.4"
1072+ "@emotion/memoize": "0.7.1"
10631073 }
10641074 },
10651075 "@emotion/memoize": {
1066− "version": "0.7.4",
1067− "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
1068− "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
1069− "dev": true
1076+ "version": "0.7.1",
1077+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.1.tgz",
1078+ "integrity": "sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg=="
10701079 },
10711080 "@emotion/serialize": {
1072− "version": "0.11.15",
1073− "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.15.tgz",
1074− "integrity": "sha512-YE+qnrmGwyR+XB5j7Bi+0GT1JWsdcjM/d4POu+TXkcnrRs4RFCCsi3d/Ebf+wSStHqAlTT2+dfd+b9N9EO2KBg==",
1081+ "version": "0.11.16",
1082+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz",
1083+ "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==",
10751084 "dev": true,
10761085 "requires": {
1077− "@emotion/hash": "0.7.4",
1086+ "@emotion/hash": "0.8.0",
10781087 "@emotion/memoize": "0.7.4",
10791088 "@emotion/unitless": "0.7.5",
10801089 "@emotion/utils": "0.11.3",
10811090 "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+ }
10821099 }
10831100 },
10841101 "@emotion/sheet": {
@@ -1098,15 +1115,32 @@
10981115 }
10991116 },
11001117 "@emotion/styled-base": {
1101− "version": "10.0.27",
1102− "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.27.tgz",
1103− "integrity": "sha512-ufHM/HhE3nr309hJG9jxuFt71r6aHn7p+bwXduFxcwPFEfBIqvmZUMtZ9YxIsY61PVwK3bp4G1XhaCzy9smVvw==",
1118+ "version": "10.0.31",
1119+ "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.31.tgz",
1120+ "integrity": "sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ==",
11041121 "dev": true,
11051122 "requires": {
11061123 "@babel/runtime": "^7.5.5",
1107− "@emotion/is-prop-valid": "0.8.6",
1124+ "@emotion/is-prop-valid": "0.8.8",
11081125 "@emotion/serialize": "^0.11.15",
11091126 "@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+ }
11101144 }
11111145 },
11121146 "@emotion/stylis": {
@@ -1144,47 +1178,6 @@
11441178 "@types/yargs": "^13.0.0"
11451179 }
11461180 },
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− },
11881181 "@mrmlnc/readdir-enhanced": {
11891182 "version": "2.2.1",
11901183 "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
@@ -1202,9 +1195,9 @@
12021195 "dev": true
12031196 },
12041197 "@reach/router": {
1205− "version": "1.3.1",
1206− "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.1.tgz",
1207− "integrity": "sha512-Ov1j1J+pSgXliJHFL7XWhjyREwc6GxeWfgBTa5MMH5eRmYtHbPhaovba4xKo7aTVCg8fxkt2yDMNSpvwfUP+pA==",
1198+ "version": "1.3.3",
1199+ "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.3.tgz",
1200+ "integrity": "sha512-gOIAiFhWdiVGSVjukKeNKkCRBLmnORoTPyBihI/jLunICPgxdP30DroAvPQuf1eVfQbfGJQDJkwhJXsNPMnVWw==",
12081201 "dev": true,
12091202 "requires": {
12101203 "create-react-context": "0.3.0",
@@ -1214,39 +1207,39 @@
12141207 }
12151208 },
12161209 "@sheerun/mutationobserver-shim": {
1217− "version": "0.3.2",
1218− "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz",
1219− "integrity": "sha512-vTCdPp/T/Q3oSqwHmZ5Kpa9oI7iLtGl3RQaA/NyLHikvcrPxACkkKVr/XzkSPJWXHRhKGzVvb0urJsbMlRxi1Q==",
1210+ "version": "0.3.3",
1211+ "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz",
1212+ "integrity": "sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw==",
12201213 "dev": true
12211214 },
12221215 "@storybook/addons": {
1223− "version": "5.3.12",
1224− "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.12.tgz",
1225− "integrity": "sha512-5jVns+wq95ZismEQ5ByDhrEFzDH8OIEj2BLSPT7VTbik7iLC+h7H2toWKAwIYZCxAuq0OTy6ZpIyhU/R2YuO4w==",
1216+ "version": "5.3.17",
1217+ "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.17.tgz",
1218+ "integrity": "sha512-zg6O1bmffRsHXJOWAnSD2O3tPnVMoD8Yfu+a5zBVXDiUP1E/TGzgjjjYBUUCU3yQg1Ted5rIn4o6ql/rZNNlgA==",
12261219 "dev": true,
12271220 "requires": {
1228− "@storybook/api": "5.3.12",
1229− "@storybook/channels": "5.3.12",
1230− "@storybook/client-logger": "5.3.12",
1231− "@storybook/core-events": "5.3.12",
1221+ "@storybook/api": "5.3.17",
1222+ "@storybook/channels": "5.3.17",
1223+ "@storybook/client-logger": "5.3.17",
1224+ "@storybook/core-events": "5.3.17",
12321225 "core-js": "^3.0.1",
12331226 "global": "^4.3.2",
12341227 "util-deprecate": "^1.0.2"
12351228 }
12361229 },
12371230 "@storybook/api": {
1238− "version": "5.3.12",
1239− "resolved": "https://registry.npmjs.org/@storybook/api/-/api-5.3.12.tgz",
1240− "integrity": "sha512-wYsr97vqARwmOordlPY17MJ9PrHSCsSM9JRC/zh698kXQGwYnse1nErzAiwj8YxuItfWGzE06kqjZBccnfSxPQ==",
1231+ "version": "5.3.17",
1232+ "resolved": "https://registry.npmjs.org/@storybook/api/-/api-5.3.17.tgz",
1233+ "integrity": "sha512-G40jtXFY10hQo6GSw5JeFYt41loD4+7s0uU18Rm6lfa/twOgp6vqqyDCWDvpRRxRBB5uDIKKHLt13X9gWe8tQQ==",
12411234 "dev": true,
12421235 "requires": {
12431236 "@reach/router": "^1.2.1",
1244− "@storybook/channels": "5.3.12",
1245− "@storybook/client-logger": "5.3.12",
1246− "@storybook/core-events": "5.3.12",
1237+ "@storybook/channels": "5.3.17",
1238+ "@storybook/client-logger": "5.3.17",
1239+ "@storybook/core-events": "5.3.17",
12471240 "@storybook/csf": "0.0.1",
1248− "@storybook/router": "5.3.12",
1249− "@storybook/theming": "5.3.12",
1241+ "@storybook/router": "5.3.17",
1242+ "@storybook/theming": "5.3.17",
12501243 "@types/reach__router": "^1.2.3",
12511244 "core-js": "^3.0.1",
12521245 "fast-deep-equal": "^2.0.1",
@@ -1271,38 +1264,38 @@
12711264 }
12721265 },
12731266 "@storybook/channel-postmessage": {
1274− "version": "5.3.12",
1275− "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.12.tgz",
1276− "integrity": "sha512-yQZ6Ef0KnxI7vxJrcJaBYeZpxhl/18WEFtAO9MphvYvtd1dudqKNqdx9B/30PIXb7c/SptvGJR/EZhsRNr4Oug==",
1267+ "version": "5.3.17",
1268+ "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.17.tgz",
1269+ "integrity": "sha512-1aSQNeO2+roPRgMFjW3AWTO3uS93lbCMUTYCBdi20md4bQ9SutJy33rynCQcWuMj1prCQ2Ekz4BGhdcIQVKlzg==",
12771270 "dev": true,
12781271 "requires": {
1279− "@storybook/channels": "5.3.12",
1280− "@storybook/client-logger": "5.3.12",
1272+ "@storybook/channels": "5.3.17",
1273+ "@storybook/client-logger": "5.3.17",
12811274 "core-js": "^3.0.1",
12821275 "global": "^4.3.2",
12831276 "telejson": "^3.2.0"
12841277 }
12851278 },
12861279 "@storybook/channels": {
1287− "version": "5.3.12",
1288− "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.12.tgz",
1289− "integrity": "sha512-sfSHIRUusjZ69WhfPp8BrfmlGg80PYTNCBSE+1apK/WkgzYJyGgQmJgRAW6HTFqjawD7T+utAtarsqS30jo9jQ==",
1280+ "version": "5.3.17",
1281+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.17.tgz",
1282+ "integrity": "sha512-5hlBRbyk+YxC4KgecYG8wWwB2v1BzRJXhSlemFDOQk9wx37gVpne+rBydEtNFO4InmaZf6tKbBcpH0wBFLdWYA==",
12901283 "dev": true,
12911284 "requires": {
12921285 "core-js": "^3.0.1"
12931286 }
12941287 },
12951288 "@storybook/client-api": {
1296− "version": "5.3.12",
1297− "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.12.tgz",
1298− "integrity": "sha512-Qzi+pS9FwqrArnG1VMV4QJxEdvw7KVc2ufgax7jCvK8JtDlSVe1/qpbJn7U3o1z4TPY/u3m6PbBLJDoSWTVonw==",
1289+ "version": "5.3.17",
1290+ "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.17.tgz",
1291+ "integrity": "sha512-oe55FPTGVL2k+j45eCN3oE7ePkE4VpgUQ/dhJbjU0R2L+HyRyBhd0wnMYj1f5E8uVNbtjFYAtbjjgcf1R1imeg==",
12991292 "dev": true,
13001293 "requires": {
1301− "@storybook/addons": "5.3.12",
1302− "@storybook/channel-postmessage": "5.3.12",
1303− "@storybook/channels": "5.3.12",
1304− "@storybook/client-logger": "5.3.12",
1305− "@storybook/core-events": "5.3.12",
1294+ "@storybook/addons": "5.3.17",
1295+ "@storybook/channel-postmessage": "5.3.17",
1296+ "@storybook/channels": "5.3.17",
1297+ "@storybook/client-logger": "5.3.17",
1298+ "@storybook/core-events": "5.3.17",
13061299 "@storybook/csf": "0.0.1",
13071300 "@types/webpack-env": "^1.15.0",
13081301 "core-js": "^3.0.1",
@@ -1318,23 +1311,23 @@
13181311 }
13191312 },
13201313 "@storybook/client-logger": {
1321− "version": "5.3.12",
1322− "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.12.tgz",
1323− "integrity": "sha512-LsKDW4ijGJjyRg3GetS/OtVS+8ESxydVG55jvAlExHehUcVRvrPew5MsW63CRTQDpZsoh1aT9oV1yr8eYu1HZg==",
1314+ "version": "5.3.17",
1315+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.17.tgz",
1316+ "integrity": "sha512-GYYvVGIOs+fq11LXXy7x2sr3hhC9LMI1jtIckjKV1dsY9MJ5g22M+Wl5Iw4nf6VMWsqcN9LSlYE+u/H+Q2uCHw==",
13241317 "dev": true,
13251318 "requires": {
13261319 "core-js": "^3.0.1"
13271320 }
13281321 },
13291322 "@storybook/components": {
1330− "version": "5.3.12",
1331− "resolved": "https://registry.npmjs.org/@storybook/components/-/components-5.3.12.tgz",
1332− "integrity": "sha512-Ma67yaSJHaNqLjp2csOZvHdu1Sk1eMke29WVEWjPYUBzzaZK7ZlmGiXzN0roYJVGaqHkl2f7xxRfPfWQp9NCIw==",
1323+ "version": "5.3.17",
1324+ "resolved": "https://registry.npmjs.org/@storybook/components/-/components-5.3.17.tgz",
1325+ "integrity": "sha512-M5oqbzcqFX4VDNI8siT3phT7rmFwChQ/xPwX9ygByBsZCoNuLMzafavfTOhZvxCPiliFbBxmxtK/ibCsSzuKZg==",
13331326 "dev": true,
13341327 "requires": {
1335− "@storybook/client-logger": "5.3.12",
1336− "@storybook/theming": "5.3.12",
1337− "@types/react-syntax-highlighter": "11.0.2",
1328+ "@storybook/client-logger": "5.3.17",
1329+ "@storybook/theming": "5.3.17",
1330+ "@types/react-syntax-highlighter": "11.0.4",
13381331 "@types/react-textarea-autosize": "^4.3.3",
13391332 "core-js": "^3.0.1",
13401333 "global": "^4.3.2",
@@ -1356,9 +1349,9 @@
13561349 }
13571350 },
13581351 "@storybook/core": {
1359− "version": "5.3.12",
1360− "resolved": "https://registry.npmjs.org/@storybook/core/-/core-5.3.12.tgz",
1361− "integrity": "sha512-oqffKLyMEVREeOC8O1RVO+xn68zk4wZkjWN9KbhbMoP3zdxM1gdvpsemdVE1C008mZfe1A/KBwuuEmcn9EBTNw==",
1352+ "version": "5.3.17",
1353+ "resolved": "https://registry.npmjs.org/@storybook/core/-/core-5.3.17.tgz",
1354+ "integrity": "sha512-H6G8ygjb4RSVSKPdWz6su3Nvzxm8CfrHuCyUo4DLC46mirXfYRrJV1HiwXriViqoZV4gFbpaNKTDzTl/QKFDAg==",
13621355 "dev": true,
13631356 "requires": {
13641357 "@babel/plugin-proposal-class-properties": "^7.7.0",
@@ -1366,16 +1359,16 @@
13661359 "@babel/plugin-syntax-dynamic-import": "^7.2.0",
13671360 "@babel/plugin-transform-react-constant-elements": "^7.2.0",
13681361 "@babel/preset-env": "^7.4.5",
1369− "@storybook/addons": "5.3.12",
1370− "@storybook/channel-postmessage": "5.3.12",
1371− "@storybook/client-api": "5.3.12",
1372− "@storybook/client-logger": "5.3.12",
1373− "@storybook/core-events": "5.3.12",
1362+ "@storybook/addons": "5.3.17",
1363+ "@storybook/channel-postmessage": "5.3.17",
1364+ "@storybook/client-api": "5.3.17",
1365+ "@storybook/client-logger": "5.3.17",
1366+ "@storybook/core-events": "5.3.17",
13741367 "@storybook/csf": "0.0.1",
1375− "@storybook/node-logger": "5.3.12",
1376− "@storybook/router": "5.3.12",
1377− "@storybook/theming": "5.3.12",
1378− "@storybook/ui": "5.3.12",
1368+ "@storybook/node-logger": "5.3.17",
1369+ "@storybook/router": "5.3.17",
1370+ "@storybook/theming": "5.3.17",
1371+ "@storybook/ui": "5.3.17",
13791372 "airbnb-js-shims": "^2.2.1",
13801373 "ansi-to-html": "^0.6.11",
13811374 "autoprefixer": "^9.7.2",
@@ -1495,9 +1488,9 @@
14951488 }
14961489 },
14971490 "@storybook/core-events": {
1498− "version": "5.3.12",
1499− "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.12.tgz",
1500− "integrity": "sha512-qUX0xvADM8LBUtzeTi8r803eeikyzooH8HwnUg6GP238NRnR13BK/tSnBx6XpJubGL5gv9a1jZJQWxP25KPHfA==",
1491+ "version": "5.3.17",
1492+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.17.tgz",
1493+ "integrity": "sha512-DOeX9fpeGW4o9Gocxa4VW9wAlAyfIVNDTzq0wVvvMBthTTo9u58NmndglEMDgDa2Cq6iAIPh7vz2bRJCNexzLw==",
15011494 "dev": true,
15021495 "requires": {
15031496 "core-js": "^3.0.1"
@@ -1513,9 +1506,9 @@
15131506 }
15141507 },
15151508 "@storybook/node-logger": {
1516− "version": "5.3.12",
1517− "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.12.tgz",
1518− "integrity": "sha512-ytIqS1Lx+gWFBNxwWOK7F63702YYsoU90UFQNUMC44lC1L7tOI9BQXtGIWTvmXJYns+O5pHHOVKkHLT9EGX2OA==",
1509+ "version": "5.3.17",
1510+ "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.17.tgz",
1511+ "integrity": "sha512-onfcxl37BYZI1HGuPI9MelkyUWjn7NpfN8RUYdqG9P6WKiIY5xbpG0V6qod5jvIKIypK0NmfJTtneOu46L/oDg==",
15191512 "dev": true,
15201513 "requires": {
15211514 "@types/npmlog": "^4.1.2",
@@ -1579,17 +1572,17 @@
15791572 }
15801573 },
15811574 "@storybook/react": {
1582− "version": "5.3.12",
1583− "resolved": "https://registry.npmjs.org/@storybook/react/-/react-5.3.12.tgz",
1584− "integrity": "sha512-eMbnzXizx0rp3UEnxZlySBI/z1Z/ursw0u2bFr2N9okzOio3yLSoDeMuB6BzZxDLkSgfQAw2qHtJa0eddjxoRQ==",
1575+ "version": "5.3.17",
1576+ "resolved": "https://registry.npmjs.org/@storybook/react/-/react-5.3.17.tgz",
1577+ "integrity": "sha512-FQLH3q2Ge68oLBaTge7wl5Y1KkB+pqL36llor7TOO9IxGLF6o2t2qillWnrgX6yZUpkvJK8MgkZW1/N3tslw4Q==",
15851578 "dev": true,
15861579 "requires": {
15871580 "@babel/plugin-transform-react-constant-elements": "^7.6.3",
15881581 "@babel/preset-flow": "^7.0.0",
15891582 "@babel/preset-react": "^7.0.0",
1590− "@storybook/addons": "5.3.12",
1591− "@storybook/core": "5.3.12",
1592− "@storybook/node-logger": "5.3.12",
1583+ "@storybook/addons": "5.3.17",
1584+ "@storybook/core": "5.3.17",
1585+ "@storybook/node-logger": "5.3.17",
15931586 "@svgr/webpack": "^4.0.3",
15941587 "@types/webpack-env": "^1.15.0",
15951588 "babel-plugin-add-react-displayname": "^0.0.5",
@@ -1598,7 +1591,7 @@
15981591 "core-js": "^3.0.1",
15991592 "global": "^4.3.2",
16001593 "lodash": "^4.17.15",
1601− "mini-css-extract-plugin": "^0.9.0",
1594+ "mini-css-extract-plugin": "^0.7.0",
16021595 "prop-types": "^15.7.2",
16031596 "react-dev-utils": "^9.0.0",
16041597 "regenerator-runtime": "^0.13.3",
@@ -1616,9 +1609,9 @@
16161609 }
16171610 },
16181611 "@storybook/router": {
1619− "version": "5.3.12",
1620− "resolved": "https://registry.npmjs.org/@storybook/router/-/router-5.3.12.tgz",
1621− "integrity": "sha512-IuI/MMFb27XGFaFjaUCYUgK+P4jeGLBDI4cCn6Fezb5RRgpdOf2DobDIUZtujSmvPnEF8C+SJE/v1dXihRO1Xg==",
1612+ "version": "5.3.17",
1613+ "resolved": "https://registry.npmjs.org/@storybook/router/-/router-5.3.17.tgz",
1614+ "integrity": "sha512-ANsiehGRTVSremgTW0Vt47dQ4JA86a4/w/4G6QqHU8Cm4jO3cw/wAcCxlzfcgCXOUiq+SuyPTU43+0O5uBx33g==",
16221615 "dev": true,
16231616 "requires": {
16241617 "@reach/router": "^1.2.1",
@@ -1633,14 +1626,14 @@
16331626 }
16341627 },
16351628 "@storybook/theming": {
1636− "version": "5.3.12",
1637− "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.12.tgz",
1638− "integrity": "sha512-LwyFBbxYtm2rr86mA0d+oYisIpW2GrDqmv0ZGEmx9EqKK1JwG3N99VSK7iHig6vpNu42LHLakuaqK55H2Q7YcA==",
1629+ "version": "5.3.17",
1630+ "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.17.tgz",
1631+ "integrity": "sha512-4JeOZnDDHtb4LOt5sXe/s1Jhbb2UPsr8zL9NWmKJmTsgnyTvBipNHOmFYDUsIacB5K4GXSqm+cZ7Z4AkUgWCDw==",
16391632 "dev": true,
16401633 "requires": {
16411634 "@emotion/core": "^10.0.20",
16421635 "@emotion/styled": "^10.0.17",
1643− "@storybook/client-logger": "5.3.12",
1636+ "@storybook/client-logger": "5.3.17",
16441637 "core-js": "^3.0.1",
16451638 "deep-object-diff": "^1.1.0",
16461639 "emotion-theming": "^10.0.19",
@@ -1653,20 +1646,20 @@
16531646 }
16541647 },
16551648 "@storybook/ui": {
1656− "version": "5.3.12",
1657− "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.12.tgz",
1658− "integrity": "sha512-dVYJJkwjfGkz3u0lnfawnT6hqBRnANVlKEYirKYZyQ/RouCN3naNh9Sagrpg7hJHYib4Ny6J/pyaNdfdieDS+w==",
1649+ "version": "5.3.17",
1650+ "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.17.tgz",
1651+ "integrity": "sha512-5S9r70QbtNKu8loa5pfO5lLX9coF/ZqesEKcanfvuSwqCSg/Z51UwFCuO6eNhVlpXzyZXi5d8qKbZlbf+uvDAA==",
16591652 "dev": true,
16601653 "requires": {
16611654 "@emotion/core": "^10.0.20",
1662− "@storybook/addons": "5.3.12",
1663− "@storybook/api": "5.3.12",
1664− "@storybook/channels": "5.3.12",
1665− "@storybook/client-logger": "5.3.12",
1666− "@storybook/components": "5.3.12",
1667− "@storybook/core-events": "5.3.12",
1668− "@storybook/router": "5.3.12",
1669− "@storybook/theming": "5.3.12",
1655+ "@storybook/addons": "5.3.17",
1656+ "@storybook/api": "5.3.17",
1657+ "@storybook/channels": "5.3.17",
1658+ "@storybook/client-logger": "5.3.17",
1659+ "@storybook/components": "5.3.17",
1660+ "@storybook/core-events": "5.3.17",
1661+ "@storybook/router": "5.3.17",
1662+ "@storybook/theming": "5.3.17",
16701663 "copy-to-clipboard": "^3.0.8",
16711664 "core-js": "^3.0.1",
16721665 "core-js-pure": "^3.0.1",
@@ -1906,27 +1899,28 @@
19061899 }
19071900 },
19081901 "@testing-library/dom": {
1909− "version": "6.12.2",
1910− "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.12.2.tgz",
1911− "integrity": "sha512-KCnvHra5fV+wDxg3wJObGvZFxq7v1DJt829GNFLuRDjKxVNc/B5AdsylNF5PMHFbWMXDsHwM26d2NZcZO9KjbQ==",
1902+ "version": "6.16.0",
1903+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.16.0.tgz",
1904+ "integrity": "sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA==",
19121905 "dev": true,
19131906 "requires": {
1914− "@babel/runtime": "^7.6.2",
1907+ "@babel/runtime": "^7.8.4",
19151908 "@sheerun/mutationobserver-shim": "^0.3.2",
1916− "@types/testing-library__dom": "^6.0.0",
1917− "aria-query": "3.0.0",
1918− "pretty-format": "^24.9.0",
1919− "wait-for-expect": "^3.0.0"
1909+ "@types/testing-library__dom": "^6.12.1",
1910+ "aria-query": "^4.0.2",
1911+ "dom-accessibility-api": "^0.3.0",
1912+ "pretty-format": "^25.1.0",
1913+ "wait-for-expect": "^3.0.2"
19201914 }
19211915 },
19221916 "@testing-library/react": {
1923− "version": "9.4.0",
1924− "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.4.0.tgz",
1925− "integrity": "sha512-XdhDWkI4GktUPsz0AYyeQ8M9qS/JFie06kcSnUVcpgOwFjAu9vhwR83qBl+lw9yZWkbECjL8Hd+n5hH6C0oWqg==",
1917+ "version": "9.5.0",
1918+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.5.0.tgz",
1919+ "integrity": "sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg==",
19261920 "dev": true,
19271921 "requires": {
1928− "@babel/runtime": "^7.7.6",
1929− "@testing-library/dom": "^6.11.0",
1922+ "@babel/runtime": "^7.8.4",
1923+ "@testing-library/dom": "^6.15.0",
19301924 "@types/testing-library__react": "^9.1.2"
19311925 }
19321926 },
@@ -1997,9 +1991,9 @@
19971991 "dev": true
19981992 },
19991993 "@types/node": {
2000− "version": "13.7.0",
2001− "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz",
2002− "integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==",
1994+ "version": "13.9.1",
1995+ "resolved": "https://registry.npmjs.org/@types/node/-/node-13.9.1.tgz",
1996+ "integrity": "sha512-E6M6N0blf/jiZx8Q3nb0vNaswQeEyn0XlupO+xN6DtJ6r6IT4nXrTry7zhIfYvFCl3/8Cu6WIysmUBKiqV0bqQ==",
20031997 "dev": true
20041998 },
20051999 "@types/npmlog": {
@@ -2027,9 +2021,9 @@
20272021 "dev": true
20282022 },
20292023 "@types/reach__router": {
2030− "version": "1.2.6",
2031− "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.2.6.tgz",
2032− "integrity": "sha512-Oh5DAVr/L2svBvubw6QEFpXGu295Y406BPs4i9t1n2pp7M+q3pmCmhzb9oZV5wncR41KCD3NHl1Yhi7uKnTPsA==",
2024+ "version": "1.3.0",
2025+ "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.0.tgz",
2026+ "integrity": "sha512-0aL79bFPJzJOJOOMZm2301ErQVaveBdpW88uuavXymUlcYIAOCmI1ujJ2XLH6Mzn76O94eQCHIl1FDzNNKJCYA==",
20332027 "dev": true,
20342028 "requires": {
20352029 "@types/history": "*",
@@ -2037,9 +2031,9 @@
20372031 }
20382032 },
20392033 "@types/react": {
2040− "version": "16.9.19",
2041− "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz",
2042− "integrity": "sha512-LJV97//H+zqKWMms0kvxaKYJDG05U2TtQB3chRLF8MPNs+MQh/H1aGlyDUxjaHvu08EAGerdX2z4LTBc7ns77A==",
2034+ "version": "16.9.23",
2035+ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.23.tgz",
2036+ "integrity": "sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw==",
20432037 "dev": true,
20442038 "requires": {
20452039 "@types/prop-types": "*",
@@ -2056,9 +2050,9 @@
20562050 }
20572051 },
20582052 "@types/react-syntax-highlighter": {
2059− "version": "11.0.2",
2060− "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.2.tgz",
2061− "integrity": "sha512-iMNcixH8330f2dq0RY+VOXCP8JFehgmOhLOtnO85Ty+qu0fHXJNEqWx5VuFv8v0aEq0U/N9d/k1yvA+c6PEmPw==",
2053+ "version": "11.0.4",
2054+ "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.4.tgz",
2055+ "integrity": "sha512-9GfTo3a0PHwQeTVoqs0g5bS28KkSY48pp5659wA+Dp4MqceDEa8EHBqrllJvvtyusszyJhViUEap0FDvlk/9Zg==",
20622056 "dev": true,
20632057 "requires": {
20642058 "@types/react": "*"
@@ -2074,22 +2068,43 @@
20742068 }
20752069 },
20762070 "@types/testing-library__dom": {
2077− "version": "6.12.1",
2078− "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.12.1.tgz",
2079− "integrity": "sha512-cgqnEjxKk31tQt29j4baSWaZPNjQf3bHalj2gcHQTpW5SuHRal76gOpF0vypeEo6o+sS5inOvvNdzLY0B3FB2A==",
2071+ "version": "6.14.0",
2072+ "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz",
2073+ "integrity": "sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA==",
20802074 "dev": true,
20812075 "requires": {
20822076 "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+ }
20832097 }
20842098 },
20852099 "@types/testing-library__react": {
2086− "version": "9.1.2",
2087− "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.2.tgz",
2088− "integrity": "sha512-CYaMqrswQ+cJACy268jsLAw355DZtPZGt3Jwmmotlcu8O/tkoXBI6AeZ84oZBJsIsesozPKzWzmv/0TIU+1E9Q==",
2100+ "version": "9.1.3",
2101+ "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.3.tgz",
2102+ "integrity": "sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w==",
20892103 "dev": true,
20902104 "requires": {
20912105 "@types/react-dom": "*",
2092− "@types/testing-library__dom": "*"
2106+ "@types/testing-library__dom": "*",
2107+ "pretty-format": "^25.1.0"
20932108 }
20942109 },
20952110 "@types/webpack-env": {
@@ -2318,9 +2333,9 @@
23182333 }
23192334 },
23202335 "acorn": {
2321− "version": "6.4.0",
2322− "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz",
2323− "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==",
2336+ "version": "6.4.1",
2337+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
2338+ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
23242339 "dev": true
23252340 },
23262341 "acorn-globals": {
@@ -2381,9 +2396,9 @@
23812396 }
23822397 },
23832398 "ajv": {
2384− "version": "6.11.0",
2385− "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
2386− "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
2399+ "version": "6.12.0",
2400+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
2401+ "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
23872402 "dev": true,
23882403 "requires": {
23892404 "fast-deep-equal": "^3.1.1",
@@ -2462,12 +2477,20 @@
24622477 "dev": true
24632478 },
24642479 "ansi-escapes": {
2465− "version": "4.3.0",
2466− "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz",
2467− "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==",
2480+ "version": "4.3.1",
2481+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
2482+ "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
24682483 "dev": true,
24692484 "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+ }
24712494 }
24722495 },
24732496 "ansi-html": {
@@ -2580,21 +2603,13 @@
25802603 }
25812604 },
25822605 "aria-query": {
2583− "version": "3.0.0",
2584− "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz",
2585− "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=",
2606+ "version": "4.0.2",
2607+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.0.2.tgz",
2608+ "integrity": "sha512-S1G1V790fTaigUSM/Gd0NngzEfiMy9uTUfMyHhKhVyy4cH5O/eTuR01ydhGL0z4Za1PXFTRGH3qL8VhUQuEO5w==",
25862609 "dev": true,
25872610 "requires": {
2588− "ast-types-flow": "0.0.7",
2589− "commander": "^2.11.0"
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− }
2611+ "@babel/runtime": "^7.7.4",
2612+ "@babel/runtime-corejs3": "^7.7.4"
25982613 }
25992614 },
26002615 "arr-diff": {
@@ -2763,12 +2778,6 @@
27632778 "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==",
27642779 "dev": true
27652780 },
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− },
27722781 "async": {
27732782 "version": "2.6.3",
27742783 "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
@@ -2956,21 +2965,29 @@
29562965 }
29572966 },
29582967 "babel-plugin-emotion": {
2959− "version": "10.0.27",
2960− "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.27.tgz",
2961− "integrity": "sha512-SUNYcT4FqhOqvwv0z1oeYhqgheU8qrceLojuHyX17ngo7WtWqN5I9l3IGHzf21Xraj465CVzF4IvOlAF+3ed0A==",
2968+ "version": "10.0.29",
2969+ "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.29.tgz",
2970+ "integrity": "sha512-7Jpi1OCxjyz0k163lKtqP+LHMg5z3S6A7vMBfHnF06l2unmtsOmFDzZBpGf0CWo1G4m8UACfVcDJiSiRuu/cSw==",
29622971 "dev": true,
29632972 "requires": {
29642973 "@babel/helper-module-imports": "^7.0.0",
2965− "@emotion/hash": "0.7.4",
2974+ "@emotion/hash": "0.8.0",
29662975 "@emotion/memoize": "0.7.4",
2967− "@emotion/serialize": "^0.11.15",
2976+ "@emotion/serialize": "^0.11.16",
29682977 "babel-plugin-macros": "^2.0.0",
29692978 "babel-plugin-syntax-jsx": "^6.18.0",
29702979 "convert-source-map": "^1.5.0",
29712980 "escape-string-regexp": "^1.0.5",
29722981 "find-root": "^1.1.0",
29732982 "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+ }
29742991 }
29752992 },
29762993 "babel-plugin-macros": {
@@ -3565,9 +3582,9 @@
35653582 "dev": true
35663583 },
35673584 "browser-process-hrtime": {
3568− "version": "0.1.3",
3569− "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz",
3570− "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==",
3585+ "version": "1.0.0",
3586+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
3587+ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
35713588 "dev": true
35723589 },
35733590 "browserify-aes": {
@@ -3642,14 +3659,14 @@
36423659 }
36433660 },
36443661 "browserslist": {
3645− "version": "4.8.6",
3646− "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz",
3647− "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==",
3662+ "version": "4.9.1",
3663+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.1.tgz",
3664+ "integrity": "sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw==",
36483665 "dev": true,
36493666 "requires": {
3650− "caniuse-lite": "^1.0.30001023",
3651− "electron-to-chromium": "^1.3.341",
3652− "node-releases": "^1.1.47"
3667+ "caniuse-lite": "^1.0.30001030",
3668+ "electron-to-chromium": "^1.3.363",
3669+ "node-releases": "^1.1.50"
36533670 }
36543671 },
36553672 "buffer": {
@@ -3786,13 +3803,13 @@
37863803 "dev": true
37873804 },
37883805 "camel-case": {
3789− "version": "3.0.0",
3790− "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
3791− "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
3806+ "version": "4.1.1",
3807+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz",
3808+ "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==",
37923809 "dev": true,
37933810 "requires": {
3794− "no-case": "^2.2.0",
3795− "upper-case": "^1.1.1"
3811+ "pascal-case": "^3.1.1",
3812+ "tslib": "^1.10.0"
37963813 }
37973814 },
37983815 "camelcase": {
@@ -3808,9 +3825,9 @@
38083825 "dev": true
38093826 },
38103827 "caniuse-lite": {
3811− "version": "1.0.30001027",
3812− "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz",
3813− "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==",
3828+ "version": "1.0.30001035",
3829+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz",
3830+ "integrity": "sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==",
38143831 "dev": true
38153832 },
38163833 "case-sensitive-paths-webpack-plugin": {
@@ -3881,9 +3898,9 @@
38813898 }
38823899 },
38833900 "chownr": {
3884− "version": "1.1.3",
3885− "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
3886− "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
3901+ "version": "1.1.4",
3902+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
3903+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
38873904 "dev": true
38883905 },
38893906 "chrome-trace-event": {
@@ -4029,9 +4046,9 @@
40294046 "dev": true
40304047 },
40314048 "clipboard": {
4032− "version": "2.0.4",
4033− "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz",
4034− "integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==",
4049+ "version": "2.0.6",
4050+ "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz",
4051+ "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==",
40354052 "dev": true,
40364053 "optional": true,
40374054 "requires": {
@@ -4124,12 +4141,6 @@
41244141 }
41254142 }
41264143 },
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− },
41334144 "coa": {
41344145 "version": "2.0.2",
41354146 "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
@@ -4358,9 +4369,9 @@
43584369 "dev": true
43594370 },
43604371 "copy-to-clipboard": {
4361− "version": "3.2.1",
4362− "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.2.1.tgz",
4363− "integrity": "sha512-btru1Q6RD9wbonIvEU5EfnhIRGHLo//BGXQ1hNAD2avIs/nBZlpbOeKtv3mhoUByN4DB9Cb6/vXBymj1S43KmA==",
4372+ "version": "3.3.1",
4373+ "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz",
4374+ "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==",
43644375 "dev": true,
43654376 "requires": {
43664377 "toggle-selection": "^1.0.6"
@@ -4504,6 +4515,16 @@
45044515 "randomfill": "^1.0.3"
45054516 }
45064517 },
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+ },
45074528 "css-loader": {
45084529 "version": "3.4.2",
45094530 "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz",
@@ -4525,12 +4546,12 @@
45254546 },
45264547 "dependencies": {
45274548 "schema-utils": {
4528− "version": "2.6.4",
4529− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
4530− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
4549+ "version": "2.6.5",
4550+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
4551+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
45314552 "dev": true,
45324553 "requires": {
4533− "ajv": "^6.10.2",
4554+ "ajv": "^6.12.0",
45344555 "ajv-keywords": "^3.4.1"
45354556 }
45364557 }
@@ -4576,7 +4597,6 @@
45764597 "version": "2.0.7",
45774598 "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.7.tgz",
45784599 "integrity": "sha512-VS9Rjt79+p7M0WkPqcAza4Yq1ZHrsHrwf7hPL/bjQB+c1lwmAI+1FXxYTYt818D/50fFVflw0XKleiBN5RITkg==",
4579− "dev": true,
45804600 "requires": {
45814601 "@babel/runtime": "^7.6.2",
45824602 "is-in-browser": "^1.0.2"
@@ -4627,10 +4647,9 @@
46274647 }
46284648 },
46294649 "csstype": {
4630− "version": "2.6.8",
4631− "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz",
4632− "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==",
4633− "dev": true
4650+ "version": "2.6.9",
4651+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.9.tgz",
4652+ "integrity": "sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q=="
46344653 },
46354654 "cyclist": {
46364655 "version": "1.0.1",
@@ -5020,6 +5039,12 @@
50205039 "esutils": "^2.0.2"
50215040 }
50225041 },
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+ },
50235048 "dom-converter": {
50245049 "version": "0.2.0",
50255050 "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
@@ -5099,6 +5124,16 @@
50995124 "domelementtype": "1"
51005125 }
51015126 },
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+ },
51025137 "dotenv": {
51035138 "version": "6.2.0",
51045139 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
@@ -5170,9 +5205,9 @@
51705205 "dev": true
51715206 },
51725207 "electron-to-chromium": {
5173− "version": "1.3.347",
5174− "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.347.tgz",
5175− "integrity": "sha512-IityliF5ZY4nLa4DaXOGrWVeTK3OcN6LJECVe60DOX/SEF0zohVRxZHJXu4ZA8bW0A3K6Skcn67G20MGXOqhaA==",
5208+ "version": "1.3.376",
5209+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.376.tgz",
5210+ "integrity": "sha512-cv/PYVz5szeMz192ngilmezyPNFkUjuynuL2vNdiqIrio440nfTDdc0JJU0TS2KHLSVCs9gBbt4CFqM+HcBnjw==",
51765211 "dev": true
51775212 },
51785213 "element-resize-detector": {
@@ -5206,9 +5241,9 @@
52065241 "dev": true
52075242 },
52085243 "emojis-list": {
5209− "version": "2.1.0",
5210− "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
5211− "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
5244+ "version": "3.0.0",
5245+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
5246+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
52125247 "dev": true
52135248 },
52145249 "emotion-theming": {
@@ -5859,9 +5894,9 @@
58595894 "dev": true
58605895 },
58615896 "figures": {
5862− "version": "3.1.0",
5863− "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
5864− "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
5897+ "version": "3.2.0",
5898+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
5899+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
58655900 "dev": true,
58665901 "requires": {
58675902 "escape-string-regexp": "^1.0.5"
@@ -5878,12 +5913,12 @@
58785913 },
58795914 "dependencies": {
58805915 "schema-utils": {
5881− "version": "2.6.4",
5882− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
5883− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
5916+ "version": "2.6.5",
5917+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
5918+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
58845919 "dev": true,
58855920 "requires": {
5886− "ajv": "^6.10.2",
5921+ "ajv": "^6.12.0",
58875922 "ajv-keywords": "^3.4.1"
58885923 }
58895924 }
@@ -5984,20 +6019,20 @@
59846019 }
59856020 },
59866021 "find-cache-dir": {
5987− "version": "3.2.0",
5988− "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz",
5989− "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==",
6022+ "version": "3.3.1",
6023+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
6024+ "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
59906025 "dev": true,
59916026 "requires": {
59926027 "commondir": "^1.0.1",
5993− "make-dir": "^3.0.0",
6028+ "make-dir": "^3.0.2",
59946029 "pkg-dir": "^4.1.0"
59956030 },
59966031 "dependencies": {
59976032 "make-dir": {
5998− "version": "3.0.0",
5999− "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz",
6000− "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==",
6033+ "version": "3.0.2",
6034+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz",
6035+ "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
60016036 "dev": true,
60026037 "requires": {
60036038 "semver": "^6.0.0"
@@ -6872,9 +6907,9 @@
68726907 "dev": true
68736908 },
68746909 "fuse.js": {
6875− "version": "3.4.6",
6876− "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.4.6.tgz",
6877− "integrity": "sha512-H6aJY4UpLFwxj1+5nAvufom5b2BT2v45P1MkPvdGIK8fWjQx/7o6tTT1+ALV0yawQvbmvCF0ufl2et8eJ7v7Cg==",
6910+ "version": "3.6.1",
6911+ "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz",
6912+ "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==",
68786913 "dev": true
68796914 },
68806915 "gauge": {
@@ -7225,15 +7260,15 @@
72257260 }
72267261 },
72277262 "hast-util-parse-selector": {
7228− "version": "2.2.3",
7229− "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.3.tgz",
7230− "integrity": "sha512-nxbeqjQNxsvo/uYYAw9kij6td05YVUlf1qti09rVfbWSLT5H6wo3c+USIwX6nzXWk5kFZzXnEqO82856r0aM2Q==",
7263+ "version": "2.2.4",
7264+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz",
7265+ "integrity": "sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==",
72317266 "dev": true
72327267 },
72337268 "hastscript": {
7234− "version": "5.1.1",
7235− "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.1.tgz",
7236− "integrity": "sha512-xHo1Hkcqd0LlWNuDL3/BxwhgAGp3d7uEvCMgCTrBY+zsOooPPH+8KAvW8PCgl+GB8H3H44nfSaF0A4BQ+4xlYg==",
7269+ "version": "5.1.2",
7270+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz",
7271+ "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==",
72377272 "dev": true,
72387273 "requires": {
72397274 "comma-separated-tokens": "^1.0.0",
@@ -7269,7 +7304,6 @@
72697304 "version": "3.3.2",
72707305 "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
72717306 "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
7272− "dev": true,
72737307 "requires": {
72747308 "react-is": "^16.7.0"
72757309 }
@@ -7284,9 +7318,9 @@
72847318 }
72857319 },
72867320 "hosted-git-info": {
7287− "version": "2.8.5",
7288− "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz",
7289− "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==",
7321+ "version": "2.8.8",
7322+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
7323+ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
72907324 "dev": true
72917325 },
72927326 "hpack.js": {
@@ -7317,18 +7351,18 @@
73177351 "dev": true
73187352 },
73197353 "html-minifier-terser": {
7320− "version": "5.0.3",
7321− "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.3.tgz",
7322− "integrity": "sha512-It4No3H1V3Dhd/O0MePFdo0oX/M6u6YZTMw4My/010mT6vxdbqge7+0RoxGAmeSbKok6gjYZoP0p4rpZ2+J2yw==",
7354+ "version": "5.0.4",
7355+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.4.tgz",
7356+ "integrity": "sha512-fHwmKQ+GzhlqdxEtwrqLT7MSuheiA+rif5/dZgbz3GjoMXJzcRzy1L9NXoiiyxrnap+q5guSiv8Tz5lrh9g42g==",
73237357 "dev": true,
73247358 "requires": {
7325− "camel-case": "^3.0.0",
7326− "clean-css": "^4.2.1",
7327− "commander": "^4.0.0",
7359+ "camel-case": "^4.1.1",
7360+ "clean-css": "^4.2.3",
7361+ "commander": "^4.1.1",
73287362 "he": "^1.2.0",
7329− "param-case": "^2.1.1",
7363+ "param-case": "^3.0.3",
73307364 "relateurl": "^0.2.7",
7331− "terser": "^4.3.9"
7365+ "terser": "^4.6.3"
73327366 }
73337367 },
73347368 "html-webpack-plugin": {
@@ -7360,9 +7394,9 @@
73607394 },
73617395 "dependencies": {
73627396 "readable-stream": {
7363− "version": "3.5.0",
7364− "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
7365− "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
7397+ "version": "3.6.0",
7398+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
7399+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
73667400 "dev": true,
73677401 "requires": {
73687402 "inherits": "^2.0.3",
@@ -7471,8 +7505,7 @@
74717505 "hyphenate-style-name": {
74727506 "version": "1.0.3",
74737507 "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz",
7474− "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ==",
7475− "dev": true
7508+ "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ=="
74767509 },
74777510 "iconv-lite": {
74787511 "version": "0.4.24",
@@ -7617,23 +7650,23 @@
76177650 "dev": true
76187651 },
76197652 "inquirer": {
7620− "version": "7.0.4",
7621− "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz",
7622− "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==",
7653+ "version": "7.1.0",
7654+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz",
7655+ "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==",
76237656 "dev": true,
76247657 "requires": {
76257658 "ansi-escapes": "^4.2.1",
7626− "chalk": "^2.4.2",
7659+ "chalk": "^3.0.0",
76277660 "cli-cursor": "^3.1.0",
76287661 "cli-width": "^2.0.0",
76297662 "external-editor": "^3.0.3",
76307663 "figures": "^3.0.0",
76317664 "lodash": "^4.17.15",
76327665 "mute-stream": "0.0.8",
7633− "run-async": "^2.2.0",
7666+ "run-async": "^2.4.0",
76347667 "rxjs": "^6.5.3",
76357668 "string-width": "^4.1.0",
7636− "strip-ansi": "^5.1.0",
7669+ "strip-ansi": "^6.0.0",
76377670 "through": "^2.3.6"
76387671 },
76397672 "dependencies": {
@@ -7643,12 +7676,53 @@
76437676 "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
76447677 "dev": true
76457678 },
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+ },
76467714 "emoji-regex": {
76477715 "version": "8.0.0",
76487716 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
76497717 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
76507718 "dev": true
76517719 },
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+ },
76527726 "is-fullwidth-code-point": {
76537727 "version": "3.0.0",
76547728 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -7664,34 +7738,24 @@
76647738 "emoji-regex": "^8.0.0",
76657739 "is-fullwidth-code-point": "^3.0.0",
76667740 "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− }
76787741 }
76797742 },
76807743 "strip-ansi": {
7681− "version": "5.2.0",
7682− "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
7683− "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
7744+ "version": "6.0.0",
7745+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
7746+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
76847747 "dev": true,
76857748 "requires": {
7686− "ansi-regex": "^4.1.0"
7687− },
7688− "dependencies": {
7689− "ansi-regex": {
7690− "version": "4.1.0",
7691− "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
7692− "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
7693− "dev": true
7694− }
7749+ "ansi-regex": "^5.0.0"
7750+ }
7751+ },
7752+ "supports-color": {
7753+ "version": "7.1.0",
7754+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
7755+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
7756+ "dev": true,
7757+ "requires": {
7758+ "has-flag": "^4.0.0"
76957759 }
76967760 }
76977761 }
@@ -7751,9 +7815,9 @@
77517815 "dev": true
77527816 },
77537817 "ipaddr.js": {
7754− "version": "1.9.0",
7755− "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
7756− "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
7818+ "version": "1.9.1",
7819+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
7820+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
77577821 "dev": true
77587822 },
77597823 "is-absolute-url": {
@@ -7939,8 +8003,7 @@
79398003 "is-in-browser": {
79408004 "version": "1.1.3",
79418005 "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
7942− "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=",
7943− "dev": true
8006+ "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU="
79448007 },
79458008 "is-map": {
79468009 "version": "2.0.1",
@@ -8149,8 +8212,7 @@
81498212 "js-tokens": {
81508213 "version": "4.0.0",
81518214 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
8152− "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
8153− "dev": true
8215+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
81548216 },
81558217 "js-yaml": {
81568218 "version": "3.13.1",
@@ -8203,9 +8265,9 @@
82038265 },
82048266 "dependencies": {
82058267 "acorn": {
8206− "version": "7.1.0",
8207− "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
8208− "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
8268+ "version": "7.1.1",
8269+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
8270+ "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
82098271 "dev": true
82108272 }
82118273 }
@@ -8283,10 +8345,9 @@
82838345 }
82848346 },
82858347 "jss": {
8286− "version": "10.0.4",
8287− "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.4.tgz",
8288− "integrity": "sha512-GqHmeDK83qbqMAVjxyPfN1qJVTKZne533a9bdCrllZukUM8npG/k+JumEPI86IIB5ifaZAHG2HAsUziyxOiooQ==",
8289− "dev": true,
8348+ "version": "10.1.1",
8349+ "resolved": "https://registry.npmjs.org/jss/-/jss-10.1.1.tgz",
8350+ "integrity": "sha512-Xz3qgRUFlxbWk1czCZibUJqhVPObrZHxY3FPsjCXhDld4NOj1BgM14Ir5hVm+Qr6OLqVljjGvoMcCdXNOAbdkQ==",
82908351 "requires": {
82918352 "@babel/runtime": "^7.3.1",
82928353 "csstype": "^2.6.5",
@@ -8295,76 +8356,139 @@
82958356 }
82968357 },
82978358 "jss-plugin-camel-case": {
8298− "version": "10.0.4",
8299− "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.4.tgz",
8300− "integrity": "sha512-+wnqxJsyfUnOn0LxVg3GgZBSjfBCrjxwx7LFxwVTUih0ceGaXKZoieheNOaTo5EM4w8bt1nbb8XonpQCj67C6A==",
8301− "dev": true,
8359+ "version": "10.1.1",
8360+ "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.1.1.tgz",
8361+ "integrity": "sha512-MDIaw8FeD5uFz1seQBKz4pnvDLnj5vIKV5hXSVdMaAVq13xR6SVTVWkIV/keyTs5txxTvzGJ9hXoxgd1WTUlBw==",
83028362 "requires": {
83038363 "@babel/runtime": "^7.3.1",
83048364 "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"
83068376 }
83078377 },
83088378 "jss-plugin-default-unit": {
8309− "version": "10.0.4",
8310− "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.4.tgz",
8311− "integrity": "sha512-T0mhL/Ogp/quvod/jAHEqKvptLDxq7Cj3a+7zRuqK8HxUYkftptN89wJElZC3rshhNKiogkEYhCWenpJdFvTBg==",
8312− "dev": true,
8379+ "version": "10.1.1",
8380+ "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.1.1.tgz",
8381+ "integrity": "sha512-UkeVCA/b3QEA4k0nIKS4uWXDCNmV73WLHdh2oDGZZc3GsQtlOCuiH3EkB/qI60v2MiCq356/SYWsDXt21yjwdg==",
83138382 "requires": {
83148383 "@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"
83168404 }
83178405 },
83188406 "jss-plugin-global": {
8319− "version": "10.0.4",
8320− "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.0.4.tgz",
8321− "integrity": "sha512-N8n9/GHENZce+sqE4UYiZiJtI+t+erT/BypHOrNYAfIoNEj7OYsOEKfIo2P0GpLB3QyDAYf5eo9XNdZ8veEkUA==",
8322− "dev": true,
8407+ "version": "10.1.1",
8408+ "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.1.1.tgz",
8409+ "integrity": "sha512-VBG3wRyi3Z8S4kMhm8rZV6caYBegsk+QnQZSVmrWw6GVOT/Z4FA7eyMu5SdkorDlG/HVpHh91oFN56O4R9m2VA==",
83238410 "requires": {
83248411 "@babel/runtime": "^7.3.1",
8325− "jss": "10.0.4"
8412+ "jss": "10.1.1"
83268413 }
83278414 },
83288415 "jss-plugin-nested": {
8329− "version": "10.0.4",
8330− "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.0.4.tgz",
8331− "integrity": "sha512-QM21BKVt8LDeoRfowvAMh/s+/89VYrreIIE6ch4pvw0oAXDWw1iorUPlqLZ7uCO3UL0uFtQhJq3QMLN6Lr1v0A==",
8332− "dev": true,
8416+ "version": "10.1.1",
8417+ "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.1.1.tgz",
8418+ "integrity": "sha512-ozEu7ZBSVrMYxSDplPX3H82XHNQk2DQEJ9TEyo7OVTPJ1hEieqjDFiOQOxXEj9z3PMqkylnUbvWIZRDKCFYw5Q==",
83338419 "requires": {
83348420 "@babel/runtime": "^7.3.1",
8335− "jss": "10.0.4",
8421+ "jss": "10.1.1",
83368422 "tiny-warning": "^1.0.2"
83378423 }
83388424 },
83398425 "jss-plugin-props-sort": {
8340− "version": "10.0.4",
8341− "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.4.tgz",
8342− "integrity": "sha512-WoETdOCjGskuin/OMt2uEdDPLZF3vfQuHXF+XUHGJrq0BAapoyGQDcv37SeReDlkRAbVXkEZPsIMvYrgHSHFiA==",
8343− "dev": true,
8426+ "version": "10.1.1",
8427+ "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.1.1.tgz",
8428+ "integrity": "sha512-g/joK3eTDZB4pkqpZB38257yD4LXB0X15jxtZAGbUzcKAVUHPl9Jb47Y7lYmiGsShiV4YmQRqG1p2DHMYoK91g==",
83448429 "requires": {
83458430 "@babel/runtime": "^7.3.1",
8346− "jss": "10.0.4"
8431+ "jss": "10.1.1"
83478432 }
83488433 },
83498434 "jss-plugin-rule-value-function": {
8350− "version": "10.0.4",
8351− "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.4.tgz",
8352− "integrity": "sha512-0hrzOSWRF5ABJGaHrlnHbYZjU877Ofzfh2id3uLtBvemGQLHI+ldoL8/+6iPSRa7M8z8Ngfg2vfYhKjUA5gA0g==",
8353− "dev": true,
8435+ "version": "10.1.1",
8436+ "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.1.1.tgz",
8437+ "integrity": "sha512-ClV1lvJ3laU9la1CUzaDugEcwnpjPTuJ0yGy2YtcU+gG/w9HMInD5vEv7xKAz53Bk4WiJm5uLOElSEshHyhKNw==",
83548438 "requires": {
83558439 "@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"
83578461 }
83588462 },
83598463 "jss-plugin-vendor-prefixer": {
8360− "version": "10.0.4",
8361− "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.4.tgz",
8362− "integrity": "sha512-4JgEbcrdeMda1qvxTm1CnxFJAWVV++VLpP46HNTrfH7VhVlvUpihnUNs2gAlKuRT/XSBuiWeLAkrTqF4NVrPig==",
8363− "dev": true,
8464+ "version": "10.1.1",
8465+ "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.1.1.tgz",
8466+ "integrity": "sha512-09MZpQ6onQrhaVSF6GHC4iYifQ7+4YC/tAP6D4ZWeZotvCMq1mHLqNKRIaqQ2lkgANjlEot2JnVi1ktu4+L4pw==",
83648467 "requires": {
83658468 "@babel/runtime": "^7.3.1",
83668469 "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"
83688492 }
83698493 },
83708494 "killable": {
@@ -8492,13 +8616,13 @@
84928616 "dev": true
84938617 },
84948618 "loader-utils": {
8495− "version": "1.2.3",
8496− "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
8497− "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
8619+ "version": "1.4.0",
8620+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
8621+ "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
84988622 "dev": true,
84998623 "requires": {
85008624 "big.js": "^5.2.2",
8501− "emojis-list": "^2.0.0",
8625+ "emojis-list": "^3.0.0",
85028626 "json5": "^1.0.1"
85038627 },
85048628 "dependencies": {
@@ -8643,16 +8767,18 @@
86438767 "version": "1.4.0",
86448768 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
86458769 "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
8646− "dev": true,
86478770 "requires": {
86488771 "js-tokens": "^3.0.0 || ^4.0.0"
86498772 }
86508773 },
86518774 "lower-case": {
8652− "version": "1.1.4",
8653− "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
8654− "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
8655− "dev": true
8775+ "version": "2.0.1",
8776+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
8777+ "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
8778+ "dev": true,
8779+ "requires": {
8780+ "tslib": "^1.10.0"
8781+ }
86568782 },
86578783 "lowlight": {
86588784 "version": "1.11.0",
@@ -8938,9 +9064,9 @@
89389064 "dev": true
89399065 },
89409066 "mini-css-extract-plugin": {
8941− "version": "0.9.0",
8942− "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz",
8943− "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==",
9067+ "version": "0.7.0",
9068+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz",
9069+ "integrity": "sha512-RQIw6+7utTYn8DBGsf/LpRgZCJMpZt+kuawJ/fju0KiOL6nAaTBNmCJwS7HtwSCXfS47gCkmtBFS7HdsquhdxQ==",
89449070 "dev": true,
89459071 "requires": {
89469072 "loader-utils": "^1.1.0",
@@ -8971,9 +9097,9 @@
89719097 }
89729098 },
89739099 "minimist": {
8974− "version": "1.2.0",
8975− "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
8976− "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
9100+ "version": "1.2.5",
9101+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
9102+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
89779103 "dev": true
89789104 },
89799105 "minipass": {
@@ -9137,9 +9263,9 @@
91379263 "dev": true
91389264 },
91399265 "monaco-editor-webpack-plugin": {
9140− "version": "1.8.2",
9141− "resolved": "https://registry.npmjs.org/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.8.2.tgz",
9142− "integrity": "sha512-g9G7A/lxQtpPsYaZFBqm73dwVkOziGUXExIR6iW7ksZUaiMkpvdTiE9O8edgdJGo+XtCmjycmIKB1Lt8VKbSTQ==",
9266+ "version": "1.9.0",
9267+ "resolved": "https://registry.npmjs.org/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.9.0.tgz",
9268+ "integrity": "sha512-tOiiToc94E1sb50BgZ8q8WK/bxus77SRrwCqIpAB5er3cpX78SULbEBY4YPOB8kDolOzKRt30WIHG/D6gz69Ww==",
91439269 "dev": true,
91449270 "requires": {
91459271 "loader-utils": "^1.2.3"
@@ -9232,12 +9358,13 @@
92329358 "dev": true
92339359 },
92349360 "no-case": {
9235− "version": "2.3.2",
9236− "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
9237− "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
9361+ "version": "3.0.3",
9362+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
9363+ "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
92389364 "dev": true,
92399365 "requires": {
9240− "lower-case": "^1.1.1"
9366+ "lower-case": "^2.0.1",
9367+ "tslib": "^1.10.0"
92419368 }
92429369 },
92439370 "node-dir": {
@@ -9301,9 +9428,9 @@
93019428 }
93029429 },
93039430 "node-releases": {
9304− "version": "1.1.48",
9305− "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz",
9306− "integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==",
9431+ "version": "1.1.52",
9432+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz",
9433+ "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==",
93079434 "dev": true,
93089435 "requires": {
93099436 "semver": "^6.3.0"
@@ -9435,8 +9562,7 @@
94359562 "object-assign": {
94369563 "version": "4.1.1",
94379564 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
9438− "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
9439− "dev": true
9565+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
94409566 },
94419567 "object-copy": {
94429568 "version": "0.1.0",
@@ -9619,9 +9745,9 @@
96199745 }
96209746 },
96219747 "open": {
9622− "version": "7.0.2",
9623− "resolved": "https://registry.npmjs.org/open/-/open-7.0.2.tgz",
9624− "integrity": "sha512-70E/pFTPr7nZ9nLDPNTcj3IVqnNvKuP4VsBmoKV9YGTnChe0mlS3C4qM7qKarhZ8rGaHKLfo+vBTHXDp6ZSyLQ==",
9748+ "version": "7.0.3",
9749+ "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz",
9750+ "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==",
96259751 "dev": true,
96269752 "requires": {
96279753 "is-docker": "^2.0.0",
@@ -9824,12 +9950,13 @@
98249950 }
98259951 },
98269952 "param-case": {
9827− "version": "2.1.1",
9828− "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
9829− "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
9953+ "version": "3.0.3",
9954+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz",
9955+ "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==",
98309956 "dev": true,
98319957 "requires": {
9832− "no-case": "^2.2.0"
9958+ "dot-case": "^3.0.3",
9959+ "tslib": "^1.10.0"
98339960 }
98349961 },
98359962 "parent-module": {
@@ -9899,6 +10026,16 @@
989910026 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
990010027 "dev": true
990110028 },
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+ },
990210039 "pascalcase": {
990310040 "version": "0.1.1",
990410041 "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@@ -10144,9 +10281,9 @@
1014410281 "dev": true
1014510282 },
1014610283 "postcss": {
10147− "version": "7.0.26",
10148− "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz",
10149− "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==",
10284+ "version": "7.0.27",
10285+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
10286+ "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
1015010287 "dev": true,
1015110288 "requires": {
1015210289 "chalk": "^2.4.2",
@@ -10295,9 +10432,9 @@
1029510432 }
1029610433 },
1029710434 "postcss-value-parser": {
10298− "version": "4.0.2",
10299− "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
10300− "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
10435+ "version": "4.0.3",
10436+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz",
10437+ "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==",
1030110438 "dev": true
1030210439 },
1030310440 "prelude-ls": {
@@ -10323,22 +10460,93 @@
1032310460 }
1032410461 },
1032510462 "pretty-format": {
10326− "version": "24.9.0",
10327− "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
10328− "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
10463+ "version": "25.1.0",
10464+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz",
10465+ "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==",
1032910466 "dev": true,
1033010467 "requires": {
10331− "@jest/types": "^24.9.0",
10332− "ansi-regex": "^4.0.0",
10333− "ansi-styles": "^3.2.0",
10334− "react-is": "^16.8.4"
10468+ "@jest/types": "^25.1.0",
10469+ "ansi-regex": "^5.0.0",
10470+ "ansi-styles": "^4.0.0",
10471+ "react-is": "^16.12.0"
1033510472 },
1033610473 "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+ },
1033710495 "ansi-regex": {
10338− "version": "4.1.0",
10339− "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
10340− "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
10496+ "version": "5.0.0",
10497+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
10498+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
1034110499 "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+ }
1034210550 }
1034310551 }
1034410552 },
@@ -10419,7 +10627,6 @@
1041910627 "version": "15.7.2",
1042010628 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
1042110629 "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
10422− "dev": true,
1042310630 "requires": {
1042410631 "loose-envify": "^1.4.0",
1042510632 "object-assign": "^4.1.1",
@@ -10436,13 +10643,13 @@
1043610643 }
1043710644 },
1043810645 "proxy-addr": {
10439− "version": "2.0.5",
10440− "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
10441− "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
10646+ "version": "2.0.6",
10647+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
10648+ "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
1044210649 "dev": true,
1044310650 "requires": {
1044410651 "forwarded": "~0.1.2",
10445− "ipaddr.js": "1.9.0"
10652+ "ipaddr.js": "1.9.1"
1044610653 }
1044710654 },
1044810655 "prr": {
@@ -10715,9 +10922,9 @@
1071510922 }
1071610923 },
1071710924 "purty": {
10718− "version": "4.5.2",
10719− "resolved": "https://registry.npmjs.org/purty/-/purty-4.5.2.tgz",
10720− "integrity": "sha512-Ai0sONNVfGxsd+BfPZlp+uJvcdH/qbSytpBXDbMi6zryw/GXI1cSCI2AsTPsbiU9X+f2bilcL03D1uOg+EAFKw==",
10925+ "version": "4.6.0",
10926+ "resolved": "https://registry.npmjs.org/purty/-/purty-4.6.0.tgz",
10927+ "integrity": "sha512-bFpXrH+uHJZGzuiK1yXytpzSKtUWnDN7qgaLRyF32dEejSBXrIRq1FYrQDqLCs6wq4+vz305L9aZKk0O2z5wog==",
1072110928 "dev": true
1072210929 },
1072310930 "q": {
@@ -10814,21 +11021,21 @@
1081411021 },
1081511022 "dependencies": {
1081611023 "schema-utils": {
10817− "version": "2.6.4",
10818− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
10819− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
11024+ "version": "2.6.5",
11025+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
11026+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
1082011027 "dev": true,
1082111028 "requires": {
10822− "ajv": "^6.10.2",
11029+ "ajv": "^6.12.0",
1082311030 "ajv-keywords": "^3.4.1"
1082411031 }
1082511032 }
1082611033 }
1082711034 },
1082811035 "react": {
10829− "version": "16.12.0",
10830− "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz",
10831− "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==",
11036+ "version": "16.13.0",
11037+ "resolved": "https://registry.npmjs.org/react/-/react-16.13.0.tgz",
11038+ "integrity": "sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ==",
1083211039 "dev": true,
1083311040 "requires": {
1083411041 "loose-envify": "^1.1.0",
@@ -10938,6 +11145,12 @@
1093811145 "debug": "^2.6.0"
1093911146 }
1094011147 },
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+ },
1094111154 "figures": {
1094211155 "version": "2.0.0",
1094311156 "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
@@ -10983,6 +11196,26 @@
1098311196 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1098411197 "dev": true
1098511198 },
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+ },
1098611219 "mimic-fn": {
1098711220 "version": "1.2.0",
1098811221 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
@@ -11069,10 +11302,15 @@
1106911302 }
1107011303 }
1107111304 },
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+ },
1107211310 "react-docgen": {
11073− "version": "5.2.0",
11074− "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.2.0.tgz",
11075− "integrity": "sha512-QzloLDy4JftSRoP0EPtTceYHEzKjDk+88bc2tvjTrIjmxznd5SS9V+vs8tUnfukPymmD8+a/aBZPfi+y+1a+Bg==",
11311+ "version": "5.3.0",
11312+ "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.3.0.tgz",
11313+ "integrity": "sha512-hUrv69k6nxazOuOmdGeOpC/ldiKy7Qj/UFpxaQi0eDMrUFUTIPGtY5HJu7BggSmiyAMfREaESbtBL9UzdQ+hyg==",
1107611314 "dev": true,
1107711315 "requires": {
1107811316 "@babel/core": "^7.7.5",
@@ -11094,15 +11332,15 @@
1109411332 }
1109511333 },
1109611334 "react-dom": {
11097− "version": "16.12.0",
11098− "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz",
11099− "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==",
11335+ "version": "16.13.0",
11336+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.0.tgz",
11337+ "integrity": "sha512-y09d2c4cG220DzdlFkPTnVvGTszVvNpC73v+AaLGLHbkpy3SSgvYq8x0rNwPJ/Rk/CicTNgk0hbHNw1gMEZAXg==",
1110011338 "dev": true,
1110111339 "requires": {
1110211340 "loose-envify": "^1.1.0",
1110311341 "object-assign": "^4.1.1",
1110411342 "prop-types": "^15.6.2",
11105− "scheduler": "^0.18.0"
11343+ "scheduler": "^0.19.0"
1110611344 }
1110711345 },
1110811346 "react-draggable": {
@@ -11116,9 +11354,9 @@
1111611354 }
1111711355 },
1111811356 "react-error-overlay": {
11119− "version": "6.0.5",
11120− "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.5.tgz",
11121− "integrity": "sha512-+DMR2k5c6BqMDSMF8hLH0vYKtKTeikiFW+fj0LClN+XZg4N9b8QUAdHC62CGWNLTi/gnuuemNcNcTFrCvK1f+A==",
11357+ "version": "6.0.6",
11358+ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.6.tgz",
11359+ "integrity": "sha512-Yzpno3enVzSrSCnnljmr4b/2KUQSMZaPuqmS26t9k4nW7uwJk6STWmH9heNjPuvqUTO3jOSPkHoKgO4+Dw7uIw==",
1112211360 "dev": true
1112311361 },
1112411362 "react-fast-compare": {
@@ -11155,9 +11393,9 @@
1115511393 }
1115611394 },
1115711395 "react-hot-loader": {
11158− "version": "4.12.19",
11159− "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.19.tgz",
11160− "integrity": "sha512-p8AnA4QE2GtrvkdmqnKrEiijtVlqdTIDCHZOwItkI9kW51bt5XnQ/4Anz8giiWf9kqBpEQwsmnChDCAFBRyR/Q==",
11396+ "version": "4.12.20",
11397+ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.20.tgz",
11398+ "integrity": "sha512-lPlv1HVizi0lsi+UFACBJaydtRYILWkfHAC/lyCs6ZlAxlOZRQIfYHDqiGaRvL/GF7zyti+Qn9XpnDAUvdFA4A==",
1116111399 "dev": true,
1116211400 "requires": {
1116311401 "fast-levenshtein": "^2.0.6",
@@ -11188,10 +11426,27 @@
1118811426 }
1118911427 },
1119011428 "react-is": {
11191− "version": "16.12.0",
11192− "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz",
11193− "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==",
11194− "dev": true
11429+ "version": "16.13.0",
11430+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz",
11431+ "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA=="
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+ }
1119511450 },
1119611451 "react-lifecycles-compat": {
1119711452 "version": "3.0.4",
@@ -11444,27 +11699,27 @@
1144411699 "dev": true
1144511700 },
1144611701 "regenerate-unicode-properties": {
11447− "version": "8.1.0",
11448− "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz",
11449− "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==",
11702+ "version": "8.2.0",
11703+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
11704+ "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
1145011705 "dev": true,
1145111706 "requires": {
1145211707 "regenerate": "^1.4.0"
1145311708 }
1145411709 },
1145511710 "regenerator-runtime": {
11456− "version": "0.13.3",
11457− "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
11458− "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
11459− "dev": true
11711+ "version": "0.13.5",
11712+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
11713+ "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
1146011714 },
1146111715 "regenerator-transform": {
11462− "version": "0.14.1",
11463− "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz",
11464− "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==",
11716+ "version": "0.14.3",
11717+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.3.tgz",
11718+ "integrity": "sha512-zXHNKJspmONxBViAb3ZUmFoFPnTBs3zFhCEZJiwp/gkNzxVbTqNJVjYKx6Qk1tQ1P4XLf4TbH9+KBB7wGoAaUw==",
1146511719 "dev": true,
1146611720 "requires": {
11467− "private": "^0.1.6"
11721+ "@babel/runtime": "^7.8.4",
11722+ "private": "^0.1.8"
1146811723 }
1146911724 },
1147011725 "regex-not": {
@@ -11488,17 +11743,17 @@
1148811743 }
1148911744 },
1149011745 "regexpu-core": {
11491− "version": "4.6.0",
11492− "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz",
11493− "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==",
11746+ "version": "4.7.0",
11747+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
11748+ "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
1149411749 "dev": true,
1149511750 "requires": {
1149611751 "regenerate": "^1.4.0",
11497− "regenerate-unicode-properties": "^8.1.0",
11498− "regjsgen": "^0.5.0",
11499− "regjsparser": "^0.6.0",
11752+ "regenerate-unicode-properties": "^8.2.0",
11753+ "regjsgen": "^0.5.1",
11754+ "regjsparser": "^0.6.4",
1150011755 "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"
1150211757 }
1150311758 },
1150411759 "regjsgen": {
@@ -11508,9 +11763,9 @@
1150811763 "dev": true
1150911764 },
1151011765 "regjsparser": {
11511− "version": "0.6.2",
11512− "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz",
11513− "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==",
11766+ "version": "0.6.4",
11767+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
11768+ "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
1151411769 "dev": true,
1151511770 "requires": {
1151611771 "jsesc": "~0.5.0"
@@ -11562,9 +11817,9 @@
1156211817 "dev": true
1156311818 },
1156411819 "request": {
11565− "version": "2.88.0",
11566− "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
11567− "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
11820+ "version": "2.88.2",
11821+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
11822+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
1156811823 "dev": true,
1156911824 "requires": {
1157011825 "aws-sign2": "~0.7.0",
@@ -11574,7 +11829,7 @@
1157411829 "extend": "~3.0.2",
1157511830 "forever-agent": "~0.6.1",
1157611831 "form-data": "~2.3.2",
11577− "har-validator": "~5.1.0",
11832+ "har-validator": "~5.1.3",
1157811833 "http-signature": "~1.2.0",
1157911834 "is-typedarray": "~1.0.0",
1158011835 "isstream": "~0.1.2",
@@ -11584,17 +11839,11 @@
1158411839 "performance-now": "^2.1.0",
1158511840 "qs": "~6.5.2",
1158611841 "safe-buffer": "^5.1.2",
11587− "tough-cookie": "~2.4.3",
11842+ "tough-cookie": "~2.5.0",
1158811843 "tunnel-agent": "^0.6.0",
1158911844 "uuid": "^3.3.2"
1159011845 },
1159111846 "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− },
1159811847 "qs": {
1159911848 "version": "6.5.2",
1160011849 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
@@ -11602,13 +11851,13 @@
1160211851 "dev": true
1160311852 },
1160411853 "tough-cookie": {
11605− "version": "2.4.3",
11606− "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
11607− "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
11854+ "version": "2.5.0",
11855+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
11856+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1160811857 "dev": true,
1160911858 "requires": {
11610− "psl": "^1.1.24",
11611− "punycode": "^1.4.1"
11859+ "psl": "^1.1.28",
11860+ "punycode": "^2.1.1"
1161211861 }
1161311862 }
1161411863 }
@@ -11785,9 +12034,9 @@
1178512034 }
1178612035 },
1178712036 "run-async": {
11788− "version": "2.3.0",
11789− "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
11790− "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
12037+ "version": "2.4.0",
12038+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz",
12039+ "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==",
1179112040 "dev": true,
1179212041 "requires": {
1179312042 "is-promise": "^2.1.0"
@@ -11848,9 +12097,9 @@
1184812097 }
1184912098 },
1185012099 "scheduler": {
11851− "version": "0.18.0",
11852− "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz",
11853− "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==",
12100+ "version": "0.19.0",
12101+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.0.tgz",
12102+ "integrity": "sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA==",
1185412103 "dev": true,
1185512104 "requires": {
1185612105 "loose-envify": "^1.1.0",
@@ -12141,8 +12390,7 @@
1214112390 "shallow-equal": {
1214212391 "version": "1.2.1",
1214312392 "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
12144− "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==",
12145− "dev": true
12393+ "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA=="
1214612394 },
1214712395 "shallowequal": {
1214812396 "version": "1.1.0",
@@ -12481,9 +12729,9 @@
1248112729 "dev": true
1248212730 },
1248312731 "spago": {
12484− "version": "0.13.1",
12485− "resolved": "https://registry.npmjs.org/spago/-/spago-0.13.1.tgz",
12486− "integrity": "sha512-cfxhWEIbPDcPoTHZbAdtmPRui70dzUo4JZlybrGiWo9A+HpWrfkefzjhn6AcOWY/2tmtmOhYJirtsQzxvO4VnQ==",
12732+ "version": "0.14.0",
12733+ "resolved": "https://registry.npmjs.org/spago/-/spago-0.14.0.tgz",
12734+ "integrity": "sha512-nQMbxZkj5a9c1j36aUd7dp2BhlSByFkfu7/I4bA4nAnL39IAsoxz/p9B6FFs/TKCDcoaWjjjIvnOmei9G4j8SA==",
1248712735 "dev": true,
1248812736 "requires": {
1248912737 "request": "^2.88.0",
@@ -12550,9 +12798,9 @@
1255012798 },
1255112799 "dependencies": {
1255212800 "readable-stream": {
12553− "version": "3.5.0",
12554− "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
12555− "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
12801+ "version": "3.6.0",
12802+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
12803+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
1255612804 "dev": true,
1255712805 "requires": {
1255812806 "inherits": "^2.0.3",
@@ -12814,12 +13062,12 @@
1281413062 },
1281513063 "dependencies": {
1281613064 "schema-utils": {
12817− "version": "2.6.4",
12818− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
12819− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
13065+ "version": "2.6.5",
13066+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
13067+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
1282013068 "dev": true,
1282113069 "requires": {
12822− "ajv": "^6.10.2",
13070+ "ajv": "^6.12.0",
1282313071 "ajv-keywords": "^3.4.1"
1282413072 }
1282513073 }
@@ -12835,9 +13083,9 @@
1283513083 }
1283613084 },
1283713085 "svg-parser": {
12838− "version": "2.0.3",
12839− "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.3.tgz",
12840− "integrity": "sha512-fnCWiifNhK8i2Z7b9R5tbNahpxrRdAaQbnoxKlT2KrSCj9Kq/yBSgulCRgBJRhy1dPnSY5slg5ehPUnzpEcHlg==",
13086+ "version": "2.0.4",
13087+ "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz",
13088+ "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==",
1284113089 "dev": true
1284213090 },
1284313091 "svgo": {
@@ -12891,6 +13139,11 @@
1289113139 }
1289213140 }
1289313141 },
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+ },
1289413147 "symbol-tree": {
1289513148 "version": "3.2.4",
1289613149 "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -12972,9 +13225,9 @@
1297213225 "dev": true
1297313226 },
1297413227 "terser": {
12975− "version": "4.6.3",
12976− "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz",
12977− "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==",
13228+ "version": "4.6.6",
13229+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.6.tgz",
13230+ "integrity": "sha512-4lYPyeNmstjIIESr/ysHg2vUPRGf2tzF9z2yYwnowXVuVzLEamPN1Gfrz7f8I9uEPuHcbFlW4PLIAsJoxXyJ1g==",
1297813231 "dev": true,
1297913232 "requires": {
1298013233 "commander": "^2.20.0",
@@ -12997,9 +13250,9 @@
1299713250 }
1299813251 },
1299913252 "terser-webpack-plugin": {
13000− "version": "2.3.4",
13001− "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.4.tgz",
13002− "integrity": "sha512-Nv96Nws2R2nrFOpbzF6IxRDpIkkIfmhvOws+IqMvYdFLO7o6wAILWFKONFgaYy8+T4LVz77DQW0f7wOeDEAjrg==",
13253+ "version": "2.3.5",
13254+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz",
13255+ "integrity": "sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w==",
1300313256 "dev": true,
1300413257 "requires": {
1300513258 "cacache": "^13.0.1",
@@ -13040,12 +13293,12 @@
1304013293 }
1304113294 },
1304213295 "schema-utils": {
13043− "version": "2.6.4",
13044− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
13045− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
13296+ "version": "2.6.5",
13297+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
13298+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
1304613299 "dev": true,
1304713300 "requires": {
13048− "ajv": "^6.10.2",
13301+ "ajv": "^6.12.0",
1304913302 "ajv-keywords": "^3.4.1"
1305013303 }
1305113304 },
@@ -13073,6 +13326,17 @@
1307313326 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1307413327 "dev": true
1307513328 },
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+ },
1307613340 "throttle-debounce": {
1307713341 "version": "2.1.0",
1307813342 "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.1.0.tgz",
@@ -13120,8 +13384,7 @@
1312013384 "tiny-warning": {
1312113385 "version": "1.0.3",
1312213386 "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
13123− "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
13124− "dev": true
13387+ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
1312513388 },
1312613389 "tmp": {
1312713390 "version": "0.0.33",
@@ -13225,15 +13488,15 @@
1322513488 "dev": true
1322613489 },
1322713490 "ts-pnp": {
13228− "version": "1.1.5",
13229− "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.5.tgz",
13230− "integrity": "sha512-ti7OGMOUOzo66wLF3liskw6YQIaSsBgc4GOAlWRnIEj8htCxJUxskanMUoJOD6MDCRAXo36goXJZch+nOS0VMA==",
13491+ "version": "1.1.6",
13492+ "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.6.tgz",
13493+ "integrity": "sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ==",
1323113494 "dev": true
1323213495 },
1323313496 "tslib": {
13234− "version": "1.10.0",
13235− "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
13236− "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
13497+ "version": "1.11.1",
13498+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
13499+ "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==",
1323713500 "dev": true
1323813501 },
1323913502 "tty-browserify": {
@@ -13295,9 +13558,9 @@
1329513558 "dev": true
1329613559 },
1329713560 "typescript": {
13298− "version": "3.7.5",
13299− "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz",
13300− "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==",
13561+ "version": "3.8.3",
13562+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz",
13563+ "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==",
1330113564 "dev": true
1330213565 },
1330313566 "unfetch": {
@@ -13323,15 +13586,15 @@
1332313586 }
1332413587 },
1332513588 "unicode-match-property-value-ecmascript": {
13326− "version": "1.1.0",
13327− "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz",
13328− "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==",
13589+ "version": "1.2.0",
13590+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
13591+ "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==",
1332913592 "dev": true
1333013593 },
1333113594 "unicode-property-aliases-ecmascript": {
13332− "version": "1.0.5",
13333− "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz",
13334− "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==",
13595+ "version": "1.1.0",
13596+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
13597+ "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
1333513598 "dev": true
1333613599 },
1333713600 "union-value": {
@@ -13440,12 +13703,6 @@
1344013703 "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
1344113704 "dev": true
1344213705 },
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− },
1344913706 "uri-js": {
1345013707 "version": "4.2.2",
1345113708 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
@@ -13497,12 +13754,12 @@
1349713754 "dev": true
1349813755 },
1349913756 "schema-utils": {
13500− "version": "2.6.4",
13501− "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz",
13502− "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==",
13757+ "version": "2.6.5",
13758+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
13759+ "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
1350313760 "dev": true,
1350413761 "requires": {
13505− "ajv": "^6.10.2",
13762+ "ajv": "^6.12.0",
1350613763 "ajv-keywords": "^3.4.1"
1350713764 }
1350813765 }
@@ -13631,12 +13888,12 @@
1363113888 "dev": true
1363213889 },
1363313890 "w3c-hr-time": {
13634− "version": "1.0.1",
13635− "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
13636− "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
13891+ "version": "1.0.2",
13892+ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
13893+ "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
1363713894 "dev": true,
1363813895 "requires": {
13639− "browser-process-hrtime": "^0.1.2"
13896+ "browser-process-hrtime": "^1.0.0"
1364013897 }
1364113898 },
1364213899 "w3c-xmlserializer": {
@@ -13692,9 +13949,9 @@
1369213949 "dev": true
1369313950 },
1369413951 "webpack": {
13695− "version": "4.41.5",
13696− "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz",
13697− "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==",
13952+ "version": "4.42.0",
13953+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz",
13954+ "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==",
1369813955 "dev": true,
1369913956 "requires": {
1370013957 "@webassemblyjs/ast": "1.8.5",
@@ -13780,9 +14037,9 @@
1378014037 }
1378114038 },
1378214039 "webpack-cli": {
13783− "version": "3.3.10",
13784− "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz",
13785− "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==",
14040+ "version": "3.3.11",
14041+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz",
14042+ "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==",
1378614043 "dev": true,
1378714044 "requires": {
1378814045 "chalk": "2.4.2",
@@ -13798,6 +14055,12 @@
1379814055 "yargs": "13.2.4"
1379914056 },
1380014057 "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+ },
1380114064 "enhanced-resolve": {
1380214065 "version": "4.1.0",
1380314066 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
@@ -13815,6 +14078,26 @@
1381514078 "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
1381614079 "dev": true
1381714080 },
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+ },
1381814101 "supports-color": {
1381914102 "version": "6.1.0",
1382014103 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
@@ -14313,9 +14596,9 @@
1431314596 "dev": true
1431414597 },
1431514598 "ws": {
14316− "version": "7.2.1",
14317− "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz",
14318− "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==",
14599+ "version": "7.2.3",
14600+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz",
14601+ "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==",
1431914602 "dev": true
1432014603 },
1432114604 "xml-name-validator": {
@@ -14349,12 +14632,12 @@
1434914632 "dev": true
1435014633 },
1435114634 "yaml": {
14352− "version": "1.7.2",
14353− "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz",
14354− "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==",
14635+ "version": "1.8.2",
14636+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.8.2.tgz",
14637+ "integrity": "sha512-omakb0d7FjMo3R1D2EbTKVIk6dAVLRxFXdLZMEUToeAvuqgG/YuHMuQOZ5fgk+vQ8cx+cnGKwyg+8g8PNT0xQg==",
1435514638 "dev": true,
1435614639 "requires": {
14357− "@babel/runtime": "^7.6.3"
14640+ "@babel/runtime": "^7.8.7"
1435814641 }
1435914642 },
1436014643 "yargs": {
@@ -14420,9 +14703,9 @@
1442014703 }
1442114704 },
1442214705 "yargs-parser": {
14423− "version": "13.1.1",
14424− "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
14425− "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
14706+ "version": "13.1.2",
14707+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
14708+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
1442614709 "dev": true,
1442714710 "requires": {
1442814711 "camelcase": "^5.0.0",
components/package.json+3−2
@@ -32,10 +32,11 @@
3232 "url": "https://github.com/i-am-the-slime/psfp/issues"
3333 },
3434 "homepage": "https://github.com/i-am-the-slime/psfp#readme",
35− "dependencies": {},
35+ "dependencies": {
36+ "react-jss": "^10.1.1"
37+ },
3638 "devDependencies": {
3739 "@babel/core": "^7.6.0",
38− "@material-ui/styles": "^4.4.3",
3940 "@storybook/react": "^5.2.0",
4041 "@testing-library/react": "^9.1.4",
4142 "babel-loader": "^8.0.6",
components/spago.dhall+2
@@ -9,8 +9,10 @@ You can edit this file as you like.
99 , "debug"
1010 , "effect"
1111 , "interpolate"
12+ , "justifill"
1213 , "matryoshka"
1314 , "milkis"
15+ , "oneof"
1416 , "psci-support"
1517 , "pseudo-random"
1618 , "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 @@
11module Storybook.Decorator.FullScreen where
22
33import Prelude
4−import Yoga.CSS.Safer (cssSafer)
54import Data.Array (find)
65import Data.Map (Map)
76import Data.Maybe (Maybe, fromMaybe)
87import Data.Traversable (traverse_)
98import Effect (Effect)
9+import JSS (jss, jssClasses)
1010import React.Basic (JSX)
1111import React.Basic.DOM (css)
1212import React.Basic.DOM as R
@@ -15,17 +15,17 @@ import React.Basic.Events (handler)
1515import React.Basic.Hooks (ReactComponent, component, element, useState, (/\))
1616import React.Basic.Hooks as React
1717import 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)
2318import Web.HTML (window)
2419import Web.HTML.Window (localStorage)
2520import Web.Storage.Storage (getItem, setItem)
26−import Yoga.Font as Font
2721import Yoga.Font.PragmataPro as PragmataPro
2822import 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)
2929
3030fullScreenDecorator ∷ Effect JSX -> Effect JSX
3131fullScreenDecorator mkChild = do
@@ -66,21 +66,23 @@ mkThemeSwitcher ∷
6666 )
6767mkThemeSwitcher = do
6868 themeProvider <- mkThemeProvider
69+ baseline <- mkCssBaseline
6970 useStyles <-
70− makeStyles_
71− { selector:
72− cssSafer
73− { position: "absolute"
74− , zIndex: 20
75− , top: 10
76− , right: 10
71+ makeStylesJSS
72+ $ jssClasses \_ ->
73+ { selector:
74+ jss
75+ { position: "absolute"
76+ , zIndex: 20
77+ , top: 10
78+ , right: 10
79+ }
80+ , "@font-face": jss (Rubik.fontFamilies <> [ PragmataPro.fontFamily ])
7781 }
78− , "@font-face": Font.arrayToCss (Rubik.fontFamilies <> [ PragmataPro.fontFamily ])
79− }
8082 storage <- window >>= localStorage
8183 saved ∷ (Maybe DefaultTheme) <- getItem "theme" storage <#> (_ >>= readJSON_)
8284 component "ThemeSwitcher" \{ defaultTheme, themes, kids } -> React.do
83− classes <- useStyles
85+ classes <- useStyles {}
8486 { theme, name } /\ modTheme <- useState $ fromMaybe defaultTheme saved
8587 let
8688 setTheme newTheme = do
@@ -110,10 +112,14 @@ mkThemeSwitcher = do
110112 $ element themeProvider
111113 { theme
112114 , children:
113− [ R.div
114− { style: css { backgroundColor: theme.backgroundColour, width: "100%", height: "100%" }
115− , children:
116− [ themeSelect ] <> kids
117− }
118− ]
115+ pure
116+ $ element baseline
117+ { kids:
118+ [ R.div
119+ { style: css { backgroundColor: theme.backgroundColour, width: "100%", height: "100%" }
120+ , children:
121+ [ themeSelect ] <> kids
122+ }
123+ ]
124+ }
119125 }
components/src/Storybook/React.purs+1−3
@@ -3,11 +3,9 @@ module Storybook.React
33 , Storybook
44 , add
55 , addDecorator
6− )
7− where
6+ ) where
87
98import Prelude hiding (add)
10−
119import Control.Monad.Reader (ReaderT, ask, lift, local, runReaderT)
1210import Effect (Effect)
1311import 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
22
33import Prelude
44import CSS (ColorSpace(..), mix, toHexString)
5−import Yoga.CSS.Safer (cssSafer)
65import Color (fromHexString)
76import Data.Foldable (intercalate)
87import Data.Interpolate (i)
98import Data.Maybe (fromMaybe)
109import Data.Monoid (guard)
1110import Effect (Effect)
11+import JSS (JSSClasses, JSSElem, jss, jssClasses)
1212import Prim.Row (class Lacks, class Union)
1313import React.Basic (JSX)
1414import React.Basic.DOM (Props_button, unsafeCreateDOMComponent)
@@ -17,8 +17,8 @@ import React.Basic.Hooks (ReactComponent, component, element)
1717import React.Basic.Hooks as React
1818import Record (union)
1919import Yoga.Theme (increaseContrast)
20−import Yoga.Theme.Styles (classNames, makeStyles)
21−import Yoga.Theme.Types (CSSTheme)
20+import Yoga.Theme.Styles (makeStylesJSS)
21+import Yoga.Theme.Types (CSSTheme, YogaTheme)
2222
2323data ButtonType
2424 = PlainButton
@@ -26,6 +26,116 @@ data ButtonType
2626 | DisabledButton
2727
2828derive 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+ }
29139
30140mkButton ∷
31141 ∀ attrs attrs_.
@@ -42,120 +152,16 @@ mkButton ∷
42152 }
43153 )
44154mkButton = do
45− useStyles <-
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− }
155+ useStyles <- makeStylesJSS styles
144156 component "Button" \{ kids, buttonType, buttonProps, className } -> React.do
145− rawClasses <- useStyles
146− let
147− classes = flip classNames rawClasses
148− -- [TODO]: How do you do this in a typesafe manner?
157+ classes <- useStyles {}
149158 pure
150159 $ R.div
151− { className: rawClasses.buttonContainer
160+ { className: classes.buttonContainer
152161 , children:
153162 [ (element $ unsafeCreateDOMComponent "button")
154163 $ { className:
155− ( classes
156− [ _.btn
157− , guard (buttonType == HighlightedButton) _.highlightedButton
158− ]
164+ ( classes.btn <> " " <> guard (buttonType == HighlightedButton) classes.highlightedButton
159165 )
160166 <> " "
161167 <> className
components/src/Yoga/Card/Component.purs+66−65
@@ -1,45 +1,49 @@
11module Yoga.Card.Component where
22
33import Prelude
4−import Yoga.CSS.Safer (cssSafer)
54import Data.Interpolate (i)
65import Effect (Effect)
6+import JSS (JSSClasses, JSSElem, jss, jssClasses)
77import React.Basic (JSX)
88import React.Basic.DOM as R
99import React.Basic.Hooks (ReactComponent, component)
1010import React.Basic.Hooks as React
11−import Yoga.Theme.Styles (classNames, makeStyles)
12−import Yoga.Theme.Types (CSSTheme)
11+import Yoga.Theme.Styles (makeStylesJSS)
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+ }
1332
1433mkCard ∷
1534 Effect
1635 ( ReactComponent
1736 { kids ∷ Array JSX
18− , className :: String
37+ , className ∷ String
1938 }
2039 )
2140mkCard = do
22− useStyles <-
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− }
41+ useStyles <- makeStylesJSS styles
3642 component "Card" \{ kids, className } -> React.do
37− rawClasses <- useStyles
38− let
39− classes = flip classNames rawClasses
43+ classes <- useStyles {}
4044 pure
4145 $ R.div
42− { className: classes [ _.card ] <> " " <> className
46+ { className: classes.card <> " " <> className
4347 , children: kids
4448 }
4549
@@ -51,23 +55,22 @@ mkCardTitle ∷
5155 )
5256mkCardTitle = do
5357 useStyles <-
54− makeStyles \(theme ∷ CSSTheme) ->
55− { cardtitle:
56− cssSafer
57− { color: theme.textColourLightest
58− , fontSize: "1.2em"
59− , fontWeight: "400"
60− , fontFamily: theme.headingFontFamily
61− , padding: "4px 8px"
58+ makeStylesJSS
59+ $ jssClasses \(theme ∷ CSSTheme) ->
60+ { cardtitle:
61+ jss
62+ { color: theme.textColourLightest
63+ , fontSize: "1.2em"
64+ , fontWeight: "400"
65+ , fontFamily: theme.headingFontFamily
66+ , padding: "4px 8px"
67+ }
6268 }
63− }
6469 component "CardTitle" \{ kids } -> React.do
65− rawClasses <- useStyles
66− let
67− classes = flip classNames rawClasses
70+ classNames <- useStyles {}
6871 pure
6972 $ R.div
70− { className: classes [ _.cardtitle ]
73+ { className: classNames.cardtitle
7174 , children: kids
7275 }
7376
@@ -79,24 +82,23 @@ mkCardSubtitle ∷
7982 )
8083mkCardSubtitle = do
8184 useStyles <-
82− makeStyles \(theme ∷ CSSTheme) ->
83− { cardtitle:
84− cssSafer
85− { color: theme.textColourDarker
86− , opacity: "0.8"
87− , fontSize: "1.0em"
88− , fontWeight: "500"
89− , fontFamily: theme.headingFontFamily
90− , padding: "4px 8px 22px 8px"
85+ makeStylesJSS
86+ $ jssClasses \(theme ∷ CSSTheme) ->
87+ { cardtitle:
88+ jss
89+ { color: theme.textColourDarker
90+ , opacity: "0.8"
91+ , fontSize: "1.0em"
92+ , fontWeight: "500"
93+ , fontFamily: theme.headingFontFamily
94+ , padding: "4px 8px 22px 8px"
95+ }
9196 }
92− }
9397 component "CardSubtitle" \{ kids } -> React.do
94− rawClasses <- useStyles
95− let
96− classes = flip classNames rawClasses
98+ classNames <- useStyles {}
9799 pure
98100 $ R.div
99− { className: classes [ _.cardtitle ]
101+ { className: classNames.cardtitle
100102 , children: kids
101103 }
102104
@@ -108,25 +110,24 @@ mkCardContent ∷
108110 )
109111mkCardContent = do
110112 useStyles <-
111− makeStyles \(theme ∷ CSSTheme) ->
112− { cardContent:
113− cssSafer
114− { fontFamily: theme.textFontFamily
115− , color: theme.textColourDarker
116− , fontSize: "0.8em"
117− , fontWeight: "300"
118− , "WebkitFontSmoothing": "subpixel-antialiased"
119− , textAlign: "justify"
120− , hyphens: "auto"
121− , padding: "4px 8px 22px 8px"
113+ makeStylesJSS
114+ $ jssClasses \(theme ∷ CSSTheme) ->
115+ { cardContent:
116+ jss
117+ { fontFamily: theme.textFontFamily
118+ , color: theme.textColourDarker
119+ , fontSize: "0.8em"
120+ , fontWeight: "300"
121+ , "WebkitFontSmoothing": "subpixel-antialiased"
122+ , textAlign: "justify"
123+ , hyphens: "auto"
124+ , padding: "4px 8px 22px 8px"
125+ }
122126 }
123− }
124127 component "CardContent" \{ kids } -> React.do
125− rawClasses <- useStyles
126− let
127− classes = flip classNames rawClasses
128+ classNames <- useStyles {}
128129 pure
129130 $ R.div
130− { className: classes [ _.cardContent ]
131+ { className: classNames.cardContent
131132 , children: kids
132133 }
components/src/Yoga/Card/Stories.purs+9−10
@@ -29,16 +29,15 @@ stories = do
2929 pure
3030 $ R.div
3131 { children:
32− pure
33− $ element card
34− { kids:
35− [ element cardTitle { kids: [ R.text title ] }
36− , element cardSubtitle { kids: [ R.text subtitle ] }
37− , element cardContent { kids: [ content ] }
38− ]
39− , className: ""
40− }
41− , style: css { width: "400px", padding: "60px", overflow: "hidden" }
32+ pure
33+ $ element card
34+ { kids:
35+ [ element cardTitle { kids: [ R.text title ] }
36+ , element cardSubtitle { kids: [ R.text subtitle ] }
37+ , element cardContent { kids: [ content ] }
38+ ]
39+ , className: ""
40+ }
4241 }
4342
4443loremIpsum ∷ 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
22
33import Prelude
44import Data.Array (foldMap)
55import Data.Maybe (Maybe)
66import Effect (Effect)
7−import Yoga.Panel.Styles as Panel
87import Prim.Row (class Nub, class Union)
98import React.Basic (JSX)
109import React.Basic.DOM as R
1110import React.Basic.Hooks (ReactComponent, component)
1211import React.Basic.Hooks as React
1312import Record (disjointUnion)
14−import Yoga.Theme.Styles (makeStyles)
13+import Yoga.Center.Styles as Center
14+import Yoga.Theme.Styles (makeStylesJSS)
1515
1616type Props
1717 = Record PropsR
@@ -20,13 +20,13 @@ type PropsR
2020 = OptionalProps ()
2121
2222type OptionalProps r
23− = ( kids :: Array JSX
24− , className :: Maybe String
23+ = ( kids ∷ Array JSX
24+ , className ∷ Maybe String
2525 | r
2626 )
2727
2828withDefaults ∷
29− forall r missing props.
29+ ∀ r missing props.
3030 Union r missing props =>
3131 Nub props props =>
3232 Monoid { | missing } =>
@@ -36,11 +36,11 @@ withDefaults x = disjointUnion x mempty
3636
3737makeComponent ∷ Effect (ReactComponent Props)
3838makeComponent = do
39− useStyles <- makeStyles Panel.styles
40− component "Panel" \{ kids, className } -> React.do
41− classes <- useStyles
39+ useStyles <- makeStylesJSS Center.styles
40+ component "Center" \{ kids, className } -> React.do
41+ classes <- useStyles {}
4242 pure
4343 $ R.div
44− { className: classes.panel <> foldMap (" " <> _) className
44+ { className: classes.centre <> foldMap (" " <> _) className
4545 , children: kids
4646 }
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
22
33import Prelude hiding (add)
44import Storybook.Decorator.FullScreen (fullScreenDecorator)
55import Effect (Effect)
6−import Yoga.Panel.Component as Panel
6+import Yoga.Center.Component as Center
77import React.Basic.DOM as R
8−import Record (disjointUnion)
98import Storybook.React (Storybook, add, addDecorator, storiesOf)
109
1110stories ∷ Effect Storybook
1211stories = do
13− storiesOf "Panel" do
12+ storiesOf "Center" do
1413 addDecorator fullScreenDecorator
15− add "The Panel" Panel.makeComponent
16− [ { kids:
17− [ R.text "Rowtype Yoga"
18− ]
19− }
20− `disjointUnion`
21− mempty
14+ add "The Center" Center.makeComponent
15+ [ Center.withDefaults
16+ { kids:
17+ [ R.text "Rowtype Yoga"
18+ ]
19+ }
2220 ]
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 @@
11module Yoga.CompileEditor.Component where
22
33import Prelude hiding (add)
4−import Yoga.Button.Component (ButtonType(..), mkButton)
5−import Yoga.CSS.Safer (cssSafer)
6−import Yoga.Card.Component (mkCard)
74import Data.Array (intercalate)
85import Data.Either (Either(..))
96import Data.Foldable (for_)
107import Data.Interpolate (i)
118import Data.Maybe (Maybe(..))
129import Data.Tuple.Nested ((/\))
13−import Yoga.Editor (getValue, mkEditor, setValue)
1410import Effect (Effect)
1511import Effect.Aff (Aff, attempt, error, launchAff_, message, throwError)
1612import Effect.Class (liftEffect)
13+import JSS (jss, jssClasses)
1714import Milkis as M
1815import Milkis.Impl (FetchImpl)
1916import React.Basic (ReactComponent)
@@ -24,11 +21,14 @@ import React.Basic.Hooks as React
2421import Shared.Json (readAff)
2522import Shared.Models.Body as Body
2623import 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)
2828import Yoga.Theme.Types (CSSTheme)
2929
3030type Props
31− = { initialCode :: String, height :: String, language :: String }
31+ = { initialCode ∷ String, height ∷ String, language ∷ String }
3232
3333mkCompileEditor ∷ FetchImpl -> Effect (ReactComponent Props)
3434mkCompileEditor fetch = do
@@ -36,43 +36,42 @@ mkCompileEditor fetch = do
3636 card <- mkCard
3737 button <- mkButton
3838 useStyles <-
39− makeStyles \(theme :: CSSTheme) ->
40− { editor:
41− cssSafer
42− { background: theme.backgroundColour
43− , height: "80%"
44− , padding: "20px"
45− , marginTop: "0px"
46− , marginLeft: "35px"
47− , marginRight: "35px"
48− , marginBottom: "35px"
49− , borderRadius: "12px"
50− , boxShadow: i "22px 22px 24px " theme.backgroundColourDarker ", -22px -22px 24px " theme.backgroundColourLighter :: String
51− , display: "flex"
52− , flexDirection: "column"
53− }
54− , buttons:
55− cssSafer
56− { marginBottom: "4px"
57− , display: "flex"
58− , alignSelf: "flex-end"
59− }
60− , compileButton: cssSafer {}
61− , resetButton: cssSafer {}
62− , card:
63− cssSafer
64− { marginLeft: "35px"
65− , marginRight: "35px"
66− , opacity: 0
67− , zIndex: 0
39+ makeStylesJSS
40+ $ jssClasses \(theme ∷ CSSTheme) ->
41+ { editor:
42+ jss
43+ { background: theme.backgroundColour
44+ , boxSizing: "content-box"
45+ , height: "80%"
46+ , padding: "20px"
47+ , marginTop: "0px"
48+ , borderRadius: "12px"
49+ , boxShadow: i "22px 22px 24px " theme.backgroundColourDarker ", -22px -22px 24px " theme.backgroundColourLighter ∷ String
50+ , display: "flex"
51+ , flexDirection: "column"
52+ }
53+ , buttons:
54+ jss
55+ { marginBottom: "4px"
56+ , display: "flex"
57+ , alignSelf: "flex-end"
58+ }
59+ , compileButton: jss {}
60+ , resetButton: jss {}
61+ , card:
62+ jss
63+ { marginLeft: "35px"
64+ , marginRight: "35px"
65+ , opacity: 0
66+ , 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" }
6871 }
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− }
7372 component "CompileEditor" \{ initialCode, height, language } -> React.do
7473 maybeEditor /\ modifyEditor <- useState Nothing
75− classes <- useStyles
74+ classes <- useStyles {}
7675 let
7776 onLoad e = do
7877 setValue initialCode e
@@ -137,7 +136,7 @@ mkCompileEditor fetch = do
137136 }
138137 ]
139138
140−compileAndRun :: M.Fetch -> Body.CompileRequest -> Aff (Either Body.CompileResult Body.RunResult)
139+compileAndRun ∷ M.Fetch -> Body.CompileRequest -> Aff (Either Body.CompileResult Body.RunResult)
141140compileAndRun fetch body = do
142141 response <-
143142 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
22
33import Prelude
4−import Yoga.Panel.Component as Panel
4+import Yoga.Cover.Component as Cover
55import React.TestingLibrary (describeComponent, renderComponent)
66import Test.Spec (Spec, it)
77
88spec :: Spec Unit
99spec =
10− describeComponent Panel.makeComponent
11− "The Panel Component" do
10+ describeComponent Cover.makeComponent
11+ "The Cover Component" do
1212 it "renders without problems" \panel -> do
13− _ <- renderComponent panel (Panel.withDefaults {})
13+ _ <- renderComponent panel (Cover.withDefaults {})
1414 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 @@
11module Yoga.Font where
22
3−import React.Basic.DOM (CSS)
4−import Unsafe.Coerce (unsafeCoerce)
5−
6−foreign import data Font :: Type
3+foreign import data Font ∷ Type
74
85type FontFamily
9− = { fontFamily :: String
10− , fontStyle :: String
11− , fontWeight :: String
12− , src :: String
6+ = { fontFamily ∷ String
7+ , fontStyle ∷ String
8+ , fontWeight ∷ String
9+ , src ∷ String
1310 }
14−
15−arrayToCss :: Array FontFamily -> CSS
16−arrayToCss = unsafeCoerce
components/src/Yoga/Header/Component.purs+30−31
@@ -1,57 +1,56 @@
11module Yoga.Header.Component where
22
33import Prelude
4−import Yoga.CSS.Safer (cssSafer)
54import Data.Interpolate (i)
65import Effect (Effect)
6+import JSS (jss, jssClasses)
77import React.Basic (JSX)
88import React.Basic.DOM as R
99import React.Basic.Hooks (ReactComponent, component, element)
1010import React.Basic.Hooks as React
1111import Yoga.SVG.Icon (trianglelogoIcon)
12−import Yoga.Theme.Styles (classNames, makeStyles)
12+import Yoga.Theme.Styles (makeStylesJSS)
1313import Yoga.Theme.Types (CSSTheme)
1414
1515mkHeader ∷
1616 Effect
1717 ( ReactComponent
18− { kids :: Array JSX
19− , className :: String
18+ { kids ∷ Array JSX
19+ , className ∷ String
2020 }
2121 )
2222mkHeader = do
2323 useStyles <-
24− makeStyles \(theme ∷ CSSTheme) ->
25− { card:
26− cssSafer
27− { background: theme.backgroundColour
28− , borderBottom: "1px solid " <> theme.backgroundColourLightest
29− , borderRight: "1px solid " <> theme.backgroundColourLightest
30− , borderLeft: "1px solid " <> theme.backgroundColourLightest
31− , color: theme.textColour
32− , fontFamily: theme.textFontFamily
33− , fontSize: "2em"
34− , padding: "20px"
35− , display: "flex"
36− , flex: "0 0 100%"
37− , boxShadow:
38− (i "30px 30px 60px " theme.backgroundColourDarker ", -30px -30px 60px " theme.backgroundColourLighter ";") :: String
24+ makeStylesJSS
25+ $ jssClasses \(theme ∷ CSSTheme) ->
26+ { card:
27+ jss
28+ { background: theme.backgroundColour
29+ , borderBottom: "1px solid " <> theme.backgroundColourLightest
30+ , borderRight: "1px solid " <> theme.backgroundColourLightest
31+ , borderLeft: "1px solid " <> theme.backgroundColourLightest
32+ , color: theme.textColour
33+ , fontFamily: theme.textFontFamily
34+ , fontSize: "2em"
35+ , padding: "20px"
36+ , display: "flex"
37+ , flex: "0 0 100%"
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+ }
3947 }
40− , logo:
41− cssSafer
42− { fill: theme.textColour
43− , marginRight: "10px"
44− , marginBottom: "5px"
45− }
46− }
4748 component "Header" \{ kids, className } -> React.do
48− rawClasses <- useStyles
49− let
50− classes = flip classNames rawClasses
49+ classNames <- useStyles {}
5150 pure
5251 $ R.div
53− { className: classes [ _.card ] <> " " <> className
52+ { className: classNames.card <> " " <> className
5453 , children:
55− [ element trianglelogoIcon { width: 36, className: rawClasses.logo } ]
54+ [ element trianglelogoIcon { width: 36, className: classNames.logo } ]
5655 <> kids
5756 }
components/src/Yoga/Header/Stories.purs+1
@@ -7,6 +7,7 @@ import Yoga.Header.Component (mkHeader)
77import React.Basic.DOM as R
88import Storybook.React (Storybook, add, addDecorator, storiesOf)
99
10+-- What's about
1011stories ∷ Effect Storybook
1112stories = do
1213 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 @@
11module Yoga.Editor where
22
33import Prelude
4−import Yoga.CSS.Safer (cssSafer)
54import Control.Promise (Promise)
65import Control.Promise as Promise
76import Data.Maybe (Maybe(..), maybe)
@@ -13,16 +12,17 @@ import Effect.Aff.Compat (EffectFn1)
1312import Effect.Class (liftEffect)
1413import Effect.Uncurried (EffectFn2, mkEffectFn1, mkEffectFn2)
1514import Foreign (Foreign, unsafeToForeign)
15+import JSS (jss, jssClasses)
1616import Prim.Row (class Union)
1717import React.Basic (JSX, ReactComponent, Ref, element, fragment)
1818import React.Basic.DOM as R
1919import React.Basic.Hooks (component, useState)
2020import React.Basic.Hooks as React
2121import React.Basic.Hooks.Aff (useAff)
22−import Yoga.Theme.Styles (makeStyles, useTheme)
23−import Yoga.Theme.Types (CSSTheme)
2422import Web.DOM (Node)
2523import Web.HTML (HTMLElement)
24+import Yoga.Theme.Styles (makeStylesJSS, useTheme)
25+import Yoga.Theme.Types (CSSTheme)
2626
2727type EditorProps
2828 = ( value ∷ String
@@ -96,18 +96,20 @@ type Props
9696mkEditor ∷ Effect (ReactComponent Props)
9797mkEditor = do
9898 useStyles <-
99− makeStyles \(theme ∷ CSSTheme) ->
100− { wrapper:
101− cssSafer
102− { margin: "0"
103− , boxSizing: "border-box"
104− , width: "100%"
105− , overflowY: "hidden"
106− , backgroundColor: theme.backgroundColour
107− }
108− }
99+ makeStylesJSS
100+ $ jssClasses \(theme ∷ CSSTheme) ->
101+ ( { wrapper:
102+ jss
103+ { margin: "0"
104+ , boxSizing: "border-box"
105+ , width: "100%"
106+ , overflowY: "hidden"
107+ , backgroundColor: theme.backgroundColour
108+ }
109+ }
110+ )
109111 component "Editor" \{ onLoad, height, language } -> React.do
110− classes <- useStyles
112+ classes <- useStyles {}
111113 maybeEditor /\ modifyEditor <- useState Nothing
112114 useAff unit do
113115 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 @@
11module Yoga.SVG.Icon where
22
33import Prelude
4−import Yoga.CSS.Safer (cssSafer)
54import Data.Monoid (guard)
65import Effect (Effect)
6+import JSS (jss, jssClasses)
77import Prim.Row (class Union)
88import React.Basic.DOM.SVG as SVG
99import React.Basic.Hooks (ReactComponent, component)
1010import React.Basic.Hooks as React
11−import Yoga.Theme.Styles (makeStyles)
12−import Yoga.Theme.Types (CSSTheme)
1311import Unsafe.Coerce (unsafeCoerce)
12+import Yoga.Theme.Styles (makeStylesJSS)
13+import Yoga.Theme.Types (CSSTheme)
1414
1515type ImageProps
1616 = ( width ∷ Int, height ∷ Int, className ∷ String )
@@ -93,31 +93,31 @@ data ActiveArrowDirection
9393 | ArrowPointsLeft
9494
9595derive instance eqActiveArrowDirection ∷ Eq ActiveArrowDirection
96−
9796mkMenu ∷ Effect (ReactComponent { activeArrowDirection ∷ ActiveArrowDirection })
9897mkMenu = do
9998 useStyles <-
100− makeStyles \(theme ∷ CSSTheme) ->
101− { arrow:
102− cssSafer
103− { fill: theme.textColour
104− , transition: "0.3s ease-out"
105− }
106− , arrowInactive:
107− cssSafer
108− { fillOpacity: ".1"
109− }
110− , svg:
111− cssSafer
112− { width: "100%"
113− , height: "100%"
114− , "&:hover":
115− { fill: theme.backgroundColour
116− }
99+ makeStylesJSS
100+ $ jssClasses \(theme ∷ CSSTheme) ->
101+ { arrow:
102+ jss
103+ { fill: theme.textColour
104+ , transition: "0.3s ease-out"
105+ }
106+ , arrowInactive:
107+ jss
108+ { fillOpacity: ".1"
109+ }
110+ , svg:
111+ jss
112+ { width: "100%"
113+ , height: "100%"
114+ , "&:hover":
115+ { fill: theme.backgroundColour
116+ }
117+ }
117118 }
118− }
119119 component "MenuIcon" \{ activeArrowDirection } -> React.do
120− classes <- useStyles
120+ classes <- useStyles {}
121121 pure
122122 $ SVG.svg
123123 { xmlns: "http://www.w3.org/2000/svg"
components/src/Yoga/SVG/Image.purs+105−113
@@ -1,8 +1,6 @@
11module Yoga.SVG.Image where
22
33import Prelude
4−import Yoga.CSS.Safer (cssSafer)
5−import Yoga.DOM.Hook (useBoundingBox)
64import Data.Array (elem, foldl, head, intercalate, snoc, uncons, zip, (:))
75import Data.Int (round, toNumber)
86import Data.Maybe (Maybe(..), maybe)
@@ -10,6 +8,7 @@ import Data.String (codePointFromChar)
108import Data.String as String
119import Data.Tuple.Nested ((/\))
1210import Effect (Effect)
11+import JSS (jss, jssClasses)
1312import Random.PseudoRandom (mkSeed, randomRs)
1413import React.Basic (JSX, element)
1514import React.Basic.DOM (unsafeCreateDOMComponent)
@@ -17,9 +16,10 @@ import React.Basic.DOM as HTML
1716import React.Basic.DOM.SVG as SVG
1817import React.Basic.Hooks (ReactComponent)
1918import React.Basic.Hooks as React
19+import Yoga.DOM.Hook (useBoundingBox)
2020import Yoga.SVG.Icon (Raw)
2121import Yoga.Scroll.Hook (useScrollYPosition)
22−import Yoga.Theme.Styles (makeStyles, useTheme)
22+import Yoga.Theme.Styles (makeStylesJSS, useTheme)
2323import Yoga.Theme.Types (CSSTheme)
2424
2525foreign import landingPageDarkRaw ∷ ∀ r. Raw r
@@ -29,110 +29,111 @@ foreign import landingPageLightRaw ∷ ∀ r. Raw r
2929mkLandingPageBackground ∷ Effect (ReactComponent { className ∷ String })
3030mkLandingPageBackground = do
3131 useStyles <-
32− makeStyles \(theme ∷ CSSTheme) ->
33− { laptopBackground:
34− cssSafer
35− { fill: theme.backgroundColour
36− }
37− , lightEllipsis:
38− cssSafer
39− { cx: if theme.isLight then "721" else "175"
40− , cy: if theme.isLight then "355" else "310"
41− , rx: if theme.isLight then "647" else "330"
42− , ry: if theme.isLight then "310" else "252"
43− }
44− , laptopBody:
45− cssSafer
46− { fill: if theme.isLight then "url(#_Linear9)" else "url(#_Linear12)"
47− }
48− , screenText:
49− cssSafer
50− { fontFamily: "PragmataPro"
51− , fontSize: "0.85em"
52− , fill: theme.textColour
53− }
54− , keyword: cssSafer { fill: theme.green }
55− , typeName: cssSafer { fill: theme.pink }
56− , "@keyframes animatedCursor":
57− cssSafer
58− { "0%": { opacity: "0.0" }
59− , "50%": { opacity: "1.0" }
60− }
61− , cursor:
62− cssSafer
63− { animation: "$animatedCursor 0.5s linear infinite"
64− , animationDirection: "alternate"
65− }
66− , "@keyframes movingCloud1":
67− cssSafer
68− { "0%": { transform: "translate3d(-140%, 4%, 0)" }
69− , "100%": { transform: "translate3d(70%, -4%, 0)" }
70− }
71− , movingCloud1:
72− cssSafer
73− { animation: "$movingCloud1 200s linear infinite"
74− , animationDelay: "-150s"
75− }
76− , "@keyframes movingCloud2":
77− cssSafer
78− { "0%": { transform: "translate3d(-10%, 0%, 0)" }
79− , "100%": { transform: "translate3d(10%, 0%, 0)" }
80− }
81− , movingCloud2:
82− cssSafer
83− { animation: "$movingCloud2 120s linear infinite"
84− , animationDirection: "alternate"
85− }
86− , movingCloud3:
87− cssSafer
88− { animation: "$movingCloud2 120s linear infinite"
89− , animationDelay: "-120s"
90− , animationDirection: "alternate"
91− }
92− , "@keyframes twinkle":
93− cssSafer
94− { "0%": { fill: "rgba(250, 250, 250, 0.2)" }
95− , "50%": { fill: "rgba(250, 250, 250, 0.7)" }
96− , "70%": { fill: "rgba(250, 250, 250, 0.4)" }
97− , "100%": { fill: "rgba(250, 250, 250, 1.0)" }
98− }
99− , "@keyframes twinkleFast":
100− cssSafer
101− { "0%": { fill: "rgba(250, 250, 250, 0.7)" }
102− , "100%": { fill: "rgba(250, 250, 250, 0.78)" }
103− }
104− , twinklingStar1:
105− cssSafer
106− { animation: "$twinkleFast 0.2s ease-in-out infinite"
107− , animationDirection: "alternate"
108− }
109− , twinklingStar2:
110− cssSafer
111− { animation: "$twinkle 8s ease-in-out infinite"
112− , animationDelay: "4s"
113− , animationDirection: "alternate"
114− }
115− , twinklingStar3:
116− cssSafer
117− { animation: "$twinkle 4s ease-in-out infinite"
118− , animationDelay: "3s"
119− , animationDirection: "alternate"
120− }
121− , "@keyframes rotateStars":
122− cssSafer
123− { "0%": { transform: "rotate(0deg) scale(1,1)" }
124− , "100%": { transform: "rotate(1deg) scale(1.01, 1.01)" }
125− }
126− , stars:
127− cssSafer
128− { animation: "$rotateStars 30s linear infinite"
129− , transformOrigin: "top center"
130− , animationDirection: "alternate"
32+ makeStylesJSS
33+ $ jssClasses \(theme ∷ CSSTheme) ->
34+ { laptopBackground:
35+ jss
36+ { fill: theme.backgroundColour
37+ }
38+ , lightEllipsis:
39+ jss
40+ { cx: if theme.isLight then "721" else "175"
41+ , cy: if theme.isLight then "355" else "310"
42+ , rx: if theme.isLight then "647" else "330"
43+ , ry: if theme.isLight then "310" else "252"
44+ }
45+ , laptopBody:
46+ jss
47+ { fill: if theme.isLight then "url(#_Linear9)" else "url(#_Linear12)"
48+ }
49+ , screenText:
50+ jss
51+ { fontFamily: "PragmataPro"
52+ , fontSize: "0.85em"
53+ , fill: theme.textColour
54+ }
55+ , keyword: jss { fill: theme.green }
56+ , typeName: jss { fill: theme.pink }
57+ , "@keyframes animatedCursor":
58+ jss
59+ { "0%": { opacity: "0.0" }
60+ , "50%": { opacity: "1.0" }
61+ }
62+ , cursor:
63+ jss
64+ { animation: "$animatedCursor 0.5s linear infinite"
65+ , animationDirection: "alternate"
66+ }
67+ , "@keyframes movingCloud1":
68+ jss
69+ { "0%": { transform: "translate3d(-140%, 4%, 0)" }
70+ , "100%": { transform: "translate3d(70%, -4%, 0)" }
71+ }
72+ , movingCloud1:
73+ jss
74+ { animation: "$movingCloud1 200s linear infinite"
75+ , animationDelay: "-150s"
76+ }
77+ , "@keyframes movingCloud2":
78+ jss
79+ { "0%": { transform: "translate3d(-10%, 0%, 0)" }
80+ , "100%": { transform: "translate3d(10%, 0%, 0)" }
81+ }
82+ , movingCloud2:
83+ jss
84+ { animation: "$movingCloud2 120s linear infinite"
85+ , animationDirection: "alternate"
86+ }
87+ , movingCloud3:
88+ jss
89+ { animation: "$movingCloud2 120s linear infinite"
90+ , animationDelay: "-120s"
91+ , animationDirection: "alternate"
92+ }
93+ , "@keyframes twinkle":
94+ jss
95+ { "0%": { fill: "rgba(250, 250, 250, 0.2)" }
96+ , "50%": { fill: "rgba(250, 250, 250, 0.7)" }
97+ , "70%": { fill: "rgba(250, 250, 250, 0.4)" }
98+ , "100%": { fill: "rgba(250, 250, 250, 1.0)" }
99+ }
100+ , "@keyframes twinkleFast":
101+ jss
102+ { "0%": { fill: "rgba(250, 250, 250, 0.7)" }
103+ , "100%": { fill: "rgba(250, 250, 250, 0.78)" }
104+ }
105+ , twinklingStar1:
106+ jss
107+ { animation: "$twinkleFast 0.2s ease-in-out infinite"
108+ , animationDirection: "alternate"
109+ }
110+ , twinklingStar2:
111+ jss
112+ { animation: "$twinkle 8s ease-in-out infinite"
113+ , animationDelay: "4s"
114+ , animationDirection: "alternate"
115+ }
116+ , twinklingStar3:
117+ jss
118+ { animation: "$twinkle 4s ease-in-out infinite"
119+ , animationDelay: "3s"
120+ , animationDirection: "alternate"
121+ }
122+ , "@keyframes rotateStars":
123+ jss
124+ { "0%": { transform: "rotate(0deg) scale(1,1)" }
125+ , "100%": { transform: "rotate(1deg) scale(1.01, 1.01)" }
126+ }
127+ , stars:
128+ jss
129+ { animation: "$rotateStars 30s linear infinite"
130+ , transformOrigin: "top center"
131+ , animationDirection: "alternate"
132+ }
131133 }
132− }
133134 React.component "LandingPageBackground" \{ className } -> React.do
134135 theme <- useTheme
135− classes <- useStyles
136+ classes <- useStyles {}
136137 scrollY <- useScrollYPosition
137138 bb /\ ref <- useBoundingBox
138139 let
@@ -426,14 +427,12 @@ textToTspans classes scrolled x str = (foldl toTspan { distance: 0.0, acc: [] }
426427 pimped ∷ Array JSX
427428 pimped = first : newElems
428429 { distance: 1.2, acc: acc <> pimped }
429−
430430 classNameForWord = case _ of
431431 keyword
432432 | elem keyword keywords -> classes.keyword
433433 typeName
434434 | isTypeName typeName -> classes.typeName
435435 other -> ""
436−
437436 isTypeName s =
438437 let
439438 firstLetter = String.take 1 s
@@ -446,7 +445,6 @@ textToTspans classes scrolled x str = (foldl toTspan { distance: 0.0, acc: [] }
446445 >>> maybe false (inRange 'a' 'z' || inRange 'A' 'Z')
447446 in
448447 String.toUpper firstLetter == firstLetter && isLetter firstLetter
449−
450448 keywords =
451449 [ "module"
452450 , "∷"
@@ -470,21 +468,15 @@ textToTspans classes scrolled x str = (foldl toTspan { distance: 0.0, acc: [] }
470468 , "else"
471469 , "import"
472470 ]
473−
474471 words line = split
475472 where
476473 split = String.split (String.Pattern " ") line
477−
478474 lines = String.split (String.Pattern "\n") scrolledString
479−
480475 scrolledString = String.take charactersToTake str
481476 where
482477 doneAfterXPercent = 0.5 -- [WARN] Don't set to 0
483−
484478 charactersToTake = round $ scrolled * (1.0 / doneAfterXPercent) * len
485−
486479 len = toNumber $ String.length str
487−
488480 cursor =
489481 SVG.tspan
490482 { 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 @@
11module Yoga.Theme.CSSBaseline where
22
33import Prelude hiding (add)
4−import Yoga.CSS.Safer (cssSafer)
54import Effect (Effect)
6−import Effect.Uncurried (runEffectFn1)
5+import JSS (JSSClasses, JSSElem, jss, jssClasses)
76import React.Basic (ReactComponent)
8−import React.Basic.DOM (CSS)
97import React.Basic.Hooks (JSX, component, fragment)
108import React.Basic.Hooks as React
11−import Yoga.Theme.Styles (unsafeMakeStyles)
12−import Yoga.Theme.Types (CSSTheme)
13−import Unsafe.Coerce (unsafeCoerce)
9+import Yoga.Theme.Styles (makeStylesJSS)
10+import Yoga.Theme.Types (YogaTheme)
1411
15−mkCssBaseline ::
16− Effect (ReactComponent { kids :: Array JSX })
12+mkCssBaseline ∷
13+ Effect (ReactComponent { kids ∷ Array JSX })
1714mkCssBaseline = do
18− useStyles <- runEffectFn1 unsafeMakeStyles styles
15+ useStyles <- makeStylesJSS styles
1916 component "CSSBaseline" \{ kids } -> React.do
20− classes <- useStyles
17+ classes <- useStyles {}
2118 pure
2219 $ fragment kids
2320
24−html :: CSS
21+html ∷ JSSElem {}
2522html =
26− cssSafer
23+ jss
2724 { "WebkitFontSmoothing": "antialiased" -- Antialiasing.
2825 , "MozOsxFontSmoothing": "grayscale" -- Antialiasing.
2926 , boxSizing: "border-box"
3027 }
3128
32−body :: CSSTheme -> CSS
33−body theme =
34− cssSafer
35− { color: theme.textColour
36− , backgroundColor: theme.backgroundColour
37− , "@media print":
38− { backgroundColor: theme.white
39− }
29+root ∷ JSSElem {}
30+root =
31+ jss
32+ { "--ratio": "1.5"
33+ , "--s-5": "calc(var(--s-4) / var(--ratio))"
34+ , "--s-4": "calc(var(--s-3) / var(--ratio))"
35+ , "--s-3": "calc(var(--s-2) / var(--ratio))"
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))"
4044 }
4145
42−styles :: CSSTheme -> CSS
43−styles theme =
44− unsafeCoerce
46+styles ∷ JSSClasses YogaTheme {} ( "@global" ∷ JSSElem {} )
47+styles =
48+ jssClasses \theme ->
4549 { "@global":
46− { html
47− , "*, *::before, *::after":
48− { boxSizing: "inherit"
49− }
50− , "strong, b": { fontWeight: theme.fontWeightBold }
51− , body:
52− { margin: 0
53− , backgroundColor: theme.backgroundColour
54− , color: theme.textColour
55− , "&::backdrop":
56− { backgroundColor: theme.backgroundColour
50+ jss
51+ { html
52+ , ":root": root
53+ , "*":
54+ { maxWidth: theme.measure
55+ }
56+ , "*, *::before, *::after":
57+ { boxSizing: "inherit"
58+ }
59+ , "strong, b": { fontWeight: theme.fontWeightBold }
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+ }
5771 }
5872 }
59− }
60− , ".textColouredIcon":
61− { fill: theme.textColour
62− }
6373 }
components/src/Yoga/Theme/Default.purs+2
@@ -29,6 +29,8 @@ darkTheme =
2929 , red: Color.rgb 255 88 116
3030 , blue: Color.rgb 130 170 255
3131 , white: Color.rgb 250 250 250
32+ , measure: "60ch"
33+ , borderThin: "0.125rem"
3234 }
3335
3436lightTheme ∷ Theme
components/src/Yoga/Theme/Provider.js+2−2
@@ -1,7 +1,7 @@
11"use strict";
22
3−var styles = require("@material-ui/styles");
3+var reactJss = require("react-jss");
44
55exports.mkThemeProviderImpl = function() {
6− return styles.ThemeProvider;
6+ return reactJss.ThemeProvider;
77};
components/src/Yoga/Theme/Styles.js+4−5
@@ -1,8 +1,7 @@
11"use strict";
22
3−var styles = require("@material-ui/styles");
3+var reactJss = require("react-jss");
44
5−exports.makeStylesImpl = styles.makeStyles;
6−exports.makeStylesThemedImpl = styles.makeStyles;
7−exports.unsafeMakeStyles = styles.makeStyles;
8−exports.useThemeImpl = styles.useTheme;
5+exports.makeStylesWithPropsImpl = styles => () => props => () =>
6+ reactJss.createUseStyles(styles)(props);
7+exports.useThemeImpl = reactJss.useTheme;
components/src/Yoga/Theme/Styles.purs+22−36
@@ -1,53 +1,39 @@
11module Yoga.Theme.Styles
2− ( makeStyles_
3− , makeStyles
4− , useTheme
2+ ( useTheme
53 , UseStyles
64 , UseTheme
75 , classNames
8− , unsafeMakeStyles
6+ , makeStylesJSS
97 ) where
108
119import Prelude
1210import Data.Foldable (intercalate)
1311import Effect (Effect)
14−import Effect.Uncurried (EffectFn1, runEffectFn1)
12+import Foreign (Foreign)
13+import JSS (JSSClasses(..), JSSElem)
1514import Prim.RowList (class RowToList)
16−import React.Basic.DOM (CSS)
1715import React.Basic.Hooks (Hook)
18−import Record.Extra (class MapRecord)
19−import Yoga.Theme.Types (CSSTheme)
16+import Record.Extra (class MapRecord, mapRecord)
17+import Simple.JSON as Foreign
2018import Type.Row.Homogeneous (class Homogeneous)
19+import Yoga.Theme.Types (CSSTheme)
2120
22−foreign import data UseStyles ∷ 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 })
21+foreign import data UseStyles ∷ Type -> Type -> Type -> Type
3522
36−makeStyles ∷
37− ∀ theme css cssList classNames.
38− RowToList css cssList =>
39− MapRecord cssList css CSS String () classNames =>
23+foreign import makeStylesWithPropsImpl ∷
24+ ∀ css classNames theme props.
4025 ({ | theme } -> { | css }) ->
41− Effect (Hook (UseStyles { | css }) { | classNames })
42−makeStyles = runEffectFn1 makeStylesThemedImpl
43−
44−makeStyles_ ∷
45− ∀ css cssList classNames.
46− RowToList css cssList =>
47− MapRecord cssList css CSS String () classNames =>
48− { | css } ->
49− Effect (Hook (UseStyles { | css }) { | classNames })
50−makeStyles_ = runEffectFn1 makeStylesImpl
26+ Effect (props -> (Hook (UseStyles props { | css }) { | classNames }))
27+
28+makeStylesJSS ∷
29+ ∀ theme jss jssRL jssForeign classes props.
30+ RowToList jss jssRL =>
31+ MapRecord jssRL jss (JSSElem props) Foreign () jssForeign =>
32+ JSSClasses theme props jss -> Effect (props -> Hook (UseStyles props { | jssForeign }) { | classes })
33+makeStylesJSS (JSSClasses themeToJssClasses) =
34+ makeStylesWithPropsImpl
35+ ( themeToJssClasses <#> mapRecord Foreign.write
36+ )
5137
5238foreign import data UseTheme ∷ Type -> Type
5339
@@ -59,4 +45,4 @@ useTheme ∷ Hook (UseTheme) CSSTheme
5945useTheme = useThemeImpl
6046
6147classNames ∷ ∀ 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
1818 , red ∷ Color
1919 , blue ∷ Color
2020 , white ∷ Color
21+ , measure ∷ String
22+ , borderThin ∷ String
2123 }
2224
23−type CSSTheme
24− = { backgroundColour ∷ String
25+type YogaTheme
26+ = ( backgroundColour ∷ String
2527 , backgroundColourLighter ∷ String
2628 , backgroundColourLightest ∷ String
2729 , backgroundColourDarker ∷ String
@@ -52,4 +54,9 @@ type CSSTheme
5254 , blue ∷ String
5355 , white ∷ String
5456 , 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 @@
11module Yoga.Typography.Header where
22
33import Prelude
4−import Yoga.CSS.Safer (cssSafer)
54import Data.Array as Array
65import Data.Foldable (intercalate)
76import Data.Maybe (Maybe)
87import Effect (Effect)
8+import JSS (jss, jssClasses)
99import React.Basic.DOM as R
1010import React.Basic.Hooks (ReactComponent, component)
1111import React.Basic.Hooks as React
12−import Yoga.Theme.Styles (makeStyles)
12+import Yoga.Theme.Styles (makeStylesJSS)
1313import Yoga.Theme.Types (CSSTheme)
1414
1515data HeadingLevel
@@ -23,50 +23,51 @@ mkH ∷
2323 Effect (ReactComponent { level ∷ HeadingLevel, text ∷ String, className ∷ Maybe String })
2424mkH = do
2525 useStyles <-
26− makeStyles \(theme ∷ CSSTheme) ->
27− { common:
28− cssSafer
29− { color: theme.textColour
30− , fontFamily: theme.headingFontFamily
26+ makeStylesJSS
27+ $ jssClasses \(theme ∷ CSSTheme) ->
28+ { common:
29+ jss
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+ }
3168 }
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− }
6869 component "Heading" \{ level, text, className } -> React.do
69− classes <- useStyles
70+ classes <- useStyles {}
7071 let
7172 elem = case level of
7273 H1 -> R.h1
components/src/Yoga/Typography/Paragraph.purs+13−12
@@ -1,29 +1,30 @@
11module Yoga.Typography.Paragraph where
22
33import Prelude
4−import Yoga.CSS.Safer (cssSafer)
54import Effect (Effect)
5+import JSS (jss, jssClasses)
66import React.Basic.DOM as R
77import React.Basic.Hooks (ReactComponent, component)
88import React.Basic.Hooks as React
9−import Yoga.Theme.Styles (makeStyles)
9+import Yoga.Theme.Styles (makeStylesJSS)
1010import Yoga.Theme.Types (CSSTheme)
1111
1212mkP ∷ Effect (ReactComponent { text ∷ String })
1313mkP = do
1414 useStyles <-
15− makeStyles \(theme ∷ CSSTheme) ->
16− { p:
17− cssSafer
18− { color: theme.textColour
19− , fontFamily: theme.textFontFamily
20− , fontSize: "1em"
21− , margin: "0.67em 0 0.33em 0"
22− , padding: "0.67em 0 0.33em 0"
15+ makeStylesJSS
16+ $ jssClasses \(theme ∷ CSSTheme) ->
17+ { p:
18+ jss
19+ { color: theme.textColour
20+ , fontFamily: theme.textFontFamily
21+ , fontSize: "1em"
22+ , margin: "0.67em 0 0.33em 0"
23+ , padding: "0.67em 0 0.33em 0"
24+ }
2325 }
24− }
2526 component "paragraph" \{ text } -> React.do
26− classes <- useStyles
27+ classes <- useStyles {}
2728 pure
2829 $ R.p
2930 { 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+ }