@atlaskit/app-provider 2.3.0 → 3.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 +19 -0
- package/dist/cjs/theme-provider.js +37 -22
- package/dist/es2019/theme-provider.js +18 -7
- package/dist/esm/theme-provider.js +37 -22
- package/package.json +5 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @atlaskit/app-provider
|
|
2
2
|
|
|
3
|
+
## 3.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`33a9e5805e0c7`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/33a9e5805e0c7) -
|
|
8
|
+
Adds fallback logic for requesting the colorMode from the `useColorMode()` hook. Also fixes
|
|
9
|
+
`useTheme()` so that `colorMode` isn't returned when its fallback logic is used
|
|
10
|
+
|
|
11
|
+
## 3.0.0
|
|
12
|
+
|
|
13
|
+
### Major Changes
|
|
14
|
+
|
|
15
|
+
- [`97bac34e4e575`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/97bac34e4e575) -
|
|
16
|
+
[ux] Refreshed typography theme enabled by default.
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
|
|
3
22
|
## 2.3.0
|
|
4
23
|
|
|
5
24
|
### Minor Changes
|
|
@@ -17,7 +17,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
17
17
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
18
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
19
|
var _bindEventListener = require("bind-event-listener");
|
|
20
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
21
20
|
var _tokens = require("@atlaskit/tokens");
|
|
22
21
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
23
22
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -27,7 +26,7 @@ var defaultThemeSettings = function defaultThemeSettings() {
|
|
|
27
26
|
dark: 'dark',
|
|
28
27
|
light: 'light',
|
|
29
28
|
spacing: 'spacing',
|
|
30
|
-
typography:
|
|
29
|
+
typography: 'typography'
|
|
31
30
|
};
|
|
32
31
|
};
|
|
33
32
|
var ColorModeContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
@@ -54,10 +53,26 @@ function UNSAFE_useColorModeForMigration() {
|
|
|
54
53
|
*/
|
|
55
54
|
function useColorMode() {
|
|
56
55
|
var value = (0, _react.useContext)(ColorModeContext);
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
var _getGlobalTheme = (0, _tokens.getGlobalTheme)(),
|
|
57
|
+
colorMode = _getGlobalTheme.colorMode;
|
|
58
|
+
var _useState = (0, _react.useState)(colorMode || 'light'),
|
|
59
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
60
|
+
resolvedColorMode = _useState2[0],
|
|
61
|
+
setResolvedColorMode = _useState2[1];
|
|
62
|
+
(0, _react.useEffect)(function () {
|
|
63
|
+
// We are using theme from context so no need to reference the DOM
|
|
64
|
+
if (value) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
var observer = new _tokens.ThemeMutationObserver(function (theme) {
|
|
68
|
+
setResolvedColorMode(theme.colorMode || 'light');
|
|
69
|
+
});
|
|
70
|
+
observer.observe();
|
|
71
|
+
return function () {
|
|
72
|
+
return observer.disconnect();
|
|
73
|
+
};
|
|
74
|
+
}, [value]);
|
|
75
|
+
return value ? value : resolvedColorMode;
|
|
61
76
|
}
|
|
62
77
|
|
|
63
78
|
/**
|
|
@@ -80,10 +95,10 @@ function useSetColorMode() {
|
|
|
80
95
|
*/
|
|
81
96
|
function useTheme() {
|
|
82
97
|
var theme = (0, _react.useContext)(ThemeContext);
|
|
83
|
-
var
|
|
84
|
-
|
|
85
|
-
resolvedTheme =
|
|
86
|
-
setResolvedTheme =
|
|
98
|
+
var _useState3 = (0, _react.useState)(theme || (0, _tokens.getGlobalTheme)()),
|
|
99
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
100
|
+
resolvedTheme = _useState4[0],
|
|
101
|
+
setResolvedTheme = _useState4[1];
|
|
87
102
|
(0, _react.useEffect)(function () {
|
|
88
103
|
// We are using theme from context so no need to reference the DOM
|
|
89
104
|
if (theme) {
|
|
@@ -95,7 +110,7 @@ function useTheme() {
|
|
|
95
110
|
return observer.disconnect();
|
|
96
111
|
};
|
|
97
112
|
}, [theme]);
|
|
98
|
-
return resolvedTheme;
|
|
113
|
+
return theme ? theme : resolvedTheme;
|
|
99
114
|
}
|
|
100
115
|
|
|
101
116
|
/**
|
|
@@ -132,20 +147,20 @@ function ThemeProvider(_ref) {
|
|
|
132
147
|
var children = _ref.children,
|
|
133
148
|
defaultColorMode = _ref.defaultColorMode,
|
|
134
149
|
defaultTheme = _ref.defaultTheme;
|
|
135
|
-
var
|
|
136
|
-
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
137
|
-
chosenColorMode = _useState4[0],
|
|
138
|
-
setChosenColorMode = _useState4[1];
|
|
139
|
-
var _useState5 = (0, _react.useState)(getReconciledColorMode(defaultColorMode)),
|
|
150
|
+
var _useState5 = (0, _react.useState)(defaultColorMode),
|
|
140
151
|
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
var _useState7 = (0, _react.useState)(
|
|
152
|
+
chosenColorMode = _useState6[0],
|
|
153
|
+
setChosenColorMode = _useState6[1];
|
|
154
|
+
var _useState7 = (0, _react.useState)(getReconciledColorMode(defaultColorMode)),
|
|
155
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
156
|
+
reconciledColorMode = _useState8[0],
|
|
157
|
+
setReconciledColorMode = _useState8[1];
|
|
158
|
+
var _useState9 = (0, _react.useState)(function () {
|
|
144
159
|
return _objectSpread(_objectSpread({}, defaultThemeSettings()), defaultTheme);
|
|
145
160
|
}),
|
|
146
|
-
|
|
147
|
-
theme =
|
|
148
|
-
setTheme =
|
|
161
|
+
_useState0 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
162
|
+
theme = _useState0[0],
|
|
163
|
+
setTheme = _useState0[1];
|
|
149
164
|
var setColorMode = (0, _react.useCallback)(function (colorMode) {
|
|
150
165
|
setChosenColorMode(colorMode);
|
|
151
166
|
setReconciledColorMode(getReconciledColorMode(colorMode));
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';
|
|
2
2
|
import { bind } from 'bind-event-listener';
|
|
3
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
3
|
import { getGlobalTheme, setGlobalTheme, ThemeMutationObserver } from '@atlaskit/tokens';
|
|
5
4
|
const defaultThemeSettings = () => ({
|
|
6
5
|
dark: 'dark',
|
|
7
6
|
light: 'light',
|
|
8
7
|
spacing: 'spacing',
|
|
9
|
-
typography:
|
|
8
|
+
typography: 'typography'
|
|
10
9
|
});
|
|
11
10
|
const ColorModeContext = /*#__PURE__*/createContext(undefined);
|
|
12
11
|
const SetColorModeContext = /*#__PURE__*/createContext(undefined);
|
|
@@ -32,10 +31,22 @@ export function UNSAFE_useColorModeForMigration() {
|
|
|
32
31
|
*/
|
|
33
32
|
export function useColorMode() {
|
|
34
33
|
const value = useContext(ColorModeContext);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
|
|
34
|
+
const {
|
|
35
|
+
colorMode
|
|
36
|
+
} = getGlobalTheme();
|
|
37
|
+
const [resolvedColorMode, setResolvedColorMode] = useState(colorMode || 'light');
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
// We are using theme from context so no need to reference the DOM
|
|
40
|
+
if (value) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const observer = new ThemeMutationObserver(theme => {
|
|
44
|
+
setResolvedColorMode(theme.colorMode || 'light');
|
|
45
|
+
});
|
|
46
|
+
observer.observe();
|
|
47
|
+
return () => observer.disconnect();
|
|
48
|
+
}, [value]);
|
|
49
|
+
return value ? value : resolvedColorMode;
|
|
39
50
|
}
|
|
40
51
|
|
|
41
52
|
/**
|
|
@@ -68,7 +79,7 @@ export function useTheme() {
|
|
|
68
79
|
observer.observe();
|
|
69
80
|
return () => observer.disconnect();
|
|
70
81
|
}, [theme]);
|
|
71
|
-
return resolvedTheme;
|
|
82
|
+
return theme ? theme : resolvedTheme;
|
|
72
83
|
}
|
|
73
84
|
|
|
74
85
|
/**
|
|
@@ -6,14 +6,13 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
6
6
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
7
|
import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';
|
|
8
8
|
import { bind } from 'bind-event-listener';
|
|
9
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
10
9
|
import { getGlobalTheme, setGlobalTheme, ThemeMutationObserver } from '@atlaskit/tokens';
|
|
11
10
|
var defaultThemeSettings = function defaultThemeSettings() {
|
|
12
11
|
return {
|
|
13
12
|
dark: 'dark',
|
|
14
13
|
light: 'light',
|
|
15
14
|
spacing: 'spacing',
|
|
16
|
-
typography:
|
|
15
|
+
typography: 'typography'
|
|
17
16
|
};
|
|
18
17
|
};
|
|
19
18
|
var ColorModeContext = /*#__PURE__*/createContext(undefined);
|
|
@@ -40,10 +39,26 @@ export function UNSAFE_useColorModeForMigration() {
|
|
|
40
39
|
*/
|
|
41
40
|
export function useColorMode() {
|
|
42
41
|
var value = useContext(ColorModeContext);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
var _getGlobalTheme = getGlobalTheme(),
|
|
43
|
+
colorMode = _getGlobalTheme.colorMode;
|
|
44
|
+
var _useState = useState(colorMode || 'light'),
|
|
45
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
46
|
+
resolvedColorMode = _useState2[0],
|
|
47
|
+
setResolvedColorMode = _useState2[1];
|
|
48
|
+
useEffect(function () {
|
|
49
|
+
// We are using theme from context so no need to reference the DOM
|
|
50
|
+
if (value) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
var observer = new ThemeMutationObserver(function (theme) {
|
|
54
|
+
setResolvedColorMode(theme.colorMode || 'light');
|
|
55
|
+
});
|
|
56
|
+
observer.observe();
|
|
57
|
+
return function () {
|
|
58
|
+
return observer.disconnect();
|
|
59
|
+
};
|
|
60
|
+
}, [value]);
|
|
61
|
+
return value ? value : resolvedColorMode;
|
|
47
62
|
}
|
|
48
63
|
|
|
49
64
|
/**
|
|
@@ -66,10 +81,10 @@ export function useSetColorMode() {
|
|
|
66
81
|
*/
|
|
67
82
|
export function useTheme() {
|
|
68
83
|
var theme = useContext(ThemeContext);
|
|
69
|
-
var
|
|
70
|
-
|
|
71
|
-
resolvedTheme =
|
|
72
|
-
setResolvedTheme =
|
|
84
|
+
var _useState3 = useState(theme || getGlobalTheme()),
|
|
85
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
86
|
+
resolvedTheme = _useState4[0],
|
|
87
|
+
setResolvedTheme = _useState4[1];
|
|
73
88
|
useEffect(function () {
|
|
74
89
|
// We are using theme from context so no need to reference the DOM
|
|
75
90
|
if (theme) {
|
|
@@ -81,7 +96,7 @@ export function useTheme() {
|
|
|
81
96
|
return observer.disconnect();
|
|
82
97
|
};
|
|
83
98
|
}, [theme]);
|
|
84
|
-
return resolvedTheme;
|
|
99
|
+
return theme ? theme : resolvedTheme;
|
|
85
100
|
}
|
|
86
101
|
|
|
87
102
|
/**
|
|
@@ -118,20 +133,20 @@ function ThemeProvider(_ref) {
|
|
|
118
133
|
var children = _ref.children,
|
|
119
134
|
defaultColorMode = _ref.defaultColorMode,
|
|
120
135
|
defaultTheme = _ref.defaultTheme;
|
|
121
|
-
var
|
|
122
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
123
|
-
chosenColorMode = _useState4[0],
|
|
124
|
-
setChosenColorMode = _useState4[1];
|
|
125
|
-
var _useState5 = useState(getReconciledColorMode(defaultColorMode)),
|
|
136
|
+
var _useState5 = useState(defaultColorMode),
|
|
126
137
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
var _useState7 = useState(
|
|
138
|
+
chosenColorMode = _useState6[0],
|
|
139
|
+
setChosenColorMode = _useState6[1];
|
|
140
|
+
var _useState7 = useState(getReconciledColorMode(defaultColorMode)),
|
|
141
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
142
|
+
reconciledColorMode = _useState8[0],
|
|
143
|
+
setReconciledColorMode = _useState8[1];
|
|
144
|
+
var _useState9 = useState(function () {
|
|
130
145
|
return _objectSpread(_objectSpread({}, defaultThemeSettings()), defaultTheme);
|
|
131
146
|
}),
|
|
132
|
-
|
|
133
|
-
theme =
|
|
134
|
-
setTheme =
|
|
147
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
148
|
+
theme = _useState0[0],
|
|
149
|
+
setTheme = _useState0[1];
|
|
135
150
|
var setColorMode = useCallback(function (colorMode) {
|
|
136
151
|
setChosenColorMode(colorMode);
|
|
137
152
|
setReconciledColorMode(getReconciledColorMode(colorMode));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/app-provider",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "A top level provider for the Design System.",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -38,8 +38,7 @@
|
|
|
38
38
|
".": "./src/index.tsx"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@atlaskit/
|
|
42
|
-
"@atlaskit/tokens": "^5.6.0",
|
|
41
|
+
"@atlaskit/tokens": "^6.0.0",
|
|
43
42
|
"@babel/runtime": "^7.0.0",
|
|
44
43
|
"bind-event-listener": "^3.0.0"
|
|
45
44
|
},
|
|
@@ -50,14 +49,13 @@
|
|
|
50
49
|
"@af/visual-regression": "workspace:^",
|
|
51
50
|
"@atlaskit/dropdown-menu": "^16.3.0",
|
|
52
51
|
"@atlaskit/ds-lib": "^5.0.0",
|
|
53
|
-
"@atlaskit/primitives": "^14.
|
|
52
|
+
"@atlaskit/primitives": "^14.11.0",
|
|
54
53
|
"@atlaskit/visual-regression": "workspace:^",
|
|
55
54
|
"@atlassian/ssr-tests": "^0.2.0",
|
|
56
55
|
"@testing-library/react": "^13.4.0",
|
|
57
56
|
"@testing-library/user-event": "^14.4.3",
|
|
58
57
|
"react-dom": "^18.2.0",
|
|
59
|
-
"react-resource-router": "^0.20.0"
|
|
60
|
-
"typescript": "~5.4.2"
|
|
58
|
+
"react-resource-router": "^0.20.0"
|
|
61
59
|
},
|
|
62
60
|
"techstack": {
|
|
63
61
|
"@atlassian/frontend": {
|
|
@@ -90,10 +88,5 @@
|
|
|
90
88
|
]
|
|
91
89
|
}
|
|
92
90
|
},
|
|
93
|
-
"homepage": "https://atlassian.design/components/app-provider"
|
|
94
|
-
"platform-feature-flags": {
|
|
95
|
-
"platform-default-typography-refreshed": {
|
|
96
|
-
"type": "boolean"
|
|
97
|
-
}
|
|
98
|
-
}
|
|
91
|
+
"homepage": "https://atlassian.design/components/app-provider"
|
|
99
92
|
}
|