@kaizen/design-tokens 9.0.3 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,33 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [9.1.0](https://github.com/cultureamp/kaizen-design-system/compare/@kaizen/design-tokens@9.0.5...@kaizen/design-tokens@9.1.0) (2022-08-16)
7
+
8
+
9
+ ### Features
10
+
11
+ * Preload fonts in ThemeProvider & handle default theme ([#2917](https://github.com/cultureamp/kaizen-design-system/issues/2917)) ([67e8efb](https://github.com/cultureamp/kaizen-design-system/commit/67e8efb09f0582ef9e14b408291f1916c7f21eea))
12
+
13
+
14
+
15
+
16
+
17
+ ## [9.0.5](https://github.com/cultureamp/kaizen-design-system/compare/@kaizen/design-tokens@9.0.4...@kaizen/design-tokens@9.0.5) (2022-07-21)
18
+
19
+ **Note:** Version bump only for package @kaizen/design-tokens
20
+
21
+
22
+
23
+
24
+
25
+ ## [9.0.4](https://github.com/cultureamp/kaizen-design-system/compare/@kaizen/design-tokens@9.0.3...@kaizen/design-tokens@9.0.4) (2022-07-20)
26
+
27
+ **Note:** Version bump only for package @kaizen/design-tokens
28
+
29
+
30
+
31
+
32
+
6
33
  ## [9.0.3](https://github.com/cultureamp/kaizen-design-system/compare/@kaizen/design-tokens@9.0.2...@kaizen/design-tokens@9.0.3) (2022-06-23)
7
34
 
8
35
  **Note:** Version bump only for package @kaizen/design-tokens
@@ -6,7 +6,7 @@ export declare const ThemeContext: React.Context<Theme>;
6
6
  * This allows child react elements to more easily use theme variables, using the {@link useTheme} hook.
7
7
  */
8
8
  export declare const ThemeProvider: ({ themeManager, ...props }: {
9
- themeManager: ThemeManager;
9
+ themeManager?: ThemeManager<Theme> | undefined;
10
10
  children: React.ReactNode;
11
11
  }) => JSX.Element;
12
12
  export declare const useTheme: () => Theme;
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../react/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,YAAY,EAAgB,KAAK,EAAE,MAAM,KAAK,CAAA;AAEvD,eAAO,MAAM,YAAY,sBAA2C,CAAA;AAEpE;;;GAGG;AACH,eAAO,MAAM,aAAa;kBAIV,YAAY;cAChB,MAAM,SAAS;iBAsB1B,CAAA;AAED,eAAO,MAAM,QAAQ,aAAuC,CAAA"}
1
+ {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../react/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,YAAY,EAAgB,KAAK,EAAE,MAAM,KAAK,CAAA;AAEvD,eAAO,MAAM,YAAY,sBAA2C,CAAA;AAEpE;;;GAGG;AACH,eAAO,MAAM,aAAa;;cAKd,MAAM,SAAS;iBA+D1B,CAAA;AAED,eAAO,MAAM,QAAQ,aAAuC,CAAA"}
@@ -1,4 +1,23 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  var __rest = (this && this.__rest) || function (s, e) {
3
22
  var t = {};
4
23
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -10,12 +29,9 @@ var __rest = (this && this.__rest) || function (s, e) {
10
29
  }
11
30
  return t;
12
31
  };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
32
  Object.defineProperty(exports, "__esModule", { value: true });
17
33
  exports.useTheme = exports.ThemeProvider = exports.ThemeContext = void 0;
18
- var react_1 = __importDefault(require("react"));
34
+ var react_1 = __importStar(require("react"));
19
35
  var __1 = require("../");
20
36
  exports.ThemeContext = react_1.default.createContext(__1.defaultTheme);
21
37
  /**
@@ -24,20 +40,27 @@ exports.ThemeContext = react_1.default.createContext(__1.defaultTheme);
24
40
  */
25
41
  var ThemeProvider = function (_a) {
26
42
  var themeManager = _a.themeManager, props = __rest(_a, ["themeManager"]);
27
- var _b = react_1.default.useState(themeManager.getCurrentTheme()), theme = _b[0], setTheme = _b[1];
43
+ var themeManagerInstance = (0, react_1.useState)(function () { return themeManager || new __1.ThemeManager(__1.defaultTheme); })[0];
44
+ var _b = react_1.default.useState(themeManagerInstance.getCurrentTheme()), theme = _b[0], setTheme = _b[1];
28
45
  react_1.default.useEffect(function () {
29
46
  var cancelled = false;
30
47
  var listener = function (newTheme) {
31
48
  if (!cancelled)
32
49
  setTheme(newTheme);
33
50
  };
34
- themeManager.addThemeChangeListener(listener);
51
+ themeManagerInstance.addThemeChangeListener(listener);
35
52
  return function () {
36
53
  cancelled = true;
37
- themeManager.removeThemeChangeListener(listener);
54
+ themeManagerInstance.removeThemeChangeListener(listener);
38
55
  };
39
56
  }, []);
40
- return (react_1.default.createElement(exports.ThemeContext.Provider, { value: theme }, props.children));
57
+ return (react_1.default.createElement(react_1.default.Fragment, null,
58
+ react_1.default.createElement(exports.ThemeContext.Provider, { value: theme }, props.children),
59
+ react_1.default.createElement("link", { rel: "preload", href: "https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff2", as: "font", type: "font/woff2", crossOrigin: "crossorigin" }),
60
+ react_1.default.createElement("link", { rel: "preload", href: "https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff2", as: "font", type: "font/woff2", crossOrigin: "crossorigin" }),
61
+ react_1.default.createElement("link", { rel: "preload", href: "https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff2", as: "font", type: "font/woff2", crossOrigin: "crossorigin" }),
62
+ react_1.default.createElement("link", { rel: "preload", href: "https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff2", as: "font", type: "font/woff2", crossOrigin: "crossorigin" }),
63
+ react_1.default.createElement("link", { rel: "preload", href: "https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff2", as: "font", type: "font/woff2", crossOrigin: "crossorigin" })));
41
64
  };
42
65
  exports.ThemeProvider = ThemeProvider;
43
66
  var useTheme = function () { return react_1.default.useContext(exports.ThemeContext); };
@@ -7,10 +7,10 @@ import { Theme as BaseTheme } from "./types";
7
7
  * It works by converting a Theme interface to a flattened map of CSS variable keys and values, then calling `document.documentElement.style.setProperty(key, value)`.
8
8
  */
9
9
  export declare class ThemeManager<Theme extends BaseTheme = BaseTheme> {
10
- constructor(theme: Theme, apply?: boolean);
11
10
  private themeChangeListeners;
12
11
  private theme;
13
12
  private rootElement;
13
+ constructor(theme: Theme, apply?: boolean);
14
14
  getRootElement: () => HTMLElement | null;
15
15
  getCurrentTheme: () => Theme;
16
16
  setRootElement: (element: HTMLElement) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../src/ThemeManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,SAAS,CAAA;AAE5C;;;;;;GAMG;AACH,qBAAa,YAAY,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS;gBAEzD,KAAK,EAAE,KAAK,EAEZ,KAAK,GAAE,OAAc;IAUvB,OAAO,CAAC,oBAAoB,CAAsC;IAClE,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,WAAW,CAA2B;IAEvC,cAAc,2BAAyB;IACvC,eAAe,cAAmB;IAElC,cAAc,YAAa,WAAW,UAE5C;IACM,gBAAgB,UAAW,KAAK,uCAOtC;IAEM,sBAAsB,qBAAsB,KAAK,KAAK,IAAI,UAEhE;IACM,yBAAyB,qBAAsB,KAAK,KAAK,IAAI,UAInE;IACM,iBAAiB,aAQvB;IAED,OAAO,CAAC,0BAA0B,CAEjC;CACF"}
1
+ {"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../src/ThemeManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,SAAS,CAAA;AAE5C;;;;;;GAMG;AACH,qBAAa,YAAY,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS;IAC3D,OAAO,CAAC,oBAAoB,CAAsC;IAClE,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,WAAW,CAA2B;gBAG5C,KAAK,EAAE,KAAK,EAEZ,KAAK,GAAE,OAAc;IAUhB,cAAc,2BAAyB;IACvC,eAAe,cAAmB;IAElC,cAAc,YAAa,WAAW,UAE5C;IACM,gBAAgB,UAAW,KAAK,uCAOtC;IAEM,sBAAsB,qBAAsB,KAAK,KAAK,IAAI,UAEhE;IACM,yBAAyB,qBAAsB,KAAK,KAAK,IAAI,UAInE;IACM,iBAAiB,aAQvB;IAED,OAAO,CAAC,0BAA0B,CAEjC;CACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kaizen/design-tokens",
3
3
  "description": "Tokens used in the Kaizen Design System",
4
- "version": "9.0.3",
4
+ "version": "9.1.0",
5
5
  "homepage": "https://github.com/cultureamp/kaizen-design-system/tree/master/packages/design-tokens",
6
6
  "repository": {
7
7
  "type": "git",
@@ -42,7 +42,7 @@
42
42
  "@types/yargs": "^16.0.4",
43
43
  "json-to-flat-sass": "^1.0.0",
44
44
  "lodash.flatmap": "^4.5.0",
45
- "postcss": "^8.4.13",
45
+ "postcss": "^8.4.14",
46
46
  "prettier": "*",
47
47
  "react-highlight": "^0.14.0",
48
48
  "react-map-interaction": "^2.1.0",
@@ -58,5 +58,5 @@
58
58
  "peerDependencies": {
59
59
  "react": ">=16 || ^17.0.0 || ^18.0.0"
60
60
  },
61
- "gitHead": "158ff7e133f47fc25c958260668de85c0f7b21ef"
61
+ "gitHead": "e53b047c305c131112c677c227c6a3b5db617823"
62
62
  }
@@ -6,7 +6,7 @@ export declare const ThemeContext: React.Context<Theme>;
6
6
  * This allows child react elements to more easily use theme variables, using the {@link useTheme} hook.
7
7
  */
8
8
  export declare const ThemeProvider: ({ themeManager, ...props }: {
9
- themeManager: ThemeManager;
9
+ themeManager?: ThemeManager<Theme> | undefined;
10
10
  children: React.ReactNode;
11
11
  }) => JSX.Element;
12
12
  export declare const useTheme: () => Theme;
@@ -1,4 +1,23 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  var __rest = (this && this.__rest) || function (s, e) {
3
22
  var t = {};
4
23
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -10,12 +29,9 @@ var __rest = (this && this.__rest) || function (s, e) {
10
29
  }
11
30
  return t;
12
31
  };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
32
  exports.__esModule = true;
17
33
  exports.useTheme = exports.ThemeProvider = exports.ThemeContext = void 0;
18
- var react_1 = __importDefault(require("react"));
34
+ var react_1 = __importStar(require("react"));
19
35
  var __1 = require("../");
20
36
  exports.ThemeContext = react_1["default"].createContext(__1.defaultTheme);
21
37
  /**
@@ -24,20 +40,27 @@ exports.ThemeContext = react_1["default"].createContext(__1.defaultTheme);
24
40
  */
25
41
  var ThemeProvider = function (_a) {
26
42
  var themeManager = _a.themeManager, props = __rest(_a, ["themeManager"]);
27
- var _b = react_1["default"].useState(themeManager.getCurrentTheme()), theme = _b[0], setTheme = _b[1];
43
+ var themeManagerInstance = (0, react_1.useState)(function () { return themeManager || new __1.ThemeManager(__1.defaultTheme); })[0];
44
+ var _b = react_1["default"].useState(themeManagerInstance.getCurrentTheme()), theme = _b[0], setTheme = _b[1];
28
45
  react_1["default"].useEffect(function () {
29
46
  var cancelled = false;
30
47
  var listener = function (newTheme) {
31
48
  if (!cancelled)
32
49
  setTheme(newTheme);
33
50
  };
34
- themeManager.addThemeChangeListener(listener);
51
+ themeManagerInstance.addThemeChangeListener(listener);
35
52
  return function () {
36
53
  cancelled = true;
37
- themeManager.removeThemeChangeListener(listener);
54
+ themeManagerInstance.removeThemeChangeListener(listener);
38
55
  };
39
56
  }, []);
40
- return (react_1["default"].createElement(exports.ThemeContext.Provider, { value: theme }, props.children));
57
+ return (react_1["default"].createElement(react_1["default"].Fragment, null,
58
+ react_1["default"].createElement(exports.ThemeContext.Provider, { value: theme }, props.children),
59
+ react_1["default"].createElement("link", { rel: "preload", href: "https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff2", as: "font", type: "font/woff2", crossOrigin: "crossorigin" }),
60
+ react_1["default"].createElement("link", { rel: "preload", href: "https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff2", as: "font", type: "font/woff2", crossOrigin: "crossorigin" }),
61
+ react_1["default"].createElement("link", { rel: "preload", href: "https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff2", as: "font", type: "font/woff2", crossOrigin: "crossorigin" }),
62
+ react_1["default"].createElement("link", { rel: "preload", href: "https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff2", as: "font", type: "font/woff2", crossOrigin: "crossorigin" }),
63
+ react_1["default"].createElement("link", { rel: "preload", href: "https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff2", as: "font", type: "font/woff2", crossOrigin: "crossorigin" })));
41
64
  };
42
65
  exports.ThemeProvider = ThemeProvider;
43
66
  var useTheme = function () { return react_1["default"].useContext(exports.ThemeContext); };
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["ThemeProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAAyB;AACzB,yBAAuD;AAE1C,QAAA,YAAY,GAAG,kBAAK,CAAC,aAAa,CAAQ,gBAAY,CAAC,CAAA;AAEpE;;;GAGG;AACI,IAAM,aAAa,GAAG,UAAC,EAM7B;IALC,IAAA,YAAY,kBAAA,EACT,KAAK,cAFoB,gBAG7B,CADS;IAKF,IAAA,KAAoB,kBAAK,CAAC,QAAQ,CACtC,YAAY,CAAC,eAAe,EAAE,CAC/B,EAFM,KAAK,QAAA,EAAE,QAAQ,QAErB,CAAA;IACD,kBAAK,CAAC,SAAS,CAAC;QACd,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAM,QAAQ,GAAG,UAAC,QAAe;YAC/B,IAAI,CAAC,SAAS;gBAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACpC,CAAC,CAAA;QACD,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAA;QAC7C,OAAO;YACL,SAAS,GAAG,IAAI,CAAA;YAChB,YAAY,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAA;QAClD,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,iCAAC,oBAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAChC,KAAK,CAAC,QAAQ,CACO,CACzB,CAAA;AACH,CAAC,CAAA;AA3BY,QAAA,aAAa,iBA2BzB;AAEM,IAAM,QAAQ,GAAG,cAAM,OAAA,kBAAK,CAAC,UAAU,CAAC,oBAAY,CAAC,EAA9B,CAA8B,CAAA;AAA/C,QAAA,QAAQ,YAAuC"}
1
+ {"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["ThemeProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAuC;AACvC,yBAAuD;AAE1C,QAAA,YAAY,GAAG,kBAAK,CAAC,aAAa,CAAQ,gBAAY,CAAC,CAAA;AAEpE;;;GAGG;AACI,IAAM,aAAa,GAAG,UAAC,EAM7B;IALC,IAAA,YAAY,kBAAA,EACT,KAAK,cAFoB,gBAG7B,CADS;IAKD,IAAA,oBAAoB,GAAI,IAAA,gBAAQ,EACrC,cAAM,OAAA,YAAY,IAAI,IAAI,gBAAY,CAAC,gBAAY,CAAC,EAA9C,CAA8C,CACrD,GAF0B,CAE1B;IAEK,IAAA,KAAoB,kBAAK,CAAC,QAAQ,CACtC,oBAAoB,CAAC,eAAe,EAAE,CACvC,EAFM,KAAK,QAAA,EAAE,QAAQ,QAErB,CAAA;IACD,kBAAK,CAAC,SAAS,CAAC;QACd,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAM,QAAQ,GAAG,UAAC,QAAe;YAC/B,IAAI,CAAC,SAAS;gBAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACpC,CAAC,CAAA;QACD,oBAAoB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAA;QACrD,OAAO;YACL,SAAS,GAAG,IAAI,CAAA;YAChB,oBAAoB,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAA;QAC1D,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL;QACE,iCAAC,oBAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAChC,KAAK,CAAC,QAAQ,CACO;QACxB,2CACE,GAAG,EAAC,SAAS,EACb,IAAI,EAAC,oEAAoE,EACzE,EAAE,EAAC,MAAM,EACT,IAAI,EAAC,YAAY,EACjB,WAAW,EAAC,aAAa,GACzB;QACF,2CACE,GAAG,EAAC,SAAS,EACb,IAAI,EAAC,yEAAyE,EAC9E,EAAE,EAAC,MAAM,EACT,IAAI,EAAC,YAAY,EACjB,WAAW,EAAC,aAAa,GACzB;QACF,2CACE,GAAG,EAAC,SAAS,EACb,IAAI,EAAC,sEAAsE,EAC3E,EAAE,EAAC,MAAM,EACT,IAAI,EAAC,YAAY,EACjB,WAAW,EAAC,aAAa,GACzB;QACF,2CACE,GAAG,EAAC,SAAS,EACb,IAAI,EAAC,uEAAuE,EAC5E,EAAE,EAAC,MAAM,EACT,IAAI,EAAC,YAAY,EACjB,WAAW,EAAC,aAAa,GACzB;QACF,2CACE,GAAG,EAAC,SAAS,EACb,IAAI,EAAC,iFAAiF,EACtF,EAAE,EAAC,MAAM,EACT,IAAI,EAAC,YAAY,EACjB,WAAW,EAAC,aAAa,GACzB,CACD,CACJ,CAAA;AACH,CAAC,CAAA;AApEY,QAAA,aAAa,iBAoEzB;AAEM,IAAM,QAAQ,GAAG,cAAM,OAAA,kBAAK,CAAC,UAAU,CAAC,oBAAY,CAAC,EAA9B,CAA8B,CAAA;AAA/C,QAAA,QAAQ,YAAuC"}
@@ -1,4 +1,4 @@
1
- import React from "react"
1
+ import React, { useState } from "react"
2
2
  import { ThemeManager, defaultTheme, Theme } from "../"
3
3
 
4
4
  export const ThemeContext = React.createContext<Theme>(defaultTheme)
@@ -11,28 +11,69 @@ export const ThemeProvider = ({
11
11
  themeManager,
12
12
  ...props
13
13
  }: {
14
- themeManager: ThemeManager
14
+ themeManager?: ThemeManager
15
15
  children: React.ReactNode
16
16
  }) => {
17
+ const [themeManagerInstance] = useState(
18
+ () => themeManager || new ThemeManager(defaultTheme)
19
+ )
20
+
17
21
  const [theme, setTheme] = React.useState<Theme>(
18
- themeManager.getCurrentTheme()
22
+ themeManagerInstance.getCurrentTheme()
19
23
  )
20
24
  React.useEffect(() => {
21
25
  let cancelled = false
22
26
  const listener = (newTheme: Theme) => {
23
27
  if (!cancelled) setTheme(newTheme)
24
28
  }
25
- themeManager.addThemeChangeListener(listener)
29
+ themeManagerInstance.addThemeChangeListener(listener)
26
30
  return () => {
27
31
  cancelled = true
28
- themeManager.removeThemeChangeListener(listener)
32
+ themeManagerInstance.removeThemeChangeListener(listener)
29
33
  }
30
34
  }, [])
31
35
 
32
36
  return (
33
- <ThemeContext.Provider value={theme}>
34
- {props.children}
35
- </ThemeContext.Provider>
37
+ <>
38
+ <ThemeContext.Provider value={theme}>
39
+ {props.children}
40
+ </ThemeContext.Provider>
41
+ <link
42
+ rel="preload"
43
+ href="https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff2"
44
+ as="font"
45
+ type="font/woff2"
46
+ crossOrigin="crossorigin"
47
+ />
48
+ <link
49
+ rel="preload"
50
+ href="https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff2"
51
+ as="font"
52
+ type="font/woff2"
53
+ crossOrigin="crossorigin"
54
+ />
55
+ <link
56
+ rel="preload"
57
+ href="https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff2"
58
+ as="font"
59
+ type="font/woff2"
60
+ crossOrigin="crossorigin"
61
+ />
62
+ <link
63
+ rel="preload"
64
+ href="https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff2"
65
+ as="font"
66
+ type="font/woff2"
67
+ crossOrigin="crossorigin"
68
+ />
69
+ <link
70
+ rel="preload"
71
+ href="https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff2"
72
+ as="font"
73
+ type="font/woff2"
74
+ crossOrigin="crossorigin"
75
+ />
76
+ </>
36
77
  )
37
78
  }
38
79
 
@@ -7,10 +7,10 @@ import { Theme as BaseTheme } from "./types";
7
7
  * It works by converting a Theme interface to a flattened map of CSS variable keys and values, then calling `document.documentElement.style.setProperty(key, value)`.
8
8
  */
9
9
  export declare class ThemeManager<Theme extends BaseTheme = BaseTheme> {
10
- constructor(theme: Theme, apply?: boolean);
11
10
  private themeChangeListeners;
12
11
  private theme;
13
12
  private rootElement;
13
+ constructor(theme: Theme, apply?: boolean);
14
14
  getRootElement: () => HTMLElement | null;
15
15
  getCurrentTheme: () => Theme;
16
16
  setRootElement: (element: HTMLElement) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeManager.js","sourceRoot":"","sources":["ThemeManager.ts"],"names":[],"mappings":";;;AACA,qFAAmF;AACnF;;;;;;GAMG;AACH;IACE,sBACE,KAAY;IACZ,oHAAoH;IACpH,KAAqB;QAHvB,iBAWC;QARC,sBAAA,EAAA,YAAqB;QAUf,yBAAoB,GAAG,EAAmC,CAAA;QAE1D,gBAAW,GAAuB,IAAI,CAAA;QAEvC,mBAAc,GAAG,cAAM,OAAA,KAAI,CAAC,WAAW,EAAhB,CAAgB,CAAA;QACvC,oBAAe,GAAG,cAAM,OAAA,KAAI,CAAC,KAAK,EAAV,CAAU,CAAA;QAElC,mBAAc,GAAG,UAAC,OAAoB;YAC3C,KAAI,CAAC,WAAW,GAAG,OAAO,CAAA;QAC5B,CAAC,CAAA;QACM,qBAAgB,GAAG,UAAC,KAAY,EAAE,KAAe;YACtD,IAAI,CAAC,KAAK,EAAE;gBACV,IAAI,KAAI,CAAC,KAAK,KAAK,KAAK;oBAAE,OAAM;aACjC;YACD,KAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAClB,KAAI,CAAC,iBAAiB,EAAE,CAAA;YACxB,KAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC,CAAA;QAEM,2BAAsB,GAAG,UAAC,QAAgC;YAC/D,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1C,CAAC,CAAA;QACM,8BAAyB,GAAG,UAAC,QAAgC;YAClE,KAAI,CAAC,oBAAoB,GAAG,KAAI,CAAC,oBAAoB,CAAC,MAAM,CAC1D,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,QAAQ,EAAd,CAAc,CACpB,CAAA;QACH,CAAC,CAAA;QACM,sBAAiB,GAAG;YACzB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;gBAC7C,IAAM,sBAAsB,GAAG,IAAA,6DAA6B,EAAC,KAAI,CAAC,KAAK,CAAC,CAAA;gBACxE,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;;wBAAX,GAAG,QAAA,EAAE,KAAK,QAAA;oBACzD,MAAA,KAAI,CAAC,WAAW,0CAAE,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBACjD,CAAC,CAAC,CAAA;aACH;QACH,CAAC,CAAA;QAEO,+BAA0B,GAAG,UAAC,KAAY;YAChD,KAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAf,CAAe,CAAC,CAAA;QAChE,CAAC,CAAA;QA/CC;;;UAGE;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,KAAK;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAA;IACrC,CAAC;IA0CH,mBAAC;AAAD,CAAC,AAtDD,IAsDC;AAtDY,oCAAY;AAwDzB,gIAAgI;AAChI,kIAAkI;AAClI,uEAAuE"}
1
+ {"version":3,"file":"ThemeManager.js","sourceRoot":"","sources":["ThemeManager.ts"],"names":[],"mappings":";;;AACA,qFAAmF;AACnF;;;;;;GAMG;AACH;IAKE,sBACE,KAAY;IACZ,oHAAoH;IACpH,KAAqB;QAHvB,iBAWC;QARC,sBAAA,EAAA,YAAqB;QAPf,yBAAoB,GAAG,EAAmC,CAAA;QAE1D,gBAAW,GAAuB,IAAI,CAAA;QAevC,mBAAc,GAAG,cAAM,OAAA,KAAI,CAAC,WAAW,EAAhB,CAAgB,CAAA;QACvC,oBAAe,GAAG,cAAM,OAAA,KAAI,CAAC,KAAK,EAAV,CAAU,CAAA;QAElC,mBAAc,GAAG,UAAC,OAAoB;YAC3C,KAAI,CAAC,WAAW,GAAG,OAAO,CAAA;QAC5B,CAAC,CAAA;QACM,qBAAgB,GAAG,UAAC,KAAY,EAAE,KAAe;YACtD,IAAI,CAAC,KAAK,EAAE;gBACV,IAAI,KAAI,CAAC,KAAK,KAAK,KAAK;oBAAE,OAAM;aACjC;YACD,KAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAClB,KAAI,CAAC,iBAAiB,EAAE,CAAA;YACxB,KAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC,CAAA;QAEM,2BAAsB,GAAG,UAAC,QAAgC;YAC/D,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1C,CAAC,CAAA;QACM,8BAAyB,GAAG,UAAC,QAAgC;YAClE,KAAI,CAAC,oBAAoB,GAAG,KAAI,CAAC,oBAAoB,CAAC,MAAM,CAC1D,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,QAAQ,EAAd,CAAc,CACpB,CAAA;QACH,CAAC,CAAA;QACM,sBAAiB,GAAG;YACzB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBACjC,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;gBAC7C,IAAM,sBAAsB,GAAG,IAAA,6DAA6B,EAAC,KAAI,CAAC,KAAK,CAAC,CAAA;gBACxE,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;;wBAAX,GAAG,QAAA,EAAE,KAAK,QAAA;oBACzD,MAAA,KAAI,CAAC,WAAW,0CAAE,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBACjD,CAAC,CAAC,CAAA;aACH;QACH,CAAC,CAAA;QAEO,+BAA0B,GAAG,UAAC,KAAY;YAChD,KAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAf,CAAe,CAAC,CAAA;QAChE,CAAC,CAAA;QA3CC;;;UAGE;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,KAAK;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAA;IACrC,CAAC;IAsCH,mBAAC;AAAD,CAAC,AAtDD,IAsDC;AAtDY,oCAAY;AAwDzB,gIAAgI;AAChI,kIAAkI;AAClI,uEAAuE"}
@@ -8,6 +8,10 @@ import { makeCssVariableDefinitionsMap } from "./lib/makeCssVariableDefinitionsM
8
8
  * It works by converting a Theme interface to a flattened map of CSS variable keys and values, then calling `document.documentElement.style.setProperty(key, value)`.
9
9
  */
10
10
  export class ThemeManager<Theme extends BaseTheme = BaseTheme> {
11
+ private themeChangeListeners = [] as Array<(theme: Theme) => void>
12
+ private theme: Theme
13
+ private rootElement: HTMLElement | null = null
14
+
11
15
  constructor(
12
16
  theme: Theme,
13
17
  /* This allows you to stop the class from applying the theme automatically during construction. Defaults to true */
@@ -21,10 +25,6 @@ export class ThemeManager<Theme extends BaseTheme = BaseTheme> {
21
25
  if (apply) this.applyCurrentTheme()
22
26
  }
23
27
 
24
- private themeChangeListeners = [] as Array<(theme: Theme) => void>
25
- private theme: Theme
26
- private rootElement: HTMLElement | null = null
27
-
28
28
  public getRootElement = () => this.rootElement
29
29
  public getCurrentTheme = () => this.theme
30
30