Browse Source

feat(themes): Add style tokens and web theme

j8
Vlad Piersec 4 years ago
parent
commit
8bd874ca70

+ 304
- 0
package-lock.json View File

2618
         "sdp-transform": "2.3.0"
2618
         "sdp-transform": "2.3.0"
2619
       }
2619
       }
2620
     },
2620
     },
2621
+    "@material-ui/core": {
2622
+      "version": "4.11.3",
2623
+      "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.3.tgz",
2624
+      "integrity": "sha512-Adt40rGW6Uds+cAyk3pVgcErpzU/qxc7KBR94jFHBYretU4AtWZltYcNsbeMn9tXL86jjVL1kuGcIHsgLgFGRw==",
2625
+      "requires": {
2626
+        "@babel/runtime": "^7.4.4",
2627
+        "@material-ui/styles": "^4.11.3",
2628
+        "@material-ui/system": "^4.11.3",
2629
+        "@material-ui/types": "^5.1.0",
2630
+        "@material-ui/utils": "^4.11.2",
2631
+        "@types/react-transition-group": "^4.2.0",
2632
+        "clsx": "^1.0.4",
2633
+        "hoist-non-react-statics": "^3.3.2",
2634
+        "popper.js": "1.16.1-lts",
2635
+        "prop-types": "^15.7.2",
2636
+        "react-is": "^16.8.0 || ^17.0.0",
2637
+        "react-transition-group": "^4.4.0"
2638
+      },
2639
+      "dependencies": {
2640
+        "csstype": {
2641
+          "version": "3.0.8",
2642
+          "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz",
2643
+          "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw=="
2644
+        },
2645
+        "dom-helpers": {
2646
+          "version": "5.2.1",
2647
+          "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
2648
+          "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
2649
+          "requires": {
2650
+            "@babel/runtime": "^7.8.7",
2651
+            "csstype": "^3.0.2"
2652
+          },
2653
+          "dependencies": {
2654
+            "@babel/runtime": {
2655
+              "version": "7.13.17",
2656
+              "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.17.tgz",
2657
+              "integrity": "sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==",
2658
+              "requires": {
2659
+                "regenerator-runtime": "^0.13.4"
2660
+              }
2661
+            }
2662
+          }
2663
+        },
2664
+        "hoist-non-react-statics": {
2665
+          "version": "3.3.2",
2666
+          "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
2667
+          "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
2668
+          "requires": {
2669
+            "react-is": "^16.7.0"
2670
+          }
2671
+        },
2672
+        "loose-envify": {
2673
+          "version": "1.4.0",
2674
+          "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
2675
+          "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
2676
+          "requires": {
2677
+            "js-tokens": "^3.0.0 || ^4.0.0"
2678
+          }
2679
+        },
2680
+        "popper.js": {
2681
+          "version": "1.16.1-lts",
2682
+          "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz",
2683
+          "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA=="
2684
+        },
2685
+        "react-transition-group": {
2686
+          "version": "4.4.1",
2687
+          "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz",
2688
+          "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==",
2689
+          "requires": {
2690
+            "@babel/runtime": "^7.5.5",
2691
+            "dom-helpers": "^5.0.1",
2692
+            "loose-envify": "^1.4.0",
2693
+            "prop-types": "^15.6.2"
2694
+          }
2695
+        }
2696
+      }
2697
+    },
2698
+    "@material-ui/styles": {
2699
+      "version": "4.11.4",
2700
+      "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.4.tgz",
2701
+      "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==",
2702
+      "requires": {
2703
+        "@babel/runtime": "^7.4.4",
2704
+        "@emotion/hash": "^0.8.0",
2705
+        "@material-ui/types": "5.1.0",
2706
+        "@material-ui/utils": "^4.11.2",
2707
+        "clsx": "^1.0.4",
2708
+        "csstype": "^2.5.2",
2709
+        "hoist-non-react-statics": "^3.3.2",
2710
+        "jss": "^10.5.1",
2711
+        "jss-plugin-camel-case": "^10.5.1",
2712
+        "jss-plugin-default-unit": "^10.5.1",
2713
+        "jss-plugin-global": "^10.5.1",
2714
+        "jss-plugin-nested": "^10.5.1",
2715
+        "jss-plugin-props-sort": "^10.5.1",
2716
+        "jss-plugin-rule-value-function": "^10.5.1",
2717
+        "jss-plugin-vendor-prefixer": "^10.5.1",
2718
+        "prop-types": "^15.7.2"
2719
+      },
2720
+      "dependencies": {
2721
+        "hoist-non-react-statics": {
2722
+          "version": "3.3.2",
2723
+          "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
2724
+          "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
2725
+          "requires": {
2726
+            "react-is": "^16.7.0"
2727
+          }
2728
+        }
2729
+      }
2730
+    },
2731
+    "@material-ui/system": {
2732
+      "version": "4.11.3",
2733
+      "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.11.3.tgz",
2734
+      "integrity": "sha512-SY7otguNGol41Mu2Sg6KbBP1ZRFIbFLHGK81y4KYbsV2yIcaEPOmsCK6zwWlp+2yTV3J/VwT6oSBARtGIVdXPw==",
2735
+      "requires": {
2736
+        "@babel/runtime": "^7.4.4",
2737
+        "@material-ui/utils": "^4.11.2",
2738
+        "csstype": "^2.5.2",
2739
+        "prop-types": "^15.7.2"
2740
+      }
2741
+    },
2742
+    "@material-ui/types": {
2743
+      "version": "5.1.0",
2744
+      "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz",
2745
+      "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A=="
2746
+    },
2747
+    "@material-ui/utils": {
2748
+      "version": "4.11.2",
2749
+      "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz",
2750
+      "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==",
2751
+      "requires": {
2752
+        "@babel/runtime": "^7.4.4",
2753
+        "prop-types": "^15.7.2",
2754
+        "react-is": "^16.8.0 || ^17.0.0"
2755
+      }
2756
+    },
2621
     "@microsoft/microsoft-graph-client": {
2757
     "@microsoft/microsoft-graph-client": {
2622
       "version": "1.1.0",
2758
       "version": "1.1.0",
2623
       "resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-1.1.0.tgz",
2759
       "resolved": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/-/microsoft-graph-client-1.1.0.tgz",
3848
       "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
3984
       "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
3849
       "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
3985
       "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
3850
     },
3986
     },
