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