{"version":3,"file":"8886.js","sources":["webpack://frontend/./node_modules/attr-accept/dist/es/index.js","webpack://frontend/../../src/file.ts","webpack://frontend/../../src/file-selector.ts","webpack://frontend/./node_modules/react-dropzone/dist/es/utils/index.js","webpack://frontend/./node_modules/react-dropzone/dist/es/index.js","webpack://frontend/./node_modules/clsx/dist/clsx.mjs","webpack://frontend/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack://frontend/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","webpack://frontend/./node_modules/framer-motion/dist/es/components/AnimateSharedLayout.mjs","webpack://frontend/./node_modules/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs","webpack://frontend/./node_modules/framer-motion/dist/es/projection/node/group.mjs","webpack://frontend/./node_modules/framer-motion/dist/es/components/LayoutGroup/index.mjs","webpack://frontend/./node_modules/framer-motion/dist/es/utils/use-force-update.mjs","webpack://frontend/./node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs"],"sourcesContent":["\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n\n if (acceptedFilesArray.length === 0) {\n return true;\n }\n\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","","","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from 'attr-accept'; // Error codes\n\nexport var FILE_INVALID_TYPE = 'file-invalid-type';\nexport var FILE_TOO_LARGE = 'file-too-large';\nexport var FILE_TOO_SMALL = 'file-too-small';\nexport var TOO_MANY_FILES = 'too-many-files';\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n}; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(', ')) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: 'Too many files'\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === 'application/x-moz-file' || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return 'showOpenFilePicker' in window;\n}\n/**\n * filePickerOptionsTypes returns the {types} option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n * based on the accept attr (see https://github.com/react-dropzone/attr-accept)\n * E.g: converts ['image/*', 'text/*'] to {'image/*': [], 'text/*': []}\n * @param {string|string[]} accept\n */\n\nexport function filePickerOptionsTypes(accept) {\n accept = typeof accept === 'string' ? accept.split(',') : accept;\n return [{\n description: 'everything',\n // TODO: Need to handle filtering more elegantly than this!\n accept: Array.isArray(accept) // Accept just MIME types as per spec\n // NOTE: accept can be https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers\n ? accept.filter(function (item) {\n return item === 'audio/*' || item === 'video/*' || item === 'image/*' || item === 'text/*' || /\\w+\\/[-+.\\w]+/g.test(item);\n }).reduce(function (a, b) {\n return _objectSpread(_objectSpread({}, a), {}, _defineProperty({}, b, []));\n }, {}) : {}\n }];\n}","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, filePickerOptionsTypes, canUseFileSystemAccessAPI, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
\n * \n *

Drag 'n' drop some files here, or click to select files

\n *
\n * )}\n *
\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone'; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Custom validation function\n * @param {File} file\n * @returns {FileError|FileError[]}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
\n * \n *

Drag and drop some files here, or click to select files

