@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/menu/menu.js CHANGED
@@ -1,91 +1,341 @@
1
- import { __rest, __assign } from 'tslib';
1
+ import _extends from '@babel/runtime/helpers/extends';
2
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
3
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
+ import { c } from 'react-compiler-runtime';
2
5
  import * as React from 'react';
3
- import { MenuButton as MenuButton$1, Role, Portal, Menu as Menu$1, MenuItem as MenuItem$1, MenuGroup as MenuGroup$1, useMenuStore } from '@ariakit/react';
6
+ import { useMenuStore, MenuButton as MenuButton$1, Role, Portal, Menu as Menu$1, MenuItem as MenuItem$1, MenuGroup as MenuGroup$1 } from '@ariakit/react';
4
7
  import classNames from 'classnames';
5
8
 
6
- var MenuContext = React.createContext({
7
- menuStore: null,
8
- handleItemSelect: function () { return undefined; },
9
- getAnchorRect: null,
10
- setAnchorRect: function () { return undefined; },
9
+ const _excluded = ["children", "onItemSelect"],
10
+ _excluded2 = ["exceptionallySetClassName"],
11
+ _excluded3 = ["render"],
12
+ _excluded4 = ["exceptionallySetClassName", "modal", "flip"],
13
+ _excluded5 = ["value", "children", "onSelect", "hideOnSelect", "onClick", "exceptionallySetClassName"],
14
+ _excluded6 = ["label", "children", "exceptionallySetClassName"];
15
+ const MenuContext = /*#__PURE__*/React.createContext({
16
+ menuStore: null,
17
+ handleItemSelect: () => undefined,
18
+ getAnchorRect: null,
19
+ setAnchorRect: () => undefined
11
20
  });
12
- var SubMenuContext = React.createContext({ isSubMenu: false });
21
+ const SubMenuContext = /*#__PURE__*/React.createContext({
22
+ isSubMenu: false
23
+ });
24
+
25
+ //
26
+ // Menu
27
+ //
28
+
13
29
  /**
14
30
  * Wrapper component to control a menu. It does not render anything, only providing the state
15
31
  * management for the menu components inside it.
16
32
  */
17
- function Menu(_a) {
18
- var children = _a.children, onItemSelect = _a.onItemSelect, props = __rest(_a, ["children", "onItemSelect"]);
19
- var _b = React.useState(null), anchorRect = _b[0], setAnchorRect = _b[1];
20
- var getAnchorRect = React.useMemo(function () { return (anchorRect ? function () { return anchorRect; } : null); }, [anchorRect]);
21
- var menuStore = useMenuStore(__assign({ focusLoop: true }, props));
22
- var value = React.useMemo(function () { return ({ menuStore: menuStore, handleItemSelect: onItemSelect, getAnchorRect: getAnchorRect, setAnchorRect: setAnchorRect }); }, [menuStore, onItemSelect, getAnchorRect, setAnchorRect]);
23
- return React.createElement(MenuContext.Provider, { value: value }, children);
33
+ function Menu(t0) {
34
+ const $ = c(15);
35
+ let children;
36
+ let onItemSelect;
37
+ let props;
38
+ if ($[0] !== t0) {
39
+ var _t = t0;
40
+ ({
41
+ children,
42
+ onItemSelect
43
+ } = _t);
44
+ props = _objectWithoutProperties(_t, _excluded);
45
+ $[0] = t0;
46
+ $[1] = children;
47
+ $[2] = onItemSelect;
48
+ $[3] = props;
49
+ } else {
50
+ children = $[1];
51
+ onItemSelect = $[2];
52
+ props = $[3];
53
+ }
54
+ const [anchorRect, setAnchorRect] = React.useState(null);
55
+ let t1;
56
+ if ($[4] !== anchorRect) {
57
+ t1 = anchorRect ? () => anchorRect : null;
58
+ $[4] = anchorRect;
59
+ $[5] = t1;
60
+ } else {
61
+ t1 = $[5];
62
+ }
63
+ const getAnchorRect = t1;
64
+ let t2;
65
+ if ($[6] !== props) {
66
+ t2 = _objectSpread({
67
+ focusLoop: true
68
+ }, props);
69
+ $[6] = props;
70
+ $[7] = t2;
71
+ } else {
72
+ t2 = $[7];
73
+ }
74
+ const menuStore = useMenuStore(t2);
75
+ let t3;
76
+ if ($[8] !== getAnchorRect || $[9] !== menuStore || $[10] !== onItemSelect) {
77
+ t3 = {
78
+ menuStore,
79
+ handleItemSelect: onItemSelect,
80
+ getAnchorRect,
81
+ setAnchorRect
82
+ };
83
+ $[8] = getAnchorRect;
84
+ $[9] = menuStore;
85
+ $[10] = onItemSelect;
86
+ $[11] = t3;
87
+ } else {
88
+ t3 = $[11];
89
+ }
90
+ const value = t3;
91
+ let t4;
92
+ if ($[12] !== children || $[13] !== value) {
93
+ t4 = /*#__PURE__*/React.createElement(MenuContext.Provider, {
94
+ value: value
95
+ }, children);
96
+ $[12] = children;
97
+ $[13] = value;
98
+ $[14] = t4;
99
+ } else {
100
+ t4 = $[14];
101
+ }
102
+ return t4;
24
103
  }
104
+
105
+ //
106
+ // MenuButton
107
+ //
108
+
25
109
  /**
26
110
  * A button to toggle a dropdown menu open or closed.
27
111
  */
28
- var MenuButton = React.forwardRef(function MenuButton(_a, ref) {
29
- var exceptionallySetClassName = _a.exceptionallySetClassName, props = __rest(_a, ["exceptionallySetClassName"]);
30
- var menuStore = React.useContext(MenuContext).menuStore;
31
- if (!menuStore) {
32
- throw new Error('MenuButton must be wrapped in <Menu/>');
33
- }
34
- return (React.createElement(MenuButton$1, __assign({}, props, { store: menuStore, ref: ref, className: classNames('reactist_menubutton', exceptionallySetClassName) })));
112
+ const MenuButton = /*#__PURE__*/React.forwardRef(function MenuButton(t0, ref) {
113
+ const $ = c(10);
114
+ let exceptionallySetClassName;
115
+ let props;
116
+ if ($[0] !== t0) {
117
+ var _t2 = t0;
118
+ ({
119
+ exceptionallySetClassName
120
+ } = _t2);
121
+ props = _objectWithoutProperties(_t2, _excluded2);
122
+ $[0] = t0;
123
+ $[1] = exceptionallySetClassName;
124
+ $[2] = props;
125
+ } else {
126
+ exceptionallySetClassName = $[1];
127
+ props = $[2];
128
+ }
129
+ const {
130
+ menuStore
131
+ } = React.useContext(MenuContext);
132
+ if (!menuStore) {
133
+ throw new Error("MenuButton must be wrapped in <Menu/>");
134
+ }
135
+ let t1;
136
+ if ($[3] !== exceptionallySetClassName) {
137
+ t1 = classNames("reactist_menubutton", exceptionallySetClassName);
138
+ $[3] = exceptionallySetClassName;
139
+ $[4] = t1;
140
+ } else {
141
+ t1 = $[4];
142
+ }
143
+ let t2;
144
+ if ($[5] !== menuStore || $[6] !== props || $[7] !== ref || $[8] !== t1) {
145
+ t2 = /*#__PURE__*/React.createElement(MenuButton$1, _extends({}, props, {
146
+ store: menuStore,
147
+ ref: ref,
148
+ className: t1
149
+ }));
150
+ $[5] = menuStore;
151
+ $[6] = props;
152
+ $[7] = ref;
153
+ $[8] = t1;
154
+ $[9] = t2;
155
+ } else {
156
+ t2 = $[9];
157
+ }
158
+ return t2;
35
159
  });
36
- var ContextMenuTrigger = React.forwardRef(function ContextMenuTrigger(_a, ref) {
37
- var render = _a.render, props = __rest(_a, ["render"]);
38
- var _b = React.useContext(MenuContext), setAnchorRect = _b.setAnchorRect, menuStore = _b.menuStore;
39
- if (!menuStore) {
40
- throw new Error('ContextMenuTrigger must be wrapped in <Menu/>');
41
- }
42
- var handleContextMenu = React.useCallback(function handleContextMenu(event) {
43
- event.preventDefault();
44
- setAnchorRect({ x: event.clientX, y: event.clientY });
45
- menuStore.show();
46
- }, [setAnchorRect, menuStore]);
47
- var isOpen = menuStore.useState('open');
48
- React.useEffect(function () {
49
- if (!isOpen)
50
- setAnchorRect(null);
51
- }, [isOpen, setAnchorRect]);
52
- return React.createElement(Role.div, __assign({}, props, { onContextMenu: handleContextMenu, ref: ref, render: render }));
160
+
161
+ //
162
+ // ContextMenuTrigger
163
+ //
164
+
165
+ const ContextMenuTrigger = /*#__PURE__*/React.forwardRef(function ContextMenuTrigger(_ref, ref) {
166
+ let {
167
+ render
168
+ } = _ref,
169
+ props = _objectWithoutProperties(_ref, _excluded3);
170
+ const {
171
+ setAnchorRect,
172
+ menuStore
173
+ } = React.useContext(MenuContext);
174
+ if (!menuStore) {
175
+ throw new Error('ContextMenuTrigger must be wrapped in <Menu/>');
176
+ }
177
+ const handleContextMenu = React.useCallback(function handleContextMenu(event) {
178
+ event.preventDefault();
179
+ setAnchorRect({
180
+ x: event.clientX,
181
+ y: event.clientY
182
+ });
183
+ menuStore.show();
184
+ }, [setAnchorRect, menuStore]);
185
+ const isOpen = menuStore.useState('open');
186
+ React.useEffect(() => {
187
+ if (!isOpen) setAnchorRect(null);
188
+ }, [isOpen, setAnchorRect]);
189
+ return /*#__PURE__*/React.createElement(Role.div, _extends({}, props, {
190
+ onContextMenu: handleContextMenu,
191
+ ref: ref,
192
+ render: render
193
+ }));
53
194
  });
195
+
196
+ //
197
+ // MenuList
198
+ //
199
+
54
200
  /**
55
201
  * The dropdown menu itself, containing a list of menu items.
56
202
  */
57
- var MenuList = React.forwardRef(function MenuList(_a, ref) {
58
- var exceptionallySetClassName = _a.exceptionallySetClassName, _b = _a.modal, modal = _b === void 0 ? true : _b, flip = _a.flip, props = __rest(_a, ["exceptionallySetClassName", "modal", "flip"]);
59
- var _c = React.useContext(MenuContext), menuStore = _c.menuStore, getAnchorRect = _c.getAnchorRect;
60
- if (!menuStore) {
61
- throw new Error('MenuList must be wrapped in <Menu/>');
62
- }
63
- var isSubMenu = React.useContext(SubMenuContext).isSubMenu;
64
- var isOpen = menuStore.useState('open');
65
- return isOpen ? (React.createElement(Portal, { preserveTabOrder: true },
66
- React.createElement(Menu$1, __assign({}, props, { store: menuStore, gutter: 8, shift: 4, ref: ref, className: classNames('reactist_menulist', exceptionallySetClassName), getAnchorRect: getAnchorRect !== null && getAnchorRect !== void 0 ? getAnchorRect : undefined, modal: modal, flip: flip !== null && flip !== void 0 ? flip : (isSubMenu ? 'left bottom' : undefined) })))) : null;
203
+ const MenuList = /*#__PURE__*/React.forwardRef(function MenuList(_ref2, ref) {
204
+ let {
205
+ exceptionallySetClassName,
206
+ modal = true,
207
+ flip
208
+ } = _ref2,
209
+ props = _objectWithoutProperties(_ref2, _excluded4);
210
+ const {
211
+ menuStore,
212
+ getAnchorRect
213
+ } = React.useContext(MenuContext);
214
+ if (!menuStore) {
215
+ throw new Error('MenuList must be wrapped in <Menu/>');
216
+ }
217
+ const {
218
+ isSubMenu
219
+ } = React.useContext(SubMenuContext);
220
+ const isOpen = menuStore.useState('open');
221
+ return isOpen ? /*#__PURE__*/React.createElement(Portal, {
222
+ preserveTabOrder: true
223
+ }, /*#__PURE__*/React.createElement(Menu$1, _extends({}, props, {
224
+ store: menuStore,
225
+ gutter: 8,
226
+ shift: 4,
227
+ ref: ref,
228
+ className: classNames('reactist_menulist', exceptionallySetClassName),
229
+ getAnchorRect: getAnchorRect ?? undefined,
230
+ modal: modal,
231
+ flip: flip ?? (isSubMenu ? 'left bottom' : undefined)
232
+ }))) : null;
67
233
  });
234
+
235
+ //
236
+ // MenuItem
237
+ //
238
+
68
239
  /**
69
240
  * A menu item inside a menu list. It can be selected by the user, triggering the `onSelect`
70
241
  * callback.
71
242
  */
72
- var MenuItem = React.forwardRef(function MenuItem(_a, ref) {
73
- var value = _a.value, children = _a.children, onSelect = _a.onSelect, _b = _a.hideOnSelect, hideOnSelect = _b === void 0 ? true : _b, onClick = _a.onClick, exceptionallySetClassName = _a.exceptionallySetClassName, props = __rest(_a, ["value", "children", "onSelect", "hideOnSelect", "onClick", "exceptionallySetClassName"]);
74
- var _c = React.useContext(MenuContext), handleItemSelect = _c.handleItemSelect, menuStore = _c.menuStore;
75
- if (!menuStore) {
76
- throw new Error('MenuItem must be wrapped in <Menu/>');
77
- }
78
- var hide = menuStore.hide;
79
- var handleClick = React.useCallback(function handleClick(event) {
80
- onClick === null || onClick === void 0 ? void 0 : onClick(event);
81
- var onSelectResult = onSelect && !event.defaultPrevented ? onSelect() : undefined;
82
- var shouldClose = onSelectResult !== false && hideOnSelect;
83
- handleItemSelect === null || handleItemSelect === void 0 ? void 0 : handleItemSelect(value);
84
- if (shouldClose)
85
- hide();
86
- }, [onSelect, onClick, handleItemSelect, hideOnSelect, hide, value]);
87
- return (React.createElement(MenuItem$1, __assign({}, props, { store: menuStore, ref: ref, onClick: handleClick, className: exceptionallySetClassName, hideOnClick: false }), children));
243
+ const MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(t0, ref) {
244
+ const $ = c(22);
245
+ let children;
246
+ let exceptionallySetClassName;
247
+ let onClick;
248
+ let onSelect;
249
+ let props;
250
+ let t1;
251
+ let value;
252
+ if ($[0] !== t0) {
253
+ var _t3 = t0;
254
+ ({
255
+ value,
256
+ children,
257
+ onSelect,
258
+ hideOnSelect: t1,
259
+ onClick,
260
+ exceptionallySetClassName
261
+ } = _t3);
262
+ props = _objectWithoutProperties(_t3, _excluded5);
263
+ $[0] = t0;
264
+ $[1] = children;
265
+ $[2] = exceptionallySetClassName;
266
+ $[3] = onClick;
267
+ $[4] = onSelect;
268
+ $[5] = props;
269
+ $[6] = t1;
270
+ $[7] = value;
271
+ } else {
272
+ children = $[1];
273
+ exceptionallySetClassName = $[2];
274
+ onClick = $[3];
275
+ onSelect = $[4];
276
+ props = $[5];
277
+ t1 = $[6];
278
+ value = $[7];
279
+ }
280
+ const hideOnSelect = t1 === undefined ? true : t1;
281
+ const {
282
+ handleItemSelect,
283
+ menuStore
284
+ } = React.useContext(MenuContext);
285
+ if (!menuStore) {
286
+ throw new Error("MenuItem must be wrapped in <Menu/>");
287
+ }
288
+ const {
289
+ hide
290
+ } = menuStore;
291
+ let t2;
292
+ if ($[8] !== handleItemSelect || $[9] !== hide || $[10] !== hideOnSelect || $[11] !== onClick || $[12] !== onSelect || $[13] !== value) {
293
+ t2 = function handleClick(event) {
294
+ onClick?.(event);
295
+ const onSelectResult = onSelect && !event.defaultPrevented ? onSelect() : undefined;
296
+ const shouldClose = onSelectResult !== false && hideOnSelect;
297
+ handleItemSelect?.(value);
298
+ if (shouldClose) {
299
+ hide();
300
+ }
301
+ };
302
+ $[8] = handleItemSelect;
303
+ $[9] = hide;
304
+ $[10] = hideOnSelect;
305
+ $[11] = onClick;
306
+ $[12] = onSelect;
307
+ $[13] = value;
308
+ $[14] = t2;
309
+ } else {
310
+ t2 = $[14];
311
+ }
312
+ const handleClick = t2;
313
+ let t3;
314
+ if ($[15] !== children || $[16] !== exceptionallySetClassName || $[17] !== handleClick || $[18] !== menuStore || $[19] !== props || $[20] !== ref) {
315
+ t3 = /*#__PURE__*/React.createElement(MenuItem$1, _extends({}, props, {
316
+ store: menuStore,
317
+ ref: ref,
318
+ onClick: handleClick,
319
+ className: exceptionallySetClassName,
320
+ hideOnClick: false
321
+ }), children);
322
+ $[15] = children;
323
+ $[16] = exceptionallySetClassName;
324
+ $[17] = handleClick;
325
+ $[18] = menuStore;
326
+ $[19] = props;
327
+ $[20] = ref;
328
+ $[21] = t3;
329
+ } else {
330
+ t3 = $[21];
331
+ }
332
+ return t3;
88
333
  });
334
+
335
+ //
336
+ // SubMenu
337
+ //
338
+
89
339
  /**
90
340
  * This component can be rendered alongside other `MenuItem` inside a `MenuList` in order to have
91
341
  * a sub-menu.
@@ -107,40 +357,167 @@ var MenuItem = React.forwardRef(function MenuItem(_a, ref) {
107
357
  * The `MenuButton` will become a menu item in the current menu items list, and it will lead to
108
358
  * opening a sub-menu with the menu items list below it.
109
359
  */
110
- var SubMenu = React.forwardRef(function SubMenu(_a, ref) {
111
- var children = _a.children, onItemSelect = _a.onItemSelect;
112
- var _b = React.useContext(MenuContext), parentMenuItemSelect = _b.handleItemSelect, menuStore = _b.menuStore;
113
- if (!menuStore) {
114
- throw new Error('SubMenu must be wrapped in <Menu/>');
115
- }
116
- var parentMenuHide = menuStore.hide;
117
- var handleSubItemSelect = React.useCallback(function handleSubItemSelect(value) {
118
- onItemSelect === null || onItemSelect === void 0 ? void 0 : onItemSelect(value);
119
- parentMenuItemSelect === null || parentMenuItemSelect === void 0 ? void 0 : parentMenuItemSelect(value);
120
- parentMenuHide();
121
- }, [parentMenuHide, parentMenuItemSelect, onItemSelect]);
122
- var _c = React.Children.toArray(children), button = _c[0], list = _c[1];
123
- var buttonElement = button;
124
- var subMenuContextValue = React.useMemo(function () { return ({ isSubMenu: true }); }, []);
125
- return (React.createElement(Menu, { onItemSelect: handleSubItemSelect },
126
- React.createElement(MenuItem$1, { store: menuStore, ref: ref, hideOnClick: false, render: buttonElement }, buttonElement.props.children),
127
- React.createElement(SubMenuContext.Provider, { value: subMenuContextValue }, list)));
360
+ const SubMenu = /*#__PURE__*/React.forwardRef(function SubMenu(t0, ref) {
361
+ const $ = c(17);
362
+ const {
363
+ children,
364
+ onItemSelect
365
+ } = t0;
366
+ const {
367
+ handleItemSelect: parentMenuItemSelect,
368
+ menuStore
369
+ } = React.useContext(MenuContext);
370
+ if (!menuStore) {
371
+ throw new Error("SubMenu must be wrapped in <Menu/>");
372
+ }
373
+ const {
374
+ hide: parentMenuHide
375
+ } = menuStore;
376
+ let t1;
377
+ if ($[0] !== onItemSelect || $[1] !== parentMenuHide || $[2] !== parentMenuItemSelect) {
378
+ t1 = function handleSubItemSelect(value) {
379
+ onItemSelect?.(value);
380
+ parentMenuItemSelect?.(value);
381
+ parentMenuHide();
382
+ };
383
+ $[0] = onItemSelect;
384
+ $[1] = parentMenuHide;
385
+ $[2] = parentMenuItemSelect;
386
+ $[3] = t1;
387
+ } else {
388
+ t1 = $[3];
389
+ }
390
+ const handleSubItemSelect = t1;
391
+ let t2;
392
+ if ($[4] !== children) {
393
+ t2 = React.Children.toArray(children);
394
+ $[4] = children;
395
+ $[5] = t2;
396
+ } else {
397
+ t2 = $[5];
398
+ }
399
+ const [button, list] = t2;
400
+ const buttonElement = button;
401
+ let t3;
402
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
403
+ t3 = {
404
+ isSubMenu: true
405
+ };
406
+ $[6] = t3;
407
+ } else {
408
+ t3 = $[6];
409
+ }
410
+ const subMenuContextValue = t3;
411
+ let t4;
412
+ if ($[7] !== buttonElement || $[8] !== menuStore || $[9] !== ref) {
413
+ t4 = /*#__PURE__*/React.createElement(MenuItem$1, {
414
+ store: menuStore,
415
+ ref: ref,
416
+ hideOnClick: false,
417
+ render: buttonElement
418
+ }, buttonElement.props.children);
419
+ $[7] = buttonElement;
420
+ $[8] = menuStore;
421
+ $[9] = ref;
422
+ $[10] = t4;
423
+ } else {
424
+ t4 = $[10];
425
+ }
426
+ let t5;
427
+ if ($[11] !== list) {
428
+ t5 = /*#__PURE__*/React.createElement(SubMenuContext.Provider, {
429
+ value: subMenuContextValue
430
+ }, list);
431
+ $[11] = list;
432
+ $[12] = t5;
433
+ } else {
434
+ t5 = $[12];
435
+ }
436
+ let t6;
437
+ if ($[13] !== handleSubItemSelect || $[14] !== t4 || $[15] !== t5) {
438
+ t6 = /*#__PURE__*/React.createElement(Menu, {
439
+ onItemSelect: handleSubItemSelect
440
+ }, t4, t5);
441
+ $[13] = handleSubItemSelect;
442
+ $[14] = t4;
443
+ $[15] = t5;
444
+ $[16] = t6;
445
+ } else {
446
+ t6 = $[16];
447
+ }
448
+ return t6;
128
449
  });
450
+
451
+ //
452
+ // MenuGroup
453
+ //
454
+
129
455
  /**
130
456
  * A way to semantically group some menu items.
131
457
  *
132
458
  * This group does not add any visual separator. You can do that yourself adding `<hr />` elements
133
459
  * before and/or after the group if you so wish.
134
460
  */
135
- var MenuGroup = React.forwardRef(function MenuGroup(_a, ref) {
136
- var label = _a.label, children = _a.children, exceptionallySetClassName = _a.exceptionallySetClassName, props = __rest(_a, ["label", "children", "exceptionallySetClassName"]);
137
- var menuStore = React.useContext(MenuContext).menuStore;
138
- if (!menuStore) {
139
- throw new Error('MenuGroup must be wrapped in <Menu/>');
140
- }
141
- return (React.createElement(MenuGroup$1, __assign({}, props, { ref: ref, store: menuStore, className: exceptionallySetClassName }),
142
- label ? (React.createElement("div", { role: "presentation", className: "reactist_menugroup__label" }, label)) : null,
143
- children));
461
+ const MenuGroup = /*#__PURE__*/React.forwardRef(function MenuGroup(t0, ref) {
462
+ const $ = c(14);
463
+ let children;
464
+ let exceptionallySetClassName;
465
+ let label;
466
+ let props;
467
+ if ($[0] !== t0) {
468
+ var _t4 = t0;
469
+ ({
470
+ label,
471
+ children,
472
+ exceptionallySetClassName
473
+ } = _t4);
474
+ props = _objectWithoutProperties(_t4, _excluded6);
475
+ $[0] = t0;
476
+ $[1] = children;
477
+ $[2] = exceptionallySetClassName;
478
+ $[3] = label;
479
+ $[4] = props;
480
+ } else {
481
+ children = $[1];
482
+ exceptionallySetClassName = $[2];
483
+ label = $[3];
484
+ props = $[4];
485
+ }
486
+ const {
487
+ menuStore
488
+ } = React.useContext(MenuContext);
489
+ if (!menuStore) {
490
+ throw new Error("MenuGroup must be wrapped in <Menu/>");
491
+ }
492
+ let t1;
493
+ if ($[5] !== label) {
494
+ t1 = label ? /*#__PURE__*/React.createElement("div", {
495
+ role: "presentation",
496
+ className: "reactist_menugroup__label"
497
+ }, label) : null;
498
+ $[5] = label;
499
+ $[6] = t1;
500
+ } else {
501
+ t1 = $[6];
502
+ }
503
+ let t2;
504
+ if ($[7] !== children || $[8] !== exceptionallySetClassName || $[9] !== menuStore || $[10] !== props || $[11] !== ref || $[12] !== t1) {
505
+ t2 = /*#__PURE__*/React.createElement(MenuGroup$1, _extends({}, props, {
506
+ ref: ref,
507
+ store: menuStore,
508
+ className: exceptionallySetClassName
509
+ }), t1, children);
510
+ $[7] = children;
511
+ $[8] = exceptionallySetClassName;
512
+ $[9] = menuStore;
513
+ $[10] = props;
514
+ $[11] = ref;
515
+ $[12] = t1;
516
+ $[13] = t2;
517
+ } else {
518
+ t2 = $[13];
519
+ }
520
+ return t2;
144
521
  });
145
522
 
146
523
  export { ContextMenuTrigger, Menu, MenuButton, MenuGroup, MenuItem, MenuList, SubMenu };