@atlaskit/app-provider 4.0.0 → 4.2.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
@@ -1,5 +1,32 @@
1
1
  # @atlaskit/app-provider
2
2
 
3
+ ## 4.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`1fab6967bb305`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/1fab6967bb305) -
8
+ Tidied feature flag `platform_dst_subtree_theming` which enables sub-tree theming capabilities
9
+ within `@atlaskit/app-provider`
10
+
11
+ ## 4.1.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [`233c7dede572a`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/233c7dede572a) -
16
+ Fixes a bug with `AppProvider` where under certain conditions, can cause an infinite loop
17
+ switching between light/dark modes.
18
+
19
+ This was happening because of this check:
20
+ `const isRootThemeProvider = isInsideAppProvider && !isInsideThemeProvider;`
21
+
22
+ When an `AppProvider` has `UNSAFE_isThemingDisabled`, it avoids mounting it's root
23
+ `ThemeProvider`. However, any subsequently nested `ThemeProvider`s would become the root theme
24
+ provider of `AppProvider`, which uninintentionally enables global theming functionality.
25
+
26
+ The fix is to allow `ThemeProvider` to detect when a wrapping `AppProvider` has theming disabled,
27
+ which allows it to accurately determine if it is the root theme provider before enabling global
28
+ theming.
29
+
3
30
  ## 4.0.0
4
31
 
5
32
  ### Major Changes
@@ -32,9 +32,11 @@ function AppProvider(_ref) {
32
32
  }, children);
33
33
  return /*#__PURE__*/_react.default.createElement(_context.InsideAppProviderContext.Provider, {
34
34
  value: true
35
- }, UNSAFE_isThemingDisabled ? routerLinkProvider : /*#__PURE__*/_react.default.createElement(_themeProvider.default, {
35
+ }, UNSAFE_isThemingDisabled ? routerLinkProvider : /*#__PURE__*/_react.default.createElement(_context.AppProviderThemingEnabledContext.Provider, {
36
+ value: true
37
+ }, /*#__PURE__*/_react.default.createElement(_themeProvider.default, {
36
38
  defaultColorMode: defaultColorMode,
37
39
  defaultTheme: defaultTheme
38
- }, routerLinkProvider));
40
+ }, routerLinkProvider)));
39
41
  }
40
42
  var _default = exports.default = AppProvider;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useIsInsideAppProvider = exports.InsideAppProviderContext = void 0;
6
+ exports.useIsInsideAppProvider = exports.useIsAppProviderThemingEnabled = exports.InsideAppProviderContext = exports.AppProviderThemingEnabledContext = void 0;
7
7
  var _react = require("react");
8
8
  /**
9
9
  * __Inside app provider context__
@@ -13,4 +13,14 @@ var _react = require("react");
13
13
  var InsideAppProviderContext = exports.InsideAppProviderContext = /*#__PURE__*/(0, _react.createContext)(false);
14
14
  var useIsInsideAppProvider = exports.useIsInsideAppProvider = function useIsInsideAppProvider() {
15
15
  return (0, _react.useContext)(InsideAppProviderContext);
16
+ };
17
+
18
+ /**
19
+ * __App provider theming enabled context__
20
+ *
21
+ * A context that indicates if the AppProvider is enabled for theming.
22
+ */
23
+ var AppProviderThemingEnabledContext = exports.AppProviderThemingEnabledContext = /*#__PURE__*/(0, _react.createContext)(false);
24
+ var useIsAppProviderThemingEnabled = exports.useIsAppProviderThemingEnabled = function useIsAppProviderThemingEnabled() {
25
+ return (0, _react.useContext)(AppProviderThemingEnabledContext);
16
26
  };
@@ -1,4 +1,4 @@
1
- /* index.tsx generated by @compiled/babel-plugin v0.38.1 */
1
+ /* index.tsx generated by @compiled/babel-plugin v0.39.1 */
2
2
  "use strict";
3
3
 
