@atlaskit/modal-dialog 14.2.12 → 14.3.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 +13 -0
- package/dist/cjs/full-screen.js +87 -0
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/internal/components/modal-dialog.js +16 -8
- package/dist/cjs/{modal-wrapper.js → internal/components/modal-wrapper.js} +10 -8
- package/dist/cjs/internal/components/positioner.compiled.css +1 -1
- package/dist/cjs/internal/components/positioner.js +26 -14
- package/dist/cjs/internal/types.js +5 -0
- package/dist/cjs/modal-body.js +16 -18
- package/dist/cjs/modal-dialog.js +16 -0
- package/dist/es2019/full-screen.js +50 -0
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/internal/components/modal-dialog.js +15 -8
- package/dist/es2019/{modal-wrapper.js → internal/components/modal-wrapper.js} +10 -8
- package/dist/es2019/internal/components/positioner.js +24 -4
- package/dist/es2019/internal/types.js +1 -0
- package/dist/es2019/modal-body.js +15 -18
- package/dist/es2019/modal-dialog.js +9 -0
- package/dist/esm/full-screen.js +50 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/internal/components/modal-dialog.js +16 -8
- package/dist/esm/{modal-wrapper.js → internal/components/modal-wrapper.js} +10 -8
- package/dist/esm/internal/components/positioner.compiled.css +1 -1
- package/dist/esm/internal/components/positioner.js +26 -13
- package/dist/esm/internal/types.js +1 -0
- package/dist/esm/modal-body.js +16 -18
- package/dist/esm/modal-dialog.js +9 -0
- package/dist/types/full-screen.d.ts +10 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/internal/components/modal-dialog.d.ts +2 -10
- package/dist/types/{modal-wrapper.d.ts → internal/components/modal-wrapper.d.ts} +4 -3
- package/dist/types/internal/components/positioner.d.ts +1 -0
- package/dist/types/internal/context.d.ts +4 -0
- package/dist/types/internal/types.d.ts +16 -0
- package/dist/types/modal-body.d.ts +4 -0
- package/dist/types/modal-dialog.d.ts +4 -0
- package/dist/types-ts4.5/full-screen.d.ts +10 -0
- package/dist/types-ts4.5/index.d.ts +1 -1
- package/dist/types-ts4.5/internal/components/modal-dialog.d.ts +2 -10
- package/dist/types-ts4.5/{modal-wrapper.d.ts → internal/components/modal-wrapper.d.ts} +4 -3
- package/dist/types-ts4.5/internal/components/positioner.d.ts +1 -0
- package/dist/types-ts4.5/internal/context.d.ts +4 -0
- package/dist/types-ts4.5/internal/types.d.ts +16 -0
- package/dist/types-ts4.5/modal-body.d.ts +4 -0
- package/dist/types-ts4.5/modal-dialog.d.ts +4 -0
- package/full-screen/package.json +17 -0
- package/modal-dialog/package.json +5 -5
- package/package.json +7 -6
- /package/dist/cjs/{modal-wrapper.compiled.css → internal/components/modal-wrapper.compiled.css} +0 -0
- /package/dist/es2019/{modal-wrapper.compiled.css → internal/components/modal-wrapper.compiled.css} +0 -0
- /package/dist/esm/{modal-wrapper.compiled.css → internal/components/modal-wrapper.compiled.css} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/modal-dialog
|
|
2
2
|
|
|
3
|
+
## 14.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#173162](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/173162)
|
|
8
|
+
[`a3b23b79f4d68`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/a3b23b79f4d68) -
|
|
9
|
+
Adds a new `FullScreenModalDialog` component which is exposed behind the `/full-screen`
|
|
10
|
+
entrypoint.
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
|
|
3
16
|
## 14.2.12
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FullScreenModalDialog = FullScreenModalDialog;
|
|
8
|
+
Object.defineProperty(exports, "ModalBody", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _modalBody.default;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "ModalFooter", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function get() {
|
|
17
|
+
return _modalFooter.default;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "ModalHeader", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function get() {
|
|
23
|
+
return _modalHeader.default;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
Object.defineProperty(exports, "ModalTitle", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function get() {
|
|
29
|
+
return _modalTitle.default;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(exports, "ModalTransition", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function get() {
|
|
35
|
+
return _modalTransition.default;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
39
|
+
var _react = _interopRequireDefault(require("react"));
|
|
40
|
+
var _modalWrapper = _interopRequireDefault(require("./internal/components/modal-wrapper"));
|
|
41
|
+
var _modalTransition = _interopRequireDefault(require("./modal-transition"));
|
|
42
|
+
var _modalHeader = _interopRequireDefault(require("./modal-header"));
|
|
43
|
+
var _modalTitle = _interopRequireDefault(require("./modal-title"));
|
|
44
|
+
var _modalBody = _interopRequireDefault(require("./modal-body"));
|
|
45
|
+
var _modalFooter = _interopRequireDefault(require("./modal-footer"));
|
|
46
|
+
function FullScreenModalDialog(props) {
|
|
47
|
+
return /*#__PURE__*/_react.default.createElement(_modalWrapper.default
|
|
48
|
+
// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
|
|
49
|
+
, (0, _extends2.default)({}, props, {
|
|
50
|
+
/**
|
|
51
|
+
* Making this an internal-only prop and exposing it through a facade
|
|
52
|
+
* component so that we can keep public types simple.
|
|
53
|
+
*
|
|
54
|
+
* Otherwise we need complex conditional types that are harder to
|
|
55
|
+
* understand / maintain and aren't actually any better for consumers.
|
|
56
|
+
*/
|
|
57
|
+
isFullScreen: true
|
|
58
|
+
/**
|
|
59
|
+
* Setting width and height to 100% because the `isFullScreen` prop just
|
|
60
|
+
* removes the spacing around the modal. We still need to set the size to
|
|
61
|
+
* be 100%.
|
|
62
|
+
*
|
|
63
|
+
* Intentionally reusing the existing internals as much as possible to
|
|
64
|
+
* keep complexity low and avoid duplication. It also makes the fullscreen
|
|
65
|
+
* changes easier to remove.
|
|
66
|
+
*/,
|
|
67
|
+
width: "100%",
|
|
68
|
+
height: "100%"
|
|
69
|
+
/**
|
|
70
|
+
* Full screen modals only support body scrolling, so that the header
|
|
71
|
+
* and close button will always stay visible.
|
|
72
|
+
*/,
|
|
73
|
+
shouldScrollInViewport: false
|
|
74
|
+
/**
|
|
75
|
+
* This prop is a noop for fullscreen modals, so we aren't exposing it to consumers.
|
|
76
|
+
* Using `false` internally to avoid potential bugs.
|
|
77
|
+
*/,
|
|
78
|
+
shouldCloseOnOverlayClick: false
|
|
79
|
+
/**
|
|
80
|
+
* The blanket is only briefly visible for fullscreen modals when fading in,
|
|
81
|
+
* but provides a bit more of a visual cue that it has appeared on top.
|
|
82
|
+
*
|
|
83
|
+
* We don't want consumers to disable it.
|
|
84
|
+
*/,
|
|
85
|
+
isBlanketHidden: false
|
|
86
|
+
}));
|
|
87
|
+
}
|
package/dist/cjs/index.js
CHANGED
|
@@ -43,7 +43,7 @@ Object.defineProperty(exports, "ModalTransition", {
|
|
|
43
43
|
Object.defineProperty(exports, "default", {
|
|
44
44
|
enumerable: true,
|
|
45
45
|
get: function get() {
|
|
46
|
-
return
|
|
46
|
+
return _modalDialog.default;
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
49
|
Object.defineProperty(exports, "useModal", {
|
|
@@ -52,7 +52,7 @@ Object.defineProperty(exports, "useModal", {
|
|
|
52
52
|
return _hooks.useModal;
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
|
-
var
|
|
55
|
+
var _modalDialog = _interopRequireDefault(require("./modal-dialog"));
|
|
56
56
|
var _modalTransition = _interopRequireDefault(require("./modal-transition"));
|
|
57
57
|
var _modalHeader = _interopRequireDefault(require("./modal-header"));
|
|
58
58
|
var _modalTitle = _interopRequireDefault(require("./modal-title"));
|
|
@@ -30,7 +30,8 @@ var _positioner = _interopRequireDefault(require("./positioner"));
|
|
|
30
30
|
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" != _typeof3(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); }
|
|
31
31
|
var LOCAL_CURRENT_SURFACE_CSS_VAR = '--ds-elevation-surface-current';
|
|
32
32
|
var dialogStyles = {
|
|
33
|
-
root: "_16jlidpf _1o9zkb7n _i0dl1wug _1e0c1txw _1bsb1osq _p12fauwl _4t3i1osq _1tkeidpf _c71l1kxc _2lx21bp4 _bfhk1bhr _syaz1fxt _1q1l1bhr _lcxv1wug _1mq81kw7 _m01u1kw7 _1dg11kw7 _mizu1p6i _1ah31bk5 _ra3xnqa1 _128m1bk5 _1cvmnqa1 _4davt94y
|
|
33
|
+
root: "_16jlidpf _1o9zkb7n _i0dl1wug _1e0c1txw _1bsb1osq _p12fauwl _4t3i1osq _1tkeidpf _c71l1kxc _2lx21bp4 _bfhk1bhr _syaz1fxt _1q1l1bhr _lcxv1wug _1mq81kw7 _m01u1kw7 _1dg11kw7 _mizu1p6i _1ah31bk5 _ra3xnqa1 _128m1bk5 _1cvmnqa1 _4davt94y _we1i1kw7 _zg7p1cd0 _yakv1kw7 _4lht1kw7 _1xlt6m9r",
|
|
34
|
+
borderRadius: "_epkx1sit"
|
|
34
35
|
};
|
|
35
36
|
var viewportScrollStyles = null;
|
|
36
37
|
var bodyScrollStyles = null;
|
|
@@ -49,7 +50,9 @@ var ModalDialog = function ModalDialog(props) {
|
|
|
49
50
|
hasProvidedOnClose = props.hasProvidedOnClose,
|
|
50
51
|
children = props.children,
|
|
51
52
|
label = props.label,
|
|
52
|
-
testId = props.testId
|
|
53
|
+
testId = props.testId,
|
|
54
|
+
_props$isFullScreen = props.isFullScreen,
|
|
55
|
+
isFullScreen = _props$isFullScreen === void 0 ? false : _props$isFullScreen;
|
|
53
56
|
var id = (0, _useId.useId)();
|
|
54
57
|
var titleId = "modal-dialog-title-".concat(id);
|
|
55
58
|
var defaultTestId = testId || 'modal-dialog';
|
|
@@ -79,9 +82,10 @@ var ModalDialog = function ModalDialog(props) {
|
|
|
79
82
|
testId: defaultTestId,
|
|
80
83
|
titleId: titleId,
|
|
81
84
|
onClose: onClose,
|
|
82
|
-
hasProvidedOnClose: hasProvidedOnClose
|
|
85
|
+
hasProvidedOnClose: hasProvidedOnClose,
|
|
86
|
+
isFullScreen: isFullScreen
|
|
83
87
|
};
|
|
84
|
-
}, [defaultTestId, titleId, onClose, hasProvidedOnClose]);
|
|
88
|
+
}, [defaultTestId, titleId, onClose, hasProvidedOnClose, isFullScreen]);
|
|
85
89
|
(0, _layering.useCloseOnEscapePress)({
|
|
86
90
|
onClose: onClose,
|
|
87
91
|
isDisabled: !shouldCloseOnEscapePress
|
|
@@ -91,13 +95,17 @@ var ModalDialog = function ModalDialog(props) {
|
|
|
91
95
|
return /*#__PURE__*/React.createElement(_positioner.default, {
|
|
92
96
|
stackIndex: stackIndex,
|
|
93
97
|
shouldScrollInViewport: shouldScrollInViewport,
|
|
94
|
-
testId: defaultTestId
|
|
98
|
+
testId: defaultTestId,
|
|
99
|
+
isFullScreen: isFullScreen
|
|
95
100
|
}, /*#__PURE__*/React.createElement(_context.ModalContext.Provider, {
|
|
96
101
|
value: modalDialogContext
|
|
97
102
|
}, /*#__PURE__*/React.createElement(_context.ScrollContext.Provider, {
|
|
98
103
|
value: shouldScrollInViewport
|
|
99
|
-
}, /*#__PURE__*/React.createElement(_fadeIn.default
|
|
100
|
-
|
|
104
|
+
}, /*#__PURE__*/React.createElement(_fadeIn.default
|
|
105
|
+
/**
|
|
106
|
+
* We don't want a 'slide in' for the full screen modals.
|
|
107
|
+
*/, {
|
|
108
|
+
entranceDirection: isFullScreen ? undefined : 'bottom',
|
|
101
109
|
onFinish: onMotionFinish
|
|
102
110
|
}, function (bottomFadeInProps) {
|
|
103
111
|
return /*#__PURE__*/React.createElement("section", (0, _extends2.default)({}, bottomFadeInProps, {
|
|
@@ -110,7 +118,7 @@ var ModalDialog = function ModalDialog(props) {
|
|
|
110
118
|
'--modal-dialog-height': (0, _utils.dialogHeight)(height)
|
|
111
119
|
},
|
|
112
120
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
|
|
113
|
-
className: (0, _runtime.ax)([dialogStyles.root, shouldScrollInViewport ? "_1tke1kxc _c71lglyw _8kn617ks" : "_cbiz17ks _bolh1kw7", bottomFadeInProps.className]),
|
|
121
|
+
className: (0, _runtime.ax)([dialogStyles.root, !isFullScreen && dialogStyles.borderRadius, shouldScrollInViewport ? "_1tke1kxc _c71lglyw _8kn617ks" : "_cbiz17ks _bolh1kw7", bottomFadeInProps.className]),
|
|
114
122
|
role: "dialog",
|
|
115
123
|
"aria-labelledby": label ? undefined : titleId,
|
|
116
124
|
"data-testid": defaultTestId,
|
|
@@ -21,9 +21,9 @@ var _layering = require("@atlaskit/layering");
|
|
|
21
21
|
var _fadeIn = _interopRequireDefault(require("@atlaskit/motion/fade-in"));
|
|
22
22
|
var _portal = _interopRequireDefault(require("@atlaskit/portal"));
|
|
23
23
|
var _constants = require("@atlaskit/theme/constants");
|
|
24
|
-
var
|
|
25
|
-
var
|
|
26
|
-
var
|
|
24
|
+
var _useModalStack = _interopRequireDefault(require("../hooks/use-modal-stack"));
|
|
25
|
+
var _usePreventProgrammaticScroll = _interopRequireDefault(require("../hooks/use-prevent-programmatic-scroll"));
|
|
26
|
+
var _modalDialog = _interopRequireDefault(require("./modal-dialog"));
|
|
27
27
|
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); }
|
|
28
28
|
var fillScreenStyles = null;
|
|
29
29
|
var allowlistElements = function allowlistElements(element, callback) {
|
|
@@ -49,7 +49,7 @@ var allowlistElements = function allowlistElements(element, callback) {
|
|
|
49
49
|
* - [Code](https://atlassian.design/components/modal-dialog/code)
|
|
50
50
|
* - [Usage](https://atlassian.design/components/modal-dialog/usage)
|
|
51
51
|
*/
|
|
52
|
-
var
|
|
52
|
+
var InternalModalWrapper = function InternalModalWrapper(props) {
|
|
53
53
|
var _props$autoFocus = props.autoFocus,
|
|
54
54
|
autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,
|
|
55
55
|
focusLockAllowlist = props.focusLockAllowlist,
|
|
@@ -72,7 +72,8 @@ var ModalWrapper = function ModalWrapper(props) {
|
|
|
72
72
|
onCloseComplete = props.onCloseComplete,
|
|
73
73
|
onOpenComplete = props.onOpenComplete,
|
|
74
74
|
label = props.label,
|
|
75
|
-
testId = props.testId
|
|
75
|
+
testId = props.testId,
|
|
76
|
+
isFullScreen = props.isFullScreen;
|
|
76
77
|
var calculatedStackIndex = (0, _useModalStack.default)({
|
|
77
78
|
onStackChange: onStackChange
|
|
78
79
|
});
|
|
@@ -86,7 +87,7 @@ var ModalWrapper = function ModalWrapper(props) {
|
|
|
86
87
|
action: 'closed',
|
|
87
88
|
componentName: 'modalDialog',
|
|
88
89
|
packageName: "@atlaskit/modal-dialog",
|
|
89
|
-
packageVersion: "14.2.
|
|
90
|
+
packageVersion: "14.2.12"
|
|
90
91
|
});
|
|
91
92
|
var onBlanketClicked = (0, _react.useCallback)(function (e) {
|
|
92
93
|
if (shouldCloseOnOverlayClick) {
|
|
@@ -115,7 +116,8 @@ var ModalWrapper = function ModalWrapper(props) {
|
|
|
115
116
|
width: width,
|
|
116
117
|
onCloseComplete: onCloseComplete,
|
|
117
118
|
onOpenComplete: onOpenComplete,
|
|
118
|
-
hasProvidedOnClose: Boolean(providedOnClose)
|
|
119
|
+
hasProvidedOnClose: Boolean(providedOnClose),
|
|
120
|
+
isFullScreen: isFullScreen
|
|
119
121
|
}, children));
|
|
120
122
|
var returnFocus = true;
|
|
121
123
|
var onDeactivation;
|
|
@@ -146,4 +148,4 @@ var ModalWrapper = function ModalWrapper(props) {
|
|
|
146
148
|
}, /*#__PURE__*/React.createElement(_reactScrolllock.default, null), shouldScrollInViewport ? /*#__PURE__*/React.createElement(_reactScrolllock.TouchScrollable, null, modalDialogWithBlanket) : modalDialogWithBlanket));
|
|
147
149
|
})));
|
|
148
150
|
};
|
|
149
|
-
var _default = exports.default =
|
|
151
|
+
var _default = exports.default = InternalModalWrapper;
|
|
@@ -13,4 +13,4 @@
|
|
|
13
13
|
._t9ec1b95{transform:translateY(var(--modal-dialog-translate-y))}
|
|
14
14
|
._t9ecglyw{transform:none}
|
|
15
15
|
@media (prefers-reduced-motion:reduce){._1bumglyw{animation:none}._sedtglyw{transition:none}}
|
|
16
|
-
@media (min-width:30rem){.
|
|
16
|
+
@media (min-width:30rem){._1sg41wqb{margin-top:60px}._maxs1wug{margin-right:auto}._1jvh1wqb{margin-bottom:60px}._1uca1wug{margin-left:auto}._eoawglyw{pointer-events:none}._we1i18uh{max-width:calc(100vw - 90pt)}._e8uozwhf{max-height:calc(100vh - 119px)}._y1k5stnw{position:absolute}._5ee41wqb{inset-block-start:60px}._1urridpf{inset-inline-end:0}._1juqidpf{inset-inline-start:0}._yakv1wug{margin-inline-end:auto}._4lht1wug{margin-inline-start:auto}}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/* positioner.tsx generated by @compiled/babel-plugin v0.36.1 */
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
5
|
Object.defineProperty(exports, "__esModule", {
|
|
7
6
|
value: true
|
|
@@ -10,42 +9,55 @@ exports.default = void 0;
|
|
|
10
9
|
require("./positioner.compiled.css");
|
|
11
10
|
var React = _interopRequireWildcard(require("react"));
|
|
12
11
|
var _runtime = require("@compiled/react/runtime");
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
12
|
var _curves = require("@atlaskit/motion/curves");
|
|
15
13
|
var _durations = require("@atlaskit/motion/durations");
|
|
16
14
|
var _constants = require("@atlaskit/theme/constants");
|
|
17
15
|
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); }
|
|
18
|
-
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; }
|
|
19
|
-
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) { (0, _defineProperty2.default)(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; }
|
|
20
16
|
var gutter = 60;
|
|
21
17
|
var maxWidthDimensions = "calc(100vw - ".concat(gutter * 2, "px)");
|
|
22
18
|
var maxHeightDimensions = "calc(100vh - ".concat(gutter * 2 - 1, "px)");
|
|
23
19
|
|
|
24
20
|
// Flex and min-content are set to constrain the height of the body and support multi-column scrolling experiences
|
|
25
21
|
var positionerStyles = null;
|
|
26
|
-
var
|
|
27
|
-
|
|
22
|
+
var scrollStyles = {
|
|
23
|
+
viewport: "_4t3i1wug _kqswh2mm _1sg41wqb _maxs1wug _1jvh1wqb _1uca1wug _eoawglyw",
|
|
24
|
+
body: "_we1i18uh _e8uozwhf _y1k5stnw _5ee41wqb _1urridpf _1juqidpf _yakv1wug _4lht1wug _eoawglyw",
|
|
25
|
+
fullScreen: ""
|
|
26
|
+
};
|
|
28
27
|
var stackTransitionStyles = null;
|
|
29
28
|
var stackTransformStyles = null;
|
|
30
29
|
var stackIdleStyles = null;
|
|
30
|
+
function getScrollBehavior(_ref) {
|
|
31
|
+
var isFullScreen = _ref.isFullScreen,
|
|
32
|
+
shouldScrollInViewport = _ref.shouldScrollInViewport;
|
|
33
|
+
if (isFullScreen) {
|
|
34
|
+
return 'fullScreen';
|
|
35
|
+
}
|
|
36
|
+
if (shouldScrollInViewport) {
|
|
37
|
+
return 'viewport';
|
|
38
|
+
}
|
|
39
|
+
return 'body';
|
|
40
|
+
}
|
|
31
41
|
var Positioner = function Positioner(props) {
|
|
32
42
|
var children = props.children,
|
|
33
43
|
stackIndex = props.stackIndex,
|
|
34
44
|
shouldScrollInViewport = props.shouldScrollInViewport,
|
|
35
|
-
testId = props.testId
|
|
45
|
+
testId = props.testId,
|
|
46
|
+
isFullScreen = props.isFullScreen;
|
|
47
|
+
var scrollBehavior = getScrollBehavior({
|
|
48
|
+
isFullScreen: isFullScreen,
|
|
49
|
+
shouldScrollInViewport: shouldScrollInViewport
|
|
50
|
+
});
|
|
36
51
|
return /*#__PURE__*/React.createElement("div", {
|
|
37
|
-
|
|
38
|
-
className: (0, _runtime.ax)(["_1e0c1txw _1bsb1osq _p12f1osq _4t3i1osq _kqsw1n9t _1pby16oo _2lx21bp4 _152tidpf _1e02idpf", "_k8m01e03 _1bumglyw _sedtglyw", stackIndex > 0 ? "_t9ec1b95" : "_t9ecglyw", shouldScrollInViewport ? "_4t3i1wug _kqswh2mm _1leth4k2 _eoawglyw" : "_we1i18uh _e8uozwhf _y1k5stnw _5ee4up15 _1urridpf _1juqidpf _yakv1wug _4lht1wug _eoawglyw"]),
|
|
39
|
-
style: _objectSpread(_objectSpread({}, {
|
|
52
|
+
style: {
|
|
40
53
|
'--modal-dialog-translate-y': "calc(".concat(stackIndex, "px * ", "var(--ds-space-100, 8px)", ")"),
|
|
41
54
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
42
55
|
transitionDuration: "".concat(_durations.durations.medium, "ms"),
|
|
43
56
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
|
|
44
57
|
transitionTimingFunction: _curves.easeInOut
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
})
|
|
58
|
+
},
|
|
59
|
+
"data-testid": testId && "".concat(testId, "--positioner"),
|
|
60
|
+
className: (0, _runtime.ax)(["_1e0c1txw _1bsb1osq _p12f1osq _4t3i1osq _kqsw1n9t _1pby16oo _2lx21bp4 _152tidpf _1e02idpf", "_k8m01e03 _1bumglyw _sedtglyw", stackIndex > 0 ? "_t9ec1b95" : "_t9ecglyw", scrollStyles[scrollBehavior]])
|
|
49
61
|
}, children);
|
|
50
62
|
};
|
|
51
63
|
|
package/dist/cjs/modal-body.js
CHANGED
|
@@ -14,21 +14,12 @@ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
|
14
14
|
var _hooks = require("./hooks");
|
|
15
15
|
var _scrollContainer = _interopRequireDefault(require("./internal/components/scroll-container"));
|
|
16
16
|
var _useScroll = _interopRequireDefault(require("./internal/hooks/use-scroll"));
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
* keyline height from header and footer using negative margins.
|
|
24
|
-
*/
|
|
25
|
-
var bodyScrollStyles = null;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Keylines will not be shown if scrolling in viewport so we do
|
|
29
|
-
* not account for them in this case.
|
|
30
|
-
*/
|
|
31
|
-
var viewportScrollStyles = null;
|
|
17
|
+
var styles = {
|
|
18
|
+
root: "_16jlkb7n _1o9zkb7n _i0dl1wug",
|
|
19
|
+
font: "_11c82smr",
|
|
20
|
+
paddingBlock: "_1rjc1bk5",
|
|
21
|
+
paddingInline: "_18zr1ejb"
|
|
22
|
+
};
|
|
32
23
|
/**
|
|
33
24
|
* __Modal body__
|
|
34
25
|
*
|
|
@@ -40,19 +31,26 @@ var viewportScrollStyles = null;
|
|
|
40
31
|
*/
|
|
41
32
|
var ModalBody = function ModalBody(props) {
|
|
42
33
|
var children = props.children,
|
|
43
|
-
userDefinedTestId = props.testId
|
|
34
|
+
userDefinedTestId = props.testId,
|
|
35
|
+
_props$hasInlinePaddi = props.hasInlinePadding,
|
|
36
|
+
hasInlinePadding = _props$hasInlinePaddi === void 0 ? true : _props$hasInlinePaddi;
|
|
44
37
|
var _useModal = (0, _hooks.useModal)(),
|
|
45
38
|
modalTestId = _useModal.testId;
|
|
46
39
|
var shouldScrollInViewport = (0, _useScroll.default)();
|
|
47
40
|
var testId = userDefinedTestId || modalTestId && "".concat(modalTestId, "--body");
|
|
48
41
|
return shouldScrollInViewport ? /*#__PURE__*/_react.default.createElement("div", {
|
|
49
42
|
"data-testid": testId,
|
|
50
|
-
className: (0, _runtime.ax)([
|
|
43
|
+
className: (0, _runtime.ax)([styles.root, hasInlinePadding && styles.paddingInline, (0, _platformFeatureFlags.fg)('platform_ads_explicit_font_styles') && styles.font])
|
|
51
44
|
}, children) : /*#__PURE__*/_react.default.createElement(_reactScrolllock.TouchScrollable, null, /*#__PURE__*/_react.default.createElement(_scrollContainer.default, {
|
|
52
45
|
testId: userDefinedTestId || modalTestId
|
|
53
46
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
54
47
|
"data-testid": testId,
|
|
55
|
-
className: (0, _runtime.ax)([
|
|
48
|
+
className: (0, _runtime.ax)([styles.root,
|
|
49
|
+
/**
|
|
50
|
+
* Adding block padding for scroll keylines, which are only shown when the scrolling
|
|
51
|
+
* is on the container.
|
|
52
|
+
*/
|
|
53
|
+
styles.paddingBlock, hasInlinePadding && styles.paddingInline, (0, _platformFeatureFlags.fg)('platform_ads_explicit_font_styles') && styles.font])
|
|
56
54
|
}, children)));
|
|
57
55
|
};
|
|
58
56
|
var _default = exports.default = ModalBody;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = ModalWrapper;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _modalWrapper = _interopRequireDefault(require("./internal/components/modal-wrapper"));
|
|
11
|
+
function ModalWrapper(props) {
|
|
12
|
+
// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
|
|
13
|
+
return /*#__PURE__*/_react.default.createElement(_modalWrapper.default, (0, _extends2.default)({}, props, {
|
|
14
|
+
isFullScreen: false
|
|
15
|
+
}));
|
|
16
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import InternalModalWrapper from './internal/components/modal-wrapper';
|
|
4
|
+
export function FullScreenModalDialog(props) {
|
|
5
|
+
return /*#__PURE__*/React.createElement(InternalModalWrapper
|
|
6
|
+
// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
|
|
7
|
+
, _extends({}, props, {
|
|
8
|
+
/**
|
|
9
|
+
* Making this an internal-only prop and exposing it through a facade
|
|
10
|
+
* component so that we can keep public types simple.
|
|
11
|
+
*
|
|
12
|
+
* Otherwise we need complex conditional types that are harder to
|
|
13
|
+
* understand / maintain and aren't actually any better for consumers.
|
|
14
|
+
*/
|
|
15
|
+
isFullScreen: true
|
|
16
|
+
/**
|
|
17
|
+
* Setting width and height to 100% because the `isFullScreen` prop just
|
|
18
|
+
* removes the spacing around the modal. We still need to set the size to
|
|
19
|
+
* be 100%.
|
|
20
|
+
*
|
|
21
|
+
* Intentionally reusing the existing internals as much as possible to
|
|
22
|
+
* keep complexity low and avoid duplication. It also makes the fullscreen
|
|
23
|
+
* changes easier to remove.
|
|
24
|
+
*/,
|
|
25
|
+
width: "100%",
|
|
26
|
+
height: "100%"
|
|
27
|
+
/**
|
|
28
|
+
* Full screen modals only support body scrolling, so that the header
|
|
29
|
+
* and close button will always stay visible.
|
|
30
|
+
*/,
|
|
31
|
+
shouldScrollInViewport: false
|
|
32
|
+
/**
|
|
33
|
+
* This prop is a noop for fullscreen modals, so we aren't exposing it to consumers.
|
|
34
|
+
* Using `false` internally to avoid potential bugs.
|
|
35
|
+
*/,
|
|
36
|
+
shouldCloseOnOverlayClick: false
|
|
37
|
+
/**
|
|
38
|
+
* The blanket is only briefly visible for fullscreen modals when fading in,
|
|
39
|
+
* but provides a bit more of a visual cue that it has appeared on top.
|
|
40
|
+
*
|
|
41
|
+
* We don't want consumers to disable it.
|
|
42
|
+
*/,
|
|
43
|
+
isBlanketHidden: false
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
export { default as ModalTransition } from './modal-transition';
|
|
47
|
+
export { default as ModalHeader } from './modal-header';
|
|
48
|
+
export { default as ModalTitle } from './modal-title';
|
|
49
|
+
export { default as ModalBody } from './modal-body';
|
|
50
|
+
export { default as ModalFooter } from './modal-footer';
|
package/dist/es2019/index.js
CHANGED
|
@@ -19,7 +19,8 @@ import { dialogHeight, dialogWidth } from '../utils';
|
|
|
19
19
|
import Positioner from './positioner';
|
|
20
20
|
const LOCAL_CURRENT_SURFACE_CSS_VAR = '--ds-elevation-surface-current';
|
|
21
21
|
const dialogStyles = {
|
|
22
|
-
root: "_16jlidpf _1o9zkb7n _i0dl1wug _1e0c1txw _1bsb1osq _p12fauwl _4t3i1osq _1tkeidpf _c71l1kxc _2lx21bp4 _bfhk1bhr _syaz1fxt _1q1l1bhr _lcxv1wug _1mq81kw7 _m01u1kw7 _1dg11kw7 _mizu1p6i _1ah31bk5 _ra3xnqa1 _128m1bk5 _1cvmnqa1 _4davt94y
|
|
22
|
+
root: "_16jlidpf _1o9zkb7n _i0dl1wug _1e0c1txw _1bsb1osq _p12fauwl _4t3i1osq _1tkeidpf _c71l1kxc _2lx21bp4 _bfhk1bhr _syaz1fxt _1q1l1bhr _lcxv1wug _1mq81kw7 _m01u1kw7 _1dg11kw7 _mizu1p6i _1ah31bk5 _ra3xnqa1 _128m1bk5 _1cvmnqa1 _4davt94y _we1i1kw7 _zg7p1cd0 _yakv1kw7 _4lht1kw7 _1xlt6m9r",
|
|
23
|
+
borderRadius: "_epkx1sit"
|
|
23
24
|
};
|
|
24
25
|
const viewportScrollStyles = null;
|
|
25
26
|
const bodyScrollStyles = null;
|
|
@@ -37,7 +38,8 @@ const ModalDialog = props => {
|
|
|
37
38
|
hasProvidedOnClose,
|
|
38
39
|
children,
|
|
39
40
|
label,
|
|
40
|
-
testId
|
|
41
|
+
testId,
|
|
42
|
+
isFullScreen = false
|
|
41
43
|
} = props;
|
|
42
44
|
const id = useId();
|
|
43
45
|
const titleId = `modal-dialog-title-${id}`;
|
|
@@ -64,8 +66,9 @@ const ModalDialog = props => {
|
|
|
64
66
|
testId: defaultTestId,
|
|
65
67
|
titleId,
|
|
66
68
|
onClose,
|
|
67
|
-
hasProvidedOnClose
|
|
68
|
-
|
|
69
|
+
hasProvidedOnClose,
|
|
70
|
+
isFullScreen
|
|
71
|
+
}), [defaultTestId, titleId, onClose, hasProvidedOnClose, isFullScreen]);
|
|
69
72
|
useCloseOnEscapePress({
|
|
70
73
|
onClose,
|
|
71
74
|
isDisabled: !shouldCloseOnEscapePress
|
|
@@ -76,13 +79,17 @@ const ModalDialog = props => {
|
|
|
76
79
|
return /*#__PURE__*/React.createElement(Positioner, {
|
|
77
80
|
stackIndex: stackIndex,
|
|
78
81
|
shouldScrollInViewport: shouldScrollInViewport,
|
|
79
|
-
testId: defaultTestId
|
|
82
|
+
testId: defaultTestId,
|
|
83
|
+
isFullScreen: isFullScreen
|
|
80
84
|
}, /*#__PURE__*/React.createElement(ModalContext.Provider, {
|
|
81
85
|
value: modalDialogContext
|
|
82
86
|
}, /*#__PURE__*/React.createElement(ScrollContext.Provider, {
|
|
83
87
|
value: shouldScrollInViewport
|
|
84
|
-
}, /*#__PURE__*/React.createElement(FadeIn
|
|
85
|
-
|
|
88
|
+
}, /*#__PURE__*/React.createElement(FadeIn
|
|
89
|
+
/**
|
|
90
|
+
* We don't want a 'slide in' for the full screen modals.
|
|
91
|
+
*/, {
|
|
92
|
+
entranceDirection: isFullScreen ? undefined : 'bottom',
|
|
86
93
|
onFinish: onMotionFinish
|
|
87
94
|
}, bottomFadeInProps => /*#__PURE__*/React.createElement("section", _extends({}, bottomFadeInProps, {
|
|
88
95
|
"aria-label": label,
|
|
@@ -94,7 +101,7 @@ const ModalDialog = props => {
|
|
|
94
101
|
'--modal-dialog-height': dialogHeight(height)
|
|
95
102
|
},
|
|
96
103
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
|
|
97
|
-
className: ax([dialogStyles.root, shouldScrollInViewport ? "_1tke1kxc _c71lglyw _8kn617ks" : "_cbiz17ks _bolh1kw7", bottomFadeInProps.className]),
|
|
104
|
+
className: ax([dialogStyles.root, !isFullScreen && dialogStyles.borderRadius, shouldScrollInViewport ? "_1tke1kxc _c71lglyw _8kn617ks" : "_cbiz17ks _bolh1kw7", bottomFadeInProps.className]),
|
|
98
105
|
role: "dialog",
|
|
99
106
|
"aria-labelledby": label ? undefined : titleId,
|
|
100
107
|
"data-testid": defaultTestId,
|
|
@@ -13,9 +13,9 @@ import { Layering } from '@atlaskit/layering';
|
|
|
13
13
|
import FadeIn from '@atlaskit/motion/fade-in';
|
|
14
14
|
import Portal from '@atlaskit/portal';
|
|
15
15
|
import { layers } from '@atlaskit/theme/constants';
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
16
|
+
import useModalStack from '../hooks/use-modal-stack';
|
|
17
|
+
import usePreventProgrammaticScroll from '../hooks/use-prevent-programmatic-scroll';
|
|
18
|
+
import ModalDialog from './modal-dialog';
|
|
19
19
|
const fillScreenStyles = null;
|
|
20
20
|
const allowlistElements = (element, callback) => {
|
|
21
21
|
// Allow focus to reach elements outside the modal:
|
|
@@ -40,7 +40,7 @@ const allowlistElements = (element, callback) => {
|
|
|
40
40
|
* - [Code](https://atlassian.design/components/modal-dialog/code)
|
|
41
41
|
* - [Usage](https://atlassian.design/components/modal-dialog/usage)
|
|
42
42
|
*/
|
|
43
|
-
const
|
|
43
|
+
const InternalModalWrapper = props => {
|
|
44
44
|
const {
|
|
45
45
|
autoFocus = true,
|
|
46
46
|
focusLockAllowlist,
|
|
@@ -58,7 +58,8 @@ const ModalWrapper = props => {
|
|
|
58
58
|
onCloseComplete,
|
|
59
59
|
onOpenComplete,
|
|
60
60
|
label,
|
|
61
|
-
testId
|
|
61
|
+
testId,
|
|
62
|
+
isFullScreen
|
|
62
63
|
} = props;
|
|
63
64
|
const calculatedStackIndex = useModalStack({
|
|
64
65
|
onStackChange
|
|
@@ -73,7 +74,7 @@ const ModalWrapper = props => {
|
|
|
73
74
|
action: 'closed',
|
|
74
75
|
componentName: 'modalDialog',
|
|
75
76
|
packageName: "@atlaskit/modal-dialog",
|
|
76
|
-
packageVersion: "14.2.
|
|
77
|
+
packageVersion: "14.2.12"
|
|
77
78
|
});
|
|
78
79
|
const onBlanketClicked = useCallback(e => {
|
|
79
80
|
if (shouldCloseOnOverlayClick) {
|
|
@@ -100,7 +101,8 @@ const ModalWrapper = props => {
|
|
|
100
101
|
width: width,
|
|
101
102
|
onCloseComplete: onCloseComplete,
|
|
102
103
|
onOpenComplete: onOpenComplete,
|
|
103
|
-
hasProvidedOnClose: Boolean(providedOnClose)
|
|
104
|
+
hasProvidedOnClose: Boolean(providedOnClose),
|
|
105
|
+
isFullScreen: isFullScreen
|
|
104
106
|
}, children));
|
|
105
107
|
let returnFocus = true;
|
|
106
108
|
let onDeactivation;
|
|
@@ -129,4 +131,4 @@ const ModalWrapper = props => {
|
|
|
129
131
|
whiteList: allowListCallback
|
|
130
132
|
}, /*#__PURE__*/React.createElement(ScrollLock, null), shouldScrollInViewport ? /*#__PURE__*/React.createElement(TouchScrollable, null, modalDialogWithBlanket) : modalDialogWithBlanket)))));
|
|
131
133
|
};
|
|
132
|
-
export default
|
|
134
|
+
export default InternalModalWrapper;
|
|
@@ -11,18 +11,38 @@ const maxHeightDimensions = `calc(100vh - ${gutter * 2 - 1}px)`;
|
|
|
11
11
|
|
|
12
12
|
// Flex and min-content are set to constrain the height of the body and support multi-column scrolling experiences
|
|
13
13
|
const positionerStyles = null;
|
|
14
|
-
const
|
|
15
|
-
|
|
14
|
+
const scrollStyles = {
|
|
15
|
+
viewport: "_4t3i1wug _kqswh2mm _1sg41wqb _maxs1wug _1jvh1wqb _1uca1wug _eoawglyw",
|
|
16
|
+
body: "_we1i18uh _e8uozwhf _y1k5stnw _5ee41wqb _1urridpf _1juqidpf _yakv1wug _4lht1wug _eoawglyw",
|
|
17
|
+
fullScreen: ""
|
|
18
|
+
};
|
|
16
19
|
const stackTransitionStyles = null;
|
|
17
20
|
const stackTransformStyles = null;
|
|
18
21
|
const stackIdleStyles = null;
|
|
22
|
+
function getScrollBehavior({
|
|
23
|
+
isFullScreen,
|
|
24
|
+
shouldScrollInViewport
|
|
25
|
+
}) {
|
|
26
|
+
if (isFullScreen) {
|
|
27
|
+
return 'fullScreen';
|
|
28
|
+
}
|
|
29
|
+
if (shouldScrollInViewport) {
|
|
30
|
+
return 'viewport';
|
|
31
|
+
}
|
|
32
|
+
return 'body';
|
|
33
|
+
}
|
|
19
34
|
const Positioner = props => {
|
|
20
35
|
const {
|
|
21
36
|
children,
|
|
22
37
|
stackIndex,
|
|
23
38
|
shouldScrollInViewport,
|
|
24
|
-
testId
|
|
39
|
+
testId,
|
|
40
|
+
isFullScreen
|
|
25
41
|
} = props;
|
|
42
|
+
const scrollBehavior = getScrollBehavior({
|
|
43
|
+
isFullScreen,
|
|
44
|
+
shouldScrollInViewport
|
|
45
|
+
});
|
|
26
46
|
return /*#__PURE__*/React.createElement("div", {
|
|
27
47
|
style: {
|
|
28
48
|
'--modal-dialog-translate-y': `calc(${stackIndex}px * ${"var(--ds-space-100, 8px)"})`,
|
|
@@ -32,7 +52,7 @@ const Positioner = props => {
|
|
|
32
52
|
transitionTimingFunction: easeInOut
|
|
33
53
|
},
|
|
34
54
|
"data-testid": testId && `${testId}--positioner`,
|
|
35
|
-
className: ax(["_1e0c1txw _1bsb1osq _p12f1osq _4t3i1osq _kqsw1n9t _1pby16oo _2lx21bp4 _152tidpf _1e02idpf", "_k8m01e03 _1bumglyw _sedtglyw", stackIndex > 0 ? "_t9ec1b95" : "_t9ecglyw",
|
|
55
|
+
className: ax(["_1e0c1txw _1bsb1osq _p12f1osq _4t3i1osq _kqsw1n9t _1pby16oo _2lx21bp4 _152tidpf _1e02idpf", "_k8m01e03 _1bumglyw _sedtglyw", stackIndex > 0 ? "_t9ec1b95" : "_t9ecglyw", scrollStyles[scrollBehavior]])
|
|
36
56
|
}, children);
|
|
37
57
|
};
|
|
38
58
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|