more-desk-one 0.0.1
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/README.md +69 -0
- package/dist/index.cjs +166 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +9400 -0
- package/dist/index.js.map +1 -0
- package/dist/vite.svg +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../node_modules/js-cookie/dist/js.cookie.mjs","../node_modules/jwt-decode/build/esm/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../node_modules/@radix-ui/primitive/dist/index.mjs","../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../node_modules/@radix-ui/react-context/dist/index.mjs","../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../node_modules/@radix-ui/react-slot/dist/index.mjs","../node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-collection/dist/index.mjs","../node_modules/@radix-ui/react-direction/dist/index.mjs","../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../node_modules/@radix-ui/react-focus-guards/dist/index.mjs","../node_modules/@radix-ui/react-focus-scope/dist/index.mjs","../node_modules/@radix-ui/react-id/dist/index.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../node_modules/@radix-ui/react-arrow/dist/index.mjs","../node_modules/@radix-ui/react-use-size/dist/index.mjs","../node_modules/@radix-ui/react-popper/dist/index.mjs","../node_modules/@radix-ui/react-portal/dist/index.mjs","../node_modules/@radix-ui/react-presence/dist/index.mjs","../node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../node_modules/aria-hidden/dist/es2015/index.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../node_modules/use-callback-ref/dist/es2015/assignRef.js","../node_modules/use-callback-ref/dist/es2015/useRef.js","../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../node_modules/use-sidecar/dist/es2015/medium.js","../node_modules/use-sidecar/dist/es2015/exports.js","../node_modules/react-remove-scroll/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/UI.js","../node_modules/get-nonce/dist/es2015/index.js","../node_modules/react-style-singleton/dist/es2015/singleton.js","../node_modules/react-style-singleton/dist/es2015/hook.js","../node_modules/react-style-singleton/dist/es2015/component.js","../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../node_modules/react-remove-scroll/dist/es2015/Combination.js","../node_modules/@radix-ui/react-menu/dist/index.mjs","../node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs","../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../node_modules/more-sso-sdk/dist/index.js","../src/context/SDKContext.tsx","../src/hooks/useSdkContext.ts","../node_modules/@radix-ui/react-popover/dist/index.mjs","../src/assets/assist_logo.svg?react","../src/assets/menu_open.svg?react","../src/assets/search.svg?react","../src/assets/headset_mic.svg?react","../src/assets/menu.svg?react","../src/assets/attach_file.svg?react","../src/assets/more_ai_logo.svg?react","../src/assets/more_ai_sparkle.svg?react","../src/web/components/Popover/index.tsx","../src/web/components/SearchBar/index.tsx","../src/web/components/Loader/index.tsx","../src/api/client.ts","../src/api/index.ts","../src/graphql/query.ts","../src/hooks/useAssistTickets.ts","../src/utils/index.ts","../src/web/components/ChatHistory/index.tsx","../src/web/components/Header/index.tsx","../src/graphql/mutation.ts","../src/graphql/subscriptions.ts","../src/hooks/useChatMessages.ts","../src/web/components/Toast/index.tsx","../src/web/components/Chat/index.tsx","../src/web/components/SDKRoot.tsx","../src/core/validate.ts","../src/web/sdk.tsx"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)\n };\n\n utils.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n } \n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n * \n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n * \n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n * \n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n * \n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object<string, Function|Object>}\n */\n adapters: knownAdapters\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.13.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n },\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (true) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (true) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/collection-legacy.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\n\n// src/collection.tsx\nimport React2 from \"react\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createSlot as createSlot2 } from \"@radix-ui/react-slot\";\n\n// src/ordered-dictionary.ts\nvar __instanciated = /* @__PURE__ */ new WeakMap();\nvar OrderedDict = class _OrderedDict extends Map {\n #keys;\n constructor(entries) {\n super(entries);\n this.#keys = [...super.keys()];\n __instanciated.set(this, true);\n }\n set(key, value) {\n if (__instanciated.get(this)) {\n if (this.has(key)) {\n this.#keys[this.#keys.indexOf(key)] = key;\n } else {\n this.#keys.push(key);\n }\n }\n super.set(key, value);\n return this;\n }\n insert(index, key, value) {\n const has = this.has(key);\n const length = this.#keys.length;\n const relativeIndex = toSafeInteger(index);\n let actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n const safeIndex = actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n if (safeIndex === this.size || has && safeIndex === this.size - 1 || safeIndex === -1) {\n this.set(key, value);\n return this;\n }\n const size = this.size + (has ? 0 : 1);\n if (relativeIndex < 0) {\n actualIndex++;\n }\n const keys = [...this.#keys];\n let nextValue;\n let shouldSkip = false;\n for (let i = actualIndex; i < size; i++) {\n if (actualIndex === i) {\n let nextKey = keys[i];\n if (keys[i] === key) {\n nextKey = keys[i + 1];\n }\n if (has) {\n this.delete(key);\n }\n nextValue = this.get(nextKey);\n this.set(key, value);\n } else {\n if (!shouldSkip && keys[i - 1] === key) {\n shouldSkip = true;\n }\n const currentKey = keys[shouldSkip ? i : i - 1];\n const currentValue = nextValue;\n nextValue = this.get(currentKey);\n this.delete(currentKey);\n this.set(currentKey, currentValue);\n }\n }\n return this;\n }\n with(index, key, value) {\n const copy = new _OrderedDict(this);\n copy.insert(index, key, value);\n return copy;\n }\n before(key) {\n const index = this.#keys.indexOf(key) - 1;\n if (index < 0) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position before the given key.\n */\n setBefore(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index, newKey, value);\n }\n after(key) {\n let index = this.#keys.indexOf(key);\n index = index === -1 || index === this.size - 1 ? -1 : index + 1;\n if (index === -1) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position after the given key.\n */\n setAfter(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index + 1, newKey, value);\n }\n first() {\n return this.entryAt(0);\n }\n last() {\n return this.entryAt(-1);\n }\n clear() {\n this.#keys = [];\n return super.clear();\n }\n delete(key) {\n const deleted = super.delete(key);\n if (deleted) {\n this.#keys.splice(this.#keys.indexOf(key), 1);\n }\n return deleted;\n }\n deleteAt(index) {\n const key = this.keyAt(index);\n if (key !== void 0) {\n return this.delete(key);\n }\n return false;\n }\n at(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return this.get(key);\n }\n }\n entryAt(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return [key, this.get(key)];\n }\n }\n indexOf(key) {\n return this.#keys.indexOf(key);\n }\n keyAt(index) {\n return at(this.#keys, index);\n }\n from(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.at(dest);\n }\n keyFrom(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.keyAt(dest);\n }\n find(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return entry;\n }\n index++;\n }\n return void 0;\n }\n findIndex(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n filter(predicate, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n entries.push(entry);\n }\n index++;\n }\n return new _OrderedDict(entries);\n }\n map(callbackfn, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n entries.push([entry[0], Reflect.apply(callbackfn, thisArg, [entry, index, this])]);\n index++;\n }\n return new _OrderedDict(entries);\n }\n reduce(...args) {\n const [callbackfn, initialValue] = args;\n let index = 0;\n let accumulator = initialValue ?? this.at(0);\n for (const entry of this) {\n if (index === 0 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n index++;\n }\n return accumulator;\n }\n reduceRight(...args) {\n const [callbackfn, initialValue] = args;\n let accumulator = initialValue ?? this.at(-1);\n for (let index = this.size - 1; index >= 0; index--) {\n const entry = this.at(index);\n if (index === this.size - 1 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n }\n return accumulator;\n }\n toSorted(compareFn) {\n const entries = [...this.entries()].sort(compareFn);\n return new _OrderedDict(entries);\n }\n toReversed() {\n const reversed = new _OrderedDict();\n for (let index = this.size - 1; index >= 0; index--) {\n const key = this.keyAt(index);\n const element = this.get(key);\n reversed.set(key, element);\n }\n return reversed;\n }\n toSpliced(...args) {\n const entries = [...this.entries()];\n entries.splice(...args);\n return new _OrderedDict(entries);\n }\n slice(start, end) {\n const result = new _OrderedDict();\n let stop = this.size - 1;\n if (start === void 0) {\n return result;\n }\n if (start < 0) {\n start = start + this.size;\n }\n if (end !== void 0 && end > 0) {\n stop = end - 1;\n }\n for (let index = start; index <= stop; index++) {\n const key = this.keyAt(index);\n const element = this.get(key);\n result.set(key, element);\n }\n return result;\n }\n every(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (!Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return false;\n }\n index++;\n }\n return true;\n }\n some(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return true;\n }\n index++;\n }\n return false;\n }\n};\nfunction at(array, index) {\n if (\"at\" in Array.prototype) {\n return Array.prototype.at.call(array, index);\n }\n const actualIndex = toSafeIndex(array, index);\n return actualIndex === -1 ? void 0 : array[actualIndex];\n}\nfunction toSafeIndex(array, index) {\n const length = array.length;\n const relativeIndex = toSafeInteger(index);\n const actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n return actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n}\nfunction toSafeInteger(number) {\n return number !== number || number === 0 ? 0 : Math.trunc(number);\n}\n\n// src/collection.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nfunction createCollection2(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope2(PROVIDER_NAME);\n const [CollectionContextProvider, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n {\n collectionElement: null,\n collectionRef: { current: null },\n collectionRefObject: { current: null },\n itemMap: new OrderedDict(),\n setItemMap: () => void 0\n }\n );\n const CollectionProvider = ({ state, ...props }) => {\n return state ? /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state }) : /* @__PURE__ */ jsx2(CollectionInit, { ...props });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const CollectionInit = (props) => {\n const state = useInitCollection();\n return /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state });\n };\n CollectionInit.displayName = PROVIDER_NAME + \"Init\";\n const CollectionProviderImpl = (props) => {\n const { scope, children, state } = props;\n const ref = React2.useRef(null);\n const [collectionElement, setCollectionElement] = React2.useState(\n null\n );\n const composeRefs = useComposedRefs2(ref, setCollectionElement);\n const [itemMap, setItemMap] = state;\n React2.useEffect(() => {\n if (!collectionElement) return;\n const observer = getChildListObserver(() => {\n });\n observer.observe(collectionElement, {\n childList: true,\n subtree: true\n });\n return () => {\n observer.disconnect();\n };\n }, [collectionElement]);\n return /* @__PURE__ */ jsx2(\n CollectionContextProvider,\n {\n scope,\n itemMap,\n setItemMap,\n collectionRef: composeRefs,\n collectionRefObject: ref,\n collectionElement,\n children\n }\n );\n };\n CollectionProviderImpl.displayName = PROVIDER_NAME + \"Impl\";\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot2(COLLECTION_SLOT_NAME);\n const CollectionSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs2(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx2(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot2(ITEM_SLOT_NAME);\n const CollectionItemSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React2.useRef(null);\n const [element, setElement] = React2.useState(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref, setElement);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n const { setItemMap } = context;\n const itemDataRef = React2.useRef(itemData);\n if (!shallowEqual(itemDataRef.current, itemData)) {\n itemDataRef.current = itemData;\n }\n const memoizedItemData = itemDataRef.current;\n React2.useEffect(() => {\n const itemData2 = memoizedItemData;\n setItemMap((map) => {\n if (!element) {\n return map;\n }\n if (!map.has(element)) {\n map.set(element, { ...itemData2, element });\n return map.toSorted(sortByDocumentPosition);\n }\n return map.set(element, { ...itemData2, element }).toSorted(sortByDocumentPosition);\n });\n return () => {\n setItemMap((map) => {\n if (!element || !map.has(element)) {\n return map;\n }\n map.delete(element);\n return new OrderedDict(map);\n });\n };\n }, [element, memoizedItemData, setItemMap]);\n return /* @__PURE__ */ jsx2(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useInitCollection() {\n return React2.useState(new OrderedDict());\n }\n function useCollection(scope) {\n const { itemMap } = useCollectionContext(name + \"CollectionConsumer\", scope);\n return itemMap;\n }\n const functions = {\n createCollectionScope,\n useCollection,\n useInitCollection\n };\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n functions\n ];\n}\nfunction shallowEqual(a, b) {\n if (a === b) return true;\n if (typeof a !== \"object\" || typeof b !== \"object\") return false;\n if (a == null || b == null) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\nfunction isElementPreceding(a, b) {\n return !!(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\nfunction sortByDocumentPosition(a, b) {\n return !a[1].element || !b[1].element ? 0 : isElementPreceding(a[1].element, b[1].element) ? -1 : 1;\n}\nfunction getChildListObserver(callback) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === \"childList\") {\n callback();\n return;\n }\n }\n });\n return observer;\n}\nexport {\n createCollection,\n createCollection2 as unstable_createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/use-escape-keydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-guards.tsx\nimport * as React from \"react\";\nvar count = 0;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n count++;\n return () => {\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nexport {\n FocusGuards,\n FocusGuards as Root,\n useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\" useId \".trim().toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { computePosition, arrow as arrow$2, autoPlacement as autoPlacement$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar isClient = typeof document !== 'undefined';\n\nvar noop = function noop() {};\nvar index = isClient ? useLayoutEffect : noop;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const openRef = useLatestRef(open);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n // The floating element's position may be recomputed while it's closed\n // but still mounted (such as when transitioning out). To ensure\n // `isPositioned` will be `false` initially on the next open, avoid\n // setting it to `true` when `open === false` (must be specified).\n isPositioned: openRef.current !== false\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$2({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$2({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => ({\n ...offset$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => ({\n ...shift$1(options),\n options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n ...limitShift$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => ({\n ...flip$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => ({\n ...size$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => ({\n ...autoPlacement$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => ({\n ...hide$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => ({\n ...inline$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n ...arrow$1(options),\n options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","// src/arrow.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Arrow\";\nvar Arrow = React.forwardRef((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.svg,\n {\n ...arrowProps,\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\",\n children: props.asChild ? children : /* @__PURE__ */ jsx(\"polygon\", { points: \"0,0 30,0 15,10\" })\n }\n );\n});\nArrow.displayName = NAME;\nvar Root = Arrow;\nexport {\n Arrow,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/use-size.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/popper.tsx\nimport * as React from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n shift,\n limitShift,\n hide,\n arrow as floatingUIarrow,\n flip,\n size\n} from \"@floating-ui/react-dom\";\nimport * as ArrowPrimitive from \"@radix-ui/react-arrow\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SIDE_OPTIONS = [\"top\", \"right\", \"bottom\", \"left\"];\nvar ALIGN_OPTIONS = [\"start\", \"center\", \"end\"];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = (props) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = React.useState(null);\n return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });\n};\nPopper.displayName = POPPER_NAME;\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const anchorRef = React.useRef(null);\n React.useEffect(() => {\n const previousAnchor = anchorRef.current;\n anchorRef.current = virtualRef?.current || ref.current;\n if (previousAnchor !== anchorRef.current) {\n context.onAnchorChange(anchorRef.current);\n }\n });\n return virtualRef ? null : /* @__PURE__ */ jsx(Primitive.div, { ...anchorProps, ref: composedRefs });\n }\n);\nPopperAnchor.displayName = ANCHOR_NAME;\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopper,\n side = \"bottom\",\n sideOffset = 0,\n align = \"center\",\n alignOffset = 0,\n arrowPadding = 0,\n avoidCollisions = true,\n collisionBoundary = [],\n collisionPadding: collisionPaddingProp = 0,\n sticky = \"partial\",\n hideWhenDetached = false,\n updatePositionStrategy = \"optimized\",\n onPlaced,\n ...contentProps\n } = props;\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [arrow, setArrow] = React.useState(null);\n const arrowSize = useSize(arrow);\n const arrowWidth = arrowSize?.width ?? 0;\n const arrowHeight = arrowSize?.height ?? 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: hasExplicitBoundaries\n };\n const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n animationFrame: updatePositionStrategy === \"always\"\n });\n return cleanup;\n },\n elements: {\n reference: context.anchor\n },\n middleware: [\n offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),\n avoidCollisions && shift({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? limitShift() : void 0,\n ...detectOverflowOptions\n }),\n avoidCollisions && flip({ ...detectOverflowOptions }),\n size({\n ...detectOverflowOptions,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty(\"--radix-popper-available-width\", `${availableWidth}px`);\n contentStyle.setProperty(\"--radix-popper-available-height\", `${availableHeight}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-width\", `${anchorWidth}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-height\", `${anchorHeight}px`);\n }\n }),\n arrow && floatingUIarrow({ element: arrow, padding: arrowPadding }),\n transformOrigin({ arrowWidth, arrowHeight }),\n hideWhenDetached && hide({ strategy: \"referenceHidden\", ...detectOverflowOptions })\n ]\n });\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const handlePlaced = useCallbackRef(onPlaced);\n useLayoutEffect(() => {\n if (isPositioned) {\n handlePlaced?.();\n }\n }, [isPositioned, handlePlaced]);\n const arrowX = middlewareData.arrow?.x;\n const arrowY = middlewareData.arrow?.y;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: refs.setFloating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n // keep off the page when measuring\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y\n ].join(\" \"),\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...middlewareData.hide?.referenceHidden && {\n visibility: \"hidden\",\n pointerEvents: \"none\"\n }\n },\n dir: props.dir,\n children: /* @__PURE__ */ jsx(\n PopperContentProvider,\n {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-side\": placedSide,\n \"data-align\": placedAlign,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? \"none\" : void 0\n }\n }\n )\n }\n )\n }\n );\n }\n);\nPopperContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {\n const { __scopePopper, ...arrowProps } = props;\n const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n return (\n // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n // doesn't report size as we'd expect on SVG elements.\n // it reports their bounding box which is effectively the largest path inside the SVG.\n /* @__PURE__ */ jsx(\n \"span\",\n {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: `rotate(180deg)`,\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n },\n children: /* @__PURE__ */ jsx(\n ArrowPrimitive.Root,\n {\n ...arrowProps,\n ref: forwardedRef,\n style: {\n ...arrowProps.style,\n // ensures the element can be measured correctly (mostly for if SVG)\n display: \"block\"\n }\n }\n )\n }\n )\n );\n});\nPopperArrow.displayName = ARROW_NAME;\nfunction isNotNull(value) {\n return value !== null;\n}\nvar transformOrigin = (options) => ({\n name: \"transformOrigin\",\n options,\n fn(data) {\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = { start: \"0%\", center: \"50%\", end: \"100%\" }[placedAlign];\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n let x = \"\";\n let y = \"\";\n if (placedSide === \"bottom\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n } else if (placedSide === \"top\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === \"right\") {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === \"left\") {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return { data: { x, y } };\n }\n});\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [side, align];\n}\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\nexport {\n ALIGN_OPTIONS,\n Anchor,\n Arrow,\n Content,\n Popper,\n PopperAnchor,\n PopperArrow,\n PopperContent,\n Root2 as Root,\n SIDE_OPTIONS,\n createPopperScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// src/use-state-machine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef(null);\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n stylesRef.current = node2 ? getComputedStyle(node2) : null;\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Presence;\nexport {\n Presence,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide aria-live elements - https://github.com/theKashey/aria-hidden/issues/10\n // and script elements, as they have no impact on accessibility.\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live], script')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noRelative = props.noRelative, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noRelative\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noRelative: noRelative, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of <Style\n */\n var gap = React.useMemo(function () { return getGapWidth(gapMode); }, [gapMode]);\n return React.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? '!important' : '') });\n};\n","var passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n return true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\nexport var nonPassive = passiveSupported ? { passive: false } : false;\n","var alwaysContainsScroll = function (node) {\n // textarea will always _contain_ scroll inside self. It only can be hidden\n return node.tagName === 'TEXTAREA';\n};\nvar elementCanBeScrolled = function (node, overflow) {\n if (!(node instanceof Element)) {\n return false;\n }\n var styles = window.getComputedStyle(node);\n return (\n // not-not-scrollable\n styles[overflow] !== 'hidden' &&\n // contains scroll inside self\n !(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === 'visible'));\n};\nvar elementCouldBeVScrolled = function (node) { return elementCanBeScrolled(node, 'overflowY'); };\nvar elementCouldBeHScrolled = function (node) { return elementCanBeScrolled(node, 'overflowX'); };\nexport var locationCouldBeScrolled = function (axis, node) {\n var ownerDocument = node.ownerDocument;\n var current = node;\n do {\n // Skip over shadow root\n if (typeof ShadowRoot !== 'undefined' && current instanceof ShadowRoot) {\n current = current.host;\n }\n var isScrollable = elementCouldBeScrolled(axis, current);\n if (isScrollable) {\n var _a = getScrollVariables(axis, current), scrollHeight = _a[1], clientHeight = _a[2];\n if (scrollHeight > clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n if (!target) {\n break;\n }\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n var parent_1 = target.parentNode;\n // we will \"bubble\" from ShadowDom in case we are, or just to the parent in normal case\n // this is the same logic used in focus-lock\n target = (parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1);\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n // allow drag selection (iOS); check if selection's anchorNode is the same as target or contains target\n var selection = window.getSelection();\n var anchorNode = selection && selection.anchorNode;\n var isTouchingSelection = anchorNode ? anchorNode === target || anchorNode.contains(target) : false;\n if (isTouchingSelection) {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","\"use client\";\n\n// src/menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs, composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\"ArrowLeft\"],\n rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n React.useEffect(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuRootProvider,\n {\n scope: __scopeMenu,\n onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n }\n )\n }\n ) });\n};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n }\n);\nvar MenuRootContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n ),\n onDismiss: () => context.onOpenChange(false)\n }\n );\n }\n);\nvar MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }\n );\n});\nvar Slot = createSlot(\"MenuContent.ScrollLock\");\nvar MenuContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef(\"\");\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef(\"right\");\n const lastPointerXRef = React.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n const handleTypeaheadSearch = (key) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n useFocusGuards();\n const isPointerMovingToSubmenu = React.useCallback((event) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentProvider,\n {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n onItemLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n ),\n onTriggerLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: { outline: \"none\", ...contentProps.style },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: composeEventHandlers(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )\n }\n )\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: composeEventHandlers(props.onClick, handleSelect),\n onPointerDown: (event) => {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n if (!isPointerDownRef.current) event.currentTarget?.click();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n const [textContent, setTextContent] = React.useState(\"\");\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? \"\").trim());\n }\n }, [itemProps.children]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeMenu,\n disabled,\n textValue: textValue ?? textContent,\n children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n ),\n onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n }\n ) })\n }\n );\n }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (props, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n checkboxItemProps.onSelect,\n () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n radioItemProps.onSelect,\n () => context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }\n )\n }\n );\n }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuSubProvider,\n {\n scope: __scopeMenu,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n }\n )\n }\n ) });\n};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\n onClick: (event) => {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n const side = context.content?.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n ),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n context.content?.focus();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align: \"start\",\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event) => {\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event) => event.preventDefault(),\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n subContext.trigger?.focus();\n event.preventDefault();\n }\n })\n }\n ) }) }) });\n }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n CheckboxItem,\n Content2 as Content,\n Group,\n Item2 as Item,\n ItemIndicator,\n Label,\n Menu,\n MenuAnchor,\n MenuArrow,\n MenuCheckboxItem,\n MenuContent,\n MenuGroup,\n MenuItem,\n MenuItemIndicator,\n MenuLabel,\n MenuPortal,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuSub,\n MenuSubContent,\n MenuSubTrigger,\n Portal,\n RadioGroup,\n RadioItem,\n Root3 as Root,\n Separator,\n Sub,\n SubContent,\n SubTrigger,\n createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dropdown-menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as MenuPrimitive from \"@radix-ui/react-menu\";\nimport { createMenuScope } from \"@radix-ui/react-menu\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DROPDOWN_MENU_NAME = \"DropdownMenu\";\nvar [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nvar useMenuScope = createMenuScope();\nvar [DropdownMenuProvider, useDropdownMenuContext] = createDropdownMenuContext(DROPDOWN_MENU_NAME);\nvar DropdownMenu = (props) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DROPDOWN_MENU_NAME\n });\n return /* @__PURE__ */ jsx(\n DropdownMenuProvider,\n {\n scope: __scopeDropdownMenu,\n triggerId: useId(),\n triggerRef,\n contentId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children: /* @__PURE__ */ jsx(MenuPrimitive.Root, { ...menuScope, open, onOpenChange: setOpen, dir, modal, children })\n }\n );\n};\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\nvar TRIGGER_NAME = \"DropdownMenuTrigger\";\nvar DropdownMenuTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Anchor, { asChild: true, ...menuScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n id: context.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.open ? context.contentId : void 0,\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n ...triggerProps,\n ref: composeRefs(forwardedRef, context.triggerRef),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n if (!context.open) event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if ([\"Enter\", \" \"].includes(event.key)) context.onOpenToggle();\n if (event.key === \"ArrowDown\") context.onOpenChange(true);\n if ([\"Enter\", \" \", \"ArrowDown\"].includes(event.key)) event.preventDefault();\n })\n }\n ) });\n }\n);\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DropdownMenuPortal\";\nvar DropdownMenuPortal = (props) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Portal, { ...menuScope, ...portalProps });\n};\nDropdownMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"DropdownMenuContent\";\nvar DropdownMenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.Content,\n {\n id: context.contentId,\n \"aria-labelledby\": context.triggerId,\n ...menuScope,\n ...contentProps,\n ref: forwardedRef,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n event.preventDefault();\n }),\n onInteractOutside: composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n }),\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n }\n);\nDropdownMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"DropdownMenuGroup\";\nvar DropdownMenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Group, { ...menuScope, ...groupProps, ref: forwardedRef });\n }\n);\nDropdownMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"DropdownMenuLabel\";\nvar DropdownMenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Label, { ...menuScope, ...labelProps, ref: forwardedRef });\n }\n);\nDropdownMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"DropdownMenuItem\";\nvar DropdownMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Item, { ...menuScope, ...itemProps, ref: forwardedRef });\n }\n);\nDropdownMenuItem.displayName = ITEM_NAME;\nvar CHECKBOX_ITEM_NAME = \"DropdownMenuCheckboxItem\";\nvar DropdownMenuCheckboxItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItem, { ...menuScope, ...checkboxItemProps, ref: forwardedRef });\n});\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"DropdownMenuRadioGroup\";\nvar DropdownMenuRadioGroup = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioGroup, { ...menuScope, ...radioGroupProps, ref: forwardedRef });\n});\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"DropdownMenuRadioItem\";\nvar DropdownMenuRadioItem = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.RadioItem, { ...menuScope, ...radioItemProps, ref: forwardedRef });\n});\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar INDICATOR_NAME = \"DropdownMenuItemIndicator\";\nvar DropdownMenuItemIndicator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.ItemIndicator, { ...menuScope, ...itemIndicatorProps, ref: forwardedRef });\n});\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\nvar SEPARATOR_NAME = \"DropdownMenuSeparator\";\nvar DropdownMenuSeparator = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ...menuScope, ...separatorProps, ref: forwardedRef });\n});\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"DropdownMenuArrow\";\nvar DropdownMenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.Arrow, { ...menuScope, ...arrowProps, ref: forwardedRef });\n }\n);\nDropdownMenuArrow.displayName = ARROW_NAME;\nvar DropdownMenuSub = (props) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: \"DropdownMenuSub\"\n });\n return /* @__PURE__ */ jsx(MenuPrimitive.Sub, { ...menuScope, open, onOpenChange: setOpen, children });\n};\nvar SUB_TRIGGER_NAME = \"DropdownMenuSubTrigger\";\nvar DropdownMenuSubTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(MenuPrimitive.SubTrigger, { ...menuScope, ...subTriggerProps, ref: forwardedRef });\n});\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"DropdownMenuSubContent\";\nvar DropdownMenuSubContent = React.forwardRef((props, forwardedRef) => {\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return /* @__PURE__ */ jsx(\n MenuPrimitive.SubContent,\n {\n ...menuScope,\n ...subContentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-dropdown-menu-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-dropdown-menu-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-dropdown-menu-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-dropdown-menu-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-dropdown-menu-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\nvar Root2 = DropdownMenu;\nvar Trigger = DropdownMenuTrigger;\nvar Portal2 = DropdownMenuPortal;\nvar Content2 = DropdownMenuContent;\nvar Group2 = DropdownMenuGroup;\nvar Label2 = DropdownMenuLabel;\nvar Item2 = DropdownMenuItem;\nvar CheckboxItem2 = DropdownMenuCheckboxItem;\nvar RadioGroup2 = DropdownMenuRadioGroup;\nvar RadioItem2 = DropdownMenuRadioItem;\nvar ItemIndicator2 = DropdownMenuItemIndicator;\nvar Separator2 = DropdownMenuSeparator;\nvar Arrow2 = DropdownMenuArrow;\nvar Sub2 = DropdownMenuSub;\nvar SubTrigger2 = DropdownMenuSubTrigger;\nvar SubContent2 = DropdownMenuSubContent;\nexport {\n Arrow2 as Arrow,\n CheckboxItem2 as CheckboxItem,\n Content2 as Content,\n DropdownMenu,\n DropdownMenuArrow,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuItemIndicator,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n Group2 as Group,\n Item2 as Item,\n ItemIndicator2 as ItemIndicator,\n Label2 as Label,\n Portal2 as Portal,\n RadioGroup2 as RadioGroup,\n RadioItem2 as RadioItem,\n Root2 as Root,\n Separator2 as Separator,\n Sub2 as Sub,\n SubContent2 as SubContent,\n SubTrigger2 as SubTrigger,\n Trigger,\n createDropdownMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n","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<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Concatenates two arrays faster than the array spread operator.\n */\nconst concatArrays = (array1, array2) => {\n // Pre-allocate for better V8 optimization\n const combinedArray = new Array(array1.length + array2.length);\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i];\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i];\n }\n return combinedArray;\n};\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (classGroupId, validator) => ({\n classGroupId,\n validator\n});\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (nextPart = new Map(), validators = null, classGroupId) => ({\n nextPart,\n validators,\n classGroupId\n});\nconst CLASS_PART_SEPARATOR = '-';\nconst EMPTY_CONFLICTS = [];\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className);\n }\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0;\n return getGroupRecursive(classParts, startIndex, classMap);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId];\n const baseConflicts = conflictingClassGroups[classGroupId];\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts);\n }\n // Only modifier conflicts\n return modifierConflicts;\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS;\n }\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, startIndex, classPartObject) => {\n const classPathsLength = classParts.length - startIndex;\n if (classPathsLength === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[startIndex];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);\n if (result) return result;\n }\n const validators = classPartObject.validators;\n if (validators === null) {\n return undefined;\n }\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);\n const validatorsLength = validators.length;\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i];\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId;\n }\n }\n return undefined;\n};\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = className => className.slice(1, -1).indexOf(':') === -1 ? undefined : (() => {\n const content = className.slice(1, -1);\n const colonIndex = content.indexOf(':');\n const property = content.slice(0, colonIndex);\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined;\n})();\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n return processClassGroups(classGroups, theme);\n};\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (classGroups, theme) => {\n const classMap = createClassPartObject();\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId];\n processClassesRecursively(group, classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n const len = classGroup.length;\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i];\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme);\n }\n};\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId);\n return;\n }\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);\n return;\n }\n processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);\n};\nconst processStringDefinition = (classDefinition, classPartObject, classGroupId) => {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n};\nconst processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n if (classPartObject.validators === null) {\n classPartObject.validators = [];\n }\n classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));\n};\nconst processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n const entries = Object.entries(classDefinition);\n const len = entries.length;\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i];\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);\n }\n};\nconst getPart = (classPartObject, path) => {\n let current = classPartObject;\n const parts = path.split(CLASS_PART_SEPARATOR);\n const len = parts.length;\n for (let i = 0; i < len; i++) {\n const part = parts[i];\n let next = current.nextPart.get(part);\n if (!next) {\n next = createClassPartObject();\n current.nextPart.set(part, next);\n }\n current = next;\n }\n return current;\n};\n// Type guard maintains monomorphic check\nconst isThemeGetter = func => 'isThemeGetter' in func && func.isThemeGetter === true;\n\n// LRU cache implementation using plain objects for simplicity\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = Object.create(null);\n let previousCache = Object.create(null);\n const update = (key, value) => {\n cache[key] = value;\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = Object.create(null);\n }\n };\n return {\n get(key) {\n let value = cache[key];\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value;\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst EMPTY_MODIFIERS = [];\n// Pre-allocated result object shape for consistency\nconst createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal\n});\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n // Use simple array with push for better performance\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n const len = className.length;\n for (let index = 0; index < len; index++) {\n const currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + 1;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') bracketDepth++;else if (currentCharacter === ']') bracketDepth--;else if (currentCharacter === '(') parenDepth++;else if (currentCharacter === ')') parenDepth--;\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier;\n let hasImportantModifier = false;\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1);\n hasImportantModifier = true;\n } else if (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(1);\n hasImportantModifier = true;\n }\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true);\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map();\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index); // High weights for sensitive mods\n });\n return modifiers => {\n const result = [];\n let currentSegment = [];\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i];\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '[';\n const isOrderSensitive = modifierWeights.has(modifier);\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n currentSegment = [];\n }\n result.push(modifier);\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier);\n }\n }\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n }\n return result;\n };\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n // Fast path: skip sorting for empty or single modifier\n const variantModifier = modifiers.length === 0 ? '' : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.indexOf(classId) > -1) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nconst twJoin = (...classLists) => {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < classLists.length) {\n if (argument = classLists[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nconst toValue = mix => {\n // Fast path for strings\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nconst createTailwindMerge = (createConfigFirst, ...createConfigRest) => {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall;\n const initTailwindMerge = classList => {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n };\n const tailwindMerge = classList => {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n };\n functionToCall = initTailwindMerge;\n return (...args) => functionToCall(twJoin(...args));\n};\nconst fallbackThemeArr = [];\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || fallbackThemeArr;\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n// src/SSOAuthorization.ts\nimport Cookie from \"js-cookie\";\nimport { jwtDecode } from \"jwt-decode\";\n\n// src/APIRequest.ts\nimport axios from \"axios\";\nvar APIRequest = class _APIRequest {\n static getInstance(baseAPIURL) {\n if (!_APIRequest.instance) {\n _APIRequest.instance = axios.create({\n baseURL: baseAPIURL,\n headers: {\n \"Content-Type\": \"application/json\",\n accept: \"application/json\"\n }\n });\n }\n return _APIRequest.instance;\n }\n static request(config, baseAPIURL) {\n return new Promise((resolve) => {\n _APIRequest.getInstance(baseAPIURL).request(config).then((result) => {\n resolve({ status: result.status, data: result.data });\n }).catch((error) => {\n var _a, _b;\n resolve({\n status: ((_a = error == null ? void 0 : error.response) == null ? void 0 : _a.status) || 403,\n data: ((_b = error == null ? void 0 : error.response) == null ? void 0 : _b.data) || { message: \"Something went wrong\" }\n });\n });\n });\n }\n};\n\n// src/SSOAuthorization.ts\nvar ENV = /* @__PURE__ */ ((ENV2) => {\n ENV2[\"PROD\"] = \"prod\";\n ENV2[\"DEV\"] = \"dev\";\n return ENV2;\n})(ENV || {});\nvar ProjectType = /* @__PURE__ */ ((ProjectType2) => {\n ProjectType2[\"NEXTJS\"] = \"nextjs\";\n ProjectType2[\"VITE\"] = \"vite\";\n return ProjectType2;\n})(ProjectType || {});\nvar AUTH_KEY = /* @__PURE__ */ ((AUTH_KEY2) => {\n AUTH_KEY2[\"DEV\"] = \"dev_more_auth\";\n AUTH_KEY2[\"PROD\"] = \"prod_more_auth\";\n return AUTH_KEY2;\n})(AUTH_KEY || {});\nvar REFRESH_TOKEN_KEY = /* @__PURE__ */ ((REFRESH_TOKEN_KEY2) => {\n REFRESH_TOKEN_KEY2[\"DEV\"] = \"dev_more_auth\";\n REFRESH_TOKEN_KEY2[\"PROD\"] = \"prod_more_auth\";\n return REFRESH_TOKEN_KEY2;\n})(REFRESH_TOKEN_KEY || {});\nvar _SSOAuthorization = class _SSOAuthorization {\n static init(config) {\n _SSOAuthorization.env = config.env;\n _SSOAuthorization.redirectUrl = config.redirectUrl;\n _SSOAuthorization.app = config.app;\n _SSOAuthorization.idp = config.idp;\n }\n static login(redirectURL) {\n if (_SSOAuthorization.env && _SSOAuthorization.redirectUrl) {\n window.open(\n `${_SSOAuthorization.redirectUrl}?redirect=${redirectURL}`,\n \"_self\"\n );\n } else {\n throw Error(\"SDK is not initialized\");\n }\n }\n static getToken(redirectURL) {\n return new Promise((resolve, reject) => {\n if (_SSOAuthorization.env && _SSOAuthorization.redirectUrl) {\n const refreshToken = Cookie.get(\n _SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */\n );\n if (refreshToken) {\n const cookieName = `${_SSOAuthorization.app}_${_SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */}`;\n const appToken = Cookie.get(cookieName);\n let isTokenExpired = false;\n if (appToken) {\n const decodedToken = jwtDecode(appToken);\n if (decodedToken && decodedToken.exp) {\n const date = /* @__PURE__ */ new Date(0);\n date.setUTCSeconds(decodedToken.exp);\n const diff = (/* @__PURE__ */ new Date()).getTime() - date.getTime();\n if (diff > 0) {\n isTokenExpired = true;\n } else {\n return resolve({ token: appToken });\n }\n }\n }\n if (isTokenExpired || !appToken) {\n const networkRequest = {\n method: \"POST\",\n data: {\n app_name: _SSOAuthorization.app,\n refresh_token: refreshToken\n },\n url: \"/refresh-token\"\n };\n return APIRequest.request(networkRequest, _SSOAuthorization.idp).then((result) => {\n var _a, _b, _c, _d;\n const { data, status } = result;\n if ((_a = data.data) == null ? void 0 : _a.token) {\n const cookieName2 = `${_SSOAuthorization.app}_${_SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */}`;\n Cookie.set(cookieName2, (_b = data.data) == null ? void 0 : _b.token, {\n domain: \"localhost\",\n secure: process.env.NODE_ENV === \"production\",\n path: \"/\",\n expires: 14 / 1440\n });\n Cookie.set(cookieName2, (_c = data.data) == null ? void 0 : _c.token, {\n domain: \"more.in\",\n secure: process.env.NODE_ENV === \"production\",\n path: \"/\",\n expires: 14 / 1440\n });\n return resolve(data == null ? void 0 : data.data);\n } else if (status === 403) {\n window.open(\n `${(_d = _SSOAuthorization.redirectUrl) == null ? void 0 : _d.replace(\"login\", \"\").trim()}no-access?app-name=${_SSOAuthorization.app}`,\n \"_self\"\n );\n } else if (_SSOAuthorization.redirectUrl) {\n _SSOAuthorization.login(redirectURL);\n }\n return reject(\"Invalid token\");\n }).catch((error) => {\n if (_SSOAuthorization.redirectUrl) {\n _SSOAuthorization.login(redirectURL);\n return;\n }\n return reject(error);\n });\n } else {\n return resolve({ token: appToken });\n }\n } else {\n _SSOAuthorization.login(redirectURL);\n }\n reject(\"Token not found\");\n } else {\n throw Error(\"SDK is not initialized\");\n }\n });\n }\n static logout(redirectURL) {\n return __async(this, null, function* () {\n if (_SSOAuthorization.env === \"prod\" /* PROD */) {\n const token = Cookie.get(\"prod_more_auth\" /* PROD */);\n Object.keys(Cookie.get()).forEach((cookieName) => {\n if (cookieName && cookieName.includes(\"prod_more_auth\" /* PROD */))\n Cookie.remove(cookieName, { path: \"/\", domain: \"more.in\" });\n });\n Cookie.remove(\"prod_more_auth\" /* PROD */, { path: \"/\", domain: \"more.in\" });\n if (token) {\n yield _SSOAuthorization.callLogoutAPI(token);\n }\n } else {\n const token = Cookie.get(\"dev_more_auth\" /* DEV */);\n Object.keys(Cookie.get()).forEach((cookieName) => {\n if (cookieName && cookieName.includes(\"dev_more_auth\" /* DEV */)) {\n Cookie.remove(cookieName, { path: \"/\", domain: \"more.in\" });\n Cookie.remove(cookieName, { path: \"/\", domain: \"localhost\" });\n }\n });\n Cookie.remove(\"dev_more_auth\" /* DEV */, { path: \"/\", domain: \"localhost\" });\n Cookie.remove(\"dev_more_auth\" /* DEV */, { path: \"/\", domain: \"more.in\" });\n if (token) {\n yield _SSOAuthorization.callLogoutAPI(token);\n }\n }\n if (redirectURL) {\n window.open(\n `${_SSOAuthorization.redirectUrl}?redirect=${redirectURL}`,\n \"_self\"\n );\n } else {\n window.open(`${_SSOAuthorization.redirectUrl}`, \"_self\");\n }\n });\n }\n static getDevToken(username) {\n return new Promise((resolve, reject) => {\n if (_SSOAuthorization.env && _SSOAuthorization.redirectUrl) {\n const refreshToken = Cookie.get(\n _SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */\n );\n if (refreshToken) {\n const cookieName = `${_SSOAuthorization.app}_${_SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */}`;\n const appToken = Cookie.get(cookieName);\n if (appToken) {\n return resolve({ token: appToken });\n } else {\n const networkRequest = {\n method: \"POST\",\n data: {\n app_name: _SSOAuthorization.app,\n refresh_token: refreshToken\n },\n url: \"/refresh-token\"\n };\n return APIRequest.request(networkRequest, _SSOAuthorization.idp).then((result) => {\n var _a, _b;\n const { data } = result;\n if ((_a = data.data) == null ? void 0 : _a.token) {\n const cookieName2 = `${_SSOAuthorization.app}_${_SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */}`;\n Cookie.set(cookieName2, (_b = data.data) == null ? void 0 : _b.token, {\n domain: \"localhost\",\n secure: process.env.NODE_ENV === \"production\",\n path: \"/\",\n expires: 14 / 1440\n });\n return resolve(data == null ? void 0 : data.data);\n } else {\n return reject(\"Invalid token\");\n }\n }).catch((error) => {\n return reject(error);\n });\n }\n } else {\n const networkRequest = {\n method: \"POST\",\n data: {\n app_name: _SSOAuthorization.app,\n username\n },\n url: \"/generate-developer-token\"\n };\n return APIRequest.request(networkRequest, _SSOAuthorization.idp).then((result) => {\n var _a, _b, _c, _d;\n const { data } = result;\n if (((_a = data.data) == null ? void 0 : _a.token) && ((_b = data == null ? void 0 : data.data) == null ? void 0 : _b.refresh_token)) {\n const cookieName = `${_SSOAuthorization.app}_${_SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */}`;\n const refreshTokencookieName = _SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */;\n Cookie.set(cookieName, (_c = data.data) == null ? void 0 : _c.token, {\n domain: \"localhost\",\n secure: process.env.NODE_ENV === \"production\",\n path: \"/\",\n expires: 14 / 1440\n });\n Cookie.set(refreshTokencookieName, (_d = data.data) == null ? void 0 : _d.refresh_token, {\n domain: \"localhost\",\n secure: process.env.NODE_ENV === \"production\",\n path: \"/\",\n expires: 14 / 1440\n });\n return resolve(data == null ? void 0 : data.data);\n } else {\n return reject(\"Invalid token\");\n }\n }).catch((error) => {\n return reject(error);\n });\n }\n } else {\n throw Error(\"SDK is not initialized\");\n }\n });\n }\n static getProfileDetails() {\n return new Promise((resolve, reject) => {\n if (_SSOAuthorization.env && _SSOAuthorization.redirectUrl) {\n const refreshToken = Cookie.get(\n _SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */\n );\n if (refreshToken) {\n const cookieName = `${_SSOAuthorization.app}_${_SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */}`;\n const appToken = Cookie.get(cookieName);\n if (appToken) {\n const networkRequest = {\n headers: {\n Authorization: `Bearer ${appToken}`\n },\n url: \"/profile\"\n };\n return APIRequest.request(networkRequest, _SSOAuthorization.idp).then((result) => {\n const { data } = result;\n if (data.data) {\n return resolve(data == null ? void 0 : data.data);\n } else {\n return reject(\"Invalid token\");\n }\n }).catch((error) => {\n return reject(error);\n });\n }\n }\n } else {\n throw Error(\"SDK is not initialized\");\n }\n });\n }\n static getPermittedApps() {\n return new Promise((resolve, reject) => {\n if (_SSOAuthorization.env && _SSOAuthorization.redirectUrl) {\n const refreshToken = Cookie.get(\n _SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */\n );\n if (refreshToken) {\n const cookieName = `${_SSOAuthorization.app}_${_SSOAuthorization.env === \"prod\" /* PROD */ ? \"prod_more_auth\" /* PROD */ : \"dev_more_auth\" /* DEV */}`;\n const appToken = Cookie.get(cookieName);\n if (appToken) {\n const networkRequest = {\n headers: {\n Authorization: `Bearer ${appToken}`\n },\n params: {\n source: \"web\",\n access: \"assigned\"\n },\n url: \"/apps\"\n };\n return APIRequest.request(networkRequest, _SSOAuthorization.idp).then((result) => {\n var _a, _b;\n const { data } = result;\n if (Array.isArray((_a = data.data) == null ? void 0 : _a.apps)) {\n return resolve((_b = data == null ? void 0 : data.data) == null ? void 0 : _b.apps);\n } else {\n return reject(\"Invalid token\");\n }\n }).catch((error) => {\n return reject(error);\n });\n }\n }\n } else {\n throw Error(\"SDK is not initialized\");\n }\n });\n }\n};\n_SSOAuthorization.callLogoutAPI = (refreshToken) => {\n const networkRequest = {\n method: \"POST\",\n data: { refresh_token: refreshToken },\n url: \"/logout\"\n };\n return new Promise((resolve) => {\n APIRequest.request(networkRequest, _SSOAuthorization.idp).then((_) => {\n resolve(true);\n }).catch((_) => {\n resolve(false);\n });\n });\n};\nvar SSOAuthorization = _SSOAuthorization;\n\n// src/components/Avatar/index.tsx\nimport { useMemo } from \"react\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar Avatar = ({\n name,\n employeeId,\n className,\n size = 100,\n onClick\n}) => {\n const fontSize = Math.round(size / 2.083);\n const gradients = useMemo(\n () => [\n [\"#203A43\", \"#2C5364\"],\n [\"#8E2DE2\", \"#4A00E0\"],\n [\"#FF416C\", \"#FF4B2B\"],\n [\"#ED213A\", \"#93291E\"],\n [\"#AD5389\", \"#3C1053\"],\n [\"#4E54C8\", \"#8F94FB\"],\n [\"#0F0C29\", \"#302B63\"],\n [\"#3C3B3F\", \"#605C3C\"],\n [\"#800080\", \"#FFC0CB\"],\n [\"#7F00FF\", \"#E100FF\"],\n [\"#396AFC\", \"#2948FF\"],\n [\"#CB356B\", \"#BD3F32\"],\n [\"#000046\", \"#1CB5E0\"],\n [\"#E44D26\", \"#F16529\"],\n [\"#C33764\", \"#1D2671\"],\n [\"#44A08D\", \"#093637\"],\n [\"#093028\", \"#237A57\"],\n [\"#EE0979\", \"#FF6A00\"],\n [\"#41295A\", \"#2F0743\"],\n [\"#FF00CC\", \"#333399\"],\n [\"#000428\", \"#004E92\"],\n [\"#141E30\", \"#243B55\"],\n [\"#FF4B1F\", \"#FF9068\"],\n [\"#834D9B\", \"#D04ED6\"],\n [\"#B24592\", \"#F15F79\"],\n [\"#E53935\", \"#E35D5B\"],\n [\"#00BF8F\", \"#001510\"],\n [\"#FF0084\", \"#33001B\"],\n [\"#6441A5\", \"#2A0845\"],\n [\"#4776E6\", \"#8E54E9\"],\n [\"#00C6FF\", \"#0072FF\"],\n [\"#F5515F\", \"#9F041B\"],\n [\"#F83600\", \"#F9D423\"],\n [\"#FF512F\", \"#DD2476\"],\n [\"#00DBDE\", \"#FC00FF\"],\n [\"#833AB4\", \"#FD1D1D\"],\n [\"#43C6AC\", \"#191654\"],\n [\"#FBD72B\", \"#F9484A\"],\n [\"#00B09B\", \"#96C93D\"],\n [\"#B24592\", \"#F15F79\"],\n [\"#24C6DC\", \"#514A9D\"],\n [\"#F53844\", \"#42378F\"],\n [\"#F45C43\", \"#EB3349\"],\n [\"#0575E6\", \"#021B79\"],\n [\"#7F00FF\", \"#E100FF\"],\n [\"#00D2FF\", \"#3A7BD5\"],\n [\"#F9D423\", \"#FF4E50\"],\n [\"#EE0979\", \"#FF6A00\"],\n [\"#FF512F\", \"#F09819\"],\n [\"#36D1DC\", \"#5B86E5\"],\n [\"#FF3CAC\", \"#784BA0\"],\n [\"#FF6CAB\", \"#7366FF\"],\n [\"#FFE53B\", \"#FF2525\"],\n [\"#21D4FD\", \"#B721FF\"],\n [\"#4E54C8\", \"#8F94FB\"],\n [\"#667EEA\", \"#764BA2\"],\n [\"#6EE2F5\", \"#6454F0\"],\n [\"#FF61D2\", \"#FE9090\"],\n [\"#00C6A7\", \"#1EAE98\"],\n [\"#92FFC0\", \"#002661\"],\n [\"#FF5858\", \"#F09819\"],\n [\"#00B4DB\", \"#0083B0\"],\n [\"#00FF87\", \"#60EFFA\"],\n [\"#F857A6\", \"#FF5858\"],\n [\"#4158D0\", \"#C850C0\"],\n [\"#00DBB6\", \"#0033FF\"],\n [\"#00FFA3\", \"#0072FF\"],\n [\"#FAD961\", \"#F76B1C\"],\n [\"#F43B47\", \"#453A94\"],\n [\"#00FFA1\", \"#00B3F4\"],\n [\"#0061FF\", \"#60EFFF\"],\n [\"#FF0F7B\", \"#F89B29\"],\n [\"#696EFF\", \"#F8ACFF\"],\n [\"#432371\", \"#FAAE7B\"],\n [\"#9BAFD9\", \"#103783\"],\n [\"#4DC9E6\", \"#210CAE\"],\n [\"#EF745C\", \"#34073D\"],\n [\"#919BFF\", \"#133A94\"],\n [\"#FFA8BD\", \"#242ACF\"],\n [\"#392D69\", \"#B57BEE\"],\n [\"#FCB0F3\", \"#3D05DD\"],\n [\"#30C5D2\", \"#471069\"],\n [\"#8711C1\", \"#2472FC\"],\n [\"#07C8F9\", \"#0D41E1\"],\n [\"#F44369\", \"#3E3B92\"],\n [\"#0965C0\", \"#C53A94\"],\n [\"#F74C06\", \"#F9BC2C\"],\n [\"#08203E\", \"#557C93\"],\n [\"#295270\", \"#524175\"],\n [\"#83489E\", \"#C5302E\"],\n [\"#C81D77\", \"#6710C2\"],\n [\"#243748\", \"#4B749F\"],\n [\"#2A454B\", \"#294861\"],\n [\"#F4119E\", \"#4A313E\"],\n [\"#C11E38\", \"#220B34\"],\n [\"#CF414B\", \"#852170\"],\n [\"#B15B86\", \"#440F50\"],\n [\"#B94C98\", \"#F0073B\"],\n [\"#FC4778\", \"#3952F5\"],\n [\"#2B0948\", \"#CE653B\"],\n [\"#3F3F42\", \"#5D5D3C\"],\n [\"#A106F4\", \"#E707FA\"],\n [\"#663177\", \"#C63F7B\"],\n [\"#020344\", \"#28B8D5\"],\n [\"#4A9B7F\", \"#0A3431\"],\n [\"#0968E5\", \"#091970\"],\n [\"#0B2C24\", \"#247A4D\"],\n [\"#E20B8C\", \"#F84B00\"],\n [\"#000328\", \"#00458E\"],\n [\"#1E6C8E\", \"#2E7775\"],\n [\"#F90C71\", \"#30001A\"],\n [\"#1F140D\", \"#9B8074\"],\n [\"#76030F\", \"#121B67\"],\n [\"#5E3719\", \"#B2A496\"]\n ],\n []\n );\n const hash = useMemo(() => {\n const s = String(employeeId || \"\");\n let h = 5381;\n for (let i = 0; i < s.length; i++) h = (h << 5) + h + s.charCodeAt(i);\n return Math.abs(h >>> 0);\n }, [employeeId]);\n const gradientPair = useMemo(() => {\n if (gradients.length === 0) return [\"#000000\", \"#000000\"];\n const idx = hash % gradients.length;\n const pair = gradients[idx];\n return (hash & 1) === 0 ? pair : [pair[1], pair[0]];\n }, [hash, gradients]);\n const gradId = useMemo(() => `grad-${hash}-${size}`, [hash, size]);\n const initials = useMemo(() => {\n const raw = (name || \"\").trim();\n if (!raw) return \"??\";\n const parts = raw.split(/[.\\s\\-_]+/).filter(Boolean);\n if (parts.length >= 2)\n return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n if (parts[0].length >= 2) return (parts[0][0] + parts[0][1]).toUpperCase();\n return (parts[0][0] + parts[0][0]).toUpperCase();\n }, [name]);\n return /* @__PURE__ */ jsxs(\n \"svg\",\n {\n width: size,\n height: size,\n viewBox: `0 0 ${size} ${size}`,\n role: \"img\",\n className,\n onClick,\n children: [\n /* @__PURE__ */ jsx(\"defs\", { children: /* @__PURE__ */ jsxs(\n \"linearGradient\",\n {\n id: gradId,\n x1: \"0%\",\n y1: \"0%\",\n x2: \"100%\",\n y2: \"0%\",\n gradientTransform: \"rotate(45)\",\n children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: \"0%\", stopColor: gradientPair[0] }),\n /* @__PURE__ */ jsx(\"stop\", { offset: \"100%\", stopColor: gradientPair[1] })\n ]\n }\n ) }),\n /* @__PURE__ */ jsx(\n \"rect\",\n {\n x: \"0\",\n y: \"0\",\n width: size,\n height: size,\n fill: `url(#${gradId})`,\n rx: Math.round(size * 0.12)\n }\n ),\n /* @__PURE__ */ jsx(\n \"text\",\n {\n x: \"50%\",\n y: \"50%\",\n textAnchor: \"middle\",\n dominantBaseline: \"central\",\n fill: \"#FFFFFF\",\n fontFamily: \"'DM Sans', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Apple Color Emoji', 'Segoe UI Emoji'\",\n fontWeight: \"600\",\n fontSize,\n letterSpacing: \"0.02em\",\n children: initials\n }\n )\n ]\n }\n );\n};\n\n// src/components/Loader/index.tsx\nimport { useState, useEffect } from \"react\";\nimport { jsx as jsx2, jsxs as jsxs2 } from \"react/jsx-runtime\";\nvar Loader = () => {\n const [progress, setProgress] = useState(25);\n useEffect(() => {\n const interval = setInterval(() => {\n setProgress((progress2) => {\n if (progress2 !== 100) {\n return progress2 += 25;\n }\n return 0;\n });\n }, 250);\n return () => {\n clearInterval(interval);\n };\n }, []);\n return /* @__PURE__ */ jsxs2(\"div\", { className: \"flex flex-col relative w-screen h-screen items-center bg-white justify-center\", children: [\n /* @__PURE__ */ jsx2(\n \"svg\",\n {\n width: \"154\",\n height: \"60\",\n viewBox: \"0 0 154 60\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /* @__PURE__ */ jsx2(\n \"path\",\n {\n d: \"M77 0C121.92 6.55688e-05 153.885 17.4297 153.885 17.4297L141.7 60H12.2988L0.115234 17.4297C0.228219 17.3682 32.1594 0 77 0ZM123.161 22.2139C121.331 22.2139 119.596 22.5017 117.963 23.0879C116.33 23.6681 114.901 24.5118 113.687 25.6123C112.466 26.7129 111.503 28.0527 110.785 29.6377C110.068 31.2227 109.709 33.017 109.709 35.0146V36.0137C109.709 38.113 110.092 39.955 110.857 41.54C111.623 43.125 112.639 44.4594 113.907 45.542C115.175 46.6306 116.653 47.4438 118.334 47.9941C120.015 48.5444 121.755 48.8203 123.556 48.8203C124.985 48.8203 126.397 48.6344 127.778 48.2695C129.16 47.9047 130.422 47.3424 131.553 46.5947C132.689 45.8471 133.653 44.9144 134.454 43.7959L134.466 43.7891C135.267 42.6766 135.817 41.3485 136.116 39.8174H127.814C127.479 40.6847 126.929 41.2777 126.163 41.5947C125.398 41.9116 124.614 42.0664 123.812 42.0664C122.347 42.0663 121.193 41.6303 120.361 40.7451C119.53 39.8599 119.064 38.7528 118.962 37.4189H136.158C136.224 36.9825 136.26 36.5282 136.26 36.0439V34.668C136.26 32.4012 135.871 30.487 135.088 28.9199C134.304 27.3528 133.287 26.0663 132.037 25.0674C130.787 24.0626 129.393 23.3392 127.838 22.8906C126.283 22.4421 124.728 22.2139 123.161 22.2139ZM75.415 22.2139C73.5789 22.2139 71.8203 22.4953 70.1396 23.0635C68.4529 23.6317 66.9754 24.4574 65.6895 25.54C64.4095 26.6227 63.3808 27.957 62.6152 29.542C61.8497 31.121 61.4668 32.9452 61.4668 35.0146V36.0137C61.4668 38.0472 61.8497 39.8535 62.6152 41.4385C63.3808 43.0234 64.4036 44.3633 65.6895 45.4639C66.9754 46.5644 68.4589 47.3966 70.1396 47.9648C71.8263 48.533 73.5789 48.8134 75.415 48.8135C77.2513 48.8135 79.0106 48.5331 80.6914 47.9648C82.3721 47.3966 83.8672 46.5644 85.165 45.4639C86.4629 44.3633 87.5036 43.0235 88.2871 41.4385C89.0706 39.8534 89.46 38.0473 89.46 36.0137V35.0146C89.46 32.9511 89.0706 31.127 88.2871 29.542C87.5095 27.9569 86.463 26.6227 85.165 25.54C83.8672 24.4575 82.378 23.6317 80.6914 23.0635C79.0047 22.4952 77.2513 22.2139 75.415 22.2139ZM51.4141 22.2754C49.5479 22.2754 48.0167 22.5981 46.8145 23.25C45.6122 23.902 44.6488 24.9246 43.9131 26.3242H43.8115C43.2433 25.0923 42.3761 24.1116 41.21 23.376C40.0436 22.6403 38.5721 22.2754 36.8076 22.2754C34.9414 22.2754 33.4158 22.598 32.2314 23.25C31.0473 23.902 30.108 24.9247 29.4082 26.3242H29.3066L28.2061 23.0225H21.1064V48.0195H30.2578V33.167C30.2579 30.8644 31.2035 29.7158 33.1055 29.7158C34.8397 29.716 35.7069 30.8646 35.707 33.167V48.0312H44.8584V33.1797C44.8584 30.8768 45.804 29.7285 47.7061 29.7285C49.4404 29.7287 50.3076 30.877 50.3076 33.1797V48.0312H59.459V30.5293C59.459 29.363 59.3098 28.2801 59.0107 27.2812C58.7117 26.2765 58.2388 25.4153 57.5869 24.6797C56.935 23.944 56.1037 23.3634 55.0869 22.9268C54.0701 22.4901 52.8496 22.2754 51.4141 22.2754ZM105.946 22.8242C105.145 22.8242 104.397 22.9501 103.697 23.2012C102.997 23.4524 102.375 23.8237 101.824 24.3262C101.28 24.8225 100.838 25.4384 100.503 26.1738C100.168 26.9095 100 27.7417 100 28.6748H99.8506L98.2539 23.0215H91.4053V48.0186H100.545V36.3184C100.545 35.6186 100.611 34.9727 100.742 34.3926C100.874 33.8064 101.101 33.2978 101.418 32.8672C101.735 32.4366 102.178 32.0959 102.746 31.8447C103.314 31.5936 104.05 31.4678 104.947 31.4678H108.847V23.2197C108.446 23.0523 107.98 22.9443 107.447 22.8965C106.915 22.8486 106.413 22.8242 105.946 22.8242ZM75.4629 29.3145C77.1616 29.3145 78.4059 29.913 79.1895 31.1152C79.9728 32.3114 80.3622 33.7286 80.3623 35.4629C80.3623 37.1974 79.9729 38.663 79.1895 39.8652C78.4059 41.0675 77.1616 41.666 75.4629 41.666C73.7644 41.6659 72.5208 41.0674 71.7373 39.8652C70.9538 38.663 70.5645 37.1616 70.5645 35.4629C70.5645 33.7644 70.9538 32.3174 71.7373 31.1152C72.5208 29.913 73.7644 29.3145 75.4629 29.3145ZM123.358 28.1182C124.626 28.1182 125.607 28.5253 126.307 29.3447H126.313C127.013 30.1641 127.366 31.1213 127.366 32.2217H119.063C119.159 31.1211 119.555 30.1642 120.236 29.3447C120.918 28.5253 121.959 28.1182 123.358 28.1182Z\",\n fill: \"#FA4B16\"\n }\n )\n }\n ),\n /* @__PURE__ */ jsx2(\"div\", { className: \"absolute bottom-6 w-[200px] bg-neutral-20 rounded-full h-1\", children: /* @__PURE__ */ jsx2(\n \"div\",\n {\n className: \"bg-gradient-to-r from-orange-60 to-orange-70 h-1 rounded-full transition-all duration-250 ease-linear\",\n style: { width: `${progress}%` }\n }\n ) })\n ] });\n};\n\n// src/components/AppMenu/index.tsx\nimport React3, { useState as useState2, useEffect as useEffect2 } from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\n\n// src/lib/utils.ts\nimport { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nfunction cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n\n// src/components/AppMenu/index.tsx\nimport { jsx as jsx3, jsxs as jsxs3 } from \"react/jsx-runtime\";\nvar DropdownMenu = DropdownMenuPrimitive.Root;\nvar DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\nvar DropdownMenuContent = React3.forwardRef((_a, ref) => {\n var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, [\"className\", \"sideOffset\"]);\n return /* @__PURE__ */ jsx3(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx3(\n DropdownMenuPrimitive.Content,\n __spreadValues({\n ref,\n sideOffset,\n className: cn(\n \"z-50\",\n // \"z-50 min-w-[8rem] overflow-hidden rounded-md bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )\n }, props)\n ) });\n});\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\nvar AppIcon = ({ width, height, fill }) => {\n return /* @__PURE__ */ jsx3(\"svg\", { fill, width, height, viewBox: \"0 -960 960 960\", children: /* @__PURE__ */ jsx3(\"path\", { d: \"M214.67-137q-32.67 0-55.17-22.5T137-214.67q0-32.68 22.5-55Q182-292 214.67-292q32.68 0 55 22.33 22.33 22.32 22.33 55 0 32.67-22.33 55.17-22.32 22.5-55 22.5Zm265.71 0q-32.38 0-54.88-22.5T403-214.67q0-32.68 22.12-55Q447.24-292 479.62-292q32.38 0 54.88 22.33 22.5 22.32 22.5 55 0 32.67-22.12 55.17t-54.5 22.5Zm264.95 0q-32.68 0-55-22.5Q668-182 668-214.67q0-32.68 22.33-55 22.32-22.33 55-22.33 32.67 0 55.17 22.33 22.5 22.32 22.5 55 0 32.67-22.5 55.17T745.33-137ZM214.67-403q-32.67 0-55.17-22.12t-22.5-54.5q0-32.38 22.5-54.88t55.17-22.5q32.68 0 55 22.12Q292-512.76 292-480.38q0 32.38-22.33 54.88-22.32 22.5-55 22.5Zm265.71 0q-32.38 0-54.88-22.12t-22.5-54.5q0-32.38 22.12-54.88t54.5-22.5q32.38 0 54.88 22.12t22.5 54.5q0 32.38-22.12 54.88t-54.5 22.5Zm264.95 0q-32.68 0-55-22.12Q668-447.24 668-479.62q0-32.38 22.33-54.88 22.32-22.5 55-22.5 32.67 0 55.17 22.12t22.5 54.5q0 32.38-22.5 54.88T745.33-403ZM214.67-668q-32.67 0-55.17-22.33-22.5-22.32-22.5-55 0-32.67 22.5-55.17t55.17-22.5q32.68 0 55 22.5Q292-778 292-745.33q0 32.68-22.33 55-22.32 22.33-55 22.33Zm265.71 0q-32.38 0-54.88-22.33-22.5-22.32-22.5-55 0-32.67 22.12-55.17t54.5-22.5q32.38 0 54.88 22.5t22.5 55.17q0 32.68-22.12 55Q512.76-668 480.38-668Zm264.95 0q-32.68 0-55-22.33-22.33-22.32-22.33-55 0-32.67 22.33-55.17 22.32-22.5 55-22.5 32.67 0 55.17 22.5t22.5 55.17q0 32.68-22.5 55Q778-668 745.33-668Z\" }) });\n};\nvar AppMenu = ({\n isCollapsed,\n containerClassName,\n iconHeight,\n iconWidth,\n fill\n}) => {\n const [isOpen, toggleOpen] = useState2(false);\n const [apps, setApps] = useState2([]);\n const onOpenChangeHandler = (value) => {\n toggleOpen(value);\n };\n useEffect2(() => {\n SSOAuthorization.getPermittedApps().then((result) => {\n setApps(result);\n }).catch((error) => {\n });\n }, []);\n return /* @__PURE__ */ jsxs3(DropdownMenu, { open: isOpen, onOpenChange: onOpenChangeHandler, children: [\n /* @__PURE__ */ jsxs3(\n DropdownMenuTrigger,\n {\n className: `flex h-12 w-full items-center gap-2 rounded-2xl bg-neutral-10 outline-2 -outline-offset-2 outline-transparent transition-[padding,background-color,outline-color] select-none hover:outline-neutral-20 data-[collapsed=false]:p-4 data-[collapsed=true]:p-3.5 data-[state=active]:outline-neutral-110 data-[state=open]:outline-neutral-110 ${containerClassName}`,\n \"data-collapsed\": isCollapsed,\n children: [\n /* @__PURE__ */ jsx3(\n AppIcon,\n {\n width: iconWidth != null ? iconWidth : 20,\n height: iconHeight != null ? iconHeight : 20,\n fill: fill != null ? fill : \"#172128\"\n }\n ),\n !isCollapsed && /* @__PURE__ */ jsx3(\"span\", { className: \"overflow-hidden typography-para-thick-30 text-ellipsis whitespace-nowrap\", children: \"Apps\" })\n ]\n }\n ),\n /* @__PURE__ */ jsx3(\n DropdownMenuContent,\n {\n side: \"bottom\",\n align: \"start\",\n sideOffset: 4,\n className: \"flex min-w-[206px] flex-col items-center gap-3 rounded-3xl border border-neutral-10 bg-white p-3\",\n style: {\n boxShadow: \"0px 4px 20px 0px rgba(23, 33, 40, 0.05)\"\n },\n children: /* @__PURE__ */ jsx3(\"div\", { className: \"grid gap-2 grid-cols-3\", children: apps.map((app, index) => {\n var _a;\n return /* @__PURE__ */ jsxs3(\n \"button\",\n {\n onClick: () => {\n toggleOpen(false);\n window.open(app.link, \"_blank\");\n },\n className: \"flex flex-col row-span-1 h-[58px] gap-1 items-center justify-center cursor-pointer\",\n children: [\n app.icon ? /* @__PURE__ */ jsx3(\"img\", { className: \"size-4\", src: app.icon }) : /* @__PURE__ */ jsx3(\"div\", { className: \"size-4\" }),\n /* @__PURE__ */ jsx3(\"span\", { className: \"typography-label-30 text-neutral-100\", children: (_a = app.app_name) != null ? _a : \"\" })\n ]\n },\n index\n );\n }) })\n }\n )\n ] });\n};\nexport {\n AUTH_KEY,\n AppMenu,\n Avatar,\n ENV,\n Loader,\n ProjectType,\n REFRESH_TOKEN_KEY,\n SSOAuthorization\n};\n","import { createContext, useState, ReactNode } from \"react\";\nimport { SDKContextProps } from \"../types\";\n\nexport const SDKContext = createContext<SDKContextProps | undefined>(undefined);\n\nexport const SDKProvider = ({\n children,\n appName,\n apiKey,\n accessToken,\n}: {\n children: ReactNode;\n appName: string;\n apiKey: string;\n accessToken: string;\n}) => {\n const [authorized, setAuthorized] = useState<boolean>(!!accessToken);\n const [isChatScreen, setIsChatScreen] = useState<boolean>(true);\n\n return (\n <SDKContext.Provider\n value={{\n appName,\n apiKey,\n accessToken,\n authorized,\n setAuthorized,\n isChatScreen,\n setIsChatScreen,\n }}\n >\n {children}\n </SDKContext.Provider>\n );\n};\n","import { useContext } from \"react\";\nimport { SDKContext } from \"../context/SDKContext\";\nimport { SDKContextProps } from \"../types\";\n\nexport const useSdkContext = (): SDKContextProps => {\n const context = useContext(SDKContext);\n if (!context) {\n throw new Error(\"useSdkContext must be used inside SDKProvider\");\n }\n return context;\n};\n","\"use client\";\n\n// src/popover.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: POPOVER_NAME\n });\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n PopoverProvider,\n {\n scope: __scopePopover,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n modal,\n children\n }\n ) });\n};\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });\n }\n);\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nPopoverContent.displayName = CONTENT_NAME;\nvar Slot = createSlot(\"PopoverContent.RemoveScroll\");\nvar PopoverContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n ),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nvar PopoverContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar PopoverContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n useFocusGuards();\n return /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n )\n }\n );\n }\n);\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n Close,\n Content2 as Content,\n Popover,\n PopoverAnchor,\n PopoverArrow,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createPopoverScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nconst SvgAssistLogo = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 36, height: 36, viewBox: \"0 0 36 36\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M15.8261 8.67349C12.4046 8.67349 9.63062 11.447 9.63062 14.8685C9.63062 18.29 12.4046 21.064 15.8261 21.064C16.1656 21.064 16.4991 21.0365 16.8241 20.984C15.0221 20.4765 13.7006 18.8205 13.7006 16.856C13.7006 14.4875 15.6206 12.568 17.9886 12.568C19.8251 12.568 21.3921 13.722 22.0031 15.345C22.0151 15.188 22.0211 15.029 22.0211 14.8685C22.0211 11.447 19.2476 8.67349 15.8261 8.67349Z\", fill: \"#B72402\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M17.9984 7.621C13.0309 7.621 9.00342 11.6485 9.00342 16.616C9.00342 20.526 11.4949 23.8495 14.9744 25.0915V27.785C14.9744 28.228 15.4404 28.515 15.8349 28.3125C17.5759 27.4215 21.5219 25.332 23.5549 23.696C23.6114 23.65 23.6674 23.6065 23.7214 23.5605C23.7624 23.527 23.8009 23.494 23.8394 23.4605C25.7724 21.8115 26.9964 19.356 26.9964 16.616C26.9964 11.6485 22.9689 7.621 17.9989 7.621H17.9984ZM15.8274 21.064C15.5379 21.064 15.2539 21.0435 14.9749 21.005C11.9559 20.59 9.63092 18.0015 9.63092 14.8675C9.63092 11.4465 12.4039 8.6735 15.8274 8.6735C19.2509 8.6735 22.0214 11.4465 22.0214 14.8675C22.0214 15.0265 22.0164 15.185 22.0034 15.341C21.8319 17.6225 20.4259 19.5555 18.4544 20.48C17.9424 20.7205 17.3919 20.892 16.8154 20.9845C16.4929 21.036 16.1624 21.064 15.8269 21.064H15.8274Z\", fill: \"#FA4B16\" }));\nexport default SvgAssistLogo;\n","import * as React from \"react\";\nconst SvgMenuOpen = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.4167 3.58334L14.4167 5.13334L5.58341 5.13333L5.58341 3.58333L14.4167 3.58334ZM2.66675 4.5L6.06675 8.01667L2.68341 11.5167L1.56675 10.4L3.86675 8.01667L1.55008 5.61667L2.66675 4.5ZM14.4167 7.25L14.4167 8.81667L7.48341 8.81667L7.48341 7.25L14.4167 7.25ZM14.4167 10.8667L14.4167 12.4333L5.58341 12.4333L5.58341 10.8667L14.4167 10.8667Z\", fill: \"#172128\" }));\nexport default SvgMenuOpen;\n","import * as React from \"react\";\nconst SvgSearch = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M13.25 14.45L8.7667 9.98335C8.44448 10.238 8.06414 10.4378 7.6257 10.5827C7.18725 10.7276 6.71203 10.8 6.20003 10.8C4.92048 10.8 3.8367 10.3556 2.9487 9.46668C2.0607 8.57779 1.6167 7.50557 1.6167 6.25001C1.6167 4.99446 2.06114 3.92223 2.95003 3.03335C3.83892 2.14446 4.91392 1.70001 6.17503 1.70001C7.43614 1.70001 8.50837 2.14446 9.3917 3.03335C10.275 3.92223 10.7167 4.99529 10.7167 6.25251C10.7167 6.75085 10.6473 7.2139 10.5084 7.64168C10.3695 8.06946 10.1611 8.47223 9.88337 8.85001L14.3834 13.3167L13.25 14.45ZM6.1892 9.23335C7.02142 9.23335 7.72298 8.94307 8.29387 8.36251C8.86464 7.78196 9.15003 7.07779 9.15003 6.25001C9.15003 5.42223 8.86381 4.71807 8.29137 4.13751C7.71892 3.55696 7.0182 3.26668 6.1892 3.26668C5.35109 3.26668 4.64059 3.55696 4.0577 4.13751C3.47481 4.71807 3.18337 5.42223 3.18337 6.25001C3.18337 7.07779 3.47398 7.78196 4.0552 8.36251C4.63642 8.94307 5.34775 9.23335 6.1892 9.23335Z\", fill: \"#172128\" }));\nexport default SvgSearch;\n","import * as React from \"react\";\nconst SvgHeadsetMic = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 20, height: 20, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M10.0417 19.3958V17.7292H16.0625V16.6042H12.7292V9.70833H16.0625V8.77083C16.0625 7.10417 15.4757 5.67014 14.3021 4.46875C13.1285 3.26736 11.7049 2.66667 10.0312 2.66667C8.38542 2.66667 6.95833 3.26736 5.75 4.46875C4.54167 5.67014 3.9375 7.10417 3.9375 8.77083V9.70833H7.27083V16.6042H1.97917V8.775C1.97917 7.66722 2.19229 6.62306 2.61854 5.6425C3.04479 4.66195 3.62132 3.80319 4.34812 3.06625C5.07493 2.32931 5.92903 1.74861 6.91042 1.32417C7.89167 0.899722 8.93667 0.6875 10.0454 0.6875C11.154 0.6875 12.1944 0.899306 13.1667 1.32292C14.1389 1.74653 14.9868 2.32424 15.7104 3.05604C16.4342 3.78785 17.0036 4.64278 17.4187 5.62083C17.834 6.59889 18.0417 7.64889 18.0417 8.77083V19.3958H10.0417ZM3.9375 14.625H5.3125V11.6875H3.9375V14.625ZM14.7083 14.625H16.0625V11.6875H14.7083V14.625Z\", fill: \"#172128\" }));\nexport default SvgHeadsetMic;\n","import * as React from \"react\";\nconst SvgMenu = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M1.58334 12.6167V11.0333H14.4333V12.6167H1.58334ZM1.58334 8.78333V7.21666H14.4333V8.78333H1.58334ZM1.58334 4.96666V3.38333H14.4333V4.96666H1.58334Z\", fill: \"#172128\" }));\nexport default SvgMenu;\n","import * as React from \"react\";\nconst SvgAttachFile = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12.7833 10.679C12.7833 11.9375 12.3239 12.9861 11.4053 13.825C10.4867 14.6639 9.39228 15.0834 8.12194 15.0834C6.85172 15.0834 5.76105 14.6639 4.84994 13.825C3.93883 12.9861 3.48328 11.9389 3.48328 10.6834V4.08336C3.48328 3.17869 3.81383 2.42197 4.47494 1.81319C5.13605 1.20441 5.92083 0.900024 6.82928 0.900024C7.73783 0.900024 8.52117 1.20441 9.17928 1.81319C9.8375 2.42197 10.1666 3.17869 10.1666 4.08336V10.35C10.1666 10.8935 9.96383 11.3543 9.55828 11.7325C9.15272 12.1109 8.673 12.3 8.11911 12.3C7.56533 12.3 7.09033 12.1127 6.69411 11.738C6.298 11.3634 6.09994 10.9007 6.09994 10.35V4.18336H7.54994V10.35C7.54994 10.4945 7.60711 10.6139 7.72144 10.7084C7.83578 10.8028 7.97267 10.85 8.13211 10.85C8.29155 10.85 8.42883 10.8036 8.54394 10.7109C8.65905 10.6181 8.71661 10.4978 8.71661 10.35V4.10002C8.72772 3.59714 8.54439 3.17975 8.16661 2.84786C7.78883 2.51597 7.34322 2.35002 6.82978 2.35002C6.31633 2.35002 5.87189 2.51352 5.49644 2.84052C5.121 3.16752 4.93328 3.5818 4.93328 4.08336V10.6834C4.94439 11.5417 5.26367 12.2507 5.89111 12.8105C6.51855 13.3702 7.2715 13.65 8.14994 13.65C9.01294 13.65 9.762 13.3695 10.3971 12.8084C11.0323 12.2472 11.3444 11.5389 11.3333 10.6834V3.70002H12.7833V10.679Z\", fill: \"white\" }));\nexport default SvgAttachFile;\n","import * as React from \"react\";\nconst SvgMoreAiLogo = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 41, height: 12, viewBox: \"0 0 41 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#clip0_100_2379)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M21.1825 7.56627H22.1696V5.46029C21.9697 5.38454 21.6628 5.35825 21.4373 5.35825C20.6381 5.35825 19.9407 5.89477 19.9261 6.85195H19.8885L19.4834 5.40815H17.7463V11.7965H20.0681V8.80642C20.0681 8.10324 20.2821 7.56672 21.1825 7.56672V7.56627Z\", fill: \"#172128\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M2.31875 8.00074C2.31875 7.40005 2.55889 7.11976 3.04271 7.11976C3.48584 7.11976 3.69989 7.3996 3.69989 8.00074V11.7956H6.0217V8.00074C6.0217 7.40005 6.26184 7.11976 6.74256 7.11976C7.18835 7.11976 7.4024 7.3996 7.4024 8.00074V11.7956H9.72111V7.32385C9.72111 6.14831 9.12761 5.21786 7.68013 5.21786C6.74212 5.21786 6.14862 5.53603 5.78111 6.25036H5.75502C5.4627 5.62605 4.8661 5.21786 3.98028 5.21786C3.04227 5.21786 2.45761 5.53603 2.10426 6.25036H2.07817L1.80043 5.40725H3.8147e-05V11.7956H2.31875V8.00074Z\", fill: \"#172128\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M10.1851 8.7301C10.1851 10.8129 11.8701 12 13.7227 12C15.5753 12 17.2837 10.8129 17.2837 8.7301V8.47342C17.2837 6.37903 15.5726 5.20349 13.7227 5.20349C11.8728 5.20349 10.1851 6.38215 10.1851 8.47342V8.7301ZM13.7346 7.02071C14.5975 7.02071 14.9765 7.70919 14.9765 8.59017C14.9765 9.47116 14.597 10.1743 13.7346 10.1743C12.8722 10.1743 12.4928 9.47116 12.4928 8.59017C12.4928 7.70919 12.8749 7.02071 13.7346 7.02071Z\", fill: \"#172128\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.7969 5.20346C23.9324 5.20346 22.3867 6.43158 22.3867 8.47339V8.73007C22.3867 10.8623 24.0602 12 25.8982 12C27.3545 12 28.7874 11.2589 29.0797 9.70151H26.975C26.8101 10.1333 26.3669 10.2764 25.9618 10.2764C25.2264 10.2764 24.7837 9.76301 24.7315 9.08611H29.0912C29.1173 8.87044 29.1173 8.60173 29.1173 8.38293C29.1173 6.08444 27.3686 5.20346 25.7969 5.20346ZM24.7576 7.75862C24.8067 7.19848 25.137 6.71143 25.846 6.71143H25.8491C26.4948 6.71143 26.8623 7.19581 26.8623 7.75862H24.7576Z\", fill: \"#172128\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M34.376 3.1975C33.6653 3.44883 32.9979 3.86058 32.4292 4.43319C31.8605 5.00581 31.4523 5.67824 31.2028 6.39435C30.9538 5.67824 30.5448 5.00581 29.9765 4.43275C29.4082 3.86013 28.7408 3.44838 28.0301 3.19705C28.7408 2.94572 29.4082 2.53398 29.9769 1.96136C30.5452 1.38874 30.9538 0.716307 31.2033 -0.000244141C31.4527 0.716307 31.8613 1.3883 32.4301 1.96136C32.9984 2.53398 33.6657 2.94572 34.3764 3.19705L34.376 3.1975Z\", fill: \"url(#paint0_linear_100_2379)\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M35.4872 12.0001C34.8667 12.0001 34.2696 11.7715 33.9119 11.3869C33.5895 11.0621 33.4108 10.6655 33.4108 10.1722V10.1C33.4108 8.82507 34.4611 8.12769 35.9051 8.12769C36.4061 8.12769 36.9077 8.17581 37.3729 8.34426V7.94721C37.3729 6.92497 37.0027 6.27571 35.8812 6.27571C35.1413 6.27571 34.4492 6.5404 34.4134 7.38217H33.6854V7.30998C33.8287 6.0471 34.7835 5.61441 35.8578 5.61441C37.1708 5.61441 38.0898 6.17945 38.0898 7.93563V11.808H37.5768C37.4932 11.5915 37.4335 11.3508 37.3499 11.1347H37.326C36.932 11.6516 36.1682 12.0005 35.488 12.0005L35.4872 12.0001ZM37.3729 9.54697V9.01803C36.8718 8.84958 36.3823 8.76536 35.8812 8.76536C35.01 8.76536 34.1507 9.13834 34.1507 10.0643C34.1507 10.9061 34.7831 11.3152 35.6066 11.3152C36.43 11.3152 37.3729 10.5937 37.3729 9.54742V9.54697Z\", fill: \"#172128\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M40.9998 3.77446C40.9998 4.09931 40.7371 4.3395 40.4152 4.3395C40.0932 4.3395 39.8305 4.09887 39.8305 3.77446V3.7504C39.8305 3.40148 40.0932 3.19739 40.4152 3.19739C40.7371 3.19739 40.9998 3.40193 40.9998 3.7504V3.77446ZM40.0569 11.8076V5.79444H40.7729V11.8076H40.0569Z\", fill: \"#172128\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"paint0_linear_100_2379\", x1: 31.3237, y1: 301678e-10, x2: 34.1742, y2: 2.06507, gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { stopColor: \"#FA4B16\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#8E64EF\" })), /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"clip0_100_2379\" }, /* @__PURE__ */ React.createElement(\"rect\", { width: 41, height: 12, fill: \"white\" }))));\nexport default SvgMoreAiLogo;\n","import * as React from \"react\";\nconst SvgMoreAiSparkle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.4241 8.00167C12.9851 8.50672 11.6338 9.33413 10.4822 10.4848C9.33067 11.6355 8.50415 12.9868 7.9991 14.4258C7.49495 12.9868 6.66664 11.6355 5.51596 10.4839C4.36528 9.33324 3.01402 8.50582 1.575 8.00078C3.01402 7.49573 4.36528 6.66832 5.51686 5.51764C6.66754 4.36696 7.49495 3.01569 8 1.57578C8.50504 3.01569 9.33246 4.36606 10.484 5.51764C11.6347 6.66832 12.986 7.49573 14.425 8.00078L14.4241 8.00167Z\", fill: \"url(#paint0_linear_100_2352)\" }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"paint0_linear_100_2352\", x1: 8.24377, y1: 1.57633, x2: 13.9855, y2: 5.76743, gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { stopColor: \"#FA4B16\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#8E64EF\" }))));\nexport default SvgMoreAiSparkle;\n","import * as React from \"react\";\nimport * as RadixPopover from \"@radix-ui/react-popover\";\nimport { useSdkContext } from \"../../../hooks/useSdkContext\";\nimport { Headset_mic } from \"../../../assets/icons\";\n\ntype PopoverSide = \"top\" | \"bottom\" | \"left\" | \"right\";\n\ninterface PopoverProps {\n title?: string;\n children: React.ReactNode;\n side?: PopoverSide;\n align?: \"start\" | \"center\" | \"end\";\n}\n\nexport default function Popover({\n title,\n children,\n side = \"top\",\n align = \"end\",\n}: PopoverProps) {\n const values = useSdkContext();\n\n console.log(values, \"values from sdk\");\n\n return (\n <RadixPopover.Root>\n <RadixPopover.Trigger\n asChild\n className=\"data-[state=open]:mhb-outline data-[state=open]:mhb-outline-neutral-110\"\n >\n <button\n type=\"button\"\n className=\"mhb-h-12 mhb-w-12 mhb-rounded-[16px] mhb-bg-neutral-10 mhb-flex mhb-items-center mhb-justify-center\"\n >\n <Headset_mic className=\"mhb-h-5 mhb-w-5\" />\n </button>\n </RadixPopover.Trigger>\n\n <RadixPopover.Portal>\n <RadixPopover.Content\n side={side}\n align={align}\n sideOffset={12}\n className=\"mhb-popover\n mhb-flex mhb-flex-col\n mhb-h-[460px] mhb-max-h-[460px]\n mhb-w-[323px]\n mhb-bg-white\n mhb-rounded-[16px]\n mhb-border mhb-border-neutral-10\n mhb-shadow-[0_4px_20px_rgba(23,33,40,0.05)]\n mhb-overflow-hidden\"\n >\n <div className=\"mhb-popover-children mhb-h-full mhb-flex mhb-flex-col\">\n {children}\n </div>\n </RadixPopover.Content>\n </RadixPopover.Portal>\n </RadixPopover.Root>\n );\n}\n","import { Search } from \"../../../assets/icons\";\n\nconst SearchBar = () => {\n return (\n <div className=\"mhb-h-[48px] mhb-flex mhb-rounded-[9999px] mhb-bg-neutral-10 mhb-items-center mhb-gap-3 mhb-px-3\">\n <Search className=\"mhb-h-4 mhb-w-4\" />\n\n <input\n type=\"text\"\n placeholder=\"Search your chats\"\n className=\"\n mhb-input \n mhb-flex-1\n mhb-w-full\n mhb-typography-para-30\n mhb-text-neutral-110\n mhb-bg-transparent\n mhb-border-0\n mhb-outline-none\n mhb-whitespace-nowrap\n mhb-overflow-visible\n placeholder:mhb-text-neutral-40\n focus:mhb-outline-none\n \"\n />\n </div>\n );\n};\n\nexport default SearchBar;\n","const Loader = () => {\n return (\n <div className=\"mhb-text-center\">\n <div role=\"status\">\n <svg\n aria-hidden=\"true\"\n className=\"mhb-inline mhb-w-8 mhb-h-8 mhb-text-neutral-tertiary mhb-animate-spin mhb-fill-brand\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n </div>\n </div>\n );\n};\n\nexport default Loader;\n","interface SubscriptionMessage {\n id: string;\n type: \"start\" | \"stop\";\n payload: {\n data: string;\n extensions: {\n authorization: {\n host: string;\n \"x-api-key\": string;\n };\n };\n };\n}\n\ninterface SubscriptionEntry {\n message: SubscriptionMessage;\n callback: (data: unknown) => void;\n}\n\ninterface GraphQLResponse<T> {\n data?: T;\n errors?: Array<{ message: string }>;\n}\n\nexport interface ChatbotClient {\n executeGraphql: <T>(\n operation: string,\n variables?: Record<string, unknown>,\n token?: string\n ) => Promise<T>;\n subscribe: (\n subscription: string,\n variables: Record<string, unknown>,\n callback: (data: unknown) => void\n ) => () => void;\n close: () => void;\n}\n\nimport type { ApiUrls } from \"../types\";\n\nlet ws: WebSocket | null = null;\nlet reconnectAttempts = 0;\nlet isManuallyClosed = false;\nlet subscriptionIdCounter = 0;\nconst subscriptions: Record<string, SubscriptionEntry> = {};\nlet isConnectionAcked = false;\n\nlet graphqlEndpoint = \"\";\nlet subscriptionEndpoint = \"\";\nlet apiKey = \"\";\n\nfunction openWebsocket() {\n const host = new URL(graphqlEndpoint).hostname;\n const apiHeader = {\n host: host,\n \"x-api-key\": apiKey,\n };\n const payload = {};\n const base64ApiHeader = btoa(JSON.stringify(apiHeader));\n const base64Payload = btoa(JSON.stringify(payload));\n const appsyncUrl = `${subscriptionEndpoint}?header=${base64ApiHeader}&payload=${base64Payload}`;\n\n return new WebSocket(appsyncUrl, [\"graphql-ws\"]);\n}\n\nconst connect = () => {\n isManuallyClosed = false;\n ws = openWebsocket();\n isConnectionAcked = false;\n\n ws.onopen = () => {\n reconnectAttempts = 0;\n ws?.send(JSON.stringify({ type: \"connection_init\" }));\n };\n\n ws.onmessage = (e) => {\n const data = JSON.parse(e.data);\n if (!isConnectionAcked) {\n if (data.type === \"connection_ack\") {\n isConnectionAcked = true;\n for (const id in subscriptions) {\n ws?.send(JSON.stringify(subscriptions[id].message));\n }\n }\n } else {\n if (data.type === \"error\") {\n } else if (data.type === \"data\" && subscriptions[data.id]) {\n subscriptions[data.id].callback(data.payload.data);\n } else if (data.type === \"complete\" && subscriptions[data.id]) {\n delete subscriptions[data.id];\n }\n }\n };\n\n ws.onclose = () => {\n if (isManuallyClosed) return;\n const delay = Math.min(\n 1000 * Math.pow(2, reconnectAttempts) + Math.random() * 1000,\n 30000\n );\n setTimeout(() => {\n reconnectAttempts++;\n connect();\n }, delay);\n };\n\n ws.onerror = (error: Event) => {\n console.error(\"WebSocket error:\", error);\n ws?.close();\n };\n};\n\nconst createChatbotClient = (apiURLS: ApiUrls): ChatbotClient => {\n graphqlEndpoint = apiURLS.apiURL;\n apiKey = apiURLS.apiKey;\n subscriptionEndpoint = apiURLS.apiURL\n .replace(\"https://\", \"wss://\")\n .replace(\"appsync-api\", \"appsync-realtime-api\");\n\n connect();\n\n return {\n executeGraphql: async <T>(\n operation: string,\n variables: Record<string, unknown> = {},\n token?: string\n ): Promise<T> => {\n try {\n const response = await fetch(graphqlEndpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"x-api-key\": apiKey,\n ...(token ? { Authorization: `Bearer ${token}` } : {}),\n },\n body: JSON.stringify({ query: operation, variables }),\n });\n\n const result: GraphQLResponse<T> = await response.json();\n if (result.errors) {\n throw new Error(result.errors.map((e) => e.message).join(\", \"));\n }\n return result.data as T;\n } catch (error) {\n console.error(\"GraphQL operation failed:\", error);\n throw error;\n }\n },\n\n subscribe: (\n subscription: string,\n variables: Record<string, unknown> = {},\n callback: (data: unknown) => void\n ): (() => void) => {\n if (!subscription.trim().startsWith(\"subscription\")) {\n return () => {};\n }\n\n const id = `${++subscriptionIdCounter}`;\n const message: SubscriptionMessage = {\n id,\n type: \"start\",\n payload: {\n data: JSON.stringify({ query: subscription, variables }),\n extensions: {\n authorization: {\n host: new URL(graphqlEndpoint).hostname,\n \"x-api-key\": apiKey,\n },\n },\n },\n };\n\n subscriptions[id] = { message, callback };\n\n if (isConnectionAcked && ws?.readyState === WebSocket.OPEN) {\n ws.send(JSON.stringify(message));\n }\n\n return () => {\n if (ws?.readyState === WebSocket.OPEN) {\n ws.send(JSON.stringify({ id, type: \"stop\" }));\n }\n delete subscriptions[id];\n };\n },\n\n close: () => {\n isManuallyClosed = true;\n ws?.close();\n },\n };\n};\n\nexport default createChatbotClient;\n","import createChatbotClient, { ChatbotClient } from \"./client\";\nimport type { ApiUrls } from \"../types\";\n\nlet chatbotClient: ChatbotClient;\n\nexport const initChatbot = (urls: ApiUrls): void => {\n if (chatbotClient) return;\n chatbotClient = createChatbotClient(urls);\n};\n\nexport const query = async <T>(\n gqlQuery: string,\n variables: Record<string, unknown> = {},\n token: string\n): Promise<T> => {\n if (!chatbotClient) throw new Error(\"client is not created\");\n return chatbotClient.executeGraphql<T>(gqlQuery, variables, token);\n};\n\nexport const mutation = async <T>(\n gqlMutation: string,\n variables: Record<string, unknown> = {},\n token: string\n): Promise<T> => {\n if (!chatbotClient) throw new Error(\"client is not created\");\n return chatbotClient.executeGraphql<T>(gqlMutation, variables, token);\n};\n\nexport const subscribe = (\n gqlSubscription: string,\n variables: Record<string, unknown> = {},\n callback: (data: unknown) => void\n): (() => void) => {\n if (!chatbotClient) throw new Error(\"client is not created\");\n return chatbotClient.subscribe(gqlSubscription, variables, callback);\n};\n","export const ASSIST_HISTORY = `query AssistHistory($limit: Int, $offset: Int , $ticket_id: Int) {\n assistHistory(limit: $limit, offset: $offset, ticket_id: $ticket_id) {\n message_id\n text\n attachments\n ticket_id\n handover\n created_at\n end\n user{\n user_name\n user_type\n }\n }}`;\n\nexport const EMPLOYEEE_ASSIST_TICKET = `query EmployeeAssistTickets {\n EmployeeAssistTickets {\n ticket_id\n parent_id\n user_id\n source\n source_reference_id\n title\n description\n status\n status_id\n assigned_to\n priority\n is_escalated\n resolution_comments\n bill_no\n customer_rating\n agent_rating\n due_date\n created_at\n modified_by\n updated_at\n ticket_meta\n broadcast_list\n cat_desc\n subcat_desc\n user_type\n last_message_time\n ticket_type\n chat_handover\n is_new\n }\n }`;\n","import { useEffect, useState } from \"react\";\nimport { query } from \"../api\";\nimport { EMPLOYEEE_ASSIST_TICKET } from \"../graphql/query\";\nimport { useSdkContext } from \"./useSdkContext\";\nimport type { Ticket } from \"../types\";\n\ntype EmployeeAssistTicketsResponse = {\n EmployeeAssistTickets?: Ticket[];\n};\n\nconst useAssistTicket = () => {\n const [ticketData, setTicketData] = useState<Ticket[]>([]);\n const [loading, setLoading] = useState<Boolean>(true);\n const [error, setError] = useState(null);\n\n const { accessToken } = useSdkContext();\n\n useEffect(() => {\n query(EMPLOYEEE_ASSIST_TICKET, {}, accessToken)\n .then(async (resp) => {\n const data = resp as EmployeeAssistTicketsResponse;\n setTicketData(data?.EmployeeAssistTickets ?? []);\n })\n .catch((err) => {\n setError(err);\n })\n .finally(() => {\n setLoading(false);\n });\n }, []);\n\n return { ticketData, loading, error };\n};\n\nexport default useAssistTicket;\n","export function formatTime(ts?: string) {\n const date = ts ? new Date(ts) : new Date();\n return date.toLocaleTimeString(\"en-US\", {\n hour: \"numeric\",\n minute: \"2-digit\",\n timeZone: \"Asia/Kolkata\",\n });\n}\n\nexport function formatDateAndTime(\n iso: string,\n timeZone: string = \"Asia/Kolkata\",\n locale: string = \"en-GB\"\n): string {\n const d = new Date(iso);\n if (Number.isNaN(d.getTime())) return \"\";\n\n const parts = new Intl.DateTimeFormat(locale, {\n day: \"2-digit\",\n month: \"short\",\n year: \"2-digit\",\n timeZone,\n }).formatToParts(d);\n\n const day = parts.find((p) => p.type === \"day\")?.value ?? \"\";\n const month = parts.find((p) => p.type === \"month\")?.value ?? \"\";\n const year = parts.find((p) => p.type === \"year\")?.value ?? \"\";\n\n const time = new Intl.DateTimeFormat(locale, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false,\n timeZone,\n }).format(d);\n\n return `${day} ${month} \\u2018${year}, ${time}`;\n}\n\nexport const setDataSessionStorage = (key: string, data: any) => {\n sessionStorage.setItem(key, JSON.stringify(data));\n};\n\nexport const getSessionStorageData = (key: string) => {\n const val = sessionStorage.getItem(key);\n return val ? JSON.parse(val) : null;\n};\n","import SearchBar from \"../SearchBar\";\nimport Loader from \"../Loader\";\n\nimport useAssistTicket from \"../../../hooks/useAssistTickets\";\nimport { useSdkContext } from \"../../../hooks/useSdkContext\";\n\nimport { formatDateAndTime, setDataSessionStorage } from \"../../../utils\";\n\nconst ChatHistory = () => {\n const { ticketData, loading } = useAssistTicket();\n const { setIsChatScreen } = useSdkContext();\n console.log(ticketData, \"set ticket Data\");\n const ticketBtnClickHandler = (ticket_id: number, user_id: string) => {\n setDataSessionStorage(\"userAndTicket\", {\n ticket_id: ticket_id,\n employee_id: user_id,\n });\n setIsChatScreen((prev) => !prev);\n };\n return (\n <div className=\"mhb-flex mhb-flex-col mhb-h-full mhb-min-h-0\">\n <div className=\"mhb-searchbarContainer mhb-flex mhb-flex-col mhb-border-b mhb-border-neutral-20\">\n <SearchBar />\n </div>\n <div className=\"mhb-history-main-container mhb-no-scrollbar mhb-py-3 mhb-flex mhb-flex-col mhb-gap-1 mhb-overflow-y-auto mhb-flex-1 mhb-min-h-0\">\n {loading ? (\n <Loader />\n ) : (\n ticketData.map((item) => (\n <button\n type=\"button\"\n key={item.ticket_id}\n className=\"mhb-history-container mhb-p-3 mhb-flex mhb-flex-col mhb-rounded-[12px] mhb-bg-neutral-10 mhb-gap-2 mhb-items-start\"\n onClick={() =>\n ticketBtnClickHandler(item.ticket_id, item.user_id)\n }\n >\n <div className=\"mhb-flex mhb-justify-between\">\n <p className=\"mhb-typography-para-thick-30 mhb-text-neutral-110 mhb-m-0\">\n {item.title}\n </p>\n </div>\n <p className=\"mhb-typography-para-30 mhb-text-neutral-60 mhb-m-0\">\n {formatDateAndTime(item.created_at)}\n </p>\n </button>\n ))\n )}\n </div>\n </div>\n );\n};\n\nexport default ChatHistory;\n","import { AssistLogo, Menu, MenuOpen } from \"../../../assets/icons\";\n\ninterface HeaderProps {\n isChatScreen: boolean;\n setIsChatScreen: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nconst Header = ({ isChatScreen, setIsChatScreen }: HeaderProps) => {\n const menuPressHandler = () => {\n setIsChatScreen((prev: boolean) => !prev);\n };\n return (\n <div className=\"mhb-header mhb-border-b mhb-border-neutral-20 mhb-flex mhb-items-center mhb-justify-between\">\n <AssistLogo className=\"h-[36px] w-[36px] fill-current\" />\n\n <button\n type=\"button\"\n className=\"mhb-h-[36px] mhb-w-[36px] mhb-flex mhb-items-center mhb-justify-center mhb-rounded-full mhb-bg-neutral-10\"\n onClick={menuPressHandler}\n >\n {isChatScreen ? (\n <Menu className=\"mhb-h-[16px] mhb-w-[16px] fill-current\" />\n ) : (\n <MenuOpen className=\"mhb-h-[16px] mhb-w-[16px]\" />\n )}\n </button>\n </div>\n );\n};\n\nexport default Header;\n","export const Assist_Chat = `\nmutation AssistChat(\n $message: String!\n $ticket_id: Int\n $handover: Boolean\n $attachments: [String]\n) {\n assistChat(\n data: {\n ticket_id: $ticket_id,\n handover: $handover,\n message: $message,\n attachments: $attachments\n }\n ) {\n message_id\n text\n attachments\n created_at\n ticket_id\n handover\n end\n user{\n user_name\n user_type\n }\n }\n}\n`;\n","export const ON_ASSIST_CHAT = `subscription onAssistChat($ticket_id: Int!) {\n onAssistChat(ticket_id: $ticket_id) {\n message_id\n text\n attachments\n created_at\n ticket_id\n handover\n end\n user{\n user_name\n user_type\n }\n }\n }`;\n","import { useEffect, useMemo, useState } from \"react\";\nimport { SSOAuthorization } from \"more-sso-sdk\";\nimport { useSdkContext } from \"./useSdkContext\";\nimport { mutation, query, subscribe } from \"../api\";\nimport { ASSIST_HISTORY } from \"../graphql/query\";\nimport { Assist_Chat } from \"../graphql/mutation\";\nimport { ON_ASSIST_CHAT } from \"../graphql/subscriptions\";\nimport {\n formatTime,\n getSessionStorageData,\n setDataSessionStorage,\n} from \"../utils\";\nimport type { Message } from \"../types\";\n\nconst PAGE_LIMIT = 10;\n\ntype AssitHistoryResponse = {\n assistHistory?: Message[];\n};\n\ntype AssitChatResponse = {\n assistChat: Message;\n};\n\ntype onAssistChatResponse = {\n onAssistChat: Message;\n};\n\nconst useChatMessages = () => {\n const [historyData, setHistoryData] = useState<Message[]>([]);\n const [msgLoading, setMsgLoading] = useState(true);\n const [msgError, setMsgError] = useState(null);\n const [isLoadingMore, setIsLoadingMore] = useState(false);\n const [isSending, setIsSending] = useState(false);\n const [profileInfo, setProfileInfo] = useState<any>(null);\n\n const { accessToken } = useSdkContext();\n\n const getProfileInfo = async () => {\n const profileInfo = await SSOAuthorization.getProfileDetails();\n setProfileInfo(profileInfo);\n };\n\n const sessionTicket = getSessionStorageData(\"userAndTicket\")?.ticket_id;\n\n const employeeId = getSessionStorageData(\"userAndTicket\")?.employee_id;\n\n const historyTicket = useMemo(() => {\n return (\n historyData.find((itm: Message) => itm.ticket_id != null)?.ticket_id ??\n null\n );\n }, [historyData]);\n\n let ticketId = sessionTicket ?? historyTicket ?? null;\n\n useEffect(() => {\n getProfileInfo();\n }, []);\n\n // subscription for messages\n useEffect(() => {\n if (!ticketId) return;\n if (!profileInfo) return;\n if (employeeId && profileInfo?.employee_id != employeeId) {\n console.log(\n \"inside subscription\",\n employeeId,\n \"employeeId\",\n profileInfo?.employee_id\n );\n sessionStorage.removeItem(\"userAndTicket\");\n return;\n }\n\n const unsubscribe = subscribe(\n ON_ASSIST_CHAT,\n { ticket_id: ticketId },\n (data) => {\n console.log(data, \"data subscription sdk\");\n const subsData = data as onAssistChatResponse;\n if (subsData?.onAssistChat?.user?.user_type === \"agent\") {\n setHistoryData((prev: Message[]) => [...prev, subsData.onAssistChat]);\n }\n }\n );\n\n return () => unsubscribe();\n }, [ticketId, profileInfo]);\n\n // initial history load\n useEffect(() => {\n if (!accessToken) return;\n if (!profileInfo) return;\n if (employeeId && profileInfo?.employee_id !== employeeId) {\n console.log(\n \"inside history load\",\n employeeId,\n \"employeeId\",\n profileInfo?.employee_id\n );\n sessionStorage.removeItem(\"userAndTicket\");\n ticketId = null;\n }\n const obj = {\n ...(ticketId && { ticket_id: ticketId }),\n limit: PAGE_LIMIT,\n };\n query(ASSIST_HISTORY, obj, accessToken)\n .then(async (resp) => {\n const data = resp as AssitHistoryResponse;\n setHistoryData(data?.assistHistory ?? []);\n })\n .catch((err) => {\n setMsgError(err);\n })\n .finally(() => {\n setMsgLoading(false);\n });\n }, [accessToken, profileInfo, employeeId]);\n\n // load older messages\n const getNextPageData = (offset: number) => {\n if (!accessToken) return;\n if (isLoadingMore) return;\n const sessionTicket = getSessionStorageData(\"userAndTicket\")?.ticket_id;\n const obj = {\n ...(sessionTicket && { ticket_id: sessionTicket }),\n limit: PAGE_LIMIT,\n offset,\n };\n setIsLoadingMore(true);\n query(ASSIST_HISTORY, obj, accessToken)\n .then(async (resp) => {\n const data = resp as AssitHistoryResponse;\n const newItems = data?.assistHistory ?? [];\n setHistoryData((prev: Message[]) => [...newItems, ...prev]);\n })\n .catch((err) => {\n setMsgError(err);\n })\n .finally(() => {\n setIsLoadingMore(false);\n });\n };\n\n // send message\n const sendMessage = (text: string) => {\n const getTicketId =\n historyData.find((itm: Message) => itm.ticket_id != null)?.ticket_id ??\n null;\n const getHandover =\n historyData.find((itm: Message) => itm.handover == true)?.handover ??\n false;\n const sendMessageObj = {\n message: text,\n ...(getTicketId && { ticket_id: getTicketId }),\n handover: getHandover,\n attachments: null,\n text: text,\n message_id: Math.random(),\n created_at: formatTime(),\n user: {\n // user_name: \"Mannat\",\n user_name: null,\n user_type: \"employee\",\n },\n };\n setIsSending(true);\n setHistoryData((prev: Message[]) => [...prev, sendMessageObj]);\n\n mutation(Assist_Chat, sendMessageObj, accessToken)\n .then(async (resp) => {\n const data = resp as AssitChatResponse;\n if (data.assistChat.user.user_type !== \"employee\") {\n setHistoryData((prev: Message[]) => [...prev, data.assistChat]);\n }\n if (\n !getSessionStorageData(\"userAndTicket\") &&\n data.assistChat?.ticket_id &&\n profileInfo\n ) {\n setDataSessionStorage(\"userAndTicket\", {\n ticket_id: data.assistChat?.ticket_id,\n employee_id: profileInfo.employee_id,\n });\n }\n })\n .catch(() => setHistoryData((prev) => prev.slice(0, -1)))\n .finally(() => setIsSending(false));\n };\n\n // upload attachment\n const upload = () => {};\n\n return {\n historyData,\n msgLoading,\n msgError,\n isSending,\n sendMessage,\n getNextPageData,\n isLoadingMore,\n upload,\n };\n};\n\nexport default useChatMessages;\n","const Toast = ({ toastMsg }: { toastMsg: string }) => {\n return (\n <div\n id=\"toast-simple\"\n className=\"mhb-border-red-60 mhb-fixed mhb-bottom-6 mhb-right-6 mhb-z-50 mhb-flex mhb-max-w-xs mhb-items-center mhb-space-x-4 mhb-divide-x mhb-divide-gray-200 mhb-rounded-lg mhb-border mhb-bg-white mhb-p-4 mhb-text-gray-700 mhb-shadow-lg dark:mhb-divide-gray-700 dark:mhb-border-gray-600 dark:mhb-bg-gray-800 dark:mhb-text-gray-300\"\n role=\"alert\"\n >\n <svg\n className=\"mhb-text-red-60 mhb-h-3 mhb-w-3\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 14 14\"\n >\n <path stroke=\"currentColor\" d=\"m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6\" />\n </svg>\n <div className=\"mhb-text-red-60 mhb-typography-label-thick-30 mhb-ps-4\">\n {toastMsg}\n </div>\n </div>\n );\n};\n\nexport default Toast;\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport useChatMessages from \"../../../hooks/useChatMessages\";\n\nimport { Attach_file, MoreAILogo, MoreAISparkle } from \"../../../assets/icons\";\nimport { formatTime } from \"../../../utils\";\nimport type { Message } from \"../../../types\";\nimport Toast from \"../Toast\";\n\nconst ALLOWED_TYPES = [\n \"image/jpeg\",\n \"image/jpg\",\n \"image/png\",\n // \"application/pdf\",\n];\n\nconst Chat = () => {\n const [toastErr, setToastErr] = useState<string | null>(\"\");\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const inputChatRef = useRef<HTMLTextAreaElement>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const prevScrollHeightRef = useRef(0);\n const prevScrollTopRef = useRef(0);\n const isPrependingRef = useRef(false);\n\n const {\n historyData,\n sendMessage,\n getNextPageData,\n isLoadingMore,\n isSending,\n } = useChatMessages();\n\n console.log(historyData, \"historyData\");\n\n useLayoutEffect(() => {\n const el = scrollContainerRef.current;\n if (!el) return;\n if (isPrependingRef.current) {\n const prevHeight = prevScrollHeightRef.current;\n const prevTop = prevScrollTopRef.current;\n const newHeight = el.scrollHeight;\n\n const diff = newHeight - prevHeight;\n el.scrollTop = prevTop + diff;\n\n isPrependingRef.current = false;\n } else {\n el.scrollTop = el.scrollHeight;\n }\n }, [historyData?.length]);\n\n const sendMessageHandler = () => {\n const value = inputChatRef.current?.value?.trim();\n if (!value) return;\n sendMessage(value);\n if (inputChatRef.current) {\n inputChatRef.current.value = \"\";\n }\n };\n\n const onKeyDownHandler = (e: React.KeyboardEvent) => {\n if (isSending) return;\n if (e.key === \"Enter\") {\n e.preventDefault();\n sendMessageHandler();\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLDivElement>) => {\n const el = e.currentTarget;\n if (el.scrollTop <= 20 && !isLoadingMore) {\n const offset = historyData.length;\n prevScrollHeightRef.current = el.scrollHeight;\n prevScrollTopRef.current = el.scrollTop;\n isPrependingRef.current = true;\n getNextPageData(offset);\n }\n };\n\n const onFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const files = Array.from(event.target.files || []);\n const validFiles = files.filter((file) =>\n ALLOWED_TYPES.includes(file.type)\n );\n const invalidFiles = files.filter(\n (file) => !ALLOWED_TYPES.includes(file.type)\n );\n\n if (invalidFiles.length > 0) {\n setToastErr(\n \"Only JPG, PNG, and PDF files are allowed. Other files like videos are not supported.\"\n );\n setTimeout(() => setToastErr(null), 3000);\n event.target.value = \"\";\n return;\n }\n\n console.log(validFiles, \"check validFiles\");\n\n // if (validFiles.length > 0) {\n // isNewMessageRef.current = true;\n // presignedUrlMutate({\n // files: validFiles,\n // signature_type: \"upload\",\n // ticketId: allMessages?.[0]?.ticket_id,\n // isBotFlowAttachment: isBot ?? false,\n // id: id ?? null,\n // orderNumber,\n // });\n // }\n };\n\n const handleFileClickHandler = () => {\n fileInputRef.current?.click();\n };\n\n return (\n <div className=\"mhb-flex mhb-h-full mhb-flex-col mhb-overflow-hidden mhb-bg-white\">\n <div\n ref={scrollContainerRef}\n className=\"mhb-flex-grow mhb-overflow-y-auto mhb-py-3 [&>*]:[mhb-overflow-anchor:none]\"\n onScroll={handleScroll}\n >\n <div className=\"mhb-flex mhb-min-h-full mhb-flex-col mhb-justify-end mhb-gap-1\">\n {historyData?.map((item: Message) => (\n <div\n key={item.message_id}\n className={`mhb-flex ${\n item.user.user_type === \"bot\" || item.user.user_type === \"agent\"\n ? \"mhb-justify-start\"\n : \"mhb-justify-end\"\n }`}\n >\n <div className=\"mhb-max-w-[75%]\">\n <div\n className={`mhb-mb-1 mhb-flex mhb-items-center${\n item.user.user_type === \"bot\" ||\n item.user.user_type === \"agent\"\n ? \"mhb-justify-start\"\n : \"mhb-justify-end\"\n }`}\n >\n {item.user.user_type === \"bot\" ? (\n <div className=\"mhb-flex mhb-gap-2 mhb-items-center\">\n <div className=\"mhb-flex mhb-items-center mhb-gap-2\">\n <MoreAISparkle />\n <MoreAILogo />\n </div>\n <div className=\"mhb-mt-1 mhb-flex mhb-gap-2\">\n <div className=\"mhb-h-[2px] mhb-w-[2px] mhb-rounded-full mhb-bg-neutral-60 mhb-flex mhb-self-center\" />\n <p className=\"mhb-typography-para-30 mhb-text-neutral-60\">\n {item?.message\n ? item.created_at\n : formatTime(item.created_at)}\n </p>\n </div>\n </div>\n ) : item.user.user_type === \"employee\" ? (\n <div className=\"mhb-flex mhb-gap-2 mhb-items-center\">\n <div className=\"mhb-flex mhb-gap-2\">\n <p className=\"mhb-typography-para-30 mhb-text-neutral-60\">\n {item?.message\n ? item.created_at\n : formatTime(item.created_at)}\n </p>\n <div className=\"mhb-h-[2px] mhb-w-[2px] mhb-rounded-full mhb-bg-neutral-60 mhb-flex mhb-self-center\" />\n </div>\n\n <div className=\"mhb-flex mhb-items-center mhb-gap-2\">\n <p className=\"mhb-typography-para-thick-40 mhb-text-neutral-110\">\n {item.user.user_name}\n </p>\n </div>\n </div>\n ) : null}\n </div>\n <div className=\"mhb-flex mhb-overflow-hidden mhb-min-w-0\">\n <p\n className={`mhb-whitespace-pre-line mhb-break-words mhb-rounded-[16px] mhb-p-3\n mhb-typography-para-30 mhb-ml-auto ${\n item.user.user_type === \"bot\" ||\n item.user.user_type === \"agent\"\n ? \"mhb-bg-orange-60 mhb-text-white mhb-rounded-tl-[4px]\"\n : \"mhb-bg-neutral-10 mhb-text-neutral-110 mhb-rounded-tr-[4px]\"\n } \n `}\n >\n {item?.text}\n </p>\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n\n {/* Input Section */}\n <div className=\"mhb-chat-input-container mhb-sticky mhb-bottom-0 mhb-bg-white mhb-py-3 mhb-flex mhb-items-center mhb-gap-2\">\n <div className=\"mhb-bg-neutral-10 mhb-flex mhb-h-[80px] mhb-flex-1 mhb-rounded-xl mhb-p-3\">\n <div className=\"mhb-flex mhb-flex-1\">\n <textarea\n ref={inputChatRef}\n placeholder=\"Type your message here...\"\n className=\"\n mhb-textarea\n mhb-flex-grow\n mhb-text-neutral-70\n mhb-caret-orange-70\n mhb-typography-para-30\n mhb-bg-transparent\n mhb-resize-none\n placeholder:mhb-text-neutral-40\n \"\n style={{\n outline: \"none\",\n boxShadow: \"none\",\n border: \"none\",\n }}\n onKeyDown={onKeyDownHandler}\n />\n </div>\n\n <div className=\"mhb-flex mhb-gap-1 mhb-justify-end mhb-items-end\">\n <button\n type=\"button\"\n className=\"mhb-h-[36px] mhb-w-[36px] mhb-rounded-full mhb-bg-neutral-100 mhb-flex mhb-items-center mhb-justify-center mhb-outline-none\"\n style={{ outline: \"none\", boxShadow: \"none\", border: \"none\" }}\n onClick={handleFileClickHandler}\n >\n <Attach_file className=\"h-[16px] w-[16px] mhb-fill-current\" />\n <input\n type=\"file\"\n multiple\n accept=\".jpg,.jpeg,.png,.pdf\"\n ref={fileInputRef}\n onChange={onFileChange}\n className=\"hidden\"\n />\n </button>\n\n <button\n type=\"button\"\n className=\"mhb-h-[36px] mhb-rounded-[9999px] mhb-bg-orange-60 mhb-flex mhb-p-3 mhb-items-center mhb-justify-center mhb-shadow-[0_4px_12px_0_rgba(250,75,22,0.50)] mhb-outline-none\"\n style={{ outline: \"none\", boxShadow: \"none\", border: \"none\" }}\n disabled={isSending}\n onClick={sendMessageHandler}\n >\n <p className=\"mhb-typography-label-thick-30 mhb-text-white\">\n Send\n </p>\n </button>\n </div>\n </div>\n </div>\n {toastErr && <Toast toastMsg={toastErr} />}\n </div>\n );\n};\n\nexport default Chat;\n","import { useSdkContext } from \"../../hooks/useSdkContext\";\nimport Popover from \"./Popover\";\n\nimport ChatHistory from \"./ChatHistory\";\nimport Header from \"./Header\";\nimport Chat from \"./Chat\";\n\ninterface ChatButtonProps {\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n align?: \"start\" | \"center\" | \"end\";\n}\n\nexport default function SDKRoot({\n side = \"top\",\n align = \"end\",\n}: ChatButtonProps) {\n const { authorized, isChatScreen, setIsChatScreen } = useSdkContext();\n return (\n <div className=\"mhb-root\">\n <Popover side={side} align={align}>\n <div className=\"mhb-h-full mhb-w-full mhb-flex mhb-flex-col mhb-min-h-0\">\n <Header\n isChatScreen={isChatScreen}\n setIsChatScreen={setIsChatScreen}\n />\n {/* {authorized ? <Chat /> : <div>Please provide valid credentials</div>} */}\n {isChatScreen ? <Chat /> : <ChatHistory />}\n </div>\n </Popover>\n </div>\n );\n}\n","import { InitOptions } from \"../types\";\n\nexport function validateSdk(options: InitOptions) {\n const { apiKey, accessToken } = options;\n\n if (!apiKey || !accessToken) {\n throw new Error(\"Missing parameters: apiKey, and accessToken are required\");\n }\n}\n","import { useEffect, useState } from \"react\";\nimport { SSOAuthorization } from \"more-sso-sdk\";\nimport SDKRoot from \"./components/SDKRoot\";\nimport { validateSdk } from \"../core/validate\";\nimport { SDKProvider } from \"../context/SDKContext\";\nimport { initChatbot } from \"../api\";\n\nimport type { InitOptions, PopOverProps } from \"../types\";\n\nlet sdkOptions: InitOptions | null = null;\nlet initialized = false;\nlet listeners: (() => void)[] = [];\n\nfunction notify() {\n for (const l of listeners) l();\n}\n\nexport function init(options: InitOptions) {\n if (initialized) {\n return;\n }\n validateSdk(options);\n SSOAuthorization.init({\n env: options.env,\n redirectUrl: options.redirectUrl,\n app: options.app,\n idp: options.idp,\n });\n sdkOptions = options;\n initialized = true;\n notify();\n initChatbot({ apiKey: options.apiKey, apiURL: options.apiURL });\n}\n\nexport function ChatButton(props: PopOverProps) {\n const [state, setState] = useState<{\n initialized: boolean;\n sdkOptions: InitOptions | null;\n }>({\n initialized,\n sdkOptions,\n });\n\n useEffect(() => {\n const cb = () => {\n setState({ initialized, sdkOptions });\n };\n listeners.push(cb);\n return () => {\n listeners = listeners.filter((l) => l !== cb);\n };\n }, []);\n\n if (!state.initialized || !state.sdkOptions) {\n return null;\n }\n\n return (\n <SDKProvider\n appName={state.sdkOptions.app}\n apiKey={state.sdkOptions.apiKey}\n accessToken={state.sdkOptions.accessToken}\n >\n <SDKRoot {...props} />\n </SDKProvider>\n );\n}\n"],"names":["assign","target","i","source","key","defaultConverter","value","init","converter","defaultAttributes","set","name","attributes","stringifiedAttributes","attributeName","get","cookies","jar","parts","found","api","InvalidTokenError","b64DecodeUnicode","str","m","p","code","base64UrlDecode","output","jwtDecode","token","options","pos","part","decoded","e","bind","fn","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","cache","thing","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","allOwnKeys","l","keys","len","findKey","_key","_global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","extend","a","b","stripBOM","content","inherits","constructor","superConstructor","props","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","ret","freezeMethods","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","callbacks","data","cb","asap","isIterable","utils$1","AxiosError","message","config","request","response","utils","error","customProps","axiosError","msg","errCode","httpAdapter","isVisitable","removeBrackets","renderKey","path","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","el","index","exposedHelpers","build","encode","charMap","match","AxiosURLSearchParams","params","encoder","_encode","buildURL","url","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","h","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$2","URLSearchParams","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","platform$1","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","method","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","entry","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","computed","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","transformData","fns","isCancel","CanceledError","settle","resolve","reject","validateStatus","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","args","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","expires","domain","secure","sameSite","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","formHeaders","allowedHeaders","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","onloadend","responseHeaders","err","event","timeoutErrorMessage","cancel","protocol","composeSignals","signals","timeout","length","controller","aborted","onabort","reason","unsubscribe","signal","streamChunk","chunk","chunkSize","end","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","DEFAULT_CHUNK_SIZE","globalFetchAPI","Request","Response","ReadableStream","TextEncoder","test","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","res","getBodyLength","body","resolveBodyLength","cancelToken","withCredentials","fetchOptions","_fetch","composedSignal","requestContentLength","_request","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","fetch","seeds","seed","map","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapter","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","c","spread","callback","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","instance","axios","promises","all","Cancel","formToJSON","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","setRef","ref","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","React","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","Provider","scope","children","Context","jsx","useContext2","consumerName","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","useLayoutEffect2","useInsertionEffect","useLayoutEffect","useControllableState","defaultProp","onChange","caller","uncontrolledProp","setUncontrolledProp","onChangeRef","useUncontrolledState","isControlled","isControlledRef","wasControlled","setValue","nextValue","value2","prevValueRef","createSlot","ownerName","SlotClone","createSlotClone","Slot2","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newElement","newChildren","child","childrenRef","getElementRef","props2","mergeProps","SLOTTABLE_IDENTIFIER","childProps","overrideProps","propName","slotPropValue","childPropValue","element","getter","mayWarn","NODES","Primitive","primitive","Slot","Node","asChild","primitiveProps","Comp","dispatchDiscreteCustomEvent","ReactDOM","createCollection","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","itemMap","COLLECTION_SLOT_NAME","CollectionSlotImpl","CollectionSlot","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlotImpl","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","DirectionContext","useDirection","localDir","globalDir","useCallbackRef","callbackRef","useEscapeKeydown","onEscapeKeyDownProp","ownerDocument","onEscapeKeyDown","handleKeyDown","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","setNode","force","node2","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","branch","focusOutside","useFocusOutside","dispatchUpdate","handleUpdate","BRANCH_NAME","DismissableLayerBranch","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent2","handleAndDispatchCustomEvent","eventDetail","timerId","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","handler","detail","discrete","count","useFocusGuards","edgeGuards","createFocusGuard","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","FOCUS_SCOPE_NAME","FocusScope","loop","trapped","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","container","setContainer","onMountAutoFocus","onUnmountAutoFocus","lastFocusedElementRef","focusScope","handleFocusIn2","focus","handleFocusOut2","relatedTarget","handleMutations2","mutations","mutation","mutationObserver","focusScopesStack","previouslyFocusedElement","mountEvent","focusFirst","removeLinks","getTabbableCandidates","unmountEvent","isTabKey","focusedElement","container2","last","getTabbableEdges","candidates","select","candidate","findVisible","nodes","walker","isHiddenInput","elements","isHidden","upTo","isSelectableInput","createFocusScopesStack","activeFocusScope","arrayRemove","array","item","updatedArray","items","useReactId","useId","deterministicId","setId","reactId","sides","max","round","floor","createCoords","v","oppositeSideMap","oppositeAlignmentMap","clamp","start","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","side","isStart","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","x","y","width","height","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","middleware","validMiddleware","statefulPlacement","middlewareData","resetCount","nextX","nextY","reset","detectOverflow","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflow","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","d","resetPlacement","_overflowsData$filter2","currentSideAxis","acc","getSideOffsets","isAnySideFullyClipped","hide","offsets","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","limitMin","limitMax","_middlewareData$offse2","isOriginSide","size","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","hasWindow","getNodeName","isNode","getWindow","_node$ownerDocument","getDocumentElement","isElement","isHTMLElement","isShadowRoot","invalidOverflowDisplayValues","isOverflowElement","overflowX","overflowY","display","getComputedStyle","tableElements","isTableElement","topLayerSelectors","isTopLayer","selector","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","css","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","lastTraversableNodeNames","getNodeScroll","getNearestOverflowAncestor","parentNode","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getCssDimensions","getComputedStyle$1","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","$","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","doc","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","root","_io","refresh","skip","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","size$1","hide$1","arrow$1","limitShift$1","mergedOptions","platformWithCache","computePosition$1","isClient","deepEqual","getDPR","roundByDPR","dpr","useLatestRef","useFloating","externalReference","externalFloating","transform","whileElementsMounted","open","setData","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","openRef","fullData","isMountedRef","floatingStyles","initialStyles","isRef","arrow$2","deps","NAME","Arrow","arrowProps","Root","useSize","setSize","borderSizeEntry","borderSize","POPPER_NAME","createPopperContext","createPopperScope","PopperProvider","usePopperContext","Popper","__scopePopper","anchor","setAnchor","ANCHOR_NAME","PopperAnchor","virtualRef","anchorProps","anchorRef","previousAnchor","CONTENT_NAME","PopperContentProvider","useContentContext","PopperContent","sideOffset","align","alignOffset","arrowPadding","avoidCollisions","collisionBoundary","collisionPaddingProp","sticky","hideWhenDetached","updatePositionStrategy","onPlaced","contentProps","setContent","setArrow","arrowSize","arrowWidth","arrowHeight","desiredPlacement","collisionPadding","hasExplicitBoundaries","isNotNull","isPositioned","anchorWidth","anchorHeight","contentStyle","floatingUIarrow","transformOrigin","placedSide","placedAlign","getSideAndAlignFromPlacement","handlePlaced","arrowX","arrowY","cannotCenterArrow","contentZIndex","setContentZIndex","ARROW_NAME","OPPOSITE_SIDE","PopperArrow","contentContext","baseSide","ArrowPrimitive.Root","isArrowHidden","noArrowAlign","arrowXCenter","arrowYCenter","Root2","Anchor","Content","PORTAL_NAME","Portal","containerProp","portalProps","mounted","setMounted","useStateMachine","initialState","machine","Presence","present","presence","usePresence","React2","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","ENTRY_FOCUS","GROUP_NAME","Collection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","isKeyboardFocus","entryFocusEvent","activeItem","currentItem","candidateNodes","ITEM_NAME","RovingFocusGroupItem","focusable","active","itemProps","autoId","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","startIndex","_","Item","getDefaultParent","originalTarget","sampleTarget","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","parent","correctedTarget","applyAttributeToOthers","markerName","controlAttribute","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","attr","alreadyHidden","counterValue","markerValue","hideOthers","activeParentNode","__assign","n","__rest","t","__spreadArray","to","from","pack","ar","zeroRightClassName","fullWidthClassName","noScrollbarsClassName","removedBarSizeVariable","assignRef","initialValue","useState","useIsomorphicLayoutEffect","currentValues","useMergeRefs","newValue","oldValue","prevRefs_1","nextRefs_1","current_1","ItoI","innerCreateMedium","buffer","assigned","medium","cbs","pendingQueue","executeQueue","cycle","createSidecarMedium","SideCar","_a","sideCar","rest","Target","exportSidecar","exported","effectCar","nothing","RemoveScroll","parentRef","setCallbacks","forwardProps","className","removeScrollBar","enabled","shards","noRelative","noIsolation","inert","allowPinchZoom","_b","Container","gapMode","containerRef","containerProps","getNonce","makeStyleTag","tag","nonce","injectStyles","insertStyleTag","stylesheetSingleton","counter","stylesheet","style","styleHookSingleton","sheet","isDynamic","styleSingleton","useStyle","Sheet","dynamic","zeroGap","parse","getOffset","cs","right","getGapWidth","documentWidth","windowWidth","Style","lockAttribute","getStyles","allowRelative","important","gap","getCurrentUseCounter","useLockAttribute","newCounter","RemoveScrollBar","noImportant","passiveSupported","nonPassive","alwaysContainsScroll","elementCanBeScrolled","elementCouldBeVScrolled","elementCouldBeHScrolled","locationCouldBeScrolled","current","isScrollable","elementCouldBeScrolled","getScrollVariables","scrollHeight","clientHeight","getVScrollVariables","scrollTop","getHScrollVariables","scrollLeft","scrollWidth","clientWidth","getDirectionFactor","handleScroll","endTarget","sourceDelta","noOverscroll","directionFactor","delta","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","scroll_1","capacity","elementScroll","parent_1","getTouchXY","getDeltaXY","extractRef","deltaCompare","generateStyle","idCounter","lockStack","RemoveScrollSideCar","shouldPreventQueue","touchStartRef","activeAxis","lastProps","allow_1","shouldCancelEvent","touch","touchStart","deltaX","deltaY","currentAxis","moveDirection","selection","anchorNode","isTouchingSelection","canBeScrolledInMainDirection","cancelingAxis","shouldPrevent","_event","sourceEvent","shardNodes","shouldStop","shouldCancel","should","getOutermostShadowParent","scrollTouchStart","scrollWheel","scrollTouchMove","inst","shadowParent","ReactRemoveScroll","SELECTION_KEYS","FIRST_KEYS","LAST_KEYS","FIRST_LAST_KEYS","SUB_OPEN_KEYS","SUB_CLOSE_KEYS","MENU_NAME","createMenuContext","createMenuScope","usePopperScope","useRovingFocusGroupScope","MenuProvider","useMenuContext","MenuRootProvider","useMenuRootContext","MenuAnchor","__scopeMenu","popperScope","PopperPrimitive.Anchor","PortalProvider","usePortalContext","MenuPortal","forceMount","PortalPrimitive","MenuContentProvider","useMenuContentContext","MenuContent","portalContext","rootContext","MenuRootContentModal","MenuRootContentNonModal","MenuContentImpl","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsideScroll","rovingFocusGroupScope","currentItemId","setCurrentItemId","contentRef","timerRef","searchRef","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","ScrollLockWrapper","scrollLockWrapperProps","handleTypeaheadSearch","search","currentMatch","values","nextMatch","getNextMatch","newItem","updateSearch","isPointerMovingToSubmenu","isPointerInGraceArea","intent","RovingFocusGroup.Root","PopperPrimitive.Content","getOpenState","isKeyDownInside","isModifierKey","isCharacterKey","whenMouse","pointerXHasChanged","newDir","MenuGroup","LABEL_NAME","MenuLabel","labelProps","ITEM_SELECT","MenuItem","disabled","onSelect","isPointerDownRef","handleSelect","menuItem","itemSelectEvent","MenuItemImpl","isTypingAhead","textValue","isFocused","setIsFocused","textContent","setTextContent","RovingFocusGroup.Item","CHECKBOX_ITEM_NAME","MenuCheckboxItem","checked","onCheckedChange","checkboxItemProps","ItemIndicatorProvider","isIndeterminate","getCheckedState","RADIO_GROUP_NAME","RadioGroupProvider","useRadioGroupContext","MenuRadioGroup","onValueChange","handleValueChange","RADIO_ITEM_NAME","MenuRadioItem","radioItemProps","ITEM_INDICATOR_NAME","useItemIndicatorContext","MenuItemIndicator","itemIndicatorProps","indicatorContext","SEPARATOR_NAME","MenuSeparator","separatorProps","MenuArrow","PopperPrimitive.Arrow","SUB_NAME","MenuSubProvider","useMenuSubContext","SUB_TRIGGER_NAME","MenuSubTrigger","subContext","openTimerRef","onPointerGraceIntentChange","clearOpenTimer","pointerGraceTimer","contentRect","rightSide","bleed","contentNearEdge","contentFarEdge","SUB_CONTENT_NAME","MenuSubContent","subContentProps","isCloseKey","normalizedSearch","currentMatchIndex","wrappedValues","isPointInPolygon","point","polygon","inside","j","ii","jj","xi","yi","xj","yj","area","cursorPos","Anchor2","Content2","Group","Label","Item2","CheckboxItem","RadioGroup","RadioItem","ItemIndicator","Separator","Arrow2","SubTrigger","SubContent","DROPDOWN_MENU_NAME","createDropdownMenuContext","useMenuScope","DropdownMenuProvider","useDropdownMenuContext","TRIGGER_NAME","DropdownMenuTrigger","__scopeDropdownMenu","triggerProps","menuScope","MenuPrimitive.Anchor","DropdownMenuPortal","MenuPrimitive.Portal","DropdownMenuContent","hasInteractedOutsideRef","MenuPrimitive.Content","originalEvent","ctrlLeftClick","isRightClick","DropdownMenuGroup","MenuPrimitive.Group","DropdownMenuLabel","MenuPrimitive.Label","DropdownMenuItem","MenuPrimitive.Item","DropdownMenuCheckboxItem","MenuPrimitive.CheckboxItem","DropdownMenuRadioGroup","radioGroupProps","MenuPrimitive.RadioGroup","DropdownMenuRadioItem","MenuPrimitive.RadioItem","INDICATOR_NAME","DropdownMenuItemIndicator","MenuPrimitive.ItemIndicator","DropdownMenuSeparator","MenuPrimitive.Separator","DropdownMenuArrow","MenuPrimitive.Arrow","DropdownMenuSubTrigger","subTriggerProps","MenuPrimitive.SubTrigger","DropdownMenuSubContent","MenuPrimitive.SubContent","Portal2","r","f","clsx","concatArrays","array1","array2","combinedArray","createClassValidatorObject","classGroupId","createClassPartObject","nextPart","CLASS_PART_SEPARATOR","EMPTY_CONFLICTS","ARBITRARY_PROPERTY_PREFIX","createClassGroupUtils","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getGroupIdForArbitraryProperty","classParts","getGroupRecursive","hasPostfixModifier","modifierConflicts","baseConflicts","classPartObject","currentClassPart","nextClassPartObject","classRest","validatorsLength","validatorObj","colonIndex","property","theme","classGroups","processClassGroups","group","processClassesRecursively","classGroup","classDefinition","processClassDefinition","processStringDefinition","processFunctionDefinition","processObjectDefinition","classPartObjectToEdit","getPart","isThemeGetter","next","func","createLruCache","maxCacheSize","cacheSize","previousCache","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","EMPTY_MODIFIERS","createResultObject","modifiers","hasImportantModifier","baseClassName","maybePostfixModifierPosition","isExternal","createParseClassName","prefix","experimentalParseClassName","parseClassName","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","fullPrefix","parseClassNameOriginal","createSortModifiers","modifierWeights","mod","currentSegment","modifier","isArbitrary","isOrderSensitive","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","sortModifiers","classGroupsInConflict","classNames","originalClassName","variantModifier","modifierId","classId","conflictGroups","twJoin","classLists","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","fallbackThemeArr","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","scaleBgRepeat","scaleBgSize","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","twMerge","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__objRest","exclude","__async","__this","__arguments","generator","step","APIRequest","_APIRequest","baseAPIURL","_SSOAuthorization","redirectURL","refreshToken","Cookie","cookieName","appToken","isTokenExpired","decodedToken","date","networkRequest","_c","_d","cookieName2","username","refreshTokencookieName","SSOAuthorization","cn","inputs","React3","jsx3","DropdownMenuPrimitive.Portal","DropdownMenuPrimitive.Content","SDKContext","createContext","SDKProvider","appName","apiKey","accessToken","authorized","setAuthorized","isChatScreen","setIsChatScreen","useSdkContext","useContext","POPOVER_NAME","createPopoverContext","PopoverProvider","usePopoverContext","Popover","__scopePopover","openProp","defaultOpen","onOpenChange","modal","triggerRef","hasCustomAnchor","setHasCustomAnchor","setOpen","PopperPrimitive.Root","prevOpen","PopoverAnchor","onCustomAnchorAdd","onCustomAnchorRemove","PopoverTrigger","composedTriggerRef","trigger","getState","PopoverPortal","PopoverContent","PopoverContentModal","PopoverContentNonModal","isRightClickOutsideRef","PopoverContentImpl","hasPointerDownOutsideRef","CLOSE_NAME","PopoverClose","closeProps","PopoverArrow","Trigger","SvgAssistLogo","SvgMenuOpen","SvgSearch","SvgHeadsetMic","SvgMenu","SvgAttachFile","SvgMoreAiLogo","SvgMoreAiSparkle","title","jsxs","RadixPopover.Root","RadixPopover.Trigger","Headset_mic","RadixPopover.Portal","RadixPopover.Content","SearchBar","Search","Loader","ws","reconnectAttempts","isManuallyClosed","subscriptionIdCounter","subscriptions","isConnectionAcked","graphqlEndpoint","subscriptionEndpoint","openWebsocket","apiHeader","base64ApiHeader","base64Payload","appsyncUrl","connect","delay","createChatbotClient","apiURLS","operation","variables","subscription","chatbotClient","initChatbot","urls","query","gqlQuery","gqlMutation","subscribe","gqlSubscription","ASSIST_HISTORY","EMPLOYEEE_ASSIST_TICKET","useAssistTicket","ticketData","setTicketData","loading","setLoading","setError","useEffect","resp","formatTime","ts","formatDateAndTime","iso","timeZone","locale","day","month","year","time","setDataSessionStorage","getSessionStorageData","ChatHistory","ticketBtnClickHandler","ticket_id","user_id","prev","Header","menuPressHandler","AssistLogo","Menu","MenuOpen","Assist_Chat","ON_ASSIST_CHAT","PAGE_LIMIT","useChatMessages","historyData","setHistoryData","msgLoading","setMsgLoading","msgError","setMsgError","isLoadingMore","setIsLoadingMore","isSending","setIsSending","profileInfo","setProfileInfo","getProfileInfo","sessionTicket","employeeId","historyTicket","useMemo","itm","ticketId","subsData","text","getTicketId","getHandover","sendMessageObj","newItems","Toast","toastMsg","ALLOWED_TYPES","Chat","toastErr","setToastErr","scrollContainerRef","useRef","inputChatRef","fileInputRef","prevScrollHeightRef","prevScrollTopRef","isPrependingRef","sendMessage","getNextPageData","prevHeight","prevTop","diff","sendMessageHandler","onKeyDownHandler","onFileChange","files","validFiles","file","handleFileClickHandler","MoreAISparkle","MoreAILogo","Attach_file","SDKRoot","validateSdk","sdkOptions","initialized","listeners","notify","ChatButton","setState"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,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,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,106]}
|