4
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -16,7 +16,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
16
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
17
  var _react = _interopRequireWildcard(require("react"));
18
18
  var _bindEventListener = require("bind-event-listener");
19
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
20
19
  var _tokens = require("@atlaskit/tokens");
21
20
  var _context3 = require("../context");
22
21
  var _colorMode = require("./context/color-mode");
@@ -82,19 +81,8 @@ function ThemeProvider(_ref) {
82
81
  }, []);
83
82
  var lastSetGlobalThemePromiseRef = (0, _react.useRef)(null);
84
83
  var isInsideAppProvider = (0, _context3.useIsInsideAppProvider)();
84
+ var isAppProviderThemingEnabled = (0, _context3.useIsAppProviderThemingEnabled)();
85
85
  var isInsideThemeProvider = (0, _useIsInsideThemeProvider.useIsInsideThemeProvider)();
86
- var isRootThemeProvider = isInsideAppProvider && !isInsideThemeProvider;
87
- var shouldUseGlobalTheming =
88
- /**
89
- * When not behind feature flag, partially revert to legacy behavior.
90
- * This only affects theme providers that are not inside an AppProvider or a ThemeProvider,
91
- * as we still need to set global theme state to prevent breaking existing apps,
92
- * but also prevent multiple theme providers from loading conflicting theme states.
93
- *
94
- * At some point this should be removed as we will
95
- * only support sub-tree theming when used inside of AppProvider.
96
- */
97
- !(0, _platformFeatureFlags.fg)('platform_dst_subtree_theming') && !isInsideAppProvider && !isInsideThemeProvider ||
98
86
  /**
99
87
  * A top-level ThemeProvider is detected by being the first ThemeProvider inside an AppProvider.
100
88
  *
@@ -106,9 +94,9 @@ function ThemeProvider(_ref) {
106
94
  * `html` in order to apply global theme state, which would allow a more consistent approach to
107
95
  * theme loading.
108
96
  */
109
- isRootThemeProvider;
97
+ var isRootThemeProvider = isInsideAppProvider && !isInsideThemeProvider && isAppProviderThemingEnabled;
110
98
  (0, _react.useEffect)(function () {
111
- if (shouldUseGlobalTheming) {
99
+ if (isRootThemeProvider) {
112
100
  /**
113
101
  * We need to wait for any previous `setGlobalTheme` calls to finish before calling it again.
114
102
  * This is to prevent race conditions as `setGlobalTheme` is async and mutates the DOM (e.g. sets the
@@ -181,7 +169,7 @@ function ThemeProvider(_ref) {
181
169
  // we treat them as sub-tree themes that do not load global theme state.
182
170
  (0, _loadAndMountThemes.loadAndMountThemes)(theme);
183
171
  }
184
- }, [isInsideAppProvider, isInsideThemeProvider, isRootThemeProvider, reconciledColorMode, shouldUseGlobalTheming, theme]);
172
+ }, [isInsideAppProvider, isInsideThemeProvider, isRootThemeProvider, reconciledColorMode, theme]);
185
173
  (0, _react.useEffect)(function () {
186
174
  if (!prefersDarkModeMql) {
187
175
  return;
@@ -209,7 +197,7 @@ function ThemeProvider(_ref) {
209
197
  value: theme
210
198
  }, /*#__PURE__*/_react.default.createElement(_theme.SetThemeContext.Provider, {
211
199
  value: setPartialTheme
212
- }, !shouldUseGlobalTheming && (0, _platformFeatureFlags.fg)('platform_dst_subtree_theming') ? /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, attrs, {
200
+ }, !isRootThemeProvider ? /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, attrs, {
213
201
  className: (0, _runtime.ax)([contentStyles.body])
214
202
  }), children) : children)))));
215
203
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { InsideAppProviderContext, useIsInsideAppProvider } from './context';
2
+ import { AppProviderThemingEnabledContext, InsideAppProviderContext, useIsInsideAppProvider } from './context';
3
3
  import RouterLinkProvider from './router-link-provider';