3987
+    "@types/prop-types": {
3988
+      "version": "15.7.3",
3989
+      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
3990
+      "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="
3991
+    },
3851
     "@types/q": {
3992
     "@types/q": {
3852
       "version": "1.5.4",
3993
       "version": "1.5.4",
3853
       "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz",
3994
       "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz",
3854
       "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug=="
3995
       "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug=="
3855
     },
3996
     },
3997
+    "@types/react": {
3998
+      "version": "17.0.4",
3999
+      "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.4.tgz",
4000
+      "integrity": "sha512-onz2BqScSFMoTRdJUZUDD/7xrusM8hBA2Fktk2qgaTYPCgPvWnDEgkrOs8hhPUf2jfcIXkJ5yK6VfYormJS3Jw==",
4001
+      "requires": {
4002
+        "@types/prop-types": "*",
4003
+        "@types/scheduler": "*",
4004
+        "csstype": "^3.0.2"
4005
+      },
4006
+      "dependencies": {
4007
+        "csstype": {
4008
+          "version": "3.0.8",
4009
+          "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz",
4010
+          "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw=="
4011
+        }
4012
+      }
4013
+    },
4014
+    "@types/react-transition-group": {
4015
+      "version": "4.4.1",
4016
+      "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz",
4017
+      "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==",
4018
+      "requires": {
4019
+        "@types/react": "*"
4020
+      }
4021
+    },
4022
+    "@types/scheduler": {
4023
+      "version": "0.16.1",
4024
+      "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz",
4025
+      "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA=="
4026
+    },
3856
     "@types/stack-utils": {
4027
     "@types/stack-utils": {
3857
       "version": "1.0.1",
4028
       "version": "1.0.1",
3858
       "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
4029
       "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
6048
         "shallow-clone": "^0.1.2"
6219
         "shallow-clone": "^0.1.2"
6049
       }
6220
       }
