@atlaskit/popup 3.0.0 → 4.0.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,39 @@
1
1
  # @atlaskit/popup
2
2
 
3
+ ## 4.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#137034](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/137034)
8
+ [`a832dd489aab3`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/a832dd489aab3) - -
9
+ Migrated from `@emotion/react` to `@compiled/react` in order to improve performance, align with
10
+ the rest of the Atlaskit techstack, and support React 18 Streaming SSR.
11
+
12
+ - Added a `className` prop for applying a focus ring to the custom popup container (Currently
13
+ controlled by the feature flag `platform-design-system-apply-popup-wrapper-focus`). See usage
14
+ example [here](https://atlassian.design/components/popup/examples#customization).
15
+
16
+ Please note, in order to use this version of `@atlaskit/popup`, you will need to ensure that your
17
+ bundler is configured to handle `.css` imports correctly.
18
+
19
+ Most bundlers come with built-in support for `.css` imports, so you may not need to do anything.
20
+ If you are using a different bundler, please refer to the documentation for that bundler to
21
+ understand how to handle `.css` imports. For more information on the migration, please refer to
22
+ [RFC-73 Migrating our components to Compiled CSS-in-JS](https://community.developer.atlassian.com/t/rfc-73-migrating-our-components-to-compiled-css-in-js/85953).
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies
27
+
28
+ ## 3.0.1
29
+
30
+ ### Patch Changes
31
+
32
+ - [#134955](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/134955)
33
+ [`ba294ad0536de`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ba294ad0536de) -
34
+ An onClose listener is being provided to the experimental open layer observer.
35
+ - Updated dependencies
36
+
3
37
  ## 3.0.0
4
38
 
5
39
  ### Major Changes
@@ -15,7 +15,6 @@ var _layering = require("@atlaskit/layering");
15
15
  var _openLayerObserver = require("@atlaskit/layering/experimental/open-layer-observer");
16
16
  var _popper = require("@atlaskit/popper");
17
17
  var _portal = _interopRequireDefault(require("@atlaskit/portal"));
18
- var _constants = require("@atlaskit/theme/constants");
19
18
  var _popperWrapper = _interopRequireDefault(require("../popper-wrapper"));
20
19
  var _useAppearance = require("../use-appearance");
21
20
  var _useGetMemoizedMergedTriggerRef = require("../use-get-memoized-merged-trigger-ref");
@@ -99,7 +98,7 @@ var PopupTrigger = exports.PopupTrigger = function PopupTrigger(_ref2) {
99
98
  });
100
99
  });
101
100
  };
102
- var defaultLayer = _constants.layers.layer();
101
+ var defaultLayer = 400;
103
102
  /**
104
103
  * Disables popper.js GPU acceleration for this popup.
105
104
  * This means only positioning will be used, without any transforms.
@@ -161,8 +160,12 @@ var PopupContent = exports.PopupContent = function PopupContent(_ref4) {
161
160
  }),
162
161
  appearance = _usePopupAppearance.appearance,
163
162
  shouldRenderToParent = _usePopupAppearance.shouldRenderToParent;
163
+ var handleOpenLayerObserverCloseSignal = (0, _react.useCallback)(function () {
164
+ onClose === null || onClose === void 0 || onClose(null);
165
+ }, [onClose]);
164
166
  (0, _openLayerObserver.useNotifyOpenLayerObserver)({
165
- isOpen: isOpen
167
+ isOpen: isOpen,
168
+ onClose: handleOpenLayerObserverCloseSignal
166
169
  });
167
170
  if (!isOpen) {
168
171
  return null;
@@ -0,0 +1,20 @@
1
+
2
+ ._1r04idpf{inset:0}
3
+ ._2rkoglpi{border-radius:var(--ds-border-radius,4px)}
4
+ ._dk5d1b66{inset-inline:var(--ds-space-050,4px)}._152t1b66{inset-block-start:var(--ds-space-050,4px)}
5
+ ._16qs1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}
6
+ ._18m91wug{overflow-y:auto}
7
+ ._1bsb1osq{width:100%}
8
+ ._1e0c1ule{display:block}
9
+ ._1pby1nn1{z-index:400}
10
+ ._1q1l1bhr{--ds-elevation-surface-current:var(--ds-surface-overlay,#fff)}
11
+ ._1reo1wug{overflow-x:auto}
12
+ ._bfhk10xm{background-color:var(--ds-blanket,#091e427d)}
13
+ ._bfhk1bhr{background-color:var(--ds-surface-overlay,#fff)}
14
+ ._c71ldtre{max-height:50vh}
15
+ ._kqsw1n9t{position:fixed}
16
+ ._syaz1fxt{color:var(--ds-text,#172b4d)}
17
+ ._vchhusvi{box-sizing:border-box}
18
+ ._1hvw1o36:focus{outline-width:medium}
19
+ ._49pcglyw:focus{outline-style:none}
20
+ ._nt751r31:focus{outline-color:currentColor}
@@ -1,76 +1,50 @@
1
+ /* popper-wrapper.tsx generated by @compiled/babel-plugin v0.36.1 */
1
2
  "use strict";
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
6
  Object.defineProperty(exports, "__esModule", {
5
7
  value: true
6
8
  });
7
9
  exports.default = void 0;
10
+ require("./popper-wrapper.compiled.css");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var React = _react;
8
13
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
15
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
16
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
- var _react = require("react");
14
- var _react2 = require("@emotion/react");
15
- var _focusRing = _interopRequireDefault(require("@atlaskit/focus-ring"));
17
+ var _runtime = require("@compiled/react/runtime");
16
18
  var _layering = require("@atlaskit/layering");
17
19
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
18
20
  var _popper = require("@atlaskit/popper");
19
- var _colors = require("@atlaskit/theme/colors");
20
- var _constants = require("@atlaskit/theme/constants");
21
- var _tokens = require("@atlaskit/tokens");
22
21
  var _repositionOnUpdate = require("./reposition-on-update");
23
22
  var _useCloseManager = require("./use-close-manager");
24
23
  var _useFocusManager = require("./use-focus-manager");