4
4
  import ThemeProvider from './theme-provider';
5
5
  /**
@@ -25,9 +25,11 @@ function AppProvider({
25
25
  }, children);
26
26
  return /*#__PURE__*/React.createElement(InsideAppProviderContext.Provider, {
27
27
  value: true
28
- }, UNSAFE_isThemingDisabled ? routerLinkProvider : /*#__PURE__*/React.createElement(ThemeProvider, {
28
+ }, UNSAFE_isThemingDisabled ? routerLinkProvider : /*#__PURE__*/React.createElement(AppProviderThemingEnabledContext.Provider, {
29
+ value: true
30
+ }, /*#__PURE__*/React.createElement(ThemeProvider, {
29
31
  defaultColorMode: defaultColorMode,
30
32
  defaultTheme: defaultTheme
31
- }, routerLinkProvider));
33
+ }, routerLinkProvider)));
32
34
  }
33
35
  export default AppProvider;
@@ -8,4 +8,14 @@ import { createContext, useContext } from 'react';
8
8
  export const InsideAppProviderContext = /*#__PURE__*/createContext(false);
9
9
  export const useIsInsideAppProvider = () => {
10
10
  return useContext(InsideAppProviderContext);
11
+ };
12
+
13
+ /**
14
+ * __App provider theming enabled context__
15
+ *
16
+ * A context that indicates if the AppProvider is enabled for theming.
17
+ */
18
+ export const AppProviderThemingEnabledContext = /*#__PURE__*/createContext(false);
19
+ export const useIsAppProviderThemingEnabled = () => {
20
+ return useContext(AppProviderThemingEnabledContext);
11
21
  };
@@ -1,12 +1,11 @@
1
- /* index.tsx generated by @compiled/babel-plugin v0.38.1 */
1
+ /* index.tsx generated by @compiled/babel-plugin v0.39.1 */
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
3
  import "./index.compiled.css";
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import React, { useCallback, useEffect, useRef, useState } from 'react';
6
6
  import { bind } from 'bind-event-listener';
7
- import { fg } from '@atlaskit/platform-feature-flags';
8
7
  import { getThemeHtmlAttrs, setGlobalTheme, SUBTREE_THEME_ATTRIBUTE } from '@atlaskit/tokens';
9
- import { useIsInsideAppProvider } from '../context';
8
+ import { useIsAppProviderThemingEnabled, useIsInsideAppProvider } from '../context';
10
9
  import { ColorModeContext, SetColorModeContext } from './context/color-mode';
11
10
  import { InsideThemeProviderContext } from './context/inside-theme-provider';
12
11
  import { SetThemeContext, ThemeContext } from './context/theme';
@@ -60,19 +59,8 @@ function ThemeProvider({
60
59
  }, []);
61
60
  const lastSetGlobalThemePromiseRef = useRef(null);
62
61
  const isInsideAppProvider = useIsInsideAppProvider();
62
+ const isAppProviderThemingEnabled = useIsAppProviderThemingEnabled();
63
63
  const isInsideThemeProvider = useIsInsideThemeProvider();
64
- const isRootThemeProvider = isInsideAppProvider && !isInsideThemeProvider;
65
- const shouldUseGlobalTheming =
66
- /**
67
- * When not behind feature flag, partially revert to legacy behavior.
68
- * This only affects theme providers that are not inside an AppProvider or a ThemeProvider,
69
- * as we still need to set global theme state to prevent breaking existing apps,
70
- * but also prevent multiple theme providers from loading conflicting theme states.
71
- *
72
- * At some point this should be removed as we will
73
- * only support sub-tree theming when used inside of AppProvider.
74
- */
75
- !fg('platform_dst_subtree_theming') && !isInsideAppProvider && !isInsideThemeProvider ||
76
64
  /**
77
65
  * A top-level ThemeProvider is detected by being the first ThemeProvider inside an AppProvider.
78
66
  *
@@ -84,9 +72,9 @@ function ThemeProvider({
84
72
  * `html` in order to apply global theme state, which would allow a more consistent approach to
85
73
  * theme loading.
86
74
  */
