colibri-ui 0.8.84 → 0.8.86

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 (249) hide show
  1. package/Accordion/Accordion.module.css +4 -0
  2. package/Accordion/index.js +15 -23
  3. package/Autocomplete/Autocomplete.js +101 -132
  4. package/Avatar/Avatar.module.css +6 -0
  5. package/Avatar/index.js +102 -89
  6. package/Badge/Badge.module.css +2 -1
  7. package/Badge/Control/index.js +5 -3
  8. package/Badge/index.js +16 -16
  9. package/Button/index.js +23 -20
  10. package/Button/tokens.js +2 -2
  11. package/Calendar/Calendar.js +171 -269
  12. package/Card/Card.js +26 -32
  13. package/Checkbox/index.js +46 -43
  14. package/Chip/Chip.module.css +2 -1
  15. package/Chip/index.js +15 -15
  16. package/ClickOutside/index.js +10 -13
  17. package/CodeField/CodeField.js +113 -170
  18. package/Counter/Counter.module.css +2 -1
  19. package/Counter/index.js +21 -20
  20. package/Datepicker/components/DatePicker/index.js +81 -102
  21. package/Datepicker/index.js +17 -16
  22. package/DotsLoader/index.js +23 -15
  23. package/Drawer/Drawer.js +75 -97
  24. package/Drawer/Drawer.module.css +2 -1
  25. package/Dropdown/index.js +55 -68
  26. package/Dropzone/Dropzone.js +78 -168
  27. package/Dropzone/Dropzone.module.css +2 -1
  28. package/Editable/Editable.js +44 -57
  29. package/Grid/Item/index.js +11 -13
  30. package/Grid/index.js +15 -21
  31. package/Icons/ArrowNext.js +7 -8
  32. package/Icons/Cart.js +7 -8
  33. package/Icons/Check.js +7 -8
  34. package/Icons/Chevron.js +7 -8
  35. package/Icons/Close.js +6 -6
  36. package/Icons/Copy.js +7 -8
  37. package/Icons/Cross.js +6 -6
  38. package/Icons/CrossFill.js +7 -8
  39. package/Icons/Edit.js +7 -8
  40. package/Icons/Exit.js +7 -8
  41. package/Icons/EyeClosed.js +7 -8
  42. package/Icons/EyeOpen.js +7 -8
  43. package/Icons/Help.js +6 -6
  44. package/Icons/Info.js +7 -8
  45. package/Icons/Minus.js +7 -8
  46. package/Icons/More.js +7 -8
  47. package/Icons/Plus.js +7 -8
  48. package/Icons/Setting.js +7 -8
  49. package/Icons/Shield.js +7 -8
  50. package/Icons/Trash.js +7 -8
  51. package/Icons/User.js +7 -8
  52. package/Image/Image.module.css +4 -0
  53. package/Image/index.d.ts +1 -1
  54. package/Image/index.js +44 -37
  55. package/Input/index.d.ts +1 -1
  56. package/Input/index.js +37 -25
  57. package/Input/index.props.d.ts +1 -1
  58. package/InputRadio/index.js +32 -24
  59. package/List/List.js +81 -76
  60. package/Menu/Menu.module.css +2 -1
  61. package/Menu/components/MenuItem/index.js +17 -14
  62. package/Menu/index.js +22 -23
  63. package/Modal/components/Body/index.js +9 -8
  64. package/Modal/components/Close/Close.module.css +4 -0
  65. package/Modal/components/Close/index.js +13 -14
  66. package/Modal/components/Content/index.js +5 -6
  67. package/Modal/components/Footer/index.js +5 -3
  68. package/Modal/components/Header/index.js +13 -12
  69. package/Modal/components/Title/index.js +10 -9
  70. package/Modal/context.js +3 -3
  71. package/Modal/index.js +46 -68
  72. package/MultiSelect/components/MenuOverlay/index.js +48 -61
  73. package/MultiSelect/components/MenuOverlayItem/index.js +13 -14
  74. package/MultiSelect/index.js +72 -100
  75. package/MultiSelect/index.module.css +2 -1
  76. package/MultiSelect/utils/index.js +8 -18
  77. package/NumberInput/NumberInput.js +80 -112
  78. package/Portal/index.js +6 -10
  79. package/Progress/Progress.js +45 -58
  80. package/RadioGroup/Radio.js +29 -32
  81. package/RadioGroup/index.js +43 -46
  82. package/Rating/Rating.js +50 -63
  83. package/Select/components/MenuOverlay/index.js +16 -25
  84. package/Select/components/MenuOverlayItem/index.js +13 -11
  85. package/Select/index.js +39 -48
  86. package/Select/index.module.css +2 -1
  87. package/Separator/index.js +5 -6
  88. package/Sheet/Sheet.js +89 -121
  89. package/Sheet/Sheet.module.css +4 -2
  90. package/Skeleton/index.js +25 -30
  91. package/Slider/Slider.js +83 -119
  92. package/Status/index.js +17 -18
  93. package/Switch/Switch.module.css +2 -1
  94. package/Switch/index.js +22 -15
  95. package/TabsMenu/Tab/Tab.js +14 -10
  96. package/TabsMenu/Tab/Tab.module.css +2 -1
  97. package/TabsMenu/index.js +25 -26
  98. package/TabsPanels/Panel/index.js +6 -4
  99. package/TabsPanels/index.js +13 -10
  100. package/TextArea/index.d.ts +1 -1
  101. package/TextArea/index.js +30 -19
  102. package/Theme/breakpoints.js +5 -11
  103. package/Theme/colors/theme_buenos_aires.js +14 -14
  104. package/Theme/colors/theme_jaipur.js +14 -14
  105. package/Theme/global.css +0 -1
  106. package/Theme/index.js +1 -1
  107. package/TimeSelect/Label/index.js +11 -13
  108. package/TimeSelect/helpers.js +23 -42
  109. package/TimeSelect/index.js +32 -38
  110. package/Tooltip/index.js +36 -42
  111. package/Typography/index.js +17 -13
  112. package/Typography/index.props.d.ts +3 -0
  113. package/base/BaseInput/index.js +10 -8
  114. package/base/FormField/index.d.ts +1 -1
  115. package/base/FormField/index.js +27 -22
  116. package/base/FormField/index.props.d.ts +4 -0
  117. package/base/InputRoot/index.js +27 -27
  118. package/esm/Accordion/Accordion.module.css +4 -0
  119. package/esm/Accordion/index.js +15 -21
  120. package/esm/Autocomplete/Autocomplete.js +101 -130
  121. package/esm/Avatar/Avatar.module.css +6 -0
  122. package/esm/Avatar/index.js +102 -88
  123. package/esm/Badge/Badge.module.css +2 -1
  124. package/esm/Badge/Control/index.js +5 -3
  125. package/esm/Badge/index.js +16 -15
  126. package/esm/Button/index.js +23 -19
  127. package/esm/Button/tokens.js +2 -2
  128. package/esm/Calendar/Calendar.js +171 -267
  129. package/esm/Card/Card.js +26 -32
  130. package/esm/Checkbox/index.js +46 -42
  131. package/esm/Chip/Chip.module.css +2 -1
  132. package/esm/Chip/index.js +15 -14
  133. package/esm/ClickOutside/index.js +10 -13
  134. package/esm/CodeField/CodeField.js +113 -169
  135. package/esm/Counter/Counter.module.css +2 -1
  136. package/esm/Counter/index.js +21 -19
  137. package/esm/Datepicker/components/DatePicker/index.js +81 -101
  138. package/esm/Datepicker/index.js +17 -16
  139. package/esm/DotsLoader/index.js +23 -14
  140. package/esm/Drawer/Drawer.js +75 -96
  141. package/esm/Drawer/Drawer.module.css +2 -1
  142. package/esm/Dropdown/index.js +55 -66
  143. package/esm/Dropzone/Dropzone.js +78 -165
  144. package/esm/Dropzone/Dropzone.module.css +2 -1
  145. package/esm/Editable/Editable.js +44 -56
  146. package/esm/Grid/Item/index.js +11 -12
  147. package/esm/Grid/index.js +15 -21
  148. package/esm/Icons/ArrowNext.js +7 -8
  149. package/esm/Icons/Cart.js +7 -8
  150. package/esm/Icons/Check.js +7 -8
  151. package/esm/Icons/Chevron.js +7 -8
  152. package/esm/Icons/Close.js +6 -6
  153. package/esm/Icons/Copy.js +7 -8
  154. package/esm/Icons/Cross.js +6 -6
  155. package/esm/Icons/CrossFill.js +7 -8
  156. package/esm/Icons/Edit.js +7 -8
  157. package/esm/Icons/Exit.js +7 -8
  158. package/esm/Icons/EyeClosed.js +7 -8
  159. package/esm/Icons/EyeOpen.js +7 -8
  160. package/esm/Icons/Help.js +6 -6
  161. package/esm/Icons/Info.js +7 -8
  162. package/esm/Icons/Minus.js +7 -8
  163. package/esm/Icons/More.js +7 -8
  164. package/esm/Icons/Plus.js +7 -8
  165. package/esm/Icons/Setting.js +7 -8
  166. package/esm/Icons/Shield.js +7 -8
  167. package/esm/Icons/Trash.js +7 -8
  168. package/esm/Icons/User.js +7 -8
  169. package/esm/Image/Image.module.css +4 -0
  170. package/esm/Image/index.d.ts +1 -1
  171. package/esm/Image/index.js +44 -36
  172. package/esm/Input/index.d.ts +1 -1
  173. package/esm/Input/index.js +38 -26
  174. package/esm/Input/index.props.d.ts +1 -1
  175. package/esm/InputRadio/index.js +32 -23
  176. package/esm/List/List.js +81 -75
  177. package/esm/Menu/Menu.module.css +2 -1
  178. package/esm/Menu/components/MenuItem/index.js +17 -13
  179. package/esm/Menu/index.js +22 -23
  180. package/esm/Modal/components/Body/index.js +9 -7
  181. package/esm/Modal/components/Close/Close.module.css +4 -0
  182. package/esm/Modal/components/Close/index.js +13 -14
  183. package/esm/Modal/components/Content/index.js +5 -6
  184. package/esm/Modal/components/Footer/index.js +5 -3
  185. package/esm/Modal/components/Header/index.js +13 -11
  186. package/esm/Modal/components/Title/index.js +10 -9
  187. package/esm/Modal/context.js +3 -3
  188. package/esm/Modal/index.js +50 -70
  189. package/esm/MultiSelect/components/MenuOverlay/index.js +48 -60
  190. package/esm/MultiSelect/components/MenuOverlayItem/index.js +13 -14
  191. package/esm/MultiSelect/index.js +72 -97
  192. package/esm/MultiSelect/index.module.css +2 -1
  193. package/esm/MultiSelect/utils/index.js +8 -14
  194. package/esm/NumberInput/NumberInput.js +80 -111
  195. package/esm/Portal/index.js +6 -9
  196. package/esm/Progress/Progress.js +45 -58
  197. package/esm/RadioGroup/Radio.js +29 -32
  198. package/esm/RadioGroup/index.js +43 -45
  199. package/esm/Rating/Rating.js +50 -63
  200. package/esm/Select/components/MenuOverlay/index.js +16 -24
  201. package/esm/Select/components/MenuOverlayItem/index.js +13 -11
  202. package/esm/Select/index.js +39 -46
  203. package/esm/Select/index.module.css +2 -1
  204. package/esm/Separator/index.js +5 -6
  205. package/esm/Sheet/Sheet.js +89 -119
  206. package/esm/Sheet/Sheet.module.css +4 -2
  207. package/esm/Skeleton/index.js +25 -30
  208. package/esm/Slider/Slider.js +83 -119
  209. package/esm/Status/index.js +17 -17
  210. package/esm/Switch/Switch.module.css +2 -1
  211. package/esm/Switch/index.js +22 -14
  212. package/esm/TabsMenu/Tab/Tab.js +14 -9
  213. package/esm/TabsMenu/Tab/Tab.module.css +2 -1
  214. package/esm/TabsMenu/index.js +25 -26
  215. package/esm/TabsPanels/Panel/index.js +6 -4
  216. package/esm/TabsPanels/index.js +13 -10
  217. package/esm/TextArea/index.d.ts +1 -1
  218. package/esm/TextArea/index.js +31 -20
  219. package/esm/Theme/breakpoints.js +5 -11
  220. package/esm/Theme/colors/theme_buenos_aires.js +14 -14
  221. package/esm/Theme/colors/theme_jaipur.js +14 -14
  222. package/esm/Theme/global.css +0 -1
  223. package/esm/Theme/index.js +1 -1
  224. package/esm/TimeSelect/Label/index.js +11 -13
  225. package/esm/TimeSelect/helpers.js +22 -37
  226. package/esm/TimeSelect/index.js +32 -38
  227. package/esm/Tooltip/index.js +36 -41
  228. package/esm/Typography/index.js +17 -12
  229. package/esm/Typography/index.props.d.ts +3 -0
  230. package/esm/base/BaseInput/index.js +10 -8
  231. package/esm/base/FormField/index.d.ts +1 -1
  232. package/esm/base/FormField/index.js +27 -21
  233. package/esm/base/FormField/index.props.d.ts +4 -0
  234. package/esm/base/InputRoot/index.js +27 -26
  235. package/esm/helpers/date/index.js +4 -8
  236. package/esm/hooks/useMediaSizes/index.js +9 -15
  237. package/esm/hooks/useModalStack/index.js +6 -9
  238. package/esm/hooks/useOnClickOutside/index.js +6 -6
  239. package/esm/hooks/useScrollLock/index.js +10 -9
  240. package/esm/hooks/useTrapFocus/index.js +8 -10
  241. package/esm/lib/keyboard.js +2 -4
  242. package/helpers/date/index.js +21 -32
  243. package/hooks/useMediaSizes/index.js +9 -15
  244. package/hooks/useModalStack/index.js +6 -9
  245. package/hooks/useOnClickOutside/index.js +6 -6
  246. package/hooks/useScrollLock/index.js +10 -9
  247. package/hooks/useTrapFocus/index.js +8 -10
  248. package/lib/keyboard.js +2 -4
  249. package/package.json +5 -1