25
- var _excluded = ["shouldRenderToParent", "shouldFitContainer", "children", "appearance", "xcss"];
26
- /**
27
- * @jsxRuntime classic
28
- * @jsx jsx
29
- */
30
- var fullWidthStyles = (0, _react2.css)({
31
- width: '100%'
32
- });
33
- var rootStyles = (0, _react2.css)((0, _defineProperty2.default)((0, _defineProperty2.default)({
34
- display: 'block',
35
- boxSizing: 'border-box',
36
- zIndex: _constants.layers.layer(),
37
- backgroundColor: "var(--ds-surface-overlay, ".concat(_colors.N0, ")"),
38
- borderRadius: "var(--ds-border-radius, 3px)",
39
- boxShadow: "var(--ds-shadow-overlay, ".concat("0 4px 8px -2px ".concat(_colors.N50A, ", 0 0 1px ").concat(_colors.N60A), ")"),
40
- // Resetting text color for portal content.
41
- // Otherwise, when rendering into the parent (not using a portal),
42
- // the text color can be inherited from the parent.
43
- color: "var(--ds-text, #172B4D)"
44
- }, _tokens.CURRENT_SURFACE_CSS_VAR, "var(--ds-surface-overlay, ".concat(_colors.N0, ")")), '&:focus', {
45
- outline: 'none'
46
- }));
47
- var scrollableStyles = (0, _react2.css)({
48
- overflow: 'auto'
49
- });
50
- var blanketStyles = (0, _react2.css)({
51
- position: 'fixed',
52
- inset: 0,
53
- backgroundColor: "var(--ds-blanket, #091E427D)"
54
- });
55
- var modalStyles = (0, _react2.css)({
56
- maxHeight: '50vh',
57
- position: 'fixed',
58
- insetBlockStart: "var(--ds-space-050, 4px)",
59
- insetInline: "var(--ds-space-050, 4px)"
60
- });
24
+ var _excluded = ["shouldRenderToParent", "shouldFitContainer", "children", "appearance", "className"];
25
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
26
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
27
+ var LOCAL_CURRENT_SURFACE_CSS_VAR = '--ds-elevation-surface-current';
28
+ var fullWidthStyles = null;
29
+ var wrapperStyles = {
30
+ root: "_2rkoglpi _1e0c1ule _vchhusvi _1pby1nn1 _bfhk1bhr _16qs1cd0 _syaz1fxt _1q1l1bhr _nt751r31 _49pcglyw _1hvw1o36"
31
+ };
32
+ var scrollableStyles = null;
33
+ var blanketStyles = null;
34
+ var modalStyles = null;
35
+ var focusRingStyles = {
36
+ root: "_mizu194a _1ah31bk5 _ra3xnqa1 _128m1bk5 _1cvmnqa1 _4davt94y"
37
+ };
61
38
  var DefaultPopupComponent = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
62
39
  var shouldRenderToParent = props.shouldRenderToParent,
63
40
  shouldFitContainer = props.shouldFitContainer,
64
41
  children = props.children,
65
42
  appearance = props.appearance,
66
- xcss = props.xcss,
43
+ className = props.className,
67
44
  htmlAttributes = (0, _objectWithoutProperties2.default)(props, _excluded);
68
- return (0, _react2.jsx)("div", (0, _extends2.default)({
69
- // Because we're using Emotion local jsx namespace we have to coerce xcss prop to a string.
70
- // When we're fully on Compiled its local jsx namespace accepts the output of xcss prop.
71
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- This rule still fails because of the TS assertion
72
- className: xcss,
73
- css: [rootStyles, appearance === 'UNSAFE_modal-below-sm' && modalStyles, !shouldRenderToParent && scrollableStyles, shouldFitContainer && fullWidthStyles]
45
+ return /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
46
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
47
+ className: (0, _runtime.ax)([wrapperStyles.root, appearance === 'UNSAFE_modal-below-sm' && "_dk5d1b66 _c71ldtre _kqsw1n9t _152t1b66", !shouldRenderToParent && "_1reo1wug _18m91wug", shouldFitContainer && "_1bsb1osq", className])
74
48
  }, htmlAttributes, {
75
49
  ref: ref
76
50
  }), children);
@@ -152,7 +126,7 @@ function PopperWrapper(_ref) {
152
126
  }
153
127
  }].concat((0, _toConsumableArray2.default)(modifiers || []));
154
128
  }, [shouldFlip, rootBoundary, boundary, fallbackPlacements, modifiers]);