\n *
\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$options = _objectSpread(_objectSpread({}, defaultProps), options),\n accept = _defaultProps$options.accept,\n disabled = _defaultProps$options.disabled,\n getFilesFromEvent = _defaultProps$options.getFilesFromEvent,\n maxSize = _defaultProps$options.maxSize,\n minSize = _defaultProps$options.minSize,\n multiple = _defaultProps$options.multiple,\n maxFiles = _defaultProps$options.maxFiles,\n onDragEnter = _defaultProps$options.onDragEnter,\n onDragLeave = _defaultProps$options.onDragLeave,\n onDragOver = _defaultProps$options.onDragOver,\n onDrop = _defaultProps$options.onDrop,\n onDropAccepted = _defaultProps$options.onDropAccepted,\n onDropRejected = _defaultProps$options.onDropRejected,\n onFileDialogCancel = _defaultProps$options.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$options.onFileDialogOpen,\n useFsAccessApi = _defaultProps$options.useFsAccessApi,\n preventDropOnDocument = _defaultProps$options.preventDropOnDocument,\n noClick = _defaultProps$options.noClick,\n noKeyboard = _defaultProps$options.noKeyboard,\n noDrag = _defaultProps$options.noDrag,\n noDragEventsBubbling = _defaultProps$options.noDragEventsBubbling,\n validator = _defaultProps$options.validator;\n\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === 'function' ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === 'function' ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n return function () {};\n }\n\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, useFsAccessApi]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, accept, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [getFilesFromEvent, setFiles, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: filePickerOptionsTypes(accept)\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n return setFiles(files, null);\n }).catch(function (e) {\n return onFileDialogCancelCb(e);\n }).finally(function () {\n return dispatch({\n type: 'closeDialog'\n });\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, accept, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === 'string' && role !== '' ? role : 'button'\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread(_objectSpread({}, state), {}, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case 'reset':\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from './utils';","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nvar AnimatePresence = function (_a) {\n var children = _a.children, custom = _a.custom, _b = _a.initial, initial = _b === void 0 ? true : _b, onExitComplete = _a.onExitComplete, exitBeforeEnter = _a.exitBeforeEnter, _c = _a.presenceAffectsLayout, presenceAffectsLayout = _c === void 0 ? true : _c;\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n var _d = __read(useForceUpdate(), 1), forceRender = _d[0];\n var forceRenderLayoutGroup = useContext(LayoutGroupContext).forceRender;\n if (forceRenderLayoutGroup)\n forceRender = forceRenderLayoutGroup;\n var isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n var filteredChildren = onlyElements(children);\n var childrenToRender = filteredChildren;\n var exiting = new Set();\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n var presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n var allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n var isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(function () {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(function () {\n isInitialRender.current = true;\n allChildren.clear();\n exiting.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map(function (child) { return (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout }, child)); })));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = __spreadArray([], __read(childrenToRender), false);\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n var presentKeys = presentChildren.current.map(getChildKey);\n var targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n var numPresent = presentKeys.length;\n for (var i = 0; i < numPresent; i++) {\n var key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1) {\n exiting.add(key);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (exitBeforeEnter && exiting.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exiting.forEach(function (key) {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n var child = allChildren.get(key);\n if (!child)\n return;\n var insertionIndex = presentKeys.indexOf(key);\n var onExit = function () {\n allChildren.delete(key);\n exiting.delete(key);\n // Remove this child from the present children\n var removeIndex = presentChildren.current.findIndex(function (presentChild) { return presentChild.key === key; });\n presentChildren.current.splice(removeIndex, 1);\n // Defer re-rendering until all exiting children have indeed left\n if (!exiting.size) {\n presentChildren.current = filteredChildren;\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n childrenToRender.splice(insertionIndex, 0, React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map(function (child) {\n var key = child.key;\n return exiting.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n if (env !== \"production\" &&\n exitBeforeEnter &&\n childrenToRender.length > 1) {\n console.warn(\"You're attempting to animate multiple children within AnimatePresence, but its exitBeforeEnter prop is set to true. This will lead to odd visual behaviour.\");\n }\n return (React.createElement(React.Fragment, null, exiting.size\n ? childrenToRender\n : childrenToRender.map(function (child) { return cloneElement(child); })));\n};\n\nexport { AnimatePresence };\n","import { warning } from 'hey-listen';\nimport * as React from 'react';\nimport { useConstant } from '../utils/use-constant.mjs';\nimport { LayoutGroup } from './LayoutGroup/index.mjs';\n\nvar id = 0;\nvar AnimateSharedLayout = function (_a) {\n var children = _a.children;\n React.useEffect(function () {\n warning(false, \"AnimateSharedLayout is deprecated: https://www.framer.com/docs/guide-upgrade/##shared-layout-animations\");\n }, []);\n return (React.createElement(LayoutGroup, { id: useConstant(function () { return \"asl-\".concat(id++); }) }, children));\n};\n\nexport { AnimateSharedLayout };\n","import { createContext } from 'react';\n\n/**\n * @deprecated\n */\nvar DeprecatedLayoutGroupContext = createContext(null);\n\nexport { DeprecatedLayoutGroupContext };\n","var notify = function (node) {\n return !node.isLayoutDirty && node.willUpdate(false);\n};\nfunction nodeGroup() {\n var nodes = new Set();\n var subscriptions = new WeakMap();\n var dirtyAll = function () { return nodes.forEach(notify); };\n return {\n add: function (node) {\n nodes.add(node);\n subscriptions.set(node, node.addEventListener(\"willUpdate\", dirtyAll));\n },\n remove: function (node) {\n var _a;\n nodes.delete(node);\n (_a = subscriptions.get(node)) === null || _a === void 0 ? void 0 : _a();\n subscriptions.delete(node);\n dirtyAll();\n },\n dirty: dirtyAll,\n };\n}\n\nexport { nodeGroup };\n","import { __read, __assign } from 'tslib';\nimport * as React from 'react';\nimport { useContext, useRef, useMemo } from 'react';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { DeprecatedLayoutGroupContext } from '../../context/DeprecatedLayoutGroupContext.mjs';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { nodeGroup } from '../../projection/node/group.mjs';\n\nvar shouldInheritGroup = function (inherit) { return inherit === true; };\nvar shouldInheritId = function (inherit) {\n return shouldInheritGroup(inherit === true) || inherit === \"id\";\n};\nvar LayoutGroup = function (_a) {\n var _b, _c;\n var children = _a.children, id = _a.id, inheritId = _a.inheritId, _d = _a.inherit, inherit = _d === void 0 ? true : _d;\n // Maintain backwards-compatibility with inheritId until 7.0\n if (inheritId !== undefined)\n inherit = inheritId;\n var layoutGroupContext = useContext(LayoutGroupContext);\n var deprecatedLayoutGroupContext = useContext(DeprecatedLayoutGroupContext);\n var _e = __read(useForceUpdate(), 2), forceRender = _e[0], key = _e[1];\n var context = useRef(null);\n var upstreamId = (_b = layoutGroupContext.id) !== null && _b !== void 0 ? _b : deprecatedLayoutGroupContext;\n if (context.current === null) {\n if (shouldInheritId(inherit) && upstreamId) {\n id = id ? upstreamId + \"-\" + id : upstreamId;\n }\n context.current = {\n id: id,\n group: shouldInheritGroup(inherit)\n ? (_c = layoutGroupContext === null || layoutGroupContext === void 0 ? void 0 : layoutGroupContext.group) !== null && _c !== void 0 ? _c : nodeGroup()\n : nodeGroup(),\n };\n }\n var memoizedContext = useMemo(function () { return (__assign(__assign({}, context.current), { forceRender: forceRender })); }, [key]);\n return (React.createElement(LayoutGroupContext.Provider, { value: memoizedContext }, children));\n};\n\nexport { LayoutGroup };\n","import { __read } from 'tslib';\nimport sync from 'framesync';\nimport { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\n\nfunction useForceUpdate() {\n var isMounted = useIsMounted();\n var _a = __read(useState(0), 2), forcedRenderCount = _a[0], setForcedRenderCount = _a[1];\n var forceRender = useCallback(function () {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n var deferredForceRender = useCallback(function () { return sync.postRender(forceRender); }, [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n var isMounted = useRef(false);\n useIsomorphicLayoutEffect(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n"],"names":["exports","file","acceptedFiles","acceptedFilesArray","Array","fileName","mimeType","baseMimeType","type","validType","ownKeys","object","enumerableOnly","keys","Object","symbols","sym","_objectSpread","target","i","arguments","source","key","_defineProperty","obj","value","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_s","_e","_i","Symbol","_arr","_n","_d","err","_unsupportedIterableToArray","o","minLen","_arrayLikeToArray","n","_nonIterableRest","TypeError","len","arr2","getInvalidTypeRejectionErr","accept","messageSuffix","getTooLargeRejectionErr","maxSize","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","accepts","fileMatchSize","isDefined","isPropagationStopped","event","isEvtWithFiles","onDocumentDragOver","composeEventHandlers","_len","fns","_key","_len2","args","_key2","fn","canUseFileSystemAccessAPI","window","_excluded","_excluded2","_excluded3","_excluded4","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceKeys","sourceSymbolKeys","Dropzone","forwardRef","_ref","ref","children","_useDropzone","useDropzone","open","props","useImperativeHandle","React","Fragment","defaultProps","Infinity","PropTypes","initialState","files","multiple","maxFiles","options","undefined","_defaultProps$options","disabled","getFilesFromEvent","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","onFileDialogCancel","onFileDialogOpen","useFsAccessApi","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","validator","onFileDialogOpenCb","useMemo","noop","onFileDialogCancelCb","rootRef","useRef","inputRef","_useReducer2","useReducer","reducer","state","dispatch","isFocused","isFileDialogActive","draggedFiles","onWindowFocus","setTimeout","useEffect","dragTargetsRef","onDocumentDrop","document","onDragEnterCb","useCallback","stopPropagation","_arrayWithoutHoles","_iterableToArray","iter","_nonIterableSpread","Promise","onDragOverCb","hasFiles","_unused","onDragLeaveCb","targets","targetIdx","setFiles","fileRejections","_fileAccepted2","accepted","acceptError","_fileMatchSize2","sizeMatch","sizeError","customErrors","errors","e","onDropCb","openFileDialog","opts","item","a","b","handles","onKeyDownCb","onFocusCb","onBlurCb","onClickCb","isIeOrEdge","userAgent","isIe","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2","_ref2$refKey","role","onKeyDown","onFocus","onBlur","onClick","rest","onInputElementClick","getInputProps","_ref3","_ref3$refKey","onChange","fileCount","isDragAccept","action","isDragActive","clsx","t","f","r","PresenceChild","_a","initial","isPresent","onExitComplete","custom","presenceAffectsLayout","presenceChildren","newChildrenMap","id","context","childId","e_1","_b","_c","e_1_1","_","PresenceContext","Map","getChildKey","child","AnimatePresence","filtered","exitBeforeEnter","forceRender","forceRenderLayoutGroup","LayoutGroupContext","isMounted","filteredChildren","childrenToRender","exiting","Set","presentChildren","allChildren","isInitialRender","updateChildLookup","presentKeys","targetKeys","numPresent","insertionIndex","removeIndex","presentChild","AnimateSharedLayout","DeprecatedLayoutGroupContext","notify","node","shouldInheritGroup","inherit","LayoutGroup","nodes","subscriptions","dirtyAll","inheritId","layoutGroupContext","deprecatedLayoutGroupContext","upstreamId","WeakMap","memoizedContext","useForceUpdate","forcedRenderCount","setForcedRenderCount","useIsMounted"],"mappings":"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"}