6050
     },
6221
     },
6222
+    "clsx": {
6223
+      "version": "1.1.1",
6224
+      "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
6225
+      "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA=="
6226
+    },
6051
     "co": {
6227
     "co": {
6052
       "version": "4.6.0",
6228
       "version": "4.6.0",
6053
       "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
6229
       "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
6686
         }
6862
         }
6687
       }
6863
       }
6688
     },
6864
     },
6865
+    "css-vendor": {
6866
+      "version": "2.0.8",
6867
+      "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz",
6868
+      "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==",
6869
+      "requires": {
6870
+        "@babel/runtime": "^7.8.3",
6871
+        "is-in-browser": "^1.0.2"
6872
+      },
6873
+      "dependencies": {
6874
+        "@babel/runtime": {
6875
+          "version": "7.13.17",
6876
+          "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.17.tgz",
6877
+          "integrity": "sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==",
6878
+          "requires": {
6879
+            "regenerator-runtime": "^0.13.4"
6880
+          }
6881
+        }
6882
+      }
6883
+    },
6689
     "css-what": {
6884
     "css-what": {
6690
       "version": "3.2.1",
6885
       "version": "3.2.1",
6691
       "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz",
6886
       "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz",
9408
       "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
9603
       "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
9409
       "dev": true
9604
       "dev": true
9410
     },
9605
     },
9606
+    "hyphenate-style-name": {
9607
+      "version": "1.0.4",
9608
+      "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
9609
+      "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ=="
9610
+    },
9411
     "i18n-iso-countries": {
9611
     "i18n-iso-countries": {
9412
       "version": "3.7.8",
9612
       "version": "3.7.8",
9413
       "resolved": "https://registry.npmjs.org/i18n-iso-countries/-/i18n-iso-countries-3.7.8.tgz",
9613
       "resolved": "https://registry.npmjs.org/i18n-iso-countries/-/i18n-iso-countries-3.7.8.tgz",
9603
       "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
9803
       "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
9604
       "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
9804
       "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
9605
     },
9805
     },
9806
+    "indefinite-observable": {
9807
+      "version": "2.0.1",
9808
+      "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-2.0.1.tgz",
9809
+      "integrity": "sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ==",
9810
+      "requires": {
9811
+        "symbol-observable": "1.2.0"
9812
+      }
9813
+    },
9606
     "indexes-of": {
9814
     "indexes-of": {
9607
       "version": "1.0.1",
9815
       "version": "1.0.1",
9608
       "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
9816
       "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
9922
         "is-extglob": "^2.1.1"
10130
         "is-extglob": "^2.1.1"
9923
       }
10131
       }
9924
     },
10132
     },
10133
+    "is-in-browser": {
10134
+      "version": "1.1.3",
10135
+      "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
10136
+      "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU="
10137
+    },
9925
     "is-map": {
10138
     "is-map": {
9926
       "version": "2.0.2",
10139
       "version": "2.0.2",
9927
       "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
10140
       "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
10439
       "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
10652
       "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
10440
       "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
10653
       "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
10441
     },
10654
     },
