colibri-ui 0.8.83 → 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.
- package/Accordion/Accordion.module.css +4 -0
- package/Accordion/index.js +15 -23
- package/Autocomplete/Autocomplete.js +101 -132
- package/Avatar/Avatar.module.css +6 -0
- package/Avatar/index.js +102 -89
- package/Badge/Badge.module.css +2 -1
- package/Badge/Control/index.js +5 -3
- package/Badge/index.js +16 -16
- package/Button/index.js +23 -20
- package/Button/tokens.js +2 -2
- package/Calendar/Calendar.js +171 -269
- package/Card/Card.js +26 -32
- package/Checkbox/index.js +46 -43
- package/Chip/Chip.module.css +2 -1
- package/Chip/index.js +15 -15
- package/ClickOutside/index.js +10 -13
- package/CodeField/CodeField.js +113 -170
- package/Counter/Counter.module.css +2 -1
- package/Counter/index.js +21 -20
- package/Datepicker/components/DatePicker/index.js +81 -102
- package/Datepicker/index.js +17 -16
- package/DotsLoader/index.js +23 -15
- package/Drawer/Drawer.js +75 -97
- package/Drawer/Drawer.module.css +2 -1
- package/Dropdown/index.js +55 -68
- package/Dropzone/Dropzone.js +78 -168
- package/Dropzone/Dropzone.module.css +2 -1
- package/Editable/Editable.js +44 -57
- package/Grid/Item/index.js +11 -13
- package/Grid/index.js +15 -21
- package/Icons/ArrowNext.js +7 -8
- package/Icons/Cart.js +7 -8
- package/Icons/Check.js +7 -8
- package/Icons/Chevron.js +7 -8
- package/Icons/Close.js +6 -6
- package/Icons/Copy.js +7 -8
- package/Icons/Cross.js +6 -6
- package/Icons/CrossFill.js +7 -8
- package/Icons/Edit.js +7 -8
- package/Icons/Exit.js +7 -8
- package/Icons/EyeClosed.js +7 -8
- package/Icons/EyeOpen.js +7 -8
- package/Icons/Help.js +6 -6
- package/Icons/Info.js +7 -8
- package/Icons/Minus.js +7 -8
- package/Icons/More.js +7 -8
- package/Icons/Plus.js +7 -8
- package/Icons/Setting.js +7 -8
- package/Icons/Shield.js +7 -8
- package/Icons/Trash.js +7 -8
- package/Icons/User.js +7 -8
- package/Image/Image.module.css +4 -0
- package/Image/index.d.ts +1 -1
- package/Image/index.js +44 -37
- package/Input/index.d.ts +1 -1
- package/Input/index.js +38 -25
- package/Input/index.props.d.ts +1 -1
- package/InputRadio/index.js +32 -24
- package/List/List.js +81 -76
- package/Menu/Menu.module.css +2 -1
- package/Menu/components/MenuItem/index.js +17 -14
- package/Menu/index.js +22 -23
- package/Modal/components/Body/index.js +9 -8
- package/Modal/components/Close/Close.module.css +4 -0
- package/Modal/components/Close/index.js +13 -14
- package/Modal/components/Content/index.js +5 -6
- package/Modal/components/Footer/index.js +5 -3
- package/Modal/components/Header/index.js +13 -12
- package/Modal/components/Title/index.js +10 -9
- package/Modal/context.js +3 -3
- package/Modal/index.js +46 -68
- package/MultiSelect/components/MenuOverlay/index.js +48 -61
- package/MultiSelect/components/MenuOverlayItem/index.js +13 -14
- package/MultiSelect/index.js +72 -100
- package/MultiSelect/index.module.css +2 -1
- package/MultiSelect/utils/index.js +8 -18
- package/NumberInput/NumberInput.js +80 -112
- package/Portal/index.js +6 -10
- package/Progress/Progress.js +45 -58
- package/RadioGroup/Radio.js +29 -32
- package/RadioGroup/index.js +43 -46
- package/Rating/Rating.js +50 -63
- package/Select/components/MenuOverlay/index.js +16 -25
- package/Select/components/MenuOverlayItem/index.js +13 -11
- package/Select/index.js +39 -48
- package/Select/index.module.css +2 -1
- package/Separator/index.js +5 -6
- package/Sheet/Sheet.js +89 -121
- package/Sheet/Sheet.module.css +4 -2
- package/Skeleton/index.js +25 -30
- package/Slider/Slider.js +83 -119
- package/Status/index.js +17 -18
- package/Switch/Switch.module.css +2 -1
- package/Switch/index.js +22 -15
- package/TabsMenu/Tab/Tab.js +14 -10
- package/TabsMenu/Tab/Tab.module.css +2 -1
- package/TabsMenu/index.js +25 -26
- package/TabsPanels/Panel/index.js +6 -4
- package/TabsPanels/index.js +13 -10
- package/TextArea/index.d.ts +1 -1
- package/TextArea/index.js +31 -19
- package/Theme/breakpoints.js +5 -11
- package/Theme/colors/theme_buenos_aires.js +14 -14
- package/Theme/colors/theme_jaipur.js +14 -14
- package/Theme/global.css +0 -1
- package/Theme/index.js +1 -1
- package/TimeSelect/Label/index.js +11 -13
- package/TimeSelect/helpers.js +23 -42
- package/TimeSelect/index.js +32 -38
- package/Tooltip/index.js +36 -42
- package/Typography/index.js +17 -13
- package/Typography/index.props.d.ts +3 -0
- package/base/BaseInput/index.js +10 -8
- package/base/FormField/index.d.ts +1 -1
- package/base/FormField/index.js +27 -22
- package/base/FormField/index.props.d.ts +4 -0
- package/base/InputRoot/index.js +27 -27
- package/esm/Accordion/Accordion.module.css +4 -0
- package/esm/Accordion/index.js +15 -21
- package/esm/Autocomplete/Autocomplete.js +101 -130
- package/esm/Avatar/Avatar.module.css +6 -0
- package/esm/Avatar/index.js +102 -88
- package/esm/Badge/Badge.module.css +2 -1
- package/esm/Badge/Control/index.js +5 -3
- package/esm/Badge/index.js +16 -15
- package/esm/Button/index.js +23 -19
- package/esm/Button/tokens.js +2 -2
- package/esm/Calendar/Calendar.js +171 -267
- package/esm/Card/Card.js +26 -32
- package/esm/Checkbox/index.js +46 -42
- package/esm/Chip/Chip.module.css +2 -1
- package/esm/Chip/index.js +15 -14
- package/esm/ClickOutside/index.js +10 -13
- package/esm/CodeField/CodeField.js +113 -169
- package/esm/Counter/Counter.module.css +2 -1
- package/esm/Counter/index.js +21 -19
- package/esm/Datepicker/components/DatePicker/index.js +81 -101
- package/esm/Datepicker/index.js +17 -16
- package/esm/DotsLoader/index.js +23 -14
- package/esm/Drawer/Drawer.js +75 -96
- package/esm/Drawer/Drawer.module.css +2 -1
- package/esm/Dropdown/index.js +55 -66
- package/esm/Dropzone/Dropzone.js +78 -165
- package/esm/Dropzone/Dropzone.module.css +2 -1
- package/esm/Editable/Editable.js +44 -56
- package/esm/Grid/Item/index.js +11 -12
- package/esm/Grid/index.js +15 -21
- package/esm/Icons/ArrowNext.js +7 -8
- package/esm/Icons/Cart.js +7 -8
- package/esm/Icons/Check.js +7 -8
- package/esm/Icons/Chevron.js +7 -8
- package/esm/Icons/Close.js +6 -6
- package/esm/Icons/Copy.js +7 -8
- package/esm/Icons/Cross.js +6 -6
- package/esm/Icons/CrossFill.js +7 -8
- package/esm/Icons/Edit.js +7 -8
- package/esm/Icons/Exit.js +7 -8
- package/esm/Icons/EyeClosed.js +7 -8
- package/esm/Icons/EyeOpen.js +7 -8
- package/esm/Icons/Help.js +6 -6
- package/esm/Icons/Info.js +7 -8
- package/esm/Icons/Minus.js +7 -8
- package/esm/Icons/More.js +7 -8
- package/esm/Icons/Plus.js +7 -8
- package/esm/Icons/Setting.js +7 -8
- package/esm/Icons/Shield.js +7 -8
- package/esm/Icons/Trash.js +7 -8
- package/esm/Icons/User.js +7 -8
- package/esm/Image/Image.module.css +4 -0
- package/esm/Image/index.d.ts +1 -1
- package/esm/Image/index.js +44 -36
- package/esm/Input/index.d.ts +1 -1
- package/esm/Input/index.js +39 -26
- package/esm/Input/index.props.d.ts +1 -1
- package/esm/InputRadio/index.js +32 -23
- package/esm/List/List.js +81 -75
- package/esm/Menu/Menu.module.css +2 -1
- package/esm/Menu/components/MenuItem/index.js +17 -13
- package/esm/Menu/index.js +22 -23
- package/esm/Modal/components/Body/index.js +9 -7
- package/esm/Modal/components/Close/Close.module.css +4 -0
- package/esm/Modal/components/Close/index.js +13 -14
- package/esm/Modal/components/Content/index.js +5 -6
- package/esm/Modal/components/Footer/index.js +5 -3
- package/esm/Modal/components/Header/index.js +13 -11
- package/esm/Modal/components/Title/index.js +10 -9
- package/esm/Modal/context.js +3 -3
- package/esm/Modal/index.js +50 -70
- package/esm/MultiSelect/components/MenuOverlay/index.js +48 -60
- package/esm/MultiSelect/components/MenuOverlayItem/index.js +13 -14
- package/esm/MultiSelect/index.js +72 -97
- package/esm/MultiSelect/index.module.css +2 -1
- package/esm/MultiSelect/utils/index.js +8 -14
- package/esm/NumberInput/NumberInput.js +80 -111
- package/esm/Portal/index.js +6 -9
- package/esm/Progress/Progress.js +45 -58
- package/esm/RadioGroup/Radio.js +29 -32
- package/esm/RadioGroup/index.js +43 -45
- package/esm/Rating/Rating.js +50 -63
- package/esm/Select/components/MenuOverlay/index.js +16 -24
- package/esm/Select/components/MenuOverlayItem/index.js +13 -11
- package/esm/Select/index.js +39 -46
- package/esm/Select/index.module.css +2 -1
- package/esm/Separator/index.js +5 -6
- package/esm/Sheet/Sheet.js +89 -119
- package/esm/Sheet/Sheet.module.css +4 -2
- package/esm/Skeleton/index.js +25 -30
- package/esm/Slider/Slider.js +83 -119
- package/esm/Status/index.js +17 -17
- package/esm/Switch/Switch.module.css +2 -1
- package/esm/Switch/index.js +22 -14
- package/esm/TabsMenu/Tab/Tab.js +14 -9
- package/esm/TabsMenu/Tab/Tab.module.css +2 -1
- package/esm/TabsMenu/index.js +25 -26
- package/esm/TabsPanels/Panel/index.js +6 -4
- package/esm/TabsPanels/index.js +13 -10
- package/esm/TextArea/index.d.ts +1 -1
- package/esm/TextArea/index.js +32 -20
- package/esm/Theme/breakpoints.js +5 -11
- package/esm/Theme/colors/theme_buenos_aires.js +14 -14
- package/esm/Theme/colors/theme_jaipur.js +14 -14
- package/esm/Theme/global.css +0 -1
- package/esm/Theme/index.js +1 -1
- package/esm/TimeSelect/Label/index.js +11 -13
- package/esm/TimeSelect/helpers.js +22 -37
- package/esm/TimeSelect/index.js +32 -38
- package/esm/Tooltip/index.js +36 -41
- package/esm/Typography/index.js +17 -12
- package/esm/Typography/index.props.d.ts +3 -0
- package/esm/base/BaseInput/index.js +10 -8
- package/esm/base/FormField/index.d.ts +1 -1
- package/esm/base/FormField/index.js +27 -21
- package/esm/base/FormField/index.props.d.ts +4 -0
- package/esm/base/InputRoot/index.js +27 -26
- package/esm/helpers/date/index.js +4 -8
- package/esm/hooks/useMediaSizes/index.js +9 -15
- package/esm/hooks/useModalStack/index.js +6 -9
- package/esm/hooks/useOnClickOutside/index.js +6 -6
- package/esm/hooks/useScrollLock/index.js +10 -9
- package/esm/hooks/useTrapFocus/index.js +8 -10
- package/esm/lib/keyboard.js +2 -4
- package/helpers/date/index.js +21 -32
- package/hooks/useMediaSizes/index.js +9 -15
- package/hooks/useModalStack/index.js +6 -9
- package/hooks/useOnClickOutside/index.js +6 -6
- package/hooks/useScrollLock/index.js +10 -9
- package/hooks/useTrapFocus/index.js +8 -10
- package/lib/keyboard.js +2 -4
- 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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
|
|
61
|
+
const click = react.useClick(context, {
|
|
75
62
|
enabled: !disabled && trigger.includes("click")
|
|
76
63
|
});
|
|
77
|
-
|
|
64
|
+
const focus = react.useFocus(context, {
|
|
78
65
|
enabled: !disabled && trigger.includes("focus")
|
|
79
66
|
});
|
|
80
|
-
|
|
67
|
+
const dismiss = react.useDismiss(context, {
|
|
81
68
|
outsidePress: false
|
|
82
69
|
});
|
|
83
|
-
|
|
70
|
+
const role = react.useRole(context, {
|
|
84
71
|
role: "menu"
|
|
85
72
|
});
|
|
86
|
-
|
|
87
|
-
getReferenceProps
|
|
88
|
-
getFloatingProps
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
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(
|
|
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:
|
|
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[
|
|
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
|
|
116
|
-
minWidth: samewidth ?
|
|
117
|
-
fontSize:
|
|
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",
|
package/Dropzone/Dropzone.js
CHANGED
|
@@ -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
|
-
|
|
19
|
-
|
|
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" ?
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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(
|
|
61
|
+
React.useEffect(() => {
|
|
85
62
|
if (inputRef.current) inputRef.current.value = "";
|
|
86
63
|
}, [currentFiles]);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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:
|
|
121
|
+
onClick: event => {
|
|
188
122
|
// A programmatic input.click() bubbles back to the root.
|
|
189
123
|
if (event.target === inputRef.current) return;
|
|
190
|
-
|
|
124
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
191
125
|
if (!event.defaultPrevented) openFileDialog();
|
|
192
126
|
},
|
|
193
|
-
onKeyDown:
|
|
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:
|
|
222
|
-
var
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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
|
|