@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 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); }
@@ -27,5 +27,6 @@ var useRouterLink = function useRouterLink() {
27
27
  if (routerLinkComponent) {
28
28
  return routerLinkComponent;
29
29
  }
30
+ return;
30
31
  };
31
32
  var _default = exports.default = useRouterLink;
@@ -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
- }, children))));
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;
@@ -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 };
@@ -23,5 +23,6 @@ const useRouterLink = () => {
23
23
  if (routerLinkComponent) {
24
24
  return routerLinkComponent;
25
25
  }
26
+ return;
26
27
  };
27
28
  export default 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 { getGlobalTheme, setGlobalTheme, ThemeMutationObserver } from '@atlaskit/tokens';
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
- }, children))));
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 };
@@ -22,5 +22,6 @@ var useRouterLink = function useRouterLink() {
22
22
  if (routerLinkComponent) {
23
23
  return routerLinkComponent;
24
24
  }
25
+ return;
25
26
  };
26
27
  export default 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 { getGlobalTheme, setGlobalTheme, ThemeMutationObserver } from '@atlaskit/tokens';
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
- }, children))));
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;
@@ -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): React.JSX.Element;
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): React.JSX.Element;
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.0",
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/tokens": "^6.0.0",
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.11.0",
53
- "@atlaskit/visual-regression": "workspace:^",
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": [