@zendeskgarden/react-modals 9.5.4 → 9.7.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.
@@ -8,7 +8,7 @@ import React__default, { useContext, useRef, useState, useEffect } from 'react';
8
8
  import PropTypes from 'prop-types';
9
9
  import { ThemeContext } from 'styled-components';
10
10
  import { CSSTransition } from 'react-transition-group';
11
- import { useFloating, platform, offset, autoPlacement, autoUpdate } from '@floating-ui/react-dom';
11
+ import { useFloating, platform, offset, autoPlacement, flip, autoUpdate } from '@floating-ui/react-dom';
12
12
  import { useModal } from '@zendeskgarden/container-modal';
13
13
  import { mergeRefs } from 'react-merge-refs';
14
14
  import { TooltipDialogContext } from '../../utils/useTooltipDialogContext.js';
@@ -34,6 +34,7 @@ import '../../styled/StyledDrawerClose.js';
34
34
  import '../../styled/StyledDrawerBody.js';
35
35
  import '../../styled/StyledDrawerFooter.js';
36
36
  import '../../styled/StyledDrawerFooterItem.js';
37
+ import { PLACEMENT } from '../../types/index.js';
37
38
  import { Title } from './Title.js';
38
39
  import { Body } from './Body.js';
39
40
  import { Close } from './Close.js';