10655
+    "jss": {
10656
+      "version": "10.6.0",
10657
+      "resolved": "https://registry.npmjs.org/jss/-/jss-10.6.0.tgz",
10658
+      "integrity": "sha512-n7SHdCozmxnzYGXBHe0NsO0eUf9TvsHVq2MXvi4JmTn3x5raynodDVE/9VQmBdWFyyj9HpHZ2B4xNZ7MMy7lkw==",
10659
+      "requires": {
10660
+        "@babel/runtime": "^7.3.1",
10661
+        "csstype": "^3.0.2",
10662
+        "indefinite-observable": "^2.0.1",
10663
+        "is-in-browser": "^1.1.3",
10664
+        "tiny-warning": "^1.0.2"
10665
+      },
10666
+      "dependencies": {
10667
+        "csstype": {
10668
+          "version": "3.0.8",
10669
+          "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz",
10670
+          "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw=="
10671
+        }
10672
+      }
10673
+    },
10674
+    "jss-plugin-camel-case": {
10675
+      "version": "10.6.0",
10676
+      "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.6.0.tgz",
10677
+      "integrity": "sha512-JdLpA3aI/npwj3nDMKk308pvnhoSzkW3PXlbgHAzfx0yHWnPPVUjPhXFtLJzgKZge8lsfkUxvYSQ3X2OYIFU6A==",
10678
+      "requires": {
10679
+        "@babel/runtime": "^7.3.1",
10680
+        "hyphenate-style-name": "^1.0.3",
10681
+        "jss": "10.6.0"
10682
+      }
10683
+    },
10684
+    "jss-plugin-default-unit": {
10685
+      "version": "10.6.0",
10686
+      "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.6.0.tgz",
10687
+      "integrity": "sha512-7y4cAScMHAxvslBK2JRK37ES9UT0YfTIXWgzUWD5euvR+JR3q+o8sQKzBw7GmkQRfZijrRJKNTiSt1PBsLI9/w==",
10688
+      "requires": {
10689
+        "@babel/runtime": "^7.3.1",
10690
+        "jss": "10.6.0"
10691
+      }
10692
+    },
10693
+    "jss-plugin-global": {
10694
+      "version": "10.6.0",
10695
+      "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.6.0.tgz",
10696
+      "integrity": "sha512-I3w7ji/UXPi3VuWrTCbHG9rVCgB4yoBQLehGDTmsnDfXQb3r1l3WIdcO8JFp9m0YMmyy2CU7UOV6oPI7/Tmu+w==",
10697
+      "requires": {
10698
+        "@babel/runtime": "^7.3.1",
10699
+        "jss": "10.6.0"
10700
+      }
10701
+    },
10702
+    "jss-plugin-nested": {
10703
+      "version": "10.6.0",
10704
+      "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.6.0.tgz",
10705
+      "integrity": "sha512-fOFQWgd98H89E6aJSNkEh2fAXquC9aZcAVjSw4q4RoQ9gU++emg18encR4AT4OOIFl4lQwt5nEyBBRn9V1Rk8g==",
10706
+      "requires": {
10707
+        "@babel/runtime": "^7.3.1",
10708
+        "jss": "10.6.0",
10709
+        "tiny-warning": "^1.0.2"
10710
+      }
10711
+    },
10712
+    "jss-plugin-props-sort": {
10713
+      "version": "10.6.0",
10714
+      "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.6.0.tgz",
10715
+      "integrity": "sha512-oMCe7hgho2FllNc60d9VAfdtMrZPo9n1Iu6RNa+3p9n0Bkvnv/XX5San8fTPujrTBScPqv9mOE0nWVvIaohNuw==",
10716
+      "requires": {
10717
+        "@babel/runtime": "^7.3.1",
10718
+        "jss": "10.6.0"
10719
+      }
10720
+    },
10721
+    "jss-plugin-rule-value-function": {
10722
+      "version": "10.6.0",
10723
+      "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.6.0.tgz",
10724
+      "integrity": "sha512-TKFqhRTDHN1QrPTMYRlIQUOC2FFQb271+AbnetURKlGvRl/eWLswcgHQajwuxI464uZk91sPiTtdGi7r7XaWfA==",
10725
+      "requires": {
10726
+        "@babel/runtime": "^7.3.1",
10727
+        "jss": "10.6.0",
10728
+        "tiny-warning": "^1.0.2"
10729
+      }
10730
+    },
10731
+    "jss-plugin-vendor-prefixer": {
10732
+      "version": "10.6.0",
10733
+      "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.6.0.tgz",
10734
+      "integrity": "sha512-doJ7MouBXT1lypLLctCwb4nJ6lDYqrTfVS3LtXgox42Xz0gXusXIIDboeh6UwnSmox90QpVnub7au8ybrb0krQ==",
10735
+      "requires": {
10736
+        "@babel/runtime": "^7.3.1",
10737
+        "css-vendor": "^2.0.8",
10738
+        "jss": "10.6.0"
10739
+      }
10740
+    },
10442
     "jssha": {
10741
     "jssha": {
10443
       "version": "3.2.0",
10742
       "version": "3.2.0",
10444
       "resolved": "https://registry.npmjs.org/jssha/-/jssha-3.2.0.tgz",
10743
       "resolved": "https://registry.npmjs.org/jssha/-/jssha-3.2.0.tgz",
16892
       "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-0.0.3.tgz",
17191
       "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-0.0.3.tgz",
16893
       "integrity": "sha512-SA2YwvDrCITM9fTvHTHRpq9W6L2fBsClbqm3maT5PZux4Z73SPPDYwJMtnoWh6WMgmCkJij/LaOlWiqJqFMK8g=="
17192
       "integrity": "sha512-SA2YwvDrCITM9fTvHTHRpq9W6L2fBsClbqm3maT5PZux4Z73SPPDYwJMtnoWh6WMgmCkJij/LaOlWiqJqFMK8g=="
16894
     },
17193
     },
17194
+    "tiny-warning": {
17195
+      "version": "1.0.3",
17196
+      "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
17197
+      "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
17198
+    },
16895
     "tlds": {
17199
     "tlds": {
16896
       "version": "1.203.1",
17200
       "version": "1.203.1",
16897
       "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.203.1.tgz",
17201
       "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.203.1.tgz",

+ 2
- 0
package.json View File

33
     "@atlaskit/toggle": "12.0.3",
33
     "@atlaskit/toggle": "12.0.3",
34
     "@atlaskit/tooltip": "17.1.2",
34
     "@atlaskit/tooltip": "17.1.2",
35
     "@jitsi/js-utils": "1.0.6",
35
     "@jitsi/js-utils": "1.0.6",
36
+    "@material-ui/core": "4.11.3",
36
     "@microsoft/microsoft-graph-client": "1.1.0",
37
     "@microsoft/microsoft-graph-client": "1.1.0",
37
     "@react-native-async-storage/async-storage": "1.13.2",
38
     "@react-native-async-storage/async-storage": "1.13.2",
38
     "@react-native-community/google-signin": "3.0.1",
39
     "@react-native-community/google-signin": "3.0.1",
145
   "license": "Apache-2.0",
146
   "license": "Apache-2.0",
146
   "scripts": {
147
   "scripts": {
147
     "lint": "eslint . && flow",
148
     "lint": "eslint . && flow",
149
+    "lint-fix": "eslint --fix .",
148
     "postinstall": "jetify",
150
     "postinstall": "jetify",
149
     "validate": "npm ls",
151
     "validate": "npm ls",
150
     "start": "make dev",
152
     "start": "make dev",

+ 7
- 4
react/features/app/components/App.web.js View File

4
 import React from 'react';
4
 import React from 'react';
5
 
5
 
6
 import { DialogContainer } from '../../base/dialog';
6
 import { DialogContainer } from '../../base/dialog';
7
+import JitsiThemeProvider from '../../base/ui/components/JitsiThemeProvider';
7
 import { ChromeExtensionBanner } from '../../chrome-extension-banner';
8
 import { ChromeExtensionBanner } from '../../chrome-extension-banner';
8
 
9
 
9
 import { AbstractApp } from './AbstractApp';
10
 import { AbstractApp } from './AbstractApp';
26
      */
27
      */
27
     _createMainElement(component, props) {
28
     _createMainElement(component, props) {
28
         return (
29
         return (
29
-            <AtlasKitThemeProvider mode = 'dark'>
30
-                <ChromeExtensionBanner />
31
-                { super._createMainElement(component, props) }
32
-            </AtlasKitThemeProvider>
30
+            <JitsiThemeProvider>
31
+                <AtlasKitThemeProvider mode = 'dark'>
32
+                    <ChromeExtensionBanner />
33
+                    { super._createMainElement(component, props) }
34
+                </AtlasKitThemeProvider>
35
+            </JitsiThemeProvider>
33
         );
36
         );
34
     }
37
     }
35
 
38
 

+ 325
- 0
react/features/base/ui/Tokens.js View File

1
+// @flow
2
+
3
+// Default color pallete
4
+export const colors = {
5
+    error03: '#7A141F',
6
+    error04: '#A21B29',
7
+    error05: '#CB2233',
8
+    error06: '#E04757',
9
+    error08: '#EAA7AD',
10
+
11
+    primary01: '#00112D',
12
+    primary02: '#00225A',
13
+    primary03: '#003486',
14
+    primary04: '#0045B3',
15
+    primary05: '#0056E0',
16
+    primary06: '#246FE5',
17
+    primary07: '#669AEC',
18
+    primary08: '#99BBF3',
19
+    primary09: '#CCDDF9',
20
+
21
+    surface01: '#040404',
22
+    surface02: '#141414',
23
+    surface03: '#292929',
24
+    surface04: '#3D3D3D',
25
+    surface05: '#525252',
26
+    surface06: '#666',
27
+    surface07: '#858585',
28
+    surface08: '#A3A3A3',
29
+    surface09: '#C2C2C2',
30
+    surface10: '#E0E0E0',
31
+    surface11: '#FFF',
32
+
33
+    success04: '#189B55',
34
+    success05: '#1EC26A',
35
+
36
+    warning05: '#F8AE1A'
37
+};
38
+
39
+// Mapping between the token used and the color
40
+export const colorMap = {
41
+    // Default page background
42
+    uiBackground: 'surface01',
43
+
44
+    // Container background
45
+    ui01: 'surface02',
46
+    ui02: 'surface03',
47
+    ui03: 'surface04',
48
+    ui04: 'surface05',
49
+    ui05: 'surface06',
50
+
51
+    // Primary buttons
52
+    action01: 'primary05',
53
+
54
+    // Hover state for primary buttons
55
+    action01Hover: 'primary06',
56
+
57
+    // Active state for primary buttons
58
+    action01Active: 'primary04',
59
+
60
+    // Focus border color
61
+    action01Focus: 'primary08',
62
+
63
+    // Disabled state for primary buttons
64
+    action01Disabled: 'primary02',
65
+
66
+    // Secondary buttons
67
+    action02: 'surface04',
68
+
69
+    // Hover state for secondary buttons
70
+    action02Hover: 'surface05',
71
+
72
+    // Active state for secondary buttons
73
+    action02Active: 'surface03',
74
+
75
+    // Focus border color
76
+    action02Focus: 'surface07',
77
+
78
+    // Disabled state for secondary buttons
79
+    action02Disabled: 'surface02',
80
+
81
+    // Tertiary buttons
82
+    action03: 'transparent',
83
+
84
+    // Hover state for tertiary buttons
85
+    action03Hover: 'surface05',
86
+
87
+    // Active state for tertiary buttons
88
+    action03Active: 'surface03',
89
+
90
+    // Focus border color
91
+    action03Focus: 'surface07',
92
+
93
+    // Disabled state for tertiary buttons
94
+    action03Disabled: 'transparent',
95
+
96
+    // Danger button background
97
+    actionDanger: 'error05',
98
+
99
+    // Hover state for danger buttons
100
+    actionDangerHover: 'error06',
101
+
102
+    // Active state for danger buttons
103
+    actionDangerActive: 'error04',
104
+
105
+    // Focus border color
106
+    actionDangerFocus: 'error08',
107
+
108
+    // Disabled state for danger buttons
109
+    actionDangerDisabled: 'error03',
110
+
111
+    // Primary text – default color for body copy & headers
112
+    text01: 'surface11',
113
+
114
+    // Secondary text with medium contrast
115
+    text02: 'surface09',
116
+
117
+    // Tertiary text with low contrast – placeholders, disabled actions, label for disabled buttons
118
+    text03: 'surface07',
119
+
120
+    // error messages
121
+    textError: 'error06',
122
+
123
+    // Primary color for icons
124
+    icon01: 'surface11',
125
+
126
+    // Secondary color for input fields
127
+    icon02: 'surface09',
128
+
129
+    // Tertiary color for disabled actions
130
+    icon03: 'surface07',
131
+
132
+    // Error message
133
+    iconError: 'error06',
134
+
135
+    // Forms
136
+    // Default background for input fields
137
+    field01: 'surface01',
138
+
139
+    // Hover background for input fields
140
+    field01Hover: 'surface03',
141
+
142
+    // Focus border color
143
+    field01Focus: 'primary05',
144
+
145
+    // Disabled background for input fields
146
+    field01Disabled: 'surface05',
147
+
148
+    // Background for high-contrast input fields
149
+    field02: 'surface11',
150
+
151
+    // Background for high-contrast input fields on hover
152
+    field02Hover: 'primary09',
153
+
154
+    // Focus border color
155
+    field02Focus: 'primary05',
156
+
157
+    // Disabled background for high-contrast input fields
158
+    field02Disabled: 'surface06',
159
+
160
+    // Borders
161
+    // Border for the input fields in hover state
162
+    border01: 'surface08',
163
+
164
+    // Border for the input fields
165
+    border02: 'surface06',
166
+
167
+    // Line separators
168
+    border03: 'surface04',
169
+
170
+    // Color for error border & message
171
+    borderError: 'error06',
172
+
173
+    // Links
174
+    // Default color for links
175
+    link01: 'primary07',
176
+
177
+    // Color for links in the hover state
178
+    link01Hover: 'primary08',
179
+
180
+    // Color for links in the active state
181
+    link01Active: 'primary06',
182
+
183
+    // Support
184
+    // Color for positive messages applied to icons & borders
185
+    success01: 'success05',
186
+
187
+    // Color for positive messages applied tobackgrounds
188
+    success02: 'success05',
189
+
190
+    // Color for warning messages applied to icons, borders & backgrounds
191
+    warning01: 'warning05'
192
+};
193
+
194
+
195
+export const font = {
196
+    weightRegular: 400,
197
+    weightSemiBold: 600
198
+};
199
+
200
+export const shape = {
201
+    borderRadius: 6
202
+};
203
+
204
+export const spacing = [ 0, 4, 8, 16, 24, 32, 40, 48, 56 ];
205
+
206
+export const typography = {
207
+    labelRegular: {
208
+        fontSize: 12,
209
+        lineHeight: 16,
210
+        fontWeight: font.weightRegular,
211
+        letterSpacing: 0.16
212
+    },
213
+
214
+    labelBold: {
215
+        fontSize: 12,
216
+        lineHeight: 16,
217
+        fontWeight: font.weightSemiBold,
218
+        letterSpacing: 0.16
219
+    },
220
+
221
+    labelButton: {
222
+        fontSize: 14,
223
+        lineHeight: 24,
224
+        fontWeight: font.weightSemiBold,
225
+        letterSpacing: 0
226
+    },
227
+
228
+    labelButtonLarge: {
229
+        fontSize: 16,
230
+        lineHeight: 24,
231
+        fontWeight: font.weightSemiBold,
232
+        letterSpacing: 0
233
+    },
234
+
235
+    bodyShortRegular: {
236
+        fontSize: 14,
237
+        lineHeight: 18,
238
+        fontWeight: font.weightRegular,
239
+        letterSpacing: 0
240
+    },
241
+
242
+    bodyShortBold: {
243
+        fontSize: 14,
244
+        lineHeight: 18,
245
+        fontWeight: font.weightSemiBold,
246
+        letterSpacing: 0
247
+    },
248
+
249
+    bodyShortRegularLarge: {
250
+        fontSize: 16,
251
+        lineHeight: 24,
252
+        fontWeight: font.weightRegular,
253
+        letterSpacing: 0
254
+    },
255
+
256
+    bodyShortBoldLarge: {
257
+        fontSize: 16,
258
+        lineHeight: 24,
259
+        fontWeight: font.weightSemiBold,
260
+        letterSpacing: 0
261
+    },
262
+
263
+    bodyLongRegular: {
264
+        fontSize: 14,
265
+        lineHeight: 24,
266
+        fontWeight: font.weightRegular,
267
+        letterSpacing: 0
268
+    },
269
+
270
+    bodyLongBold: {
271
+        fontSize: 14,
272
+        lineHeight: 24,
273
+        fontWeight: font.weightSemiBold,
274
+        letterSpacing: 0
275
+    },
276
+
277
+    heading1: {
278
+        fontSize: 54,
279
+        lineHeight: 64,
280
+        fontWeight: font.weightSemiBold,
281
+        letterSpacing: 0
282
+    },
283
+
284
+    heading2: {
285
+        fontSize: 42,
286
+        lineHeight: 50,
287
+        fontWeight: font.weightSemiBold,
288
+        letterSpacing: 0
289
+    },
290
+
291
+    heading3: {
292
+        fontSize: 32,
293
+        lineHeight: 40,
294
+        fontWeight: font.weightSemiBold,
295
+        letterSpacing: 0
296
+    },
297
+
298
+    heading4: {
299
+        fontSize: 28,
300
+        lineHeight: 36,
301
+        fontWeight: font.weightSemiBold,
302
+        letterSpacing: 0
303
+    },
304
+
305
+    heading5: {
306
+        fontSize: 20,
307
+        lineHeight: 28,
308
+        fontWeight: font.weightSemiBold,
309
+        letterSpacing: 0
310
+    },
311
+
312
+    heading6: {
313
+        fontSize: 16,
314
+        lineHeight: 26,
315
+        fontWeight: font.weightSemiBold,
316
+        letterSpacing: 0
317
+    },
318
+
319
+    heading7: {
320
+        fontSize: 14,
321
+        lineHeight: 24,
322
+        fontWeight: font.weightSemiBold,
323
+        letterSpacing: 0
324
+    }
325
+};

+ 13
- 0
react/features/base/ui/components/BaseTheme.web.js View File

1
+// @flow
2
+
3
+import { font, colors, colorMap, spacing, shape, typography } from '../Tokens';
4
+import { createWebTheme } from '../functions';
5
+
6
+export default createWebTheme({
7
+    font,
8
+    colors,
9
+    colorMap,
10
+    spacing,
11
+    shape,
12
+    typography
13
+});

+ 24
- 0
react/features/base/ui/components/JitsiThemeProvider.web.js View File

1
+// @flow
2
+
3
+import { ThemeProvider } from '@material-ui/core/styles';
4
+import * as React from 'react';
5
+
6
+import BaseTheme from './BaseTheme';
7
+
8
+type Props = {
9
+
10
+   /**
11
+    * The children of the component.
12
+    */
13
+    children: React.ChildrenArray<any>
14
+}
15
+
16
+/**
17
+ * The theme provider for the web app.
18
+ *
19
+ * @param {Object} props - The props of the component.
20
+ * @returns {React.ReactNode}
21
+ */
22
+export default function JitsiThemeProvider(props: Props) {
23
+    return <ThemeProvider theme = { BaseTheme }>{ props.children }</ThemeProvider>;
24
+}

+ 44
- 0
react/features/base/ui/functions.js View File

1
+// @flow
2
+
3
+import { createMuiTheme } from '@material-ui/core/styles';
4
+
5
+/**
6
+ * Creates the color tokens based on the color theme and the association map.
7
+ * If a key is not fonund in the association map it defaults to the current value.
8
+ *
9
+ * @param {Object} colorMap - A map between the token name and the actual color value.
10
+ * @param {Object} colors - An object containing all the theme colors.
11
+ * @returns {Object}
12
+ */
13
+function createColorTokens(colorMap: Object, colors: Object): Object {
14
+    return Object.entries(colorMap)
15
+        .reduce((result, [ token, value ]) =>
16
+            Object.assign(result, { [token]: colors[value] || value }), {});
17
+}
18
+
19
+/**
20
+ * Creates a MUI theme based on local UI tokens.
21
+ *
22
+ * @param {Object} arg - The ui tokens.
23
+ * @returns {Object}
24
+ */
25
+export function createWebTheme({ font, colors, colorMap, shape, spacing, typography }: Object) {
26
+    return createMuiTheme({
27
+        props: {
28
+            // disable ripple effect on buttons globally
29
+            MuiButtonBase: {
30
+                disableRipple: true
31
+            }
32
+        },
33
+
34
+        // use token spacing array
35
+        spacing
36
+    }, {
37
+        palette: createColorTokens(colorMap, colors),
38
+        shape,
39
+        typography: {
40
+            font,
41
+            ...typography
42
+        }
43
+    });
44
+}

Loading…
Cancel
Save