@atlaskit/app-provider 3.1.0 → 3.2.1
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 +15 -0
- package/dist/cjs/index.js +10 -2
- package/dist/cjs/router-link-provider/hooks/use-router-link.js +1 -0
- package/dist/cjs/theme-provider.compiled.css +1 -0
- package/dist/cjs/theme-provider.js +20 -1
- package/dist/es2019/index.js +1 -0
- package/dist/es2019/router-link-provider/hooks/use-router-link.js +1 -0
- package/dist/es2019/theme-provider.compiled.css +1 -0
- package/dist/es2019/theme-provider.js +22 -2
- package/dist/esm/index.js +1 -0
- package/dist/esm/router-link-provider/hooks/use-router-link.js +1 -0
- package/dist/esm/theme-provider.compiled.css +1 -0
- package/dist/esm/theme-provider.js +21 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/theme-provider.d.ts +5 -1
- package/dist/types-ts4.5/index.d.ts +1 -0
- package/dist/types-ts4.5/theme-provider.d.ts +5 -1
- package/package.json +11 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @atlaskit/app-provider
|
|
2
2
|
|
|
3
|
+
## 3.2.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`28e3bab9e4314`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/28e3bab9e4314) -
|
|
8
|
+
Migrated old shape tokens to new tokens. No visual change.
|
|
9
|
+
|
|
10
|
+
## 3.2.0
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- [`0f3043fe00379`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0f3043fe00379) -
|
|
15
|
+
Adds subtree theming implementation behind feature gate. Exports `ThemeProvider` as first-class
|
|
16
|
+
API.
|
|
17
|
+
|
|
3
18
|
## 3.1.0
|
|
4
19
|
|
|
5
20
|
### Minor Changes
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
8
|
+
Object.defineProperty(exports, "ThemeProvider", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _themeProvider.default;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
7
14
|
Object.defineProperty(exports, "UNSAFE_useColorModeForMigration", {
|
|
8
15
|
enumerable: true,
|
|
9
16
|
get: function get() {
|
|
@@ -47,5 +54,6 @@ Object.defineProperty(exports, "useTheme", {
|
|
|
47
54
|
}
|
|
48
55
|
});
|
|
49
56
|
var _appProvider = _interopRequireDefault(require("./app-provider"));
|
|
50
|
-
var _themeProvider = require("./theme-provider");
|
|
51
|
-
var _useRouterLink = _interopRequireDefault(require("./router-link-provider/hooks/use-router-link"));
|
|
57
|
+
var _themeProvider = _interopRequireWildcard(require("./theme-provider"));
|
|
58
|
+
var _useRouterLink = _interopRequireDefault(require("./router-link-provider/hooks/use-router-link"));
|
|
59
|
+
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); }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._1e0c1bgi{display:contents}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* theme-provider.tsx generated by @compiled/babel-plugin v0.38.1 */
|
|
1
2
|
"use strict";
|
|
2
3
|
|
|
3
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
@@ -11,12 +12,15 @@ exports.useColorMode = useColorMode;
|
|
|
11
12
|
exports.useSetColorMode = useSetColorMode;
|
|
12
13
|
exports.useSetTheme = useSetTheme;
|
|
13
14
|
exports.useTheme = useTheme;
|
|
15
|
+
require("./theme-provider.compiled.css");
|
|
16
|
+
var _runtime = require("@compiled/react/runtime");
|
|
14
17
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
18
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
19
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
20
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
18
21
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
22
|
var _bindEventListener = require("bind-event-listener");
|
|
23
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
20
24
|
var _tokens = require("@atlaskit/tokens");
|
|
21
25
|
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); }
|
|
22
26
|
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; }
|
|
@@ -136,6 +140,9 @@ function getReconciledColorMode(colorMode) {
|
|
|
136
140
|
}
|
|
137
141
|
return colorMode;
|
|
138
142
|
}
|
|
143
|
+
var contentStyles = {
|
|
144
|
+
body: "_1e0c1bgi"
|
|
145
|
+
};
|
|
139
146
|
/**
|
|
140
147
|
* __Theme provider__
|
|
141
148
|
*
|
|
@@ -172,6 +179,11 @@ function ThemeProvider(_ref) {
|
|
|
172
179
|
}, []);
|
|
173
180
|
var lastSetGlobalThemePromiseRef = (0, _react.useRef)(null);
|
|
174
181
|
(0, _react.useEffect)(function () {
|
|
182
|
+
// If fg enabled avoid mounting themes
|
|
183
|
+
if ((0, _platformFeatureFlags.fg)('platform-static-theme-loading')) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
|
|
175
187
|
/**
|
|
176
188
|
* We need to wait for any previous `setGlobalTheme` calls to finish before calling it again.
|
|
177
189
|
* This is to prevent race conditions as `setGlobalTheme` is async and mutates the DOM (e.g. sets the
|
|
@@ -254,6 +266,9 @@ function ThemeProvider(_ref) {
|
|
|
254
266
|
});
|
|
255
267
|
return unbindListener;
|
|
256
268
|
}, [chosenColorMode]);
|
|
269
|
+
var attrs = (0, _tokens.getThemeHtmlAttrs)(_objectSpread(_objectSpread({}, theme), {}, {
|
|
270
|
+
colorMode: reconciledColorMode
|
|
271
|
+
}));
|
|
257
272
|
return /*#__PURE__*/_react.default.createElement(ColorModeContext.Provider, {
|
|
258
273
|
value: reconciledColorMode
|
|
259
274
|
}, /*#__PURE__*/_react.default.createElement(SetColorModeContext.Provider, {
|
|
@@ -262,6 +277,10 @@ function ThemeProvider(_ref) {
|
|
|
262
277
|
value: theme
|
|
263
278
|
}, /*#__PURE__*/_react.default.createElement(SetThemeContext.Provider, {
|
|
264
279
|
value: setPartialTheme
|
|
265
|
-
},
|
|
280
|
+
}, (0, _platformFeatureFlags.fg)('platform-static-theme-loading') ? /*#__PURE__*/_react.default.createElement("div", {
|
|
281
|
+
"data-theme": attrs['data-theme'],
|
|
282
|
+
"data-color-mode": attrs['data-color-mode'],
|
|
283
|
+
className: (0, _runtime.ax)([contentStyles.body])
|
|
284
|
+
}, children) : children))));
|
|
266
285
|
}
|
|
267
286
|
var _default = exports.default = ThemeProvider;
|
package/dist/es2019/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default } from './app-provider';
|
|
2
|
+
export { default as ThemeProvider } from './theme-provider';
|
|
2
3
|
export { UNSAFE_useColorModeForMigration, useColorMode, useSetColorMode, useSetTheme, useTheme } from './theme-provider';
|
|
3
4
|
import useRouterLink from './router-link-provider/hooks/use-router-link';
|
|
4
5
|
export { useRouterLink };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._1e0c1bgi{display:contents}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
/* theme-provider.tsx generated by @compiled/babel-plugin v0.38.1 */
|
|
2
|
+
import "./theme-provider.compiled.css";
|
|
3
|
+
import { ax, ix } from "@compiled/react/runtime";
|
|
1
4
|
import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';
|
|
2
5
|
import { bind } from 'bind-event-listener';
|
|
3
|
-
import {
|
|
6
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
7
|
+
import { getGlobalTheme, getThemeHtmlAttrs, setGlobalTheme, ThemeMutationObserver } from '@atlaskit/tokens';
|
|
4
8
|
const defaultThemeSettings = () => ({
|
|
5
9
|
dark: 'dark',
|
|
6
10
|
light: 'light',
|
|
@@ -105,6 +109,9 @@ function getReconciledColorMode(colorMode) {
|
|
|
105
109
|
}
|
|
106
110
|
return colorMode;
|
|
107
111
|
}
|
|
112
|
+
const contentStyles = {
|
|
113
|
+
body: "_1e0c1bgi"
|
|
114
|
+
};
|
|
108
115
|
/**
|
|
109
116
|
* __Theme provider__
|
|
110
117
|
*
|
|
@@ -135,6 +142,11 @@ function ThemeProvider({
|
|
|
135
142
|
}, []);
|
|
136
143
|
const lastSetGlobalThemePromiseRef = useRef(null);
|
|
137
144
|
useEffect(() => {
|
|
145
|
+
// If fg enabled avoid mounting themes
|
|
146
|
+
if (fg('platform-static-theme-loading')) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
|
|
138
150
|
/**
|
|
139
151
|
* We need to wait for any previous `setGlobalTheme` calls to finish before calling it again.
|
|
140
152
|
* This is to prevent race conditions as `setGlobalTheme` is async and mutates the DOM (e.g. sets the
|
|
@@ -183,6 +195,10 @@ function ThemeProvider({
|
|
|
183
195
|
});
|
|
184
196
|
return unbindListener;
|
|
185
197
|
}, [chosenColorMode]);
|
|
198
|
+
const attrs = getThemeHtmlAttrs({
|
|
199
|
+
...theme,
|
|
200
|
+
colorMode: reconciledColorMode
|
|
201
|
+
});
|
|
186
202
|
return /*#__PURE__*/React.createElement(ColorModeContext.Provider, {
|
|
187
203
|
value: reconciledColorMode
|
|
188
204
|
}, /*#__PURE__*/React.createElement(SetColorModeContext.Provider, {
|
|
@@ -191,6 +207,10 @@ function ThemeProvider({
|
|
|
191
207
|
value: theme
|
|
192
208
|
}, /*#__PURE__*/React.createElement(SetThemeContext.Provider, {
|
|
193
209
|
value: setPartialTheme
|
|
194
|
-
},
|
|
210
|
+
}, fg('platform-static-theme-loading') ? /*#__PURE__*/React.createElement("div", {
|
|
211
|
+
"data-theme": attrs['data-theme'],
|
|
212
|
+
"data-color-mode": attrs['data-color-mode'],
|
|
213
|
+
className: ax([contentStyles.body])
|
|
214
|
+
}, children) : children))));
|
|
195
215
|
}
|
|
196
216
|
export default ThemeProvider;
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default } from './app-provider';
|
|
2
|
+
export { default as ThemeProvider } from './theme-provider';
|
|
2
3
|
export { UNSAFE_useColorModeForMigration, useColorMode, useSetColorMode, useSetTheme, useTheme } from './theme-provider';
|
|
3
4
|
import useRouterLink from './router-link-provider/hooks/use-router-link';
|
|
4
5
|
export { useRouterLink };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._1e0c1bgi{display:contents}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
/* theme-provider.tsx generated by @compiled/babel-plugin v0.38.1 */
|
|
1
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
4
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
5
|
+
import "./theme-provider.compiled.css";
|
|
6
|
+
import { ax, ix } from "@compiled/react/runtime";
|
|
4
7
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
8
|
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; }
|
|
6
9
|
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
10
|
import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';
|
|
8
11
|
import { bind } from 'bind-event-listener';
|
|
9
|
-
import {
|
|
12
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
13
|
+
import { getGlobalTheme, getThemeHtmlAttrs, setGlobalTheme, ThemeMutationObserver } from '@atlaskit/tokens';
|
|
10
14
|
var defaultThemeSettings = function defaultThemeSettings() {
|
|
11
15
|
return {
|
|
12
16
|
dark: 'dark',
|
|
@@ -122,6 +126,9 @@ function getReconciledColorMode(colorMode) {
|
|
|
122
126
|
}
|
|
123
127
|
return colorMode;
|
|
124
128
|
}
|
|
129
|
+
var contentStyles = {
|
|
130
|
+
body: "_1e0c1bgi"
|
|
131
|
+
};
|
|
125
132
|
/**
|
|
126
133
|
* __Theme provider__
|
|
127
134
|
*
|
|
@@ -158,6 +165,11 @@ function ThemeProvider(_ref) {
|
|
|
158
165
|
}, []);
|
|
159
166
|
var lastSetGlobalThemePromiseRef = useRef(null);
|
|
160
167
|
useEffect(function () {
|
|
168
|
+
// If fg enabled avoid mounting themes
|
|
169
|
+
if (fg('platform-static-theme-loading')) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
|
|
161
173
|
/**
|
|
162
174
|
* We need to wait for any previous `setGlobalTheme` calls to finish before calling it again.
|
|
163
175
|
* This is to prevent race conditions as `setGlobalTheme` is async and mutates the DOM (e.g. sets the
|
|
@@ -240,6 +252,9 @@ function ThemeProvider(_ref) {
|
|
|
240
252
|
});
|
|
241
253
|
return unbindListener;
|
|
242
254
|
}, [chosenColorMode]);
|
|
255
|
+
var attrs = getThemeHtmlAttrs(_objectSpread(_objectSpread({}, theme), {}, {
|
|
256
|
+
colorMode: reconciledColorMode
|
|
257
|
+
}));
|
|
243
258
|
return /*#__PURE__*/React.createElement(ColorModeContext.Provider, {
|
|
244
259
|
value: reconciledColorMode
|
|
245
260
|
}, /*#__PURE__*/React.createElement(SetColorModeContext.Provider, {
|
|
@@ -248,6 +263,10 @@ function ThemeProvider(_ref) {
|
|
|
248
263
|
value: theme
|
|
249
264
|
}, /*#__PURE__*/React.createElement(SetThemeContext.Provider, {
|
|
250
265
|
value: setPartialTheme
|
|
251
|
-
},
|
|
266
|
+
}, fg('platform-static-theme-loading') ? /*#__PURE__*/React.createElement("div", {
|
|
267
|
+
"data-theme": attrs['data-theme'],
|
|
268
|
+
"data-color-mode": attrs['data-color-mode'],
|
|
269
|
+
className: ax([contentStyles.body])
|
|
270
|
+
}, children) : children))));
|
|
252
271
|
}
|
|
253
272
|
export default ThemeProvider;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default } from './app-provider';
|
|
2
|
+
export { default as ThemeProvider } from './theme-provider';
|
|
2
3
|
export { UNSAFE_useColorModeForMigration, useColorMode, useSetColorMode, useSetTheme, useTheme, } from './theme-provider';
|
|
3
4
|
export { type RouterLinkComponent, type RouterLinkComponentProps } from './router-link-provider';
|
|
4
5
|
import useRouterLink from './router-link-provider/hooks/use-router-link';
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jsxRuntime classic
|
|
3
|
+
* @jsx jsx
|
|
4
|
+
*/
|
|
1
5
|
import React from 'react';
|
|
2
6
|
import { type ThemeState } from '@atlaskit/tokens';
|
|
3
7
|
export type Theme = Omit<ThemeState, 'colorMode' | 'contrastMode'>;
|
|
@@ -47,5 +51,5 @@ interface ThemeProviderProps {
|
|
|
47
51
|
*
|
|
48
52
|
* @internal
|
|
49
53
|
*/
|
|
50
|
-
declare function ThemeProvider({ children, defaultColorMode, defaultTheme }: ThemeProviderProps):
|
|
54
|
+
declare function ThemeProvider({ children, defaultColorMode, defaultTheme }: ThemeProviderProps): JSX.Element;
|
|
51
55
|
export default ThemeProvider;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default } from './app-provider';
|
|
2
|
+
export { default as ThemeProvider } from './theme-provider';
|
|
2
3
|
export { UNSAFE_useColorModeForMigration, useColorMode, useSetColorMode, useSetTheme, useTheme, } from './theme-provider';
|
|
3
4
|
export { type RouterLinkComponent, type RouterLinkComponentProps } from './router-link-provider';
|
|
4
5
|
import useRouterLink from './router-link-provider/hooks/use-router-link';
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jsxRuntime classic
|
|
3
|
+
* @jsx jsx
|
|
4
|
+
*/
|
|
1
5
|
import React from 'react';
|
|
2
6
|
import { type ThemeState } from '@atlaskit/tokens';
|
|
3
7
|
export type Theme = Omit<ThemeState, 'colorMode' | 'contrastMode'>;
|
|
@@ -47,5 +51,5 @@ interface ThemeProviderProps {
|
|
|
47
51
|
*
|
|
48
52
|
* @internal
|
|
49
53
|
*/
|
|
50
|
-
declare function ThemeProvider({ children, defaultColorMode, defaultTheme }: ThemeProviderProps):
|
|
54
|
+
declare function ThemeProvider({ children, defaultColorMode, defaultTheme }: ThemeProviderProps): JSX.Element;
|
|
51
55
|
export default ThemeProvider;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/app-provider",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "A top level provider for the Design System.",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -34,11 +34,10 @@
|
|
|
34
34
|
"**/*.compiled.css"
|
|
35
35
|
],
|
|
36
36
|
"atlaskit:src": "src/index.tsx",
|
|
37
|
-
"af:exports": {
|
|
38
|
-
".": "./src/index.tsx"
|
|
39
|
-
},
|
|
40
37
|
"dependencies": {
|
|
41
|
-
"@atlaskit/
|
|
38
|
+
"@atlaskit/css": "^0.14.0",
|
|
39
|
+
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
40
|
+
"@atlaskit/tokens": "^6.3.0",
|
|
42
41
|
"@babel/runtime": "^7.0.0",
|
|
43
42
|
"bind-event-listener": "^3.0.0"
|
|
44
43
|
},
|
|
@@ -49,14 +48,18 @@
|
|
|
49
48
|
"@af/visual-regression": "workspace:^",
|
|
50
49
|
"@atlaskit/dropdown-menu": "^16.3.0",
|
|
51
50
|
"@atlaskit/ds-lib": "^5.0.0",
|
|
52
|
-
"@atlaskit/primitives": "^14.
|
|
53
|
-
"@
|
|
54
|
-
"@atlassian/ssr-tests": "^0.2.0",
|
|
51
|
+
"@atlaskit/primitives": "^14.14.0",
|
|
52
|
+
"@atlassian/ssr-tests": "^0.3.0",
|
|
55
53
|
"@testing-library/react": "^13.4.0",
|
|
56
54
|
"@testing-library/user-event": "^14.4.3",
|
|
57
55
|
"react-dom": "^18.2.0",
|
|
58
56
|
"react-resource-router": "^0.20.0"
|
|
59
57
|
},
|
|
58
|
+
"platform-feature-flags": {
|
|
59
|
+
"platform-static-theme-loading": {
|
|
60
|
+
"type": "boolean"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
60
63
|
"techstack": {
|
|
61
64
|
"@atlassian/frontend": {
|
|
62
65
|
"import-structure": [
|