155
- return (0, _react2.jsx)(_popper.Popper, {
129
+ return /*#__PURE__*/React.createElement(_popper.Popper, {
156
130
  placement: placement,
157
131
  offset: offset,
158
132
  modifiers: mergedModifiers,
@@ -163,8 +137,14 @@ function PopperWrapper(_ref) {
163
137
  style = _ref2.style,
164
138
  placement = _ref2.placement,
165
139
  update = _ref2.update;
166
- var popupContainer = (0, _react2.jsx)(PopupContainer, {
167
- xcss: xcss,
140
+ var popupContainer = /*#__PURE__*/React.createElement(PopupContainer
141
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
142
+ , {
143
+ className: (0, _runtime.ax)([xcss,
144
+ // @ts-expect-error: `ax` is not typed correctly
145
+ !initialFocusRef &&
146
+ // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
147
+ (0, _platformFeatureFlags.fg)('platform-design-system-apply-popup-wrapper-focus') && focusRingStyles.root]),
168
148
  appearance: appearance,
169
149
  id: id,
170
150
  "data-ds--level": currentLevel,
@@ -192,7 +172,7 @@ function PopperWrapper(_ref) {
192
172
  tabIndex: autoFocus ? 0 : undefined,
193
173
  shouldRenderToParent: shouldRenderToParent,
194
174
  shouldFitContainer: shouldFitContainer
195
- }, (0, _react2.jsx)(_repositionOnUpdate.RepositionOnUpdate, {
175
+ }, /*#__PURE__*/React.createElement(_repositionOnUpdate.RepositionOnUpdate, {
196
176
  update: update
197
177
  }, content({
198
178
  update: update,
@@ -200,10 +180,8 @@ function PopperWrapper(_ref) {
200
180
  onClose: onClose,
201
181
  setInitialFocusRef: setInitialFocusRef
202
182
  })));
203
- return !initialFocusRef && (0, _platformFeatureFlags.fg)('platform-design-system-apply-popup-wrapper-focus') ? (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_focusRing.default, null, popupContainer), appearance === 'UNSAFE_modal-below-sm' && (0, _react2.jsx)("div", {
204
- css: blanketStyles
205
- })) : (0, _react2.jsx)(_react.Fragment, null, popupContainer, appearance === 'UNSAFE_modal-below-sm' && (0, _react2.jsx)("div", {
206
- css: blanketStyles
183
+ return /*#__PURE__*/React.createElement(_react.Fragment, null, popupContainer, appearance === 'UNSAFE_modal-below-sm' && /*#__PURE__*/React.createElement("div", {
184
+ className: (0, _runtime.ax)(["_1r04idpf _kqsw1n9t _bfhk10xm"])
207
185
  }));
208
186
  });
209
187
  }
@@ -0,0 +1 @@
1
+ ._kqswh2mm{position:relative}
package/dist/cjs/popup.js CHANGED
@@ -1,37 +1,35 @@
1
+ /* popup.tsx generated by @compiled/babel-plugin v0.36.1 */
1
2
  "use strict";
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
6
  Object.defineProperty(exports, "__esModule", {
5
7
  value: true
6
8
  });
7
9
  exports.Popup = void 0;
10
+ require("./popup.compiled.css");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var React = _react;
13
+ var _runtime = require("@compiled/react/runtime");
8
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
- var _react = require("react");
10
- var _react2 = require("@emotion/react");
11
15
  var _useId = require("@atlaskit/ds-lib/use-id");
12
16
  var _layering = require("@atlaskit/layering");
13
17
  var _openLayerObserver = require("@atlaskit/layering/experimental/open-layer-observer");
14
18
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
15
19
  var _popper = require("@atlaskit/popper");
16
20
  var _portal = _interopRequireDefault(require("@atlaskit/portal"));
17
- var _primitives = require("@atlaskit/primitives");
18
- var _constants = require("@atlaskit/theme/constants");
21
+ var _compiled = require("@atlaskit/primitives/compiled");
19
22
  var _popperWrapper = _interopRequireDefault(require("./popper-wrapper"));
20
23
  var _useAppearance = require("./use-appearance");
21
24
  var _useGetMemoizedMergedTriggerRef = require("./use-get-memoized-merged-trigger-ref");
22
25
  var _useGetMemoizedMergedTriggerRefNew = require("./use-get-memoized-merged-trigger-ref-new");
26
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
27
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
28
  /* eslint-disable @repo/internal/react/require-jsdoc */
24
- /**
25
- * @jsxRuntime classic
26
- * @jsx jsx
27
- */
28
-
29
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
30
-
31
- var defaultLayer = _constants.layers.layer();
32
- var wrapperStyles = (0, _primitives.xcss)({
33
- position: 'relative'
34
- });
29
+ var defaultLayer = 400;
30
+ var wrapperStyles = {
31
+ root: "_kqswh2mm"
32
+ };
35
33
  var Popup = exports.Popup = /*#__PURE__*/(0, _react.memo)(function (_ref) {
36
34
  var xcss = _ref.xcss,
37
35
  _ref$appearance = _ref.appearance,
@@ -86,12 +84,16 @@ var Popup = exports.Popup = /*#__PURE__*/(0, _react.memo)(function (_ref) {
86
84
  appearance = _usePopupAppearance.appearance,
87
85
  shouldRenderToParent = _usePopupAppearance.shouldRenderToParent;
88
86
  var id = providedId || generatedId;
87
+ var handleOpenLayerObserverCloseSignal = (0, _react.useCallback)(function () {
88
+ onClose === null || onClose === void 0 || onClose(null);
89
+ }, [onClose]);
89
90
  (0, _openLayerObserver.useNotifyOpenLayerObserver)({
90
- isOpen: isOpen
91
+ isOpen: isOpen,
92
+ onClose: handleOpenLayerObserverCloseSignal
91
93
  });
92
- var renderPopperWrapper = (0, _react2.jsx)(_layering.Layering, {
94
+ var renderPopperWrapper = /*#__PURE__*/React.createElement(_layering.Layering, {
93
95
  isDisabled: false
94
- }, (0, _react2.jsx)(_popperWrapper.default, {
96
+ }, /*#__PURE__*/React.createElement(_popperWrapper.default, {
95
97
  xcss: xcss,
96
98
  appearance: appearance,
97
99
  content: content,
@@ -120,7 +122,7 @@ var Popup = exports.Popup = /*#__PURE__*/(0, _react.memo)(function (_ref) {
120
122
  modifiers: modifiers,
121
123
  shouldFitViewport: shouldFitViewport
122
124
  }));
123
- var popupContent = (0, _react2.jsx)(_popper.Manager, null, (0, _react2.jsx)(_popper.Reference, null, function (_ref2) {
125
+ var popupContent = /*#__PURE__*/React.createElement(_popper.Manager, null, /*#__PURE__*/React.createElement(_popper.Reference, null, function (_ref2) {
124
126
  var ref = _ref2.ref;
125
127
  return trigger({
126
128
  ref: !(0, _platformFeatureFlags.fg)('platform-design-system-popup-ref') ? getMergedTriggerRef(ref, setTriggerRef, isOpen) : getMergedTriggerRefNew(ref, setTriggerRef),
@@ -128,12 +130,12 @@ var Popup = exports.Popup = /*#__PURE__*/(0, _react.memo)(function (_ref) {
128
130
  'aria-expanded': isOpen,
129
131
  'aria-haspopup': role === 'dialog' && (0, _platformFeatureFlags.fg)('platform_dst_popup-disable-focuslock') ? 'dialog' : true
130
132
  });
131
- }), isOpen && (shouldRenderToParent || shouldFitContainer ? renderPopperWrapper : (0, _react2.jsx)(_portal.default, {
133
+ }), isOpen && (shouldRenderToParent || shouldFitContainer ? renderPopperWrapper : /*#__PURE__*/React.createElement(_portal.default, {
132
134
  zIndex: zIndex
133
135
  }, renderPopperWrapper)));
134
136
  if (shouldFitContainer) {
135
- return (0, _react2.jsx)(_primitives.Box, {
136
- xcss: wrapperStyles
137
+ return /*#__PURE__*/React.createElement(_compiled.Box, {
138
+ xcss: wrapperStyles.root
137
139
  }, popupContent);
138
140
  }
139
141
  return popupContent;
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.usePopupAppearance = usePopupAppearance;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _react = require("react");
10
- var _responsive = require("@atlaskit/primitives/responsive");
10
+ var _compiled = require("@atlaskit/primitives/compiled");
11
11
  /**
12
12
  * **usePopupAppearance()**
13
13
  *
@@ -19,7 +19,7 @@ var _responsive = require("@atlaskit/primitives/responsive");
19
19
  function usePopupAppearance(_ref) {
20
20
  var _appearance = _ref.appearance,
21
21
  _shouldRenderToParent = _ref.shouldRenderToParent;
22
- var mq = (0, _responsive.UNSAFE_useMediaQuery)('below.sm', function (e) {
22
+ var mq = (0, _compiled.UNSAFE_useMediaQuery)('below.sm', function (e) {
23
23
  setIsSmallViewport(!!e.matches);
24
24
  });
25
25
  var _useState = (0, _react.useState)(!!(mq !== null && mq !== void 0 && mq.matches)),
@@ -1,4 +1,4 @@
1
- import React, { createContext, useContext, useState } from 'react';
1
+ import React, { createContext, useCallback, useContext, useState } from 'react';
2
2
  import invariant from 'tiny-invariant';
3
3
  import noop from '@atlaskit/ds-lib/noop';
4
4
  import { useId } from '@atlaskit/ds-lib/use-id';
@@ -6,7 +6,6 @@ import { Layering } from '@atlaskit/layering';
6
6
  import { useNotifyOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
7
7
  import { Manager, Reference } from '@atlaskit/popper';
8
8
  import Portal from '@atlaskit/portal';
9
- import { layers } from '@atlaskit/theme/constants';
10
9
  import PopperWrapper from '../popper-wrapper';
11
10
  import { usePopupAppearance } from '../use-appearance';
12
11
  import { useGetMemoizedMergedTriggerRef } from '../use-get-memoized-merged-trigger-ref';
@@ -85,7 +84,7 @@ export const PopupTrigger = ({
85
84
  'aria-haspopup': true
86
85
  }));
87
86
  };
88
- const defaultLayer = layers.layer();
87
+ const defaultLayer = 400;
89
88
  /**
90
89
  * Disables popper.js GPU acceleration for this popup.
91
90
  * This means only positioning will be used, without any transforms.
@@ -140,8 +139,12 @@ export const PopupContent = ({
140
139
  appearance: inAppearance,
141
140
  shouldRenderToParent: inShouldRenderToParent
142
141
  });
142
+ const handleOpenLayerObserverCloseSignal = useCallback(() => {
143
+ onClose === null || onClose === void 0 ? void 0 : onClose(null);
144
+ }, [onClose]);
143
145
  useNotifyOpenLayerObserver({
144
- isOpen
146
+ isOpen,
147
+ onClose: handleOpenLayerObserverCloseSignal
145
148
  });
146
149
  if (!isOpen) {
147
150
  return null;
@@ -0,0 +1,20 @@
1
+
2
+ ._1r04idpf{inset:0}
3
+ ._2rkoglpi{border-radius:var(--ds-border-radius,4px)}
4
+ ._dk5d1b66{inset-inline:var(--ds-space-050,4px)}._152t1b66{inset-block-start:var(--ds-space-050,4px)}
5
+ ._16qs1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}
6
+ ._18m91wug{overflow-y:auto}
7
+ ._1bsb1osq{width:100%}
8
+ ._1e0c1ule{display:block}
9
+ ._1pby1nn1{z-index:400}
10
+ ._1q1l1bhr{--ds-elevation-surface-current:var(--ds-surface-overlay,#fff)}
11
+ ._1reo1wug{overflow-x:auto}
12
+ ._bfhk10xm{background-color:var(--ds-blanket,#091e427d)}
13
+ ._bfhk1bhr{background-color:var(--ds-surface-overlay,#fff)}
14
+ ._c71ldtre{max-height:50vh}
15
+ ._kqsw1n9t{position:fixed}
16
+ ._syaz1fxt{color:var(--ds-text,#172b4d)}
17
+ ._vchhusvi{box-sizing:border-box}
18
+ ._1hvw1o36:focus{outline-width:medium}
19
+ ._49pcglyw:focus{outline-style:none}
20
+ ._nt751r31:focus{outline-color:currentColor}
@@ -1,68 +1,38 @@
1
+ /* popper-wrapper.tsx generated by @compiled/babel-plugin v0.36.1 */
1
2
  import _extends from "@babel/runtime/helpers/extends";
2
- /**
3
- * @jsxRuntime classic
4
- * @jsx jsx
5
- */
3
+ import "./popper-wrapper.compiled.css";
4
+ import * as React from 'react';
6
5
  import { forwardRef, Fragment, useMemo, useState } from 'react';
7
- import { css, jsx } from '@emotion/react';
8
- import FocusRing from '@atlaskit/focus-ring';
6
+ import { ax, ix } from '@compiled/react/runtime';
9
7
  import { useLayering } from '@atlaskit/layering';
10
8
  import { fg } from '@atlaskit/platform-feature-flags';
11
9
  import { Popper } from '@atlaskit/popper';
12
- import { N0, N50A, N60A } from '@atlaskit/theme/colors';
13
- import { layers } from '@atlaskit/theme/constants';
14
- import { CURRENT_SURFACE_CSS_VAR } from '@atlaskit/tokens';
15
10
  import { RepositionOnUpdate } from './reposition-on-update';
16
11
  import { useCloseManager } from './use-close-manager';
17
12
  import { useFocusManager } from './use-focus-manager';
18
- const fullWidthStyles = css({
19
- width: '100%'
20
- });
21
- const rootStyles = css({
22
- display: 'block',
23
- boxSizing: 'border-box',
24
- zIndex: layers.layer(),
25
- backgroundColor: `var(--ds-surface-overlay, ${N0})`,
26
- borderRadius: "var(--ds-border-radius, 3px)",
27
- boxShadow: `var(--ds-shadow-overlay, ${`0 4px 8px -2px ${N50A}, 0 0 1px ${N60A}`})`,
28
- // Resetting text color for portal content.
29
- // Otherwise, when rendering into the parent (not using a portal),
30
- // the text color can be inherited from the parent.
31
- color: "var(--ds-text, #172B4D)",
32
- [CURRENT_SURFACE_CSS_VAR]: `var(--ds-surface-overlay, ${N0})`,
33
- '&:focus': {
34
- outline: 'none'
35
- }
36
- });
37
- const scrollableStyles = css({
38
- overflow: 'auto'
39
- });
40
- const blanketStyles = css({
41
- position: 'fixed',
42
- inset: 0,
43
- backgroundColor: "var(--ds-blanket, #091E427D)"
44
- });
45
- const modalStyles = css({
46
- maxHeight: '50vh',
47
- position: 'fixed',
48
- insetBlockStart: "var(--ds-space-050, 4px)",
49
- insetInline: "var(--ds-space-050, 4px)"
50
- });
13
+ const LOCAL_CURRENT_SURFACE_CSS_VAR = '--ds-elevation-surface-current';
14
+ const fullWidthStyles = null;
15
+ const wrapperStyles = {
16
+ root: "_2rkoglpi _1e0c1ule _vchhusvi _1pby1nn1 _bfhk1bhr _16qs1cd0 _syaz1fxt _1q1l1bhr _nt751r31 _49pcglyw _1hvw1o36"
17
+ };
18
+ const scrollableStyles = null;
19
+ const blanketStyles = null;
20
+ const modalStyles = null;
21
+ const focusRingStyles = {
22
+ root: "_mizu194a _1ah31bk5 _ra3xnqa1 _128m1bk5 _1cvmnqa1 _4davt94y"
23
+ };
51
24
  const DefaultPopupComponent = /*#__PURE__*/forwardRef((props, ref) => {
52
25
  const {
53
26
  shouldRenderToParent,
54
27
  shouldFitContainer,
55
28
  children,
56
29
  appearance,
57
- xcss,
30
+ className,
58
31
  ...htmlAttributes
59
32
  } = props;
60
- return jsx("div", _extends({
61
- // Because we're using Emotion local jsx namespace we have to coerce xcss prop to a string.
62
- // When we're fully on Compiled its local jsx namespace accepts the output of xcss prop.
63
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- This rule still fails because of the TS assertion
64
- className: xcss,
65
- css: [rootStyles, appearance === 'UNSAFE_modal-below-sm' && modalStyles, !shouldRenderToParent && scrollableStyles, shouldFitContainer && fullWidthStyles]
33
+ return /*#__PURE__*/React.createElement("div", _extends({
34
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
35
+ className: ax([wrapperStyles.root, appearance === 'UNSAFE_modal-below-sm' && "_dk5d1b66 _c71ldtre _kqsw1n9t _152t1b66", !shouldRenderToParent && "_1reo1wug _18m91wug", shouldFitContainer && "_1bsb1osq", className])
66
36
  }, htmlAttributes, {
67
37
  ref: ref
68
38
  }), children);
@@ -134,7 +104,7 @@ function PopperWrapper({
134
104
  fallbackPlacements
135
105
  }
136
106
  }, ...(modifiers || [])], [shouldFlip, rootBoundary, boundary, fallbackPlacements, modifiers]);
137
- return jsx(Popper, {
107
+ return /*#__PURE__*/React.createElement(Popper, {
138
108
  placement: placement,
139
109
  offset: offset,
140
110
  modifiers: mergedModifiers,
@@ -146,8 +116,14 @@ function PopperWrapper({
146
116
  placement,
147
117
  update
148
118
  }) => {
149
- const popupContainer = jsx(PopupContainer, {
150
- xcss: xcss,
119
+ const popupContainer = /*#__PURE__*/React.createElement(PopupContainer
120
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
121
+ , {
122
+ className: ax([xcss,
123
+ // @ts-expect-error: `ax` is not typed correctly
124
+ !initialFocusRef &&
125
+ // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
126
+ fg('platform-design-system-apply-popup-wrapper-focus') && focusRingStyles.root]),
151
127
  appearance: appearance,
152
128
  id: id,
153
129
  "data-ds--level": currentLevel,
@@ -175,7 +151,7 @@ function PopperWrapper({
175
151
  tabIndex: autoFocus ? 0 : undefined,
176
152
  shouldRenderToParent: shouldRenderToParent,
177
153
  shouldFitContainer: shouldFitContainer
178
- }, jsx(RepositionOnUpdate, {
154
+ }, /*#__PURE__*/React.createElement(RepositionOnUpdate, {
179
155
  update: update
180
156
  }, content({
181
157
  update,
@@ -183,10 +159,8 @@ function PopperWrapper({
183
159
  onClose,
184
160
  setInitialFocusRef
185
161
  })));
186
- return !initialFocusRef && fg('platform-design-system-apply-popup-wrapper-focus') ? jsx(Fragment, null, jsx(FocusRing, null, popupContainer), appearance === 'UNSAFE_modal-below-sm' && jsx("div", {
187
- css: blanketStyles
188
- })) : jsx(Fragment, null, popupContainer, appearance === 'UNSAFE_modal-below-sm' && jsx("div", {
189
- css: blanketStyles
162
+ return /*#__PURE__*/React.createElement(Fragment, null, popupContainer, appearance === 'UNSAFE_modal-below-sm' && /*#__PURE__*/React.createElement("div", {
163
+ className: ax(["_1r04idpf _kqsw1n9t _bfhk10xm"])
190
164
  }));
191
165
  });
192
166
  }
@@ -0,0 +1 @@
1
+ ._kqswh2mm{position:relative}
@@ -1,28 +1,24 @@
1
+ /* popup.tsx generated by @compiled/babel-plugin v0.36.1 */
1
2
  /* eslint-disable @repo/internal/react/require-jsdoc */
2
- /**
3
- * @jsxRuntime classic
4
- * @jsx jsx
5
- */
6
- import { memo, useState } from 'react';
7
-
8
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
9
- import { jsx } from '@emotion/react';
3
+ import "./popup.compiled.css";
4
+ import * as React from 'react';
5
+ import { ax, ix } from "@compiled/react/runtime";
6
+ import { memo, useCallback, useState } from 'react';
10
7
  import { useId } from '@atlaskit/ds-lib/use-id';
11
8
  import { Layering } from '@atlaskit/layering';
12
9
  import { useNotifyOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
13
10
  import { fg } from '@atlaskit/platform-feature-flags';
14
11
  import { Manager, Reference } from '@atlaskit/popper';
15
12
  import Portal from '@atlaskit/portal';
16
- import { Box, xcss } from '@atlaskit/primitives';
17
- import { layers } from '@atlaskit/theme/constants';
13
+ import { Box } from '@atlaskit/primitives/compiled';
18
14
  import PopperWrapper from './popper-wrapper';
19
15
  import { usePopupAppearance } from './use-appearance';
20
16
  import { useGetMemoizedMergedTriggerRef } from './use-get-memoized-merged-trigger-ref';
21
17
  import { useGetMemoizedMergedTriggerRefNew } from './use-get-memoized-merged-trigger-ref-new';
22
- const defaultLayer = layers.layer();
23
- const wrapperStyles = xcss({
24
- position: 'relative'
25
- });
18
+ const defaultLayer = 400;
19
+ const wrapperStyles = {
20
+ root: "_kqswh2mm"
21
+ };
26
22
  export const Popup = /*#__PURE__*/memo(({
27
23
  xcss,
28
24
  appearance: inAppearance = 'default',
@@ -65,12 +61,16 @@ export const Popup = /*#__PURE__*/memo(({
65
61
  shouldRenderToParent: inShouldRenderToParent
66
62
  });
67
63
  const id = providedId || generatedId;
64
+ const handleOpenLayerObserverCloseSignal = useCallback(() => {
65
+ onClose === null || onClose === void 0 ? void 0 : onClose(null);
66
+ }, [onClose]);
68
67
  useNotifyOpenLayerObserver({
69
- isOpen
68
+ isOpen,
69
+ onClose: handleOpenLayerObserverCloseSignal
70
70
  });
71
- const renderPopperWrapper = jsx(Layering, {
71
+ const renderPopperWrapper = /*#__PURE__*/React.createElement(Layering, {
72
72
  isDisabled: false
73
- }, jsx(PopperWrapper, {
73
+ }, /*#__PURE__*/React.createElement(PopperWrapper, {
74
74
  xcss: xcss,
75
75
  appearance: appearance,
76
76
  content: content,
@@ -99,7 +99,7 @@ export const Popup = /*#__PURE__*/memo(({
99
99
  modifiers: modifiers,
100
100
  shouldFitViewport: shouldFitViewport
101
101
  }));
102
- const popupContent = jsx(Manager, null, jsx(Reference, null, ({
102
+ const popupContent = /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(Reference, null, ({
103
103
  ref
104
104
  }) => {
105
105
  return trigger({
@@ -108,12 +108,12 @@ export const Popup = /*#__PURE__*/memo(({
108
108
  'aria-expanded': isOpen,
109
109
  'aria-haspopup': role === 'dialog' && fg('platform_dst_popup-disable-focuslock') ? 'dialog' : true
110
110
  });
111
- }), isOpen && (shouldRenderToParent || shouldFitContainer ? renderPopperWrapper : jsx(Portal, {
111
+ }), isOpen && (shouldRenderToParent || shouldFitContainer ? renderPopperWrapper : /*#__PURE__*/React.createElement(Portal, {
112
112
  zIndex: zIndex
113
113
  }, renderPopperWrapper)));
114
114
  if (shouldFitContainer) {
115
- return jsx(Box, {
116
- xcss: wrapperStyles
115
+ return /*#__PURE__*/React.createElement(Box, {
116
+ xcss: wrapperStyles.root
117
117
  }, popupContent);
118
118
  }
119
119
  return popupContent;
@@ -1,5 +1,5 @@
1
1
  import { useState } from 'react';
2
- import { UNSAFE_useMediaQuery as useMediaQuery } from '@atlaskit/primitives/responsive';
2
+ import { UNSAFE_useMediaQuery as useMediaQuery } from '@atlaskit/primitives/compiled';
3
3
 
4
4
  /**
5
5
  * **usePopupAppearance()**
@@ -1,5 +1,5 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import React, { createContext, useContext, useState } from 'react';
2
+ import React, { createContext, useCallback, useContext, useState } from 'react';
3
3
  import invariant from 'tiny-invariant';
4
4
  import noop from '@atlaskit/ds-lib/noop';
5
5
  import { useId } from '@atlaskit/ds-lib/use-id';
@@ -7,7 +7,6 @@ import { Layering } from '@atlaskit/layering';
7
7
  import { useNotifyOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
8
8
  import { Manager, Reference } from '@atlaskit/popper';
9
9
  import Portal from '@atlaskit/portal';
10
- import { layers } from '@atlaskit/theme/constants';
11
10
  import PopperWrapper from '../popper-wrapper';
12
11
  import { usePopupAppearance } from '../use-appearance';
13
12
  import { useGetMemoizedMergedTriggerRef } from '../use-get-memoized-merged-trigger-ref';
@@ -89,7 +88,7 @@ export var PopupTrigger = function PopupTrigger(_ref2) {
89
88
  });
90
89
  });
91
90
  };
92
- var defaultLayer = layers.layer();
91
+ var defaultLayer = 400;
93
92
  /**
94
93
  * Disables popper.js GPU acceleration for this popup.
95
94
  * This means only positioning will be used, without any transforms.
@@ -151,8 +150,12 @@ export var PopupContent = function PopupContent(_ref4) {
151
150
  }),
152
151
  appearance = _usePopupAppearance.appearance,
153
152
  shouldRenderToParent = _usePopupAppearance.shouldRenderToParent;
153
+ var handleOpenLayerObserverCloseSignal = useCallback(function () {
154
+ onClose === null || onClose === void 0 || onClose(null);
155
+ }, [onClose]);
154
156
  useNotifyOpenLayerObserver({
155
- isOpen: isOpen
157
+ isOpen: isOpen,
158
+ onClose: handleOpenLayerObserverCloseSignal
156
159
  });
157
160
  if (!isOpen) {
158
161
  return null;
@@ -0,0 +1,20 @@
1
+
2
+ ._1r04idpf{inset:0}
3
+ ._2rkoglpi{border-radius:var(--ds-border-radius,4px)}
4
+ ._dk5d1b66{inset-inline:var(--ds-space-050,4px)}._152t1b66{inset-block-start:var(--ds-space-050,4px)}
5
+ ._16qs1cd0{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #091e4226,0 0 1px #091e424f)}
6
+ ._18m91wug{overflow-y:auto}
7
+ ._1bsb1osq{width:100%}
8
+ ._1e0c1ule{display:block}
9
+ ._1pby1nn1{z-index:400}
10
+ ._1q1l1bhr{--ds-elevation-surface-current:var(--ds-surface-overlay,#fff)}
11
+ ._1reo1wug{overflow-x:auto}
12
+ ._bfhk10xm{background-color:var(--ds-blanket,#091e427d)}
13
+ ._bfhk1bhr{background-color:var(--ds-surface-overlay,#fff)}
14
+ ._c71ldtre{max-height:50vh}
15
+ ._kqsw1n9t{position:fixed}
16
+ ._syaz1fxt{color:var(--ds-text,#172b4d)}
17
+ ._vchhusvi{box-sizing:border-box}
18
+ ._1hvw1o36:focus{outline-width:medium}
19
+ ._49pcglyw:focus{outline-style:none}
20
+ ._nt751r31:focus{outline-color:currentColor}
@@ -1,69 +1,40 @@
1
+ /* popper-wrapper.tsx generated by @compiled/babel-plugin v0.36.1 */
1
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
4
  import _extends from "@babel/runtime/helpers/extends";
4
5
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
6
- var _excluded = ["shouldRenderToParent", "shouldFitContainer", "children", "appearance", "xcss"];
7
- /**
8
- * @jsxRuntime classic
9
- * @jsx jsx
10
- */
6
+ var _excluded = ["shouldRenderToParent", "shouldFitContainer", "children", "appearance", "className"];
7
+ import "./popper-wrapper.compiled.css";
8
+ import * as React from 'react';
11
9
  import { forwardRef, Fragment, useMemo, useState } from 'react';
12
- import { css, jsx } from '@emotion/react';
13
- import FocusRing from '@atlaskit/focus-ring';
10
+ import { ax, ix } from '@compiled/react/runtime';
14
11
  import { useLayering } from '@atlaskit/layering';
15
12
  import { fg } from '@atlaskit/platform-feature-flags';
16
13
  import { Popper } from '@atlaskit/popper';
17
- import { N0, N50A, N60A } from '@atlaskit/theme/colors';
18
- import { layers } from '@atlaskit/theme/constants';
19
- import { CURRENT_SURFACE_CSS_VAR } from '@atlaskit/tokens';
20
14
  import { RepositionOnUpdate } from './reposition-on-update';
21
15
  import { useCloseManager } from './use-close-manager';
22
16
  import { useFocusManager } from './use-focus-manager';
23
- var fullWidthStyles = css({
24
- width: '100%'
25
- });
26
- var rootStyles = css(_defineProperty(_defineProperty({
27
- display: 'block',
28
- boxSizing: 'border-box',
29
- zIndex: layers.layer(),
30
- backgroundColor: "var(--ds-surface-overlay, ".concat(N0, ")"),
31
- borderRadius: "var(--ds-border-radius, 3px)",
32
- boxShadow: "var(--ds-shadow-overlay, ".concat("0 4px 8px -2px ".concat(N50A, ", 0 0 1px ").concat(N60A), ")"),
33
- // Resetting text color for portal content.
34
- // Otherwise, when rendering into the parent (not using a portal),
35
- // the text color can be inherited from the parent.
36
- color: "var(--ds-text, #172B4D)"
37
- }, CURRENT_SURFACE_CSS_VAR, "var(--ds-surface-overlay, ".concat(N0, ")")), '&:focus', {
38
- outline: 'none'
39
- }));
40
- var scrollableStyles = css({
41
- overflow: 'auto'
42
- });
43
- var blanketStyles = css({
44
- position: 'fixed',
45
- inset: 0,
46
- backgroundColor: "var(--ds-blanket, #091E427D)"
47
- });
48
- var modalStyles = css({
49
- maxHeight: '50vh',
50
- position: 'fixed',
51
- insetBlockStart: "var(--ds-space-050, 4px)",
52
- insetInline: "var(--ds-space-050, 4px)"
53
- });
17
+ var LOCAL_CURRENT_SURFACE_CSS_VAR = '--ds-elevation-surface-current';
18
+ var fullWidthStyles = null;
19
+ var wrapperStyles = {
20
+ root: "_2rkoglpi _1e0c1ule _vchhusvi _1pby1nn1 _bfhk1bhr _16qs1cd0 _syaz1fxt _1q1l1bhr _nt751r31 _49pcglyw _1hvw1o36"
21
+ };
22
+ var scrollableStyles = null;
23
+ var blanketStyles = null;
24
+ var modalStyles = null;
25
+ var focusRingStyles = {
26
+ root: "_mizu194a _1ah31bk5 _ra3xnqa1 _128m1bk5 _1cvmnqa1 _4davt94y"
27
+ };
54
28
  var DefaultPopupComponent = /*#__PURE__*/forwardRef(function (props, ref) {
55
29
  var shouldRenderToParent = props.shouldRenderToParent,
56
30
  shouldFitContainer = props.shouldFitContainer,
57
31
  children = props.children,
58
32
  appearance = props.appearance,
59
- xcss = props.xcss,
33
+ className = props.className,
60
34
  htmlAttributes = _objectWithoutProperties(props, _excluded);
61
- return jsx("div", _extends({
62
- // Because we're using Emotion local jsx namespace we have to coerce xcss prop to a string.
63
- // When we're fully on Compiled its local jsx namespace accepts the output of xcss prop.
64
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- This rule still fails because of the TS assertion
65
- className: xcss,
66
- css: [rootStyles, appearance === 'UNSAFE_modal-below-sm' && modalStyles, !shouldRenderToParent && scrollableStyles, shouldFitContainer && fullWidthStyles]
35
+ return /*#__PURE__*/React.createElement("div", _extends({
36
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
37
+ className: ax([wrapperStyles.root, appearance === 'UNSAFE_modal-below-sm' && "_dk5d1b66 _c71ldtre _kqsw1n9t _152t1b66", !shouldRenderToParent && "_1reo1wug _18m91wug", shouldFitContainer && "_1bsb1osq", className])
67
38
  }, htmlAttributes, {
68
39
  ref: ref
69
40
  }), children);
@@ -145,7 +116,7 @@ function PopperWrapper(_ref) {
145
116
  }
146
117
  }].concat(_toConsumableArray(modifiers || []));
147
118
  }, [shouldFlip, rootBoundary, boundary, fallbackPlacements, modifiers]);
148
- return jsx(Popper, {
119
+ return /*#__PURE__*/React.createElement(Popper, {
149
120
  placement: placement,
150
121
  offset: offset,
151
122
  modifiers: mergedModifiers,
@@ -156,8 +127,14 @@ function PopperWrapper(_ref) {
156
127
  style = _ref2.style,
157
128
  placement = _ref2.placement,
158
129
  update = _ref2.update;
159
- var popupContainer = jsx(PopupContainer, {
160
- xcss: xcss,
130
+ var popupContainer = /*#__PURE__*/React.createElement(PopupContainer
131
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
132
+ , {
133
+ className: ax([xcss,
134
+ // @ts-expect-error: `ax` is not typed correctly
135
+ !initialFocusRef &&
136
+ // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
137
+ fg('platform-design-system-apply-popup-wrapper-focus') && focusRingStyles.root]),
161
138
  appearance: appearance,
162
139
  id: id,
163
140
  "data-ds--level": currentLevel,
@@ -185,7 +162,7 @@ function PopperWrapper(_ref) {
185
162
  tabIndex: autoFocus ? 0 : undefined,
186
163
  shouldRenderToParent: shouldRenderToParent,
187
164
  shouldFitContainer: shouldFitContainer
188
- }, jsx(RepositionOnUpdate, {
165
+ }, /*#__PURE__*/React.createElement(RepositionOnUpdate, {
189
166
  update: update
190
167
  }, content({
191
168
  update: update,
@@ -193,10 +170,8 @@ function PopperWrapper(_ref) {
193
170
  onClose: onClose,
194
171
  setInitialFocusRef: setInitialFocusRef
195
172
  })));
196
- return !initialFocusRef && fg('platform-design-system-apply-popup-wrapper-focus') ? jsx(Fragment, null, jsx(FocusRing, null, popupContainer), appearance === 'UNSAFE_modal-below-sm' && jsx("div", {
197
- css: blanketStyles
198
- })) : jsx(Fragment, null, popupContainer, appearance === 'UNSAFE_modal-below-sm' && jsx("div", {
199
- css: blanketStyles
173
+ return /*#__PURE__*/React.createElement(Fragment, null, popupContainer, appearance === 'UNSAFE_modal-below-sm' && /*#__PURE__*/React.createElement("div", {
174
+ className: ax(["_1r04idpf _kqsw1n9t _bfhk10xm"])
200
175
  }));
201
176
  });
202
177
  }
@@ -0,0 +1 @@
1
+ ._kqswh2mm{position:relative}
package/dist/esm/popup.js CHANGED
@@ -1,29 +1,26 @@
1
+ /* popup.tsx generated by @compiled/babel-plugin v0.36.1 */
1
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import "./popup.compiled.css";
4
+ import * as React from 'react';
5
+ import { ax, ix } from "@compiled/react/runtime";
2
6
  /* eslint-disable @repo/internal/react/require-jsdoc */
3
- /**
4
- * @jsxRuntime classic
5
- * @jsx jsx
6
- */
7
- import { memo, useState } from 'react';
8
7
 
9
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
10
- import { jsx } from '@emotion/react';
8
+ import { memo, useCallback, useState } from 'react';
11
9
  import { useId } from '@atlaskit/ds-lib/use-id';
12
10
  import { Layering } from '@atlaskit/layering';
13
11
  import { useNotifyOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
14
12
  import { fg } from '@atlaskit/platform-feature-flags';
15
13
  import { Manager, Reference } from '@atlaskit/popper';
16
14
  import Portal from '@atlaskit/portal';
17
- import { Box, xcss } from '@atlaskit/primitives';
18
- import { layers } from '@atlaskit/theme/constants';
15
+ import { Box } from '@atlaskit/primitives/compiled';
19
16
  import PopperWrapper from './popper-wrapper';
20
17
  import { usePopupAppearance } from './use-appearance';
21
18
  import { useGetMemoizedMergedTriggerRef } from './use-get-memoized-merged-trigger-ref';
22
19
  import { useGetMemoizedMergedTriggerRefNew } from './use-get-memoized-merged-trigger-ref-new';
23
- var defaultLayer = layers.layer();
24
- var wrapperStyles = xcss({
25
- position: 'relative'
26
- });
20
+ var defaultLayer = 400;
21
+ var wrapperStyles = {
22
+ root: "_kqswh2mm"
23
+ };
27
24
  export var Popup = /*#__PURE__*/memo(function (_ref) {
28
25
  var xcss = _ref.xcss,
29
26
  _ref$appearance = _ref.appearance,
@@ -78,12 +75,16 @@ export var Popup = /*#__PURE__*/memo(function (_ref) {
78
75
  appearance = _usePopupAppearance.appearance,
79
76
  shouldRenderToParent = _usePopupAppearance.shouldRenderToParent;
80
77
  var id = providedId || generatedId;
78
+ var handleOpenLayerObserverCloseSignal = useCallback(function () {
79
+ onClose === null || onClose === void 0 || onClose(null);
80
+ }, [onClose]);
81
81
  useNotifyOpenLayerObserver({
82
- isOpen: isOpen
82
+ isOpen: isOpen,
83
+ onClose: handleOpenLayerObserverCloseSignal
83
84
  });
84
- var renderPopperWrapper = jsx(Layering, {
85
+ var renderPopperWrapper = /*#__PURE__*/React.createElement(Layering, {
85
86
  isDisabled: false
86
- }, jsx(PopperWrapper, {
87
+ }, /*#__PURE__*/React.createElement(PopperWrapper, {
87
88
  xcss: xcss,
88
89
  appearance: appearance,
89
90
  content: content,
@@ -112,7 +113,7 @@ export var Popup = /*#__PURE__*/memo(function (_ref) {
112
113
  modifiers: modifiers,
113
114
  shouldFitViewport: shouldFitViewport
114
115
  }));
115
- var popupContent = jsx(Manager, null, jsx(Reference, null, function (_ref2) {
116
+ var popupContent = /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(Reference, null, function (_ref2) {
116
117
  var ref = _ref2.ref;
117
118
  return trigger({
118
119
  ref: !fg('platform-design-system-popup-ref') ? getMergedTriggerRef(ref, setTriggerRef, isOpen) : getMergedTriggerRefNew(ref, setTriggerRef),
@@ -120,12 +121,12 @@ export var Popup = /*#__PURE__*/memo(function (_ref) {
120
121
  'aria-expanded': isOpen,
121
122
  'aria-haspopup': role === 'dialog' && fg('platform_dst_popup-disable-focuslock') ? 'dialog' : true
122
123
  });
123
- }), isOpen && (shouldRenderToParent || shouldFitContainer ? renderPopperWrapper : jsx(Portal, {
124
+ }), isOpen && (shouldRenderToParent || shouldFitContainer ? renderPopperWrapper : /*#__PURE__*/React.createElement(Portal, {
124
125
  zIndex: zIndex
125
126
  }, renderPopperWrapper)));
126
127
  if (shouldFitContainer) {
127
- return jsx(Box, {
128
- xcss: wrapperStyles
128
+ return /*#__PURE__*/React.createElement(Box, {
129
+ xcss: wrapperStyles.root
129
130
  }, popupContent);
130
131
  }
131
132
  return popupContent;
@@ -1,6 +1,6 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import { useState } from 'react';
3
- import { UNSAFE_useMediaQuery as useMediaQuery } from '@atlaskit/primitives/responsive';
3
+ import { UNSAFE_useMediaQuery as useMediaQuery } from '@atlaskit/primitives/compiled';
4
4
 
5
5
  /**
6
6
  * **usePopupAppearance()**
@@ -1,4 +1,4 @@
1
- import { jsx } from '@emotion/react';
1
+ /// <reference types="react" />
2
2
  import { type PopperWrapperProps } from './types';
3
- declare function PopperWrapper({ xcss, isOpen, id, offset, testId, content, fallbackPlacements, onClose, boundary, rootBoundary, shouldFlip, placement, popupComponent: PopupContainer, autoFocus, triggerRef, shouldUseCaptureOnOutsideClick, shouldRenderToParent, shouldFitContainer, shouldDisableFocusLock, shouldReturnFocus, strategy, role, label, titleId, modifiers, shouldFitViewport, appearance, }: PopperWrapperProps): jsx.JSX.Element;
3
+ declare function PopperWrapper({ xcss, isOpen, id, offset, testId, content, fallbackPlacements, onClose, boundary, rootBoundary, shouldFlip, placement, popupComponent: PopupContainer, autoFocus, triggerRef, shouldUseCaptureOnOutsideClick, shouldRenderToParent, shouldFitContainer, shouldDisableFocusLock, shouldReturnFocus, strategy, role, label, titleId, modifiers, shouldFitViewport, appearance, }: PopperWrapperProps): JSX.Element;
4
4
  export default PopperWrapper;
@@ -81,6 +81,10 @@ export interface PopupComponentProps {
81
81
  * We strongly recommend using only `menu` or `dialog`.
82
82
  */
83
83
  role?: string;
84
+ /**
85
+ * Class name to apply to the popup container element.
86
+ */
87
+ className?: string;
84
88
  }
85
89
  interface BaseProps {
86
90
  /**
@@ -238,7 +242,7 @@ interface InternalPopupProps extends BaseProps {
238
242
  /**
239
243
  * Z-index that the popup should be displayed in.
240
244
  * This is passed to the portal component.
241
- * The default is `layers.layer()` from `@atlaskit/theme`.
245
+ * The default is 400.
242
246
  */
243
247
  zIndex?: number;
244
248
  }
@@ -1,4 +1,4 @@
1
- import { jsx } from '@emotion/react';
1
+ /// <reference types="react" />
2
2
  import { type PopperWrapperProps } from './types';
3
- declare function PopperWrapper({ xcss, isOpen, id, offset, testId, content, fallbackPlacements, onClose, boundary, rootBoundary, shouldFlip, placement, popupComponent: PopupContainer, autoFocus, triggerRef, shouldUseCaptureOnOutsideClick, shouldRenderToParent, shouldFitContainer, shouldDisableFocusLock, shouldReturnFocus, strategy, role, label, titleId, modifiers, shouldFitViewport, appearance, }: PopperWrapperProps): jsx.JSX.Element;
3
+ declare function PopperWrapper({ xcss, isOpen, id, offset, testId, content, fallbackPlacements, onClose, boundary, rootBoundary, shouldFlip, placement, popupComponent: PopupContainer, autoFocus, triggerRef, shouldUseCaptureOnOutsideClick, shouldRenderToParent, shouldFitContainer, shouldDisableFocusLock, shouldReturnFocus, strategy, role, label, titleId, modifiers, shouldFitViewport, appearance, }: PopperWrapperProps): JSX.Element;
4
4
  export default PopperWrapper;
@@ -81,6 +81,10 @@ export interface PopupComponentProps {
81
81
  * We strongly recommend using only `menu` or `dialog`.
82
82
  */
83
83
  role?: string;
84
+ /**
85
+ * Class name to apply to the popup container element.
86
+ */
87
+ className?: string;
84
88
  }
85
89
  interface BaseProps {
86
90
  /**
@@ -241,7 +245,7 @@ interface InternalPopupProps extends BaseProps {
241
245
  /**
242
246
  * Z-index that the popup should be displayed in.
243
247
  * This is passed to the portal component.
244
- * The default is `layers.layer()` from `@atlaskit/theme`.
248
+ * The default is 400.
245
249
  */
246
250
  zIndex?: number;
247
251
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/popup",
3
- "version": "3.0.0",
3
+ "version": "4.0.0",
4
4
  "description": "A popup displays brief content in an overlay.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -40,16 +40,14 @@
40
40
  "dependencies": {
41
41
  "@atlaskit/css": "^0.10.0",
42
42
  "@atlaskit/ds-lib": "^4.0.0",
43
- "@atlaskit/focus-ring": "^3.0.0",
44
- "@atlaskit/layering": "^2.0.0",
43
+ "@atlaskit/layering": "^2.1.0",
45
44
  "@atlaskit/platform-feature-flags": "^1.1.0",
46
45
  "@atlaskit/popper": "^7.0.0",
47
46
  "@atlaskit/portal": "^5.1.0",
48
- "@atlaskit/primitives": "^14.2.0",
49
- "@atlaskit/theme": "^18.0.0",
50
- "@atlaskit/tokens": "^4.5.0",
47
+ "@atlaskit/primitives": "^14.3.0",
48
+ "@atlaskit/tokens": "^4.7.0",
51
49
  "@babel/runtime": "^7.0.0",
52
- "@emotion/react": "^11.7.1",
50
+ "@compiled/react": "^0.18.3",
53
51
  "bind-event-listener": "^3.0.0",
54
52
  "focus-trap": "^2.4.5",
55
53
  "memoize-one": "^6.0.0",
@@ -63,21 +61,21 @@
63
61
  "@af/accessibility-testing": "^2.0.0",
64
62
  "@af/integration-testing": "^0.5.0",
65
63
  "@af/visual-regression": "^1.3.0",
66
- "@atlaskit/button": "^21.1.0",
67
- "@atlaskit/code": "^16.1.0",
64
+ "@atlaskit/button": "^23.0.0",
65
+ "@atlaskit/code": "^17.0.0",
68
66
  "@atlaskit/docs": "^10.0.0",
69
67
  "@atlaskit/form": "^12.0.0",
70
68
  "@atlaskit/heading": "^5.1.0",
71
- "@atlaskit/icon": "^25.2.0",
72
- "@atlaskit/link": "^3.0.0",
73
- "@atlaskit/modal-dialog": "^14.0.0",
69
+ "@atlaskit/icon": "^25.5.0",
70
+ "@atlaskit/link": "^3.1.0",
71
+ "@atlaskit/modal-dialog": "^14.1.0",
74
72
  "@atlaskit/section-message": "^8.2.0",
75
73
  "@atlaskit/ssr": "^0.4.0",
76
74
  "@atlaskit/textfield": "^8.0.0",
77
75
  "@atlaskit/toggle": "^15.0.0",
78
76
  "@atlaskit/visual-regression": "^0.10.0",
79
77
  "@atlassian/feature-flags-test-utils": "^0.3.0",
80
- "@compiled/react": "^0.18.3",
78
+ "@atlassian/ssr-tests": "^0.2.0",
81
79
  "@testing-library/react": "^13.4.0",
82
80
  "@testing-library/react-hooks": "^8.0.1",
83
81
  "@testing-library/user-event": "^14.4.3",