@@ -48,6 +49,7 @@ const TooltipDialogComponent = React__default.forwardRef((_ref, ref) => {
48
49
  appendToNode,
49
50
  referenceElement,
50
51
  placement: _placement,
52
+ fallbackPlacements: _fallbackPlacements,
51
53
  offset: _offset,
52
54
  onClose,
53
55
  hasArrow,
@@ -78,7 +80,7 @@ const TooltipDialogComponent = React__default.forwardRef((_ref, ref) => {
78
80
  focusOnMount,
79
81
  restoreFocus: false
80
82
  });
81
- const [floatingPlacement] = getFloatingPlacements(theme, _placement === 'auto' ? PLACEMENT_DEFAULT : _placement);
83
+ const [floatingPlacement, fallbackPlacements] = getFloatingPlacements(theme, _placement === 'auto' ? PLACEMENT_DEFAULT : _placement, _fallbackPlacements);
82
84
  const {
83
85
  refs,
84
86
  placement,
@@ -96,7 +98,9 @@ const TooltipDialogComponent = React__default.forwardRef((_ref, ref) => {
96
98
  floating: floatingElement
97
99
  },
98
100
  placement: floatingPlacement,
99
- middleware: [offset(_offset === undefined ? theme.space.base * 3 : _offset), _placement === 'auto' ? autoPlacement() : undefined]
101
+ middleware: [offset(_offset === undefined ? theme.space.base * 3 : _offset), _placement === 'auto' ? autoPlacement() : flip({
102
+ fallbackPlacements
103
+ })]
100
104
  });
101
105
  useEffect(() => {
102
106
  let cleanup;
@@ -175,6 +179,7 @@ TooltipDialogComponent.propTypes = {
175
179
  appendToNode: PropTypes.any,
176
180
  referenceElement: PropTypes.any,
177
181
  placement: PropTypes.any,
182
+ fallbackPlacements: PropTypes.arrayOf(PropTypes.oneOf(PLACEMENT.filter(placement => placement !== 'auto'))),
178
183
  isAnimated: PropTypes.bool,
179
184
  hasArrow: PropTypes.bool,
180
185
  zIndex: PropTypes.number,
@@ -18,7 +18,7 @@ const animationStyles = props => {
18
18
  };
19
19
  const StyledBackdrop = styled.div.attrs({
20
20
  'data-garden-id': COMPONENT_ID,
21
- 'data-garden-version': '9.5.4'
21
+ 'data-garden-version': '9.7.0'
22
22
  }).withConfig({
23
23
  displayName: "StyledBackdrop",
24
24
  componentId: "sc-mzdjpo-0"
@@ -10,7 +10,7 @@ import { getLineHeight, getColor, componentStyles } from '@zendeskgarden/react-t
10
10
  const COMPONENT_ID = 'modals.body';
11
11
  const StyledBody = styled.div.attrs({
12
12
  'data-garden-id': COMPONENT_ID,
13
- 'data-garden-version': '9.5.4'
13
+ 'data-garden-version': '9.7.0'
14
14
  }).withConfig({
15
15
  displayName: "StyledBody",
16
16
  componentId: "sc-14rzecg-0"
@@ -16,7 +16,7 @@ const BASE_MULTIPLIERS = {
16
16
  };
17
17
  const StyledClose = styled(IconButton).attrs({
18
18
  'data-garden-id': COMPONENT_ID,
19
- 'data-garden-version': '9.5.4'
19
+ 'data-garden-version': '9.7.0'
20
20
  }).withConfig({
21
21
  displayName: "StyledClose",
22
22
  componentId: "sc-iseudj-0"
@@ -32,7 +32,7 @@ const colorStyles = _ref => {
32
32
  };
33
33
  const StyledDrawer = styled.div.attrs({
34
34
  'data-garden-id': COMPONENT_ID,
35
- 'data-garden-version': '9.5.4'
35
+ 'data-garden-version': '9.7.0'
36
36
  }).withConfig({
37
37
  displayName: "StyledDrawer",
38
38
  componentId: "sc-zp66t3-0"
@@ -11,7 +11,7 @@ import { StyledBody } from './StyledBody.js';
11
11
  const COMPONENT_ID = 'modals.drawer_modal.body';
12
12
  const StyledDrawerBody = styled(StyledBody).attrs({
13
13
  'data-garden-id': COMPONENT_ID,
14
- 'data-garden-version': '9.5.4'
14
+ 'data-garden-version': '9.7.0'
15
15
  }).withConfig({
16
16
  displayName: "StyledDrawerBody",
17
17
  componentId: "sc-13qufyn-0"
@@ -16,7 +16,7 @@ const BASE_MULTIPLIERS = {
16
16
  };
17
17
  const StyledDrawerClose = styled(StyledClose).attrs({
18
18
  'data-garden-id': COMPONENT_ID,
19
- 'data-garden-version': '9.5.4'
19
+ 'data-garden-version': '9.7.0'
20
20
  }).withConfig({
21
21
  displayName: "StyledDrawerClose",
22
22
  componentId: "sc-1a0xt3x-0"
@@ -10,7 +10,7 @@ import { getColor, componentStyles } from '@zendeskgarden/react-theming';
10
10
  const COMPONENT_ID = 'modals.drawer_modal.footer';
11
11
  const StyledDrawerFooter = styled.div.attrs({
12
12
  'data-garden-id': COMPONENT_ID,
13
- 'data-garden-version': '9.5.4'
13
+ 'data-garden-version': '9.7.0'
14
14
  }).withConfig({
15
15
  displayName: "StyledDrawerFooter",
16
16
  componentId: "sc-kc7e6p-0"
@@ -11,7 +11,7 @@ import { StyledFooterItem } from './StyledFooterItem.js';
11
11
  const COMPONENT_ID = 'modals.drawer_modal.footer_item';
12
12
  const StyledDrawerFooterItem = styled(StyledFooterItem).attrs({
13
13
  'data-garden-id': COMPONENT_ID,
14
- 'data-garden-version': '9.5.4'
14
+ 'data-garden-version': '9.7.0'
15
15
  }).withConfig({
16
16
  displayName: "StyledDrawerFooterItem",
17
17
  componentId: "sc-m2yul4-0"
@@ -12,7 +12,7 @@ import { BASE_MULTIPLIERS } from './StyledDrawerClose.js';
12
12
  const COMPONENT_ID = 'modals.drawer_modal.header';
13
13
  const StyledDrawerHeader = styled(StyledHeader).attrs({
14
14
  'data-garden-id': COMPONENT_ID,
15
- 'data-garden-version': '9.5.4'
15
+ 'data-garden-version': '9.7.0'
16
16
  }).withConfig({
17
17
  displayName: "StyledDrawerHeader",
18
18
  componentId: "sc-y4mgkj-0"
@@ -10,7 +10,7 @@ import { getColor, componentStyles } from '@zendeskgarden/react-theming';
10
10
  const COMPONENT_ID = 'modals.footer';
11
11
  const StyledFooter = styled.div.attrs({
12
12
  'data-garden-id': COMPONENT_ID,
13
- 'data-garden-version': '9.5.4'
13
+ 'data-garden-version': '9.7.0'
14
14
  }).withConfig({
15
15
  displayName: "StyledFooter",
16
16
  componentId: "sc-d8pfdu-0"
@@ -10,7 +10,7 @@ import { componentStyles } from '@zendeskgarden/react-theming';
10
10
  const COMPONENT_ID = 'modals.footer_item';
11
11
  const StyledFooterItem = styled.span.attrs({
12
12
  'data-garden-id': COMPONENT_ID,
13
- 'data-garden-version': '9.5.4'
13
+ 'data-garden-version': '9.7.0'
14
14
  }).withConfig({
15
15
  displayName: "StyledFooterItem",
16
16
  componentId: "sc-1mb76hl-0"
@@ -26,7 +26,7 @@ const colorStyles = _ref => {
26
26
  };
27
27
  const StyledHeader = styled.div.attrs({
28
28
  'data-garden-id': COMPONENT_ID,
29
- 'data-garden-version': '9.5.4'
29
+ 'data-garden-version': '9.7.0'
30
30
  }).withConfig({
31
31
  displayName: "StyledHeader",
32
32
  componentId: "sc-1787r9v-0"
@@ -42,7 +42,7 @@ const sizeStyles = props => {
42
42
  };
43
43
  const StyledModal = styled.div.attrs({
44
44
  'data-garden-id': COMPONENT_ID,
45
- 'data-garden-version': '9.5.4'
45
+ 'data-garden-version': '9.7.0'
46
46
  }).withConfig({
47
47
  displayName: "StyledModal",
48
48
  componentId: "sc-1pe1axu-0"
@@ -19,7 +19,7 @@ const sizeStyles = props => `
19
19
  `;
20
20
  const StyledTooltipDialog = styled.div.attrs(props => ({
21
21
  'data-garden-id': COMPONENT_ID,
22
- 'data-garden-version': '9.5.4',
22
+ 'data-garden-version': '9.7.0',
23
23
  className: props.$isAnimated ? 'is-animated' : undefined
24
24
  })).withConfig({
25
25
  displayName: "StyledTooltipDialog",
@@ -10,7 +10,7 @@ import { componentStyles } from '@zendeskgarden/react-theming';
10
10
  const COMPONENT_ID = 'modals.tooltip_dialog.backdrop';
11
11
  const StyledTooltipDialogBackdrop = styled.div.attrs({
12
12
  'data-garden-id': COMPONENT_ID,
13
- 'data-garden-version': '9.5.4'
13
+ 'data-garden-version': '9.7.0'
14
14
  }).withConfig({
15
15
  displayName: "StyledTooltipDialogBackdrop",
16
16
  componentId: "sc-zrk625-0"
@@ -10,7 +10,7 @@ import { getLineHeight, getColor, componentStyles } from '@zendeskgarden/react-t
10
10
  const COMPONENT_ID = 'modals.tooltip_dialog.body';
11
11
  const StyledTooltipDialogBody = styled.div.attrs({
12
12
  'data-garden-id': COMPONENT_ID,
13
- 'data-garden-version': '9.5.4'
13
+ 'data-garden-version': '9.7.0'
14
14
  }).withConfig({
15
15
  displayName: "StyledTooltipDialogBody",
16
16
  componentId: "sc-132lcoq-0"
@@ -11,7 +11,7 @@ import { StyledClose } from './StyledClose.js';
11
11
  const COMPONENT_ID = 'modals.tooltip_dialog.close';
12
12
  const StyledTooltipDialogClose = styled(StyledClose).attrs({
13
13
  'data-garden-id': COMPONENT_ID,
14
- 'data-garden-version': '9.5.4'
14
+ 'data-garden-version': '9.7.0'
15
15
  }).withConfig({
16
16
  displayName: "StyledTooltipDialogClose",
17
17
  componentId: "sc-18xlgfi-0"
@@ -10,7 +10,7 @@ import { componentStyles } from '@zendeskgarden/react-theming';
10
10
  const COMPONENT_ID = 'modals.tooltip_dialog.footer';
11
11
  const StyledTooltipDialogFooter = styled.div.attrs({
12
12
  'data-garden-id': COMPONENT_ID,
13
- 'data-garden-version': '9.5.4'
13
+ 'data-garden-version': '9.7.0'
14
14
  }).withConfig({
15
15
  displayName: "StyledTooltipDialogFooter",
16
16
  componentId: "sc-kjomsm-0"
@@ -11,7 +11,7 @@ import { StyledFooterItem } from './StyledFooterItem.js';
11
11
  const COMPONENT_ID = 'modals.tooltip_dialog.footer_item';
12
12
  const StyledTooltipDialogFooterItem = styled(StyledFooterItem).attrs({
13
13
  'data-garden-id': COMPONENT_ID,
14
- 'data-garden-version': '9.5.4'
14
+ 'data-garden-version': '9.7.0'
15
15
  }).withConfig({
16
16
  displayName: "StyledTooltipDialogFooterItem",
17
17
  componentId: "sc-u2rmo8-0"
@@ -15,7 +15,7 @@ const sizeStyles = props => `
15
15
  `;
16
16
  const StyledTooltipDialogTitle = styled.div.attrs({
17
17
  'data-garden-id': COMPONENT_ID,
18
- 'data-garden-version': '9.5.4'
18
+ 'data-garden-version': '9.7.0'
19
19
  }).withConfig({
20
20
  displayName: "StyledTooltipDialogTitle",
21
21
  componentId: "sc-1rceixg-0"
package/dist/index.cjs.js CHANGED
@@ -64,7 +64,7 @@ const animationStyles$1 = props => {
64
64
  };
65
65
  const StyledBackdrop = styled__default.default.div.attrs({
66
66
  'data-garden-id': COMPONENT_ID$j,
67
- 'data-garden-version': '9.5.4'
67
+ 'data-garden-version': '9.7.0'
68
68
  }).withConfig({
69
69
  displayName: "StyledBackdrop",
70
70
  componentId: "sc-mzdjpo-0"
@@ -92,7 +92,7 @@ StyledBackdrop.propTypes = {
92
92
  const COMPONENT_ID$i = 'modals.body';
93
93
  const StyledBody = styled__default.default.div.attrs({
94
94
  'data-garden-id': COMPONENT_ID$i,
95
- 'data-garden-version': '9.5.4'
95
+ 'data-garden-version': '9.7.0'
96
96
  }).withConfig({
97
97
  displayName: "StyledBody",
98
98
  componentId: "sc-14rzecg-0"
@@ -114,7 +114,7 @@ const BASE_MULTIPLIERS$1 = {
114
114
  };
115
115
  const StyledClose = styled__default.default(reactButtons.IconButton).attrs({
116
116
  'data-garden-id': COMPONENT_ID$h,
117
- 'data-garden-version': '9.5.4'
117
+ 'data-garden-version': '9.7.0'
118
118
  }).withConfig({
119
119
  displayName: "StyledClose",
120
120
  componentId: "sc-iseudj-0"
@@ -123,7 +123,7 @@ const StyledClose = styled__default.default(reactButtons.IconButton).attrs({
123
123
  const COMPONENT_ID$g = 'modals.footer';
124
124
  const StyledFooter = styled__default.default.div.attrs({
125
125
  'data-garden-id': COMPONENT_ID$g,
126
- 'data-garden-version': '9.5.4'
126
+ 'data-garden-version': '9.7.0'
127
127
  }).withConfig({
128
128
  displayName: "StyledFooter",
129
129
  componentId: "sc-d8pfdu-0"
@@ -135,7 +135,7 @@ const StyledFooter = styled__default.default.div.attrs({
135
135
  const COMPONENT_ID$f = 'modals.footer_item';
136
136
  const StyledFooterItem = styled__default.default.span.attrs({
137
137
  'data-garden-id': COMPONENT_ID$f,
138
- 'data-garden-version': '9.5.4'
138
+ 'data-garden-version': '9.7.0'
139
139
  }).withConfig({
140
140
  displayName: "StyledFooterItem",
141
141
  componentId: "sc-1mb76hl-0"
@@ -159,7 +159,7 @@ const colorStyles$2 = _ref => {
159
159
  };
160
160
  const StyledHeader = styled__default.default.div.attrs({
161
161
  'data-garden-id': COMPONENT_ID$e,
162
- 'data-garden-version': '9.5.4'
162
+ 'data-garden-version': '9.7.0'
163
163
  }).withConfig({
164
164
  displayName: "StyledHeader",
165
165
  componentId: "sc-1787r9v-0"
@@ -232,7 +232,7 @@ const sizeStyles$2 = props => {
232
232
  };
233
233
  const StyledModal = styled__default.default.div.attrs({
234
234
  'data-garden-id': COMPONENT_ID$d,
235
- 'data-garden-version': '9.5.4'
235
+ 'data-garden-version': '9.7.0'
236
236
  }).withConfig({
237
237
  displayName: "StyledModal",
238
238
  componentId: "sc-1pe1axu-0"
@@ -245,7 +245,7 @@ StyledModal.propTypes = {
245
245
  const COMPONENT_ID$c = 'modals.tooltip_dialog.backdrop';
246
246
  const StyledTooltipDialogBackdrop = styled__default.default.div.attrs({
247
247
  'data-garden-id': COMPONENT_ID$c,
248
- 'data-garden-version': '9.5.4'
248
+ 'data-garden-version': '9.7.0'
249
249
  }).withConfig({
250
250
  displayName: "StyledTooltipDialogBackdrop",
251
251
  componentId: "sc-zrk625-0"
@@ -266,7 +266,7 @@ const StyledTooltipWrapper = styled__default.default.div.attrs(props => ({
266
266
  const COMPONENT_ID$b = 'modals.tooltip_dialog.close';
267
267
  const StyledTooltipDialogClose = styled__default.default(StyledClose).attrs({
268
268
  'data-garden-id': COMPONENT_ID$b,
269
- 'data-garden-version': '9.5.4'
269
+ 'data-garden-version': '9.7.0'
270
270
  }).withConfig({
271
271
  displayName: "StyledTooltipDialogClose",
272
272
  componentId: "sc-18xlgfi-0"
@@ -283,7 +283,7 @@ const sizeStyles$1 = props => `
283
283
  `;
284
284
  const StyledTooltipDialog = styled__default.default.div.attrs(props => ({
285
285
  'data-garden-id': COMPONENT_ID$a,
286
- 'data-garden-version': '9.5.4',
286
+ 'data-garden-version': '9.7.0',
287
287
  className: props.$isAnimated ? 'is-animated' : undefined
288
288
  })).withConfig({
289
289
  displayName: "StyledTooltipDialog",
@@ -308,7 +308,7 @@ const sizeStyles = props => `
308
308
  `;
309
309
  const StyledTooltipDialogTitle = styled__default.default.div.attrs({
310
310
  'data-garden-id': COMPONENT_ID$9,
311
- 'data-garden-version': '9.5.4'
311
+ 'data-garden-version': '9.7.0'
312
312
  }).withConfig({
313
313
  displayName: "StyledTooltipDialogTitle",
314
314
  componentId: "sc-1rceixg-0"
@@ -325,7 +325,7 @@ const StyledTooltipDialogTitle = styled__default.default.div.attrs({
325
325
  const COMPONENT_ID$8 = 'modals.tooltip_dialog.body';
326
326
  const StyledTooltipDialogBody = styled__default.default.div.attrs({
327
327
  'data-garden-id': COMPONENT_ID$8,
328
- 'data-garden-version': '9.5.4'
328
+ 'data-garden-version': '9.7.0'
329
329
  }).withConfig({
330
330
  displayName: "StyledTooltipDialogBody",
331
331
  componentId: "sc-132lcoq-0"
@@ -342,7 +342,7 @@ const StyledTooltipDialogBody = styled__default.default.div.attrs({
342
342
  const COMPONENT_ID$7 = 'modals.tooltip_dialog.footer';
343
343
  const StyledTooltipDialogFooter = styled__default.default.div.attrs({
344
344
  'data-garden-id': COMPONENT_ID$7,
345
- 'data-garden-version': '9.5.4'
345
+ 'data-garden-version': '9.7.0'
346
346
  }).withConfig({
347
347
  displayName: "StyledTooltipDialogFooter",
348
348
  componentId: "sc-kjomsm-0"
@@ -351,7 +351,7 @@ const StyledTooltipDialogFooter = styled__default.default.div.attrs({
351
351
  const COMPONENT_ID$6 = 'modals.tooltip_dialog.footer_item';
352
352
  const StyledTooltipDialogFooterItem = styled__default.default(StyledFooterItem).attrs({
353
353
  'data-garden-id': COMPONENT_ID$6,
354
- 'data-garden-version': '9.5.4'
354
+ 'data-garden-version': '9.7.0'
355
355
  }).withConfig({
356
356
  displayName: "StyledTooltipDialogFooterItem",
357
357
  componentId: "sc-u2rmo8-0"
@@ -382,7 +382,7 @@ const colorStyles = _ref => {
382
382
  };
383
383
  const StyledDrawer = styled__default.default.div.attrs({
384
384
  'data-garden-id': COMPONENT_ID$5,
385
- 'data-garden-version': '9.5.4'
385
+ 'data-garden-version': '9.7.0'
386
386
  }).withConfig({
387
387
  displayName: "StyledDrawer",
388
388
  componentId: "sc-zp66t3-0"
@@ -396,7 +396,7 @@ const BASE_MULTIPLIERS = {
396
396
  };
397
397
  const StyledDrawerClose = styled__default.default(StyledClose).attrs({
398
398
  'data-garden-id': COMPONENT_ID$4,
399
- 'data-garden-version': '9.5.4'
399
+ 'data-garden-version': '9.7.0'
400
400
  }).withConfig({
401
401
  displayName: "StyledDrawerClose",
402
402
  componentId: "sc-1a0xt3x-0"
@@ -405,7 +405,7 @@ const StyledDrawerClose = styled__default.default(StyledClose).attrs({
405
405
  const COMPONENT_ID$3 = 'modals.drawer_modal.header';
406
406
  const StyledDrawerHeader = styled__default.default(StyledHeader).attrs({
407
407
  'data-garden-id': COMPONENT_ID$3,
408
- 'data-garden-version': '9.5.4'
408
+ 'data-garden-version': '9.7.0'
409
409
  }).withConfig({
410
410
  displayName: "StyledDrawerHeader",
411
411
  componentId: "sc-y4mgkj-0"
@@ -414,7 +414,7 @@ const StyledDrawerHeader = styled__default.default(StyledHeader).attrs({
414
414
  const COMPONENT_ID$2 = 'modals.drawer_modal.body';
415
415
  const StyledDrawerBody = styled__default.default(StyledBody).attrs({
416
416
  'data-garden-id': COMPONENT_ID$2,
417
- 'data-garden-version': '9.5.4'
417
+ 'data-garden-version': '9.7.0'
418
418
  }).withConfig({
419
419
  displayName: "StyledDrawerBody",
420
420
  componentId: "sc-13qufyn-0"
@@ -423,7 +423,7 @@ const StyledDrawerBody = styled__default.default(StyledBody).attrs({
423
423
  const COMPONENT_ID$1 = 'modals.drawer_modal.footer';
424
424
  const StyledDrawerFooter = styled__default.default.div.attrs({
425
425
  'data-garden-id': COMPONENT_ID$1,
426
- 'data-garden-version': '9.5.4'
426
+ 'data-garden-version': '9.7.0'
427
427
  }).withConfig({
428
428
  displayName: "StyledDrawerFooter",
429
429
  componentId: "sc-kc7e6p-0"
@@ -440,7 +440,7 @@ const StyledDrawerFooter = styled__default.default.div.attrs({
440
440
  const COMPONENT_ID = 'modals.drawer_modal.footer_item';
441
441
  const StyledDrawerFooterItem = styled__default.default(StyledFooterItem).attrs({
442
442
  'data-garden-id': COMPONENT_ID,
443
- 'data-garden-version': '9.5.4'
443
+ 'data-garden-version': '9.7.0'
444
444
  }).withConfig({
445
445
  displayName: "StyledDrawerFooterItem",
446
446
  componentId: "sc-m2yul4-0"
@@ -708,6 +708,8 @@ const useTooltipDialogContext = () => {
708
708
  return context;
709
709
  };
710
710
 
711
+ const PLACEMENT = ['auto', ...reactTheming.PLACEMENT];
712
+
711
713
  const TitleComponent = React.forwardRef((_ref, ref) => {
712
714
  let {
713
715
  children,
@@ -788,6 +790,7 @@ const TooltipDialogComponent = React__namespace.default.forwardRef((_ref, ref) =
788
790
  appendToNode,
789
791
  referenceElement,
790
792
  placement: _placement,
793
+ fallbackPlacements: _fallbackPlacements,
791
794
  offset: _offset,
792
795
  onClose,
793
796
  hasArrow,
@@ -818,7 +821,7 @@ const TooltipDialogComponent = React__namespace.default.forwardRef((_ref, ref) =
818
821
  focusOnMount,
819
822
  restoreFocus: false
820
823
  });
821
- const [floatingPlacement] = reactTheming.getFloatingPlacements(theme, _placement === 'auto' ? PLACEMENT_DEFAULT : _placement);
824
+ const [floatingPlacement, fallbackPlacements] = reactTheming.getFloatingPlacements(theme, _placement === 'auto' ? PLACEMENT_DEFAULT : _placement, _fallbackPlacements);
822
825
  const {
823
826
  refs,
824
827
  placement,
@@ -836,7 +839,9 @@ const TooltipDialogComponent = React__namespace.default.forwardRef((_ref, ref) =
836
839
  floating: floatingElement
837
840
  },
838
841
  placement: floatingPlacement,
839
- middleware: [reactDom.offset(_offset === undefined ? theme.space.base * 3 : _offset), _placement === 'auto' ? reactDom.autoPlacement() : undefined]
842
+ middleware: [reactDom.offset(_offset === undefined ? theme.space.base * 3 : _offset), _placement === 'auto' ? reactDom.autoPlacement() : reactDom.flip({
843
+ fallbackPlacements
844
+ })]
840
845
  });
841
846
  React.useEffect(() => {
842
847
  let cleanup;
@@ -915,6 +920,7 @@ TooltipDialogComponent.propTypes = {
915
920
  appendToNode: PropTypes__default.default.any,
916
921
  referenceElement: PropTypes__default.default.any,
917
922
  placement: PropTypes__default.default.any,
923
+ fallbackPlacements: PropTypes__default.default.arrayOf(PropTypes__default.default.oneOf(PLACEMENT.filter(placement => placement !== 'auto'))),
918
924
  isAnimated: PropTypes__default.default.bool,
919
925
  hasArrow: PropTypes__default.default.bool,
920
926
  zIndex: PropTypes__default.default.number,
@@ -1146,8 +1152,6 @@ Drawer.Footer = Footer;
1146
1152
  Drawer.FooterItem = FooterItem;
1147
1153
  Drawer.Header = Header;
1148
1154
 
1149
- const PLACEMENT = ['auto', ...reactTheming.PLACEMENT];
1150
-
1151
1155
  exports.Body = Body$2;
1152
1156
  exports.Close = Close$2;
1153
1157
  exports.Drawer = Drawer;
@@ -67,9 +67,13 @@ export interface IDrawerHeaderProps extends HTMLAttributes<HTMLDivElement> {
67
67
  }
68
68
  export interface ITooltipDialogProps extends Omit<IModalProps, 'isCentered' | 'isLarge'> {
69
69
  /**
70
- * Positions the modal relative to the provided `HTMLElement`
70
+ * Provides a list of acceptable fallback placements
71
71
  */
72
- referenceElement?: HTMLElement | null;
72
+ fallbackPlacements?: Exclude<Placement, 'auto'>[];
73
+ /**
74
+ * Adds an arrow to the tooltop
75
+ */
76
+ hasArrow?: boolean;
73
77
  /** @ignore Modifies the placement offset from the reference element (internal only) */
74
78
  offset?: number;
75
79
  /**
@@ -77,9 +81,9 @@ export interface ITooltipDialogProps extends Omit<IModalProps, 'isCentered' | 'i
77
81
  **/
78
82
  placement?: Placement;
79
83
  /**
80
- * Adds an arrow to the tooltop
84
+ * Positions the modal relative to the provided `HTMLElement`
81
85
  */
82
- hasArrow?: boolean;
86
+ referenceElement?: HTMLElement | null;
83
87
  /**
84
88
  * Sets the `z-index` of the tooltip
85
89
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zendeskgarden/react-modals",
3
- "version": "9.5.4",
3
+ "version": "9.7.0",
4
4
  "description": "Components relating to modals in the Garden Design System",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Zendesk Garden <garden@zendesk.com>",
@@ -24,7 +24,7 @@
24
24
  "@floating-ui/react-dom": "^2.0.0",
25
25
  "@zendeskgarden/container-modal": "^1.0.15",
26
26
  "@zendeskgarden/container-utilities": "^2.0.0",
27
- "@zendeskgarden/react-buttons": "^9.5.4",
27
+ "@zendeskgarden/react-buttons": "^9.7.0",
28
28
  "dom-helpers": "^5.1.0",
29
29
  "prop-types": "^15.5.7",
30
30
  "react-merge-refs": "^2.0.0",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/react-transition-group": "4.4.12",
41
- "@zendeskgarden/react-theming": "^9.5.4",
41
+ "@zendeskgarden/react-theming": "^9.7.0",
42
42
  "@zendeskgarden/svg-icons": "7.5.0"
43
43
  },
44
44
  "keywords": [
@@ -51,5 +51,5 @@
51
51
  "access": "public"
52
52
  },
53
53
  "zendeskgarden:src": "src/index.ts",
54
- "gitHead": "43590ac9f3753abfa143a867e2028e3cc3cd35af"
54
+ "gitHead": "565d21114d465d64f323a1960d8731f3bbcdefe5"
55
55
  }