87
- isRootThemeProvider;
75
+ const isRootThemeProvider = isInsideAppProvider && !isInsideThemeProvider && isAppProviderThemingEnabled;
88
76
  useEffect(() => {
89
- if (shouldUseGlobalTheming) {
77
+ if (isRootThemeProvider) {
90
78
  /**
91
79
  * We need to wait for any previous `setGlobalTheme` calls to finish before calling it again.
92
80
  * This is to prevent race conditions as `setGlobalTheme` is async and mutates the DOM (e.g. sets the
@@ -125,7 +113,7 @@ function ThemeProvider({
125
113
  // we treat them as sub-tree themes that do not load global theme state.
126
114
  loadAndMountThemes(theme);
127
115
  }
128
- }, [isInsideAppProvider, isInsideThemeProvider, isRootThemeProvider, reconciledColorMode, shouldUseGlobalTheming, theme]);
116
+ }, [isInsideAppProvider, isInsideThemeProvider, isRootThemeProvider, reconciledColorMode, theme]);
129
117
  useEffect(() => {
130
118
  if (!prefersDarkModeMql) {
131
119
  return;
@@ -157,7 +145,7 @@ function ThemeProvider({
157
145
  value: theme
158
146
  }, /*#__PURE__*/React.createElement(SetThemeContext.Provider, {
159
147
  value: setPartialTheme
160
- }, !shouldUseGlobalTheming && fg('platform_dst_subtree_theming') ? /*#__PURE__*/React.createElement("div", _extends({}, attrs, {
148
+ }, !isRootThemeProvider ? /*#__PURE__*/React.createElement("div", _extends({}, attrs, {
161
149
  className: ax([contentStyles.body])
162
150
  }), children) : children)))));
163
151
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { InsideAppProviderContext, useIsInsideAppProvider } from './context';
2
+ import { AppProviderThemingEnabledContext, InsideAppProviderContext, useIsInsideAppProvider } from './context';
3
3
  import RouterLinkProvider from './router-link-provider';
4
4
  import ThemeProvider from './theme-provider';
5
5
  /**
@@ -25,9 +25,11 @@ function AppProvider(_ref) {
25
25
  }, children);
26
26
  return /*#__PURE__*/React.createElement(InsideAppProviderContext.Provider, {
27
27
  value: true
28
- }, UNSAFE_isThemingDisabled ? routerLinkProvider : /*#__PURE__*/React.createElement(ThemeProvider, {
28
+ }, UNSAFE_isThemingDisabled ? routerLinkProvider : /*#__PURE__*/React.createElement(AppProviderThemingEnabledContext.Provider, {
29
+ value: true
30
+ }, /*#__PURE__*/React.createElement(ThemeProvider, {
29
31
  defaultColorMode: defaultColorMode,
30
32
  defaultTheme: defaultTheme
31
- }, routerLinkProvider));
33
+ }, routerLinkProvider)));
32
34
  }
33
35
  export default AppProvider;
@@ -8,4 +8,14 @@ import { createContext, useContext } from 'react';
8
8
  export var InsideAppProviderContext = /*#__PURE__*/createContext(false);
9
9
  export var useIsInsideAppProvider = function useIsInsideAppProvider() {
10
10
  return useContext(InsideAppProviderContext);
11
+ };
12
+
13
+ /**
14
+ * __App provider theming enabled context__
15
+ *
16
+ * A context that indicates if the AppProvider is enabled for theming.
17
+ */
18
+ export var AppProviderThemingEnabledContext = /*#__PURE__*/createContext(false);
19
+ export var useIsAppProviderThemingEnabled = function useIsAppProviderThemingEnabled() {
20
+ return useContext(AppProviderThemingEnabledContext);
11
21
  };
@@ -1,4 +1,4 @@
1
- /* index.tsx generated by @compiled/babel-plugin v0.38.1 */
1
+ /* index.tsx generated by @compiled/babel-plugin v0.39.1 */
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
3
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
@@ -10,9 +10,8 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
10
10
  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; }
11
11
  import React, { useCallback, useEffect, useRef, useState } from 'react';
12
12
  import { bind } from 'bind-event-listener';
13
- import { fg } from '@atlaskit/platform-feature-flags';
14
13
  import { getThemeHtmlAttrs, setGlobalTheme, SUBTREE_THEME_ATTRIBUTE } from '@atlaskit/tokens';
15
- import { useIsInsideAppProvider } from '../context';
14
+ import { useIsAppProviderThemingEnabled, useIsInsideAppProvider } from '../context';
16
15
  import { ColorModeContext, SetColorModeContext } from './context/color-mode';
17
16
  import { InsideThemeProviderContext } from './context/inside-theme-provider';
18
17
  import { SetThemeContext, ThemeContext } from './context/theme';
@@ -73,19 +72,8 @@ function ThemeProvider(_ref) {
73
72
  }, []);
74
73
  var lastSetGlobalThemePromiseRef = useRef(null);
75
74
  var isInsideAppProvider = useIsInsideAppProvider();
75
+ var isAppProviderThemingEnabled = useIsAppProviderThemingEnabled();
76
76
  var isInsideThemeProvider = useIsInsideThemeProvider();
77
- var isRootThemeProvider = isInsideAppProvider && !isInsideThemeProvider;
78
- var shouldUseGlobalTheming =
79
- /**
80
- * When not behind feature flag, partially revert to legacy behavior.
81
- * This only affects theme providers that are not inside an AppProvider or a ThemeProvider,
82
- * as we still need to set global theme state to prevent breaking existing apps,
83
- * but also prevent multiple theme providers from loading conflicting theme states.
84
- *
85
- * At some point this should be removed as we will
86
- * only support sub-tree theming when used inside of AppProvider.
87
- */
88
- !fg('platform_dst_subtree_theming') && !isInsideAppProvider && !isInsideThemeProvider ||
89
77
  /**
90
78
  * A top-level ThemeProvider is detected by being the first ThemeProvider inside an AppProvider.
91
79
  *
@@ -97,9 +85,9 @@ function ThemeProvider(_ref) {
97
85
  * `html` in order to apply global theme state, which would allow a more consistent approach to
98
86
  * theme loading.
99
87
  */
