baseui 0.0.0-next-9a27fb2 → 0.0.0-next-9ca78d5

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.
@@ -0,0 +1,20 @@
1
+ export declare const SIZE: Readonly<{
2
+ readonly xSmall: "xSmall";
3
+ readonly small: "small";
4
+ readonly medium: "medium";
5
+ readonly large: "large";
6
+ }>;
7
+ export declare const PLACEMENT: Readonly<{
8
+ readonly center: "center";
9
+ readonly topLeft: "topLeft";
10
+ readonly topCenter: "topCenter";
11
+ readonly topRight: "topRight";
12
+ readonly bottomLeft: "bottomLeft";
13
+ readonly bottomCenter: "bottomCenter";
14
+ readonly bottomRight: "bottomRight";
15
+ }>;
16
+ export declare const CLOSE_KIND: Readonly<{
17
+ readonly notCloseable: "notCloseable";
18
+ readonly closeable: "closeable";
19
+ readonly closeableWithButton: "closeableWithButton";
20
+ }>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SIZE = exports.PLACEMENT = exports.CLOSE_KIND = void 0;
7
+
8
+ /*
9
+ Copyright (c) Uber Technologies, Inc.
10
+
11
+ This source code is licensed under the MIT license found in the
12
+ LICENSE file in the root directory of this source tree.
13
+ */
14
+ var SIZE = Object.freeze({
15
+ xSmall: 'xSmall',
16
+ small: 'small',
17
+ medium: 'medium',
18
+ large: 'large'
19
+ });
20
+ exports.SIZE = SIZE;
21
+ var PLACEMENT = Object.freeze({
22
+ center: 'center',
23
+ topLeft: 'topLeft',
24
+ topCenter: 'topCenter',
25
+ topRight: 'topRight',
26
+ bottomLeft: 'bottomLeft',
27
+ bottomCenter: 'bottomCenter',
28
+ bottomRight: 'bottomRight'
29
+ });
30
+ exports.PLACEMENT = PLACEMENT;
31
+ var CLOSE_KIND = Object.freeze({
32
+ notCloseable: 'notCloseable',
33
+ closeable: 'closeable',
34
+ closeableWithButton: 'closeableWithButton'
35
+ });
36
+ exports.CLOSE_KIND = CLOSE_KIND;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import type { DialogProps } from './types';
3
+ declare const Dialog: ({ artwork, buttonDock, children, closeKind, handleClose, hasOverlay, heading, isOpen, overrides, placement, numHeadingLines, size, }: DialogProps) => JSX.Element;
4
+ export default Dialog;
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _index = require("../styles/index");
13
+
14
+ var _overrides = require("../helpers/overrides");
15
+
16
+ var _buttonDock = require("../button-dock");
17
+
18
+ var _button = require("../button");
19
+
20
+ var _icon = require("../icon");
21
+
22
+ var _styledComponents = require("./styled-components");
23
+
24
+ var _constants = require("./constants");
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
31
+
32
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
33
+
34
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
35
+
36
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
37
+
38
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
39
+
40
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
41
+
42
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
43
+
44
+ function renderArtwork(artwork) {
45
+ if ( /*#__PURE__*/(0, _react.isValidElement)(artwork)) {
46
+ return artwork;
47
+ } else if (typeof artwork === 'function') {
48
+ var ArtworkComponent = artwork;
49
+ return /*#__PURE__*/_react.default.createElement(ArtworkComponent, null);
50
+ }
51
+
52
+ return null;
53
+ }
54
+
55
+ var DefaultCloseButton = function DefaultCloseButton(props) {
56
+ var overrides = {
57
+ BaseButton: {
58
+ style: {
59
+ position: 'absolute',
60
+ top: '16px',
61
+ right: '8px',
62
+ // this will be tokenized in the future
63
+ backgroundColor: 'rgba(255, 255, 255, 0.6)',
64
+ zIndex: 1
65
+ }
66
+ }
67
+ };
68
+ return /*#__PURE__*/_react.default.createElement(_button.Button, _extends({
69
+ kind: _button.KIND.secondary,
70
+ shape: _button.SHAPE.circle,
71
+ overrides: overrides
72
+ }, props), /*#__PURE__*/_react.default.createElement(_icon.Delete, {
73
+ size: 36
74
+ }));
75
+ };
76
+
77
+ var DefaultButtonDock = function DefaultButtonDock(props) {
78
+ var _useStyletron = (0, _index.useStyletron)(),
79
+ _useStyletron2 = _slicedToArray(_useStyletron, 2),
80
+ theme = _useStyletron2[1];
81
+
82
+ var overrides = {
83
+ Root: {
84
+ style: {
85
+ paddingRight: theme.sizing.scale800,
86
+ paddingLeft: theme.sizing.scale800,
87
+ marginBottom: theme.sizing.scale800
88
+ }
89
+ }
90
+ };
91
+ return /*#__PURE__*/_react.default.createElement(_buttonDock.ButtonDock, _extends({
92
+ overrides: overrides
93
+ }, props));
94
+ };
95
+
96
+ var Dialog = function Dialog(_ref) {
97
+ var artwork = _ref.artwork,
98
+ buttonDock = _ref.buttonDock,
99
+ children = _ref.children,
100
+ _ref$closeKind = _ref.closeKind,
101
+ closeKind = _ref$closeKind === void 0 ? _constants.CLOSE_KIND.closeableWithButton : _ref$closeKind,
102
+ handleClose = _ref.handleClose,
103
+ _ref$hasOverlay = _ref.hasOverlay,
104
+ hasOverlay = _ref$hasOverlay === void 0 ? true : _ref$hasOverlay,
105
+ heading = _ref.heading,
106
+ isOpen = _ref.isOpen,
107
+ _ref$overrides = _ref.overrides,
108
+ overrides = _ref$overrides === void 0 ? {} : _ref$overrides,
109
+ _ref$placement = _ref.placement,
110
+ placement = _ref$placement === void 0 ? _constants.PLACEMENT.center : _ref$placement,
111
+ _ref$numHeadingLines = _ref.numHeadingLines,
112
+ numHeadingLines = _ref$numHeadingLines === void 0 ? 2 : _ref$numHeadingLines,
113
+ _ref$size = _ref.size,
114
+ size = _ref$size === void 0 ? _constants.SIZE.xSmall : _ref$size;
115
+
116
+ var _getOverrides = (0, _overrides.getOverrides)(overrides.Root, _styledComponents.StyledRoot),
117
+ _getOverrides2 = _slicedToArray(_getOverrides, 2),
118
+ Root = _getOverrides2[0],
119
+ rootProps = _getOverrides2[1];
120
+
121
+ var _getOverrides3 = (0, _overrides.getOverrides)(overrides.ScrollContainer, _styledComponents.StyledScrollContainer),
122
+ _getOverrides4 = _slicedToArray(_getOverrides3, 2),
123
+ ScrollContainer = _getOverrides4[0],
124
+ scrollContainerProps = _getOverrides4[1];
125
+
126
+ var _getOverrides5 = (0, _overrides.getOverrides)(overrides.Heading, _styledComponents.StyledHeading),
127
+ _getOverrides6 = _slicedToArray(_getOverrides5, 2),
128
+ Heading = _getOverrides6[0],
129
+ headingProps = _getOverrides6[1];
130
+
131
+ var _getOverrides7 = (0, _overrides.getOverrides)(overrides.Body, _styledComponents.StyledBody),
132
+ _getOverrides8 = _slicedToArray(_getOverrides7, 2),
133
+ Body = _getOverrides8[0],
134
+ bodyProps = _getOverrides8[1];
135
+
136
+ var _getOverrides9 = (0, _overrides.getOverrides)(overrides.ButtonDock, DefaultButtonDock),
137
+ _getOverrides10 = _slicedToArray(_getOverrides9, 2),
138
+ ButtonDock = _getOverrides10[0],
139
+ buttonDockProps = _getOverrides10[1];
140
+
141
+ var _getOverrides11 = (0, _overrides.getOverrides)(overrides.CloseButton, DefaultCloseButton),
142
+ _getOverrides12 = _slicedToArray(_getOverrides11, 2),
143
+ CloseButton = _getOverrides12[0],
144
+ closeButtonProps = _getOverrides12[1];
145
+
146
+ var dialogRef = _react.default.useRef(null);
147
+
148
+ _react.default.useEffect(function () {
149
+ if (isOpen) {
150
+ if (hasOverlay) {
151
+ dialogRef.current.showModal();
152
+ } else {
153
+ dialogRef.current.show();
154
+ }
155
+ } else {
156
+ dialogRef.current.close();
157
+ }
158
+ }, [isOpen, hasOverlay]);
159
+
160
+ function handleOutsideClick(e) {
161
+ if (!dialogRef.current.contains(e.target) || e.target.nodeName === 'DIALOG') {
162
+ handleClose();
163
+ }
164
+ }
165
+
166
+ function handleEscapeKey(e) {
167
+ if (e.key === 'Escape') {
168
+ handleClose();
169
+ }
170
+ }
171
+
172
+ _react.default.useEffect(function () {
173
+ if (isOpen) {
174
+ // No delay, just pushing it to the end of the call stack so that the
175
+ // Dialog doesn't close immediately after opening via click event
176
+ var timer = setTimeout(function () {
177
+ document.addEventListener('click', handleOutsideClick);
178
+ }, 0);
179
+ document.addEventListener('keydown', handleEscapeKey);
180
+ return function () {
181
+ clearTimeout(timer);
182
+ document.removeEventListener('click', handleOutsideClick);
183
+ document.removeEventListener('keydown', handleEscapeKey);
184
+ };
185
+ } else {
186
+ document.removeEventListener('click', handleOutsideClick);
187
+ document.removeEventListener('keydown', handleEscapeKey);
188
+ }
189
+ }, [isOpen]);
190
+
191
+ return /*#__PURE__*/_react.default.createElement(Root, _extends({
192
+ ref: dialogRef,
193
+ $isOpen: isOpen,
194
+ $size: size,
195
+ $placement: placement
196
+ }, rootProps), closeKind === _constants.CLOSE_KIND.closeableWithButton && /*#__PURE__*/_react.default.createElement(CloseButton, _extends({
197
+ onClick: function onClick() {
198
+ return handleClose();
199
+ }
200
+ }, closeButtonProps)), /*#__PURE__*/_react.default.createElement(ScrollContainer, _extends({}, scrollContainerProps, {
201
+ tabIndex: 0
202
+ }), renderArtwork(artwork), /*#__PURE__*/_react.default.createElement(Heading, _extends({
203
+ $numHeadingLines: numHeadingLines
204
+ }, headingProps), heading), /*#__PURE__*/_react.default.createElement(Body, bodyProps, children)), buttonDock && /*#__PURE__*/_react.default.createElement(ButtonDock, _extends({}, buttonDock, buttonDockProps)));
205
+ };
206
+
207
+ var _default = Dialog;
208
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ export { default as Dialog } from './dialog';
2
+ export * from './constants';
3
+ export * from './styled-components';
4
+ export * from './types';
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ Dialog: true
8
+ };
9
+ Object.defineProperty(exports, "Dialog", {
10
+ enumerable: true,
11
+ get: function get() {
12
+ return _dialog.default;
13
+ }
14
+ });
15
+
16
+ var _dialog = _interopRequireDefault(require("./dialog"));
17
+
18
+ var _constants = require("./constants");
19
+
20
+ Object.keys(_constants).forEach(function (key) {
21
+ if (key === "default" || key === "__esModule") return;
22
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
23
+ if (key in exports && exports[key] === _constants[key]) return;
24
+ Object.defineProperty(exports, key, {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _constants[key];
28
+ }
29
+ });
30
+ });
31
+
32
+ var _styledComponents = require("./styled-components");
33
+
34
+ Object.keys(_styledComponents).forEach(function (key) {
35
+ if (key === "default" || key === "__esModule") return;
36
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
37
+ if (key in exports && exports[key] === _styledComponents[key]) return;
38
+ Object.defineProperty(exports, key, {
39
+ enumerable: true,
40
+ get: function get() {
41
+ return _styledComponents[key];
42
+ }
43
+ });
44
+ });
45
+
46
+ var _types = require("./types");
47
+
48
+ Object.keys(_types).forEach(function (key) {
49
+ if (key === "default" || key === "__esModule") return;
50
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
51
+ if (key in exports && exports[key] === _types[key]) return;
52
+ Object.defineProperty(exports, key, {
53
+ enumerable: true,
54
+ get: function get() {
55
+ return _types[key];
56
+ }
57
+ });
58
+ });
59
+
60
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,82 @@
1
+ /*
2
+ Copyright (c) Uber Technologies, Inc.
3
+
4
+ This source code is licensed under the MIT license found in the
5
+ LICENSE file in the root directory of this source tree.
6
+ */
7
+ // @flow
8
+ import * as React from 'react';
9
+ import type { OverrideT } from '../helpers/overrides.js';
10
+ import type { ButtonDockPropsT } from '../button-dock';
11
+ import { type StyletronComponent } from 'styletron-react';
12
+
13
+ declare export var SIZE: {
14
+ xSmall: 'xSmall',
15
+ small: 'small',
16
+ medium: 'medium',
17
+ large: 'large',
18
+ };
19
+
20
+ declare export var PLACEMENT: {
21
+ center: 'center',
22
+ topLeft: 'topLeft',
23
+ topCenter: 'topCenter',
24
+ topRight: 'topRight',
25
+ bottomLeft: 'bottomLeft',
26
+ bottomCenter: 'bottomCenter',
27
+ bottomRight: 'bottomRight',
28
+ };
29
+
30
+ declare export var CLOSE_KIND: {
31
+ notCloseable: 'notCloseable',
32
+ closeable: 'closeable',
33
+ closeableWithButton: 'closeableWithButton',
34
+ };
35
+
36
+ export type DialogOverridesT = {
37
+ Root?: OverrideT,
38
+ ScrollContainer?: OverrideT,
39
+ Heading?: OverrideT,
40
+ Body?: OverrideT,
41
+ ButtonDock?: OverrideT,
42
+ CloseButton?: OverrideT,
43
+ };
44
+
45
+ export type SizeT = $Values<typeof SIZE>;
46
+ export type PlacementT = $Values<typeof PLACEMENT>;
47
+ export type CloseKindT = $Values<typeof CLOSE_KIND>;
48
+ //flowlint-next-line unclear-type:off
49
+ export type ArtworkT = React.Element<any> | React.ComponentType<{}>;
50
+
51
+ export type DialogPropsT = {
52
+ artwork?: ArtworkT,
53
+ buttonDock?: ButtonDockPropsT,
54
+ children?: React.Node,
55
+ closeKind?: CloseKindT,
56
+ handleClose?: () => void,
57
+ hasOverlay?: boolean,
58
+ heading: string,
59
+ isOpen: boolean,
60
+ numHeadingLines?: number,
61
+ overrides?: DialogOverridesT,
62
+ placement?: PlacementT,
63
+ size?: SizeT,
64
+ };
65
+
66
+ declare export var StyledRoot: StyletronComponent<
67
+ 'dialog',
68
+ {
69
+ $size: SizeT,
70
+ $placement: PlacementT,
71
+ $isOpen: boolean,
72
+ }
73
+ >;
74
+ declare export var StyledScrollContainer: StyletronComponent<'div', {}>;
75
+ declare export var StyledHeading: StyletronComponent<'div', { $numHeadingLines: number }>;
76
+ declare export var StyledBody: StyletronComponent<'div', {}>;
77
+
78
+ declare export var Dialog: React.ComponentType<DialogPropsT>;
79
+
80
+ declare var __DEV__: boolean;
81
+ declare var __NODE__: boolean;
82
+ declare var __BROWSER__: boolean;
@@ -0,0 +1,4 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../esm/dialog/index.js"
4
+ }
@@ -0,0 +1,11 @@
1
+ import type { Size, Placement } from './types';
2
+ export declare const StyledRoot: import("styletron-react").StyletronComponent<"dialog", {
3
+ $size: Size;
4
+ $placement: Placement;
5
+ $isOpen: boolean;
6
+ }>;
7
+ export declare const StyledScrollContainer: import("styletron-react").StyletronComponent<"div", {}>;
8
+ export declare const StyledHeading: import("styletron-react").StyletronComponent<"div", {
9
+ $numHeadingLines: number;
10
+ }>;
11
+ export declare const StyledBody: import("styletron-react").StyletronComponent<"div", {}>;
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledScrollContainer = exports.StyledRoot = exports.StyledHeading = exports.StyledBody = void 0;
7
+
8
+ var _styles = require("../styles");
9
+
10
+ var _constants = require("./constants");
11
+
12
+ var _DIALOG_WIDTHS;
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+
18
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
+
20
+ var getPlacementStyles = function getPlacementStyles(placement, gutter) {
21
+ var defaultStyles = {
22
+ top: 'auto',
23
+ right: 'auto',
24
+ bottom: 'auto',
25
+ left: 'auto'
26
+ };
27
+
28
+ switch (placement) {
29
+ case _constants.PLACEMENT.topLeft:
30
+ return _objectSpread(_objectSpread({}, defaultStyles), {}, {
31
+ top: gutter,
32
+ left: gutter
33
+ });
34
+
35
+ case _constants.PLACEMENT.topCenter:
36
+ return _objectSpread(_objectSpread({}, defaultStyles), {}, {
37
+ top: gutter,
38
+ left: '50%',
39
+ transform: 'translateX(-50%)'
40
+ });
41
+
42
+ case _constants.PLACEMENT.topRight:
43
+ return _objectSpread(_objectSpread({}, defaultStyles), {}, {
44
+ top: gutter,
45
+ right: gutter
46
+ });
47
+
48
+ case _constants.PLACEMENT.bottomLeft:
49
+ return _objectSpread(_objectSpread({}, defaultStyles), {}, {
50
+ bottom: gutter,
51
+ left: gutter
52
+ });
53
+
54
+ case _constants.PLACEMENT.bottomCenter:
55
+ return _objectSpread(_objectSpread({}, defaultStyles), {}, {
56
+ bottom: gutter,
57
+ left: '50%',
58
+ transform: 'translateX(-50%)'
59
+ });
60
+
61
+ case _constants.PLACEMENT.bottomRight:
62
+ return _objectSpread(_objectSpread({}, defaultStyles), {}, {
63
+ bottom: gutter,
64
+ right: gutter
65
+ });
66
+
67
+ case _constants.PLACEMENT.center:
68
+ return _objectSpread(_objectSpread({}, defaultStyles), {}, {
69
+ top: '50%',
70
+ left: '50%',
71
+ transform: 'translate(-50%, -50%)'
72
+ });
73
+
74
+ default:
75
+ return defaultStyles;
76
+ }
77
+ };
78
+
79
+ var DIALOG_WIDTHS = (_DIALOG_WIDTHS = {}, _defineProperty(_DIALOG_WIDTHS, _constants.SIZE.xSmall, '480px'), _defineProperty(_DIALOG_WIDTHS, _constants.SIZE.small, '640px'), _defineProperty(_DIALOG_WIDTHS, _constants.SIZE.medium, '800px'), _defineProperty(_DIALOG_WIDTHS, _constants.SIZE.large, '100%'), _DIALOG_WIDTHS);
80
+ var StyledRoot = (0, _styles.styled)('dialog', function (_ref) {
81
+ var $theme = _ref.$theme,
82
+ $size = _ref.$size,
83
+ _ref$$placement = _ref.$placement,
84
+ $placement = _ref$$placement === void 0 ? _constants.PLACEMENT.center : _ref$$placement,
85
+ $isOpen = _ref.$isOpen;
86
+ var narrowViewportGutter = '16px';
87
+ var wideViewportGutter = '40px';
88
+ return _objectSpread(_objectSpread({
89
+ position: 'fixed',
90
+ maxHeight: "calc(100vh - 2 * ".concat(wideViewportGutter, ")"),
91
+ maxWidth: "calc(100% - 2 * ".concat(wideViewportGutter, ")"),
92
+ borderRadius: $theme.borders.radius500,
93
+ boxShadow: $theme.lighting.shallowBelow,
94
+ overflow: 'hidden',
95
+ border: 'none',
96
+ width: DIALOG_WIDTHS[$size]
97
+ }, getPlacementStyles($placement, wideViewportGutter)), {}, {
98
+ '@media (max-width: 599px)': _objectSpread({
99
+ width: "calc(100% - 2 * ".concat(narrowViewportGutter, ")")
100
+ }, getPlacementStyles(_constants.PLACEMENT.bottomCenter, narrowViewportGutter)),
101
+ '::backdrop': {
102
+ backgroundColor: $theme.colors.backgroundOverlay
103
+ },
104
+ // Dialog style resets
105
+ marginTop: '0px',
106
+ marginRight: '0px',
107
+ marginBottom: '0px',
108
+ marginLeft: '0px',
109
+ paddingTop: '0px',
110
+ paddingRight: '0px',
111
+ paddingBottom: '0px',
112
+ paddingLeft: '0px'
113
+ }, $isOpen ? {
114
+ display: 'flex',
115
+ flexDirection: 'column',
116
+ alignItems: 'center'
117
+ } : {});
118
+ });
119
+ exports.StyledRoot = StyledRoot;
120
+ StyledRoot.displayName = "StyledRoot";
121
+ StyledRoot.displayName = 'StyledRoot';
122
+ var StyledScrollContainer = (0, _styles.styled)('div', function () {
123
+ return {
124
+ flex: 1,
125
+ overflowY: 'auto',
126
+ position: 'relative',
127
+ width: '100%'
128
+ };
129
+ });
130
+ exports.StyledScrollContainer = StyledScrollContainer;
131
+ StyledScrollContainer.displayName = "StyledScrollContainer";
132
+
133
+ function getLineWrapStyle(numHeadingLines) {
134
+ if (numHeadingLines === 1) {
135
+ return {
136
+ overflow: 'hidden',
137
+ whiteSpace: 'nowrap',
138
+ textOverflow: 'ellipsis'
139
+ };
140
+ }
141
+
142
+ return {
143
+ overflow: 'hidden',
144
+ display: '-webkit-box',
145
+ WebkitLineClamp: "".concat(numHeadingLines),
146
+ WebkitBoxOrient: 'vertical'
147
+ };
148
+ }
149
+
150
+ var StyledHeading = (0, _styles.styled)('div', // @ts-ignore-next-line - TODO: StyledObject does not support whiteSpace property?
151
+ function (_ref2) {
152
+ var $theme = _ref2.$theme,
153
+ _ref2$$numHeadingLine = _ref2.$numHeadingLines,
154
+ $numHeadingLines = _ref2$$numHeadingLine === void 0 ? 2 : _ref2$$numHeadingLine;
155
+ return _objectSpread(_objectSpread({
156
+ position: 'sticky',
157
+ top: 0,
158
+ paddingTop: $theme.sizing.scale800,
159
+ paddingLeft: $theme.sizing.scale800,
160
+ paddingRight: $theme.sizing.scale800,
161
+ '@media (max-width: 599px)': {
162
+ paddingLeft: $theme.sizing.scale600,
163
+ paddingRight: $theme.sizing.scale600
164
+ },
165
+ backgroundColor: $theme.colors.backgroundPrimary
166
+ }, getLineWrapStyle($numHeadingLines)), $theme.typography.HeadingMedium);
167
+ });
168
+ exports.StyledHeading = StyledHeading;
169
+ StyledHeading.displayName = "StyledHeading";
170
+ StyledHeading.displayName = 'StyledHeading';
171
+ var StyledBody = (0, _styles.styled)('div', function (_ref3) {
172
+ var $theme = _ref3.$theme;
173
+ return _objectSpread({
174
+ marginTop: $theme.sizing.scale300,
175
+ marginBottom: $theme.sizing.scale800,
176
+ paddingLeft: $theme.sizing.scale800,
177
+ paddingRight: $theme.sizing.scale800,
178
+ '@media (max-width: 599px)': {
179
+ paddingLeft: $theme.sizing.scale600,
180
+ paddingRight: $theme.sizing.scale600
181
+ }
182
+ }, $theme.typography.ParagraphLarge);
183
+ });
184
+ exports.StyledBody = StyledBody;
185
+ StyledBody.displayName = "StyledBody";
186
+ StyledBody.displayName = 'StyledBody';
@@ -0,0 +1,31 @@
1
+ import type * as React from 'react';
2
+ import type { ComponentType, ReactElement } from 'react';
3
+ import type { Override } from '../helpers/overrides';
4
+ import type { ButtonDockProps } from '../button-dock';
5
+ import type { SIZE, PLACEMENT, CLOSE_KIND } from './constants';
6
+ export type DialogOverrides = {
7
+ Root?: Override;
8
+ ScrollContainer?: Override;
9
+ Heading?: Override;
10
+ Body?: Override;
11
+ ButtonDock?: Override;
12
+ CloseButton?: Override;
13
+ };
14
+ export type Size = (typeof SIZE)[keyof typeof SIZE];
15
+ export type Placement = (typeof PLACEMENT)[keyof typeof PLACEMENT];
16
+ export type CloseKind = (typeof CLOSE_KIND)[keyof typeof CLOSE_KIND];
17
+ export type Artwork<P = {}> = ReactElement | ComponentType<P>;
18
+ export type DialogProps = {
19
+ artwork?: Artwork;
20
+ buttonDock?: ButtonDockProps;
21
+ children?: React.ReactNode | (() => React.ReactNode);
22
+ closeKind?: CloseKind;
23
+ handleClose?: () => void;
24
+ hasOverlay?: boolean;
25
+ heading: string;
26
+ isOpen: boolean;
27
+ numHeadingLines?: number;
28
+ overrides?: DialogOverrides;
29
+ placement?: Placement;
30
+ size?: Size;
31
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });