@doist/reactist 29.1.0 → 29.1.2

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.
Files changed (227) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/reactist.cjs.development.js +6749 -1829
  3. package/dist/reactist.cjs.development.js.map +1 -1
  4. package/dist/reactist.cjs.production.min.js +1 -1
  5. package/dist/reactist.cjs.production.min.js.map +1 -1
  6. package/es/avatar/avatar.js +106 -36
  7. package/es/avatar/avatar.js.map +1 -1
  8. package/es/avatar/utils.js +17 -19
  9. package/es/avatar/utils.js.map +1 -1
  10. package/es/badge/badge.js +50 -6
  11. package/es/badge/badge.js.map +1 -1
  12. package/es/banner/banner.js +384 -41
  13. package/es/banner/banner.js.map +1 -1
  14. package/es/base-field/base-field.js +367 -77
  15. package/es/base-field/base-field.js.map +1 -1
  16. package/es/box/box.js +139 -61
  17. package/es/box/box.js.map +1 -1
  18. package/es/button/button.js +346 -36
  19. package/es/button/button.js.map +1 -1
  20. package/es/checkbox-field/checkbox-field.js +71 -48
  21. package/es/checkbox-field/checkbox-field.js.map +1 -1
  22. package/es/checkbox-field/checkbox-icon.js +88 -28
  23. package/es/checkbox-field/checkbox-icon.js.map +1 -1
  24. package/es/checkbox-field/use-fork-ref.js +15 -20
  25. package/es/checkbox-field/use-fork-ref.js.map +1 -1
  26. package/es/columns/columns.js +46 -23
  27. package/es/columns/columns.js.map +1 -1
  28. package/es/components/color-picker/color-picker.js +190 -46
  29. package/es/components/color-picker/color-picker.js.map +1 -1
  30. package/es/components/deprecated-button/deprecated-button.js +102 -9
  31. package/es/components/deprecated-button/deprecated-button.js.map +1 -1
  32. package/es/components/deprecated-button/index.js +5 -2
  33. package/es/components/deprecated-button/index.js.map +1 -1
  34. package/es/components/deprecated-dropdown/dropdown.js +234 -134
  35. package/es/components/deprecated-dropdown/dropdown.js.map +1 -1
  36. package/es/components/deprecated-dropdown/index.js +4 -1
  37. package/es/components/deprecated-dropdown/index.js.map +1 -1
  38. package/es/components/deprecated-input/index.js +5 -2
  39. package/es/components/deprecated-input/index.js.map +1 -1
  40. package/es/components/deprecated-input/input.js +27 -4
  41. package/es/components/deprecated-input/input.js.map +1 -1
  42. package/es/components/deprecated-select/select.js +110 -7
  43. package/es/components/deprecated-select/select.js.map +1 -1
  44. package/es/components/key-capturer/key-capturer.js +190 -137
  45. package/es/components/key-capturer/key-capturer.js.map +1 -1
  46. package/es/components/keyboard-shortcut/keyboard-shortcut.js +65 -45
  47. package/es/components/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  48. package/es/components/progress-bar/progress-bar.js +61 -9
  49. package/es/components/progress-bar/progress-bar.js.map +1 -1
  50. package/es/components/time/index.js +5 -2
  51. package/es/components/time/index.js.map +1 -1
  52. package/es/components/time/time-utils.js +59 -53
  53. package/es/components/time/time-utils.js.map +1 -1
  54. package/es/components/time/time.js +94 -91
  55. package/es/components/time/time.js.map +1 -1
  56. package/es/divider/divider.js +44 -5
  57. package/es/divider/divider.js.map +1 -1
  58. package/es/heading/heading.js +122 -20
  59. package/es/heading/heading.js.map +1 -1
  60. package/es/hidden/hidden.js +36 -30
  61. package/es/hidden/hidden.js.map +1 -1
  62. package/es/hidden-visually/hidden-visually.js +9 -4
  63. package/es/hidden-visually/hidden-visually.js.map +1 -1
  64. package/es/icons/alert-icon.js +145 -18
  65. package/es/icons/alert-icon.js.map +1 -1
  66. package/es/icons/banner-icon.js +213 -25
  67. package/es/icons/banner-icon.js.map +1 -1
  68. package/es/icons/close-icon.js +26 -3
  69. package/es/icons/close-icon.js.map +1 -1
  70. package/es/icons/password-hidden-icon.js +40 -6
  71. package/es/icons/password-hidden-icon.js.map +1 -1
  72. package/es/icons/password-visible-icon.js +33 -5
  73. package/es/icons/password-visible-icon.js.map +1 -1
  74. package/es/index.js +9 -9
  75. package/es/inline/inline.js +24 -9
  76. package/es/inline/inline.js.map +1 -1
  77. package/es/loading/loading.js +63 -17
  78. package/es/loading/loading.js.map +1 -1
  79. package/es/menu/menu.js +469 -92
  80. package/es/menu/menu.js.map +1 -1
  81. package/es/modal/modal.js +675 -112
  82. package/es/modal/modal.js.map +1 -1
  83. package/es/notice/notice.js +77 -10
  84. package/es/notice/notice.js.map +1 -1
  85. package/es/password-field/password-field.js +89 -11
  86. package/es/password-field/password-field.js.map +1 -1
  87. package/es/prose/prose.js +48 -9
  88. package/es/prose/prose.js.map +1 -1
  89. package/es/select-field/select-field.js +150 -16
  90. package/es/select-field/select-field.js.map +1 -1
  91. package/es/spinner/spinner.js +39 -6
  92. package/es/spinner/spinner.js.map +1 -1
  93. package/es/stack/stack.js +29 -17
  94. package/es/stack/stack.js.map +1 -1
  95. package/es/switch-field/switch-field.js +225 -42
  96. package/es/switch-field/switch-field.js.map +1 -1
  97. package/es/tabs/tabs.js +207 -109
  98. package/es/tabs/tabs.js.map +1 -1
  99. package/es/text/text.js +27 -17
  100. package/es/text/text.js.map +1 -1
  101. package/es/text-area/text-area.js +264 -54
  102. package/es/text-area/text-area.js.map +1 -1
  103. package/es/text-field/text-field.js +204 -31
  104. package/es/text-field/text-field.js.map +1 -1
  105. package/es/text-link/text-link.js +21 -10
  106. package/es/text-link/text-link.js.map +1 -1
  107. package/es/toast/static-toast.js +143 -25
  108. package/es/toast/static-toast.js.map +1 -1
  109. package/es/toast/toast-animation.js +159 -109
  110. package/es/toast/toast-animation.js.map +1 -1
  111. package/es/toast/use-toasts.js +309 -84
  112. package/es/toast/use-toasts.js.map +1 -1
  113. package/es/tooltip/tooltip.js +88 -32
  114. package/es/tooltip/tooltip.js.map +1 -1
  115. package/es/utils/common-helpers.js +12 -11
  116. package/es/utils/common-helpers.js.map +1 -1
  117. package/es/utils/polymorphism.js +84 -1
  118. package/es/utils/polymorphism.js.map +1 -1
  119. package/es/utils/responsive-props.js +43 -32
  120. package/es/utils/responsive-props.js.map +1 -1
  121. package/lib/avatar/avatar.js +109 -35
  122. package/lib/avatar/avatar.js.map +1 -1
  123. package/lib/avatar/utils.js +17 -19
  124. package/lib/avatar/utils.js.map +1 -1
  125. package/lib/badge/badge.js +53 -5
  126. package/lib/badge/badge.js.map +1 -1
  127. package/lib/banner/banner.js +385 -38
  128. package/lib/banner/banner.js.map +1 -1
  129. package/lib/base-field/base-field.js +366 -73
  130. package/lib/base-field/base-field.js.map +1 -1
  131. package/lib/box/box.js +141 -61
  132. package/lib/box/box.js.map +1 -1
  133. package/lib/button/button.js +347 -35
  134. package/lib/button/button.js.map +1 -1
  135. package/lib/checkbox-field/checkbox-field.js +73 -46
  136. package/lib/checkbox-field/checkbox-field.js.map +1 -1
  137. package/lib/checkbox-field/checkbox-icon.js +92 -28
  138. package/lib/checkbox-field/checkbox-icon.js.map +1 -1
  139. package/lib/checkbox-field/use-fork-ref.js +15 -20
  140. package/lib/checkbox-field/use-fork-ref.js.map +1 -1
  141. package/lib/columns/columns.js +49 -22
  142. package/lib/columns/columns.js.map +1 -1
  143. package/lib/components/color-picker/color-picker.js +189 -45
  144. package/lib/components/color-picker/color-picker.js.map +1 -1
  145. package/lib/components/deprecated-button/deprecated-button.js +104 -9
  146. package/lib/components/deprecated-button/deprecated-button.js.map +1 -1
  147. package/lib/components/deprecated-dropdown/dropdown.js +235 -133
  148. package/lib/components/deprecated-dropdown/dropdown.js.map +1 -1
  149. package/lib/components/deprecated-input/input.js +28 -4
  150. package/lib/components/deprecated-input/input.js.map +1 -1
  151. package/lib/components/deprecated-select/select.js +112 -7
  152. package/lib/components/deprecated-select/select.js.map +1 -1
  153. package/lib/components/key-capturer/key-capturer.js +188 -135
  154. package/lib/components/key-capturer/key-capturer.js.map +1 -1
  155. package/lib/components/keyboard-shortcut/keyboard-shortcut.js +67 -45
  156. package/lib/components/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  157. package/lib/components/progress-bar/progress-bar.js +60 -8
  158. package/lib/components/progress-bar/progress-bar.js.map +1 -1
  159. package/lib/components/time/time-utils.js +59 -53
  160. package/lib/components/time/time-utils.js.map +1 -1
  161. package/lib/components/time/time.js +93 -90
  162. package/lib/components/time/time.js.map +1 -1
  163. package/lib/divider/divider.js +47 -4
  164. package/lib/divider/divider.js.map +1 -1
  165. package/lib/heading/heading.js +125 -19
  166. package/lib/heading/heading.js.map +1 -1
  167. package/lib/hidden/hidden.js +39 -29
  168. package/lib/hidden/hidden.js.map +1 -1
  169. package/lib/hidden-visually/hidden-visually.js +11 -3
  170. package/lib/hidden-visually/hidden-visually.js.map +1 -1
  171. package/lib/icons/alert-icon.js +149 -18
  172. package/lib/icons/alert-icon.js.map +1 -1
  173. package/lib/icons/banner-icon.js +217 -25
  174. package/lib/icons/banner-icon.js.map +1 -1
  175. package/lib/icons/close-icon.js +29 -3
  176. package/lib/icons/close-icon.js.map +1 -1
  177. package/lib/icons/password-hidden-icon.js +43 -6
  178. package/lib/icons/password-hidden-icon.js.map +1 -1
  179. package/lib/icons/password-visible-icon.js +36 -5
  180. package/lib/icons/password-visible-icon.js.map +1 -1
  181. package/lib/inline/inline.js +27 -8
  182. package/lib/inline/inline.js.map +1 -1
  183. package/lib/loading/loading.js +67 -17
  184. package/lib/loading/loading.js.map +1 -1
  185. package/lib/menu/menu.js +471 -91
  186. package/lib/menu/menu.js.map +1 -1
  187. package/lib/modal/modal.js +671 -106
  188. package/lib/modal/modal.js.map +1 -1
  189. package/lib/notice/notice.js +75 -8
  190. package/lib/notice/notice.js.map +1 -1
  191. package/lib/password-field/password-field.js +92 -10
  192. package/lib/password-field/password-field.js.map +1 -1
  193. package/lib/prose/prose.js +51 -8
  194. package/lib/prose/prose.js.map +1 -1
  195. package/lib/select-field/select-field.js +152 -14
  196. package/lib/select-field/select-field.js.map +1 -1
  197. package/lib/spinner/spinner.js +39 -6
  198. package/lib/spinner/spinner.js.map +1 -1
  199. package/lib/stack/stack.js +29 -15
  200. package/lib/stack/stack.js.map +1 -1
  201. package/lib/switch-field/switch-field.js +225 -38
  202. package/lib/switch-field/switch-field.js.map +1 -1
  203. package/lib/tabs/tabs.js +207 -107
  204. package/lib/tabs/tabs.js.map +1 -1
  205. package/lib/text/text.js +30 -16
  206. package/lib/text/text.js.map +1 -1
  207. package/lib/text-area/text-area.js +264 -52
  208. package/lib/text-area/text-area.js.map +1 -1
  209. package/lib/text-field/text-field.js +207 -30
  210. package/lib/text-field/text-field.js.map +1 -1
  211. package/lib/text-link/text-link.js +24 -9
  212. package/lib/text-link/text-link.js.map +1 -1
  213. package/lib/toast/static-toast.js +142 -22
  214. package/lib/toast/static-toast.js.map +1 -1
  215. package/lib/toast/toast-animation.js +158 -108
  216. package/lib/toast/toast-animation.js.map +1 -1
  217. package/lib/toast/use-toasts.js +310 -82
  218. package/lib/toast/use-toasts.js.map +1 -1
  219. package/lib/tooltip/tooltip.js +87 -31
  220. package/lib/tooltip/tooltip.js.map +1 -1
  221. package/lib/utils/common-helpers.js +12 -11
  222. package/lib/utils/common-helpers.js.map +1 -1
  223. package/lib/utils/polymorphism.js +84 -1
  224. package/lib/utils/polymorphism.js.map +1 -1
  225. package/lib/utils/responsive-props.js +43 -32
  226. package/lib/utils/responsive-props.js.map +1 -1
  227. package/package.json +10 -2
package/es/modal/modal.js CHANGED
@@ -1,26 +1,44 @@
1
- import { __rest, __assign } from 'tslib';
1
+ import _extends from '@babel/runtime/helpers/extends';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { c } from 'react-compiler-runtime';
2
4
  import * as React from 'react';
3
5
  import { forwardRef } from 'react';
4
6
  import FocusLock from 'react-focus-lock';
5
- import { useDialogStore, Portal, Dialog } from '@ariakit/react';
7
+ import { useDialogStore, Dialog, Portal } from '@ariakit/react';
6
8
  import { hideOthers } from 'aria-hidden';
7
9
  import classNames from 'classnames';
8
- import { Box } from '../box/box.js';
9
- import { IconButton } from '../button/button.js';
10
- import { Columns, Column } from '../columns/columns.js';
11
- import { Divider } from '../divider/divider.js';
12
10
  import { CloseIcon } from '../icons/close-icon.js';
13
- import { Inline } from '../inline/inline.js';
14
11
  import modules_8f59d13b from './modal.module.css.js';
12
+ import { Inline } from '../inline/inline.js';
13
+ import { IconButton } from '../button/button.js';
14
+ import { Box } from '../box/box.js';
15
+ import { Column, Columns } from '../columns/columns.js';
16
+ import { Divider } from '../divider/divider.js';
17
+
18
+ const _excluded = ["isOpen", "onDismiss", "height", "dividers", "width", "exceptionallySetClassName", "exceptionallySetOverlayClassName", "autoFocus", "hideOnEscape", "hideOnInteractOutside", "children", "portalElement", "onKeyDown", "className"],
19
+ _excluded2 = ["children", "button", "withDivider", "exceptionallySetClassName"],
20
+ _excluded3 = ["exceptionallySetClassName", "children"],
21
+ _excluded4 = ["exceptionallySetClassName", "withDivider"],
22
+ _excluded5 = ["children"];
15
23
 
16
- var ModalContext = React.createContext({
17
- onDismiss: undefined,
18
- height: 'fitContent',
19
- dividers: undefined,
24
+ //
25
+ // ModalContext
26
+ //
27
+
28
+ const ModalContext = /*#__PURE__*/React.createContext({
29
+ onDismiss: undefined,
30
+ height: 'fitContent',
31
+ dividers: undefined
20
32
  });
33
+
34
+ //
35
+ // Modal container
36
+ //
37
+
21
38
  function isNotInternalFrame(element) {
22
- return !(element.ownerDocument === document && element.tagName.toLowerCase() === 'iframe');
39
+ return !(element.ownerDocument === document && element.tagName.toLowerCase() === 'iframe');
23
40
  }
41
+
24
42
  /**
25
43
  * Renders a modal that sits on top of the rest of the content in the entire page.
26
44
  *
@@ -30,67 +48,314 @@ function isNotInternalFrame(element) {
30
48
  * @see ModalFooter
31
49
  * @see ModalBody
32
50
  */
33
- function Modal(_a) {
34
- var isOpen = _a.isOpen, onDismiss = _a.onDismiss, _b = _a.height, height = _b === void 0 ? 'fitContent' : _b, dividers = _a.dividers, _c = _a.width, width = _c === void 0 ? 'medium' : _c, exceptionallySetClassName = _a.exceptionallySetClassName, exceptionallySetOverlayClassName = _a.exceptionallySetOverlayClassName, _d = _a.autoFocus, autoFocus = _d === void 0 ? true : _d, _e = _a.hideOnEscape, hideOnEscape = _e === void 0 ? true : _e, _f = _a.hideOnInteractOutside, hideOnInteractOutside = _f === void 0 ? true : _f, children = _a.children, portalElement = _a.portalElement, onKeyDown = _a.onKeyDown;
35
- // @ts-expect-error we want to make sure to not pass it to the Dialog component
36
- _a.className; var props = __rest(_a, ["isOpen", "onDismiss", "height", "dividers", "width", "exceptionallySetClassName", "exceptionallySetOverlayClassName", "autoFocus", "hideOnEscape", "hideOnInteractOutside", "children", "portalElement", "onKeyDown", "className"]);
37
- var setOpen = React.useCallback(function (visible) {
38
- if (!visible) {
39
- onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
40
- }
41
- }, [onDismiss]);
42
- var store = useDialogStore({ open: isOpen, setOpen: setOpen });
43
- var contextValue = React.useMemo(function () { return ({ onDismiss: onDismiss, height: height, dividers: dividers }); }, [onDismiss, height, dividers]);
44
- var portalRef = React.useRef(null);
45
- var dialogRef = React.useRef(null);
46
- var backdropRef = React.useRef(null);
47
- var handleBackdropClick = React.useCallback(function (event) {
48
- var _a, _b;
49
- if (
50
- // The focus lock element takes up the same space as the backdrop and is where the event bubbles up from,
51
- // so instead of checking the backdrop as the event target, we need to make sure it's just above the dialog
52
- !((_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target)) &&
53
- (
54
- // Events fired from other portals will bubble up to the backdrop, even if it isn't a child in the DOM
55
- (_b = backdropRef.current) === null || _b === void 0 ? void 0 : _b.contains(event.target))) {
56
- event.stopPropagation();
57
- onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
58
- }
59
- }, [onDismiss]);
60
- React.useLayoutEffect(function disableAccessibilityTreeOutside() {
61
- if (!isOpen || !portalRef.current) {
62
- return;
63
- }
64
- return hideOthers(portalRef.current);
65
- }, [isOpen]);
66
- var handleKeyDown = React.useCallback(function handleKeyDown(event) {
67
- if (hideOnEscape &&
68
- onDismiss != null &&
69
- event.key === 'Escape' &&
70
- !event.defaultPrevented) {
71
- event.stopPropagation();
72
- onDismiss();
73
- }
74
- onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
75
- }, [onDismiss, hideOnEscape, onKeyDown]);
76
- if (!isOpen) {
77
- return null;
78
- }
79
- return (React.createElement(Portal, { portalRef: portalRef, portalElement: portalElement },
80
- React.createElement(Box, { "data-testid": "modal-overlay", "data-overlay": true, className: classNames(modules_8f59d13b.overlay, modules_8f59d13b[height], modules_8f59d13b[width], exceptionallySetOverlayClassName),
81
- /**
82
- * We're using `onPointerDown` instead of `onClick` to prevent the modal from
83
- * closing when the click starts inside the modal and ends on the backdrop.
84
- */
85
- onPointerDown: hideOnInteractOutside ? handleBackdropClick : undefined, ref: backdropRef },
86
- React.createElement(FocusLock, { autoFocus: autoFocus, whiteList: isNotInternalFrame, returnFocus: true, crossFrame: false },
87
- React.createElement(Dialog, __assign({}, props, { ref: dialogRef, render: React.createElement(Box, { borderRadius: "full", background: "default", display: "flex", flexDirection: "column", overflow: "hidden", height: height === 'expand' ? 'full' : undefined, flexGrow: height === 'expand' ? 1 : 0 }), className: classNames(exceptionallySetClassName, modules_8f59d13b.container), store: store, preventBodyScroll: true,
88
- // Disable focus lock as we set up our own using ReactFocusLock
89
- modal: false, autoFocus: false, autoFocusOnShow: false, autoFocusOnHide: false,
90
- // Disable portal and backdrop as we control their markup
91
- portal: false, backdrop: false, hideOnInteractOutside: false, hideOnEscape: false, onKeyDown: handleKeyDown }),
92
- React.createElement(ModalContext.Provider, { value: contextValue }, children))))));
51
+ function Modal(t0) {
52
+ const $ = c(62);
53
+ let children;
54
+ let dividers;
55
+ let exceptionallySetClassName;
56
+ let exceptionallySetOverlayClassName;
57
+ let isOpen;
58
+ let onDismiss;
59
+ let onKeyDown;
60
+ let portalElement;
61
+ let props;
62
+ let t1;
63
+ let t2;
64
+ let t3;
65
+ let t4;
66
+ let t5;
67
+ if ($[0] !== t0) {
68
+ const {
69
+ isOpen: t6,
70
+ onDismiss: t7,
71
+ height: t8,
72
+ dividers: t9,
73
+ width: t10,
74
+ exceptionallySetClassName: t11,
75
+ exceptionallySetOverlayClassName: t12,
76
+ autoFocus: t13,
77
+ hideOnEscape: t14,
78
+ hideOnInteractOutside: t15,
79
+ children: t16,
80
+ portalElement: t17,
81
+ onKeyDown: t18,
82
+ className
83
+ } = t0,
84
+ t19 = _objectWithoutProperties(t0, _excluded);
85
+ isOpen = t6;
86
+ onDismiss = t7;
87
+ t1 = t8;
88
+ dividers = t9;
89
+ t2 = t10;
90
+ exceptionallySetClassName = t11;
91
+ exceptionallySetOverlayClassName = t12;
92
+ t3 = t13;
93
+ t4 = t14;
94
+ t5 = t15;
95
+ children = t16;
96
+ portalElement = t17;
97
+ onKeyDown = t18;
98
+ props = t19;
99
+ $[0] = t0;
100
+ $[1] = children;
101
+ $[2] = dividers;
102
+ $[3] = exceptionallySetClassName;
103
+ $[4] = exceptionallySetOverlayClassName;
104
+ $[5] = isOpen;
105
+ $[6] = onDismiss;
106
+ $[7] = onKeyDown;
107
+ $[8] = portalElement;
108
+ $[9] = props;
109
+ $[10] = t1;
110
+ $[11] = t2;
111
+ $[12] = t3;
112
+ $[13] = t4;
113
+ $[14] = t5;
114
+ } else {
115
+ children = $[1];
116
+ dividers = $[2];
117
+ exceptionallySetClassName = $[3];
118
+ exceptionallySetOverlayClassName = $[4];
119
+ isOpen = $[5];
120
+ onDismiss = $[6];
121
+ onKeyDown = $[7];
122
+ portalElement = $[8];
123
+ props = $[9];
124
+ t1 = $[10];
125
+ t2 = $[11];
126
+ t3 = $[12];
127
+ t4 = $[13];
128
+ t5 = $[14];
129
+ }
130
+ const height = t1 === undefined ? "fitContent" : t1;
131
+ const width = t2 === undefined ? "medium" : t2;
132
+ const autoFocus = t3 === undefined ? true : t3;
133
+ const hideOnEscape = t4 === undefined ? true : t4;
134
+ const hideOnInteractOutside = t5 === undefined ? true : t5;
135
+ let t6;
136
+ if ($[15] !== onDismiss) {
137
+ t6 = visible => {
138
+ if (!visible) {
139
+ onDismiss?.();
140
+ }
141
+ };
142
+ $[15] = onDismiss;
143
+ $[16] = t6;
144
+ } else {
145
+ t6 = $[16];
146
+ }
147
+ const setOpen = t6;
148
+ let t7;
149
+ if ($[17] !== isOpen || $[18] !== setOpen) {
150
+ t7 = {
151
+ open: isOpen,
152
+ setOpen
153
+ };
154
+ $[17] = isOpen;
155
+ $[18] = setOpen;
156
+ $[19] = t7;
157
+ } else {
158
+ t7 = $[19];
159
+ }
160
+ const store = useDialogStore(t7);
161
+ let t8;
162
+ if ($[20] !== dividers || $[21] !== height || $[22] !== onDismiss) {
163
+ t8 = {
164
+ onDismiss,
165
+ height,
166
+ dividers
167
+ };
168
+ $[20] = dividers;
169
+ $[21] = height;
170
+ $[22] = onDismiss;
171
+ $[23] = t8;
172
+ } else {
173
+ t8 = $[23];
174
+ }
175
+ const contextValue = t8;
176
+ const portalRef = React.useRef(null);
177
+ const dialogRef = React.useRef(null);
178
+ const backdropRef = React.useRef(null);
179
+ let t9;
180
+ if ($[24] !== onDismiss) {
181
+ t9 = event => {
182
+ if (!dialogRef.current?.contains(event.target) && backdropRef.current?.contains(event.target)) {
183
+ event.stopPropagation();
184
+ onDismiss?.();
185
+ }
186
+ };
187
+ $[24] = onDismiss;
188
+ $[25] = t9;
189
+ } else {
190
+ t9 = $[25];
191
+ }
192
+ const handleBackdropClick = t9;
193
+ let t10;
194
+ let t11;
195
+ if ($[26] !== isOpen) {
196
+ t10 = function disableAccessibilityTreeOutside() {
197
+ if (!isOpen || !portalRef.current) {
198
+ return;
199
+ }
200
+ return hideOthers(portalRef.current);
201
+ };
202
+ t11 = [isOpen];
203
+ $[26] = isOpen;
204
+ $[27] = t10;
205
+ $[28] = t11;
206
+ } else {
207
+ t10 = $[27];
208
+ t11 = $[28];
209
+ }
210
+ React.useLayoutEffect(t10, t11);
211
+ let t12;
212
+ if ($[29] !== hideOnEscape || $[30] !== onDismiss || $[31] !== onKeyDown) {
213
+ t12 = function handleKeyDown(event_0) {
214
+ if (hideOnEscape && onDismiss != null && event_0.key === "Escape" && !event_0.defaultPrevented) {
215
+ event_0.stopPropagation();
216
+ onDismiss();
217
+ }
218
+ onKeyDown?.(event_0);
219
+ };
220
+ $[29] = hideOnEscape;
221
+ $[30] = onDismiss;
222
+ $[31] = onKeyDown;
223
+ $[32] = t12;
224
+ } else {
225
+ t12 = $[32];
226
+ }
227
+ const handleKeyDown = t12;
228
+ if (!isOpen) {
229
+ return null;
230
+ }
231
+ const t13 = modules_8f59d13b[height];
232
+ const t14 = modules_8f59d13b[width];
233
+ let t15;
234
+ if ($[33] !== exceptionallySetOverlayClassName || $[34] !== t13 || $[35] !== t14) {
235
+ t15 = classNames(modules_8f59d13b.overlay, t13, t14, exceptionallySetOverlayClassName);
236
+ $[33] = exceptionallySetOverlayClassName;
237
+ $[34] = t13;
238
+ $[35] = t14;
239
+ $[36] = t15;
240
+ } else {
241
+ t15 = $[36];
242
+ }
243
+ const t16 = hideOnInteractOutside ? handleBackdropClick : undefined;
244
+ const t17 = height === "expand" ? "full" : undefined;
245
+ const t18 = height === "expand" ? 1 : 0;
246
+ let t19;
247
+ if ($[37] !== t17 || $[38] !== t18) {
248
+ t19 = /*#__PURE__*/React.createElement(Box, {
249
+ borderRadius: "full",
250
+ background: "default",
251
+ display: "flex",
252
+ flexDirection: "column",
253
+ overflow: "hidden",
254
+ height: t17,
255
+ flexGrow: t18
256
+ });
257
+ $[37] = t17;
258
+ $[38] = t18;
259
+ $[39] = t19;
260
+ } else {
261
+ t19 = $[39];
262
+ }
263
+ let t20;
264
+ if ($[40] !== exceptionallySetClassName) {
265
+ t20 = classNames(exceptionallySetClassName, modules_8f59d13b.container);
266
+ $[40] = exceptionallySetClassName;
267
+ $[41] = t20;
268
+ } else {
269
+ t20 = $[41];
270
+ }
271
+ let t21;
272
+ if ($[42] !== children || $[43] !== contextValue) {
273
+ t21 = /*#__PURE__*/React.createElement(ModalContext.Provider, {
274
+ value: contextValue
275
+ }, children);
276
+ $[42] = children;
277
+ $[43] = contextValue;
278
+ $[44] = t21;
279
+ } else {
280
+ t21 = $[44];
281
+ }
282
+ let t22;
283
+ if ($[45] !== handleKeyDown || $[46] !== props || $[47] !== store || $[48] !== t19 || $[49] !== t20 || $[50] !== t21) {
284
+ t22 = /*#__PURE__*/React.createElement(Dialog, _extends({}, props, {
285
+ ref: dialogRef,
286
+ render: t19,
287
+ className: t20,
288
+ store: store,
289
+ preventBodyScroll: true,
290
+ modal: false,
291
+ autoFocus: false,
292
+ autoFocusOnShow: false,
293
+ autoFocusOnHide: false,
294
+ portal: false,
295
+ backdrop: false,
296
+ hideOnInteractOutside: false,
297
+ hideOnEscape: false,
298
+ onKeyDown: handleKeyDown
299
+ }), t21);
300
+ $[45] = handleKeyDown;
301
+ $[46] = props;
302
+ $[47] = store;
303
+ $[48] = t19;
304
+ $[49] = t20;
305
+ $[50] = t21;
306
+ $[51] = t22;
307
+ } else {
308
+ t22 = $[51];
309
+ }
310
+ let t23;
311
+ if ($[52] !== autoFocus || $[53] !== t22) {
312
+ t23 = /*#__PURE__*/React.createElement(FocusLock, {
313
+ autoFocus: autoFocus,
314
+ whiteList: isNotInternalFrame,
315
+ returnFocus: true,
316
+ crossFrame: false
317
+ }, t22);
318
+ $[52] = autoFocus;
319
+ $[53] = t22;
320
+ $[54] = t23;
321
+ } else {
322
+ t23 = $[54];
323
+ }
324
+ let t24;
325
+ if ($[55] !== t15 || $[56] !== t16 || $[57] !== t23) {
326
+ t24 = /*#__PURE__*/React.createElement(Box, {
327
+ "data-testid": "modal-overlay",
328
+ "data-overlay": true,
329
+ className: t15,
330
+ onPointerDown: t16,
331
+ ref: backdropRef
332
+ }, t23);
333
+ $[55] = t15;
334
+ $[56] = t16;
335
+ $[57] = t23;
336
+ $[58] = t24;
337
+ } else {
338
+ t24 = $[58];
339
+ }
340
+ let t25;
341
+ if ($[59] !== portalElement || $[60] !== t24) {
342
+ t25 = /*#__PURE__*/React.createElement(Portal, {
343
+ portalRef: portalRef,
344
+ portalElement: portalElement
345
+ }, t24);
346
+ $[59] = portalElement;
347
+ $[60] = t24;
348
+ $[61] = t25;
349
+ } else {
350
+ t25 = $[61];
351
+ }
352
+ return t25;
93
353
  }
354
+
355
+ //
356
+ // ModalCloseButton
357
+ //
358
+
94
359
  /**
95
360
  * The close button rendered by ModalHeader. Provided independently so that consumers can customize
96
361
  * the button's label.
@@ -98,23 +363,63 @@ function Modal(_a) {
98
363
  * @see ModalHeader
99
364
  */
100
365
  function ModalCloseButton(props) {
101
- var onDismiss = React.useContext(ModalContext).onDismiss;
102
- var buttonRef = React.useRef(null);
103
- React.useLayoutEffect(function skipAutoFocus() {
104
- var button = buttonRef.current;
105
- if (!button) {
106
- return;
107
- }
108
- button.tabIndex = -1;
109
- var rafId = requestAnimationFrame(function () {
110
- button.tabIndex = 0;
111
- });
112
- return function () {
113
- cancelAnimationFrame(rafId);
114
- };
115
- }, []);
116
- return (React.createElement(IconButton, __assign({}, props, { ref: buttonRef, variant: "quaternary", onClick: onDismiss, icon: React.createElement(CloseIcon, null) })));
366
+ const $ = c(6);
367
+ const {
368
+ onDismiss
369
+ } = React.useContext(ModalContext);
370
+ const buttonRef = React.useRef(null);
371
+ let t0;
372
+ let t1;
373
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
374
+ t0 = function skipAutoFocus() {
375
+ const button = buttonRef.current;
376
+ if (!button) {
377
+ return;
378
+ }
379
+ button.tabIndex = -1;
380
+ const rafId = requestAnimationFrame(() => {
381
+ button.tabIndex = 0;
382
+ });
383
+ return () => {
384
+ cancelAnimationFrame(rafId);
385
+ };
386
+ };
387
+ t1 = [];
388
+ $[0] = t0;
389
+ $[1] = t1;
390
+ } else {
391
+ t0 = $[0];
392
+ t1 = $[1];
393
+ }
394
+ React.useLayoutEffect(t0, t1);
395
+ let t2;
396
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
397
+ t2 = /*#__PURE__*/React.createElement(CloseIcon, null);
398
+ $[2] = t2;
399
+ } else {
400
+ t2 = $[2];
401
+ }
402
+ let t3;
403
+ if ($[3] !== onDismiss || $[4] !== props) {
404
+ t3 = /*#__PURE__*/React.createElement(IconButton, _extends({}, props, {
405
+ ref: buttonRef,
406
+ variant: "quaternary",
407
+ onClick: onDismiss,
408
+ icon: t2
409
+ }));
410
+ $[3] = onDismiss;
411
+ $[4] = props;
412
+ $[5] = t3;
413
+ } else {
414
+ t3 = $[5];
415
+ }
416
+ return t3;
117
417
  }
418
+
419
+ //
420
+ // ModalHeader
421
+ //
422
+
118
423
  /**
119
424
  * Renders a standard modal header area with an optional close button.
120
425
  *
@@ -122,16 +427,124 @@ function ModalCloseButton(props) {
122
427
  * @see ModalFooter
123
428
  * @see ModalBody
124
429
  */
125
- function ModalHeader(_a) {
126
- var children = _a.children, _b = _a.button, button = _b === void 0 ? true : _b, _c = _a.withDivider, withDivider = _c === void 0 ? false : _c, exceptionallySetClassName = _a.exceptionallySetClassName, props = __rest(_a, ["children", "button", "withDivider", "exceptionallySetClassName"]);
127
- var dividers = React.useContext(ModalContext).dividers;
128
- return (React.createElement(React.Fragment, null,
129
- React.createElement(Box, __assign({}, props, { as: "header", paddingLeft: "large", paddingRight: button === false || button === null ? 'large' : 'small', paddingY: "small", className: exceptionallySetClassName }),
130
- React.createElement(Columns, { space: "large", alignY: "center" },
131
- React.createElement(Column, { width: "auto" }, children),
132
- button === false || button === null ? (React.createElement("div", { className: modules_8f59d13b.headerContent })) : (React.createElement(Column, { width: "content", exceptionallySetClassName: modules_8f59d13b.buttonContainer, "data-testid": "button-container" }, typeof button === 'boolean' ? (React.createElement(ModalCloseButton, { "aria-label": "Close modal", autoFocus: false })) : (button))))),
133
- withDivider ? React.createElement(Divider, { weight: dividers }) : null));
430
+ function ModalHeader(t0) {
431
+ const $ = c(24);
432
+ let children;
433
+ let exceptionallySetClassName;
434
+ let props;
435
+ let t1;
436
+ let t2;
437
+ if ($[0] !== t0) {
438
+ var _t = t0;
439
+ ({
440
+ children,
441
+ button: t1,
442
+ withDivider: t2,
443
+ exceptionallySetClassName
444
+ } = _t);
445
+ props = _objectWithoutProperties(_t, _excluded2);
446
+ $[0] = t0;
447
+ $[1] = children;
448
+ $[2] = exceptionallySetClassName;
449
+ $[3] = props;
450
+ $[4] = t1;
451
+ $[5] = t2;
452
+ } else {
453
+ children = $[1];
454
+ exceptionallySetClassName = $[2];
455
+ props = $[3];
456
+ t1 = $[4];
457
+ t2 = $[5];
458
+ }
459
+ const button = t1 === undefined ? true : t1;
460
+ const withDivider = t2 === undefined ? false : t2;
461
+ const {
462
+ dividers
463
+ } = React.useContext(ModalContext);
464
+ const t3 = button === false || button === null ? "large" : "small";
465
+ let t4;
466
+ if ($[6] !== children) {
467
+ t4 = /*#__PURE__*/React.createElement(Column, {
468
+ width: "auto"
469
+ }, children);
470
+ $[6] = children;
471
+ $[7] = t4;
472
+ } else {
473
+ t4 = $[7];
474
+ }
475
+ let t5;
476
+ if ($[8] !== button) {
477
+ t5 = button === false || button === null ? /*#__PURE__*/React.createElement("div", {
478
+ className: modules_8f59d13b.headerContent
479
+ }) : /*#__PURE__*/React.createElement(Column, {
480
+ width: "content",
481
+ exceptionallySetClassName: modules_8f59d13b.buttonContainer,
482
+ "data-testid": "button-container"
483
+ }, typeof button === "boolean" ? /*#__PURE__*/React.createElement(ModalCloseButton, {
484
+ "aria-label": "Close modal",
485
+ autoFocus: false
486
+ }) : button);
487
+ $[8] = button;
488
+ $[9] = t5;
489
+ } else {
490
+ t5 = $[9];
491
+ }
492
+ let t6;
493
+ if ($[10] !== t4 || $[11] !== t5) {
494
+ t6 = /*#__PURE__*/React.createElement(Columns, {
495
+ space: "large",
496
+ alignY: "center"
497
+ }, t4, t5);
498
+ $[10] = t4;
499
+ $[11] = t5;
500
+ $[12] = t6;
501
+ } else {
502
+ t6 = $[12];
503
+ }
504
+ let t7;
505
+ if ($[13] !== exceptionallySetClassName || $[14] !== props || $[15] !== t3 || $[16] !== t6) {
506
+ t7 = /*#__PURE__*/React.createElement(Box, _extends({}, props, {
507
+ as: "header",
508
+ paddingLeft: "large",
509
+ paddingRight: t3,
510
+ paddingY: "small",
511
+ className: exceptionallySetClassName
512
+ }), t6);
513
+ $[13] = exceptionallySetClassName;
514
+ $[14] = props;
515
+ $[15] = t3;
516
+ $[16] = t6;
517
+ $[17] = t7;
518
+ } else {
519
+ t7 = $[17];
520
+ }
521
+ let t8;
522
+ if ($[18] !== dividers || $[19] !== withDivider) {
523
+ t8 = withDivider ? /*#__PURE__*/React.createElement(Divider, {
524
+ weight: dividers
525
+ }) : null;
526
+ $[18] = dividers;
527
+ $[19] = withDivider;
528
+ $[20] = t8;
529
+ } else {
530
+ t8 = $[20];
531
+ }
532
+ let t9;
533
+ if ($[21] !== t7 || $[22] !== t8) {
534
+ t9 = /*#__PURE__*/React.createElement(React.Fragment, null, t7, t8);
535
+ $[21] = t7;
536
+ $[22] = t8;
537
+ $[23] = t9;
538
+ } else {
539
+ t9 = $[23];
540
+ }
541
+ return t9;
134
542
  }
543
+
544
+ //
545
+ // ModalBody
546
+ //
547
+
135
548
  /**
136
549
  * Renders the body of a modal.
137
550
  *
@@ -144,12 +557,69 @@ function ModalHeader(_a) {
144
557
  * @see ModalHeader
145
558
  * @see ModalFooter
146
559
  */
147
- var ModalBody = forwardRef(function ModalBody(_a, ref) {
148
- var exceptionallySetClassName = _a.exceptionallySetClassName, children = _a.children, props = __rest(_a, ["exceptionallySetClassName", "children"]);
149
- var height = React.useContext(ModalContext).height;
150
- return (React.createElement(Box, __assign({}, props, { ref: ref, className: exceptionallySetClassName, flexGrow: height === 'expand' ? 1 : 0, height: height === 'expand' ? 'full' : undefined, overflow: "auto" }),
151
- React.createElement(Box, { padding: "large", paddingBottom: "xxlarge" }, children)));
560
+ const ModalBody = /*#__PURE__*/forwardRef(function ModalBody(t0, ref) {
561
+ const $ = c(13);
562
+ let children;
563
+ let exceptionallySetClassName;
564
+ let props;
565
+ if ($[0] !== t0) {
566
+ var _t2 = t0;
567
+ ({
568
+ exceptionallySetClassName,
569
+ children
570
+ } = _t2);
571
+ props = _objectWithoutProperties(_t2, _excluded3);
572
+ $[0] = t0;
573
+ $[1] = children;
574
+ $[2] = exceptionallySetClassName;
575
+ $[3] = props;
576
+ } else {
577
+ children = $[1];
578
+ exceptionallySetClassName = $[2];
579
+ props = $[3];
580
+ }
581
+ const {
582
+ height
583
+ } = React.useContext(ModalContext);
584
+ const t1 = height === "expand" ? 1 : 0;
585
+ const t2 = height === "expand" ? "full" : undefined;
586
+ let t3;
587
+ if ($[4] !== children) {
588
+ t3 = /*#__PURE__*/React.createElement(Box, {
589
+ padding: "large",
590
+ paddingBottom: "xxlarge"
591
+ }, children);
592
+ $[4] = children;
593
+ $[5] = t3;
594
+ } else {
595
+ t3 = $[5];
596
+ }
597
+ let t4;
598
+ if ($[6] !== exceptionallySetClassName || $[7] !== props || $[8] !== ref || $[9] !== t1 || $[10] !== t2 || $[11] !== t3) {
599
+ t4 = /*#__PURE__*/React.createElement(Box, _extends({}, props, {
600
+ ref: ref,
601
+ className: exceptionallySetClassName,
602
+ flexGrow: t1,
603
+ height: t2,
604
+ overflow: "auto"
605
+ }), t3);
606
+ $[6] = exceptionallySetClassName;
607
+ $[7] = props;
608
+ $[8] = ref;
609
+ $[9] = t1;
610
+ $[10] = t2;
611
+ $[11] = t3;
612
+ $[12] = t4;
613
+ } else {
614
+ t4 = $[12];
615
+ }
616
+ return t4;
152
617
  });
618
+
619
+ //
620
+ // ModalFooter
621
+ //
622
+
153
623
  /**
154
624
  * Renders a standard modal footer area.
155
625
  *
@@ -157,21 +627,114 @@ var ModalBody = forwardRef(function ModalBody(_a, ref) {
157
627
  * @see ModalHeader
158
628
  * @see ModalBody
159
629
  */
160
- function ModalFooter(_a) {
161
- var exceptionallySetClassName = _a.exceptionallySetClassName, _b = _a.withDivider, withDivider = _b === void 0 ? false : _b, props = __rest(_a, ["exceptionallySetClassName", "withDivider"]);
162
- var dividers = React.useContext(ModalContext).dividers;
163
- return (React.createElement(React.Fragment, null,
164
- withDivider ? React.createElement(Divider, { weight: dividers }) : null,
165
- React.createElement(Box, __assign({ as: "footer" }, props, { className: exceptionallySetClassName, padding: "large" }))));
630
+ function ModalFooter(t0) {
631
+ const $ = c(13);
632
+ let exceptionallySetClassName;
633
+ let props;
634
+ let t1;
635
+ if ($[0] !== t0) {
636
+ var _t3 = t0;
637
+ ({
638
+ exceptionallySetClassName,
639
+ withDivider: t1
640
+ } = _t3);
641
+ props = _objectWithoutProperties(_t3, _excluded4);
642
+ $[0] = t0;
643
+ $[1] = exceptionallySetClassName;
644
+ $[2] = props;
645
+ $[3] = t1;
646
+ } else {
647
+ exceptionallySetClassName = $[1];
648
+ props = $[2];
649
+ t1 = $[3];
650
+ }
651
+ const withDivider = t1 === undefined ? false : t1;
652
+ const {
653
+ dividers
654
+ } = React.useContext(ModalContext);
655
+ let t2;
656
+ if ($[4] !== dividers || $[5] !== withDivider) {
657
+ t2 = withDivider ? /*#__PURE__*/React.createElement(Divider, {
658
+ weight: dividers
659
+ }) : null;
660
+ $[4] = dividers;
661
+ $[5] = withDivider;
662
+ $[6] = t2;
663
+ } else {
664
+ t2 = $[6];
665
+ }
666
+ let t3;
667
+ if ($[7] !== exceptionallySetClassName || $[8] !== props) {
668
+ t3 = /*#__PURE__*/React.createElement(Box, _extends({
669
+ as: "footer"
670
+ }, props, {
671
+ className: exceptionallySetClassName,
672
+ padding: "large"
673
+ }));
674
+ $[7] = exceptionallySetClassName;
675
+ $[8] = props;
676
+ $[9] = t3;
677
+ } else {
678
+ t3 = $[9];
679
+ }
680
+ let t4;
681
+ if ($[10] !== t2 || $[11] !== t3) {
682
+ t4 = /*#__PURE__*/React.createElement(React.Fragment, null, t2, t3);
683
+ $[10] = t2;
684
+ $[11] = t3;
685
+ $[12] = t4;
686
+ } else {
687
+ t4 = $[12];
688
+ }
689
+ return t4;
166
690
  }
691
+
692
+ //
693
+ // ModalActions
694
+ //
695
+
167
696
  /**
168
697
  * A specific version of the ModalFooter, tailored to showing an inline list of actions (buttons).
169
698
  * @see ModalFooter
170
699
  */
171
- function ModalActions(_a) {
172
- var children = _a.children, props = __rest(_a, ["children"]);
173
- return (React.createElement(ModalFooter, __assign({}, props),
174
- React.createElement(Inline, { align: "right", space: "large" }, children)));
700
+ function ModalActions(t0) {
701
+ const $ = c(8);
702
+ let children;
703
+ let props;
704
+ if ($[0] !== t0) {
705
+ var _t4 = t0;
706
+ ({
707
+ children
708
+ } = _t4);
709
+ props = _objectWithoutProperties(_t4, _excluded5);
710
+ $[0] = t0;
711
+ $[1] = children;
712
+ $[2] = props;
713
+ } else {
714
+ children = $[1];
715
+ props = $[2];
716
+ }
717
+ let t1;
718
+ if ($[3] !== children) {
719
+ t1 = /*#__PURE__*/React.createElement(Inline, {
720
+ align: "right",
721
+ space: "large"
722
+ }, children);
723
+ $[3] = children;
724
+ $[4] = t1;
725
+ } else {
726
+ t1 = $[4];
727
+ }
728
+ let t2;
729
+ if ($[5] !== props || $[6] !== t1) {
730
+ t2 = /*#__PURE__*/React.createElement(ModalFooter, props, t1);
731
+ $[5] = props;
732
+ $[6] = t1;
733
+ $[7] = t2;
734
+ } else {
735
+ t2 = $[7];
736
+ }
737
+ return t2;
175
738
  }
176
739
 
177
740
  export { Modal, ModalActions, ModalBody, ModalCloseButton, ModalFooter, ModalHeader };