package/Dropdown/index.js CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
4
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
3
  var React = require('react');
6
4
  var clsx = require('clsx');
7
5
  var react = require('@floating-ui/react');
@@ -10,112 +8,101 @@ var styles = require('./Dropdown.module.css');
10
8
 
11
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
10
 
13
- var _toConsumableArray__default = /*#__PURE__*/_interopDefault(_toConsumableArray);
14
- var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
15
11
  var React__default = /*#__PURE__*/_interopDefault(React);
16
12
  var clsx__default = /*#__PURE__*/_interopDefault(clsx);
17
13
  var styles__default = /*#__PURE__*/_interopDefault(styles);
18
14
 
19
- var Dropdown = function Dropdown(_ref) {
20
- var children = _ref.children,
21
- zIndex = _ref.zIndex,
22
- fontSize = _ref.fontSize,
23
- disabled = _ref.disabled,
24
- _ref$defaultVisible = _ref.defaultVisible,
25
- defaultVisible = _ref$defaultVisible === void 0 ? false : _ref$defaultVisible,
26
- onVisibleChange = _ref.onVisibleChange,
27
- overlay = _ref.overlay,
28
- _ref$placement = _ref.placement,
29
- placement = _ref$placement === void 0 ? "bottom-center" : _ref$placement,
30
- _ref$strategy = _ref.strategy,
31
- strategy = _ref$strategy === void 0 ? "absolute" : _ref$strategy,
32
- _ref$trigger = _ref.trigger,
33
- trigger = _ref$trigger === void 0 ? ["hover"] : _ref$trigger,
34
- visibleProp = _ref.visible,
35
- _ref$preventOverflow = _ref.preventOverflow,
36
- preventOverflow = _ref$preventOverflow === void 0 ? false : _ref$preventOverflow,
37
- _ref$preventAutoClose = _ref.preventAutoClose,
38
- preventAutoClose = _ref$preventAutoClose === void 0 ? false : _ref$preventAutoClose,
39
- _ref$flip = _ref.flip,
40
- flipEnabled = _ref$flip === void 0 ? true : _ref$flip,
41
- _ref$samewidth = _ref.samewidth,
42
- samewidth = _ref$samewidth === void 0 ? false : _ref$samewidth;
15
+ const Dropdown = ({
16
+ children,
17
+ zIndex,
18
+ fontSize,
19
+ disabled,
20
+ defaultVisible = false,
21
+ onVisibleChange,
22
+ overlay,
23
+ placement = "bottom-center",
24
+ strategy = "absolute",
25
+ trigger = ["hover"],
26
+ visible: visibleProp,
27
+ preventOverflow = false,
28
+ preventAutoClose = false,
29
+ flip: flipEnabled = true,
30
+ samewidth = false
31
+ }) => {
43
32
  var _a;
44
- var _useState = React.useState(defaultVisible),
45
- _useState2 = _slicedToArray__default.default(_useState, 2),
46
- internalVisible = _useState2[0],
47
- setInternalVisible = _useState2[1];
48
- var isControlled = visibleProp !== undefined;
49
- var visible = isControlled ? visibleProp : internalVisible;
50
- var isVisible = visible && !disabled;
51
- var setOpen = React.useCallback(function (nextVisible) {
33
+ const [internalVisible, setInternalVisible] = React.useState(defaultVisible);
34
+ const isControlled = visibleProp !== undefined;
35
+ const visible = isControlled ? visibleProp : internalVisible;
36
+ const isVisible = visible && !disabled;
37
+ const setOpen = React.useCallback(nextVisible => {
52
38
  if (disabled && nextVisible) return;
53
39
  if (!isControlled) {
54
40
  setInternalVisible(nextVisible);
55
41
  }
56
42
  onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(nextVisible);
57
43
  }, [disabled, isControlled, onVisibleChange]);
58
- var _useFloating = react.useFloating({
59
- open: isVisible,
60
- onOpenChange: setOpen,
61
- placement: placement,
62
- strategy: strategy,
63
- whileElementsMounted: react.autoUpdate,
64
- middleware: [react.offset(6)].concat(_toConsumableArray__default.default(flipEnabled ? [react.flip()] : []), _toConsumableArray__default.default(preventOverflow ? [react.shift()] : []))
65
- }),
66
- refs = _useFloating.refs,
67
- floatingStyles = _useFloating.floatingStyles,
68
- context = _useFloating.context,
69
- update = _useFloating.update,
70
- finalPlacement = _useFloating.placement;
71
- var hover = react.useHover(context, {
44
+ const {
45
+ refs,
46
+ floatingStyles,
47
+ context,
48
+ update,
49
+ placement: finalPlacement
50
+ } = react.useFloating({
51
+ open: isVisible,
52
+ onOpenChange: setOpen,
53
+ placement,
54
+ strategy,
55
+ whileElementsMounted: react.autoUpdate,
56
+ middleware: [react.offset(6), ...(flipEnabled ? [react.flip()] : []), ...(preventOverflow ? [react.shift()] : [])]
57
+ });
58
+ const hover = react.useHover(context, {
72
59
  enabled: !disabled && trigger.includes("hover")
73
60
  });
74
- var click = react.useClick(context, {
61
+ const click = react.useClick(context, {
75
62
  enabled: !disabled && trigger.includes("click")
76
63
  });
77
- var focus = react.useFocus(context, {
64
+ const focus = react.useFocus(context, {
78
65
  enabled: !disabled && trigger.includes("focus")
79
66
  });
80
- var dismiss = react.useDismiss(context, {
67
+ const dismiss = react.useDismiss(context, {
81
68
  outsidePress: false
82
69
  });
83
- var role = react.useRole(context, {
70
+ const role = react.useRole(context, {
84
71
  role: "menu"
85
72
  });
86
- var _useInteractions = react.useInteractions([hover, click, focus, dismiss, role]),
87
- getReferenceProps = _useInteractions.getReferenceProps,
88
- getFloatingProps = _useInteractions.getFloatingProps;
89
- var isNotComponent = typeof children === "string";
90
- var reference = React.useMemo(function () {
73
+ const {
74
+ getReferenceProps,
75
+ getFloatingProps
76
+ } = react.useInteractions([hover, click, focus, dismiss, role]);
77
+ const isNotComponent = typeof children === "string";
78
+ const reference = React.useMemo(() => {
91
79
  if (!children) return null;
92
80
  return React.Children.only(isNotComponent ? /*#__PURE__*/React__default.default.createElement("button", null, children) : children);
93
81
  }, [children, isNotComponent]);
94
- var onClickOverlay = React.useCallback(function (event) {
82
+ const onClickOverlay = React.useCallback(event => {
95
83
  event.stopPropagation();
96
84
  if (!preventAutoClose) {
97
85
  setOpen(false);
98
86
  }
99
87
  }, [preventAutoClose, setOpen]);
100
- React.useEffect(function () {
88
+ React.useEffect(() => {
101
89
  if (update) update();
102
90
  }, [update, visible]);
103
91
  return /*#__PURE__*/React__default.default.createElement(React__default.default.Fragment, null, reference && /*#__PURE__*/React__default.default.cloneElement(reference, Object.assign({
104
92
  ref: refs.setReference,
105
93
  tabIndex: 0
106
94
  }, getReferenceProps(reference.props))), isVisible && (/*#__PURE__*/React__default.default.createElement(react.FloatingPortal, null, /*#__PURE__*/React__default.default.createElement(index.ClickOutside, {
107
- onClick: function onClick() {
108
- return setOpen(false);
109
- }
95
+ onClick: () => setOpen(false)
110
96
  }, /*#__PURE__*/React__default.default.createElement("div", Object.assign({
111
97
  ref: refs.setFloating,
112
98
  "data-testid": "popper-container",
113
- className: clsx__default.default(styles__default.default["popper-container"], styles__default.default["placement-".concat(finalPlacement)]),
99
+ className: clsx__default.default(styles__default.default["popper-container"], styles__default.default[`placement-${finalPlacement}`]),
114
100
  style: Object.assign(Object.assign({}, floatingStyles), {
115
- zIndex: zIndex,
116
- minWidth: samewidth ? "".concat((_a = refs.reference.current) === null || _a === void 0 ? void 0 : _a.offsetWidth, "px") : undefined,
117
- fontSize: "".concat(fontSize, "px")
101
+ zIndex,
102
+ minWidth: samewidth ? `${(_a = refs.reference.current) === null || _a === void 0 ? void 0 : _a.offsetWidth}px` : undefined,
103
+ fontSize: `${fontSize}px`
118
104
  }),
105
+ role: "menu",
119
106
  tabIndex: 0
120
107
  }, getFloatingProps()), /*#__PURE__*/React__default.default.createElement("div", {
121
108
  "data-testid": "overlay-container",
@@ -1,114 +1,77 @@
1
1
  'use strict';
2
2
 
3
- var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
4
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
- var _regeneratorRuntime = require('@babel/runtime/regenerator');
6
3
  var tslib = require('tslib');
7
4
  var React = require('react');
8
5
  var styles = require('./Dropzone.module.css');
9
6
 
10
7
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
8
 
12
- var _asyncToGenerator__default = /*#__PURE__*/_interopDefault(_asyncToGenerator);
13
- var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
14
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefault(_regeneratorRuntime);
15
9
  var React__default = /*#__PURE__*/_interopDefault(React);
16
10
  var styles__default = /*#__PURE__*/_interopDefault(styles);
17
11
 
18
- var cx = function cx() {
19
- for (var _len = arguments.length, classNames = new Array(_len), _key = 0; _key < _len; _key++) {
20
- classNames[_key] = arguments[_key];
21
- }
22
- return classNames.filter(Boolean).join(" ");
23
- };
24
- var toCssSize = function toCssSize(value, fallback) {
12
+ const cx = (...classNames) => classNames.filter(Boolean).join(" ");
13
+ const toCssSize = (value, fallback) => {
25
14
  if (value === undefined) return fallback;
26
- return typeof value === "number" ? "".concat(value, "px") : value;
27
- };
28
- var UploadIcon = function UploadIcon() {
29
- return /*#__PURE__*/React__default.default.createElement("svg", {
30
- className: styles__default.default["default-icon"],
31
- viewBox: "0 0 24 24",
32
- "aria-hidden": "true",
33
- focusable: "false"
34
- }, /*#__PURE__*/React__default.default.createElement("path", {
35
- d: "M11 14.6V5.8L7.7 9.1 6.3 7.7 12 2l5.7 5.7-1.4 1.4L13 5.8v8.8h-2ZM4 22a2 2 0 0 1-2-2v-5h2v5h16v-5h2v5a2 2 0 0 1-2 2H4Z"
36
- }));
15
+ return typeof value === "number" ? `${value}px` : value;
37
16
  };
38
- var Dropzone = /*#__PURE__*/React.forwardRef(function DropzoneInput(_a, forwardedRef) {
39
- var files = _a.files,
40
- title = _a.title,
41
- description = _a.description,
42
- icon = _a.icon,
43
- _a$iconPlacement = _a.iconPlacement,
44
- iconPlacement = _a$iconPlacement === void 0 ? "left" : _a$iconPlacement,
45
- _a$size = _a.size,
46
- size = _a$size === void 0 ? "m" : _a$size,
47
- _a$view = _a.view,
48
- view = _a$view === void 0 ? "default" : _a$view,
49
- _a$stretch = _a.stretch,
50
- stretch = _a$stretch === void 0 ? false : _a$stretch,
51
- width = _a.width,
52
- height = _a.height,
53
- _a$disabled = _a.disabled,
54
- disabled = _a$disabled === void 0 ? false : _a$disabled,
55
- accept = _a.accept,
56
- _a$multiple = _a.multiple,
57
- multiple = _a$multiple === void 0 ? false : _a$multiple,
58
- validator = _a.validator,
59
- className = _a.className,
60
- style = _a.style,
61
- onDrop = _a.onDrop,
62
- onChoseFiles = _a.onChoseFiles,
63
- _onChange = _a.onChange,
64
- _onClick = _a.onClick,
65
- onDragEnter = _a.onDragEnter,
66
- onDragLeave = _a.onDragLeave,
67
- onDragOver = _a.onDragOver,
17
+ const UploadIcon = () => (/*#__PURE__*/React__default.default.createElement("svg", {
18
+ className: styles__default.default["default-icon"],
19
+ viewBox: "0 0 24 24",
20
+ "aria-hidden": "true",
21
+ focusable: "false"
22
+ }, /*#__PURE__*/React__default.default.createElement("path", {
23
+ d: "M11 14.6V5.8L7.7 9.1 6.3 7.7 12 2l5.7 5.7-1.4 1.4L13 5.8v8.8h-2ZM4 22a2 2 0 0 1-2-2v-5h2v5h16v-5h2v5a2 2 0 0 1-2 2H4Z"
24
+ })));
25
+ const Dropzone = /*#__PURE__*/React.forwardRef(function DropzoneInput(_a, forwardedRef) {
26
+ var {
27
+ files,
28
+ title,
29
+ description,
30
+ icon,
31
+ iconPlacement = "left",
32
+ size = "m",
33
+ view = "default",
34
+ stretch = false,
35
+ width,
36
+ height,
37
+ disabled = false,
38
+ accept,
39
+ multiple = false,
40
+ validator,
41
+ className,
42
+ style,
43
+ onDrop,
44
+ onChoseFiles,
45
+ onChange,
46
+ onClick,
47
+ onDragEnter,
48
+ onDragLeave,
49
+ onDragOver
50
+ } = _a,
68
51
  inputProps = tslib.__rest(_a, ["files", "title", "description", "icon", "iconPlacement", "size", "view", "stretch", "width", "height", "disabled", "accept", "multiple", "validator", "className", "style", "onDrop", "onChoseFiles", "onChange", "onClick", "onDragEnter", "onDragLeave", "onDragOver"]);
69
- var inputRef = React.useRef(null);
70
- var dragDepth = React.useRef(0);
71
- var _useState = React.useState(false),
72
- _useState2 = _slicedToArray__default.default(_useState, 2),
73
- isActive = _useState2[0],
74
- setIsActive = _useState2[1];
75
- var _useState3 = React.useState([]),
76
- _useState4 = _slicedToArray__default.default(_useState3, 2),
77
- internalFiles = _useState4[0],
78
- setInternalFiles = _useState4[1];
79
- var currentFiles = files !== null && files !== void 0 ? files : internalFiles;
80
- var setInputRef = function setInputRef(element) {
52
+ const inputRef = React.useRef(null);
53
+ const dragDepth = React.useRef(0);
54
+ const [isActive, setIsActive] = React.useState(false);
55
+ const [internalFiles, setInternalFiles] = React.useState([]);
56
+ const currentFiles = files !== null && files !== void 0 ? files : internalFiles;
57
+ const setInputRef = element => {
81
58
  inputRef.current = element;
82
59
  if (typeof forwardedRef === "function") forwardedRef(element);else if (forwardedRef) forwardedRef.current = element;
83
60
  };
84
- React.useEffect(function () {
61
+ React.useEffect(() => {
85
62
  if (inputRef.current) inputRef.current.value = "";
86
63
  }, [currentFiles]);
87
- var validateFiles = /*#__PURE__*/function () {
88
- var _ref = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee(rawFiles) {
89
- var selectedFiles;
90
- return _regeneratorRuntime__default.default.wrap(function (_context) {
91
- while (1) switch (_context.prev = _context.next) {
92
- case 0:
93
- selectedFiles = Array.from(rawFiles);
94
- return _context.abrupt("return", validator ? validator(selectedFiles) : {
95
- acceptedFiles: selectedFiles
96
- });
97
- case 1:
98
- case "end":
99
- return _context.stop();
100
- }
101
- }, _callee);
102
- }));
103
- return function validateFiles(_x) {
104
- return _ref.apply(this, arguments);
64
+ const validateFiles = async rawFiles => {
65
+ const selectedFiles = Array.from(rawFiles);
66
+ return validator ? validator(selectedFiles) : {
67
+ acceptedFiles: selectedFiles
105
68
  };
106
- }();
107
- var openFileDialog = function openFileDialog() {
69
+ };
70
+ const openFileDialog = () => {
108
71
  var _a;
109
72
  if (!disabled) (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click();
110
73
  };
111
- var handleDragEnter = function handleDragEnter(event) {
74
+ const handleDragEnter = event => {
112
75
  if (disabled) return;
113
76
  event.preventDefault();
114
77
  event.stopPropagation();
@@ -118,7 +81,7 @@ var Dropzone = /*#__PURE__*/React.forwardRef(function DropzoneInput(_a, forwarde
118
81
  onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(event);
119
82
  }
120
83
  };
121
- var handleDragLeave = function handleDragLeave(event) {
84
+ const handleDragLeave = event => {
122
85
  if (disabled) return;
123
86
  event.preventDefault();
124
87
  event.stopPropagation();
@@ -128,53 +91,24 @@ var Dropzone = /*#__PURE__*/React.forwardRef(function DropzoneInput(_a, forwarde
128
91
  onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(event);
129
92
  }
130
93
  };
131
- var handleDragOver = function handleDragOver(event) {
94
+ const handleDragOver = event => {
132
95
  if (disabled) return;
133
96
  event.preventDefault();
134
97
  event.dataTransfer.dropEffect = "copy";
135
98
  onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver(event);
136
99
  };
137
- var handleDrop = /*#__PURE__*/function () {
138
- var _ref2 = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee2(event) {
139
- var result;
140
- return _regeneratorRuntime__default.default.wrap(function (_context2) {
141
- while (1) switch (_context2.prev = _context2.next) {
142
- case 0:
143
- if (!disabled) {
144
- _context2.next = 1;
145
- break;
146
- }
147
- return _context2.abrupt("return");
148
- case 1:
149
- event.preventDefault();
150
- event.stopPropagation();
151
- dragDepth.current = 0;
152
- setIsActive(false);
153
- if (event.dataTransfer.files.length) {
154
- _context2.next = 2;
155
- break;
156
- }
157
- return _context2.abrupt("return");
158
- case 2:
159
- _context2.next = 3;
160
- return validateFiles(event.dataTransfer.files);
161
- case 3:
162
- result = _context2.sent;
163
- _context2.next = 4;
164
- return onDrop === null || onDrop === void 0 ? void 0 : onDrop(result);
165
- case 4:
166
- event.dataTransfer.clearData();
167
- case 5:
168
- case "end":
169
- return _context2.stop();
170
- }
171
- }, _callee2);
172
- }));
173
- return function handleDrop(_x2) {
174
- return _ref2.apply(this, arguments);
175
- };
176
- }();
177
- var rootStyle = Object.assign(Object.assign({}, style), {
100
+ const handleDrop = async event => {
101
+ if (disabled) return;
102
+ event.preventDefault();
103
+ event.stopPropagation();
104
+ dragDepth.current = 0;
105
+ setIsActive(false);
106
+ if (!event.dataTransfer.files.length) return;
107
+ const result = await validateFiles(event.dataTransfer.files);
108
+ await (onDrop === null || onDrop === void 0 ? void 0 : onDrop(result));
109
+ event.dataTransfer.clearData();
110
+ };
111
+ const rootStyle = Object.assign(Object.assign({}, style), {
178
112
  "--dropzone-width": stretch ? "100%" : toCssSize(width, "fit-content"),
179
113
  "--dropzone-height": stretch ? "100%" : toCssSize(height, "fit-content")
180
114
  });
@@ -184,13 +118,13 @@ var Dropzone = /*#__PURE__*/React.forwardRef(function DropzoneInput(_a, forwarde
184
118
  tabIndex: disabled ? -1 : 0,
185
119
  role: "button",
186
120
  "aria-disabled": disabled || undefined,
187
- onClick: function onClick(event) {
121
+ onClick: event => {
188
122
  // A programmatic input.click() bubbles back to the root.
189
123
  if (event.target === inputRef.current) return;
190
- _onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
124
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
191
125
  if (!event.defaultPrevented) openFileDialog();
192
126
  },
193
- onKeyDown: function onKeyDown(event) {
127
+ onKeyDown: event => {
194
128
  if (event.key === "Enter" || event.key === " ") {
195
129
  event.preventDefault();
196
130
  openFileDialog();
@@ -218,40 +152,16 @@ var Dropzone = /*#__PURE__*/React.forwardRef(function DropzoneInput(_a, forwarde
218
152
  multiple: multiple,
219
153
  disabled: disabled,
220
154
  tabIndex: -1,
221
- onChange: function () {
222
- var _onChange2 = _asyncToGenerator__default.default(/*#__PURE__*/_regeneratorRuntime__default.default.mark(function _callee3(event) {
223
- var _a, input, result;
224
- return _regeneratorRuntime__default.default.wrap(function (_context3) {
225
- while (1) switch (_context3.prev = _context3.next) {
226
- case 0:
227
- input = event.currentTarget;
228
- _onChange === null || _onChange === void 0 ? void 0 : _onChange(event);
229
- if (!(event.defaultPrevented || disabled || !((_a = input.files) === null || _a === void 0 ? void 0 : _a.length))) {
230
- _context3.next = 1;
231
- break;
232
- }
233
- return _context3.abrupt("return");
234
- case 1:
235
- _context3.next = 2;
236
- return validateFiles(input.files);
237
- case 2:
238
- result = _context3.sent;
239
- if (files === undefined) setInternalFiles(result.acceptedFiles);
240
- _context3.next = 3;
241
- return onChoseFiles === null || onChoseFiles === void 0 ? void 0 : onChoseFiles(result);
242
- case 3:
243
- input.value = "";
244
- case 4:
245
- case "end":
246
- return _context3.stop();
247
- }
248
- }, _callee3);
249
- }));
250
- function onChange(_x3) {
251
- return _onChange2.apply(this, arguments);
252
- }
253
- return onChange;
254
- }()
155
+ onChange: async event => {
156
+ var _a;
157
+ const input = event.currentTarget;
158
+ onChange === null || onChange === void 0 ? void 0 : onChange(event);
159
+ if (event.defaultPrevented || disabled || !((_a = input.files) === null || _a === void 0 ? void 0 : _a.length)) return;
160
+ const result = await validateFiles(input.files);
161
+ if (files === undefined) setInternalFiles(result.acceptedFiles);
162
+ await (onChoseFiles === null || onChoseFiles === void 0 ? void 0 : onChoseFiles(result));
163
+ input.value = "";
164
+ }
255
165
  })));
256
166
  });
257
167
 
@@ -57,7 +57,8 @@
57
57
  justify-content: center;
58
58
  min-width: 0;
59
59
  pointer-events: none;
60
- user-select: none;
60
+ -webkit-user-select: none;
61
+ user-select: none;
61
62
  width: 100%;
62
63
  }
63
64