100
- isRootThemeProvider;
88
+ var isRootThemeProvider = isInsideAppProvider && !isInsideThemeProvider && isAppProviderThemingEnabled;
101
89
  useEffect(function () {
102
- if (shouldUseGlobalTheming) {
90
+ if (isRootThemeProvider) {
103
91
  /**
104
92
  * We need to wait for any previous `setGlobalTheme` calls to finish before calling it again.
105
93
  * This is to prevent race conditions as `setGlobalTheme` is async and mutates the DOM (e.g. sets the
@@ -172,7 +160,7 @@ function ThemeProvider(_ref) {
172
160
  // we treat them as sub-tree themes that do not load global theme state.
173
161
  loadAndMountThemes(theme);
174
162
  }
175
- }, [isInsideAppProvider, isInsideThemeProvider, isRootThemeProvider, reconciledColorMode, shouldUseGlobalTheming, theme]);
163
+ }, [isInsideAppProvider, isInsideThemeProvider, isRootThemeProvider, reconciledColorMode, theme]);
176
164
  useEffect(function () {
177
165
  if (!prefersDarkModeMql) {
178
166
  return;
@@ -200,7 +188,7 @@ function ThemeProvider(_ref) {
200
188
  value: theme
201
189
  }, /*#__PURE__*/React.createElement(SetThemeContext.Provider, {
202
190
  value: setPartialTheme
203
- }, !shouldUseGlobalTheming && fg('platform_dst_subtree_theming') ? /*#__PURE__*/React.createElement("div", _extends({}, attrs, {
191
+ }, !isRootThemeProvider ? /*#__PURE__*/React.createElement("div", _extends({}, attrs, {
204
192
  className: ax([contentStyles.body])
205
193
  }), children) : children)))));
206
194
  }
@@ -3,5 +3,12 @@
3
3
  *
4
4
  * A context that indicates if the current component is inside an AppProvider.
5
5
  */
6
- export declare const InsideAppProviderContext: import("react").Context<boolean>;
6
+ export declare const InsideAppProviderContext: import('react').Context<boolean>;
7
7
  export declare const useIsInsideAppProvider: () => boolean;
8
+ /**
9
+ * __App provider theming enabled context__
10
+ *
11
+ * A context that indicates if the AppProvider is enabled for theming.
12
+ */
13
+ export declare const AppProviderThemingEnabledContext: import('react').Context<boolean>;
14
+ export declare const useIsAppProviderThemingEnabled: () => boolean;
@@ -3,8 +3,8 @@ export type ReconciledColorMode = Exclude<ThemeColorModes, 'auto'>;
3
3
  /**
4
4
  * __Color mode context__
5
5
  */
6
- export declare const ColorModeContext: import("react").Context<ReconciledColorMode | undefined>;
6
+ export declare const ColorModeContext: import('react').Context<ReconciledColorMode | undefined>;
7
7
  /**
8
8
  * __Set color mode context__
9
9
  */
10
- export declare const SetColorModeContext: import("react").Context<((value: ThemeColorModes) => void) | undefined>;
10
+ export declare const SetColorModeContext: import('react').Context<((value: ThemeColorModes) => void) | undefined>;
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * __Inside theme provider context__
3
3
  */
4
- export declare const InsideThemeProviderContext: import("react").Context<boolean>;
4
+ export declare const InsideThemeProviderContext: import('react').Context<boolean>;
@@ -3,8 +3,8 @@ export type Theme = Omit<ThemeState, 'colorMode' | 'contrastMode'>;
3
3
  /**
4
4
  * __Theme context__
5
5
  */
6
- export declare const ThemeContext: import("react").Context<Theme | undefined>;
6
+ export declare const ThemeContext: import('react').Context<Theme | undefined>;
7
7
  /**
8
8
  * __Set theme context__
9
9
  */
10
- export declare const SetThemeContext: import("react").Context<((value: Partial<Theme>) => void) | undefined>;
10
+ export declare const SetThemeContext: import('react').Context<((value: Partial<Theme>) => void) | undefined>;
@@ -15,5 +15,5 @@ export interface ThemeProviderProps {
15
15
  *
16
16
  * Provides global theming configuration.
17
17
  */
18
- declare function ThemeProvider({ children, defaultColorMode, defaultTheme }: ThemeProviderProps): JSX.Element;
18
+ declare function ThemeProvider({ children, defaultColorMode, defaultTheme, }: ThemeProviderProps): JSX.Element;
19
19
  export default ThemeProvider;
@@ -3,5 +3,12 @@
3
3
  *
4
4
  * A context that indicates if the current component is inside an AppProvider.
5
5
  */
6
- export declare const InsideAppProviderContext: import("react").Context<boolean>;
6
+ export declare const InsideAppProviderContext: import('react').Context<boolean>;
7
7
  export declare const useIsInsideAppProvider: () => boolean;
8
+ /**
9
+ * __App provider theming enabled context__
10
+ *
11
+ * A context that indicates if the AppProvider is enabled for theming.
12
+ */
13
+ export declare const AppProviderThemingEnabledContext: import('react').Context<boolean>;
14
+ export declare const useIsAppProviderThemingEnabled: () => boolean;
@@ -3,8 +3,8 @@ export type ReconciledColorMode = Exclude<ThemeColorModes, 'auto'>;
3
3
  /**
4
4
  * __Color mode context__
5
5
  */
6
- export declare const ColorModeContext: import("react").Context<ReconciledColorMode | undefined>;
6
+ export declare const ColorModeContext: import('react').Context<ReconciledColorMode | undefined>;
7
7
  /**
8
8
  * __Set color mode context__
9
9
  */
10
- export declare const SetColorModeContext: import("react").Context<((value: ThemeColorModes) => void) | undefined>;
10
+ export declare const SetColorModeContext: import('react').Context<((value: ThemeColorModes) => void) | undefined>;
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * __Inside theme provider context__
3
3
  */
4
- export declare const InsideThemeProviderContext: import("react").Context<boolean>;
4
+ export declare const InsideThemeProviderContext: import('react').Context<boolean>;
@@ -3,8 +3,8 @@ export type Theme = Omit<ThemeState, 'colorMode' | 'contrastMode'>;
3
3
  /**
4
4
  * __Theme context__
5
5
  */
6
- export declare const ThemeContext: import("react").Context<Theme | undefined>;
6
+ export declare const ThemeContext: import('react').Context<Theme | undefined>;
7
7
  /**
8
8
  * __Set theme context__
9
9
  */
10
- export declare const SetThemeContext: import("react").Context<((value: Partial<Theme>) => void) | undefined>;
10
+ export declare const SetThemeContext: import('react').Context<((value: Partial<Theme>) => void) | undefined>;
@@ -15,5 +15,5 @@ export interface ThemeProviderProps {
15
15
  *
16
16
  * Provides global theming configuration.
17
17
  */
18
- declare function ThemeProvider({ children, defaultColorMode, defaultTheme }: ThemeProviderProps): JSX.Element;
18
+ declare function ThemeProvider({ children, defaultColorMode, defaultTheme, }: ThemeProviderProps): JSX.Element;
19
19
  export default ThemeProvider;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/app-provider",
3
- "version": "4.0.0",
3
+ "version": "4.2.0",
4
4
  "description": "A top level provider for the Design System.",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -8,6 +8,13 @@
8
8
  "registry": "https://registry.npmjs.org/"
9
9
  },
10
10
  "atlassian": {
11
+ "react-compiler": {
12
+ "enabled": true,
13
+ "gating": {
14
+ "source": "@atlassian/react-compiler-gating",
15
+ "importSpecifierName": "isReactCompilerActivePlatform"
16
+ }
17
+ },
11
18
  "team": "Design System Team",
12
19
  "website": {
13
20
  "name": "App provider",
@@ -38,7 +45,7 @@
38
45
  "@atlaskit/browser-apis": "^0.0.1",
39
46
  "@atlaskit/css": "^0.19.0",
40
47
  "@atlaskit/platform-feature-flags": "^1.1.0",
41
- "@atlaskit/tokens": "^11.0.0",
48
+ "@atlaskit/tokens": "^11.4.0",
42
49
  "@babel/runtime": "^7.0.0",
43
50
  "bind-event-listener": "^3.0.0"
44
51
  },
@@ -47,18 +54,16 @@
47
54
  },
48
55
  "devDependencies": {
49
56
  "@af/visual-regression": "workspace:^",
50
- "@atlaskit/dropdown-menu": "^16.4.0",
51
- "@atlaskit/primitives": "^18.0.0",
57
+ "@atlaskit/dropdown-menu": "^16.8.0",
58
+ "@atlaskit/primitives": "^18.1.0",
52
59
  "@atlassian/feature-flags-test-utils": "^1.0.0",
60
+ "@atlassian/react-compiler-gating": "workspace:^",
53
61
  "@atlassian/ssr-tests": "workspace:^",
54
62
  "@atlassian/testing-library": "^0.4.0",
55
63
  "react-dom": "^18.2.0",
56
64
  "react-resource-router": "^0.20.0"
57
65
  },
58
66
  "platform-feature-flags": {
59
- "platform_dst_subtree_theming": {
60
- "type": "boolean"
61
- },
62
67
  "platform_increased-contrast-themes": {
63
68
  "type": "boolean"
64
69
  }