@melt-js/libs-react-leva 0.0.0-stage → 2026.11.13

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DMdT4ab7.js","sources":["../../src/index.ts","../../../node_modules/.pnpm/hel-iso@4.4.0/node_modules/hel-iso/es/index.js","../../../node_modules/.pnpm/hel-micro-core@4.13.1_hel-types@4.3.10/node_modules/hel-micro-core/es/index.js","../../../node_modules/.pnpm/hel-lib-proxy@4.12.3_hel-mi_6b0f41e517098e22544f0ed11f95cd52/node_modules/hel-lib-proxy/dist/hel-lib-proxy.min.js","../../src/configs/subApp.ts","../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","../../../node_modules/.pnpm/@radix-ui+react-compose-ref_e97e486cb199e6c04488e16201cd16d0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-slot@1.5.0_@types+react@18.3.31_react@18.3.1/node_modules/@radix-ui/react-slot/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-primitive@2_287b08646cf222d74794c4d70561c54c/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-use-layout-_83f8d67cce53386f4fdd95a0254460e1/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-portal@1.2._ca9bb6b0dc50d1fb47e133e431ac573f/node_modules/@radix-ui/react-portal/dist/index.mjs","../../../node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/lite/index.mjs","../../../node_modules/.pnpm/zustand@3.7.2_react@18.3.1/node_modules/zustand/esm/shallow.js","../../../node_modules/.pnpm/v8n@1.5.1/node_modules/v8n/dist/v8n.esm.js","../../../node_modules/.pnpm/@stitches+react@1.2.8_react@18.3.1/node_modules/@stitches/react/dist/index.mjs","../../../node_modules/.pnpm/@use-gesture+core@10.3.1/node_modules/@use-gesture/core/dist/maths-0ab39ae9.esm.js","../../../node_modules/.pnpm/@use-gesture+core@10.3.1/node_modules/@use-gesture/core/dist/actions-fe213e88.esm.js","../../../node_modules/.pnpm/@use-gesture+core@10.3.1/node_modules/@use-gesture/core/dist/use-gesture-core.esm.js","../../../node_modules/.pnpm/@use-gesture+react@10.3.1_react@18.3.1/node_modules/@use-gesture/react/dist/use-gesture-react.esm.js","../../../node_modules/.pnpm/@radix-ui+primitive@1.2.0/node_modules/@radix-ui/primitive/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-context@1.3_2211895c03e2add7548d8c0179a481cc/node_modules/@radix-ui/react-context/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-use-callbac_24c4463968c5a65a23a6ff4bb9996d67/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-dismissable_7f80169c1096be130bb059a20d9f48ce/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-focus-scope_846e62c79fa44f5ecfb65df4e5e1baa4/node_modules/@radix-ui/react-focus-scope/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-id@1.1.4_@types+react@18.3.31_react@18.3.1/node_modules/@radix-ui/react-id/dist/index.mjs","../../../node_modules/.pnpm/@floating-ui+utils@0.2.12/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../node_modules/.pnpm/@floating-ui+core@1.8.0/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/.pnpm/@floating-ui+utils@0.2.12/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../node_modules/.pnpm/@floating-ui+dom@1.8.0/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/.pnpm/@floating-ui+react-dom@2.1._1825d0a2e9518dfc7dcd4f1e3caad82f/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../../../node_modules/.pnpm/@radix-ui+react-arrow@1.1.1_a6ae20a3a331f2678343758c4f6c4602/node_modules/@radix-ui/react-arrow/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-use-size@1._31cd5ac28089067e1bd9e9cb65578b17/node_modules/@radix-ui/react-use-size/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-popper@1.4._893915cd1714ba74e2d4540a2df2b42f/node_modules/@radix-ui/react-popper/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-presence@1._fae32a37301141d15ee78232699c545a/node_modules/@radix-ui/react-presence/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-use-effect-_987dc4decfe54dafa62408eb2094f451/node_modules/@radix-ui/react-use-effect-event/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-use-control_e93dd07605cb61f6a240135d675c66de/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-visually-hi_e7ec2c7cf95bf96bfdd242eba7e659f0/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs","../../../node_modules/.pnpm/@radix-ui+react-tooltip@1.4_45c54fb8fc807a5d18b1c4f17facc42b/node_modules/@radix-ui/react-tooltip/dist/index.mjs","../../../node_modules/.pnpm/leva@0.10.1_@types+react-do_5cf6a4bf52f47cbbae0229de8f95f34a/node_modules/leva/dist/vector-plugin-5e122f40.esm.js","../../../node_modules/.pnpm/colord@2.12.0/node_modules/colord/index.mjs","../../../node_modules/.pnpm/colord@2.12.0/node_modules/colord/plugins/names.mjs","../../../node_modules/.pnpm/react-colorful@5.8.1_react-_29ac344772ef706f3ab3b031b44ca574/node_modules/react-colorful/dist/index.mjs","../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js","../../../node_modules/.pnpm/tslib@2.9.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/file-selector@0.5.0/node_modules/file-selector/dist/es5/file.js","../../../node_modules/.pnpm/file-selector@0.5.0/node_modules/file-selector/dist/es5/file-selector.js","../../../node_modules/.pnpm/attr-accept@2.2.5/node_modules/attr-accept/dist/es/index.js","../../../node_modules/.pnpm/react-dropzone@12.1.0_react@18.3.1/node_modules/react-dropzone/dist/es/utils/index.js","../../../node_modules/.pnpm/react-dropzone@12.1.0_react@18.3.1/node_modules/react-dropzone/dist/es/index.js","../../../node_modules/.pnpm/zustand@3.7.2_react@18.3.1/node_modules/zustand/esm/index.js","../../../node_modules/.pnpm/zustand@3.7.2_react@18.3.1/node_modules/zustand/esm/middleware.js","../../../node_modules/.pnpm/isobject@3.0.1/node_modules/isobject/index.js","../../../node_modules/.pnpm/is-plain-object@2.0.4/node_modules/is-plain-object/index.js","../../../node_modules/.pnpm/is-extendable@1.0.1/node_modules/is-extendable/index.js","../../../node_modules/.pnpm/for-in@1.0.2/node_modules/for-in/index.js","../../../node_modules/.pnpm/mixin-deep@1.3.2/node_modules/mixin-deep/index.js","../../../node_modules/.pnpm/get-value@2.0.6/node_modules/get-value/index.js","../../../node_modules/.pnpm/assign-symbols@1.0.0/node_modules/assign-symbols/index.js","../../../node_modules/.pnpm/extend-shallow@3.0.2/node_modules/extend-shallow/index.js","../../../node_modules/.pnpm/split-string@3.1.0/node_modules/split-string/index.js","../../../node_modules/.pnpm/is-extendable@0.1.1/node_modules/is-extendable/index.js","../../../node_modules/.pnpm/extend-shallow@2.0.1/node_modules/extend-shallow/index.js","../../../node_modules/.pnpm/set-value@2.0.1/node_modules/set-value/index.js","../../../node_modules/.pnpm/merge-value@1.0.0/node_modules/merge-value/index.js","../../../node_modules/.pnpm/leva@0.10.1_@types+react-do_5cf6a4bf52f47cbbae0229de8f95f34a/node_modules/leva/dist/leva.esm.js","../../src/core/schema.ts","../../src/core/leva.ts","../../src/PropsPanel.tsx","../../src/PropsPlayground.tsx","../../src/entrance/libProperties.ts","../../src/loadApp.tsx"],"sourcesContent":["async function main() {\n const { isMasterApp } = await import('hel-iso')\n const { libReady } = await import('hel-lib-proxy')\n const { LIB_NAME } = await import('./configs/subApp')\n\n const libProperties = await import('./entrance/libProperties')\n // !!!注意这句话不能删掉,否则使用方无法获取到模块\n libReady(LIB_NAME, libProperties.default)\n\n // 非子应用时自己挂载调试页,方便本地独立验证(被宿主载入时不会触发)\n if (isMasterApp()) {\n await import('./loadApp')\n }\n}\n\nmain().catch(console.error)\n\n// avoid isolatedModules warning\nexport default 'HEL REMOTE MOD'\n","/*\n|--------------------------------------------------------------------------\n| ATTENTION:\n| 此包只能被每个应用独立安装,将此包提升到 external 将会导致 isSubApp 失效\n|--------------------------------------------------------------------------\n*/\n\n// iso 模块加载信息\nvar info = getIsoInfo();\ntryMarkFlag();\nvar cachedIsMaster = getIsMaster();\n\n/**\n * @returns {typeof globalThis}\n */\nfunction getGlobalThis() {\n return window || global;\n}\nfunction getIsoInfo() {\n var _getGlobalThis = getGlobalThis(),\n __HEL_LOAD_ASSETS_FLAG__ = _getGlobalThis.__HEL_LOAD_ASSETS_FLAG__,\n __HEL_ISO_FLAG__ = _getGlobalThis.__HEL_ISO_FLAG__,\n __MASTER_APP_LOADED__ = _getGlobalThis.__MASTER_APP_LOADED__;\n return {\n /**\n * v4.4.0 之后新增 __HEL_LOAD_ASSETS_FLAG__ 来判断当前应用是否是子应用,要求 hel-micro 包 >= 4.9.2\n * 是否 hel-micro 里的 isLoadAssets 已调用,true 表示已调用,则此时载入的 hel-iso 包所属应用可当做子应用\n * (注:此判断成立的前提条件是要求子应用必须在入口文件头部导入 hel-iso 包)\n */\n isLoadAssetsCalled: __HEL_LOAD_ASSETS_FLAG__ === 1,\n /** 是否是第一个载入 hel-iso 模块 */\n isFirstMod: __HEL_ISO_FLAG__ === undefined,\n /** 是否是在 hel-micro-core 之前载入的 */\n isBeforeCore: __MASTER_APP_LOADED__ === undefined\n };\n}\nfunction tryMarkFlag() {\n var globalThis = getGlobalThis();\n // 启用新的名称 __HEL_ISO_FLAG__ 替代 hel-micro-core 里的 __MASTER_APP_LOADED__\n // 确保 hel-iso 在被并调用 isMasterApp 时能够正确推断是否主应用\n if (globalThis.__HEL_ISO_FLAG__ === undefined) {\n globalThis.__HEL_ISO_FLAG__ = 1;\n }\n}\nfunction getCodeHost() {\n var loc = '';\n try {\n throw new Error('codeHost');\n } catch (err) {\n var stackArr = err.stack.split('\\n');\n loc = stackArr[stackArr.length - 1] || '';\n }\n\n // case 1 codeHost will be ''\n // \" at _next (webpack-internal:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js:31:9)\"\n // case 2 codeHost will be 'localhost:3103'\n // at main (http://localhost:3103/static/js/bundle.js:343:60)\n var str = loc.split('//')[1] || ''; // str after double slash\n var codeHost = str.split('/')[0];\n return codeHost;\n}\nfunction getIsMaster() {\n var globalThis = getGlobalThis();\n var location = globalThis.location,\n microShared = globalThis.__HEL_MICRO_SHARED__;\n var isFirstMod = info.isFirstMod,\n isBeforeCore = info.isBeforeCore,\n isLoadAssetsCalled = info.isLoadAssetsCalled;\n if (isLoadAssetsCalled) {\n return false;\n }\n\n // TODO: 后续所有 demo 升级 hel-micro >= 4.9.2 之后,可删除以下所有逻辑,仅用 isLoadAssetsCalled 即可\n\n // 如果不是第一个载入的,一定是子模块\n if (!isFirstMod) {\n return false;\n }\n // 以下逻辑开始,当前 iso 模式是【第一个载入的】,按道理可以返回 true 表示前应用是主应用了\n // 但为了兼容 iso 和 core 共存时,依然能正确判断当前应用是否是主应用,所以继续加入其他判断条件\n // -----------------------------------------------------------------------------\n // 在 core 之前加载\n if (isBeforeCore) {\n return true;\n }\n\n // 当前运行环境和代码的位置一致,一定是主应用\n var codeHost = getCodeHost();\n if (location && location.host === codeHost) {\n return true;\n }\n\n // codeHost 判断失败时,再看 microShared\n if (microShared) {\n var _microShared$cacheRoo = microShared.cacheRoot,\n appGroupName2platform = _microShared$cacheRoo.appGroupName2platform,\n appName2platform = _microShared$cacheRoo.appName2platform;\n var map = appGroupName2platform || appName2platform || {};\n // 无任何相关子模块数据,一定是主应用\n if (!Object.keys(map).length) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * 是否是主应用\n * @returns\n */\nfunction isMasterApp$1() {\n return cachedIsMaster;\n}\nfunction isSubApp$1() {\n return !isMasterApp$1();\n}\n\nvar isMasterApp = isMasterApp$1,\n isSubApp = isSubApp$1;\nvar index = {\n isSubApp: isSubApp,\n isMasterApp: isMasterApp\n};\n\nexport { index as default, isMasterApp, isSubApp };\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = !0, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar globalThisRef = null;\nfunction assignRef() {\n // for browser env\n if (typeof window !== 'undefined') {\n globalThisRef = window;\n return;\n }\n // for nodejs env\n if (typeof global !== 'undefined') {\n globalThisRef = global;\n return;\n }\n throw new Error('unable to locate global object');\n}\n\n/**\n *\n * @returns {typeof globalThis}\n */\nfunction getGlobalThis$1() {\n if (!globalThisRef) {\n assignRef();\n }\n return globalThisRef;\n}\nfunction setGlobalThis$1(specGlobalThis) {\n var _globalThisRef;\n var merge = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var prevShared = null;\n if ((_globalThisRef = globalThisRef) !== null && _globalThisRef !== void 0 && _globalThisRef.__HEL_MICRO_SHARED__) {\n prevShared = globalThisRef.__HEL_MICRO_SHARED__;\n }\n if (merge) {\n globalThisRef = _objectSpread2(_objectSpread2({}, globalThisRef), specGlobalThis);\n } else {\n globalThisRef = specGlobalThis;\n }\n // 避免 resetGlobalThis 被用户调用后,共享数据丢失\n if (prevShared) {\n globalThisRef.__HEL_MICRO_SHARED__ = prevShared;\n }\n}\n\n/**\n * 获取 hel 全局单例对象挂载的宿主,现阶段是 window self global\n * 针对浏览器环境后期可能会调整宿主节点\n */\nfunction getHelSingletonHost() {\n return getGlobalThis$1();\n}\n\nfunction getOB() {\n var gs = getGlobalThis$1();\n // @ts-ignore\n return gs.MutationObserver || gs.WebKitMutationObserver || gs.MozMutationObserver;\n}\n\n/**\n * 经测试 nodeList.find(node => node.tagName === 'BODY')\n * 可能在某些浏览器报错,故抽象为 for 循环语法方便多处复用\n */\nfunction findNode(/** @type NodeList */nodeList, tagName) {\n var targetNode = null;\n var len = nodeList.length;\n for (var i = 0; i < len; i++) {\n var node = nodeList[i];\n if (node.tagName === tagName) {\n targetNode = node;\n break;\n }\n }\n return targetNode;\n}\nfunction okeys$1(map) {\n return Object.keys(map);\n}\nfunction getSearch() {\n var getLocSearch = function getLocSearch(/** @type {Location} */location) {\n var locVar = location || {};\n var search = locVar.search || '';\n if (!search) {\n var hash = locVar.hash || '';\n var hashSearch = hash.split('?')[1] || '';\n if (hashSearch) {\n search = \"?\".concat(hashSearch);\n }\n }\n return search;\n };\n try {\n var _getGlobalThis;\n return getLocSearch((_getGlobalThis = getGlobalThis$1()) === null || _getGlobalThis === void 0 || (_getGlobalThis = _getGlobalThis.top) === null || _getGlobalThis === void 0 ? void 0 : _getGlobalThis.location);\n } catch (err) {\n var _getGlobalThis2;\n // 可能是非同域的 iframe 载入,访问 iframe 外部变量导致的报错\n return getLocSearch((_getGlobalThis2 = getGlobalThis$1()) === null || _getGlobalThis2 === void 0 ? void 0 : _getGlobalThis2.location);\n }\n}\nfunction getLsItem(key) {\n var _getGlobalThis3;\n var ls = (_getGlobalThis3 = getGlobalThis$1()) === null || _getGlobalThis3 === void 0 ? void 0 : _getGlobalThis3.localStorage;\n return ls === null || ls === void 0 ? void 0 : ls.getItem(key);\n}\nfunction setLsItem(key, val) {\n var _getGlobalThis4;\n var ls = (_getGlobalThis4 = getGlobalThis$1()) === null || _getGlobalThis4 === void 0 ? void 0 : _getGlobalThis4.localStorage;\n return ls === null || ls === void 0 ? void 0 : ls.setItem(key, val);\n}\nfunction getSearchObj() {\n var search = getSearch();\n var map = {};\n if (search !== null && search !== void 0 && search.startsWith('?')) {\n var pureSearch = search.substring(1);\n var items = pureSearch.split('&');\n items.forEach(function (item) {\n var _item$split = item.split('='),\n _item$split2 = _slicedToArray(_item$split, 2),\n key = _item$split2[0],\n value = _item$split2[1];\n map[key] = value;\n });\n }\n return map;\n}\nfunction getJsRunLocation() {\n var loc = '';\n try {\n throw new Error('getJsRunLocation');\n } catch (err) {\n /** @type {string[]} */\n var stackArr = err.stack.split('\\n');\n var len = stackArr.length;\n // firefox 下 len-1 取不到,需要取 len-2\n loc = stackArr[len - 1] || stackArr[len - 2] || '';\n }\n return loc;\n}\nfunction setSubMapValue(rootObj, key, subKey, subValue) {\n var subMap = safeGetMap(rootObj, key);\n subMap[subKey] = subValue;\n}\nfunction safeGetMap(rootObj, key) {\n var defaultMap = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var subMap = rootObj[key];\n if (!subMap) {\n subMap = defaultMap;\n rootObj[key] = subMap;\n }\n return subMap;\n}\nfunction safeAssign(assignTo, assignFrom) {\n Object.keys(assignFrom).forEach(function (key) {\n var val = assignFrom[key];\n if (![null, undefined, ''].includes(val)) {\n assignTo[key] = val;\n }\n });\n}\nfunction noDupPush$1(oriList, toPush) {\n if (!oriList.includes(toPush)) oriList.push(toPush);\n}\nfunction isNull$1(value) {\n var nullDef = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _nullDef$nullValues = nullDef.nullValues,\n nullValues = _nullDef$nullValues === void 0 ? [null, undefined, ''] : _nullDef$nullValues,\n _nullDef$emptyObjIsNu = nullDef.emptyObjIsNull,\n emptyObjIsNull = _nullDef$emptyObjIsNu === void 0 ? true : _nullDef$emptyObjIsNu,\n _nullDef$emptyArrIsNu = nullDef.emptyArrIsNull,\n emptyArrIsNull = _nullDef$emptyArrIsNu === void 0 ? true : _nullDef$emptyArrIsNu;\n var inNullValues = nullValues.includes(value);\n if (inNullValues) {\n return true;\n }\n if (Array.isArray(value)) {\n if (emptyArrIsNull) return value.length === 0;\n return false;\n }\n if (_typeof(value) === 'object') {\n var keys = okeys$1(value);\n var keyLen = keys.length;\n if (emptyObjIsNull) return keyLen === 0;\n return false;\n }\n return false;\n}\n\nfunction noop() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args;\n}\nfunction hasProp(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nfunction isServer() {\n var globalThis = getGlobalThis$1();\n return globalThis.process && globalThis.global && !globalThis.document;\n}\nfunction safeParse(jsonStr, defaultValue, errMsg) {\n // 防止传入进来的已经是 json 对象\n if (jsonStr && typeof jsonStr !== 'string') {\n return jsonStr;\n }\n try {\n var result = JSON.parse(jsonStr); // 避免 JSON.parse('null') ---> null\n return result || defaultValue;\n } catch (err) {\n if (defaultValue !== undefined) return defaultValue;\n if (errMsg) throw new Error(errMsg);\n throw err;\n }\n}\nvar isNull = isNull$1;\nvar noDupPush = noDupPush$1;\nvar okeys = okeys$1;\nfunction merge2List(list1, list2) {\n var mergedList = [];\n list1.forEach(function (v) {\n return noDupPush(mergedList, v);\n });\n list2.forEach(function (v) {\n return noDupPush(mergedList, v);\n });\n return mergedList;\n}\nfunction purify(obj, isValueValid) {\n // isValidVal or isNull\n var isValidFn = isValueValid || function (value) {\n return !isNull(value);\n };\n var pureObj = {};\n okeys(obj).forEach(function (key) {\n if (isValidFn(obj[key])) pureObj[key] = obj[key];\n });\n return pureObj;\n}\nfunction getObjsVal(objs, key, backupVal) {\n var val = backupVal;\n var _iterator = _createForOfIteratorHelper(objs),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n var mayValidVal = item[key];\n if (![null, undefined, ''].includes(mayValidVal)) {\n val = mayValidVal;\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return val;\n}\n\n/**\n * for pretty format multi line string when use \\`...\\`\n * @param {*} mayLineBreakStr\n * @param {'MULTI' | 'ONE'} [mode='MULTI']\n * @returns\n */\nfunction pfstr(/** @type string */mayLineBreakStr) {\n var mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'MULTI';\n var lines = mayLineBreakStr.split('\\n');\n var lastIdx = lines.length - 1;\n var formatLine = lines.map(function (line, idx) {\n var _line$trimStart;\n if (!line && (idx === 0 || idx === lastIdx)) {\n return '';\n }\n var replaceBr = function replaceBr(/** @type string */line, hasBrStr) {\n var noBrStr = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var result = line;\n if (line.endsWith('<br/>')) {\n result = line.substring(0, result.length - 5);\n return \"\".concat(result).concat(hasBrStr);\n }\n return \"\".concat(result).concat(noBrStr);\n };\n var result = ((_line$trimStart = line.trimStart) === null || _line$trimStart === void 0 ? void 0 : _line$trimStart.call(line)) || line; // 去头部所有空格\n if (mode === 'MULTI') {\n return \"\".concat(replaceBr(result, ''), \"\\n\");\n }\n result = replaceBr(result, '\\n', ' ');\n return result;\n }).join('');\n return formatLine;\n}\nfunction nbstr(mayLineBreakStr) {\n return pfstr(mayLineBreakStr, 'ONE');\n}\nfunction nbalert(mayLineBreakStr) {\n var alertInDev = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var g = getGlobalThis$1();\n var str = nbstr(mayLineBreakStr);\n var alert = g.alert || noop;\n if (alertInDev) {\n var _g$location;\n ((_g$location = g.location) === null || _g$location === void 0 ? void 0 : _g$location.port) && alert(str);\n return;\n }\n alert(str);\n}\nfunction setDataset(el, key, val) {\n if (el.dataset) {\n el.dataset[key] = val;\n } else {\n el.setAttribute(\"data-\".concat(key), val);\n }\n}\nfunction disableNode(node) {\n // 只能连续命名,否则会报错\n // failed to set a named property on 'DOMStringMap': 'hel-disabled' is not a valid property name.\n setDataset(node, 'heldisabled', '1');\n node.disabled = true;\n}\n\nvar commonUtilMod = /*#__PURE__*/Object.freeze({\n __proto__: null,\n noop: noop,\n hasProp: hasProp,\n isServer: isServer,\n safeParse: safeParse,\n isNull: isNull,\n noDupPush: noDupPush,\n okeys: okeys,\n merge2List: merge2List,\n purify: purify,\n getObjsVal: getObjsVal,\n pfstr: pfstr,\n nbstr: nbstr,\n nbalert: nbalert,\n setDataset: setDataset,\n disableNode: disableNode\n});\n\nfunction injectPlat(platform, injectOptions) {\n var _this = this;\n var fn = injectOptions.fn,\n fnName = injectOptions.fnName,\n arg1PlatObjFnKeys = injectOptions.arg1PlatObjFnKeys;\n var handleArg1 = arg1PlatObjFnKeys.includes(fnName);\n return function () {\n var mergePlatObj = function mergePlatObj(obj) {\n return _objectSpread2({\n platform: platform\n }, purify(obj || {}));\n };\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg1 = args[0],\n arg2 = args[1];\n if (handleArg1) {\n args[0] = mergePlatObj(arg1);\n } else {\n args[1] = mergePlatObj(arg2);\n }\n // @ts-ignore\n return fn.apply(_this, args);\n };\n}\nfunction inectPlatToMod$1(platform, mod, options) {\n var _ref = options || {},\n _ref$ignoreKeys = _ref.ignoreKeys,\n ignoreKeys = _ref$ignoreKeys === void 0 ? [] : _ref$ignoreKeys,\n _ref$arg1PlatObjFnKey = _ref.arg1PlatObjFnKeys,\n arg1PlatObjFnKeys = _ref$arg1PlatObjFnKey === void 0 ? [] : _ref$arg1PlatObjFnKey;\n var newObj = {};\n Object.keys(mod).forEach(function (mayFnName) {\n var mayFn = mod[mayFnName];\n if (ignoreKeys.includes(mayFnName)) {\n newObj[mayFnName] = mayFn;\n return;\n }\n var valueType = _typeof(mayFn);\n if (valueType && valueType === 'object') {\n newObj[mayFnName] = inectPlatToMod$1(platform, mayFn, options);\n return;\n }\n if (valueType === 'function') {\n newObj[mayFnName] = injectPlat(platform, {\n arg1PlatObjFnKeys: arg1PlatObjFnKeys,\n fn: mayFn,\n fnName: mayFnName\n });\n return;\n }\n newObj[mayFnName] = mayFn;\n });\n return newObj;\n}\n\nvar PLAT_HEL$1 = 'hel';\nvar PLAT_UNPKG$1 = 'unpkg';\nvar logModeEnum = {\n NONE: 0,\n LOG: 1,\n TRACE: 2\n};\n\n/**\n * 第一个载入的版本号,后续接口未指定版本时,总是优先载入一个载入的版本号对应的模块,确保优先使用全局已存在的模块\n * 内部很多地方用,这里额外独立暴露一下\n */\nvar DEFAULT_ONLINE_VER = '__default_online_ver__';\n\n/** 内部很多地方用,这里额外独立暴露一下 */\nvar DEFAULT_PLAT = PLAT_UNPKG$1;\nvar helConsts$1 = {\n CORE_VER: '4.13.1',\n DEFAULT_API_PREFIX: 'https://unpkg.com',\n DEFAULT_API_URL: '/openapi/v1/app/info',\n DEFAULT_ONLINE_VER: DEFAULT_ONLINE_VER,\n DEFAULT_USER_LS_KEY: 'HelUserRtxName',\n DEFAULT_PLAT: DEFAULT_PLAT,\n LS_LOG_MODE: 'HelConfig.logMode',\n LS_LOG_FILTER: 'HelConfig.logFilter',\n PLAT_HEL: PLAT_HEL$1,\n PLAT_UNPKG: PLAT_UNPKG$1,\n /** commonData.CSS_STR ,存放样式字符串 map */\n KEY_CSS_STR: 'CSS_STR',\n /** commonData.ASSET_CTX ,资源对应的具体上下文 */\n KEY_ASSET_CTX: 'ASSET_CTX',\n /** commonData.STYLE_TAG_ADDED ,对应的样式字符串 { [key: 'app-group-name' ]: string } */\n KEY_STYLE_TAG_ADDED: 'STYLE_TAG_ADDED',\n /** commonData.CSS_LINK_TAG_ADDED ,对应的样式url列表 { [key: 'http://localhost:3000' ]: string[] } */\n KEY_CSS_LINK_TAG_ADDED: 'CSS_LINK_TAG_ADDED',\n /** commonData.IGNORE_CSS_PREFIX_LIST ,忽略样式前缀列表 string[] */\n KEY_IGNORE_CSS_PREFIX_LIST: 'IGNORE_CSS_PREFIX_LIST',\n /** commonData.IGNORE_STYLE_TAG_KEY ,忽略样式前缀列表 { [key: string ]: 1|0 } */\n KEY_IGNORE_STYLE_TAG_KEY: 'IGNORE_STYLE_TAG_KEY',\n /** commonData.IGNORE_CSS_PREFIX_2_KEYS ,忽略样式前缀对应的key { [key: 'http://localhost:3000' ]: string } */\n KEY_IGNORE_CSS_PREFIX_2_KEYS: 'IGNORE_CSS_PREFIX_2_KEYS'\n};\nvar helEvents$1 = {\n // renderApp 发射的是 SUB_APP_LOADED\n // 此处有个小写开头的瑕疵不再做纠正,\n SUB_APP_LOADED: 'subAppLoaded',\n // libReady 发射的是 SUB_LIB_LOADED\n SUB_LIB_LOADED: 'SubLibLoaded',\n // 3.2+ 新增样式字符串获取完毕事件\n STYLE_STR_FETCHED: 'StyleStrFetched',\n /** 4.2.3+ 用于监听动态添加的 style 标签,方便上层用到 shadowdom 的地方可以接收样式并转移到 shadowdom 内部 */\n STYLE_TAG_ADDED: 'StyleTagAdded',\n /** 4.2.6+ 用于监听动态添加的 link 标签,方便上层用到 shadowdom 的地方可以接收样式并转移到 shadowdom 内部 */\n CSS_LINK_TAG_ADDED: 'CssLinkTagAdded'\n};\n\n/**\n * 作为应用是否加载 或 样式字符串 是否获取的枚举 map\n * @type {{NOT_LOAD:0, LOADING:1, LOADED:2}}\n */\nvar helLoadStatus$1 = {\n NOT_LOAD: 0,\n LOADING: 1,\n LOADED: 2\n};\n\nvar LS_LOG_FILTER = helConsts$1.LS_LOG_FILTER,\n LS_LOG_MODE = helConsts$1.LS_LOG_MODE;\nvar NONE = logModeEnum.NONE,\n LOG = logModeEnum.LOG,\n TRACE = logModeEnum.TRACE;\nvar inner = {\n isIncludeFilter: function isIncludeFilter(firstArg, logFilter) {\n if (!logFilter.includes(',')) {\n return firstArg.includes(logFilter);\n }\n /** @type {string[]} */\n var filterList = logFilter.split(',');\n return filterList.some(function (item) {\n return firstArg.includes(item);\n });\n },\n getLogFilter: function getLogFilter() {\n return getHelMicroDebug().logFilter;\n },\n setLogFilter: function setLogFilter(value) {\n var memVal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n getHelMicroDebug().logFilter = value;\n memVal && setLsItem(LS_LOG_FILTER, value);\n },\n setLogMode: function setLogMode(value) {\n var memVal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var modeNum = parseInt(value, 10);\n if ([NONE, LOG, TRACE].includes(modeNum)) {\n getHelMicroDebug().logMode = modeNum;\n memVal && setLsItem(LS_LOG_MODE, modeNum);\n }\n },\n getLogMode: function getLogMode() {\n return getHelMicroDebug().logMode;\n }\n};\n\n/** @type {import('../index').IHelMicroDebug} */\nvar helMicroDebug = {};\nfunction initMicroDebug() {\n if (getHelMicroDebug().isInit) {\n return;\n }\n getHelMicroDebug().isInit = true;\n var searchObj = getSearchObj();\n var hellog = searchObj.hellog,\n hellogf = searchObj.hellogf;\n\n // 优先读 url 上的控制参数 hellog,再读 localStorage 里的控制参数\n var logMode = hellog || getLsItem(LS_LOG_MODE) || NONE;\n inner.setLogMode(logMode, false);\n\n // 优先读 url 上的控制参数 hellogf\n var logFilter = hellogf || getLsItem(LS_LOG_FILTER) || '';\n inner.setLogFilter(logFilter, false);\n}\n\n/**\n * @returns {import('../index').IHelMicroDebug}\n */\nfunction makeHelMicroDebug() {\n return {\n logMode: NONE,\n logFilter: '',\n isInit: false\n };\n}\nfunction ensureHelMicroDebug() {\n helMicroDebug = getHelSingletonHost().__HEL_MICRO_DEBUG__;\n if (!isNull$1(helMicroDebug)) {\n // 兼容老版本库生成的 __HEL_MICRO_DEBUG__ 对象\n if (helMicroDebug.logMode === undefined) {\n helMicroDebug.logMode = NONE;\n helMicroDebug.logFilter = '';\n }\n return;\n }\n helMicroDebug = makeHelMicroDebug();\n getHelSingletonHost().__HEL_MICRO_DEBUG__ = helMicroDebug;\n try {\n initMicroDebug();\n } catch (err) {}\n}\n\n/** 采用缓存一次值后便不再从 search 推导的策略,方便单页面应用路由变化后,依然可以打印log */\nfunction allowLog$1() {\n return inner.getLogMode() !== NONE;\n}\nfunction getHelMicroDebug() {\n return helMicroDebug;\n}\nvar logPrefix = ' %c--> HEL LOG:';\nvar colorDesc = 'color:#ad4e00;font-weight:600';\nfunction log$1() {\n if (!allowLog$1()) {\n return;\n }\n var logFn = inner.getLogMode() === LOG ? console.log : console.trace || console.log;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var firstArg = args[0],\n rest = args.slice(1);\n if (typeof firstArg !== 'string') {\n return logFn.apply(void 0, [logPrefix, colorDesc].concat(args));\n }\n var logFilter = inner.getLogFilter();\n var logParams = [\"\".concat(logPrefix, \" \").concat(firstArg), colorDesc].concat(_toConsumableArray(rest));\n if (logFilter) {\n inner.isIncludeFilter(firstArg, logFilter) && logFn.apply(void 0, _toConsumableArray(logParams));\n return;\n }\n logFn.apply(void 0, _toConsumableArray(logParams));\n}\nvar labelTimes = {};\nfunction perfMark$1(label) {\n if (!allowLog$1() || labelTimes[label]) {\n return;\n }\n labelTimes[label] = Date.now();\n}\nfunction perfPeek$1(label, subLabel, clear) {\n if (!allowLog$1() || !labelTimes[label]) {\n return;\n }\n var start = labelTimes[label];\n log$1(\"[[ PerfCheck ]] (\".concat(label, \"/\").concat(subLabel, \") costs \").concat(Date.now() - start, \" ms\"));\n if (clear) {\n clearPerfMark$1(label);\n }\n}\nfunction clearPerfMark$1(label) {\n labelTimes[label] = 0;\n}\n\nvar DEFAULT_API_URL = helConsts$1.DEFAULT_API_URL,\n DEFAULT_USER_LS_KEY = helConsts$1.DEFAULT_USER_LS_KEY,\n PLAT_HEL = helConsts$1.PLAT_HEL,\n PLAT_UNPKG = helConsts$1.PLAT_UNPKG,\n DEFAULT_API_PREFIX = helConsts$1.DEFAULT_API_PREFIX,\n CORE_VER = helConsts$1.CORE_VER,\n KEY_CSS_LINK_TAG_ADDED$1 = helConsts$1.KEY_CSS_LINK_TAG_ADDED,\n KEY_STYLE_TAG_ADDED$1 = helConsts$1.KEY_STYLE_TAG_ADDED,\n KEY_IGNORE_CSS_PREFIX_LIST$1 = helConsts$1.KEY_IGNORE_CSS_PREFIX_LIST,\n KEY_IGNORE_STYLE_TAG_KEY$1 = helConsts$1.KEY_IGNORE_STYLE_TAG_KEY,\n KEY_IGNORE_CSS_PREFIX_2_KEYS$1 = helConsts$1.KEY_IGNORE_CSS_PREFIX_2_KEYS;\nfunction makeOriginOptions(presetOptions) {\n var _ref = presetOptions || {},\n apiPrefix = _ref.apiPrefix;\n return {\n apiMode: 'get',\n apiPrefix: apiPrefix,\n apiSuffix: '',\n apiPathOfApp: DEFAULT_API_URL,\n apiPathOfAppVersion: '',\n getSubAppAndItsVersionFn: null,\n // 4.13.0 新增 customMetaUrl 和 getMeta\n // customMetaUrl 用于配合平台新增的 /openapi/meta 请求\n // customMetaJsonpUrl 用于配合平台新增的 /openapi/metajsonp 请求\n // getMeta 用于取代 getSubAppAndItsVersionFn 函数\n customMetaUrl: '',\n customMetaJsonpUrl: '',\n getMeta: null,\n onFetchMetaFailed: null,\n strictMatchVer: true,\n getUserName: null,\n userLsKey: DEFAULT_USER_LS_KEY,\n shouldUseGray: null,\n trustAppNames: null,\n semverApi: null,\n hook: {}\n };\n}\nfunction makeCacheNode(platform) {\n /** @type {import('../index').SharedCache} */\n var cacheNode = _objectSpread2(_objectSpread2({\n isConfigOverwrite: false,\n platform: platform,\n appName2Comp: {},\n appName2Lib: {},\n appName2isLibAssigned: {},\n appName2EmitApp: {},\n appName2verLoadStatus: {},\n appName2verEmitLib: {},\n appName2verEmitApp: {},\n appName2verStyleStr: {},\n appName2verStyleFetched: {},\n appName2verExtraCssList: {},\n appName2verAppVersion: {},\n appName2verCustomData: {},\n appName2app: {},\n appName2appVersion: {},\n appName2styleStr: {},\n appGroupName2firstVer: {},\n isOriginInitCalled: false\n }, makeOriginOptions()), {}, {\n origin: makeOriginOptions({\n apiPrefix: DEFAULT_API_PREFIX\n }) // originInit 写入到此对象下\n });\n return cacheNode;\n}\nfunction makeEventBus() {\n /** @type {Record<string, any[]>} */\n var name2listeners = {};\n return {\n on: function on(eventName, cb) {\n var listeners = name2listeners[eventName];\n if (!listeners) {\n var arr = [];\n name2listeners[eventName] = arr;\n listeners = arr;\n }\n listeners.push(cb);\n },\n emit: function emit(eventName) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n var listeners = name2listeners[eventName];\n if (listeners) {\n var listenersCopy = listeners.slice();\n listenersCopy.forEach(function (cb) {\n return cb.apply(void 0, args);\n });\n }\n },\n off: function off(eventName, cb) {\n var listeners = name2listeners[eventName];\n if (listeners) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n var cbItem = listeners[i];\n if (cbItem === cb) {\n listeners.splice(i, 1);\n break;\n }\n }\n }\n }\n };\n}\nfunction makeHelMicroShared() {\n var unpkgCache = makeCacheNode(PLAT_UNPKG);\n var helCache = makeCacheNode(PLAT_HEL);\n var cacheRoot = {\n /**\n * 默认的平台值,这个值在这里已无意义,最新版本的 getPlatform 返回值已固定,不再取此处的值\n * 这里刻意设为 PLAT_HEL 是为了让 3.0 和 4.0 版本包共存时\n * 例如宿主4子模块3这种情况,子模块的旧版本 hel-micro-core 调用 getPlatform 依然能正常获取到 hel 为默认平台\n */\n platform: PLAT_HEL,\n platformHint: 'the platform value here does not make any sense!',\n /** 1.4+ 新增,用于记录 preFetchLib 时显式传递了 platform 值,供 hel-lib-proxy 或其他地方使用,\n * 方便多平台共同加载包体场景下, exposeLib 接口如果未显式的传递平台值,能尽量正确推测出应用对应的 platform 值\n * 但是这里依然推荐用户 exposeLib 传递具体的平台值,避免推测错误\n */\n appName2platform: {},\n /**\n * 最近一个加载的组名对应的平台名,仅用于兜底推导,出现多平台同组名包时,此推导结果可能是错误的,\n * 此时建议用户调用相关接口时都显式的传递平台值\n */\n appGroupName2platform: {},\n /** @type {Record<string, ReturnType<typeof makeCacheNode>>} */\n caches: _defineProperty(_defineProperty({}, PLAT_UNPKG, unpkgCache), PLAT_HEL, helCache),\n /** @type {Record<string, Record<string, any>>} 和应用无关的通用缓存池 */\n common: {}\n };\n var innerEventBus = makeEventBus();\n var userEventBus = makeEventBus();\n return {\n ver: CORE_VER,\n isStyleObInit: false,\n nativeHeadAppend: null,\n nativeBodyAppend: null,\n /** 记录用户传递的句柄 */\n patchedHeadAppend: null,\n patchedBodyAppend: null,\n createFeature: getJsRunLocation(),\n eventBus: innerEventBus,\n userEventBus: userEventBus,\n cacheRoot: cacheRoot,\n /** 指向的是 cacheRoot.caches.unpkg ,放第一层仅用于方便控制台查看,实际业务逻辑还是走 caches 去取 */\n unpkgCache: unpkgCache,\n /** 指向的是 cacheRoot.caches.hel ,放第一层仅用于方便控制台查看,实际业务逻辑还是走 caches 去取 */\n helCache: helCache,\n /** 调试相关函数 */\n dev: {\n setLogMode: inner.setLogMode,\n setLogFilter: inner.setLogFilter\n }\n };\n}\nfunction ensureCommonKeys(common) {\n var keys = [KEY_CSS_LINK_TAG_ADDED$1, KEY_STYLE_TAG_ADDED$1, KEY_IGNORE_CSS_PREFIX_LIST$1, KEY_IGNORE_STYLE_TAG_KEY$1, KEY_IGNORE_CSS_PREFIX_2_KEYS$1];\n var getDefault = function getDefault(key) {\n return key === KEY_IGNORE_CSS_PREFIX_LIST$1 ? [] : {};\n };\n keys.forEach(function (key) {\n return safeGetMap(common, key, getDefault(key));\n });\n}\nfunction ensureHelMicroShared() {\n var helMicroShared = getHelMicroShared();\n if (helMicroShared) {\n var cacheRoot = helMicroShared.cacheRoot;\n safeGetMap(cacheRoot, 'appGroupName2platform');\n safeGetMap(cacheRoot, 'common');\n\n // 兼容线上老版本包,遍历 caches 做检测子节点数据结构并补齐\n var caches = cacheRoot.caches;\n Object.keys(caches).forEach(function (key) {\n var cacheNode = caches[key];\n safeGetMap(cacheNode, 'appGroupName2firstVer');\n safeGetMap(cacheNode, 'appName2isLibAssigned');\n safeGetMap(cacheNode, 'appName2verExtraCssList');\n safeGetMap(cacheNode, 'appName2verCustomData');\n safeGetMap(cacheNode, 'hook');\n safeGetMap(cacheNode, 'origin', makeOriginOptions());\n safeGetMap(cacheNode.origin, 'hook');\n });\n ensureCommonKeys(cacheRoot.common);\n\n // 补齐老包缺失的对象\n if (!helMicroShared.userEventBus) {\n helMicroShared.userEventBus = makeEventBus();\n }\n return;\n }\n helMicroShared = makeHelMicroShared();\n ensureCommonKeys(helMicroShared.cacheRoot.common);\n getHelSingletonHost().__HEL_MICRO_SHARED__ = helMicroShared;\n}\n\n/** @return {ReturnType<typeof makeHelMicroShared>} */\nfunction getHelMicroShared() {\n var microShared = getHelSingletonHost().__HEL_MICRO_SHARED__;\n return microShared;\n}\n\n/**\n * 获取默认的平台值\n * @returns\n */\nfunction getPlatform$1() {\n // 已不再支持重置平台默认值,上层可用 helMicro.createInstace 接口来定义出自动拉取对应平台的相关接口\n return DEFAULT_PLAT;\n}\n\n/**\n * @param {string} platform\n */\nfunction getSharedCache$1(platform) {\n var p = platform || getPlatform$1();\n var cacheRoot = getCacheRoot();\n var cacheNode = cacheRoot.caches[p];\n if (!cacheNode) {\n var platType = _typeof(platform);\n if (platType !== 'string') {\n console.error('invalid plaform:', platform);\n throw new Error(\"fatal error: platform only can be a string, now it is \".concat(platType));\n }\n var platCache = makeCacheNode(platform);\n cacheRoot.caches[p] = platCache;\n cacheNode = platCache;\n }\n return cacheNode;\n}\nfunction getCacheRoot() {\n return getHelMicroShared().cacheRoot;\n}\n\nvar innerUtil = {\n getCustomData: function getCustomData(appName, customKey, options) {\n var versionId = options.versionId,\n platform = options.platform;\n var _getSharedCache = getSharedCache$1(platform),\n appName2verCustomData = _getSharedCache.appName2verCustomData;\n var customMap = safeGetMap(appName2verCustomData, appName);\n var dataMap = safeGetMap(customMap, customKey);\n return dataMap[versionId || DEFAULT_ONLINE_VER];\n },\n getAppMeta: function getAppMeta(appName, platform) {\n var _getSharedCache2 = getSharedCache$1(platform),\n appName2app = _getSharedCache2.appName2app;\n return appName2app[appName];\n },\n setVerLoadStatus: function setVerLoadStatus(appName, loadStatus, statusMapKey, options) {\n var _ref = options || {},\n versionId = _ref.versionId,\n platform = _ref.platform;\n var appVerLoadStatus = getSharedCache$1(platform)[statusMapKey];\n var versionIdVar = versionId || DEFAULT_ONLINE_VER;\n setSubMapValue(appVerLoadStatus, appName, versionIdVar, loadStatus);\n },\n getVerLoadStatus: function getVerLoadStatus(appName, statusMapKey, options) {\n var _appVerLoadStatus$app;\n var _ref2 = options || {},\n versionId = _ref2.versionId,\n platform = _ref2.platform;\n var appVerLoadStatus = getSharedCache$1(platform)[statusMapKey];\n var versionIdVar = versionId || DEFAULT_ONLINE_VER;\n return ((_appVerLoadStatus$app = appVerLoadStatus[appName]) === null || _appVerLoadStatus$app === void 0 ? void 0 : _appVerLoadStatus$app[versionIdVar]) || helLoadStatus$1.NOT_LOAD;\n },\n // 预防一些未升级的老模块未写 DEFAULT_ONLINE_VER 的值到 libOrAppMap 里\n ensureOnlineModule: function ensureOnlineModule(libOrAppMap, appName, platform) {\n if (libOrAppMap[DEFAULT_ONLINE_VER]) {\n return;\n }\n var appMeta = innerUtil.getAppMeta(appName, platform);\n var onlineModule = libOrAppMap[appMeta === null || appMeta === void 0 ? void 0 : appMeta.online_version];\n if (onlineModule) {\n libOrAppMap[DEFAULT_ONLINE_VER] = onlineModule;\n }\n }\n};\n\nfunction getVerApp$1(appName, inputOptions) {\n var _options$strictMatchV;\n var options = inputOptions || {};\n var versionId = options.versionId,\n platform = options.platform;\n var _getSharedCache = getSharedCache$1(platform),\n appName2verEmitApp = _getSharedCache.appName2verEmitApp,\n appName2Comp = _getSharedCache.appName2Comp,\n strictMatchVer = _getSharedCache.strictMatchVer,\n appName2EmitApp = _getSharedCache.appName2EmitApp;\n var targetStrictMatchVer = (_options$strictMatchV = options.strictMatchVer) !== null && _options$strictMatchV !== void 0 ? _options$strictMatchV : strictMatchVer;\n var verEmitAppMap = safeGetMap(appName2verEmitApp, appName);\n innerUtil.ensureOnlineModule(verEmitAppMap, appName, platform);\n\n // 不传递具体版本号就指向默认的第一个载入的版本\n var versionIdVar = versionId || DEFAULT_ONLINE_VER;\n var verApp = verEmitAppMap[versionIdVar];\n var Comp = appName2Comp[appName];\n // { Comp } 是为了兼容老包写入的数据,老包未写入 appName2EmitApp\n var legacyWriteVerApp = Comp ? {\n Comp: Comp\n } : null;\n // 指定了版本严格匹配的话,兜底模块置为空\n var fallbackApp = targetStrictMatchVer ? null : appName2EmitApp[appName] || legacyWriteVerApp;\n var result = verApp || fallbackApp || null;\n log$1('[[ core:getVerApp ]] appName,options,result:', appName, options, result);\n return result;\n}\nfunction setEmitApp$1(appName, /** @type {import('hel-types').IEmitAppInfo} */emitApp) {\n log$1('[[ core:setEmitApp ]] appName,emitApp:', appName, emitApp);\n var versionId = emitApp.versionId,\n platform = emitApp.platform;\n var sharedCache = getSharedCache$1(platform);\n var appName2verEmitApp = sharedCache.appName2verEmitApp,\n appName2Comp = sharedCache.appName2Comp,\n appName2EmitApp = sharedCache.appName2EmitApp;\n\n // 记录第一个载入的版本号对应 emitApp\n var verEmitApp = safeGetMap(appName2verEmitApp, appName);\n if (!verEmitApp[DEFAULT_ONLINE_VER]) {\n appName2Comp[appName] = emitApp.Comp;\n appName2EmitApp[appName] = emitApp;\n setSubMapValue(appName2verEmitApp, appName, DEFAULT_ONLINE_VER, emitApp);\n }\n if (versionId) {\n setSubMapValue(appName2verEmitApp, appName, versionId, emitApp);\n }\n}\n\nvar KEY_CSS_LINK_TAG_ADDED = helConsts$1.KEY_CSS_LINK_TAG_ADDED,\n KEY_STYLE_TAG_ADDED = helConsts$1.KEY_STYLE_TAG_ADDED,\n KEY_IGNORE_CSS_PREFIX_LIST = helConsts$1.KEY_IGNORE_CSS_PREFIX_LIST,\n KEY_IGNORE_STYLE_TAG_KEY = helConsts$1.KEY_IGNORE_STYLE_TAG_KEY,\n KEY_IGNORE_CSS_PREFIX_2_KEYS = helConsts$1.KEY_IGNORE_CSS_PREFIX_2_KEYS;\nfunction getDataMap$1(customKey) {\n var _getCacheRoot = getCacheRoot(),\n common = _getCacheRoot.common;\n var dataMap = safeGetMap(common, customKey);\n return dataMap;\n}\n\n/** perf: 内置的 key 已在 microShared 初始化时做了检查,此处可直接获取 */\nfunction getDataNode(customKey) {\n var _getCacheRoot2 = getCacheRoot(),\n common = _getCacheRoot2.common;\n return common[customKey]; // map or list\n}\nfunction getCommonData$1(customKey, dataKey) {\n var dataMap = getDataMap$1(customKey);\n var result = dataMap[dataKey];\n return result !== undefined ? result : null;\n}\nfunction setCommonData$1(customKey, dataKey, data) {\n var dataMap = getDataMap$1(customKey);\n dataMap[dataKey] = data;\n}\n\n/** 操作 commonData 的内置方法集合 */\nvar commonDataUtil$1 = {\n setIgnoreCssPrefix: function setIgnoreCssPrefix(cssPrefix) {\n var list = getDataNode(KEY_IGNORE_CSS_PREFIX_LIST);\n noDupPush$1(list, cssPrefix);\n },\n setIgnoreStyleTagKey: function setIgnoreStyleTagKey(key) {\n var map = commonDataUtil$1.getIgnoreStyleTagMap();\n map[key] = 1;\n },\n getIgnoreStyleTagMap: function getIgnoreStyleTagMap() {\n var map = getDataNode(KEY_IGNORE_STYLE_TAG_KEY);\n return map;\n },\n setIgnoreCssPrefixKey: function setIgnoreCssPrefixKey(ignoreCssPrefix, key) {\n var list = getCommonData$1(KEY_IGNORE_CSS_PREFIX_2_KEYS, ignoreCssPrefix);\n if (!list) {\n list = [];\n setCommonData$1(KEY_IGNORE_CSS_PREFIX_2_KEYS, ignoreCssPrefix, list);\n }\n noDupPush$1(list, key);\n },\n getIgnoreCssPrefixKeys: function getIgnoreCssPrefixKeys(ignoreCssPrefix) {\n var map = getDataNode(KEY_IGNORE_CSS_PREFIX_2_KEYS);\n return map[ignoreCssPrefix] || [];\n },\n getMatchedIgnoreCssPrefix: function getMatchedIgnoreCssPrefix(/** @type string */url) {\n var ignoreCssPrefixList = getDataNode(KEY_IGNORE_CSS_PREFIX_LIST);\n var matchedPrefix = '';\n for (var i = 0; i < ignoreCssPrefixList.length; i++) {\n var cssPrefix = ignoreCssPrefixList[i];\n if (url.startsWith(cssPrefix)) {\n matchedPrefix = cssPrefix;\n break;\n }\n }\n return matchedPrefix;\n },\n getIgnoreCssPrefixCssUrlList: function getIgnoreCssPrefixCssUrlList(ignoreCssPrefix) {\n var cssUrlList = getCommonData$1(KEY_CSS_LINK_TAG_ADDED, ignoreCssPrefix);\n if (!cssUrlList) {\n cssUrlList = [];\n setCommonData$1(KEY_CSS_LINK_TAG_ADDED, ignoreCssPrefix, cssUrlList);\n }\n return cssUrlList;\n },\n setIgnoreCssPrefixCssUrl: function setIgnoreCssPrefixCssUrl(ignoreCssPrefix, url) {\n var cssUrlList = commonDataUtil$1.getIgnoreCssPrefixCssUrlList(ignoreCssPrefix);\n cssUrlList.push(url);\n },\n getStyleTagText: function getStyleTagText(key) {\n var text = getCommonData$1(KEY_STYLE_TAG_ADDED, key) || '';\n return text;\n },\n clearStyleTagText: function clearStyleTagText(key) {\n setCommonData$1(KEY_STYLE_TAG_ADDED, key, '');\n },\n appendStyleTagText: function appendStyleTagText(key, text) {\n var oldText = commonDataUtil$1.getStyleTagText(key);\n // 继续拼接新的样式字符串\n setCommonData$1(KEY_STYLE_TAG_ADDED, key, \"\".concat(oldText, \" \").concat(text));\n }\n};\n\n/** @typedef {import('../../index').IPlatformConfigFull} IPlatformConfigFull */\n\n/**\n * 提取无其他杂项的配置对象\n * @param {SharedCache} mayCache\n * @returns {IPlatformConfigFull}\n */\nfunction getPureConfig(mayCache, needOrigin) {\n var apiMode = mayCache.apiMode,\n apiPrefix = mayCache.apiPrefix,\n apiSuffix = mayCache.apiSuffix,\n apiPathOfApp = mayCache.apiPathOfApp,\n apiPathOfAppVersion = mayCache.apiPathOfAppVersion,\n getSubAppAndItsVersionFn = mayCache.getSubAppAndItsVersionFn,\n onFetchMetaFailed = mayCache.onFetchMetaFailed,\n strictMatchVer = mayCache.strictMatchVer,\n getUserName = mayCache.getUserName,\n userLsKey = mayCache.userLsKey,\n shouldUseGray = mayCache.shouldUseGray,\n getApiPrefix = mayCache.getApiPrefix,\n trustAppNames = mayCache.trustAppNames,\n platform = mayCache.platform,\n origin = mayCache.origin,\n hook = mayCache.hook,\n customMetaUrl = mayCache.customMetaUrl,\n customMetaJsonpUrl = mayCache.customMetaJsonpUrl,\n getMeta = mayCache.getMeta;\n var toReturn = {\n apiMode: apiMode,\n apiPrefix: apiPrefix,\n apiSuffix: apiSuffix,\n apiPathOfApp: apiPathOfApp,\n apiPathOfAppVersion: apiPathOfAppVersion,\n getSubAppAndItsVersionFn: getSubAppAndItsVersionFn,\n onFetchMetaFailed: onFetchMetaFailed,\n strictMatchVer: strictMatchVer,\n getUserName: getUserName,\n userLsKey: userLsKey,\n shouldUseGray: shouldUseGray,\n getApiPrefix: getApiPrefix,\n trustAppNames: trustAppNames,\n hook: hook,\n platform: platform,\n customMetaUrl: customMetaUrl,\n customMetaJsonpUrl: customMetaJsonpUrl,\n getMeta: getMeta\n };\n if (needOrigin) {\n toReturn.origin = origin;\n }\n return toReturn;\n}\nfunction getPlatformConfig$1(iPlatform) {\n var cache = getSharedCache$1(iPlatform);\n return getPureConfig(cache, true);\n}\nfunction initGlobalConfig$1(/** @type {IGlobalConfig} */config) {\n var shared = getHelMicroShared();\n var nativeHeadAppend = shared.nativeHeadAppend,\n nativeBodyAppend = shared.nativeBodyAppend;\n var headAppend = config.headAppend || null;\n var bodyAppend = config.bodyAppend || null;\n var errTip = function errTip(label) {\n return \"pass same \".concat(label, \" handle, hel will ignore it for avlid 'Maximum call stack size exceeded'\");\n };\n if (headAppend && headAppend === nativeHeadAppend) {\n console.error(errTip('headAppend'));\n } else {\n shared.patchedHeadAppend = headAppend;\n }\n if (bodyAppend && bodyAppend === nativeBodyAppend) {\n console.error(errTip('bodyAppend'));\n } else {\n shared.patchedBodyAppend = bodyAppend;\n }\n}\n\n/**\n *\n * @param {IPlatformConfig} config\n * @param {string} [iPlatform ]\n * @returns\n */\nfunction initPlatformConfig$1(/** @type {IPlatformConfig} */config, iPlatform) {\n var cache = getSharedCache$1(iPlatform);\n var pureConfig = getPureConfig(config);\n if (cache.isConfigOverwrite) {\n // 对应平台的 initPlatformConfig 只接受一次调用\n return;\n }\n cache.isConfigOverwrite = true;\n safeAssign(cache, pureConfig);\n}\nfunction originInit$1(platform, options) {\n var cache = getSharedCache$1(platform);\n var commonTip = '[[ core:originInit ]] invalid call, it can only been called';\n if (cache.isConfigOverwrite) {\n log$1(\"\".concat(commonTip, \" before init\"));\n return;\n }\n if (cache.isOriginInitCalled) {\n log$1(\"\".concat(commonTip, \" one time\"));\n // 对应平台的 initPlatformConfig 只接受一次调用\n return;\n }\n var pureConfig = getPureConfig(options);\n cache.isOriginInitCalled = true;\n safeAssign(cache.origin, pureConfig);\n}\n\n/**\n * 优先获取用户为某个应用单独设定的平台值,目前设定的时机有 preFetch、preFetchLib 时指定的平台值\n * 这里是为了辅助 exposeLib 接口未指定平台值时能够动态推导出目标模块的平台值\n * @returns\n */\nfunction getAppPlatform$1(appGroupName) {\n return getCacheRoot().appGroupName2platform[appGroupName] || getPlatform$1();\n}\n\n/**\n * hel-micro innerPreFetch 会调用此接口提前记录一下应用组名对应的版本号\n */\nfunction setAppPlatform$1(appGroupName, platform, overwrite) {\n var map = getCacheRoot().appGroupName2platform;\n if (overwrite || !map[appGroupName]) {\n map[appGroupName] = platform;\n }\n return getAppPlatform$1(appGroupName);\n}\nfunction getAppPlatformByAppName$1(appName) {\n return getCacheRoot().appName2platform[appName] || getPlatform$1();\n}\n\n/**\n * hel-micro innerPreFetch 会调用此接口提前记录一下应用名对应的版本号\n */\nfunction setAppPlatformByAppName$1(appName, platform, overwrite) {\n var map = getCacheRoot().appName2platform;\n if (overwrite || !map[appName]) {\n map[appName] = platform;\n }\n return getAppPlatformByAppName$1(appName);\n}\n\nfunction getDataMap(appName, options) {\n // 没有传平台值,就猜测 appName 对应的平台值\n var customKey = options.customKey,\n _options$platform = options.platform,\n platform = _options$platform === void 0 ? getAppPlatformByAppName$1(appName) : _options$platform;\n var _getSharedCache = getSharedCache$1(platform),\n appName2verCustomData = _getSharedCache.appName2verCustomData;\n var customMap = safeGetMap(appName2verCustomData, appName);\n var dataMap = safeGetMap(customMap, customKey);\n return dataMap;\n}\nfunction getCustomData$1(appName, options) {\n var dataMap = getDataMap(appName, options);\n var result = dataMap[options.versionId || DEFAULT_ONLINE_VER];\n return result !== undefined ? result : null;\n}\nfunction setCustomData$1(appName, options) {\n var customValue = options.customValue,\n versionId = options.versionId;\n var dataMap = getDataMap(appName, options);\n dataMap[versionId || DEFAULT_ONLINE_VER] = customValue;\n if (!dataMap[DEFAULT_ONLINE_VER]) {\n dataMap[DEFAULT_ONLINE_VER] = customValue;\n }\n}\n\nvar STYLE_TAG_ADDED = helEvents$1.STYLE_TAG_ADDED,\n CSS_LINK_TAG_ADDED = helEvents$1.CSS_LINK_TAG_ADDED;\nfunction getHelEventBus$1() {\n return getHelMicroShared().eventBus;\n}\nfunction getUserEventBus$1() {\n return getHelMicroShared().userEventBus;\n}\nvar evName$1 = {\n styleTagAdded: function styleTagAdded(groupName) {\n return \"\".concat(STYLE_TAG_ADDED, \"/\").concat(groupName);\n },\n cssLinkTagAdded: function cssLinkTagAdded(host) {\n return \"\".concat(CSS_LINK_TAG_ADDED, \"(\").concat(host, \")\");\n }\n};\n\nfunction getVerLib$1(appName, inputOptions) {\n var _options$strictMatchV;\n var options = inputOptions || {};\n var versionId = options.versionId,\n platform = options.platform;\n var sharedCache = getSharedCache$1(platform);\n var appName2verEmitLib = sharedCache.appName2verEmitLib,\n appName2Lib = sharedCache.appName2Lib,\n strictMatchVer = sharedCache.strictMatchVer,\n appName2isLibAssigned = sharedCache.appName2isLibAssigned;\n var targetStrictMatchVer = (_options$strictMatchV = options.strictMatchVer) !== null && _options$strictMatchV !== void 0 ? _options$strictMatchV : strictMatchVer;\n var verEmitLibMap = safeGetMap(appName2verEmitLib, appName);\n innerUtil.ensureOnlineModule(verEmitLibMap, appName);\n\n // 不传递具体版本号就执行默认在线版本\n var versionIdVar = versionId || DEFAULT_ONLINE_VER;\n var verLib = verEmitLibMap[versionIdVar];\n\n // 未分配的模块,直接返回 null 即可,因为 appName2Lib 里会被 exposeLib 提前注入一个 {} 对象占位\n var staticLib = appName2isLibAssigned[appName] ? appName2Lib[appName] : null;\n // 指定了版本严格匹配的话,兜底模块置为空\n var fallbackLib = targetStrictMatchVer ? null : staticLib;\n var result = verLib || fallbackLib || null;\n log$1('[[ core:getVerLib ]] appName,options,result:', appName, options, result);\n return result;\n}\nfunction setEmitLib$1(appName, /** @type {import('hel-types').IEmitAppInfo} */emitApp, options) {\n var _ref = options || {},\n appGroupName = _ref.appGroupName;\n var versionId = emitApp.versionId,\n appProperties = emitApp.appProperties;\n var platform = emitApp.platform || options.platform;\n var sharedCache = getSharedCache$1(platform);\n var appName2verEmitLib = sharedCache.appName2verEmitLib,\n appName2Lib = sharedCache.appName2Lib,\n appName2isLibAssigned = sharedCache.appName2isLibAssigned;\n var appMeta = innerUtil.getAppMeta(appName, platform);\n var assignLibObj = function assignLibObj(appName) {\n // 使用文件头静态导入模块语法时,默认是从 appName2Lib 拿数据,\n // 这意味着 文件头静态导入 总是执行第一个加载的版本模块,\n // ( 注:文件头静态导入对接的是 hel-lib-proxy 的 exposeLib,该接口使用的是 appName2Lib )\n // 所以 多版本同时导入 和 文件头静态导入 本身是冲突的,用户不应该两种用法一起使用,\n // 否则 文件头静态导入 的模块是不稳定的,除非用户知道后果并刻意这样做\n // marked at 2022-05-06\n var libObj = appName2Lib[appName];\n // 未静态导入时,libObj 是 undefined\n if (!libObj) {\n appName2Lib[appName] = appProperties;\n } else if (_typeof(libObj) === 'object' && Object.keys(libObj).length === 0) {\n // 静态导入时,emptyChunk 那里调用 exposeLib 会提前生成一个 {} 对象\n // 这里只需负责 merge 模块提供方通过 libReady 提供的模块对象\n Object.assign(libObj, appProperties);\n }\n appName2isLibAssigned[appName] = true;\n };\n assignLibObj(appName);\n // 确保 preFetchLib 传入测试应用名时,exposeLib 获取的代理对象能够指到测试库\n // 这样静态导入才能正常工作\n if (appGroupName) {\n assignLibObj(appGroupName);\n } else {\n appMeta && assignLibObj(appMeta.app_group_name);\n }\n\n // 当前版本可作为默认线上版本来记录\n log$1('[[ core:setEmitLib ]] appMeta:', appMeta);\n var verEmitLibMap = safeGetMap(appName2verEmitLib, appName);\n // 记录第一个载入的版本号对应 lib\n if (!verEmitLibMap[DEFAULT_ONLINE_VER]) {\n setSubMapValue(appName2verEmitLib, appName, DEFAULT_ONLINE_VER, appProperties);\n }\n if (versionId) {\n setSubMapValue(appName2verEmitLib, appName, versionId, appProperties);\n }\n}\n\nfunction getAppMeta$1(appName, platform) {\n var _getSharedCache = getSharedCache$1(platform),\n appName2app = _getSharedCache.appName2app;\n return appName2app[appName];\n}\nfunction setAppMeta$1(/** @type {import('hel-types').ISubApp}*/appMeta, platform) {\n var _getSharedCache2 = getSharedCache$1(platform),\n appName2app = _getSharedCache2.appName2app;\n appName2app[appMeta.name] = appMeta;\n}\n\nfunction setVerLoadStatus$1(appName, loadStatus, options) {\n innerUtil.setVerLoadStatus(appName, loadStatus, 'appName2verLoadStatus', options);\n}\nfunction getVerLoadStatus$1(appName, options) {\n return innerUtil.getVerLoadStatus(appName, 'appName2verLoadStatus', options);\n}\nfunction setVerStyleStrStatus$1(appName, loadStatus, options) {\n innerUtil.setVerLoadStatus(appName, loadStatus, 'appName2verStyleFetched', options);\n}\nfunction getVerStyleStrStatus$1(appName, options) {\n return innerUtil.getVerLoadStatus(appName, 'appName2verStyleFetched', options);\n}\n\nfunction getAppStyleStr$1(appName, options) {\n var _appName2verStyleStr$;\n var _ref = options || {},\n platform = _ref.platform,\n versionId = _ref.versionId;\n var _getSharedCache = getSharedCache$1(platform),\n appName2verStyleStr = _getSharedCache.appName2verStyleStr,\n appName2styleStr = _getSharedCache.appName2styleStr;\n\n // TODO: 暂未考虑接入 strictMatchVer\n var fallbackStyleStr = appName2styleStr[appName] || '';\n // 兼容老包未写 versionId 的情况\n if (!versionId) {\n return fallbackStyleStr;\n }\n return ((_appName2verStyleStr$ = appName2verStyleStr[appName]) === null || _appName2verStyleStr$ === void 0 ? void 0 : _appName2verStyleStr$[versionId]) || fallbackStyleStr || '';\n}\nfunction setAppStyleStr$1(appName, str, options) {\n var _ref2 = options || {},\n platform = _ref2.platform,\n versionId = _ref2.versionId;\n var _getSharedCache2 = getSharedCache$1(platform),\n appName2verStyleStr = _getSharedCache2.appName2verStyleStr,\n appName2verStyleFetched = _getSharedCache2.appName2verStyleFetched,\n appName2styleStr = _getSharedCache2.appName2styleStr;\n // 兼容老包未写 versionId 的情况\n if (!versionId) {\n appName2styleStr[appName] = str;\n return;\n }\n setSubMapValue(appName2verStyleStr, appName, versionId, str);\n setSubMapValue(appName2verStyleFetched, appName, versionId, helLoadStatus$1.LOADED);\n}\nfunction setVerExtraCssList$1(appName, cssList, inputOptions) {\n var options = inputOptions || {};\n var versionId = options.versionId,\n platform = options.platform;\n var sharedCache = getSharedCache$1(platform);\n var appName2verExtraCssList = sharedCache.appName2verExtraCssList;\n log$1('[[ core:setVerExtraCssList ]] cssList:', cssList);\n var verExtraCssListMap = safeGetMap(appName2verExtraCssList, appName);\n // 记录第一个载入的版本号对应 css 资源\n if (!verExtraCssListMap[DEFAULT_ONLINE_VER]) {\n setSubMapValue(appName2verExtraCssList, appName, DEFAULT_ONLINE_VER, cssList);\n }\n if (versionId) {\n setSubMapValue(appName2verExtraCssList, appName, versionId, cssList);\n }\n}\nfunction getVerExtraCssList$1(appName, inputOptions) {\n var options = inputOptions || {};\n var versionId = options.versionId,\n platform = options.platform;\n var sharedCache = getSharedCache$1(platform);\n var appName2verExtraCssList = sharedCache.appName2verExtraCssList;\n var verExtraCssListMap = safeGetMap(appName2verExtraCssList, appName);\n var cssList = verExtraCssListMap[versionId] || verExtraCssListMap[DEFAULT_ONLINE_VER] || [];\n log$1('[[ core:getVerExtraCssList ]] options,cssList:', options, cssList);\n return cssList;\n}\n\nfunction getVersion$1(appName, options) {\n var _appName2verAppVersio;\n var _ref = options || {},\n platform = _ref.platform,\n versionId = _ref.versionId;\n var _getSharedCache = getSharedCache$1(platform),\n appName2verAppVersion = _getSharedCache.appName2verAppVersion,\n appName2appVersion = _getSharedCache.appName2appVersion;\n\n // TODO: 暂未考虑接入 strictMatchVer\n var firstVerData = appName2appVersion[appName] || null;\n if (!versionId) {\n return firstVerData;\n }\n // firstVerData 在这里作为兜底返回,正常情况下 appName2verAppVersion 肯定是能取到数据的\n return ((_appName2verAppVersio = appName2verAppVersion[appName]) === null || _appName2verAppVersio === void 0 ? void 0 : _appName2verAppVersio[versionId]) || firstVerData;\n}\nfunction setVersion$1(appName, /** @type {import('hel-types').ISubAppVersion}*/versionData, options) {\n var _ref2 = options || {},\n platform = _ref2.platform;\n var _getSharedCache2 = getSharedCache$1(platform),\n appName2verAppVersion = _getSharedCache2.appName2verAppVersion,\n appGroupName2firstVer = _getSharedCache2.appGroupName2firstVer,\n appName2appVersion = _getSharedCache2.appName2appVersion;\n var versionId = versionData.version_tag || versionData.sub_app_version;\n if (!versionId) {\n return;\n }\n var appMeta = innerUtil.getAppMeta(appName, platform);\n var verAppVersion = safeGetMap(appName2verAppVersion, appName);\n // 记录第一个载入的版本号对应 versionData\n if (!verAppVersion[DEFAULT_ONLINE_VER]) {\n setSubMapValue(appName2verAppVersion, appName, DEFAULT_ONLINE_VER, versionData);\n appName2appVersion[appName] = versionData;\n }\n setSubMapValue(appName2verAppVersion, appName, versionId, versionData);\n\n // 注意,此处记录的是 versionIndex 值,用于辅助 tryGetVersion 逻辑匹配 url 逻辑\n appGroupName2firstVer[appMeta.app_group_name] = versionData.sub_app_version;\n}\n\n// 正常情况只有一个 @ 形如: xxxx@1.1.1 ---> 1.1.1\n// 如果有多个 @ 这样写能保证准确还原,形如:xxx@1.1.1@my@s ---> 1.1.1@my@s,\n// 不过写入版本的地方已卡死格式,所以这里理论上来说不能存在两个以上的@符号\nfunction getVerFromAtInMiddle(nameAndVer, callerSpecifiedVer) {\n var list = nameAndVer.split('@');\n var verList = list.slice(1);\n var ver = verList.join('@');\n return ver || callerSpecifiedVer || nameAndVer;\n}\nfunction isJs(str) {\n return str === 'js' || str === 'mjs';\n}\n\n/**\n * 根据执行脚本链接猜测当前模块的版本号,脚本链接例如:\n * https://cdn.jsdelivr.net/npm/hel-lodash@2.3.4/hel_dist/hel_userChunk_1.js\n * https://unpkg.com/hel-lodash@2.3.4/hel_dist/hel_userChunk_1.js\n * https://tnfe.gtimg.com/hel/remote-react-comps-tpl_20241228190308/xxx.js\n * https://tnfe.gtimg.com/hel/@my/remote-react-comps-tpl@1.1.1/xxx.js\n * 对于新版协议meta返回的是版本号标签(即后台的version_tag)\n * 对于旧版协议meta返回的是版本号索引(即后台的sub_app_version)\n */\nfunction tryGetVersion$1(appGroupName, platform) {\n // 形如: at c (https://{cdn_host_name}/{platform}/{appname_prefixed_version}/static/js/4.b60c0895.chunk.js:2:44037\n // 如果用户调整过,可能是:at c (https://{user_cdn}/{user_dir1}/{user_dir2 ...}/{platform}/{appname_prefixed_version}/...)\n var loc = getJsRunLocation();\n log$1(\"[[ core:tryGetVersion ]] may include ver source > \".concat(loc));\n var _getSharedCache = getSharedCache$1(platform),\n appGroupName2firstVer = _getSharedCache.appGroupName2firstVer;\n var callerSpecifiedVer = appGroupName2firstVer[appGroupName] || '';\n if (loc.includes('https://') || loc.includes('http://')) {\n var _loc$split = loc.split('//'),\n _loc$split2 = _slicedToArray(_loc$split, 2),\n restStr = _loc$split2[1];\n // strList 形如:\n // ['unpkg.com', 'hel-lodash@1.1.0', ...]\n // ['unpkg.com', '@someScope', 'xxx@1.1.0', ...]\n // ['cdn.jsdelivr.net', 'npm', 'hel-lodash@2.3.4', 'hel_dist', ...]\n // ['tnfe.gtimg.com', 'hel', 'remote-react-comps-tpl_20241228190308', ...]\n var strList = restStr.split('/');\n\n // 优先判断可能包含的版本特征\n if (callerSpecifiedVer) {\n // tnfe.gtimg.com/hel/@tencent/mono-comps@20250816051000/static/xxx 匹配 /@tencent/mono-comps@20250816051000/\n // tnfe.gtimg.com/hel/mono-comps@20250816051000/static/xxx 匹配 /mono-comps@20250816051000/\n var hasSpecifiedVer = restStr.includes(\"/\".concat(callerSpecifiedVer, \"/\"));\n if (hasSpecifiedVer) {\n // 避免 tnfe.gtimg.com/hel/@tencent/mono-comps@20250816051000/static/xxx 匹配 /mono-comps@20250816051000/ 成功\n // 需排除错误场景\n var isSpecifiedVerHasScope = callerSpecifiedVer.startsWith('@');\n if (!isSpecifiedVerHasScope) {\n // 此时 callerSpecifiedVer 为不带 scope 前缀的 versionIndex 值\n var idx = strList.indexOf(callerSpecifiedVer);\n var prevSeg = strList[idx - 1];\n var isPrevSegScope = prevSeg.startsWith('@');\n if (!isPrevSegScope) {\n return getVerFromAtInMiddle(callerSpecifiedVer);\n }\n\n // 运行到这里,prevSeg 表示 scope,但 callerSpecifiedVer 是无 scope 前缀的,此时不执行任何逻辑则成功排除了上述错误场景\n } else {\n var verSeg = callerSpecifiedVer.split('/')[1] || '';\n return getVerFromAtInMiddle(verSeg);\n }\n }\n\n // strList: ['xxxx.com:8888', 'static', 'js'],本地联调时的特征\n var str1 = strList[1];\n var str2 = strList[2];\n if (str1 === 'static' && isJs(str2) || isJs(str1)) {\n return getVerFromAtInMiddle(callerSpecifiedVer);\n }\n }\n var atSymbolIdx = restStr.indexOf('@');\n // 使用了符合 npm cdn 方式的链接生成规范\n if (atSymbolIdx >= 0) {\n var atSymbolSegs = strList.filter(function (v) {\n return v.includes('@');\n });\n var scopeSegIdx = atSymbolSegs.findIndex(function (v) {\n return v.startsWith('@');\n });\n if (scopeSegIdx >= 0) {\n var _verSeg = atSymbolSegs[scopeSegIdx + 1] || '';\n return getVerFromAtInMiddle(_verSeg, callerSpecifiedVer);\n }\n var _verSeg2 = atSymbolSegs[0] || '';\n return getVerFromAtInMiddle(_verSeg2, callerSpecifiedVer);\n }\n\n // 使用的是旧版本 helpack 链接规范(注:新版 helpack 链接已支持 npm cdn 规范)\n // 旧规范格式链接形如:\n // {cdn_host_name}/{platform}/{appname_prefixed_version}\n // {user_cdn}/{user_dir1}/{user_dir2 ...}/{platform}/{appname_prefixed_version}/\n var _restStr$split = restStr.split(\"/\".concat(platform, \"/\")),\n _restStr$split2 = _slicedToArray(_restStr$split, 2),\n _restStr$split2$ = _restStr$split2[1],\n verStartStr = _restStr$split2$ === void 0 ? '' : _restStr$split2$;\n var _verStartStr$split = verStartStr.split('/'),\n _verStartStr$split2 = _slicedToArray(_verStartStr$split, 1),\n verInUrl = _verStartStr$split2[0];\n return verInUrl || callerSpecifiedVer;\n }\n\n // 在微容器里运行时,js全是在VM里初始化的,此时拿不到具体的加载链接了\n return callerSpecifiedVer;\n}\nfunction tryGetAppName$1(/** @type string */version, appGroupName) {\n if (version === DEFAULT_ONLINE_VER) {\n return appGroupName || '';\n }\n\n // 来自 helpack 管理台的版本号规则\n if (version.includes('_')) {\n // lib-test_20220621165953 ---> lib-test\n var appName = version.substring(0, version.length - 15);\n return appName;\n }\n\n // 来自 unpkg\n return appGroupName || '';\n}\n\n// !!! 注:如果hel-micro hel-micro-core相关包体设置到externals里时,\n// 此机制不再有效,建议尽快使用 hel-iso 包替代\n\n// 该变量每个子应用自己维护一份,只能在 __MASTER_APP_LOADED__ 无值时才能被写为true\n// __MASTER_APP_LOADED__ 有值表示主应用已挂载\n// 需注意此设计模式下,hel-micro-core 不应该被抽到 externals,\n// 否则各个应用共同维护一个了 isCoreInit 值,isSubApp 就无效了,需使用 hel-iso 替代\nvar isMeMarkTrue = false;\nvar isTryMarkCalled = false;\n\n/**\n * @returns\n */\nfunction tryMarkFlag(clearSignals) {\n if (clearSignals) {\n isMeMarkTrue = false;\n isTryMarkCalled = false;\n }\n if (isTryMarkCalled) {\n return;\n }\n isTryMarkCalled = true;\n var globalThis = getGlobalThis$1();\n if (globalThis.__MASTER_APP_LOADED__ === undefined) {\n globalThis.__MASTER_APP_LOADED__ = true;\n isMeMarkTrue = true;\n }\n}\n\n/**\n * 是否是子应用\n * @deprecated\n * @returns\n */\nfunction isSubApp$1() {\n // calling isSubApp is unsafe, cause it will return wrong result when they were lift up to webpack\n // externals, please install hel-iso and call its isSubApp instead\n var tip = 'WARNING: calling isSubApp is unsafe, use hel-iso.isSubApp instead,\\n';\n tip += 'more details see: https://tnfe.github.io/hel/docs/tutorial/attention-is-subapp';\n console.log(\"%c\".concat(tip), 'color:red;');\n // __MASTER_APP_LOADED__ 是当前应用写入的,代表当前应用是主应用\n if (isMeMarkTrue) {\n return false;\n }\n return true;\n}\n\nfunction markElFeature(/** @type {HTMLElement} */el, options) {\n var platform = options.platform,\n groupName = options.groupName,\n name = options.name,\n ver = options.ver,\n elName = options.elName;\n setDataset(el, 'el', elName);\n setDataset(el, 'plat', platform);\n setDataset(el, 'gname', groupName);\n setDataset(el, 'name', name);\n setDataset(el, 'ver', ver);\n}\n\nvar KEY_ASSET_CTX = helConsts$1.KEY_ASSET_CTX;\nfunction doAppend(nativeAppend, /** @type {HTMLLinkElement | HTMLScriptElement}*/el) {\n if (!el || !['LINK', 'SCRIPT'].includes(el.tagName)) {\n return nativeAppend(el);\n }\n var href = el.href,\n tagName = el.tagName,\n src = el.src;\n /** @type string */\n var url = href || src || '';\n var isLink = tagName === 'LINK';\n var assetCtx = getCommonData$1(KEY_ASSET_CTX, url) || {};\n var platform = assetCtx.platform,\n groupName = assetCtx.groupName,\n name = assetCtx.name,\n ver = assetCtx.ver,\n beforeAppend = assetCtx.beforeAppend;\n var mayChangedEl = el;\n if (beforeAppend) {\n var urlKey = isLink ? 'href' : 'src';\n var _url = el.getAttribute(urlKey);\n var setAssetUrl = function setAssetUrl(newUrl) {\n return el.setAttribute(urlKey, newUrl);\n };\n mayChangedEl = beforeAppend({\n el: el,\n nativeAppend: nativeAppend,\n setAssetUrl: setAssetUrl,\n url: _url,\n tagName: tagName\n }) || el;\n }\n var elName = isLink ? 'HelLink' : 'HelScript';\n platform && markElFeature(mayChangedEl, {\n platform: platform,\n groupName: groupName,\n name: name,\n ver: ver,\n elName: elName\n });\n return nativeAppend(mayChangedEl);\n}\nfunction patchAppendChild() {\n var gs = getGlobalThis$1();\n // 当前阶段 qiankun 不做任何补丁,否则会导致一切一些莫名的 bug,例如 react 组件切换 unmountAtNode 报错,\n // 如有特殊需要,载入hel包体之前,设置 __DISABLE_HEL_MONKEY_PATCH__=true 也可以禁止补丁行为,\n // 禁止意味着 beforeAppendAssetNode 钩子不在起作用\n if (gs.__POWERED_BY_QIANKUN__ || gs.__DISABLE_HEL_MONKEY_PATCH__) {\n return;\n }\n var helMicroShared = getHelMicroShared();\n var doc = gs.document;\n var nativeHeadAppend = helMicroShared.nativeHeadAppend;\n var nativeBodyAppend = helMicroShared.nativeBodyAppend;\n // already patched or a mock enviroment\n if (nativeHeadAppend || !doc) {\n return;\n }\n var head = doc.head,\n body = doc.body;\n // record may native appendChild, use bind to avoid Illegal invocation\n nativeHeadAppend = head.appendChild.bind(head);\n helMicroShared.nativeHeadAppend = nativeHeadAppend;\n if (body) {\n nativeBodyAppend = body.appendChild.bind(body);\n helMicroShared.nativeBodyAppend = nativeBodyAppend;\n } else {\n // 可能 js 脚本在 head 里被引入并执行,此时 body 对象为 undefined,\n // 需要用 MutationObserver 监听到 body 被插入然后做相关替换\n var MutationObserver = getOB();\n var observer = new MutationObserver(function (mutations) {\n var body;\n for (var i = 0; i < mutations.length; i++) {\n var addedNodes = mutations[i].addedNodes;\n body = findNode(addedNodes, 'BODY');\n if (body) break;\n }\n if (body) {\n nativeBodyAppend = body.appendChild.bind(body);\n helMicroShared.nativeBodyAppend = nativeBodyAppend;\n body.appendChild = function (el) {\n return doAppend(getAppend(nativeBodyAppend, body, 'body'), el);\n };\n observer.disconnect();\n }\n });\n var htmlNode = findNode(doc.childNodes, 'HTML');\n if (htmlNode) {\n observer.observe(htmlNode, {\n childList: true\n });\n }\n }\n\n // 兼容一些第三方库对 Element.prototype.appendChild 打了补丁的情况(如micro-app)\n var getAppend = function getAppend(nativeAppend, bindTarget, loc) {\n var patchedHeadAppend = helMicroShared.patchedHeadAppend,\n patchedBodyAppend = helMicroShared.patchedBodyAppend;\n var isHead = loc === 'head';\n if (patchedHeadAppend && isHead) {\n // 如果用户手动传递了 headAppend 句柄\n return patchedHeadAppend;\n }\n if (patchedBodyAppend && !isHead) {\n // 如果用户手动传递了 bodyAppend 句柄\n return patchedBodyAppend;\n }\n // 兼容 wujie\n if (gs.__POWERED_BY_WUJIE__) {\n return nativeAppend;\n }\n var el = gs.Element; // 某些框架会代理 Element,如 micro-app\n return el ? el.prototype.appendChild.bind(bindTarget) : nativeAppend;\n };\n\n // replace appendChild\n head.appendChild = function (el) {\n return doAppend(getAppend(nativeHeadAppend, head, 'head'), el);\n };\n if (body) {\n body.appendChild = function (el) {\n return doAppend(getAppend(nativeBodyAppend, body, 'body'), el);\n };\n }\n}\n\nvar pLogic = 'preFetch';\nfunction libReady$1(appGroupName, appProperties) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var platform = options.platform || getAppPlatform$1(appGroupName);\n var versionId = options.versionId || tryGetVersion$1(appGroupName, platform);\n var appName = options.appName || tryGetAppName$1(versionId, appGroupName);\n log$1(\"[[ core:libReady ]] appGroupName \".concat(appGroupName, \", appName \").concat(appName, \", versionId \").concat(versionId));\n var appMeta = getAppMeta$1(appName, platform);\n // @ts-ignore,来自于用户设定 cust 配置弹射的模块\n if (appMeta !== null && appMeta !== void 0 && appMeta.__fromCust) {\n // 优先读用户透传的版本数据,再读实际对应的在线版本\n versionId = options.versionId || appMeta.online_version;\n appName = appMeta.name;\n log$1(\"[[ core:libReady ]] fromCust, appGroupName \".concat(appGroupName, \", appName \").concat(appName, \", versionId \").concat(versionId));\n }\n var emitLib = {\n platform: platform,\n appName: appName,\n appGroupName: appGroupName,\n versionId: versionId,\n appProperties: appProperties,\n // prettier-ignore\n Comp: function EmptyComp() {},\n lifecycle: {}\n };\n setEmitLib$1(appName, emitLib, {\n appGroupName: appGroupName,\n platform: platform\n });\n setVerLoadStatus$1(appName, helLoadStatus$1.LOADED, {\n versionId: versionId,\n platform: platform\n });\n var eventBus = getHelEventBus$1();\n perfPeek$1(pLogic, 'libReady');\n eventBus.emit(helEvents$1.SUB_LIB_LOADED, emitLib);\n}\nfunction appReady$1(appGroupName, Comp) {\n var emitOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lifecycle = emitOptions.lifecycle;\n var platform = emitOptions.platform || getAppPlatform$1(appGroupName);\n var versionId = emitOptions.versionId || tryGetVersion$1(appGroupName, platform);\n var appName = emitOptions.appName || tryGetAppName$1(versionId, appGroupName);\n var emitApp = {\n Comp: Comp,\n appName: appName,\n appGroupName: appGroupName,\n lifecycle: lifecycle,\n platform: platform,\n versionId: versionId,\n isLib: false\n };\n setEmitApp$1(appName, emitApp);\n setVerLoadStatus$1(appName, helLoadStatus$1.LOADED, {\n versionId: versionId,\n platform: platform\n });\n var eventBus = getHelEventBus$1();\n perfPeek$1(pLogic, 'appReady');\n eventBus.emit(helEvents$1.SUB_APP_LOADED, emitApp);\n}\n\nvar HEL_CSS_MARK_START = '/* @helstart ';\nvar HEL_CSS_MARK_END = ' @helend */';\nvar START_LEN = HEL_CSS_MARK_START.length;\nfunction matchIgnoreCssPrefix(node, url) {\n var bus = getHelEventBus$1();\n var matchedPrefix = commonDataUtil$1.getMatchedIgnoreCssPrefix(url);\n // 分析 url ,符合 shadow 特征的不追加 dom,仅发射事件让上层适配层去处理\n if (matchedPrefix) {\n commonDataUtil$1.setIgnoreCssPrefixCssUrl(matchedPrefix, url);\n bus.emit(evName$1.cssLinkTagAdded(matchedPrefix), {\n nodes: [node]\n });\n }\n return matchedPrefix;\n}\nfunction resetStyleText(groupName) {\n var g = getGlobalThis$1();\n if (!g) return;\n var list = g.document.head.querySelectorAll(\"style[data-gname=\\\"\".concat(groupName, \"\\\"]\"));\n if (list.length) {\n commonDataUtil$1.clearStyleTagText(groupName);\n list.forEach(function (node) {\n disableNode(node);\n commonDataUtil$1.appendStyleTagText(groupName, node.innerText);\n });\n var bus = getHelEventBus$1();\n bus.emit(evName$1.styleTagAdded(groupName), {\n nodes: list\n });\n }\n}\nfunction handleStyleAdded(/** @type {HTMLElement} */node, ignoreStyleTagMap) {\n var tagName = node.tagName,\n innerText = node.innerText,\n href = node.href;\n if (!['STYLE', 'LINK'].includes(tagName)) return;\n\n // process style tag\n if (tagName === 'STYLE') {\n if (!innerText) {\n return;\n }\n var markStart = innerText.indexOf(HEL_CSS_MARK_START);\n // starts with '/* @helstart '\n if (markStart < 0) {\n return;\n }\n // 处理 css-loader 动态向 heade 添加 style 标签的情况\n // /* @helstart hel-tpl-remote-react-comp-ts @helend */ --> hel-tpl-remote-react-comp-ts\n var markEnd = innerText.indexOf(HEL_CSS_MARK_END);\n if (markEnd < 0) {\n return;\n }\n var helKey = innerText.substring(START_LEN + markStart, markEnd);\n if (helKey) {\n var trimedStr = helKey.trim(); // may groupName or plat/groupName\n var plat = '';\n var groupName = trimedStr;\n if (trimedStr.includes('/')) {\n var arr = trimedStr.split('/');\n plat = arr[0];\n groupName = arr[1];\n }\n setDataset(node, 'gname', groupName);\n plat && setDataset(node, 'plat', plat);\n if (ignoreStyleTagMap[trimedStr]) {\n disableNode(node);\n }\n var bus = getHelEventBus$1();\n commonDataUtil$1.appendStyleTagText(trimedStr, innerText);\n bus.emit(evName$1.styleTagAdded(trimedStr), {\n nodes: [node]\n });\n }\n return;\n }\n\n // process link tag\n var matchedPrefix = matchIgnoreCssPrefix(node, href);\n if (matchedPrefix) {\n disableNode(node);\n }\n}\nfunction handleHotUpdate(/** @type {HTMLElement} */node, ignoreStyleTagMap) {\n var tagName = node.tagName,\n _node$src = node.src,\n src = _node$src === void 0 ? '' : _node$src;\n if (tagName !== 'SCRIPT') return false;\n if (!src.endsWith('.hot-update.js')) return false;\n var matchedPrefix = commonDataUtil$1.getMatchedIgnoreCssPrefix(src);\n if (!matchedPrefix) return false;\n var keys = commonDataUtil$1.getIgnoreCssPrefixKeys(matchedPrefix);\n if (!keys.length) return false;\n var handled = false;\n keys.forEach(function (key) {\n if (ignoreStyleTagMap[key]) {\n resetStyleText(key);\n handled = true;\n }\n });\n return handled;\n}\nfunction obStyleTagInsert() {\n var helMicroShared = getHelMicroShared();\n var globalThis = getGlobalThis$1();\n var isStyleObInit = helMicroShared.isStyleObInit;\n var doc = globalThis.document;\n if (isStyleObInit || !doc) {\n return;\n }\n helMicroShared.isStyleObInit = true;\n var ignoreStyleTagMap = commonDataUtil$1.getIgnoreStyleTagMap();\n var MutationObserver = getOB();\n if (!MutationObserver) return;\n var observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n var addedNodes = mutation.addedNodes,\n removedNodes = mutation.removedNodes;\n var len = addedNodes.length;\n for (var i = 0; i < len; i++) {\n handleStyleAdded(addedNodes[i], ignoreStyleTagMap);\n }\n var remLen = removedNodes.length;\n for (var _i = 0; _i < remLen; _i++) {\n if (handleHotUpdate(removedNodes[_i], ignoreStyleTagMap)) {\n break;\n }\n }\n });\n });\n observer.observe(document.head, {\n childList: true\n });\n}\n\n/** @typedef {import('../index').IPlatformConfig} IPlatformConfig */\nresetGlobalThis();\nlog$1(\"hel-micro-core ver \".concat(helConsts$1.CORE_VER));\nvar helEvents = helEvents$1,\n helLoadStatus = helLoadStatus$1,\n helConsts = helConsts$1;\nvar inectPlatToMod = inectPlatToMod$1;\nvar commonUtil = commonUtilMod;\nvar isSubApp = isSubApp$1;\nfunction resetGlobalThis(globalThis) {\n if (globalThis) {\n setGlobalThis(globalThis);\n }\n // 载入此包就尝试设置 masterApp 锁,以推断自己是不是父应用\n tryMarkFlag(!!globalThis);\n // 确保 __HEL_MICRO_SHARED__ 存在\n ensureHelMicroShared();\n ensureHelMicroDebug();\n patchAppendChild();\n obStyleTagInsert();\n}\n\n/**\n * 获取默认的平台值\n * @returns\n */\nvar getPlatform = getPlatform$1,\n getSharedCache = getSharedCache$1;\nvar getHelDebug = getHelMicroDebug,\n allowLog = allowLog$1,\n log = log$1,\n perfMark = perfMark$1,\n perfPeek = perfPeek$1,\n clearPerfMark = clearPerfMark$1;\nvar getGlobalThis = getGlobalThis$1,\n setGlobalThis = setGlobalThis$1;\nvar getVerApp = getVerApp$1,\n setEmitApp = setEmitApp$1;\nvar getVerLib = getVerLib$1,\n setEmitLib = setEmitLib$1;\nvar getAppMeta = getAppMeta$1,\n setAppMeta = setAppMeta$1;\nvar getVersion = getVersion$1,\n setVersion = setVersion$1;\nvar getCustomData = getCustomData$1,\n setCustomData = setCustomData$1;\nvar getCommonData = getCommonData$1,\n setCommonData = setCommonData$1,\n commonDataUtil = commonDataUtil$1;\nvar getVerLoadStatus = getVerLoadStatus$1,\n setVerLoadStatus = setVerLoadStatus$1,\n getVerStyleStrStatus = getVerStyleStrStatus$1,\n setVerStyleStrStatus = setVerStyleStrStatus$1;\nvar getAppStyleStr = getAppStyleStr$1,\n setAppStyleStr = setAppStyleStr$1,\n getVerExtraCssList = getVerExtraCssList$1,\n setVerExtraCssList = setVerExtraCssList$1;\nvar tryGetVersion = tryGetVersion$1,\n tryGetAppName = tryGetAppName$1;\nvar getPlatformConfig = getPlatformConfig$1,\n getAppPlatform = getAppPlatform$1,\n setAppPlatform = setAppPlatform$1,\n setAppPlatformByAppName = setAppPlatformByAppName$1,\n getAppPlatformByAppName = getAppPlatformByAppName$1,\n initPlatformConfig = initPlatformConfig$1,\n originInit = originInit$1,\n initGlobalConfig = initGlobalConfig$1;\nvar getHelEventBus = getHelEventBus$1,\n getUserEventBus = getUserEventBus$1,\n evName = evName$1;\nvar libReady = libReady$1,\n appReady = appReady$1;\n\nexport { allowLog, appReady, clearPerfMark, commonDataUtil, commonUtil, evName, getAppMeta, getAppPlatform, getAppPlatformByAppName, getAppStyleStr, getCommonData, getCustomData, getGlobalThis, getHelDebug, getHelEventBus, getPlatform, getPlatformConfig, getSharedCache, getUserEventBus, getVerApp, getVerExtraCssList, getVerLib, getVerLoadStatus, getVerStyleStrStatus, getVersion, helConsts, helEvents, helLoadStatus, inectPlatToMod, initGlobalConfig, initPlatformConfig, isSubApp, libReady, log, originInit, perfMark, perfPeek, resetGlobalThis, setAppMeta, setAppPlatform, setAppPlatformByAppName, setAppStyleStr, setCommonData, setCustomData, setEmitApp, setEmitLib, setGlobalThis, setVerExtraCssList, setVerLoadStatus, setVerStyleStrStatus, setVersion, tryGetAppName, tryGetVersion };\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"hel-micro-core\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"hel-micro-core\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).HelLibProxy={},e.HelMicroCore)}(this,function(e,t){\"use strict\";\n/*! *****************************************************************************\n Copyright (c) Microsoft Corporation.\n\n Permission to use, copy, modify, and/or distribute this software for any\n purpose with or without fee is hereby granted.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n PERFORMANCE OF THIS SOFTWARE.\n ***************************************************************************** */var r=function(){return r=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},r.apply(this,arguments)};function o(e,r){var o=r||(null===t.getAppPlatform||void 0===t.getAppPlatform?void 0:t.getAppPlatform(e)),n=t.getSharedCache(o).appName2Lib;return n[e]||(n[e]={}),n[e]}var n=\"4.12.1\";t.log(\"hel-lib-proxy ver \".concat(n));var i=t.getUserEventBus,a=t.helConsts,p=i();function l(e,o){var n=r({},o||{});return n.platform=n.platform||a.DEFAULT_PLAT,t.getVerLib(e,n)}function u(e,r){var n,i=!0,p=\"\";r&&(\"string\"==typeof r?p=r:(p=r.platform||\"\",i=null===(n=r.asProxy)||void 0===n||n));var l=o(e,p=p||t.getAppPlatform(e)||a.DEFAULT_PLAT);return\"function\"==typeof Proxy&&i&&(l=function(e,r,n){return new Proxy(r,{get:function(r,i){var a=String(i);return t.log(\"[[getLibProxy]] call lib [\".concat(e,\"] method [\").concat(a,\"]\")),Object.keys(r).length?r[a]:o(e,n)[a]}})}(e,l,p)),t.log(\"[[ exposeLib ]] libName, libObj\",e,l),l}function s(e,o,n){var i=function(e){var o={allowDup:!1,platform:t.helConsts.DEFAULT_PLAT};return r(r({},o),e||{})}(n);t.libReady(e,o,i)}function f(e,r,o){t.appReady(e,r,o)}function c(e,r){return t.getVerApp(e,r)}var b=t.isSubApp;function v(){return!t.isSubApp()}var y=Object.freeze({__proto__:null,VER:n,eventBus:p,getLib:l,exposeLib:u,libReady:s,appReady:f,exposeApp:c,isSubApp:b,isMasterApp:v}),d=t.commonUtil.purify,g=[\"isMasterApp\",\"isSubApp\",\"eventBus\"],A=[\"appReady\",\"libReady\"];function m(e,t){return t&&\"object\"==typeof t&&!Array.isArray(t)?r({platform:e},d(t)):{platform:e}}function x(e,t){var r={};return Object.keys(e).forEach(function(o){var n=e[o];if(g.includes(o))r[o]=n;else if(A.includes(o))r[o]=function(e,t){return function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];var n=r[0],i=r[1],a=r[2];return e(n,i,m(t,void 0===a?{}:a))}}(n,t);else{var i=\"exposeLib\"===o;r[o]=function(e,t,r){return function(){for(var o=[],n=0;n<arguments.length;n++)o[n]=arguments[n];var i=o[0],a=o[1];return e(i,!r||\"string\"!=typeof a&&void 0!==a?m(t,a):a||t)}}(n,t,i)}}),r}var L=function e(t){var r=x(y,t);return r.createInstance=e,r},h=n,P=s,R=u,j=l,S=b,T=v,_=p,E=f,O=c,M={VER:h,libReady:P,exposeLib:R,getLib:j,isSubApp:S,isMasterApp:T,eventBus:_,appReady:E,exposeApp:O,createInstance:L};!function(e){var r=t.getGlobalThis();t.commonUtil.isServer()||r.HelLibProxy||(t.log(\"auto bind hel-lib-proxy to global.HelLibProxy\"),r.HelLibProxy=e)}(M),e.VER=h,e.appReady=E,e.createInstance=L,e.default=M,e.eventBus=_,e.exposeApp=O,e.exposeLib=R,e.getLib=j,e.isMasterApp=T,e.isSubApp=S,e.libReady=P,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","/*\n|--------------------------------------------------------------------------\n|\n| 对应 package.json/appGroupName\n|\n|--------------------------------------------------------------------------\n*/\nexport const LIB_NAME = 'libs-react-leva'\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// 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}\n__name(setRef, \"setRef\");\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}\n__name(composeRefs, \"composeRefs\");\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\n__name(useComposedRefs, \"useComposedRefs\");\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/slot.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n let slottableElement = null;\n let hasSlottable = false;\n const newChildren = [];\n children = useUnwrappedLazy(children);\n React.Children.forEach(children, (maybeSlottable) => {\n if (isSlottable(maybeSlottable)) {\n hasSlottable = true;\n const slottable = maybeSlottable;\n let child = \"child\" in slottable.props ? slottable.props.child : slottable.props.children;\n while (isLazyComponent(child) && typeof use === \"function\") {\n child = use(child._payload);\n }\n slottableElement = getSlottableElementFromSlottable(slottable, child);\n newChildren.push(slottableElement?.props?.children);\n } else {\n newChildren.push(maybeSlottable);\n }\n });\n if (slottableElement) {\n slottableElement = React.cloneElement(slottableElement, void 0, newChildren);\n } else if (\n // A `Slottable` was found but it didn't resolve to a single element (e.g.\n // it wrapped multiple elements, text, or a render-prop `child` that\n // wasn't an element). Don't fall back to treating the `Slottable` wrapper\n // itself as the slot target — throw a descriptive error below instead.\n !hasSlottable && React.Children.count(children) === 1 && React.isValidElement(children)\n ) {\n slottableElement = children;\n }\n const slottableElementRef = slottableElement ? getElementRef(slottableElement) : void 0;\n const composedRef = useComposedRefs(forwardedRef, slottableElementRef);\n if (!slottableElement) {\n if (children || children === 0) {\n throw new Error(\n hasSlottable ? createSlottableError(ownerName) : createSlotError(ownerName)\n );\n }\n return children;\n }\n const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});\n if (slottableElement.type !== React.Fragment) {\n mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;\n }\n return React.cloneElement(slottableElement, mergedProps);\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\n__name(createSlot, \"createSlot\");\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\nvar SLOTTABLE_IDENTIFIER = Symbol.for(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = /* @__PURE__ */ __name((props) => \"child\" in props ? props.children(props.child) : props.children, \"Slottable\");\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\n__name(createSlottable, \"createSlottable\");\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nvar getSlottableElementFromSlottable = /* @__PURE__ */ __name((slottable, child) => {\n if (\"child\" in slottable.props) {\n if (!React.isValidElement(child)) return null;\n return React.cloneElement(child, void 0, slottable.props.children(child.props.children));\n }\n return React.isValidElement(child) ? child : null;\n}, \"getSlottableElementFromSlottable\");\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 } else if (propName === \"aria-describedby\") {\n overrideProps[propName] = concatAriaDescribedby(childPropValue, slotPropValue);\n }\n }\n return { ...slotProps, ...overrideProps };\n}\n__name(mergeProps, \"mergeProps\");\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}\n__name(getElementRef, \"getElementRef\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\n__name(isSlottable, \"isSlottable\");\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\n__name(isLazyComponent, \"isLazyComponent\");\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\n__name(isPromiseLike, \"isPromiseLike\");\nfunction useUnwrappedLazy(value) {\n let unwrapped = value;\n while (isLazyComponent(unwrapped) && typeof use === \"function\") {\n unwrapped = use(unwrapped._payload);\n }\n return unwrapped;\n}\n__name(useUnwrappedLazy, \"useUnwrappedLazy\");\nfunction concatAriaDescribedby(...values) {\n const ids = /* @__PURE__ */ new Set();\n for (const value of values) {\n if (typeof value !== \"string\") continue;\n for (const id of String(value).trim().split(/\\s+/)) {\n if (id) ids.add(id);\n }\n }\n return ids.size > 0 ? Array.from(ids).join(\" \") : void 0;\n}\n__name(concatAriaDescribedby, \"concatAriaDescribedby\");\nvar createSlotError = /* @__PURE__ */ __name((ownerName) => {\n return `${ownerName} failed to slot onto its children. Expected a single React element child or \\`Slottable\\`.`;\n}, \"createSlotError\");\nvar createSlottableError = /* @__PURE__ */ __name((ownerName) => {\n return `${ownerName} failed to slot onto its \\`Slottable\\`. Expected \\`Slottable\\` to receive a single React element child.`;\n}, \"createSlottableError\");\nvar use = React[\" use \".trim().toString()];\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\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}\n__name(dispatchDiscreteCustomEvent, \"dispatchDiscreteCustomEvent\");\nexport {\n Primitive,\n Primitive as Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// 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","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/portal.tsx\nimport * as React from \"react\";\nimport * as 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 = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function Portal2(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 }, \"Portal\")\n);\nexport {\n Portal,\n Portal as Root\n};\n//# sourceMappingURL=index.mjs.map\n","var has = Object.prototype.hasOwnProperty;\n\nexport function dequal(foo, bar) {\n\tvar ctor, len;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","function shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nexport { shallow as default };\n","var Rule = function Rule(name, fn, args, modifiers) {\n this.name = name;\n this.fn = fn;\n this.args = args;\n this.modifiers = modifiers;\n};\n\nRule.prototype._test = function _test (value) {\n var fn = this.fn;\n\n try {\n testAux(this.modifiers.slice(), fn, this)(value);\n } catch (ex) {\n fn = function () { return false; };\n }\n\n try {\n return testAux(this.modifiers.slice(), fn, this)(value);\n } catch (ex$1) {\n return false;\n }\n};\n\nRule.prototype._check = function _check (value) {\n try {\n testAux(this.modifiers.slice(), this.fn, this)(value);\n } catch (ex) {\n if (testAux(this.modifiers.slice(), function (it) { return it; }, this)(false)) {\n return;\n }\n }\n\n if (!testAux(this.modifiers.slice(), this.fn, this)(value)) {\n throw null;\n }\n};\n\nRule.prototype._testAsync = function _testAsync (value) {\n var this$1 = this;\n\n return new Promise(function (resolve, reject) {\n testAsyncAux(\n this$1.modifiers.slice(),\n this$1.fn,\n this$1\n )(value)\n .then(function (valid) {\n if (valid) {\n resolve(value);\n } else {\n reject(null);\n }\n })\n .catch(function (ex) { return reject(ex); });\n });\n};\n\nfunction pickFn(fn, variant) {\n if ( variant === void 0 ) variant = 'simple';\n\n return typeof fn === 'object' ? fn[variant] : fn;\n}\n\nfunction testAux(modifiers, fn, rule) {\n if (modifiers.length) {\n var modifier = modifiers.shift();\n var nextFn = testAux(modifiers, fn, rule);\n return modifier.perform(nextFn, rule);\n } else {\n return pickFn(fn);\n }\n}\n\nfunction testAsyncAux(modifiers, fn, rule) {\n if (modifiers.length) {\n var modifier = modifiers.shift();\n var nextFn = testAsyncAux(modifiers, fn, rule);\n return modifier.performAsync(nextFn, rule);\n } else {\n return function (value) { return Promise.resolve(pickFn(fn, 'async')(value)); };\n }\n}\n\nvar Modifier = function Modifier(name, perform, performAsync) {\n this.name = name;\n this.perform = perform;\n this.performAsync = performAsync;\n};\n\nvar ValidationError = /*@__PURE__*/(function (Error) {\n function ValidationError(rule, value, cause, target) {\n var remaining = [], len = arguments.length - 4;\n while ( len-- > 0 ) remaining[ len ] = arguments[ len + 4 ];\n\n Error.call(this, remaining);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ValidationError);\n }\n this.rule = rule;\n this.value = value;\n this.cause = cause;\n this.target = target;\n }\n\n if ( Error ) ValidationError.__proto__ = Error;\n ValidationError.prototype = Object.create( Error && Error.prototype );\n ValidationError.prototype.constructor = ValidationError;\n\n return ValidationError;\n}(Error));\n\nvar Context = function Context(chain, nextRuleModifiers) {\n if ( chain === void 0 ) chain = [];\n if ( nextRuleModifiers === void 0 ) nextRuleModifiers = [];\n\n this.chain = chain;\n this.nextRuleModifiers = nextRuleModifiers;\n};\n\nContext.prototype._applyRule = function _applyRule (ruleFn, name) {\n var this$1 = this;\n\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n this$1.chain.push(\n new Rule(name, ruleFn.apply(this$1, args), args, this$1.nextRuleModifiers)\n );\n this$1.nextRuleModifiers = [];\n return this$1;\n };\n};\n\nContext.prototype._applyModifier = function _applyModifier (modifier, name) {\n this.nextRuleModifiers.push(\n new Modifier(name, modifier.simple, modifier.async)\n );\n return this;\n};\n\nContext.prototype._clone = function _clone () {\n return new Context(this.chain.slice(), this.nextRuleModifiers.slice());\n};\n\nContext.prototype.test = function test (value) {\n return this.chain.every(function (rule) { return rule._test(value); });\n};\n\nContext.prototype.testAll = function testAll (value) {\n var err = [];\n this.chain.forEach(function (rule) {\n try {\n rule._check(value);\n } catch (ex) {\n err.push(new ValidationError(rule, value, ex));\n }\n });\n return err;\n};\n\nContext.prototype.check = function check (value) {\n this.chain.forEach(function (rule) {\n try {\n rule._check(value);\n } catch (ex) {\n throw new ValidationError(rule, value, ex);\n }\n });\n};\n\nContext.prototype.testAsync = function testAsync (value) {\n var this$1 = this;\n\n return new Promise(function (resolve, reject) {\n executeAsyncRules(value, this$1.chain.slice(), resolve, reject);\n });\n};\n\nfunction executeAsyncRules(value, rules, resolve, reject) {\n if (rules.length) {\n var rule = rules.shift();\n rule._testAsync(value).then(\n function () {\n executeAsyncRules(value, rules, resolve, reject);\n },\n function (cause) {\n reject(new ValidationError(rule, value, cause));\n }\n );\n } else {\n resolve(value);\n }\n}\n\nvar consideredEmpty = function (value, considerTrimmedEmptyString) {\n if (\n considerTrimmedEmptyString &&\n typeof value === 'string' &&\n value.trim().length === 0\n ) {\n return true;\n }\n\n return value === undefined || value === null;\n};\n\nfunction optional (validation, considerTrimmedEmptyString) {\n if ( considerTrimmedEmptyString === void 0 ) considerTrimmedEmptyString = false;\n\n return ({\n simple: function (value) { return consideredEmpty(value, considerTrimmedEmptyString) ||\n validation.check(value) === undefined; },\n async: function (value) { return consideredEmpty(value, considerTrimmedEmptyString) ||\n validation.testAsync(value); },\n});\n}\n\nfunction v8n() {\n return typeof Proxy !== 'undefined'\n ? proxyContext(new Context())\n : proxylessContext(new Context());\n}\n\n// Custom rules\nvar customRules = {};\n\nv8n.extend = function(newRules) {\n Object.assign(customRules, newRules);\n};\n\nv8n.clearCustomRules = function() {\n customRules = {};\n};\n\nfunction proxyContext(context) {\n return new Proxy(context, {\n get: function get(obj, prop) {\n if (prop in obj) {\n return obj[prop];\n }\n\n var newContext = proxyContext(context._clone());\n\n if (prop in availableModifiers) {\n return newContext._applyModifier(availableModifiers[prop], prop);\n }\n if (prop in customRules) {\n return newContext._applyRule(customRules[prop], prop);\n }\n if (prop in availableRules) {\n return newContext._applyRule(availableRules[prop], prop);\n }\n },\n });\n}\n\nfunction proxylessContext(context) {\n var addRuleSet = function (ruleSet, targetContext) {\n Object.keys(ruleSet).forEach(function (prop) {\n targetContext[prop] = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var newContext = proxylessContext(targetContext._clone());\n var contextWithRuleApplied = newContext._applyRule(\n ruleSet[prop],\n prop\n ).apply(void 0, args);\n return contextWithRuleApplied;\n };\n });\n return targetContext;\n };\n\n var contextWithAvailableRules = addRuleSet(availableRules, context);\n var contextWithAllRules = addRuleSet(\n customRules,\n contextWithAvailableRules\n );\n\n Object.keys(availableModifiers).forEach(function (prop) {\n Object.defineProperty(contextWithAllRules, prop, {\n get: function () {\n var newContext = proxylessContext(contextWithAllRules._clone());\n return newContext._applyModifier(availableModifiers[prop], prop);\n },\n });\n });\n\n return contextWithAllRules;\n}\n\nvar availableModifiers = {\n not: {\n simple: function (fn) { return function (value) { return !fn(value); }; },\n async: function (fn) { return function (value) { return Promise.resolve(fn(value))\n .then(function (result) { return !result; })\n .catch(function () { return true; }); }; },\n },\n\n some: {\n simple: function (fn) { return function (value) {\n return split(value).some(function (item) {\n try {\n return fn(item);\n } catch (ex) {\n return false;\n }\n });\n }; },\n async: function (fn) { return function (value) {\n return Promise.all(\n split(value).map(function (item) {\n try {\n return fn(item).catch(function () { return false; });\n } catch (ex) {\n return false;\n }\n })\n ).then(function (result) { return result.some(Boolean); });\n }; },\n },\n\n every: {\n simple: function (fn) { return function (value) { return value !== false && split(value).every(fn); }; },\n async: function (fn) { return function (value) { return Promise.all(split(value).map(fn)).then(function (result) { return result.every(Boolean); }); }; },\n },\n\n strict: {\n simple: function (fn, rule) { return function (value) {\n if (isSchemaRule(rule) && value && typeof value === 'object') {\n return (\n Object.keys(rule.args[0]).length === Object.keys(value).length &&\n fn(value)\n );\n }\n return fn(value);\n }; },\n async: function (fn, rule) { return function (value) { return Promise.resolve(fn(value))\n .then(function (result) {\n if (isSchemaRule(rule) && value && typeof value === 'object') {\n return (\n Object.keys(rule.args[0]).length === Object.keys(value).length &&\n result\n );\n }\n return result;\n })\n .catch(function () { return false; }); }; },\n },\n};\n\nfunction isSchemaRule(rule) {\n return (\n rule &&\n rule.name === 'schema' &&\n rule.args.length > 0 &&\n typeof rule.args[0] === 'object'\n );\n}\n\nfunction split(value) {\n if (typeof value === 'string') {\n return value.split('');\n }\n return value;\n}\n\nvar availableRules = {\n // Value\n\n equal: function (expected) { return function (value) { return value == expected; }; },\n\n exact: function (expected) { return function (value) { return value === expected; }; },\n\n // Types\n\n number: function (allowInfinite) {\n if ( allowInfinite === void 0 ) allowInfinite = true;\n\n return function (value) { return typeof value === 'number' && (allowInfinite || isFinite(value)); };\n},\n\n integer: function () { return function (value) {\n var isInteger = Number.isInteger || isIntegerPolyfill;\n return isInteger(value);\n }; },\n\n numeric: function () { return function (value) { return !isNaN(parseFloat(value)) && isFinite(value); }; },\n\n string: function () { return testType('string'); },\n\n boolean: function () { return testType('boolean'); },\n\n undefined: function () { return testType('undefined'); },\n\n null: function () { return testType('null'); },\n\n array: function () { return testType('array'); },\n\n object: function () { return testType('object'); },\n\n instanceOf: function (instance) { return function (value) { return value instanceof instance; }; },\n\n // Pattern\n\n pattern: function (expected) { return function (value) { return expected.test(value); }; },\n\n lowercase: function () { return function (value) {\n return (\n typeof value === 'boolean' ||\n (value === value.toLowerCase() && value.trim() !== '')\n );\n }; },\n\n uppercase: function () { return function (value) { return value === value.toUpperCase() && value.trim() !== ''; }; },\n\n vowel: function () { return function (value) { return /^[aeiou]+$/i.test(value); }; },\n\n consonant: function () { return function (value) { return /^(?=[^aeiou])([a-z]+)$/i.test(value); }; },\n\n // Value at\n\n first: function (expected) { return function (value) { return value[0] == expected; }; },\n\n last: function (expected) { return function (value) { return value[value.length - 1] == expected; }; },\n\n // Length\n\n empty: function () { return function (value) { return value.length === 0; }; },\n\n length: function (min, max) { return function (value) { return value.length >= min && value.length <= (max || min); }; },\n\n minLength: function (min) { return function (value) { return value.length >= min; }; },\n\n maxLength: function (max) { return function (value) { return value.length <= max; }; },\n\n // Range\n\n negative: function () { return function (value) { return value < 0; }; },\n\n positive: function () { return function (value) { return value >= 0; }; },\n\n between: function (a, b) { return function (value) { return value >= a && value <= b; }; },\n\n range: function (a, b) { return function (value) { return value >= a && value <= b; }; },\n\n lessThan: function (n) { return function (value) { return value < n; }; },\n\n lessThanOrEqual: function (n) { return function (value) { return value <= n; }; },\n\n greaterThan: function (n) { return function (value) { return value > n; }; },\n\n greaterThanOrEqual: function (n) { return function (value) { return value >= n; }; },\n\n // Divisible\n\n even: function () { return function (value) { return value % 2 === 0; }; },\n\n odd: function () { return function (value) { return value % 2 !== 0; }; },\n\n includes: function (expected) { return function (value) { return ~value.indexOf(expected); }; },\n\n schema: function (schema) { return testSchema(schema); },\n\n // branching\n\n passesAnyOf: function () {\n var validations = [], len = arguments.length;\n while ( len-- ) validations[ len ] = arguments[ len ];\n\n return function (value) { return validations.some(function (validation) { return validation.test(value); }); };\n},\n\n optional: optional,\n};\n\nfunction testType(expected) {\n return function (value) {\n return (\n (Array.isArray(value) && expected === 'array') ||\n (value === null && expected === 'null') ||\n typeof value === expected\n );\n };\n}\n\nfunction isIntegerPolyfill(value) {\n return (\n typeof value === 'number' && isFinite(value) && Math.floor(value) === value\n );\n}\n\nfunction testSchema(schema) {\n return {\n simple: function (value) {\n var causes = [];\n Object.keys(schema).forEach(function (key) {\n var nestedValidation = schema[key];\n try {\n nestedValidation.check((value || {})[key]);\n } catch (ex) {\n ex.target = key;\n causes.push(ex);\n }\n });\n if (causes.length > 0) {\n throw causes;\n }\n return true;\n },\n async: function (value) {\n var causes = [];\n var nested = Object.keys(schema).map(function (key) {\n var nestedValidation = schema[key];\n return nestedValidation.testAsync((value || {})[key]).catch(function (ex) {\n ex.target = key;\n causes.push(ex);\n });\n });\n return Promise.all(nested).then(function () {\n if (causes.length > 0) {\n throw causes;\n }\n\n return true;\n });\n },\n };\n}\n\nexport default v8n;\n","var e=\"colors\",t=\"sizes\",r=\"space\",n={gap:r,gridGap:r,columnGap:r,gridColumnGap:r,rowGap:r,gridRowGap:r,inset:r,insetBlock:r,insetBlockEnd:r,insetBlockStart:r,insetInline:r,insetInlineEnd:r,insetInlineStart:r,margin:r,marginTop:r,marginRight:r,marginBottom:r,marginLeft:r,marginBlock:r,marginBlockEnd:r,marginBlockStart:r,marginInline:r,marginInlineEnd:r,marginInlineStart:r,padding:r,paddingTop:r,paddingRight:r,paddingBottom:r,paddingLeft:r,paddingBlock:r,paddingBlockEnd:r,paddingBlockStart:r,paddingInline:r,paddingInlineEnd:r,paddingInlineStart:r,top:r,right:r,bottom:r,left:r,scrollMargin:r,scrollMarginTop:r,scrollMarginRight:r,scrollMarginBottom:r,scrollMarginLeft:r,scrollMarginX:r,scrollMarginY:r,scrollMarginBlock:r,scrollMarginBlockEnd:r,scrollMarginBlockStart:r,scrollMarginInline:r,scrollMarginInlineEnd:r,scrollMarginInlineStart:r,scrollPadding:r,scrollPaddingTop:r,scrollPaddingRight:r,scrollPaddingBottom:r,scrollPaddingLeft:r,scrollPaddingX:r,scrollPaddingY:r,scrollPaddingBlock:r,scrollPaddingBlockEnd:r,scrollPaddingBlockStart:r,scrollPaddingInline:r,scrollPaddingInlineEnd:r,scrollPaddingInlineStart:r,fontSize:\"fontSizes\",background:e,backgroundColor:e,backgroundImage:e,borderImage:e,border:e,borderBlock:e,borderBlockEnd:e,borderBlockStart:e,borderBottom:e,borderBottomColor:e,borderColor:e,borderInline:e,borderInlineEnd:e,borderInlineStart:e,borderLeft:e,borderLeftColor:e,borderRight:e,borderRightColor:e,borderTop:e,borderTopColor:e,caretColor:e,color:e,columnRuleColor:e,fill:e,outline:e,outlineColor:e,stroke:e,textDecorationColor:e,fontFamily:\"fonts\",fontWeight:\"fontWeights\",lineHeight:\"lineHeights\",letterSpacing:\"letterSpacings\",blockSize:t,minBlockSize:t,maxBlockSize:t,inlineSize:t,minInlineSize:t,maxInlineSize:t,width:t,minWidth:t,maxWidth:t,height:t,minHeight:t,maxHeight:t,flexBasis:t,gridTemplateColumns:t,gridTemplateRows:t,borderWidth:\"borderWidths\",borderTopWidth:\"borderWidths\",borderRightWidth:\"borderWidths\",borderBottomWidth:\"borderWidths\",borderLeftWidth:\"borderWidths\",borderStyle:\"borderStyles\",borderTopStyle:\"borderStyles\",borderRightStyle:\"borderStyles\",borderBottomStyle:\"borderStyles\",borderLeftStyle:\"borderStyles\",borderRadius:\"radii\",borderTopLeftRadius:\"radii\",borderTopRightRadius:\"radii\",borderBottomRightRadius:\"radii\",borderBottomLeftRadius:\"radii\",boxShadow:\"shadows\",textShadow:\"shadows\",transition:\"transitions\",zIndex:\"zIndices\"},i=(e,t)=>\"function\"==typeof t?{\"()\":Function.prototype.toString.call(t)}:t,o=()=>{const e=Object.create(null);return(t,r,...n)=>{const o=(e=>JSON.stringify(e,i))(t);return o in e?e[o]:e[o]=r(t,...n)}},l=Symbol.for(\"sxs.internal\"),s=(e,t)=>Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)),a=e=>{for(const t in e)return!0;return!1},{hasOwnProperty:c}=Object.prototype,d=e=>e.includes(\"-\")?e:e.replace(/[A-Z]/g,(e=>\"-\"+e.toLowerCase())),g=/\\s+(?![^()]*\\))/,p=e=>t=>e(...\"string\"==typeof t?String(t).split(g):[t]),u={appearance:e=>({WebkitAppearance:e,appearance:e}),backfaceVisibility:e=>({WebkitBackfaceVisibility:e,backfaceVisibility:e}),backdropFilter:e=>({WebkitBackdropFilter:e,backdropFilter:e}),backgroundClip:e=>({WebkitBackgroundClip:e,backgroundClip:e}),boxDecorationBreak:e=>({WebkitBoxDecorationBreak:e,boxDecorationBreak:e}),clipPath:e=>({WebkitClipPath:e,clipPath:e}),content:e=>({content:e.includes('\"')||e.includes(\"'\")||/^([A-Za-z]+\\([^]*|[^]*-quote|inherit|initial|none|normal|revert|unset)$/.test(e)?e:`\"${e}\"`}),hyphens:e=>({WebkitHyphens:e,hyphens:e}),maskImage:e=>({WebkitMaskImage:e,maskImage:e}),maskSize:e=>({WebkitMaskSize:e,maskSize:e}),tabSize:e=>({MozTabSize:e,tabSize:e}),textSizeAdjust:e=>({WebkitTextSizeAdjust:e,textSizeAdjust:e}),userSelect:e=>({WebkitUserSelect:e,userSelect:e}),marginBlock:p(((e,t)=>({marginBlockStart:e,marginBlockEnd:t||e}))),marginInline:p(((e,t)=>({marginInlineStart:e,marginInlineEnd:t||e}))),maxSize:p(((e,t)=>({maxBlockSize:e,maxInlineSize:t||e}))),minSize:p(((e,t)=>({minBlockSize:e,minInlineSize:t||e}))),paddingBlock:p(((e,t)=>({paddingBlockStart:e,paddingBlockEnd:t||e}))),paddingInline:p(((e,t)=>({paddingInlineStart:e,paddingInlineEnd:t||e})))},h=/([\\d.]+)([^]*)/,f=(e,t)=>e.length?e.reduce(((e,r)=>(e.push(...t.map((e=>e.includes(\"&\")?e.replace(/&/g,/[ +>|~]/.test(r)&&/&.*&/.test(e)?`:is(${r})`:r):r+\" \"+e))),e)),[]):t,m=(e,t)=>e in b&&\"string\"==typeof t?t.replace(/^((?:[^]*[^\\w-])?)(fit-content|stretch)((?:[^\\w-][^]*)?)$/,((t,r,n,i)=>r+(\"stretch\"===n?`-moz-available${i};${d(e)}:${r}-webkit-fill-available`:`-moz-fit-content${i};${d(e)}:${r}fit-content`)+i)):String(t),b={blockSize:1,height:1,inlineSize:1,maxBlockSize:1,maxHeight:1,maxInlineSize:1,maxWidth:1,minBlockSize:1,minHeight:1,minInlineSize:1,minWidth:1,width:1},S=e=>e?e+\"-\":\"\",k=(e,t,r)=>e.replace(/([+-])?((?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[Ee][+-]?\\d+)?)?(\\$|--)([$\\w-]+)/g,((e,n,i,o,l)=>\"$\"==o==!!i?e:(n||\"--\"==o?\"calc(\":\"\")+\"var(--\"+(\"$\"===o?S(t)+(l.includes(\"$\")?\"\":S(r))+l.replace(/\\$/g,\"-\"):l)+\")\"+(n||\"--\"==o?\"*\"+(n||\"\")+(i||\"1\")+\")\":\"\"))),y=/\\s*,\\s*(?![^()]*\\))/,B=Object.prototype.toString,$=(e,t,r,n,i)=>{let o,l,s;const a=(e,t,r)=>{let c,g;const p=e=>{for(c in e){const R=64===c.charCodeAt(0),z=R&&Array.isArray(e[c])?e[c]:[e[c]];for(g of z){const e=/[A-Z]/.test($=c)?$:$.replace(/-[^]/g,(e=>e[1].toUpperCase())),z=\"object\"==typeof g&&g&&g.toString===B&&(!n.utils[e]||!t.length);if(e in n.utils&&!z){const t=n.utils[e];if(t!==l){l=t,p(t(g)),l=null;continue}}else if(e in u){const t=u[e];if(t!==s){s=t,p(t(g)),s=null;continue}}if(R&&(b=c.slice(1)in n.media?\"@media \"+n.media[c.slice(1)]:c,c=b.replace(/\\(\\s*([\\w-]+)\\s*(=|<|<=|>|>=)\\s*([\\w-]+)\\s*(?:(<|<=|>|>=)\\s*([\\w-]+)\\s*)?\\)/g,((e,t,r,n,i,o)=>{const l=h.test(t),s=.0625*(l?-1:1),[a,c]=l?[n,t]:[t,n];return\"(\"+(\"=\"===r[0]?\"\":\">\"===r[0]===l?\"max-\":\"min-\")+a+\":\"+(\"=\"!==r[0]&&1===r.length?c.replace(h,((e,t,n)=>Number(t)+s*(\">\"===r?1:-1)+n)):c)+(i?\") and (\"+(\">\"===i[0]?\"min-\":\"max-\")+a+\":\"+(1===i.length?o.replace(h,((e,t,r)=>Number(t)+s*(\">\"===i?-1:1)+r)):o):\"\")+\")\"}))),z){const e=R?r.concat(c):[...r],n=R?[...t]:f(t,c.split(y));void 0!==o&&i(x(...o)),o=void 0,a(g,n,e)}else void 0===o&&(o=[[],t,r]),c=R||36!==c.charCodeAt(0)?c:`--${S(n.prefix)}${c.slice(1).replace(/\\$/g,\"-\")}`,g=z?g:\"number\"==typeof g?g&&e in I?String(g)+\"px\":String(g):k(m(e,null==g?\"\":g),n.prefix,n.themeMap[e]),o[0].push(`${R?`${c} `:`${d(c)}:`}${g}`)}}var b,$};p(e),void 0!==o&&i(x(...o)),o=void 0};a(e,t,r)},x=(e,t,r)=>`${r.map((e=>`${e}{`)).join(\"\")}${t.length?`${t.join(\",\")}{`:\"\"}${e.join(\";\")}${t.length?\"}\":\"\"}${Array(r.length?r.length+1:0).join(\"}\")}`,I={animationDelay:1,animationDuration:1,backgroundSize:1,blockSize:1,border:1,borderBlock:1,borderBlockEnd:1,borderBlockEndWidth:1,borderBlockStart:1,borderBlockStartWidth:1,borderBlockWidth:1,borderBottom:1,borderBottomLeftRadius:1,borderBottomRightRadius:1,borderBottomWidth:1,borderEndEndRadius:1,borderEndStartRadius:1,borderInlineEnd:1,borderInlineEndWidth:1,borderInlineStart:1,borderInlineStartWidth:1,borderInlineWidth:1,borderLeft:1,borderLeftWidth:1,borderRadius:1,borderRight:1,borderRightWidth:1,borderSpacing:1,borderStartEndRadius:1,borderStartStartRadius:1,borderTop:1,borderTopLeftRadius:1,borderTopRightRadius:1,borderTopWidth:1,borderWidth:1,bottom:1,columnGap:1,columnRule:1,columnRuleWidth:1,columnWidth:1,containIntrinsicSize:1,flexBasis:1,fontSize:1,gap:1,gridAutoColumns:1,gridAutoRows:1,gridTemplateColumns:1,gridTemplateRows:1,height:1,inlineSize:1,inset:1,insetBlock:1,insetBlockEnd:1,insetBlockStart:1,insetInline:1,insetInlineEnd:1,insetInlineStart:1,left:1,letterSpacing:1,margin:1,marginBlock:1,marginBlockEnd:1,marginBlockStart:1,marginBottom:1,marginInline:1,marginInlineEnd:1,marginInlineStart:1,marginLeft:1,marginRight:1,marginTop:1,maxBlockSize:1,maxHeight:1,maxInlineSize:1,maxWidth:1,minBlockSize:1,minHeight:1,minInlineSize:1,minWidth:1,offsetDistance:1,offsetRotate:1,outline:1,outlineOffset:1,outlineWidth:1,overflowClipMargin:1,padding:1,paddingBlock:1,paddingBlockEnd:1,paddingBlockStart:1,paddingBottom:1,paddingInline:1,paddingInlineEnd:1,paddingInlineStart:1,paddingLeft:1,paddingRight:1,paddingTop:1,perspective:1,right:1,rowGap:1,scrollMargin:1,scrollMarginBlock:1,scrollMarginBlockEnd:1,scrollMarginBlockStart:1,scrollMarginBottom:1,scrollMarginInline:1,scrollMarginInlineEnd:1,scrollMarginInlineStart:1,scrollMarginLeft:1,scrollMarginRight:1,scrollMarginTop:1,scrollPadding:1,scrollPaddingBlock:1,scrollPaddingBlockEnd:1,scrollPaddingBlockStart:1,scrollPaddingBottom:1,scrollPaddingInline:1,scrollPaddingInlineEnd:1,scrollPaddingInlineStart:1,scrollPaddingLeft:1,scrollPaddingRight:1,scrollPaddingTop:1,shapeMargin:1,textDecoration:1,textDecorationThickness:1,textIndent:1,textUnderlineOffset:1,top:1,transitionDelay:1,transitionDuration:1,verticalAlign:1,width:1,wordSpacing:1},R=e=>String.fromCharCode(e+(e>25?39:97)),z=e=>(e=>{let t,r=\"\";for(t=Math.abs(e);t>52;t=t/52|0)r=R(t%52)+r;return R(t%52)+r})(((e,t)=>{let r=t.length;for(;r;)e=33*e^t.charCodeAt(--r);return e})(5381,JSON.stringify(e))>>>0),W=[\"themed\",\"global\",\"styled\",\"onevar\",\"resonevar\",\"allvar\",\"inline\"],j=e=>{if(e.href&&!e.href.startsWith(location.origin))return!1;try{return!!e.cssRules}catch(e){return!1}},E=e=>{let t;const r=()=>{const{cssRules:e}=t.sheet;return[].map.call(e,((r,n)=>{const{cssText:i}=r;let o=\"\";if(i.startsWith(\"--sxs\"))return\"\";if(e[n-1]&&(o=e[n-1].cssText).startsWith(\"--sxs\")){if(!r.cssRules.length)return\"\";for(const e in t.rules)if(t.rules[e].group===r)return`--sxs{--sxs:${[...t.rules[e].cache].join(\" \")}}${i}`;return r.cssRules.length?`${o}${i}`:\"\"}return i})).join(\"\")},n=()=>{if(t){const{rules:e,sheet:r}=t;if(!r.deleteRule){for(;3===Object(Object(r.cssRules)[0]).type;)r.cssRules.splice(0,1);r.cssRules=[]}for(const t in e)delete e[t]}const i=Object(e).styleSheets||[];for(const e of i)if(j(e)){for(let i=0,o=e.cssRules;o[i];++i){const l=Object(o[i]);if(1!==l.type)continue;const s=Object(o[i+1]);if(4!==s.type)continue;++i;const{cssText:a}=l;if(!a.startsWith(\"--sxs\"))continue;const c=a.slice(14,-3).trim().split(/\\s+/),d=W[c[0]];d&&(t||(t={sheet:e,reset:n,rules:{},toString:r}),t.rules[d]={group:s,index:i,cache:new Set(c)})}if(t)break}if(!t){const i=(e,t)=>({type:t,cssRules:[],insertRule(e,t){this.cssRules.splice(t,0,i(e,{import:3,undefined:1}[(e.toLowerCase().match(/^@([a-z]+)/)||[])[1]]||4))},get cssText(){return\"@media{}\"===e?`@media{${[].map.call(this.cssRules,(e=>e.cssText)).join(\"\")}}`:e}});t={sheet:e?(e.head||e).appendChild(document.createElement(\"style\")).sheet:i(\"\",\"text/css\"),rules:{},reset:n,toString:r}}const{sheet:o,rules:l}=t;for(let e=W.length-1;e>=0;--e){const t=W[e];if(!l[t]){const r=W[e+1],n=l[r]?l[r].index:o.cssRules.length;o.insertRule(\"@media{}\",n),o.insertRule(`--sxs{--sxs:${e}}`,n),l[t]={group:o.cssRules[n+1],index:n,cache:new Set([e])}}v(l[t])}};return n(),t},v=e=>{const t=e.group;let r=t.cssRules.length;e.apply=e=>{try{t.insertRule(e,r),++r}catch(e){}}},T=Symbol(),w=o(),M=(e,t)=>w(e,(()=>(...r)=>{let n={type:null,composers:new Set};for(const t of r)if(null!=t)if(t[l]){null==n.type&&(n.type=t[l].type);for(const e of t[l].composers)n.composers.add(e)}else t.constructor!==Object||t.$$typeof?null==n.type&&(n.type=t):n.composers.add(C(t,e));return null==n.type&&(n.type=\"span\"),n.composers.size||n.composers.add([\"PJLV\",{},[],[],{},[]]),P(e,n,t)})),C=({variants:e,compoundVariants:t,defaultVariants:r,...n},i)=>{const o=`${S(i.prefix)}c-${z(n)}`,l=[],s=[],d=Object.create(null),g=[];for(const e in r)d[e]=String(r[e]);if(\"object\"==typeof e&&e)for(const t in e){p=d,u=t,c.call(p,u)||(d[t]=\"undefined\");const r=e[t];for(const e in r){const n={[t]:String(e)};\"undefined\"===String(e)&&g.push(t);const i=r[e],o=[n,i,!a(i)];l.push(o)}}var p,u;if(\"object\"==typeof t&&t)for(const e of t){let{css:t,...r}=e;t=\"object\"==typeof t&&t||{};for(const e in r)r[e]=String(r[e]);const n=[r,t,!a(t)];s.push(n)}return[o,n,l,s,d,g]},P=(e,t,r)=>{const[n,i,o,a]=L(t.composers),c=\"function\"==typeof t.type||t.type.$$typeof?(e=>{function t(){for(let r=0;r<t[T].length;r++){const[n,i]=t[T][r];e.rules[n].apply(i)}return t[T]=[],null}return t[T]=[],t.rules={},W.forEach((e=>t.rules[e]={apply:r=>t[T].push([e,r])})),t})(r):null,d=(c||r).rules,g=`.${n}${i.length>1?`:where(.${i.slice(1).join(\".\")})`:\"\"}`,p=l=>{l=\"object\"==typeof l&&l||A;const{css:s,...p}=l,u={};for(const e in o)if(delete p[e],e in l){let t=l[e];\"object\"==typeof t&&t?u[e]={\"@initial\":o[e],...t}:(t=String(t),u[e]=\"undefined\"!==t||a.has(e)?t:o[e])}else u[e]=o[e];const h=new Set([...i]);for(const[n,i,o,l]of t.composers){r.rules.styled.cache.has(n)||(r.rules.styled.cache.add(n),$(i,[`.${n}`],[],e,(e=>{d.styled.apply(e)})));const t=O(o,u,e.media),s=O(l,u,e.media,!0);for(const i of t)if(void 0!==i)for(const[t,o,l]of i){const i=`${n}-${z(o)}-${t}`;h.add(i);const s=(l?r.rules.resonevar:r.rules.onevar).cache,a=l?d.resonevar:d.onevar;s.has(i)||(s.add(i),$(o,[`.${i}`],[],e,(e=>{a.apply(e)})))}for(const t of s)if(void 0!==t)for(const[i,o]of t){const t=`${n}-${z(o)}-${i}`;h.add(t),r.rules.allvar.cache.has(t)||(r.rules.allvar.cache.add(t),$(o,[`.${t}`],[],e,(e=>{d.allvar.apply(e)})))}}if(\"object\"==typeof s&&s){const t=`${n}-i${z(s)}-css`;h.add(t),r.rules.inline.cache.has(t)||(r.rules.inline.cache.add(t),$(s,[`.${t}`],[],e,(e=>{d.inline.apply(e)})))}for(const e of String(l.className||\"\").trim().split(/\\s+/))e&&h.add(e);const f=p.className=[...h].join(\" \");return{type:t.type,className:f,selector:g,props:p,toString:()=>f,deferredInjector:c}};return s(p,{className:n,selector:g,[l]:t,toString:()=>(r.rules.styled.cache.has(n)||p(),n)})},L=e=>{let t=\"\";const r=[],n={},i=[];for(const[o,,,,l,s]of e){\"\"===t&&(t=o),r.push(o),i.push(...s);for(const e in l){const t=l[e];(void 0===n[e]||\"undefined\"!==t||s.includes(t))&&(n[e]=t)}}return[t,r,n,new Set(i)]},O=(e,t,r,n)=>{const i=[];e:for(let[o,l,s]of e){if(s)continue;let e,a=0,c=!1;for(e in o){const n=o[e];let i=t[e];if(i!==n){if(\"object\"!=typeof i||!i)continue e;{let e,t,o=0;for(const l in i){if(n===String(i[l])){if(\"@initial\"!==l){const e=l.slice(1);(t=t||[]).push(e in r?r[e]:l.replace(/^@media ?/,\"\")),c=!0}a+=o,e=!0}++o}if(t&&t.length&&(l={[\"@media \"+t.join(\", \")]:l}),!e)continue e}}}(i[a]=i[a]||[]).push([n?\"cv\":`${e}-${o[e]}`,l,c])}return i},A={},N=o(),D=(e,t)=>N(e,(()=>(...r)=>{const n=()=>{for(let n of r){n=\"object\"==typeof n&&n||{};let r=z(n);if(!t.rules.global.cache.has(r)){if(t.rules.global.cache.add(r),\"@import\"in n){let e=[].indexOf.call(t.sheet.cssRules,t.rules.themed.group)-1;for(let r of[].concat(n[\"@import\"]))r=r.includes('\"')||r.includes(\"'\")?r:`\"${r}\"`,t.sheet.insertRule(`@import ${r};`,e++);delete n[\"@import\"]}$(n,[],[],e,(e=>{t.rules.global.apply(e)}))}}return\"\"};return s(n,{toString:n})})),H=o(),V=(e,t)=>H(e,(()=>r=>{const n=`${S(e.prefix)}k-${z(r)}`,i=()=>{if(!t.rules.global.cache.has(n)){t.rules.global.cache.add(n);const i=[];$(r,[],[],e,(e=>i.push(e)));const o=`@keyframes ${n}{${i.join(\"\")}}`;t.rules.global.apply(o)}return n};return s(i,{get name(){return i()},toString:i})})),G=class{constructor(e,t,r,n){this.token=null==e?\"\":String(e),this.value=null==t?\"\":String(t),this.scale=null==r?\"\":String(r),this.prefix=null==n?\"\":String(n)}get computedValue(){return\"var(\"+this.variable+\")\"}get variable(){return\"--\"+S(this.prefix)+S(this.scale)+this.token}toString(){return this.computedValue}},F=o(),J=(e,t)=>F(e,(()=>(r,n)=>{n=\"object\"==typeof r&&r||Object(n);const i=`.${r=(r=\"string\"==typeof r?r:\"\")||`${S(e.prefix)}t-${z(n)}`}`,o={},l=[];for(const t in n){o[t]={};for(const r in n[t]){const i=`--${S(e.prefix)}${t}-${r}`,s=k(String(n[t][r]),e.prefix,t);o[t][r]=new G(r,s,t,e.prefix),l.push(`${i}:${s}`)}}const s=()=>{if(l.length&&!t.rules.themed.cache.has(r)){t.rules.themed.cache.add(r);const i=`${n===e.theme?\":root,\":\"\"}.${r}{${l.join(\";\")}}`;t.rules.themed.apply(i)}return r};return{...o,get className(){return s()},selector:i,toString:s}})),U=o();import Z from\"react\";var X,Y=o(),q=e=>{const t=(e=>{let t=!1;const r=U(e,(e=>{t=!0;const r=\"prefix\"in(e=\"object\"==typeof e&&e||{})?String(e.prefix):\"\",i=\"object\"==typeof e.media&&e.media||{},o=\"object\"==typeof e.root?e.root||null:globalThis.document||null,l=\"object\"==typeof e.theme&&e.theme||{},s={prefix:r,media:i,theme:l,themeMap:\"object\"==typeof e.themeMap&&e.themeMap||{...n},utils:\"object\"==typeof e.utils&&e.utils||{}},a=E(o),c={css:M(s,a),globalCss:D(s,a),keyframes:V(s,a),createTheme:J(s,a),reset(){a.reset(),c.theme.toString()},theme:{},sheet:a,config:s,prefix:r,getCssText:a.toString,toString:a.toString};return String(c.theme=c.createTheme(l)),c}));return t||r.reset(),r})(e);return t.styled=(({config:e,sheet:t})=>Y(e,(()=>{const r=M(e,t);return(...e)=>{const t=r(...e),n=t[l].type,i=Z.forwardRef(((e,r)=>{const i=e&&e.as||n,{props:o,deferredInjector:l}=t(e);return delete o.as,o.ref=r,l?Z.createElement(Z.Fragment,null,Z.createElement(i,o),Z.createElement(l,null)):Z.createElement(i,o)}));return i.className=t.className,i.displayName=`Styled.${n.displayName||n.name||n}`,i.selector=t.selector,i.toString=()=>t.selector,i[l]=t[l],i}})))(t),t},K=()=>X||(X=q()),Q=(...e)=>K().createTheme(...e),_=(...e)=>K().globalCss(...e),ee=(...e)=>K().keyframes(...e),te=(...e)=>K().css(...e),re=(...e)=>K().styled(...e);export{q as createStitches,Q as createTheme,te as css,n as defaultThemeMap,_ as globalCss,ee as keyframes,re as styled};\n//# sourceMappingUrl=index.map","function clamp(v, min, max) {\n return Math.max(min, Math.min(v, max));\n}\nconst V = {\n toVector(v, fallback) {\n if (v === undefined) v = fallback;\n return Array.isArray(v) ? v : [v, v];\n },\n add(v1, v2) {\n return [v1[0] + v2[0], v1[1] + v2[1]];\n },\n sub(v1, v2) {\n return [v1[0] - v2[0], v1[1] - v2[1]];\n },\n addTo(v1, v2) {\n v1[0] += v2[0];\n v1[1] += v2[1];\n },\n subTo(v1, v2) {\n v1[0] -= v2[0];\n v1[1] -= v2[1];\n }\n};\nfunction rubberband(distance, dimension, constant) {\n if (dimension === 0 || Math.abs(dimension) === Infinity) return Math.pow(distance, constant * 5);\n return distance * dimension * constant / (dimension + constant * distance);\n}\nfunction rubberbandIfOutOfBounds(position, min, max, constant = 0.15) {\n if (constant === 0) return clamp(position, min, max);\n if (position < min) return -rubberband(min - position, max - min, constant) + min;\n if (position > max) return +rubberband(position - max, max - min, constant) + max;\n return position;\n}\nfunction computeRubberband(bounds, [Vx, Vy], [Rx, Ry]) {\n const [[X0, X1], [Y0, Y1]] = bounds;\n return [rubberbandIfOutOfBounds(Vx, X0, X1, Rx), rubberbandIfOutOfBounds(Vy, Y0, Y1, Ry)];\n}\n\nexport { V, computeRubberband as c, rubberbandIfOutOfBounds as r };\n","import { V, c as computeRubberband } from './maths-0ab39ae9.esm.js';\n\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\n\nconst EVENT_TYPE_MAP = {\n pointer: {\n start: 'down',\n change: 'move',\n end: 'up'\n },\n mouse: {\n start: 'down',\n change: 'move',\n end: 'up'\n },\n touch: {\n start: 'start',\n change: 'move',\n end: 'end'\n },\n gesture: {\n start: 'start',\n change: 'change',\n end: 'end'\n }\n};\nfunction capitalize(string) {\n if (!string) return '';\n return string[0].toUpperCase() + string.slice(1);\n}\nconst actionsWithoutCaptureSupported = ['enter', 'leave'];\nfunction hasCapture(capture = false, actionKey) {\n return capture && !actionsWithoutCaptureSupported.includes(actionKey);\n}\nfunction toHandlerProp(device, action = '', capture = false) {\n const deviceProps = EVENT_TYPE_MAP[device];\n const actionKey = deviceProps ? deviceProps[action] || action : action;\n return 'on' + capitalize(device) + capitalize(actionKey) + (hasCapture(capture, actionKey) ? 'Capture' : '');\n}\nconst pointerCaptureEvents = ['gotpointercapture', 'lostpointercapture'];\nfunction parseProp(prop) {\n let eventKey = prop.substring(2).toLowerCase();\n const passive = !!~eventKey.indexOf('passive');\n if (passive) eventKey = eventKey.replace('passive', '');\n const captureKey = pointerCaptureEvents.includes(eventKey) ? 'capturecapture' : 'capture';\n const capture = !!~eventKey.indexOf(captureKey);\n if (capture) eventKey = eventKey.replace('capture', '');\n return {\n device: eventKey,\n capture,\n passive\n };\n}\nfunction toDomEventType(device, action = '') {\n const deviceProps = EVENT_TYPE_MAP[device];\n const actionKey = deviceProps ? deviceProps[action] || action : action;\n return device + actionKey;\n}\nfunction isTouch(event) {\n return 'touches' in event;\n}\nfunction getPointerType(event) {\n if (isTouch(event)) return 'touch';\n if ('pointerType' in event) return event.pointerType;\n return 'mouse';\n}\nfunction getCurrentTargetTouchList(event) {\n return Array.from(event.touches).filter(e => {\n var _event$currentTarget, _event$currentTarget$;\n return e.target === event.currentTarget || ((_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 || (_event$currentTarget$ = _event$currentTarget.contains) === null || _event$currentTarget$ === void 0 ? void 0 : _event$currentTarget$.call(_event$currentTarget, e.target));\n });\n}\nfunction getTouchList(event) {\n return event.type === 'touchend' || event.type === 'touchcancel' ? event.changedTouches : event.targetTouches;\n}\nfunction getValueEvent(event) {\n return isTouch(event) ? getTouchList(event)[0] : event;\n}\nfunction distanceAngle(P1, P2) {\n try {\n const dx = P2.clientX - P1.clientX;\n const dy = P2.clientY - P1.clientY;\n const cx = (P2.clientX + P1.clientX) / 2;\n const cy = (P2.clientY + P1.clientY) / 2;\n const distance = Math.hypot(dx, dy);\n const angle = -(Math.atan2(dx, dy) * 180) / Math.PI;\n const origin = [cx, cy];\n return {\n angle,\n distance,\n origin\n };\n } catch (_unused) {}\n return null;\n}\nfunction touchIds(event) {\n return getCurrentTargetTouchList(event).map(touch => touch.identifier);\n}\nfunction touchDistanceAngle(event, ids) {\n const [P1, P2] = Array.from(event.touches).filter(touch => ids.includes(touch.identifier));\n return distanceAngle(P1, P2);\n}\nfunction pointerId(event) {\n const valueEvent = getValueEvent(event);\n return isTouch(event) ? valueEvent.identifier : valueEvent.pointerId;\n}\nfunction pointerValues(event) {\n const valueEvent = getValueEvent(event);\n return [valueEvent.clientX, valueEvent.clientY];\n}\nconst LINE_HEIGHT = 40;\nconst PAGE_HEIGHT = 800;\nfunction wheelValues(event) {\n let {\n deltaX,\n deltaY,\n deltaMode\n } = event;\n if (deltaMode === 1) {\n deltaX *= LINE_HEIGHT;\n deltaY *= LINE_HEIGHT;\n } else if (deltaMode === 2) {\n deltaX *= PAGE_HEIGHT;\n deltaY *= PAGE_HEIGHT;\n }\n return [deltaX, deltaY];\n}\nfunction scrollValues(event) {\n var _ref, _ref2;\n const {\n scrollX,\n scrollY,\n scrollLeft,\n scrollTop\n } = event.currentTarget;\n return [(_ref = scrollX !== null && scrollX !== void 0 ? scrollX : scrollLeft) !== null && _ref !== void 0 ? _ref : 0, (_ref2 = scrollY !== null && scrollY !== void 0 ? scrollY : scrollTop) !== null && _ref2 !== void 0 ? _ref2 : 0];\n}\nfunction getEventDetails(event) {\n const payload = {};\n if ('buttons' in event) payload.buttons = event.buttons;\n if ('shiftKey' in event) {\n const {\n shiftKey,\n altKey,\n metaKey,\n ctrlKey\n } = event;\n Object.assign(payload, {\n shiftKey,\n altKey,\n metaKey,\n ctrlKey\n });\n }\n return payload;\n}\n\nfunction call(v, ...args) {\n if (typeof v === 'function') {\n return v(...args);\n } else {\n return v;\n }\n}\nfunction noop() {}\nfunction chain(...fns) {\n if (fns.length === 0) return noop;\n if (fns.length === 1) return fns[0];\n return function () {\n let result;\n for (const fn of fns) {\n result = fn.apply(this, arguments) || result;\n }\n return result;\n };\n}\nfunction assignDefault(value, fallback) {\n return Object.assign({}, fallback, value || {});\n}\n\nconst BEFORE_LAST_KINEMATICS_DELAY = 32;\nclass Engine {\n constructor(ctrl, args, key) {\n this.ctrl = ctrl;\n this.args = args;\n this.key = key;\n if (!this.state) {\n this.state = {};\n this.computeValues([0, 0]);\n this.computeInitial();\n if (this.init) this.init();\n this.reset();\n }\n }\n get state() {\n return this.ctrl.state[this.key];\n }\n set state(state) {\n this.ctrl.state[this.key] = state;\n }\n get shared() {\n return this.ctrl.state.shared;\n }\n get eventStore() {\n return this.ctrl.gestureEventStores[this.key];\n }\n get timeoutStore() {\n return this.ctrl.gestureTimeoutStores[this.key];\n }\n get config() {\n return this.ctrl.config[this.key];\n }\n get sharedConfig() {\n return this.ctrl.config.shared;\n }\n get handler() {\n return this.ctrl.handlers[this.key];\n }\n reset() {\n const {\n state,\n shared,\n ingKey,\n args\n } = this;\n shared[ingKey] = state._active = state.active = state._blocked = state._force = false;\n state._step = [false, false];\n state.intentional = false;\n state._movement = [0, 0];\n state._distance = [0, 0];\n state._direction = [0, 0];\n state._delta = [0, 0];\n state._bounds = [[-Infinity, Infinity], [-Infinity, Infinity]];\n state.args = args;\n state.axis = undefined;\n state.memo = undefined;\n state.elapsedTime = state.timeDelta = 0;\n state.direction = [0, 0];\n state.distance = [0, 0];\n state.overflow = [0, 0];\n state._movementBound = [false, false];\n state.velocity = [0, 0];\n state.movement = [0, 0];\n state.delta = [0, 0];\n state.timeStamp = 0;\n }\n start(event) {\n const state = this.state;\n const config = this.config;\n if (!state._active) {\n this.reset();\n this.computeInitial();\n state._active = true;\n state.target = event.target;\n state.currentTarget = event.currentTarget;\n state.lastOffset = config.from ? call(config.from, state) : state.offset;\n state.offset = state.lastOffset;\n state.startTime = state.timeStamp = event.timeStamp;\n }\n }\n computeValues(values) {\n const state = this.state;\n state._values = values;\n state.values = this.config.transform(values);\n }\n computeInitial() {\n const state = this.state;\n state._initial = state._values;\n state.initial = state.values;\n }\n compute(event) {\n const {\n state,\n config,\n shared\n } = this;\n state.args = this.args;\n let dt = 0;\n if (event) {\n state.event = event;\n if (config.preventDefault && event.cancelable) state.event.preventDefault();\n state.type = event.type;\n shared.touches = this.ctrl.pointerIds.size || this.ctrl.touchIds.size;\n shared.locked = !!document.pointerLockElement;\n Object.assign(shared, getEventDetails(event));\n shared.down = shared.pressed = shared.buttons % 2 === 1 || shared.touches > 0;\n dt = event.timeStamp - state.timeStamp;\n state.timeStamp = event.timeStamp;\n state.elapsedTime = state.timeStamp - state.startTime;\n }\n if (state._active) {\n const _absoluteDelta = state._delta.map(Math.abs);\n V.addTo(state._distance, _absoluteDelta);\n }\n if (this.axisIntent) this.axisIntent(event);\n const [_m0, _m1] = state._movement;\n const [t0, t1] = config.threshold;\n const {\n _step,\n values\n } = state;\n if (config.hasCustomTransform) {\n if (_step[0] === false) _step[0] = Math.abs(_m0) >= t0 && values[0];\n if (_step[1] === false) _step[1] = Math.abs(_m1) >= t1 && values[1];\n } else {\n if (_step[0] === false) _step[0] = Math.abs(_m0) >= t0 && Math.sign(_m0) * t0;\n if (_step[1] === false) _step[1] = Math.abs(_m1) >= t1 && Math.sign(_m1) * t1;\n }\n state.intentional = _step[0] !== false || _step[1] !== false;\n if (!state.intentional) return;\n const movement = [0, 0];\n if (config.hasCustomTransform) {\n const [v0, v1] = values;\n movement[0] = _step[0] !== false ? v0 - _step[0] : 0;\n movement[1] = _step[1] !== false ? v1 - _step[1] : 0;\n } else {\n movement[0] = _step[0] !== false ? _m0 - _step[0] : 0;\n movement[1] = _step[1] !== false ? _m1 - _step[1] : 0;\n }\n if (this.restrictToAxis && !state._blocked) this.restrictToAxis(movement);\n const previousOffset = state.offset;\n const gestureIsActive = state._active && !state._blocked || state.active;\n if (gestureIsActive) {\n state.first = state._active && !state.active;\n state.last = !state._active && state.active;\n state.active = shared[this.ingKey] = state._active;\n if (event) {\n if (state.first) {\n if ('bounds' in config) state._bounds = call(config.bounds, state);\n if (this.setup) this.setup();\n }\n state.movement = movement;\n this.computeOffset();\n }\n }\n const [ox, oy] = state.offset;\n const [[x0, x1], [y0, y1]] = state._bounds;\n state.overflow = [ox < x0 ? -1 : ox > x1 ? 1 : 0, oy < y0 ? -1 : oy > y1 ? 1 : 0];\n state._movementBound[0] = state.overflow[0] ? state._movementBound[0] === false ? state._movement[0] : state._movementBound[0] : false;\n state._movementBound[1] = state.overflow[1] ? state._movementBound[1] === false ? state._movement[1] : state._movementBound[1] : false;\n const rubberband = state._active ? config.rubberband || [0, 0] : [0, 0];\n state.offset = computeRubberband(state._bounds, state.offset, rubberband);\n state.delta = V.sub(state.offset, previousOffset);\n this.computeMovement();\n if (gestureIsActive && (!state.last || dt > BEFORE_LAST_KINEMATICS_DELAY)) {\n state.delta = V.sub(state.offset, previousOffset);\n const absoluteDelta = state.delta.map(Math.abs);\n V.addTo(state.distance, absoluteDelta);\n state.direction = state.delta.map(Math.sign);\n state._direction = state._delta.map(Math.sign);\n if (!state.first && dt > 0) {\n state.velocity = [absoluteDelta[0] / dt, absoluteDelta[1] / dt];\n state.timeDelta = dt;\n }\n }\n }\n emit() {\n const state = this.state;\n const shared = this.shared;\n const config = this.config;\n if (!state._active) this.clean();\n if ((state._blocked || !state.intentional) && !state._force && !config.triggerAllEvents) return;\n const memo = this.handler(_objectSpread2(_objectSpread2(_objectSpread2({}, shared), state), {}, {\n [this.aliasKey]: state.values\n }));\n if (memo !== undefined) state.memo = memo;\n }\n clean() {\n this.eventStore.clean();\n this.timeoutStore.clean();\n }\n}\n\nfunction selectAxis([dx, dy], threshold) {\n const absDx = Math.abs(dx);\n const absDy = Math.abs(dy);\n if (absDx > absDy && absDx > threshold) {\n return 'x';\n }\n if (absDy > absDx && absDy > threshold) {\n return 'y';\n }\n return undefined;\n}\nclass CoordinatesEngine extends Engine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"aliasKey\", 'xy');\n }\n reset() {\n super.reset();\n this.state.axis = undefined;\n }\n init() {\n this.state.offset = [0, 0];\n this.state.lastOffset = [0, 0];\n }\n computeOffset() {\n this.state.offset = V.add(this.state.lastOffset, this.state.movement);\n }\n computeMovement() {\n this.state.movement = V.sub(this.state.offset, this.state.lastOffset);\n }\n axisIntent(event) {\n const state = this.state;\n const config = this.config;\n if (!state.axis && event) {\n const threshold = typeof config.axisThreshold === 'object' ? config.axisThreshold[getPointerType(event)] : config.axisThreshold;\n state.axis = selectAxis(state._movement, threshold);\n }\n state._blocked = (config.lockDirection || !!config.axis) && !state.axis || !!config.axis && config.axis !== state.axis;\n }\n restrictToAxis(v) {\n if (this.config.axis || this.config.lockDirection) {\n switch (this.state.axis) {\n case 'x':\n v[1] = 0;\n break;\n case 'y':\n v[0] = 0;\n break;\n }\n }\n }\n}\n\nconst identity = v => v;\nconst DEFAULT_RUBBERBAND = 0.15;\nconst commonConfigResolver = {\n enabled(value = true) {\n return value;\n },\n eventOptions(value, _k, config) {\n return _objectSpread2(_objectSpread2({}, config.shared.eventOptions), value);\n },\n preventDefault(value = false) {\n return value;\n },\n triggerAllEvents(value = false) {\n return value;\n },\n rubberband(value = 0) {\n switch (value) {\n case true:\n return [DEFAULT_RUBBERBAND, DEFAULT_RUBBERBAND];\n case false:\n return [0, 0];\n default:\n return V.toVector(value);\n }\n },\n from(value) {\n if (typeof value === 'function') return value;\n if (value != null) return V.toVector(value);\n },\n transform(value, _k, config) {\n const transform = value || config.shared.transform;\n this.hasCustomTransform = !!transform;\n if (process.env.NODE_ENV === 'development') {\n const originalTransform = transform || identity;\n return v => {\n const r = originalTransform(v);\n if (!isFinite(r[0]) || !isFinite(r[1])) {\n console.warn(`[@use-gesture]: config.transform() must produce a valid result, but it was: [${r[0]},${[1]}]`);\n }\n return r;\n };\n }\n return transform || identity;\n },\n threshold(value) {\n return V.toVector(value, 0);\n }\n};\nif (process.env.NODE_ENV === 'development') {\n Object.assign(commonConfigResolver, {\n domTarget(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`domTarget\\` option has been renamed to \\`target\\`.`);\n }\n return NaN;\n },\n lockDirection(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`lockDirection\\` option has been merged with \\`axis\\`. Use it as in \\`{ axis: 'lock' }\\``);\n }\n return NaN;\n },\n initial(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`initial\\` option has been renamed to \\`from\\`.`);\n }\n return NaN;\n }\n });\n}\n\nconst DEFAULT_AXIS_THRESHOLD = 0;\nconst coordinatesConfigResolver = _objectSpread2(_objectSpread2({}, commonConfigResolver), {}, {\n axis(_v, _k, {\n axis\n }) {\n this.lockDirection = axis === 'lock';\n if (!this.lockDirection) return axis;\n },\n axisThreshold(value = DEFAULT_AXIS_THRESHOLD) {\n return value;\n },\n bounds(value = {}) {\n if (typeof value === 'function') {\n return state => coordinatesConfigResolver.bounds(value(state));\n }\n if ('current' in value) {\n return () => value.current;\n }\n if (typeof HTMLElement === 'function' && value instanceof HTMLElement) {\n return value;\n }\n const {\n left = -Infinity,\n right = Infinity,\n top = -Infinity,\n bottom = Infinity\n } = value;\n return [[left, right], [top, bottom]];\n }\n});\n\nconst KEYS_DELTA_MAP = {\n ArrowRight: (displacement, factor = 1) => [displacement * factor, 0],\n ArrowLeft: (displacement, factor = 1) => [-1 * displacement * factor, 0],\n ArrowUp: (displacement, factor = 1) => [0, -1 * displacement * factor],\n ArrowDown: (displacement, factor = 1) => [0, displacement * factor]\n};\nclass DragEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'dragging');\n }\n reset() {\n super.reset();\n const state = this.state;\n state._pointerId = undefined;\n state._pointerActive = false;\n state._keyboardActive = false;\n state._preventScroll = false;\n state._delayed = false;\n state.swipe = [0, 0];\n state.tap = false;\n state.canceled = false;\n state.cancel = this.cancel.bind(this);\n }\n setup() {\n const state = this.state;\n if (state._bounds instanceof HTMLElement) {\n const boundRect = state._bounds.getBoundingClientRect();\n const targetRect = state.currentTarget.getBoundingClientRect();\n const _bounds = {\n left: boundRect.left - targetRect.left + state.offset[0],\n right: boundRect.right - targetRect.right + state.offset[0],\n top: boundRect.top - targetRect.top + state.offset[1],\n bottom: boundRect.bottom - targetRect.bottom + state.offset[1]\n };\n state._bounds = coordinatesConfigResolver.bounds(_bounds);\n }\n }\n cancel() {\n const state = this.state;\n if (state.canceled) return;\n state.canceled = true;\n state._active = false;\n setTimeout(() => {\n this.compute();\n this.emit();\n }, 0);\n }\n setActive() {\n this.state._active = this.state._pointerActive || this.state._keyboardActive;\n }\n clean() {\n this.pointerClean();\n this.state._pointerActive = false;\n this.state._keyboardActive = false;\n super.clean();\n }\n pointerDown(event) {\n const config = this.config;\n const state = this.state;\n if (event.buttons != null && (Array.isArray(config.pointerButtons) ? !config.pointerButtons.includes(event.buttons) : config.pointerButtons !== -1 && config.pointerButtons !== event.buttons)) return;\n const ctrlIds = this.ctrl.setEventIds(event);\n if (config.pointerCapture) {\n event.target.setPointerCapture(event.pointerId);\n }\n if (ctrlIds && ctrlIds.size > 1 && state._pointerActive) return;\n this.start(event);\n this.setupPointer(event);\n state._pointerId = pointerId(event);\n state._pointerActive = true;\n this.computeValues(pointerValues(event));\n this.computeInitial();\n if (config.preventScrollAxis && getPointerType(event) !== 'mouse') {\n state._active = false;\n this.setupScrollPrevention(event);\n } else if (config.delay > 0) {\n this.setupDelayTrigger(event);\n if (config.triggerAllEvents) {\n this.compute(event);\n this.emit();\n }\n } else {\n this.startPointerDrag(event);\n }\n }\n startPointerDrag(event) {\n const state = this.state;\n state._active = true;\n state._preventScroll = true;\n state._delayed = false;\n this.compute(event);\n this.emit();\n }\n pointerMove(event) {\n const state = this.state;\n const config = this.config;\n if (!state._pointerActive) return;\n const id = pointerId(event);\n if (state._pointerId !== undefined && id !== state._pointerId) return;\n const _values = pointerValues(event);\n if (document.pointerLockElement === event.target) {\n state._delta = [event.movementX, event.movementY];\n } else {\n state._delta = V.sub(_values, state._values);\n this.computeValues(_values);\n }\n V.addTo(state._movement, state._delta);\n this.compute(event);\n if (state._delayed && state.intentional) {\n this.timeoutStore.remove('dragDelay');\n state.active = false;\n this.startPointerDrag(event);\n return;\n }\n if (config.preventScrollAxis && !state._preventScroll) {\n if (state.axis) {\n if (state.axis === config.preventScrollAxis || config.preventScrollAxis === 'xy') {\n state._active = false;\n this.clean();\n return;\n } else {\n this.timeoutStore.remove('startPointerDrag');\n this.startPointerDrag(event);\n return;\n }\n } else {\n return;\n }\n }\n this.emit();\n }\n pointerUp(event) {\n this.ctrl.setEventIds(event);\n try {\n if (this.config.pointerCapture && event.target.hasPointerCapture(event.pointerId)) {\n ;\n event.target.releasePointerCapture(event.pointerId);\n }\n } catch (_unused) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(`[@use-gesture]: If you see this message, it's likely that you're using an outdated version of \\`@react-three/fiber\\`. \\n\\nPlease upgrade to the latest version.`);\n }\n }\n const state = this.state;\n const config = this.config;\n if (!state._active || !state._pointerActive) return;\n const id = pointerId(event);\n if (state._pointerId !== undefined && id !== state._pointerId) return;\n this.state._pointerActive = false;\n this.setActive();\n this.compute(event);\n const [dx, dy] = state._distance;\n state.tap = dx <= config.tapsThreshold && dy <= config.tapsThreshold;\n if (state.tap && config.filterTaps) {\n state._force = true;\n } else {\n const [_dx, _dy] = state._delta;\n const [_mx, _my] = state._movement;\n const [svx, svy] = config.swipe.velocity;\n const [sx, sy] = config.swipe.distance;\n const sdt = config.swipe.duration;\n if (state.elapsedTime < sdt) {\n const _vx = Math.abs(_dx / state.timeDelta);\n const _vy = Math.abs(_dy / state.timeDelta);\n if (_vx > svx && Math.abs(_mx) > sx) state.swipe[0] = Math.sign(_dx);\n if (_vy > svy && Math.abs(_my) > sy) state.swipe[1] = Math.sign(_dy);\n }\n }\n this.emit();\n }\n pointerClick(event) {\n if (!this.state.tap && event.detail > 0) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n setupPointer(event) {\n const config = this.config;\n const device = config.device;\n if (process.env.NODE_ENV === 'development') {\n try {\n if (device === 'pointer' && config.preventScrollDelay === undefined) {\n const currentTarget = 'uv' in event ? event.sourceEvent.currentTarget : event.currentTarget;\n const style = window.getComputedStyle(currentTarget);\n if (style.touchAction === 'auto') {\n console.warn(`[@use-gesture]: The drag target has its \\`touch-action\\` style property set to \\`auto\\`. It is recommended to add \\`touch-action: 'none'\\` so that the drag gesture behaves correctly on touch-enabled devices. For more information read this: https://use-gesture.netlify.app/docs/extras/#touch-action.\\n\\nThis message will only show in development mode. It won't appear in production. If this is intended, you can ignore it.`, currentTarget);\n }\n }\n } catch (_unused2) {}\n }\n if (config.pointerLock) {\n event.currentTarget.requestPointerLock();\n }\n if (!config.pointerCapture) {\n this.eventStore.add(this.sharedConfig.window, device, 'change', this.pointerMove.bind(this));\n this.eventStore.add(this.sharedConfig.window, device, 'end', this.pointerUp.bind(this));\n this.eventStore.add(this.sharedConfig.window, device, 'cancel', this.pointerUp.bind(this));\n }\n }\n pointerClean() {\n if (this.config.pointerLock && document.pointerLockElement === this.state.currentTarget) {\n document.exitPointerLock();\n }\n }\n preventScroll(event) {\n if (this.state._preventScroll && event.cancelable) {\n event.preventDefault();\n }\n }\n setupScrollPrevention(event) {\n this.state._preventScroll = false;\n persistEvent(event);\n const remove = this.eventStore.add(this.sharedConfig.window, 'touch', 'change', this.preventScroll.bind(this), {\n passive: false\n });\n this.eventStore.add(this.sharedConfig.window, 'touch', 'end', remove);\n this.eventStore.add(this.sharedConfig.window, 'touch', 'cancel', remove);\n this.timeoutStore.add('startPointerDrag', this.startPointerDrag.bind(this), this.config.preventScrollDelay, event);\n }\n setupDelayTrigger(event) {\n this.state._delayed = true;\n this.timeoutStore.add('dragDelay', () => {\n this.state._step = [0, 0];\n this.startPointerDrag(event);\n }, this.config.delay);\n }\n keyDown(event) {\n const deltaFn = KEYS_DELTA_MAP[event.key];\n if (deltaFn) {\n const state = this.state;\n const factor = event.shiftKey ? 10 : event.altKey ? 0.1 : 1;\n this.start(event);\n state._delta = deltaFn(this.config.keyboardDisplacement, factor);\n state._keyboardActive = true;\n V.addTo(state._movement, state._delta);\n this.compute(event);\n this.emit();\n }\n }\n keyUp(event) {\n if (!(event.key in KEYS_DELTA_MAP)) return;\n this.state._keyboardActive = false;\n this.setActive();\n this.compute(event);\n this.emit();\n }\n bind(bindFunction) {\n const device = this.config.device;\n bindFunction(device, 'start', this.pointerDown.bind(this));\n if (this.config.pointerCapture) {\n bindFunction(device, 'change', this.pointerMove.bind(this));\n bindFunction(device, 'end', this.pointerUp.bind(this));\n bindFunction(device, 'cancel', this.pointerUp.bind(this));\n bindFunction('lostPointerCapture', '', this.pointerUp.bind(this));\n }\n if (this.config.keys) {\n bindFunction('key', 'down', this.keyDown.bind(this));\n bindFunction('key', 'up', this.keyUp.bind(this));\n }\n if (this.config.filterTaps) {\n bindFunction('click', '', this.pointerClick.bind(this), {\n capture: true,\n passive: false\n });\n }\n }\n}\nfunction persistEvent(event) {\n 'persist' in event && typeof event.persist === 'function' && event.persist();\n}\n\nconst isBrowser = typeof window !== 'undefined' && window.document && window.document.createElement;\nfunction supportsTouchEvents() {\n return isBrowser && 'ontouchstart' in window;\n}\nfunction isTouchScreen() {\n return supportsTouchEvents() || isBrowser && window.navigator.maxTouchPoints > 1;\n}\nfunction supportsPointerEvents() {\n return isBrowser && 'onpointerdown' in window;\n}\nfunction supportsPointerLock() {\n return isBrowser && 'exitPointerLock' in window.document;\n}\nfunction supportsGestureEvents() {\n try {\n return 'constructor' in GestureEvent;\n } catch (e) {\n return false;\n }\n}\nconst SUPPORT = {\n isBrowser,\n gesture: supportsGestureEvents(),\n touch: supportsTouchEvents(),\n touchscreen: isTouchScreen(),\n pointer: supportsPointerEvents(),\n pointerLock: supportsPointerLock()\n};\n\nconst DEFAULT_PREVENT_SCROLL_DELAY = 250;\nconst DEFAULT_DRAG_DELAY = 180;\nconst DEFAULT_SWIPE_VELOCITY = 0.5;\nconst DEFAULT_SWIPE_DISTANCE = 50;\nconst DEFAULT_SWIPE_DURATION = 250;\nconst DEFAULT_KEYBOARD_DISPLACEMENT = 10;\nconst DEFAULT_DRAG_AXIS_THRESHOLD = {\n mouse: 0,\n touch: 0,\n pen: 8\n};\nconst dragConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n device(_v, _k, {\n pointer: {\n touch = false,\n lock = false,\n mouse = false\n } = {}\n }) {\n this.pointerLock = lock && SUPPORT.pointerLock;\n if (SUPPORT.touch && touch) return 'touch';\n if (this.pointerLock) return 'mouse';\n if (SUPPORT.pointer && !mouse) return 'pointer';\n if (SUPPORT.touch) return 'touch';\n return 'mouse';\n },\n preventScrollAxis(value, _k, {\n preventScroll\n }) {\n this.preventScrollDelay = typeof preventScroll === 'number' ? preventScroll : preventScroll || preventScroll === undefined && value ? DEFAULT_PREVENT_SCROLL_DELAY : undefined;\n if (!SUPPORT.touchscreen || preventScroll === false) return undefined;\n return value ? value : preventScroll !== undefined ? 'y' : undefined;\n },\n pointerCapture(_v, _k, {\n pointer: {\n capture = true,\n buttons = 1,\n keys = true\n } = {}\n }) {\n this.pointerButtons = buttons;\n this.keys = keys;\n return !this.pointerLock && this.device === 'pointer' && capture;\n },\n threshold(value, _k, {\n filterTaps = false,\n tapsThreshold = 3,\n axis = undefined\n }) {\n const threshold = V.toVector(value, filterTaps ? tapsThreshold : axis ? 1 : 0);\n this.filterTaps = filterTaps;\n this.tapsThreshold = tapsThreshold;\n return threshold;\n },\n swipe({\n velocity = DEFAULT_SWIPE_VELOCITY,\n distance = DEFAULT_SWIPE_DISTANCE,\n duration = DEFAULT_SWIPE_DURATION\n } = {}) {\n return {\n velocity: this.transform(V.toVector(velocity)),\n distance: this.transform(V.toVector(distance)),\n duration\n };\n },\n delay(value = 0) {\n switch (value) {\n case true:\n return DEFAULT_DRAG_DELAY;\n case false:\n return 0;\n default:\n return value;\n }\n },\n axisThreshold(value) {\n if (!value) return DEFAULT_DRAG_AXIS_THRESHOLD;\n return _objectSpread2(_objectSpread2({}, DEFAULT_DRAG_AXIS_THRESHOLD), value);\n },\n keyboardDisplacement(value = DEFAULT_KEYBOARD_DISPLACEMENT) {\n return value;\n }\n});\nif (process.env.NODE_ENV === 'development') {\n Object.assign(dragConfigResolver, {\n useTouch(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`useTouch\\` option has been renamed to \\`pointer.touch\\`. Use it as in \\`{ pointer: { touch: true } }\\`.`);\n }\n return NaN;\n },\n experimental_preventWindowScrollY(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`experimental_preventWindowScrollY\\` option has been renamed to \\`preventScroll\\`.`);\n }\n return NaN;\n },\n swipeVelocity(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`swipeVelocity\\` option has been renamed to \\`swipe.velocity\\`. Use it as in \\`{ swipe: { velocity: 0.5 } }\\`.`);\n }\n return NaN;\n },\n swipeDistance(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`swipeDistance\\` option has been renamed to \\`swipe.distance\\`. Use it as in \\`{ swipe: { distance: 50 } }\\`.`);\n }\n return NaN;\n },\n swipeDuration(value) {\n if (value !== undefined) {\n throw Error(`[@use-gesture]: \\`swipeDuration\\` option has been renamed to \\`swipe.duration\\`. Use it as in \\`{ swipe: { duration: 250 } }\\`.`);\n }\n return NaN;\n }\n });\n}\n\nfunction clampStateInternalMovementToBounds(state) {\n const [ox, oy] = state.overflow;\n const [dx, dy] = state._delta;\n const [dirx, diry] = state._direction;\n if (ox < 0 && dx > 0 && dirx < 0 || ox > 0 && dx < 0 && dirx > 0) {\n state._movement[0] = state._movementBound[0];\n }\n if (oy < 0 && dy > 0 && diry < 0 || oy > 0 && dy < 0 && diry > 0) {\n state._movement[1] = state._movementBound[1];\n }\n}\n\nconst SCALE_ANGLE_RATIO_INTENT_DEG = 30;\nconst PINCH_WHEEL_RATIO = 100;\nclass PinchEngine extends Engine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'pinching');\n _defineProperty(this, \"aliasKey\", 'da');\n }\n init() {\n this.state.offset = [1, 0];\n this.state.lastOffset = [1, 0];\n this.state._pointerEvents = new Map();\n }\n reset() {\n super.reset();\n const state = this.state;\n state._touchIds = [];\n state.canceled = false;\n state.cancel = this.cancel.bind(this);\n state.turns = 0;\n }\n computeOffset() {\n const {\n type,\n movement,\n lastOffset\n } = this.state;\n if (type === 'wheel') {\n this.state.offset = V.add(movement, lastOffset);\n } else {\n this.state.offset = [(1 + movement[0]) * lastOffset[0], movement[1] + lastOffset[1]];\n }\n }\n computeMovement() {\n const {\n offset,\n lastOffset\n } = this.state;\n this.state.movement = [offset[0] / lastOffset[0], offset[1] - lastOffset[1]];\n }\n axisIntent() {\n const state = this.state;\n const [_m0, _m1] = state._movement;\n if (!state.axis) {\n const axisMovementDifference = Math.abs(_m0) * SCALE_ANGLE_RATIO_INTENT_DEG - Math.abs(_m1);\n if (axisMovementDifference < 0) state.axis = 'angle';else if (axisMovementDifference > 0) state.axis = 'scale';\n }\n }\n restrictToAxis(v) {\n if (this.config.lockDirection) {\n if (this.state.axis === 'scale') v[1] = 0;else if (this.state.axis === 'angle') v[0] = 0;\n }\n }\n cancel() {\n const state = this.state;\n if (state.canceled) return;\n setTimeout(() => {\n state.canceled = true;\n state._active = false;\n this.compute();\n this.emit();\n }, 0);\n }\n touchStart(event) {\n this.ctrl.setEventIds(event);\n const state = this.state;\n const ctrlTouchIds = this.ctrl.touchIds;\n if (state._active) {\n if (state._touchIds.every(id => ctrlTouchIds.has(id))) return;\n }\n if (ctrlTouchIds.size < 2) return;\n this.start(event);\n state._touchIds = Array.from(ctrlTouchIds).slice(0, 2);\n const payload = touchDistanceAngle(event, state._touchIds);\n if (!payload) return;\n this.pinchStart(event, payload);\n }\n pointerStart(event) {\n if (event.buttons != null && event.buttons % 2 !== 1) return;\n this.ctrl.setEventIds(event);\n event.target.setPointerCapture(event.pointerId);\n const state = this.state;\n const _pointerEvents = state._pointerEvents;\n const ctrlPointerIds = this.ctrl.pointerIds;\n if (state._active) {\n if (Array.from(_pointerEvents.keys()).every(id => ctrlPointerIds.has(id))) return;\n }\n if (_pointerEvents.size < 2) {\n _pointerEvents.set(event.pointerId, event);\n }\n if (state._pointerEvents.size < 2) return;\n this.start(event);\n const payload = distanceAngle(...Array.from(_pointerEvents.values()));\n if (!payload) return;\n this.pinchStart(event, payload);\n }\n pinchStart(event, payload) {\n const state = this.state;\n state.origin = payload.origin;\n this.computeValues([payload.distance, payload.angle]);\n this.computeInitial();\n this.compute(event);\n this.emit();\n }\n touchMove(event) {\n if (!this.state._active) return;\n const payload = touchDistanceAngle(event, this.state._touchIds);\n if (!payload) return;\n this.pinchMove(event, payload);\n }\n pointerMove(event) {\n const _pointerEvents = this.state._pointerEvents;\n if (_pointerEvents.has(event.pointerId)) {\n _pointerEvents.set(event.pointerId, event);\n }\n if (!this.state._active) return;\n const payload = distanceAngle(...Array.from(_pointerEvents.values()));\n if (!payload) return;\n this.pinchMove(event, payload);\n }\n pinchMove(event, payload) {\n const state = this.state;\n const prev_a = state._values[1];\n const delta_a = payload.angle - prev_a;\n let delta_turns = 0;\n if (Math.abs(delta_a) > 270) delta_turns += Math.sign(delta_a);\n this.computeValues([payload.distance, payload.angle - 360 * delta_turns]);\n state.origin = payload.origin;\n state.turns = delta_turns;\n state._movement = [state._values[0] / state._initial[0] - 1, state._values[1] - state._initial[1]];\n this.compute(event);\n this.emit();\n }\n touchEnd(event) {\n this.ctrl.setEventIds(event);\n if (!this.state._active) return;\n if (this.state._touchIds.some(id => !this.ctrl.touchIds.has(id))) {\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n }\n pointerEnd(event) {\n const state = this.state;\n this.ctrl.setEventIds(event);\n try {\n event.target.releasePointerCapture(event.pointerId);\n } catch (_unused) {}\n if (state._pointerEvents.has(event.pointerId)) {\n state._pointerEvents.delete(event.pointerId);\n }\n if (!state._active) return;\n if (state._pointerEvents.size < 2) {\n state._active = false;\n this.compute(event);\n this.emit();\n }\n }\n gestureStart(event) {\n if (event.cancelable) event.preventDefault();\n const state = this.state;\n if (state._active) return;\n this.start(event);\n this.computeValues([event.scale, event.rotation]);\n state.origin = [event.clientX, event.clientY];\n this.compute(event);\n this.emit();\n }\n gestureMove(event) {\n if (event.cancelable) event.preventDefault();\n if (!this.state._active) return;\n const state = this.state;\n this.computeValues([event.scale, event.rotation]);\n state.origin = [event.clientX, event.clientY];\n const _previousMovement = state._movement;\n state._movement = [event.scale - 1, event.rotation];\n state._delta = V.sub(state._movement, _previousMovement);\n this.compute(event);\n this.emit();\n }\n gestureEnd(event) {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n wheel(event) {\n const modifierKey = this.config.modifierKey;\n if (modifierKey && (Array.isArray(modifierKey) ? !modifierKey.find(k => event[k]) : !event[modifierKey])) return;\n if (!this.state._active) this.wheelStart(event);else this.wheelChange(event);\n this.timeoutStore.add('wheelEnd', this.wheelEnd.bind(this));\n }\n wheelStart(event) {\n this.start(event);\n this.wheelChange(event);\n }\n wheelChange(event) {\n const isR3f = ('uv' in event);\n if (!isR3f) {\n if (event.cancelable) {\n event.preventDefault();\n }\n if (process.env.NODE_ENV === 'development' && !event.defaultPrevented) {\n console.warn(`[@use-gesture]: To properly support zoom on trackpads, try using the \\`target\\` option.\\n\\nThis message will only appear in development mode.`);\n }\n }\n const state = this.state;\n state._delta = [-wheelValues(event)[1] / PINCH_WHEEL_RATIO * state.offset[0], 0];\n V.addTo(state._movement, state._delta);\n clampStateInternalMovementToBounds(state);\n this.state.origin = [event.clientX, event.clientY];\n this.compute(event);\n this.emit();\n }\n wheelEnd() {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n const device = this.config.device;\n if (!!device) {\n bindFunction(device, 'start', this[device + 'Start'].bind(this));\n bindFunction(device, 'change', this[device + 'Move'].bind(this));\n bindFunction(device, 'end', this[device + 'End'].bind(this));\n bindFunction(device, 'cancel', this[device + 'End'].bind(this));\n bindFunction('lostPointerCapture', '', this[device + 'End'].bind(this));\n }\n if (this.config.pinchOnWheel) {\n bindFunction('wheel', '', this.wheel.bind(this), {\n passive: false\n });\n }\n }\n}\n\nconst pinchConfigResolver = _objectSpread2(_objectSpread2({}, commonConfigResolver), {}, {\n device(_v, _k, {\n shared,\n pointer: {\n touch = false\n } = {}\n }) {\n const sharedConfig = shared;\n if (sharedConfig.target && !SUPPORT.touch && SUPPORT.gesture) return 'gesture';\n if (SUPPORT.touch && touch) return 'touch';\n if (SUPPORT.touchscreen) {\n if (SUPPORT.pointer) return 'pointer';\n if (SUPPORT.touch) return 'touch';\n }\n },\n bounds(_v, _k, {\n scaleBounds = {},\n angleBounds = {}\n }) {\n const _scaleBounds = state => {\n const D = assignDefault(call(scaleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [D.min, D.max];\n };\n const _angleBounds = state => {\n const A = assignDefault(call(angleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [A.min, A.max];\n };\n if (typeof scaleBounds !== 'function' && typeof angleBounds !== 'function') return [_scaleBounds(), _angleBounds()];\n return state => [_scaleBounds(state), _angleBounds(state)];\n },\n threshold(value, _k, config) {\n this.lockDirection = config.axis === 'lock';\n const threshold = V.toVector(value, this.lockDirection ? [0.1, 3] : 0);\n return threshold;\n },\n modifierKey(value) {\n if (value === undefined) return 'ctrlKey';\n return value;\n },\n pinchOnWheel(value = true) {\n return value;\n }\n});\n\nclass MoveEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'moving');\n }\n move(event) {\n if (this.config.mouseOnly && event.pointerType !== 'mouse') return;\n if (!this.state._active) this.moveStart(event);else this.moveChange(event);\n this.timeoutStore.add('moveEnd', this.moveEnd.bind(this));\n }\n moveStart(event) {\n this.start(event);\n this.computeValues(pointerValues(event));\n this.compute(event);\n this.computeInitial();\n this.emit();\n }\n moveChange(event) {\n if (!this.state._active) return;\n const values = pointerValues(event);\n const state = this.state;\n state._delta = V.sub(values, state._values);\n V.addTo(state._movement, state._delta);\n this.computeValues(values);\n this.compute(event);\n this.emit();\n }\n moveEnd(event) {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute(event);\n this.emit();\n }\n bind(bindFunction) {\n bindFunction('pointer', 'change', this.move.bind(this));\n bindFunction('pointer', 'leave', this.moveEnd.bind(this));\n }\n}\n\nconst moveConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n mouseOnly: (value = true) => value\n});\n\nclass ScrollEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'scrolling');\n }\n scroll(event) {\n if (!this.state._active) this.start(event);\n this.scrollChange(event);\n this.timeoutStore.add('scrollEnd', this.scrollEnd.bind(this));\n }\n scrollChange(event) {\n if (event.cancelable) event.preventDefault();\n const state = this.state;\n const values = scrollValues(event);\n state._delta = V.sub(values, state._values);\n V.addTo(state._movement, state._delta);\n this.computeValues(values);\n this.compute(event);\n this.emit();\n }\n scrollEnd() {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n bindFunction('scroll', '', this.scroll.bind(this));\n }\n}\n\nconst scrollConfigResolver = coordinatesConfigResolver;\n\nclass WheelEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'wheeling');\n }\n wheel(event) {\n if (!this.state._active) this.start(event);\n this.wheelChange(event);\n this.timeoutStore.add('wheelEnd', this.wheelEnd.bind(this));\n }\n wheelChange(event) {\n const state = this.state;\n state._delta = wheelValues(event);\n V.addTo(state._movement, state._delta);\n clampStateInternalMovementToBounds(state);\n this.compute(event);\n this.emit();\n }\n wheelEnd() {\n if (!this.state._active) return;\n this.state._active = false;\n this.compute();\n this.emit();\n }\n bind(bindFunction) {\n bindFunction('wheel', '', this.wheel.bind(this));\n }\n}\n\nconst wheelConfigResolver = coordinatesConfigResolver;\n\nclass HoverEngine extends CoordinatesEngine {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"ingKey\", 'hovering');\n }\n enter(event) {\n if (this.config.mouseOnly && event.pointerType !== 'mouse') return;\n this.start(event);\n this.computeValues(pointerValues(event));\n this.compute(event);\n this.emit();\n }\n leave(event) {\n if (this.config.mouseOnly && event.pointerType !== 'mouse') return;\n const state = this.state;\n if (!state._active) return;\n state._active = false;\n const values = pointerValues(event);\n state._movement = state._delta = V.sub(values, state._values);\n this.computeValues(values);\n this.compute(event);\n state.delta = state.movement;\n this.emit();\n }\n bind(bindFunction) {\n bindFunction('pointer', 'enter', this.enter.bind(this));\n bindFunction('pointer', 'leave', this.leave.bind(this));\n }\n}\n\nconst hoverConfigResolver = _objectSpread2(_objectSpread2({}, coordinatesConfigResolver), {}, {\n mouseOnly: (value = true) => value\n});\n\nconst EngineMap = new Map();\nconst ConfigResolverMap = new Map();\nfunction registerAction(action) {\n EngineMap.set(action.key, action.engine);\n ConfigResolverMap.set(action.key, action.resolver);\n}\nconst dragAction = {\n key: 'drag',\n engine: DragEngine,\n resolver: dragConfigResolver\n};\nconst hoverAction = {\n key: 'hover',\n engine: HoverEngine,\n resolver: hoverConfigResolver\n};\nconst moveAction = {\n key: 'move',\n engine: MoveEngine,\n resolver: moveConfigResolver\n};\nconst pinchAction = {\n key: 'pinch',\n engine: PinchEngine,\n resolver: pinchConfigResolver\n};\nconst scrollAction = {\n key: 'scroll',\n engine: ScrollEngine,\n resolver: scrollConfigResolver\n};\nconst wheelAction = {\n key: 'wheel',\n engine: WheelEngine,\n resolver: wheelConfigResolver\n};\n\nexport { ConfigResolverMap as C, EngineMap as E, SUPPORT as S, _objectSpread2 as _, _defineProperty as a, touchIds as b, chain as c, toHandlerProp as d, dragAction as e, pinchAction as f, hoverAction as h, isTouch as i, moveAction as m, parseProp as p, registerAction as r, scrollAction as s, toDomEventType as t, wheelAction as w };\n","import { S as SUPPORT, C as ConfigResolverMap, _ as _objectSpread2, a as _defineProperty, t as toDomEventType, i as isTouch, b as touchIds, E as EngineMap, c as chain, p as parseProp, d as toHandlerProp } from './actions-fe213e88.esm.js';\nimport './maths-0ab39ae9.esm.js';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\n\nconst sharedConfigResolver = {\n target(value) {\n if (value) {\n return () => 'current' in value ? value.current : value;\n }\n return undefined;\n },\n enabled(value = true) {\n return value;\n },\n window(value = SUPPORT.isBrowser ? window : undefined) {\n return value;\n },\n eventOptions({\n passive = true,\n capture = false\n } = {}) {\n return {\n passive,\n capture\n };\n },\n transform(value) {\n return value;\n }\n};\n\nconst _excluded = [\"target\", \"eventOptions\", \"window\", \"enabled\", \"transform\"];\nfunction resolveWith(config = {}, resolvers) {\n const result = {};\n for (const [key, resolver] of Object.entries(resolvers)) {\n switch (typeof resolver) {\n case 'function':\n if (process.env.NODE_ENV === 'development') {\n const r = resolver.call(result, config[key], key, config);\n if (!Number.isNaN(r)) result[key] = r;\n } else {\n result[key] = resolver.call(result, config[key], key, config);\n }\n break;\n case 'object':\n result[key] = resolveWith(config[key], resolver);\n break;\n case 'boolean':\n if (resolver) result[key] = config[key];\n break;\n }\n }\n return result;\n}\nfunction parse(newConfig, gestureKey, _config = {}) {\n const _ref = newConfig,\n {\n target,\n eventOptions,\n window,\n enabled,\n transform\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n _config.shared = resolveWith({\n target,\n eventOptions,\n window,\n enabled,\n transform\n }, sharedConfigResolver);\n if (gestureKey) {\n const resolver = ConfigResolverMap.get(gestureKey);\n _config[gestureKey] = resolveWith(_objectSpread2({\n shared: _config.shared\n }, rest), resolver);\n } else {\n for (const key in rest) {\n const resolver = ConfigResolverMap.get(key);\n if (resolver) {\n _config[key] = resolveWith(_objectSpread2({\n shared: _config.shared\n }, rest[key]), resolver);\n } else if (process.env.NODE_ENV === 'development') {\n if (!['drag', 'pinch', 'scroll', 'wheel', 'move', 'hover'].includes(key)) {\n if (key === 'domTarget') {\n throw Error(`[@use-gesture]: \\`domTarget\\` option has been renamed to \\`target\\`.`);\n }\n console.warn(`[@use-gesture]: Unknown config key \\`${key}\\` was used. Please read the documentation for further information.`);\n }\n }\n }\n }\n return _config;\n}\n\nclass EventStore {\n constructor(ctrl, gestureKey) {\n _defineProperty(this, \"_listeners\", new Set());\n this._ctrl = ctrl;\n this._gestureKey = gestureKey;\n }\n add(element, device, action, handler, options) {\n const listeners = this._listeners;\n const type = toDomEventType(device, action);\n const _options = this._gestureKey ? this._ctrl.config[this._gestureKey].eventOptions : {};\n const eventOptions = _objectSpread2(_objectSpread2({}, _options), options);\n element.addEventListener(type, handler, eventOptions);\n const remove = () => {\n element.removeEventListener(type, handler, eventOptions);\n listeners.delete(remove);\n };\n listeners.add(remove);\n return remove;\n }\n clean() {\n this._listeners.forEach(remove => remove());\n this._listeners.clear();\n }\n}\n\nclass TimeoutStore {\n constructor() {\n _defineProperty(this, \"_timeouts\", new Map());\n }\n add(key, callback, ms = 140, ...args) {\n this.remove(key);\n this._timeouts.set(key, window.setTimeout(callback, ms, ...args));\n }\n remove(key) {\n const timeout = this._timeouts.get(key);\n if (timeout) window.clearTimeout(timeout);\n }\n clean() {\n this._timeouts.forEach(timeout => void window.clearTimeout(timeout));\n this._timeouts.clear();\n }\n}\n\nclass Controller {\n constructor(handlers) {\n _defineProperty(this, \"gestures\", new Set());\n _defineProperty(this, \"_targetEventStore\", new EventStore(this));\n _defineProperty(this, \"gestureEventStores\", {});\n _defineProperty(this, \"gestureTimeoutStores\", {});\n _defineProperty(this, \"handlers\", {});\n _defineProperty(this, \"config\", {});\n _defineProperty(this, \"pointerIds\", new Set());\n _defineProperty(this, \"touchIds\", new Set());\n _defineProperty(this, \"state\", {\n shared: {\n shiftKey: false,\n metaKey: false,\n ctrlKey: false,\n altKey: false\n }\n });\n resolveGestures(this, handlers);\n }\n setEventIds(event) {\n if (isTouch(event)) {\n this.touchIds = new Set(touchIds(event));\n return this.touchIds;\n } else if ('pointerId' in event) {\n if (event.type === 'pointerup' || event.type === 'pointercancel') this.pointerIds.delete(event.pointerId);else if (event.type === 'pointerdown') this.pointerIds.add(event.pointerId);\n return this.pointerIds;\n }\n }\n applyHandlers(handlers, nativeHandlers) {\n this.handlers = handlers;\n this.nativeHandlers = nativeHandlers;\n }\n applyConfig(config, gestureKey) {\n this.config = parse(config, gestureKey, this.config);\n }\n clean() {\n this._targetEventStore.clean();\n for (const key of this.gestures) {\n this.gestureEventStores[key].clean();\n this.gestureTimeoutStores[key].clean();\n }\n }\n effect() {\n if (this.config.shared.target) this.bind();\n return () => this._targetEventStore.clean();\n }\n bind(...args) {\n const sharedConfig = this.config.shared;\n const props = {};\n let target;\n if (sharedConfig.target) {\n target = sharedConfig.target();\n if (!target) return;\n }\n if (sharedConfig.enabled) {\n for (const gestureKey of this.gestures) {\n const gestureConfig = this.config[gestureKey];\n const bindFunction = bindToProps(props, gestureConfig.eventOptions, !!target);\n if (gestureConfig.enabled) {\n const Engine = EngineMap.get(gestureKey);\n new Engine(this, args, gestureKey).bind(bindFunction);\n }\n }\n const nativeBindFunction = bindToProps(props, sharedConfig.eventOptions, !!target);\n for (const eventKey in this.nativeHandlers) {\n nativeBindFunction(eventKey, '', event => this.nativeHandlers[eventKey](_objectSpread2(_objectSpread2({}, this.state.shared), {}, {\n event,\n args\n })), undefined, true);\n }\n }\n for (const handlerProp in props) {\n props[handlerProp] = chain(...props[handlerProp]);\n }\n if (!target) return props;\n for (const handlerProp in props) {\n const {\n device,\n capture,\n passive\n } = parseProp(handlerProp);\n this._targetEventStore.add(target, device, '', props[handlerProp], {\n capture,\n passive\n });\n }\n }\n}\nfunction setupGesture(ctrl, gestureKey) {\n ctrl.gestures.add(gestureKey);\n ctrl.gestureEventStores[gestureKey] = new EventStore(ctrl, gestureKey);\n ctrl.gestureTimeoutStores[gestureKey] = new TimeoutStore();\n}\nfunction resolveGestures(ctrl, internalHandlers) {\n if (internalHandlers.drag) setupGesture(ctrl, 'drag');\n if (internalHandlers.wheel) setupGesture(ctrl, 'wheel');\n if (internalHandlers.scroll) setupGesture(ctrl, 'scroll');\n if (internalHandlers.move) setupGesture(ctrl, 'move');\n if (internalHandlers.pinch) setupGesture(ctrl, 'pinch');\n if (internalHandlers.hover) setupGesture(ctrl, 'hover');\n}\nconst bindToProps = (props, eventOptions, withPassiveOption) => (device, action, handler, options = {}, isNative = false) => {\n var _options$capture, _options$passive;\n const capture = (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : eventOptions.capture;\n const passive = (_options$passive = options.passive) !== null && _options$passive !== void 0 ? _options$passive : eventOptions.passive;\n let handlerProp = isNative ? device : toHandlerProp(device, action, capture);\n if (withPassiveOption && passive) handlerProp += 'Passive';\n props[handlerProp] = props[handlerProp] || [];\n props[handlerProp].push(handler);\n};\n\nconst RE_NOT_NATIVE = /^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;\nfunction sortHandlers(_handlers) {\n const native = {};\n const handlers = {};\n const actions = new Set();\n for (let key in _handlers) {\n if (RE_NOT_NATIVE.test(key)) {\n actions.add(RegExp.lastMatch);\n handlers[key] = _handlers[key];\n } else {\n native[key] = _handlers[key];\n }\n }\n return [handlers, native, actions];\n}\nfunction registerGesture(actions, handlers, handlerKey, key, internalHandlers, config) {\n if (!actions.has(handlerKey)) return;\n if (!EngineMap.has(key)) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(`[@use-gesture]: You've created a custom handler that that uses the \\`${key}\\` gesture but isn't properly configured.\\n\\nPlease add \\`${key}Action\\` when creating your handler.`);\n }\n return;\n }\n const startKey = handlerKey + 'Start';\n const endKey = handlerKey + 'End';\n const fn = state => {\n let memo = undefined;\n if (state.first && startKey in handlers) handlers[startKey](state);\n if (handlerKey in handlers) memo = handlers[handlerKey](state);\n if (state.last && endKey in handlers) handlers[endKey](state);\n return memo;\n };\n internalHandlers[key] = fn;\n config[key] = config[key] || {};\n}\nfunction parseMergedHandlers(mergedHandlers, mergedConfig) {\n const [handlers, nativeHandlers, actions] = sortHandlers(mergedHandlers);\n const internalHandlers = {};\n registerGesture(actions, handlers, 'onDrag', 'drag', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onWheel', 'wheel', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onScroll', 'scroll', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onPinch', 'pinch', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onMove', 'move', internalHandlers, mergedConfig);\n registerGesture(actions, handlers, 'onHover', 'hover', internalHandlers, mergedConfig);\n return {\n handlers: internalHandlers,\n config: mergedConfig,\n nativeHandlers\n };\n}\n\nexport { Controller, parseMergedHandlers };\n","import { registerAction, dragAction, pinchAction, wheelAction, scrollAction, moveAction, hoverAction } from '@use-gesture/core/actions';\nexport * from '@use-gesture/core/actions';\nimport React from 'react';\nimport { Controller, parseMergedHandlers } from '@use-gesture/core';\nexport * from '@use-gesture/core/utils';\nexport * from '@use-gesture/core/types';\n\nfunction useRecognizers(handlers, config = {}, gestureKey, nativeHandlers) {\n const ctrl = React.useMemo(() => new Controller(handlers), []);\n ctrl.applyHandlers(handlers, nativeHandlers);\n ctrl.applyConfig(config, gestureKey);\n React.useEffect(ctrl.effect.bind(ctrl));\n React.useEffect(() => {\n return ctrl.clean.bind(ctrl);\n }, []);\n if (config.target === undefined) {\n return ctrl.bind.bind(ctrl);\n }\n return undefined;\n}\n\nfunction useDrag(handler, config) {\n registerAction(dragAction);\n return useRecognizers({\n drag: handler\n }, config || {}, 'drag');\n}\n\nfunction usePinch(handler, config) {\n registerAction(pinchAction);\n return useRecognizers({\n pinch: handler\n }, config || {}, 'pinch');\n}\n\nfunction useWheel(handler, config) {\n registerAction(wheelAction);\n return useRecognizers({\n wheel: handler\n }, config || {}, 'wheel');\n}\n\nfunction useScroll(handler, config) {\n registerAction(scrollAction);\n return useRecognizers({\n scroll: handler\n }, config || {}, 'scroll');\n}\n\nfunction useMove(handler, config) {\n registerAction(moveAction);\n return useRecognizers({\n move: handler\n }, config || {}, 'move');\n}\n\nfunction useHover(handler, config) {\n registerAction(hoverAction);\n return useRecognizers({\n hover: handler\n }, config || {}, 'hover');\n}\n\nfunction createUseGesture(actions) {\n actions.forEach(registerAction);\n return function useGesture(_handlers, _config) {\n const {\n handlers,\n nativeHandlers,\n config\n } = parseMergedHandlers(_handlers, _config || {});\n return useRecognizers(handlers, config, undefined, nativeHandlers);\n };\n}\n\nfunction useGesture(handlers, config) {\n const hook = createUseGesture([dragAction, pinchAction, scrollAction, wheelAction, moveAction, hoverAction]);\n return hook(handlers, config || {});\n}\n\nexport { createUseGesture, useDrag, useGesture, useHover, useMove, usePinch, useScroll, useWheel };\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return /* @__PURE__ */ __name(function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n }, \"handleEvent\");\n}\n__name(composeEventHandlers, \"composeEventHandlers\");\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}\n__name(getOwnerWindow, \"getOwnerWindow\");\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\n__name(getOwnerDocument, \"getOwnerDocument\");\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}\n__name(getActiveElement, \"getActiveElement\");\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\n__name(isFrame, \"isFrame\");\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n Context.displayName = rootComponentName + \"Context\";\n const Provider = /* @__PURE__ */ __name((props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n }, \"Provider\");\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, options = {}) {\n const { optional = false } = options;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n __name(useContext2, \"useContext\");\n return [Provider, useContext2];\n}\n__name(createContext2, \"createContext\");\n// @__NO_SIDE_EFFECTS__\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n BaseContext.displayName = rootComponentName + \"Context\";\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = /* @__PURE__ */ __name((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 }, \"Provider\");\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope, options = {}) {\n const { optional = false } = options;\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 if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n __name(useContext2, \"useContext\");\n return [Provider, useContext2];\n }\n __name(createContext3, \"createContext\");\n const createScope = /* @__PURE__ */ __name(() => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return /* @__PURE__ */ __name(function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n }, \"useScope\");\n }, \"createScope\");\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\n__name(createContextScope, \"createContextScope\");\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = /* @__PURE__ */ __name(() => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return /* @__PURE__ */ __name(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 }, \"useComposedScopes\");\n }, \"createScope\");\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n__name(composeContextScopes, \"composeContextScopes\");\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-callback-ref.tsx\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport * as React from \"react\";\nvar useReactInsertionEffect = React[\" useInsertionEffect \".trim().toString()];\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n if (typeof useReactInsertionEffect === \"function\") {\n useReactInsertionEffect(() => {\n callbackRef.current = callback;\n });\n } else {\n useLayoutEffect(() => {\n callbackRef.current = callback;\n });\n }\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)), []);\n}\n__name(useCallbackRef, \"useCallbackRef\");\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\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 { jsx } from \"react/jsx-runtime\";\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 // Outside elements that belong to a layer's own dismiss affordance (eg, a\n // dialog overlay). Pressing them should dismiss the layer regardless of\n // whether or not they stop propagation.\n //\n // See https://github.com/radix-ui/primitives/issues/3346\n dismissableSurfaces: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function DismissableLayer2(props, forwardedRef) {\n const {\n disableOutsidePointerEvents = false,\n deferPointerDownOutside = 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, setNode);\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = highestLayerWithOutsidePointerEventsDisabled ? layers.indexOf(highestLayerWithOutsidePointerEventsDisabled) : -1;\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const isDeferredPointerDownOutsideRef = React.useRef(false);\n const pointerDownOutside = usePointerDownOutside(\n (event) => {\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n },\n {\n ownerDocument,\n deferPointerDownOutside,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces: context.dismissableSurfaces,\n shouldHandlePointerDownOutside: React.useCallback(\n (target) => {\n if (!(target instanceof Node)) {\n return false;\n }\n const isPointerDownOnBranch = [...context.branches].some(\n (branch) => branch.contains(target)\n );\n return isPointerEventsEnabled && !isPointerDownOnBranch;\n },\n [context.branches, isPointerEventsEnabled]\n )\n }\n );\n const focusOutside = useFocusOutside((event) => {\n if (deferPointerDownOutside && isDeferredPointerDownOutsideRef.current) {\n return;\n }\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 const isHighestLayer = node ? index === layers.length - 1 : false;\n const handleKeyDown = useCallbackRef((event) => {\n if (event.key !== \"Escape\") {\n return;\n }\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n });\n React.useEffect(() => {\n if (!isHighestLayer) {\n return;\n }\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [ownerDocument, isHighestLayer, handleKeyDown]);\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) {\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\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 = /* @__PURE__ */ __name(() => force({}), \"handleUpdate\");\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 }, \"DismissableLayer\")\n);\nvar DismissableLayerBranch = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function DismissableLayerBranch2(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}, \"DismissableLayerBranch\"));\nfunction useDismissableLayerSurface() {\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n React.useEffect(() => {\n if (!node) {\n return;\n }\n context.dismissableSurfaces.add(node);\n return () => {\n context.dismissableSurfaces.delete(node);\n };\n }, [node, context.dismissableSurfaces]);\n return setNode;\n}\n__name(useDismissableLayerSurface, \"useDismissableLayerSurface\");\nvar IS_TRUE = /* @__PURE__ */ __name(() => true, \"IS_TRUE\");\nfunction usePointerDownOutside(onPointerDownOutside, args) {\n const {\n ownerDocument = globalThis?.document,\n deferPointerDownOutside = false,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces,\n shouldHandlePointerDownOutside = IS_TRUE\n } = args;\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const isPointerDownOutsideRef = React.useRef(false);\n const interceptedOutsideInteractionEventsRef = React.useRef(/* @__PURE__ */ new Map());\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n function resetOutsideInteraction() {\n isPointerDownOutsideRef.current = false;\n isDeferredPointerDownOutsideRef.current = false;\n interceptedOutsideInteractionEventsRef.current.clear();\n }\n __name(resetOutsideInteraction, \"resetOutsideInteraction\");\n function isOutsideInteractionIntercepted() {\n return Array.from(interceptedOutsideInteractionEventsRef.current.values()).some(Boolean);\n }\n __name(isOutsideInteractionIntercepted, \"isOutsideInteractionIntercepted\");\n function handleInteractionCapture(event) {\n if (!isPointerDownOutsideRef.current) {\n return;\n }\n const target = event.target;\n const isDismissableSurface = target instanceof Node && [...dismissableSurfaces].some((surface) => surface.contains(target));\n if (!isDismissableSurface) {\n interceptedOutsideInteractionEventsRef.current.set(event.type, true);\n }\n if (event.type === \"click\") {\n window.setTimeout(() => {\n if (isPointerDownOutsideRef.current) {\n handleClickRef.current();\n }\n }, 0);\n }\n }\n __name(handleInteractionCapture, \"handleInteractionCapture\");\n function handleInteractionBubble(event) {\n if (isPointerDownOutsideRef.current) {\n interceptedOutsideInteractionEventsRef.current.set(event.type, false);\n }\n }\n __name(handleInteractionBubble, \"handleInteractionBubble\");\n const handlePointerDown = /* @__PURE__ */ __name((event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n const wasOutsideInteractionIntercepted = isOutsideInteractionIntercepted();\n resetOutsideInteraction();\n if (!wasOutsideInteractionIntercepted) {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n }\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n __name(handleAndDispatchPointerDownOutsideEvent2, \"handleAndDispatchPointerDownOutsideEvent\");\n if (!shouldHandlePointerDownOutside(event.target)) {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n resetOutsideInteraction();\n isPointerInsideReactTreeRef.current = false;\n return;\n }\n const eventDetail = { originalEvent: event };\n isPointerDownOutsideRef.current = true;\n isDeferredPointerDownOutsideRef.current = deferPointerDownOutside && event.button === 0;\n interceptedOutsideInteractionEventsRef.current.clear();\n if (!deferPointerDownOutside || event.button !== 0) {\n handleAndDispatchPointerDownOutsideEvent2();\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n resetOutsideInteraction();\n }\n isPointerInsideReactTreeRef.current = false;\n }, \"handlePointerDown\");\n const outsideInteractionEvents = [\n \"pointerup\",\n \"mousedown\",\n \"mouseup\",\n \"touchstart\",\n \"touchend\",\n \"click\"\n ];\n for (const eventName of outsideInteractionEvents) {\n ownerDocument.addEventListener(eventName, handleInteractionCapture, true);\n ownerDocument.addEventListener(eventName, handleInteractionBubble);\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 for (const eventName of outsideInteractionEvents) {\n ownerDocument.removeEventListener(eventName, handleInteractionCapture, true);\n ownerDocument.removeEventListener(eventName, handleInteractionBubble);\n }\n };\n }, [\n ownerDocument,\n handlePointerDownOutside,\n deferPointerDownOutside,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces,\n shouldHandlePointerDownOutside\n ]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: /* @__PURE__ */ __name(() => isPointerInsideReactTreeRef.current = true, \"onPointerDownCapture\")\n };\n}\n__name(usePointerDownOutside, \"usePointerDownOutside\");\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = /* @__PURE__ */ __name((event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n }, \"handleFocus\");\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: /* @__PURE__ */ __name(() => isFocusInsideReactTreeRef.current = true, \"onFocusCapture\"),\n onBlurCapture: /* @__PURE__ */ __name(() => isFocusInsideReactTreeRef.current = false, \"onBlurCapture\")\n };\n}\n__name(useFocusOutside, \"useFocusOutside\");\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\n__name(dispatchUpdate, \"dispatchUpdate\");\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}\n__name(handleAndDispatchCustomEvent, \"handleAndDispatchCustomEvent\");\nexport {\n DismissableLayerBranch as Branch,\n DismissableLayer,\n DismissableLayerBranch,\n DismissableLayer as Root,\n useDismissableLayerSurface\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\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 FocusScope = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function FocusScope2(props, forwardedRef) {\n const {\n loop = false,\n trapped = false,\n branches,\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, setContainer);\n const branchesRef = React.useRef(branches);\n React.useEffect(() => {\n branchesRef.current = branches;\n });\n const isTargetInScope = React.useCallback(\n (target) => {\n if (!target) return false;\n if (container?.contains(target)) return true;\n return Boolean(branchesRef.current?.some((branch) => branch.contains(target)));\n },\n [container]\n );\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 (isTargetInScope(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 (!isTargetInScope(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 __name(handleFocusIn2, \"handleFocusIn\");\n __name(handleFocusOut2, \"handleFocusOut\");\n __name(handleMutations2, \"handleMutations\");\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, isTargetInScope]);\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 const ownerDocument = container.ownerDocument;\n const UnmountEvent = CustomEvent;\n setTimeout(() => {\n const unmountEvent = new UnmountEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? ownerDocument.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 }, \"FocusScope\")\n);\nvar FocusScopeBranchContext = React.createContext(null);\nfunction FocusScopeBranchProvider({ registry, children }) {\n if (!registry) {\n return children;\n }\n return /* @__PURE__ */ jsx(FocusScopeBranchContext.Provider, { value: registry, children });\n}\n__name(FocusScopeBranchProvider, \"FocusScopeBranchProvider\");\nfunction useFocusScopeBranchRegistry() {\n const [nodes, setNodes] = React.useState([]);\n const registry = React.useMemo(\n () => ({\n add: /* @__PURE__ */ __name((node) => setNodes((prev) => prev.includes(node) ? prev : [...prev, node]), \"add\"),\n remove: /* @__PURE__ */ __name((node) => setNodes((prev) => prev.filter((current) => current !== node)), \"remove\")\n }),\n []\n );\n return { nodes, registry };\n}\n__name(useFocusScopeBranchRegistry, \"useFocusScopeBranchRegistry\");\nfunction useFocusScopeBranch(node) {\n const registry = React.useContext(FocusScopeBranchContext);\n React.useEffect(() => {\n if (!node || !registry) return;\n registry.add(node);\n return () => registry.remove(node);\n }, [node, registry]);\n}\n__name(useFocusScopeBranch, \"useFocusScopeBranch\");\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}\n__name(focusFirst, \"focusFirst\");\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}\n__name(getTabbableEdges, \"getTabbableEdges\");\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const document2 = container.ownerDocument;\n const walker = document2.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: /* @__PURE__ */ __name((node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) {\n return NodeFilter.FILTER_SKIP;\n }\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }, \"acceptNode\")\n });\n while (walker.nextNode()) {\n nodes.push(walker.currentNode);\n }\n return nodes;\n}\n__name(getTabbableCandidates, \"getTabbableCandidates\");\nfunction findVisible(elements, container) {\n const canUseCheckVisibility = typeof container.checkVisibility === \"function\" && container.checkVisibility({ checkVisibilityCSS: true });\n for (const element of elements) {\n const hidden = canUseCheckVisibility ? !element.checkVisibility({ checkVisibilityCSS: true }) : isHidden(element, { upTo: container });\n if (!hidden) {\n return element;\n }\n }\n}\n__name(findVisible, \"findVisible\");\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}\n__name(isHidden, \"isHidden\");\nfunction isSelectableInput(element) {\n return element.tagName === \"INPUT\" && typeof element.select === \"function\";\n}\n__name(isSelectableInput, \"isSelectableInput\");\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const ownerDocument = element.ownerDocument ?? document;\n const previouslyFocusedElement = ownerDocument.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\n__name(focus, \"focus\");\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}\n__name(createFocusScopesStack, \"createFocusScopesStack\");\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}\n__name(arrayRemove, \"arrayRemove\");\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\n__name(removeLinks, \"removeLinks\");\nexport {\n FocusScope,\n FocusScopeBranchProvider,\n FocusScope as Root,\n useFocusScopeBranch,\n useFocusScopeBranchRegistry\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// 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}\n__name(useId, \"useId\");\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};\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}\nfunction getSideAxis(placement) {\n const firstChar = placement[0];\n return firstChar === 't' || firstChar === 'b' ? '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.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\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 const side = getSide(placement);\n return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n var _padding$top, _padding$right, _padding$bottom, _padding$left;\n return {\n top: (_padding$top = padding.top) != null ? _padding$top : 0,\n right: (_padding$right = padding.right) != null ? _padding$right : 0,\n bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,\n left: (_padding$left = padding.left) != null ? _padding$left : 0\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 const alignment = getAlignment(placement);\n if (alignment) {\n coords[alignmentAxis] += commonAlign * (alignment === 'end' ? 1 : -1) * (rtl && isVertical ? -1 : 1);\n }\n return coords;\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 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// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\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 platformWithDetectOverflow = platform.detectOverflow ? platform : {\n ...platform,\n detectOverflow\n };\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 resetCount = 0;\n const middlewareData = {};\n for (let i = 0; i < middleware.length; i++) {\n const currentMiddleware = middleware[i];\n if (!currentMiddleware) {\n continue;\n }\n const {\n name,\n fn\n } = currentMiddleware;\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: platformWithDetectOverflow,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData[name] = {\n ...middlewareData[name],\n ...data\n };\n if (reset && resetCount < MAX_RESET_COUNT) {\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 * 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 max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(minPadding, 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 < minPadding ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < minPadding ? center - minPadding : 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 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\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 overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\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 platform.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 platform\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await platform.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 platform.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\n // No rects (e.g. a hidden or detached reference, or a collapsed range) —\n // keep the existing reference rect rather than resetting to an invalid\n // one with non-finite values.\n if (!nativeClientRects.length) {\n return {};\n }\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 || clientRects[1].left > clientRects[0].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 return rectToClientRect({\n x: left,\n y: top,\n width: right - left,\n height: bottom - 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 return rectToClientRect({\n x: minLeft,\n y: top,\n width: maxRight - minLeft,\n height: bottom - 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 platform\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 platform.detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const clampCoord = (axis, coord) => clamp(coord + overflow[axis === 'y' ? 'top' : 'left'], coord, coord - overflow[axis === 'y' ? 'bottom' : 'right']);\n if (checkMainAxis) {\n mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);\n }\n if (checkCrossAxis) {\n crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);\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 var _rawOffset$mainAxis, _rawOffset$crossAxis;\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: (_rawOffset$mainAxis = rawOffset.mainAxis) != null ? _rawOffset$mainAxis : 0,\n crossAxis: (_rawOffset$crossAxis = rawOffset.crossAxis) != null ? _rawOffset$crossAxis : 0\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// Method syntax keeps callback parameters bivariant, but expressing the\n// explicit `| undefined` required by `exactOptionalPropertyTypes` needs\n// property syntax, which is contravariant under `strictFunctionTypes`.\n// Extracting the function from a method position restores that bivariance so\n// consumers can still assign callbacks with narrower parameter types.\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 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 platform.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 shiftData = state.middlewareData.shift;\n const noShift = !shiftData;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (shiftData != null && shiftData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if (shiftData != null && shiftData.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n if (isYAxis) {\n availableWidth = width - 2 * max(overflow.left, overflow.right);\n } else {\n availableHeight = height - 2 * 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}\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) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n try {\n if (element.matches(':popover-open')) {\n return true;\n }\n } catch (_e) {\n // no-op\n }\n try {\n return element.matches(':modal');\n } catch (_e) {\n return false;\n }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\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 isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\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 (isWebKitValue == null) {\n isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n }\n return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n return /^(html|body|#document)$/.test(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).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 } else {\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n }\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 return !!floatingOffsetParent && isFixed && floatingOffsetParent === getWindow(element);\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 && offsetParent) {\n const win = getWindow(domElement);\n const offsetWin = isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && 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 || !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\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 element.getClientRects ? 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(html) {\n const scroll = getNodeScroll(html);\n const body = html.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(html);\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, rootBoundary) {\n if (rootBoundary === void 0) {\n rootBoundary = 'viewport';\n }\n const isLayoutViewport = rootBoundary === 'layoutViewport';\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 // Client coordinates are relative to the layout viewport, except in\n // WebKit with an `absolute` strategy, where they are relative to the\n // visual viewport.\n const layoutRelativeClientCoords = !isWebKit() || strategy === 'fixed';\n if (isLayoutViewport) {\n if (!layoutRelativeClientCoords) {\n x = -visualViewport.offsetLeft;\n y = -visualViewport.offsetTop;\n }\n } else {\n width = visualViewport.width;\n height = visualViewport.height;\n if (layoutRelativeClientCoords) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // `scrollbar-gutter: stable` on the <html> reserves gutter space that shrinks\n // the visual width but isn't reflected in `html.clientWidth`, so subtract it.\n // Only the inline-end (right) gutter can hold the scrollbar; `both-edges` also\n // reserves an empty inline-start gutter that clips nothing, so exclude just\n // the one scrollbar-side gutter — halve the measured (two-gutter) total. A\n // left-side scrollbar (`windowScrollbarX > 0`) is already handled by\n // `getHTMLOffset`/`visualViewport.width`; skip it here.\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 reservedWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n const gutter = getComputedStyle(html).scrollbarGutter === 'stable both-edges' ? reservedWidth / 2 : reservedWidth;\n if (gutter <= SCROLLBAR_MAX) {\n width -= gutter;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\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 = getScale(element);\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' || clippingAncestor === 'layoutViewport') {\n rect = getViewportRect(element, strategy, clippingAncestor);\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}\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 lastKeptComputedStyle = 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 // Position of the containing block chain below the current node. A fixed\n // element whose containing block hasn't been found yet is a fixed chain.\n const lastPosition = lastKeptComputedStyle ? lastKeptComputedStyle.position : elementIsFixed ? 'fixed' : '';\n\n // A non-containing ancestor does not clip the element when the chain\n // below it escapes it: a fixed chain escapes all ancestors up to the\n // next containing block, an absolute chain escapes static ancestors.\n const shouldDropCurrentNode = !currentNodeIsContaining && (lastPosition === 'fixed' || lastPosition === 'absolute' && computedStyle.position === 'static');\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // The kept node carries the chain position for the next iteration.\n lastKeptComputedStyle = 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 firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n let top = firstRect.top;\n let right = firstRect.right;\n let bottom = firstRect.bottom;\n let left = firstRect.left;\n for (let i = 1; i < clippingAncestors.length; i++) {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n top = max(rect.top, top);\n right = min(rect.right, right);\n bottom = min(rect.bottom, bottom);\n left = max(rect.left, left);\n }\n return {\n width: right - left,\n height: bottom - top,\n x: left,\n y: 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 if (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 }\n }\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 if (!isOffsetParentAnElement && documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\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, ancestorResize) {\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\n // The entry is a snapshot, so the reference may have moved since the\n // intersection was computed (under performance constraints, or between\n // consecutive frames of a multi-frame layout shift). The reported ratio\n // and the observed area are stale in that case and cannot be trusted to\n // detect subsequent movement, so refresh regardless of the ratio.\n if (!rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n return refresh();\n }\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped in place, the ratio is 0. Throttle\n // the refresh 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 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 const win = getWindow(element);\n // The window is a resize ancestor, so when `ancestorResize` is enabled its\n // listener already runs the update on resize. Here we only need to rebuild\n // the `IntersectionObserver` for the new root size, skipping a redundant\n // update. When `ancestorResize` is disabled, this becomes the sole update.\n const handleResize = () => refresh(ancestorResize);\n win.addEventListener('resize', handleResize);\n refresh(true);\n return () => {\n win.removeEventListener('resize', handleResize);\n cleanup();\n };\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) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update);\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update, ancestorResize) : 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 && floating) {\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 if (floating) {\n resizeObserver.observe(floating);\n }\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 = options != null ? options : {};\n const platformWithCache = {\n ...platform,\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, offset as offset$1, shift as shift$1, limitShift as limitShift$1, flip as flip$1, size as size$1, autoPlacement as autoPlacement$1, hide as hide$1, inline as inline$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\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 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 isPositioned: true\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]);\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 * 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","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/arrow.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar Arrow = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function Arrow2(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 }, \"Arrow\")\n);\nexport {\n Arrow,\n Arrow as Root\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// 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 let rAF = 0;\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 window.cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(() => {\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 });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\n__name(useSize, \"useSize\");\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\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 Sticky = {\n Partial: \"partial\",\n Always: \"always\"\n};\nvar UpdatePositionStrategy = {\n Optimized: \"optimized\",\n Always: \"always\"\n};\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = /* @__PURE__ */ __name((props) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = React.useState(null);\n const [placementState, setPlacementState] = React.useState(void 0);\n return /* @__PURE__ */ jsx(\n PopperProvider,\n {\n scope: __scopePopper,\n anchor,\n onAnchorChange: setAnchor,\n placementState,\n setPlacementState,\n children\n }\n );\n}, \"Popper\");\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function PopperAnchor2(props, forwardedRef) {\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = React.useRef(null);\n const onAnchorChange = context.onAnchorChange;\n const callbackRef = React.useCallback(\n (node) => {\n ref.current = node;\n if (node) {\n onAnchorChange(node);\n }\n },\n [onAnchorChange]\n );\n const composedRefs = useComposedRefs(forwardedRef, callbackRef);\n const anchorRef = React.useRef(null);\n React.useEffect(() => {\n if (!virtualRef) {\n return;\n }\n const previousAnchor = anchorRef.current;\n anchorRef.current = virtualRef.current;\n if (previousAnchor !== anchorRef.current) {\n onAnchorChange(anchorRef.current);\n }\n });\n const sideAndAlign = context.placementState && getSideAndAlignFromPlacement(context.placementState);\n const placedSide = sideAndAlign?.[0];\n const placedAlign = sideAndAlign?.[1];\n return virtualRef ? null : /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-popper-side\": placedSide,\n \"data-radix-popper-align\": placedAlign,\n ...anchorProps,\n ref: composedRefs\n }\n );\n }, \"PopperAnchor\")\n);\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function PopperContent2(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 = Sticky.Partial,\n hideWhenDetached = false,\n updatePositionStrategy = 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, setContent);\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: /* @__PURE__ */ __name((...args) => {\n const cleanup = autoUpdate(...args, {\n animationFrame: updatePositionStrategy === UpdatePositionStrategy.Always\n });\n return cleanup;\n }, \"whileElementsMounted\"),\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 // Spread rather than passing `limiter: undefined`, which\n // `exactOptionalPropertyTypes` rejects for Floating UI's optional option.\n ...sticky === Sticky.Partial ? { limiter: limitShift() } : {},\n ...detectOverflowOptions\n }),\n avoidCollisions && flip({ ...detectOverflowOptions }),\n size({\n ...detectOverflowOptions,\n apply: /* @__PURE__ */ __name(({ 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 }, \"apply\")\n }),\n arrow && floatingUIarrow({ element: arrow, padding: arrowPadding }),\n transformOrigin({ arrowWidth, arrowHeight }),\n hideWhenDetached && // `hide` detects whether the anchor (reference) is clipped, so when\n // no explicit `collisionBoundary` is set we omit `boundary` entirely\n // and fall back to Floating UI's default clipping ancestors (e.g. a\n // scrollable menu). This lets an occluded submenu hide once its anchor\n // scrolls out of view (#3237). The collision/size middlewares\n // deliberately keep the viewport-based default to avoid clamping\n // content rendered inside transformed or overflow-clipping portal\n // containers. The key is omitted rather than set to `undefined`\n // because `exactOptionalPropertyTypes` rejects the explicit value.\n hide(\n hasExplicitBoundaries ? { strategy: \"referenceHidden\", ...detectOverflowOptions } : {\n strategy: \"referenceHidden\",\n padding: detectOverflowOptions.padding,\n altBoundary: detectOverflowOptions.altBoundary\n }\n )\n ]\n });\n const setPlacementState = context.setPlacementState;\n useLayoutEffect(() => {\n setPlacementState(placement);\n return () => {\n setPlacementState(void 0);\n };\n }, [placement, setPlacementState]);\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 placedAlign,\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\n // measurements done) we prevent animations so that users'\n // animations don't kick in too early from the wrong sides.\n animation: !isPositioned ? \"none\" : contentProps.style?.animation\n }\n }\n )\n }\n )\n }\n );\n }, \"PopperContent\")\n);\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar PopperArrow = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(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 }, \"PopperArrow\")\n);\nfunction isNotNull(value) {\n return value !== null;\n}\n__name(isNotNull, \"isNotNull\");\nvar transformOrigin = /* @__PURE__ */ __name((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}), \"transformOrigin\");\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [side, align];\n}\n__name(getSideAndAlignFromPlacement, \"getSideAndAlignFromPlacement\");\nexport {\n ALIGN_OPTIONS,\n PopperAnchor as Anchor,\n PopperArrow as Arrow,\n PopperContent as Content,\n Popper,\n PopperAnchor,\n PopperArrow,\n PopperContent,\n Popper as Root,\n SIDE_OPTIONS,\n createPopperScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/presence.tsx\nimport * as React2 from \"react\";\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__name(useStateMachine, \"useStateMachine\");\n\n// src/presence.tsx\nvar Presence = /* @__PURE__ */ __name((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 = useStableComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n}, \"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 mountAnimationNameRef = React2.useRef(void 0);\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 if (state === \"mounted\") {\n prevAnimationNameRef.current = mountAnimationNameRef.current ?? getAnimationName(stylesRef.current);\n mountAnimationNameRef.current = void 0;\n } else {\n prevAnimationNameRef.current = \"none\";\n }\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 mountAnimationNameRef.current = currentAnimationName;\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 = /* @__PURE__ */ __name((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 }, \"handleAnimationEnd\");\n const handleAnimationStart = /* @__PURE__ */ __name((event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n }, \"handleAnimationStart\");\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 if (node2) {\n const styles = getComputedStyle(node2);\n stylesRef.current = styles;\n mountAnimationNameRef.current = getAnimationName(styles);\n } else {\n stylesRef.current = null;\n }\n setNode(node2);\n }, [])\n };\n}\n__name(usePresence, \"usePresence\");\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}\n__name(setRef, \"setRef\");\nfunction useStableComposedRefs(...refs) {\n const refsRef = React2.useRef(refs);\n refsRef.current = refs;\n return React2.useCallback((node) => {\n const currentRefs = refsRef.current;\n let hasCleanup = false;\n const cleanups = currentRefs.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(currentRefs[i], null);\n }\n }\n };\n }\n }, []);\n}\n__name(useStableComposedRefs, \"useStableComposedRefs\");\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\n__name(getAnimationName, \"getAnimationName\");\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}\n__name(getElementRef, \"getElementRef\");\nexport {\n Presence,\n Presence as Root\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-effect-event.tsx\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport * as React from \"react\";\nvar useReactEffectEvent = React[\" useEffectEvent \".trim().toString()];\nvar useReactInsertionEffect = React[\" useInsertionEffect \".trim().toString()];\nfunction useEffectEvent(callback) {\n if (typeof useReactEffectEvent === \"function\") {\n return useReactEffectEvent(callback);\n }\n const ref = React.useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n if (typeof useReactInsertionEffect === \"function\") {\n useReactInsertionEffect(() => {\n ref.current = callback;\n });\n } else {\n useLayoutEffect(() => {\n ref.current = callback;\n });\n }\n return React.useMemo(() => ((...args) => ref.current?.(...args)), []);\n}\n__name(useEffectEvent, \"useEffectEvent\");\nexport {\n useEffectEvent\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { IS_DEVELOPMENT } from \"@radix-ui/primitive/is-development\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = /* @__PURE__ */ __name(() => {\n }, \"onChange\"),\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 (IS_DEVELOPMENT) {\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}\n__name(useControllableState, \"useControllableState\");\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}\n__name(useUncontrolledState, \"useUncontrolledState\");\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { IS_DEVELOPMENT as IS_DEVELOPMENT2 } from \"@radix-ui/primitive/is-development\";\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 (IS_DEVELOPMENT2) {\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 }, [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}\n__name(useControllableStateReducer, \"useControllableStateReducer\");\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/visually-hidden.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar VISUALLY_HIDDEN_STYLES = Object.freeze({\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n});\nvar VisuallyHidden = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function VisuallyHidden2(props, forwardedRef) {\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }\n }\n );\n }, \"VisuallyHidden\")\n);\nexport {\n VisuallyHidden as Root,\n VISUALLY_HIDDEN_STYLES,\n VisuallyHidden\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/tooltip.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 { useFocusScopeBranch } 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 { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = /* @__PURE__ */ __name((props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n if (skipDelayDuration <= 0) return;\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, [skipDelayDuration]),\n onClose: React.useCallback(() => {\n if (skipDelayDuration <= 0) return;\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n}, \"TooltipProvider\");\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = /* @__PURE__ */ __name((props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const [contentIdState, setContentId] = React.useState(void 0);\n const generatedContentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: /* @__PURE__ */ __name((open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n }, \"onChange\"),\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n const contentId = contentIdState ?? generatedContentId;\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n setContentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n}, \"Tooltip\");\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipTrigger2(props, forwardedRef) {\n const { __scopeTooltip, \"aria-describedby\": ariaDescribedby, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? concatAriaDescribedby(ariaDescribedby, context.contentId) : ariaDescribedby,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }, \"TooltipTrigger\")\n);\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = /* @__PURE__ */ __name((props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n}, \"TooltipPortal\");\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipContent2(props, forwardedRef) {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }, \"TooltipContent\")\n);\nvar TooltipContentHoverable = /* @__PURE__ */ React.forwardRef(/* @__PURE__ */ __name(function TooltipContentHoverable2(props, forwardedRef) {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = /* @__PURE__ */ __name((event) => handleCreateGraceArea(event, content), \"handleTriggerLeave\");\n const handleContentLeave = /* @__PURE__ */ __name((event) => handleCreateGraceArea(event, trigger), \"handleContentLeave\");\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = /* @__PURE__ */ __name((event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n }, \"handleTrackPointerGrace\");\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n}, \"TooltipContentHoverable\"));\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = /* @__PURE__ */ React.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function TooltipContentImpl2(props, forwardedRef) {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n id: idProp,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n const [contentNode, setContentNode] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, setContentNode);\n useFocusScopeBranch(contentNode);\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = /* @__PURE__ */ __name((event) => {\n if (event.target instanceof Node && event.target.contains(context.trigger)) {\n onClose();\n }\n }, \"handleScroll\");\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n const { setContentId } = context;\n useLayoutEffect(() => {\n setContentId(idProp);\n return () => {\n setContentId(void 0);\n };\n }, [idProp, setContentId]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n role: ariaLabel ? void 0 : \"tooltip\",\n id: ariaLabel ? void 0 : context.contentId,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n ariaLabel ? /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel }) : null\n ]\n }\n )\n }\n );\n }, \"TooltipContentImpl\")\n);\nvar TooltipArrow = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function TooltipArrow2(props, forwardedRef) {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }, \"TooltipArrow\")\n);\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\n__name(getExitSideFromRect, \"getExitSideFromRect\");\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\n__name(getPaddedExitPoints, \"getPaddedExitPoints\");\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\n__name(getPointsFromRect, \"getPointsFromRect\");\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}\n__name(isPointInPolygon, \"isPointInPolygon\");\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\n__name(getHull, \"getHull\");\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\n__name(getHullPresorted, \"getHullPresorted\");\nfunction concatAriaDescribedby(...values) {\n const ids = /* @__PURE__ */ new Set();\n for (const value of values) {\n if (typeof value !== \"string\") continue;\n for (const id of String(value).trim().split(/\\s+/)) {\n if (id) ids.add(id);\n }\n }\n return ids.size > 0 ? Array.from(ids).join(\" \") : void 0;\n}\n__name(concatAriaDescribedby, \"concatAriaDescribedby\");\nexport {\n TooltipArrow as Arrow,\n TooltipContent as Content,\n TooltipPortal as Portal,\n TooltipProvider as Provider,\n Tooltip as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n TooltipTrigger as Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { createContext, useContext, useRef, useCallback, useState, useEffect } from 'react';\nimport * as P from '@radix-ui/react-portal';\nimport { dequal } from 'dequal/lite';\nimport shallow from 'zustand/shallow';\nimport v8n from 'v8n';\nimport { createStitches } from '@stitches/react';\nimport { useDrag as useDrag$1 } from '@use-gesture/react';\nimport * as RadixTooltip from '@radix-ui/react-tooltip';\nimport { Arrow } from '@radix-ui/react-tooltip';\n\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\n\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = _objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\n\nlet LevaErrors = function (LevaErrors) {\n LevaErrors[LevaErrors[\"UNSUPPORTED_INPUT\"] = 0] = \"UNSUPPORTED_INPUT\";\n LevaErrors[LevaErrors[\"NO_COMPONENT_FOR_TYPE\"] = 1] = \"NO_COMPONENT_FOR_TYPE\";\n LevaErrors[LevaErrors[\"UNKNOWN_INPUT\"] = 2] = \"UNKNOWN_INPUT\";\n LevaErrors[LevaErrors[\"DUPLICATE_KEYS\"] = 3] = \"DUPLICATE_KEYS\";\n LevaErrors[LevaErrors[\"ALREADY_REGISTERED_TYPE\"] = 4] = \"ALREADY_REGISTERED_TYPE\";\n LevaErrors[LevaErrors[\"CLIPBOARD_ERROR\"] = 5] = \"CLIPBOARD_ERROR\";\n LevaErrors[LevaErrors[\"THEME_ERROR\"] = 6] = \"THEME_ERROR\";\n LevaErrors[LevaErrors[\"PATH_DOESNT_EXIST\"] = 7] = \"PATH_DOESNT_EXIST\";\n LevaErrors[LevaErrors[\"INPUT_TYPE_OVERRIDE\"] = 8] = \"INPUT_TYPE_OVERRIDE\";\n LevaErrors[LevaErrors[\"EMPTY_KEY\"] = 9] = \"EMPTY_KEY\";\n return LevaErrors;\n}({});\nconst ErrorList = {\n [LevaErrors.UNSUPPORTED_INPUT]: (type, path) => [`An input with type \\`${type}\\` input was found at path \\`${path}\\` but it's not supported yet.`],\n [LevaErrors.NO_COMPONENT_FOR_TYPE]: (type, path) => [`Type \\`${type}\\` found at path \\`${path}\\` can't be displayed in panel because no component supports it yet.`],\n [LevaErrors.UNKNOWN_INPUT]: (path, value) => [`input at path \\`${path}\\` is not recognized.`, value],\n [LevaErrors.DUPLICATE_KEYS]: (key, path, prevPath) => [`Key \\`${key}\\` of path \\`${path}\\` already exists at path \\`${prevPath}\\`. Even nested keys need to be unique. Rename one of the keys.`],\n [LevaErrors.ALREADY_REGISTERED_TYPE]: type => [`Type ${type} has already been registered. You can't register a component with the same type.`],\n [LevaErrors.CLIPBOARD_ERROR]: value => [`Error copying the value`, value],\n [LevaErrors.THEME_ERROR]: (category, key) => [`Error accessing the theme \\`${category}.${key}\\` value.`],\n [LevaErrors.PATH_DOESNT_EXIST]: path => [`Error getting the value at path \\`${path}\\`. There is probably an error in your \\`render\\` function.`],\n [LevaErrors.INPUT_TYPE_OVERRIDE]: (path, type, wrongType) => [`Input at path \\`${path}\\` already exists with type: \\`${type}\\`. Its type cannot be overridden with type \\`${wrongType}\\`.`],\n [LevaErrors.EMPTY_KEY]: () => ['Keys can not be empty, if you want to hide a label use whitespace.']\n};\nfunction _log(fn, errorType, ...args) {\n const errorFn = ErrorList[errorType];\n const [message, ...rest] = errorFn(...args);\n console[fn]('LEVA: ' + message, ...rest);\n}\nconst warn = _log.bind(null, 'warn');\nconst log = _log.bind(null, 'log');\n\nconst _excluded$a = [\"value\"],\n _excluded2$4 = [\"schema\"],\n _excluded3$1 = [\"value\"];\nconst Schemas = [];\nconst Plugins = {};\nfunction getValueType(_ref) {\n let {\n value\n } = _ref,\n settings = _objectWithoutProperties(_ref, _excluded$a);\n for (let checker of Schemas) {\n const type = checker(value, settings);\n if (type) return type;\n }\n return undefined;\n}\nfunction register(type, _ref2) {\n let {\n schema\n } = _ref2,\n plugin = _objectWithoutProperties(_ref2, _excluded2$4);\n if (type in Plugins) {\n warn(LevaErrors.ALREADY_REGISTERED_TYPE, type);\n return;\n }\n Schemas.push((value, settings) => schema(value, settings) && type);\n Plugins[type] = plugin;\n}\nconst getUniqueType = () => '__CUSTOM__PLUGIN__' + Math.random().toString(36).substr(2, 9);\nfunction createInternalPlugin(plugin) {\n return plugin;\n}\nfunction createPlugin(plugin) {\n const type = getUniqueType();\n Plugins[type] = plugin;\n return input => {\n return {\n type,\n __customInput: input\n };\n };\n}\nfunction normalize$3(type, input, path, data) {\n const {\n normalize: _normalize\n } = Plugins[type];\n if (_normalize) return _normalize(input, path, data);\n if (typeof input !== 'object' || !('value' in input)) return {\n value: input\n };\n const {\n value\n } = input,\n settings = _objectWithoutProperties(input, _excluded3$1);\n return {\n value,\n settings\n };\n}\nfunction sanitize$4(type, value, settings, prevValue, path, store) {\n const {\n sanitize\n } = Plugins[type];\n if (sanitize) return sanitize(value, settings, prevValue, path, store);\n return value;\n}\nfunction format$2(type, value, settings) {\n const {\n format\n } = Plugins[type];\n if (format) return format(value, settings);\n return value;\n}\n\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\n\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\n\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\n\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\n\nconst clamp = (x, min, max) => x > max ? max : x < min ? min : x;\nconst pad = (x, pad) => String(x).padStart(pad, '0');\nconst parseNumber = v => {\n if (v === '' || typeof v === 'number') return v;\n try {\n const _v = evaluate(v);\n if (!isNaN(_v)) return _v;\n } catch (_unused) {}\n return parseFloat(v);\n};\nconst log10 = Math.log(10);\nfunction getStep(number) {\n let n = Math.abs(+String(number).replace('.', ''));\n if (n === 0) return 0.01;\n while (n !== 0 && n % 10 === 0) n /= 10;\n const significantDigits = Math.floor(Math.log(n) / log10) + 1;\n const numberLog = Math.floor(Math.log10(Math.abs(number)));\n const step = Math.pow(10, numberLog - significantDigits);\n return Math.max(step, 0.001);\n}\nconst range = (v, min, max) => {\n if (max === min) return 0;\n const _v = clamp(v, min, max);\n return (_v - min) / (max - min);\n};\nconst invertedRange = (p, min, max) => p * (max - min) + min;\nconst getUid = () => '_' + Math.random().toString(36).substr(2, 9);\nconst parens = /\\(([^\\(\\)]+)\\)/;\nconst exp = /(-?\\d+(?:\\.\\d+)?)\\s*\\^\\s*(-?\\d+(?:\\.\\d+)?)/;\nconst muldiv = /(-?\\d+(?:\\.\\d+)?)\\s*([*/])\\s*(-?\\d+(?:\\.\\d+)?)/;\nconst addsub = /(-?\\d+(?:\\.\\d+)?)\\s*([+-])\\s*(-?\\d+(?:\\.\\d+)?)/;\nfunction evaluate(expr) {\n expr = expr.replace(/\\s+/g, '');\n if (parens.test(expr)) {\n return evaluate(expr.replace(parens, (_, subExpr) => evaluate(subExpr).toString()));\n }\n if (exp.test(expr)) {\n return evaluate(expr.replace(exp, (_, a, b) => Math.pow(Number(a), Number(b)).toString()));\n }\n if (muldiv.test(expr)) {\n return evaluate(expr.replace(muldiv, (_, a, op, b) => op === '*' ? (Number(a) * Number(b)).toString() : Number(b) === 0 ? (() => {\n throw new Error('Division by zero');\n })() : (Number(a) / Number(b)).toString()));\n }\n if (addsub.test(expr)) {\n return evaluate(expr.replace(addsub, (_, a, op, b) => op === '+' ? (Number(a) + Number(b)).toString() : (Number(a) - Number(b)).toString()));\n }\n return Number(expr);\n}\n\nfunction pick(object, keys) {\n return keys.reduce((obj, key) => {\n if (!!object && object.hasOwnProperty(key)) {\n obj[key] = object[key];\n }\n return obj;\n }, {});\n}\nfunction omit(object, keys) {\n const obj = _objectSpread2({}, object);\n keys.forEach(k => k in object && delete obj[k]);\n return obj;\n}\nfunction mapArrayToKeys(value, keys) {\n return value.reduce((acc, v, i) => Object.assign(acc, {\n [keys[i]]: v\n }), {});\n}\nfunction isObject(variable) {\n return Object.prototype.toString.call(variable) === '[object Object]';\n}\nconst isEmptyObject = obj => isObject(obj) && Object.keys(obj).length === 0;\n\nlet SpecialInputs = function (SpecialInputs) {\n SpecialInputs[\"BUTTON\"] = \"BUTTON\";\n SpecialInputs[\"BUTTON_GROUP\"] = \"BUTTON_GROUP\";\n SpecialInputs[\"MONITOR\"] = \"MONITOR\";\n SpecialInputs[\"FOLDER\"] = \"FOLDER\";\n return SpecialInputs;\n}({});\nlet LevaInputs = function (LevaInputs) {\n LevaInputs[\"SELECT\"] = \"SELECT\";\n LevaInputs[\"IMAGE\"] = \"IMAGE\";\n LevaInputs[\"NUMBER\"] = \"NUMBER\";\n LevaInputs[\"COLOR\"] = \"COLOR\";\n LevaInputs[\"STRING\"] = \"STRING\";\n LevaInputs[\"BOOLEAN\"] = \"BOOLEAN\";\n LevaInputs[\"INTERVAL\"] = \"INTERVAL\";\n LevaInputs[\"VECTOR3D\"] = \"VECTOR3D\";\n LevaInputs[\"VECTOR2D\"] = \"VECTOR2D\";\n return LevaInputs;\n}({});\n\nconst _excluded$9 = [\"type\", \"__customInput\"],\n _excluded2$3 = [\"render\", \"label\", \"optional\", \"order\", \"disabled\", \"hint\", \"onChange\", \"onEditStart\", \"onEditEnd\", \"transient\"],\n _excluded3 = [\"type\"];\nfunction parseOptions(_input, key, mergedOptions = {}, customType) {\n var _commonOptions$option, _commonOptions$disabl;\n if (typeof _input !== 'object' || Array.isArray(_input)) {\n return {\n type: customType,\n input: _input,\n options: _objectSpread2({\n key,\n label: key,\n optional: false,\n disabled: false,\n order: 0\n }, mergedOptions)\n };\n }\n if ('__customInput' in _input) {\n const {\n type: _type,\n __customInput\n } = _input,\n options = _objectWithoutProperties(_input, _excluded$9);\n return parseOptions(__customInput, key, options, _type);\n }\n const {\n render,\n label,\n optional,\n order = 0,\n disabled,\n hint,\n onChange,\n onEditStart,\n onEditEnd,\n transient\n } = _input,\n inputWithType = _objectWithoutProperties(_input, _excluded2$3);\n const commonOptions = _objectSpread2({\n render,\n key,\n label: label !== null && label !== void 0 ? label : key,\n hint,\n transient: transient !== null && transient !== void 0 ? transient : !!onChange,\n onEditStart,\n onEditEnd,\n disabled,\n optional,\n order\n }, mergedOptions);\n let {\n type\n } = inputWithType,\n input = _objectWithoutProperties(inputWithType, _excluded3);\n type = customType !== null && customType !== void 0 ? customType : type;\n if (type in SpecialInputs) {\n return {\n type,\n input,\n options: commonOptions\n };\n }\n let computedInput;\n if (customType && isObject(input) && 'value' in input) computedInput = input.value;else computedInput = isEmptyObject(input) ? undefined : input;\n return {\n type,\n input: computedInput,\n options: _objectSpread2(_objectSpread2({}, commonOptions), {}, {\n onChange,\n optional: (_commonOptions$option = commonOptions.optional) !== null && _commonOptions$option !== void 0 ? _commonOptions$option : false,\n disabled: (_commonOptions$disabl = commonOptions.disabled) !== null && _commonOptions$disabl !== void 0 ? _commonOptions$disabl : false\n })\n };\n}\nfunction normalizeInput(_input, key, path, data) {\n const parsedInputAndOptions = parseOptions(_input, key);\n const {\n type,\n input: parsedInput,\n options\n } = parsedInputAndOptions;\n if (type) {\n if (type in SpecialInputs) return parsedInputAndOptions;\n return {\n type,\n input: normalize$3(type, parsedInput, path, data),\n options\n };\n }\n let inputType = getValueType(parsedInput);\n if (inputType) return {\n type: inputType,\n input: normalize$3(inputType, parsedInput, path, data),\n options\n };\n inputType = getValueType({\n value: parsedInput\n });\n if (inputType) return {\n type: inputType,\n input: normalize$3(inputType, {\n value: parsedInput\n }, path, data),\n options\n };\n return false;\n}\nfunction updateInput(input, newValue, path, store, fromPanel) {\n const {\n value,\n type,\n settings\n } = input;\n input.value = sanitizeValue({\n type,\n value,\n settings\n }, newValue, path, store);\n input.fromPanel = fromPanel;\n}\nconst ValueError = function ValueError(message, value, error) {\n this.type = 'LEVA_ERROR';\n this.message = 'LEVA: ' + message;\n this.previousValue = value;\n this.error = error;\n};\nfunction sanitizeValue({\n type,\n value,\n settings\n}, newValue, path, store) {\n const _newValue = type !== 'SELECT' && typeof newValue === 'function' ? newValue(value) : newValue;\n let sanitizedNewValue;\n try {\n sanitizedNewValue = sanitize$4(type, _newValue, settings, value, path, store);\n } catch (e) {\n throw new ValueError(`The value \\`${newValue}\\` did not result in a correct value.`, value, e);\n }\n if (dequal(sanitizedNewValue, value)) {\n return value;\n }\n return sanitizedNewValue;\n}\n\nconst debounce = (callback, wait, immediate = false) => {\n let timeout = 0;\n return function () {\n const args = arguments;\n const callNow = immediate && !timeout;\n const next = () => callback.apply(this, args);\n window.clearTimeout(timeout);\n timeout = window.setTimeout(next, wait);\n if (callNow) next();\n };\n};\n\nconst multiplyStep = event => event.shiftKey ? 5 : event.altKey ? 1 / 5 : 1;\n\nconst _excluded$8 = [\"value\"],\n _excluded2$2 = [\"min\", \"max\"];\nconst schema$3 = v => {\n if (typeof v === 'number') return true;\n if (typeof v === 'string') {\n const _v = parseFloat(v);\n if (isNaN(_v)) return false;\n const suffix = v.substring(('' + _v).length).trim();\n return suffix.length < 4;\n }\n return false;\n};\nconst sanitize$3 = (v, {\n min: _min = -Infinity,\n max: _max = Infinity,\n suffix\n}) => {\n const _v = parseFloat(v);\n if (v === '' || isNaN(_v)) throw Error('Invalid number');\n const f = clamp(_v, _min, _max);\n return suffix ? f + suffix : f;\n};\nconst format$1 = (v, {\n pad: _pad = 0,\n suffix\n}) => {\n const f = parseFloat(v).toFixed(_pad);\n return suffix ? f + suffix : f;\n};\nconst normalize$2 = _ref => {\n let {\n value\n } = _ref,\n settings = _objectWithoutProperties(_ref, _excluded$8);\n const {\n min = -Infinity,\n max = Infinity\n } = settings,\n _settings = _objectWithoutProperties(settings, _excluded2$2);\n let _value = parseFloat(value);\n const suffix = typeof value === 'string' ? value.substring(('' + _value).length) : undefined;\n _value = clamp(_value, min, max);\n let step = settings.step;\n if (!step) {\n if (Number.isFinite(min)) {\n if (Number.isFinite(max)) step = +(Math.abs(max - min) / 100).toPrecision(1);else step = +(Math.abs(_value - min) / 100).toPrecision(1);\n } else if (Number.isFinite(max)) step = +(Math.abs(max - _value) / 100).toPrecision(1);\n }\n const padStep = step ? getStep(step) * 10 : getStep(_value);\n step = step || padStep / 10;\n const pad = Math.round(clamp(Math.log10(1 / padStep), 0, 2));\n return {\n value: suffix ? _value + suffix : _value,\n settings: _objectSpread2({\n initialValue: _value,\n step,\n pad,\n min,\n max,\n suffix\n }, _settings)\n };\n};\nconst sanitizeStep$1 = (v, {\n step,\n initialValue\n}) => {\n const steps = Math.round((v - initialValue) / step);\n return initialValue + steps * step;\n};\n\nvar props$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n schema: schema$3,\n sanitize: sanitize$3,\n format: format$1,\n normalize: normalize$2,\n sanitizeStep: sanitizeStep$1\n});\n\nfunction _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\n\nconst InputContext = createContext({});\nfunction useInputContext() {\n return useContext(InputContext);\n}\nconst ThemeContext = createContext(null);\nconst StoreContext = createContext(null);\nconst PanelSettingsContext = createContext(null);\nfunction useStoreContext() {\n return useContext(StoreContext);\n}\nfunction usePanelSettingsContext() {\n return useContext(PanelSettingsContext);\n}\nfunction LevaStoreProvider({\n children,\n store\n}) {\n return React.createElement(StoreContext.Provider, {\n value: store\n }, children);\n}\n\nconst getDefaultTheme = () => ({\n colors: {\n elevation1: '#292d39',\n elevation2: '#181c20',\n elevation3: '#373c4b',\n accent1: '#0066dc',\n accent2: '#007bff',\n accent3: '#3c93ff',\n highlight1: '#535760',\n highlight2: '#8c92a4',\n highlight3: '#fefefe',\n vivid1: '#ffcc00',\n folderWidgetColor: '$highlight2',\n folderTextColor: '$highlight3',\n toolTipBackground: '$highlight3',\n toolTipText: '$elevation2'\n },\n radii: {\n xs: '2px',\n sm: '3px',\n lg: '10px'\n },\n space: {\n xs: '3px',\n sm: '6px',\n md: '10px',\n rowGap: '7px',\n colGap: '7px'\n },\n fonts: {\n mono: `ui-monospace, SFMono-Regular, Menlo, 'Roboto Mono', monospace`,\n sans: `system-ui, sans-serif`\n },\n fontSizes: {\n root: '11px',\n toolTip: '$root'\n },\n sizes: {\n rootWidth: '280px',\n controlWidth: '160px',\n numberInputMinWidth: '38px',\n scrubberWidth: '8px',\n scrubberHeight: '16px',\n rowHeight: '24px',\n folderTitleHeight: '20px',\n checkboxSize: '16px',\n joystickWidth: '100px',\n joystickHeight: '100px',\n colorPickerWidth: '$controlWidth',\n colorPickerHeight: '100px',\n imagePreviewWidth: '$controlWidth',\n imagePreviewHeight: '100px',\n monitorHeight: '60px',\n titleBarHeight: '39px'\n },\n shadows: {\n level1: '0 0 9px 0 #00000088',\n level2: '0 4px 14px #00000033'\n },\n borderWidths: {\n root: '0px',\n input: '1px',\n focus: '1px',\n hover: '1px',\n active: '1px',\n folder: '1px'\n },\n fontWeights: {\n label: 'normal',\n folder: 'normal',\n button: 'normal'\n }\n});\nfunction createStateClass(value, options) {\n const [borderColor, bgColor] = value.split(' ');\n const css = {};\n if (borderColor !== 'none') {\n css.boxShadow = `${options.inset ? 'inset ' : ''}0 0 0 $borderWidths${[options.key]} $colors${borderColor !== 'default' && borderColor || options.borderColor}`;\n }\n if (bgColor) {\n css.backgroundColor = bgColor;\n }\n return css;\n}\nconst utils = {\n $inputStyle: () => value => createStateClass(value, {\n key: '$input',\n borderColor: '$highlight1',\n inset: true\n }),\n $focusStyle: () => value => createStateClass(value, {\n key: '$focus',\n borderColor: '$accent2'\n }),\n $hoverStyle: () => value => createStateClass(value, {\n key: '$hover',\n borderColor: '$accent1',\n inset: true\n }),\n $activeStyle: () => value => createStateClass(value, {\n key: '$active',\n borderColor: '$accent1',\n inset: true\n })\n};\nconst stitches = createStitches({\n prefix: 'leva',\n theme: getDefaultTheme(),\n utils: _objectSpread2(_objectSpread2({}, utils), {}, {\n $flex: () => ({\n display: 'flex',\n alignItems: 'center'\n }),\n $flexCenter: () => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n }),\n $reset: () => ({\n outline: 'none',\n fontSize: 'inherit',\n fontWeight: 'inherit',\n color: 'inherit',\n fontFamily: 'inherit',\n border: 'none',\n backgroundColor: 'transparent',\n appearance: 'none'\n }),\n $draggable: () => ({\n touchAction: 'none',\n WebkitUserDrag: 'none',\n userSelect: 'none'\n }),\n $focus: value => ({\n '&:focus': utils.$focusStyle()(value)\n }),\n $focusWithin: value => ({\n '&:focus-within': utils.$focusStyle()(value)\n }),\n $hover: value => ({\n '&:hover': utils.$hoverStyle()(value)\n }),\n $active: value => ({\n '&:active': utils.$activeStyle()(value)\n })\n })\n});\nconst styled = stitches.styled;\nstitches.css;\nconst createTheme = stitches.createTheme;\nconst globalCss = stitches.globalCss;\nconst keyframes = stitches.keyframes;\nconst globalStyles = globalCss({\n '.leva__panel__dragged': {\n WebkitUserDrag: 'none',\n userSelect: 'none',\n input: {\n userSelect: 'none'\n },\n '*': {\n cursor: 'ew-resize !important'\n }\n }\n});\n\nfunction mergeTheme(newTheme) {\n const defaultTheme = getDefaultTheme();\n if (!newTheme) return {\n theme: defaultTheme,\n className: ''\n };\n Object.keys(newTheme).forEach(key => {\n Object.assign(defaultTheme[key], newTheme[key]);\n });\n const customTheme = createTheme(defaultTheme);\n return {\n theme: defaultTheme,\n className: customTheme.className\n };\n}\nfunction useTh(category, key) {\n const {\n theme\n } = useContext(ThemeContext);\n if (!(category in theme) || !(key in theme[category])) {\n warn(LevaErrors.THEME_ERROR, category, key);\n return '';\n }\n let _key = key;\n while (true) {\n let value = theme[category][_key];\n if (typeof value === 'string' && value.charAt(0) === '$') _key = value.substr(1);else return value;\n }\n}\n\nconst StyledInput = styled('input', {\n $reset: '',\n padding: '0 $sm',\n width: 0,\n minWidth: 0,\n flex: 1,\n height: '100%',\n variants: {\n levaType: {\n number: {\n textAlign: 'right'\n }\n },\n as: {\n textarea: {\n padding: '$sm'\n }\n }\n }\n});\nconst InnerLabel = styled('div', {\n $draggable: '',\n height: '100%',\n $flexCenter: '',\n position: 'relative',\n padding: '0 $xs',\n fontSize: '0.8em',\n opacity: 0.8,\n cursor: 'default',\n touchAction: 'none',\n [`& + ${StyledInput}`]: {\n paddingLeft: 0\n }\n});\nconst InnerNumberLabel = styled(InnerLabel, {\n cursor: 'ew-resize',\n marginRight: '-$xs',\n textTransform: 'uppercase',\n opacity: 0.3,\n '&:hover': {\n opacity: 1\n },\n variants: {\n dragging: {\n true: {\n backgroundColor: '$accent2',\n opacity: 1\n }\n }\n }\n});\nconst InputContainer = styled('div', {\n $flex: '',\n position: 'relative',\n borderRadius: '$sm',\n overflow: 'hidden',\n color: 'inherit',\n height: '$rowHeight',\n backgroundColor: '$elevation3',\n $inputStyle: '$elevation1',\n $hover: '',\n $focusWithin: '',\n variants: {\n textArea: {\n true: {\n height: 'auto'\n }\n }\n }\n});\n\nconst _excluded$7 = [\"innerLabel\", \"value\", \"onUpdate\", \"onChange\", \"onKeyDown\", \"type\", \"id\", \"inputType\", \"rows\"],\n _excluded2$1 = [\"onUpdate\"];\nfunction ValueInput(_ref) {\n let {\n innerLabel,\n value,\n onUpdate,\n onChange,\n onKeyDown,\n type,\n id,\n inputType = 'text',\n rows = 0\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded$7);\n const {\n id: _id,\n emitOnEditStart,\n emitOnEditEnd,\n disabled\n } = useInputContext();\n const inputId = id || _id;\n const inputRef = useRef(null);\n const isTextArea = rows > 0;\n const asType = isTextArea ? 'textarea' : 'input';\n const update = useCallback(fn => event => {\n const _value = event.currentTarget.value;\n fn(_value);\n }, []);\n React.useEffect(() => {\n const ref = inputRef.current;\n const _onUpdate = update(value => {\n onUpdate(value);\n emitOnEditEnd();\n });\n ref === null || ref === void 0 || ref.addEventListener('blur', _onUpdate);\n return () => ref === null || ref === void 0 ? void 0 : ref.removeEventListener('blur', _onUpdate);\n }, [update, onUpdate, emitOnEditEnd]);\n const onKeyPress = useCallback(event => {\n if (event.key === 'Enter') {\n update(onUpdate)(event);\n }\n }, [update, onUpdate]);\n const inputProps = Object.assign({\n as: asType\n }, isTextArea ? {\n rows\n } : {}, props);\n return React.createElement(InputContainer, {\n textArea: isTextArea\n }, innerLabel && typeof innerLabel === 'string' ? React.createElement(InnerLabel, null, innerLabel) : innerLabel, React.createElement(StyledInput, _extends({\n levaType: type,\n ref: inputRef,\n id: inputId,\n type: inputType,\n autoComplete: \"off\",\n spellCheck: \"false\",\n value: value,\n onChange: update(onChange),\n onFocus: () => emitOnEditStart(),\n onKeyPress: onKeyPress,\n onKeyDown: onKeyDown,\n disabled: disabled\n }, inputProps)));\n}\nfunction NumberInput(_ref2) {\n let {\n onUpdate\n } = _ref2,\n props = _objectWithoutProperties(_ref2, _excluded2$1);\n const _onUpdate = useCallback(v => onUpdate(parseNumber(v)), [onUpdate]);\n const onKeyDown = useCallback(event => {\n const dir = event.key === 'ArrowUp' ? 1 : event.key === 'ArrowDown' ? -1 : 0;\n if (dir) {\n event.preventDefault();\n const step = event.altKey ? 0.1 : event.shiftKey ? 10 : 1;\n onUpdate(v => parseFloat(v) + dir * step);\n }\n }, [onUpdate]);\n return React.createElement(ValueInput, _extends({}, props, {\n onUpdate: _onUpdate,\n onKeyDown: onKeyDown,\n type: \"number\"\n }));\n}\n\nconst StyledFolder = styled('div', {});\nconst StyledWrapper = styled('div', {\n position: 'relative',\n background: '$elevation2',\n transition: 'height 300ms ease',\n variants: {\n fill: {\n true: {},\n false: {}\n },\n flat: {\n false: {},\n true: {}\n },\n isRoot: {\n true: {},\n false: {\n paddingLeft: '$md',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: 0,\n width: '$borderWidths$folder',\n height: '100%',\n backgroundColor: '$folderWidgetColor',\n opacity: 0.4,\n transform: 'translateX(-50%)'\n }\n }\n }\n },\n compoundVariants: [{\n isRoot: true,\n fill: false,\n css: {\n overflowY: 'auto',\n maxHeight: 'calc(100vh - 20px - $$titleBarHeight)'\n }\n }, {\n isRoot: true,\n flat: false,\n css: {\n borderRadius: '$lg'\n }\n }]\n});\nconst StyledTitle = styled('div', {\n $flex: '',\n color: '$folderTextColor',\n userSelect: 'none',\n cursor: 'pointer',\n height: '$folderTitleHeight',\n fontWeight: '$folder',\n '> svg': {\n marginLeft: -4,\n marginRight: 4,\n cursor: 'pointer',\n fill: '$folderWidgetColor',\n opacity: 0.6\n },\n '&:hover > svg': {\n fill: '$folderWidgetColor'\n },\n [`&:hover + ${StyledWrapper}::after`]: {\n opacity: 0.6\n },\n [`${StyledFolder}:hover > & + ${StyledWrapper}::after`]: {\n opacity: 0.6\n },\n [`${StyledFolder}:hover > & > svg`]: {\n opacity: 1\n }\n});\nconst StyledContent = styled('div', {\n position: 'relative',\n display: 'grid',\n gridTemplateColumns: '100%',\n rowGap: '$rowGap',\n transition: 'opacity 250ms ease',\n variants: {\n toggled: {\n true: {\n opacity: 1,\n transitionDelay: '250ms'\n },\n false: {\n opacity: 0,\n transitionDelay: '0ms',\n pointerEvents: 'none'\n }\n },\n isRoot: {\n true: {\n '& > div': {\n paddingLeft: '$md',\n paddingRight: '$md'\n },\n '& > div:first-of-type': {\n paddingTop: '$sm'\n },\n '& > div:last-of-type': {\n paddingBottom: '$sm'\n },\n [`> ${StyledFolder}:not(:first-of-type)`]: {\n paddingTop: '$sm',\n marginTop: '$md',\n borderTop: '$borderWidths$folder solid $colors$elevation1'\n }\n }\n }\n }\n});\n\nconst StyledRow = styled('div', {\n position: 'relative',\n zIndex: 100,\n display: 'grid',\n rowGap: '$rowGap',\n gridTemplateRows: 'minmax($sizes$rowHeight, max-content)',\n alignItems: 'center',\n color: '$highlight2',\n [`${StyledContent} > &`]: {\n '&:first-of-type': {\n marginTop: '$rowGap'\n },\n '&:last-of-type': {\n marginBottom: '$rowGap'\n }\n },\n variants: {\n disabled: {\n true: {\n pointerEvents: 'none'\n },\n false: {\n '&:hover,&:focus-within': {\n color: '$highlight3'\n }\n }\n }\n }\n});\nconst StyledInputRow = styled(StyledRow, {\n gridTemplateColumns: 'auto $sizes$controlWidth',\n columnGap: '$colGap'\n});\nconst CopyLabelContainer = styled('div', {\n $flex: '',\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n '& > div': {\n marginLeft: '$colGap',\n padding: '0 $xs',\n opacity: 0.4\n },\n '& > div:hover': {\n opacity: 0.8\n },\n '& > div > svg': {\n display: 'none',\n cursor: 'pointer',\n width: 13,\n minWidth: 13,\n height: 13,\n backgroundColor: '$elevation2'\n },\n '&:hover > div > svg': {\n display: 'block'\n },\n variants: {\n align: {\n top: {\n height: '100%',\n alignItems: 'flex-start',\n paddingTop: '$sm'\n }\n }\n }\n});\nconst StyledOptionalToggle = styled('input', {\n $reset: '',\n height: 0,\n width: 0,\n opacity: 0,\n margin: 0,\n '& + label': {\n position: 'relative',\n $flexCenter: '',\n height: '100%',\n userSelect: 'none',\n cursor: 'pointer',\n paddingLeft: 2,\n paddingRight: '$sm',\n pointerEvents: 'auto'\n },\n '& + label:after': {\n content: '\"\"',\n width: 6,\n height: 6,\n backgroundColor: '$elevation3',\n borderRadius: '50%',\n $activeStyle: ''\n },\n '&:focus + label:after': {\n $focusStyle: ''\n },\n '& + label:active:after': {\n backgroundColor: '$accent1',\n $focusStyle: ''\n },\n '&:checked + label:after': {\n backgroundColor: '$accent1'\n }\n});\nconst StyledLabel = styled('label', {\n fontWeight: '$label',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n '& > svg': {\n display: 'block'\n }\n});\nconst StyledInputWrapper$1 = styled('div', {\n opacity: 1,\n variants: {\n disabled: {\n true: {\n opacity: 0.6,\n pointerEvents: 'none',\n [`& ${StyledLabel}`]: {\n pointerEvents: 'auto'\n }\n }\n }\n }\n});\nconst Overlay = styled('div', {\n position: 'fixed',\n top: 0,\n bottom: 0,\n right: 0,\n left: 0,\n zIndex: 1000,\n userSelect: 'none'\n});\nconst StyledToolTipContent = styled('div', {\n background: '$toolTipBackground',\n fontFamily: '$sans',\n fontSize: '$toolTip',\n padding: '$xs $sm',\n color: '$toolTipText',\n borderRadius: '$xs',\n boxShadow: '$level2',\n maxWidth: 260\n});\nconst ToolTipArrow = styled(Arrow, {\n fill: '$toolTipBackground'\n});\n\nfunction Portal({\n children,\n container = (_globalThis$document => globalThis === null || globalThis === void 0 || (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.body)()\n}) {\n const {\n className\n } = useContext(ThemeContext);\n return React.createElement(P.Root, {\n className: className,\n container: container\n }, children);\n}\n\nconst _excluded$6 = [\"align\"];\nfunction OptionalToggle() {\n const {\n id,\n disable,\n disabled\n } = useInputContext();\n return React.createElement(React.Fragment, null, React.createElement(StyledOptionalToggle, {\n id: id + '__disable',\n type: \"checkbox\",\n checked: !disabled,\n onChange: () => disable(!disabled)\n }), React.createElement(\"label\", {\n htmlFor: id + '__disable'\n }));\n}\nfunction RawLabel(props) {\n const {\n id,\n optional,\n hint\n } = useInputContext();\n const htmlForProp = props.htmlFor || (id ? id : undefined);\n const titleProp = !hint && typeof props.children === 'string' ? props.children : undefined;\n return React.createElement(React.Fragment, null, optional && React.createElement(OptionalToggle, null), hint !== undefined ? React.createElement(RadixTooltip.Root, null, React.createElement(RadixTooltip.Trigger, {\n asChild: true\n }, React.createElement(StyledLabel, _extends({\n htmlFor: htmlForProp\n }, props))), React.createElement(RadixTooltip.Content, {\n side: \"top\",\n sideOffset: 2\n }, React.createElement(StyledToolTipContent, null, hint, React.createElement(ToolTipArrow, null)))) : React.createElement(StyledLabel, _extends({\n htmlFor: htmlForProp,\n title: titleProp\n }, props)));\n}\nfunction Label(_ref) {\n let {\n align\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded$6);\n const {\n value,\n label,\n key,\n disabled\n } = useInputContext();\n const {\n hideCopyButton\n } = usePanelSettingsContext();\n const copyEnabled = !hideCopyButton && key !== undefined;\n const [copied, setCopied] = useState(false);\n const handleClick = async () => {\n try {\n await navigator.clipboard.writeText(JSON.stringify({\n [key]: value !== null && value !== void 0 ? value : ''\n }));\n setCopied(true);\n } catch (_unused) {\n warn(LevaErrors.CLIPBOARD_ERROR, {\n [key]: value\n });\n }\n };\n return React.createElement(CopyLabelContainer, {\n align: align,\n onPointerLeave: () => setCopied(false)\n }, React.createElement(RawLabel, props), copyEnabled && !disabled && React.createElement(\"div\", {\n title: `Click to copy ${typeof label === 'string' ? label : key} value`\n }, !copied ? React.createElement(\"svg\", {\n onClick: handleClick,\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\"\n }, React.createElement(\"path\", {\n d: \"M8 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z\"\n }), React.createElement(\"path\", {\n d: \"M6 3a2 2 0 00-2 2v11a2 2 0 002 2h8a2 2 0 002-2V5a2 2 0 00-2-2 3 3 0 01-3 3H9a3 3 0 01-3-3z\"\n })) : React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\"\n }, React.createElement(\"path\", {\n d: \"M9 2a1 1 0 000 2h2a1 1 0 100-2H9z\"\n }), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M4 5a2 2 0 012-2 3 3 0 003 3h2a3 3 0 003-3 2 2 0 012 2v11a2 2 0 01-2 2H6a2 2 0 01-2-2V5zm9.707 5.707a1 1 0 00-1.414-1.414L9 12.586l-1.293-1.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\",\n clipRule: \"evenodd\"\n }))));\n}\n\nconst _excluded$5 = [\"toggled\"];\nconst Svg = styled('svg', {\n fill: 'currentColor',\n transition: 'transform 350ms ease, fill 250ms ease'\n});\nfunction Chevron(_ref) {\n let {\n toggled\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded$5);\n return React.createElement(Svg, _extends({\n width: \"9\",\n height: \"5\",\n viewBox: \"0 0 9 5\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n transform: `rotate(${toggled ? 0 : -90}deg)`\n }\n }, props), React.createElement(\"path\", {\n d: \"M3.8 4.4c.4.3 1 .3 1.4 0L8 1.7A1 1 0 007.4 0H1.6a1 1 0 00-.7 1.7l3 2.7z\"\n }));\n}\n\nconst _excluded$4 = [\"input\"];\nfunction Row(_ref) {\n let {\n input\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded$4);\n if (input) return React.createElement(StyledInputRow, props);\n return React.createElement(StyledRow, props);\n}\n\nfunction useInputSetters({\n value,\n type,\n settings,\n setValue\n}) {\n const [displayValue, setDisplayValue] = useState(format$2(type, value, settings));\n const previousValueRef = useRef(value);\n const settingsRef = useRef(settings);\n settingsRef.current = settings;\n const setFormat = useCallback(v => setDisplayValue(format$2(type, v, settingsRef.current)), [type]);\n const onUpdate = useCallback(updatedValue => {\n try {\n setValue(updatedValue);\n } catch (error) {\n const {\n type,\n previousValue\n } = error;\n if (type !== 'LEVA_ERROR') throw error;\n setFormat(previousValue);\n }\n }, [setFormat, setValue]);\n useEffect(() => {\n if (!dequal(value, previousValueRef.current)) {\n setFormat(value);\n }\n previousValueRef.current = value;\n }, [value, setFormat]);\n return {\n displayValue,\n onChange: setDisplayValue,\n onUpdate\n };\n}\n\nfunction useDrag(handler, config) {\n const {\n emitOnEditStart,\n emitOnEditEnd\n } = useInputContext();\n return useDrag$1(state => {\n if (state.first) {\n document.body.classList.add('leva__panel__dragged');\n emitOnEditStart === null || emitOnEditStart === void 0 || emitOnEditStart();\n }\n const result = handler(state);\n if (state.last) {\n document.body.classList.remove('leva__panel__dragged');\n emitOnEditEnd === null || emitOnEditEnd === void 0 || emitOnEditEnd();\n }\n return result;\n }, config);\n}\n\nfunction useCanvas2d(fn) {\n const canvas = useRef(null);\n const ctx = useRef(null);\n const hasFired = useRef(false);\n useEffect(() => {\n const handleCanvas = debounce(() => {\n canvas.current.width = canvas.current.offsetWidth * window.devicePixelRatio;\n canvas.current.height = canvas.current.offsetHeight * window.devicePixelRatio;\n fn(canvas.current, ctx.current);\n }, 250);\n window.addEventListener('resize', handleCanvas);\n if (!hasFired.current) {\n handleCanvas();\n hasFired.current = true;\n }\n return () => window.removeEventListener('resize', handleCanvas);\n }, [fn]);\n useEffect(() => {\n ctx.current = canvas.current.getContext('2d');\n }, []);\n return [canvas, ctx];\n}\n\nfunction useTransform() {\n const ref = useRef(null);\n const local = useRef({\n x: 0,\n y: 0\n });\n const set = useCallback(point => {\n Object.assign(local.current, point);\n if (ref.current) ref.current.style.transform = `translate3d(${local.current.x}px, ${local.current.y}px, 0)`;\n }, []);\n return [ref, set];\n}\n\nconst _excluded$3 = [\"__refCount\"];\nconst getInputAtPath = (data, path) => {\n if (!data[path]) return null;\n const _data$path = data[path],\n input = _objectWithoutProperties(_data$path, _excluded$3);\n return input;\n};\nfunction useInput(path) {\n const store = useStoreContext();\n const [state, setState] = useState(getInputAtPath(store.getData(), path));\n const set = useCallback(value => store.setValueAtPath(path, value, true), [path, store]);\n const setSettings = useCallback(settings => store.setSettingsAtPath(path, settings), [path, store]);\n const disable = useCallback(flag => store.disableInputAtPath(path, flag), [path, store]);\n const emitOnEditStart = useCallback(() => store.emitOnEditStart(path), [path, store]);\n const emitOnEditEnd = useCallback(() => store.emitOnEditEnd(path), [path, store]);\n useEffect(() => {\n setState(getInputAtPath(store.getData(), path));\n const unsub = store.useStore.subscribe(s => getInputAtPath(s.data, path), setState, {\n equalityFn: shallow\n });\n return () => unsub();\n }, [store, path]);\n return [state, {\n set,\n setSettings,\n disable,\n storeId: store.storeId,\n emitOnEditStart,\n emitOnEditEnd\n }];\n}\n\nconst RangeGrid = styled('div', {\n variants: {\n hasRange: {\n true: {\n position: 'relative',\n display: 'grid',\n gridTemplateColumns: 'auto $sizes$numberInputMinWidth',\n columnGap: '$colGap',\n alignItems: 'center'\n }\n }\n }\n});\n\nconst Range = styled('div', {\n position: 'relative',\n width: '100%',\n height: 2,\n borderRadius: '$xs',\n backgroundColor: '$elevation1'\n});\nconst Scrubber = styled('div', {\n position: 'absolute',\n width: '$scrubberWidth',\n height: '$scrubberHeight',\n borderRadius: '$xs',\n boxShadow: '0 0 0 2px $colors$elevation2',\n backgroundColor: '$accent2',\n cursor: 'pointer',\n $active: 'none $accent1',\n $hover: 'none $accent3',\n variants: {\n position: {\n left: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n transform: 'translateX(calc(-0.5 * ($sizes$scrubberWidth + 4px)))'\n },\n right: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n transform: 'translateX(calc(0.5 * ($sizes$scrubberWidth + 4px)))'\n }\n }\n }\n});\nconst RangeWrapper = styled('div', {\n position: 'relative',\n $flex: '',\n height: '100%',\n cursor: 'pointer',\n touchAction: 'none'\n});\nconst Indicator = styled('div', {\n position: 'absolute',\n height: '100%',\n backgroundColor: '$accent2'\n});\n\nfunction RangeSlider({\n value,\n min,\n max,\n onDrag,\n step,\n initialValue\n}) {\n const ref = useRef(null);\n const scrubberRef = useRef(null);\n const rangeWidth = useRef(0);\n const scrubberWidth = useTh('sizes', 'scrubberWidth');\n const bind = useDrag(({\n event,\n first,\n xy: [x],\n movement: [mx],\n memo\n }) => {\n if (first) {\n const {\n width,\n left\n } = ref.current.getBoundingClientRect();\n rangeWidth.current = width - parseFloat(scrubberWidth);\n const targetIsScrub = (event === null || event === void 0 ? void 0 : event.target) === scrubberRef.current;\n memo = targetIsScrub ? value : invertedRange((x - left) / width, min, max);\n }\n const newValue = memo + invertedRange(mx / rangeWidth.current, 0, max - min);\n onDrag(sanitizeStep$1(newValue, {\n step,\n initialValue\n }));\n return memo;\n });\n const pos = range(value, min, max);\n return React.createElement(RangeWrapper, _extends({\n ref: ref\n }, bind()), React.createElement(Range, null, React.createElement(Indicator, {\n style: {\n left: 0,\n right: `${(1 - pos) * 100}%`\n }\n })), React.createElement(Scrubber, {\n ref: scrubberRef,\n style: {\n left: `calc(${pos} * (100% - ${scrubberWidth}))`\n }\n }));\n}\n\nconst DraggableLabel = React.memo(({\n label,\n onUpdate,\n step,\n innerLabelTrim\n}) => {\n const [dragging, setDragging] = useState(false);\n const bind = useDrag(({\n active,\n delta: [dx],\n event,\n memo: _memo = 0,\n first,\n last,\n target\n }) => {\n if (first) {\n const label = target;\n label.requestPointerLock();\n }\n if (last) {\n document.exitPointerLock();\n }\n setDragging(active);\n _memo += dx / 2;\n if (Math.abs(_memo) >= 1) {\n onUpdate(v => parseFloat(v) + Math.floor(_memo) * step * multiplyStep(event));\n _memo = 0;\n }\n return _memo;\n });\n return React.createElement(InnerNumberLabel, _extends({\n dragging: dragging,\n title: label.length > 1 ? label : ''\n }, bind()), label.slice(0, innerLabelTrim));\n});\nfunction Number$1({\n label,\n id,\n displayValue,\n onUpdate,\n onChange,\n settings,\n innerLabelTrim = 1\n}) {\n const InnerLabel = innerLabelTrim > 0 && React.createElement(DraggableLabel, {\n label: label,\n step: settings.step,\n onUpdate: onUpdate,\n innerLabelTrim: innerLabelTrim\n });\n return React.createElement(NumberInput, {\n id: id,\n value: String(displayValue),\n onUpdate: onUpdate,\n onChange: onChange,\n innerLabel: InnerLabel\n });\n}\nfunction NumberComponent() {\n const props = useInputContext();\n const {\n label,\n value,\n onUpdate,\n settings,\n id\n } = props;\n const {\n min,\n max\n } = settings;\n const hasRange = max !== Infinity && min !== -Infinity;\n return React.createElement(Row, {\n input: true\n }, React.createElement(Label, null, label), React.createElement(RangeGrid, {\n hasRange: hasRange\n }, hasRange && React.createElement(RangeSlider, _extends({\n value: parseFloat(value),\n onDrag: onUpdate\n }, settings)), React.createElement(Number$1, _extends({}, props, {\n id: id,\n label: \"value\",\n innerLabelTrim: hasRange ? 0 : 1\n }))));\n}\n\nconst {\n sanitizeStep\n } = props$3,\n rest = _objectWithoutProperties(props$3, [\"sanitizeStep\"]);\nvar number = createInternalPlugin(_objectSpread2({\n component: NumberComponent\n}, rest));\n\nconst schema$2 = (_o, s) => v8n().schema({\n options: v8n().passesAnyOf(v8n().object(), v8n().array())\n}).test(s);\nconst sanitize$2 = (value, {\n values\n}) => {\n if (values.indexOf(value) < 0) throw Error(`Selected value doesn't match Select options`);\n return value;\n};\nconst format = (value, {\n values\n}) => {\n return values.indexOf(value);\n};\nconst normalize$1 = input => {\n let {\n value,\n options\n } = input;\n let keys;\n let values;\n if (Array.isArray(options)) {\n values = options;\n keys = options.map(o => String(o));\n } else {\n values = Object.values(options);\n keys = Object.keys(options);\n }\n if (!('value' in input)) value = values[0];else if (!values.includes(value)) {\n keys.unshift(String(value));\n values.unshift(value);\n }\n if (!Object.values(options).includes(value)) options[String(value)] = value;\n return {\n value,\n settings: {\n keys,\n values\n }\n };\n};\n\nvar props$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n schema: schema$2,\n sanitize: sanitize$2,\n format: format,\n normalize: normalize$1\n});\n\nconst SelectContainer = styled('div', {\n $flexCenter: '',\n position: 'relative',\n '> svg': {\n pointerEvents: 'none',\n position: 'absolute',\n right: '$md'\n }\n});\nconst NativeSelect = styled('select', {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n opacity: 0\n});\nconst PresentationalSelect = styled('div', {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n height: '$rowHeight',\n backgroundColor: '$elevation3',\n borderRadius: '$sm',\n padding: '0 $sm',\n cursor: 'pointer',\n [`${NativeSelect}:focus + &`]: {\n $focusStyle: ''\n },\n [`${NativeSelect}:hover + &`]: {\n $hoverStyle: ''\n }\n});\n\nfunction Select({\n displayValue,\n value,\n onUpdate,\n id,\n settings,\n disabled\n}) {\n const {\n keys,\n values\n } = settings;\n const lastDisplayedValue = useRef();\n if (value === values[displayValue]) {\n lastDisplayedValue.current = keys[displayValue];\n }\n return React.createElement(SelectContainer, null, React.createElement(NativeSelect, {\n id: id,\n value: displayValue,\n onChange: e => onUpdate(values[Number(e.currentTarget.value)]),\n disabled: disabled\n }, keys.map((key, index) => React.createElement(\"option\", {\n key: key,\n value: index\n }, key))), React.createElement(PresentationalSelect, null, lastDisplayedValue.current), React.createElement(Chevron, {\n toggled: true\n }));\n}\nfunction SelectComponent() {\n const {\n label,\n value,\n displayValue,\n onUpdate,\n id,\n disabled,\n settings\n } = useInputContext();\n return React.createElement(Row, {\n input: true\n }, React.createElement(Label, null, label), React.createElement(Select, {\n id: id,\n value: value,\n displayValue: displayValue,\n onUpdate: onUpdate,\n settings: settings,\n disabled: disabled\n }));\n}\n\nvar select = createInternalPlugin(_objectSpread2({\n component: SelectComponent\n}, props$2));\n\nconst schema$1 = o => v8n().string().test(o);\nconst sanitize$1 = v => {\n if (typeof v !== 'string') throw Error(`Invalid string`);\n return v;\n};\nconst normalize = ({\n value,\n editable: _editable = true,\n rows: _rows = false\n}) => {\n return {\n value,\n settings: {\n editable: _editable,\n rows: typeof _rows === 'number' ? _rows : _rows ? 5 : 0\n }\n };\n};\n\nvar props$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n schema: schema$1,\n sanitize: sanitize$1,\n normalize: normalize\n});\n\nconst _excluded$2 = [\"displayValue\", \"onUpdate\", \"onChange\", \"editable\"];\nconst NonEditableString = styled('div', {\n whiteSpace: 'pre-wrap'\n});\nfunction String$1(_ref) {\n let {\n displayValue,\n onUpdate,\n onChange,\n editable = true\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded$2);\n if (editable) return React.createElement(ValueInput, _extends({\n value: displayValue,\n onUpdate: onUpdate,\n onChange: onChange\n }, props));\n return React.createElement(NonEditableString, null, displayValue);\n}\nfunction StringComponent() {\n const {\n label,\n settings,\n displayValue,\n onUpdate,\n onChange\n } = useInputContext();\n return React.createElement(Row, {\n input: true\n }, React.createElement(Label, null, label), React.createElement(String$1, _extends({\n displayValue: displayValue,\n onUpdate: onUpdate,\n onChange: onChange\n }, settings)));\n}\n\nvar string = createInternalPlugin(_objectSpread2({\n component: StringComponent\n}, props$1));\n\nconst schema = o => v8n().boolean().test(o);\nconst sanitize = v => {\n if (typeof v !== 'boolean') throw Error('Invalid boolean');\n return v;\n};\n\nvar props = /*#__PURE__*/Object.freeze({\n __proto__: null,\n schema: schema,\n sanitize: sanitize\n});\n\nconst StyledInputWrapper = styled('div', {\n position: 'relative',\n $flex: '',\n height: '$rowHeight',\n input: {\n $reset: '',\n height: 0,\n width: 0,\n opacity: 0,\n margin: 0\n },\n label: {\n position: 'relative',\n $flexCenter: '',\n userSelect: 'none',\n cursor: 'pointer',\n height: '$checkboxSize',\n width: '$checkboxSize',\n backgroundColor: '$elevation3',\n borderRadius: '$sm',\n $hover: ''\n },\n 'input:focus + label': {\n $focusStyle: ''\n },\n 'input:focus:checked + label, input:checked + label:hover': {\n $hoverStyle: '$accent3'\n },\n 'input + label:active': {\n backgroundColor: '$accent1'\n },\n 'input:checked + label:active': {\n backgroundColor: '$accent1'\n },\n 'label > svg': {\n display: 'none',\n width: '90%',\n height: '90%',\n stroke: '$highlight3'\n },\n 'input:checked + label': {\n backgroundColor: '$accent2'\n },\n 'input:checked + label > svg': {\n display: 'block'\n }\n});\n\nfunction Boolean({\n value,\n onUpdate,\n id,\n disabled\n}) {\n return React.createElement(StyledInputWrapper, null, React.createElement(\"input\", {\n id: id,\n type: \"checkbox\",\n checked: value,\n onChange: e => onUpdate(e.currentTarget.checked),\n disabled: disabled\n }), React.createElement(\"label\", {\n htmlFor: id\n }, React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M5 13l4 4L19 7\"\n }))));\n}\nfunction BooleanComponent() {\n const {\n label,\n value,\n onUpdate,\n disabled,\n id\n } = useInputContext();\n return React.createElement(Row, {\n input: true\n }, React.createElement(Label, null, label), React.createElement(Boolean, {\n value: value,\n onUpdate: onUpdate,\n id: id,\n disabled: disabled\n }));\n}\n\nvar boolean = createInternalPlugin(_objectSpread2({\n component: BooleanComponent\n}, props));\n\nconst _excluded$1 = [\"locked\"];\nfunction Coordinate({\n value,\n id,\n valueKey,\n settings,\n onUpdate,\n innerLabelTrim\n}) {\n const valueRef = useRef(value[valueKey]);\n valueRef.current = value[valueKey];\n const setValue = useCallback(newValue => onUpdate({\n [valueKey]: sanitizeValue({\n type: 'NUMBER',\n value: valueRef.current,\n settings\n }, newValue)\n }), [onUpdate, settings, valueKey]);\n const number = useInputSetters({\n type: 'NUMBER',\n value: value[valueKey],\n settings,\n setValue\n });\n return React.createElement(Number$1, {\n id: id,\n label: valueKey,\n value: value[valueKey],\n displayValue: number.displayValue,\n onUpdate: number.onUpdate,\n onChange: number.onChange,\n settings: settings,\n innerLabelTrim: innerLabelTrim\n });\n}\nconst Container = styled('div', {\n display: 'grid',\n columnGap: '$colGap',\n gridAutoFlow: 'column dense',\n alignItems: 'center',\n variants: {\n withLock: {\n true: {\n gridTemplateColumns: '10px auto',\n '> svg': {\n cursor: 'pointer'\n }\n }\n }\n }\n});\nfunction Lock(_ref) {\n let {\n locked\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded$1);\n return React.createElement(\"svg\", _extends({\n width: \"10\",\n height: \"10\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), locked ? React.createElement(\"path\", {\n d: \"M5 4.63601C5 3.76031 5.24219 3.1054 5.64323 2.67357C6.03934 2.24705 6.64582 1.9783 7.5014 1.9783C8.35745 1.9783 8.96306 2.24652 9.35823 2.67208C9.75838 3.10299 10 3.75708 10 4.63325V5.99999H5V4.63601ZM4 5.99999V4.63601C4 3.58148 4.29339 2.65754 4.91049 1.99307C5.53252 1.32329 6.42675 0.978302 7.5014 0.978302C8.57583 0.978302 9.46952 1.32233 10.091 1.99162C10.7076 2.65557 11 3.57896 11 4.63325V5.99999H12C12.5523 5.99999 13 6.44771 13 6.99999V13C13 13.5523 12.5523 14 12 14H3C2.44772 14 2 13.5523 2 13V6.99999C2 6.44771 2.44772 5.99999 3 5.99999H4ZM3 6.99999H12V13H3V6.99999Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }) : React.createElement(\"path\", {\n d: \"M9 3.63601C9 2.76044 9.24207 2.11211 9.64154 1.68623C10.0366 1.26502 10.6432 1 11.5014 1C12.4485 1 13.0839 1.30552 13.4722 1.80636C13.8031 2.23312 14 2.84313 14 3.63325H15C15 2.68242 14.7626 1.83856 14.2625 1.19361C13.6389 0.38943 12.6743 0 11.5014 0C10.4294 0 9.53523 0.337871 8.91218 1.0021C8.29351 1.66167 8 2.58135 8 3.63601V6H1C0.447715 6 0 6.44772 0 7V13C0 13.5523 0.447715 14 1 14H10C10.5523 14 11 13.5523 11 13V7C11 6.44772 10.5523 6 10 6H9V3.63601ZM1 7H10V13H1V7Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }));\n}\nfunction Vector({\n value,\n onUpdate,\n settings,\n innerLabelTrim\n}) {\n const {\n id,\n setSettings\n } = useInputContext();\n const {\n lock,\n locked\n } = settings;\n return React.createElement(Container, {\n withLock: lock\n }, lock && React.createElement(Lock, {\n locked: locked,\n onClick: () => setSettings({\n locked: !locked\n })\n }), Object.keys(value).map((key, i) => React.createElement(Coordinate, {\n id: i === 0 ? id : `${id}.${key}`,\n key: key,\n valueKey: key,\n value: value,\n settings: settings[key],\n onUpdate: onUpdate,\n innerLabelTrim: innerLabelTrim\n })));\n}\n\nconst normalizeKeyedNumberSettings = (value, settings) => {\n const _settings = {};\n let maxStep = 0;\n let minPad = Infinity;\n Object.entries(value).forEach(([key, v]) => {\n _settings[key] = normalize$2(_objectSpread2({\n value: v\n }, settings[key])).settings;\n maxStep = Math.max(maxStep, _settings[key].step);\n minPad = Math.min(minPad, _settings[key].pad);\n });\n for (let key in _settings) {\n const {\n step,\n min,\n max\n } = settings[key] || {};\n if (!isFinite(step) && (!isFinite(min) || !isFinite(max))) {\n _settings[key].step = maxStep;\n _settings[key].pad = minPad;\n }\n }\n return _settings;\n};\n\nconst _excluded = [\"lock\"],\n _excluded2 = [\"value\"];\nfunction getVectorSchema(dimension) {\n const isVectorArray = v8n().array().length(dimension).every.number();\n const isVectorObject = o => {\n if (!o || typeof o !== 'object') return false;\n const values = Object.values(o);\n return values.length === dimension && values.every(v => isFinite(v));\n };\n return o => {\n return isVectorArray.test(o) || isVectorObject(o);\n };\n}\nfunction getVectorType(value) {\n return Array.isArray(value) ? 'array' : 'object';\n}\nfunction convert(value, format, keys) {\n if (getVectorType(value) === format) return value;\n return format === 'array' ? Object.values(value) : mapArrayToKeys(value, keys);\n}\nconst sanitizeVector = (value, settings, previousValue) => {\n const _value = convert(value, 'object', settings.keys);\n for (let key in _value) _value[key] = sanitize$3(_value[key], settings[key]);\n const _valueKeys = Object.keys(_value);\n let newValue = {};\n if (_valueKeys.length === settings.keys.length) newValue = _value;else {\n const _previousValue = convert(previousValue, 'object', settings.keys);\n if (_valueKeys.length === 1 && settings.locked) {\n const lockedKey = _valueKeys[0];\n const lockedCoordinate = _value[lockedKey];\n const previousLockedCoordinate = _previousValue[lockedKey];\n const ratio = previousLockedCoordinate !== 0 ? lockedCoordinate / previousLockedCoordinate : 1;\n for (let key in _previousValue) {\n if (key === lockedKey) newValue[lockedKey] = lockedCoordinate;else newValue[key] = _previousValue[key] * ratio;\n }\n } else {\n newValue = _objectSpread2(_objectSpread2({}, _previousValue), _value);\n }\n }\n return convert(newValue, settings.format, settings.keys);\n};\nconst formatVector = (value, settings) => convert(value, 'object', settings.keys);\nconst isNumberSettings = o => !!o && ('step' in o || 'min' in o || 'max' in o);\nfunction normalizeVector(value, settings, defaultKeys = []) {\n const {\n lock = false\n } = settings,\n _settings = _objectWithoutProperties(settings, _excluded);\n const format = Array.isArray(value) ? 'array' : 'object';\n const keys = format === 'object' ? Object.keys(value) : defaultKeys;\n const _value = convert(value, 'object', keys);\n const mergedSettings = isNumberSettings(_settings) ? keys.reduce((acc, k) => Object.assign(acc, {\n [k]: _settings\n }), {}) : _settings;\n const numberSettings = normalizeKeyedNumberSettings(_value, mergedSettings);\n return {\n value: format === 'array' ? value : _value,\n settings: _objectSpread2(_objectSpread2({}, numberSettings), {}, {\n format,\n keys,\n lock,\n locked: false\n })\n };\n}\nfunction getVectorPlugin(defaultKeys) {\n return {\n schema: getVectorSchema(defaultKeys.length),\n normalize: _ref => {\n let {\n value\n } = _ref,\n settings = _objectWithoutProperties(_ref, _excluded2);\n return normalizeVector(value, settings, defaultKeys);\n },\n format: (value, settings) => formatVector(value, settings),\n sanitize: (value, settings, prevValue) => sanitizeVector(value, settings, prevValue)\n };\n}\n\nexport { ThemeContext as $, useInputSetters as A, Plugins as B, InputContext as C, StyledInputWrapper$1 as D, useStoreContext as E, useCanvas2d as F, useInput as G, log as H, Indicator as I, StyledTitle as J, Chevron as K, Label as L, StyledWrapper as M, StyledContent as N, Overlay as O, Portal as P, StyledFolder as Q, Row as R, Scrubber as S, StyledInputRow as T, debounce as U, ValueInput as V, globalStyles as W, PanelSettingsContext as X, StoreContext as Y, mergeTheme as Z, _objectSpread2 as _, Vector as a, register as a0, LevaInputs as a1, select as a2, number as a3, string as a4, boolean as a5, LevaStoreProvider as a6, String$1 as a7, Number$1 as a8, Boolean as a9, Select as aa, InnerLabel as ab, pad as ac, evaluate as ad, createPlugin as ae, keyframes as af, getVectorSchema as ag, getVectorType as ah, sanitizeVector as ai, formatVector as aj, normalizeVector as ak, useTransform as b, createInternalPlugin as c, useTh as d, useDrag as e, _extends as f, getVectorPlugin as g, clamp as h, _objectWithoutProperties as i, invertedRange as j, sanitizeStep as k, RangeWrapper as l, multiplyStep as m, normalizeKeyedNumberSettings as n, omit as o, pick as p, Range as q, range as r, styled as s, getUid as t, useInputContext as u, SpecialInputs as v, warn as w, LevaErrors as x, updateInput as y, normalizeInput as z };\n","for(var r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return\"string\"==typeof r?r.length>0:\"number\"==typeof r},n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},e=function(r){var t=Math.round(100*r)/100;return Math.round(255*t)===255*r?t:Math.round(1e3*r)/1e3},u=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},o=function(r){return(r=isFinite(r)?r%360:0)<0?r+360:r},a=function(r,t){return void 0===t&&(t=0),n(r,t)%360},i=function(r){return{r:u(r.r,0,255),g:u(r.g,0,255),b:u(r.b,0,255),a:u(r.a)}},s=function(r){return{r:n(r.r),g:n(r.g),b:n(r.b),a:e(r.a)}},d=/^#([0-9a-f]{3,8})$/i,h=function(r,t){var n=r.charCodeAt(t);return(15&n)+9*(n>>6)},b=function(r,t){return h(r,t)<<4|h(r,t+1)},f=[],g=0;g<256;g++)f.push((g<16?\"0\":\"\")+g.toString(16));var c=function(r){return f[u(r,0,255)]},v=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,o=Math.max(t,n,e),a=o-Math.min(t,n,e),i=a?o===t?(n-e)/a:o===n?2+(e-t)/a:4+(t-n)/a:0;return{h:60*(i<0?i+6:i),s:o?a/o*100:0,v:o/255*100,a:u}},l=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var o=Math.floor(t),a=e*(1-n),i=e*(1-(t-o)*n),s=e*(1-(1-t+o)*n),d=o%6;return{r:255*[e,i,a,a,s,e][d],g:255*[s,e,e,i,a,a][d],b:255*[a,a,s,e,e,i][d],a:u}},p=function(r){return{h:o(r.h),s:u(r.s,0,100),l:u(r.l,0,100),a:u(r.a)}},m=function(r){return{h:a(r.h),s:n(r.s),l:n(r.l),a:e(r.a)}},y=function(r){return l((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},N=function(r){return{h:(t=v(r)).h,s:(u=(200-(n=t.s))*(e=t.v)/100)>0&&u<200?n*e/100/(u<=100?u:200-u)*100:0,l:u/2,a:t.a};var t,n,e,u},M=/^hsla?\\(\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(deg|rad|grad|turn)?\\s*,\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)%\\s*,\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)%\\s*(?:,\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(%)?\\s*)?\\)$/i,x=/^hsla?\\(\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(deg|rad|grad|turn)?\\s+([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)%\\s+([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)%\\s*(?:\\/\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(%)?\\s*)?\\)$/i,H=/^rgba?\\(\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(%)?\\s*,\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(%)?\\s*,\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(%)?\\s*(?:,\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(%)?\\s*)?\\)$/i,$=/^rgba?\\(\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(%)?\\s+([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(%)?\\s+([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(%)?\\s*(?:\\/\\s*([+-]?(?:\\d*\\.\\d+|\\d+)(?:e[+-]?\\d+)?)(%)?\\s*)?\\)$/i,w={string:[[function(r){if(!d.test(r))return null;var t=r.length;return t<=5?{r:17*h(r,1),g:17*h(r,2),b:17*h(r,3),a:5===t?17*h(r,4)/255:1}:7===t||9===t?{r:b(r,1),g:b(r,3),b:b(r,5),a:9===t?b(r,7)/255:1}:null},\"hex\"],[function(r){var t=H.exec(r)||$.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:i({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},\"rgb\"],[function(t){var n=M.exec(t)||x.exec(t);if(!n)return null;var e,u,o=p({h:(e=n[1],u=n[2],void 0===u&&(u=\"deg\"),Number(e)*(r[u.toLowerCase()]||1)),s:Number(n[3]),l:Number(n[4]),a:void 0===n[5]?1:Number(n[5])/(n[6]?100:1)});return y(o)},\"hsl\"]],object:[[function(r){var n=r.r,e=r.g,u=r.b,o=r.a,a=void 0===o?1:o;return t(n)&&t(e)&&t(u)?i({r:Number(n),g:Number(e),b:Number(u),a:Number(a)}):null},\"rgb\"],[function(r){var n=r.h,e=r.s,u=r.l,o=r.a,a=void 0===o?1:o;if(!t(n)||!t(e)||!t(u))return null;var i=p({h:Number(n),s:Number(e),l:Number(u),a:Number(a)});return y(i)},\"hsl\"],[function(r){var n=r.h,e=r.s,a=r.v,i=r.a,s=void 0===i?1:i;if(!t(n)||!t(e)||!t(a))return null;var d=function(r){return{h:o(r.h),s:u(r.s,0,100),v:u(r.v,0,100),a:u(r.a)}}({h:Number(n),s:Number(e),v:Number(a),a:Number(s)});return l(d)},\"hsv\"]]},j=function(r,t){for(var n=0;n<t.length;n++){var e=t[n][0](r);if(e)return[e,t[n][1]]}return[null,void 0]},S=function(r){return\"string\"==typeof r?j(r.trim(),w.string):\"object\"==typeof r&&null!==r?j(r,w.object):[null,void 0]},k=function(r){return S(r)[1]},C=function(r,t){var n=N(r);return{h:n.h,s:u(n.s+100*t,0,100),l:n.l,a:n.a}},E=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},L=function(r,t){var n=N(r);return{h:n.h,s:n.s,l:u(n.l+100*t,0,100),a:n.a}},R=function(){function r(r){this.parsed=S(r)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return null!==this.parsed},r.prototype.brightness=function(){return n(E(this.rgba),2)},r.prototype.isDark=function(){return E(this.rgba)<.5},r.prototype.isLight=function(){return E(this.rgba)>=.5},r.prototype.toHex=function(){return r=s(this.rgba),t=r.r,e=r.g,u=r.b,a=(o=r.a)<1?c(n(255*o)):\"\",\"#\"+c(t)+c(e)+c(u)+a;var r,t,e,u,o,a},r.prototype.toRgb=function(){return s(this.rgba)},r.prototype.toRgbString=function(){return r=s(this.rgba),t=r.r,n=r.g,e=r.b,(u=r.a)<1?\"rgba(\"+t+\", \"+n+\", \"+e+\", \"+u+\")\":\"rgb(\"+t+\", \"+n+\", \"+e+\")\";var r,t,n,e,u},r.prototype.toHsl=function(){return m(N(this.rgba))},r.prototype.toHslString=function(){return r=m(N(this.rgba)),t=r.h,n=r.s,e=r.l,(u=r.a)<1?\"hsla(\"+t+\", \"+n+\"%, \"+e+\"%, \"+u+\")\":\"hsl(\"+t+\", \"+n+\"%, \"+e+\"%)\";var r,t,n,e,u},r.prototype.toHsv=function(){return r=v(this.rgba),{h:a(r.h),s:n(r.s),v:n(r.v),a:e(r.a)};var r},r.prototype.invert=function(){return q({r:255-(r=this.rgba).r,g:255-r.g,b:255-r.b,a:r.a});var r},r.prototype.saturate=function(r){return void 0===r&&(r=.1),q(C(this.rgba,r))},r.prototype.desaturate=function(r){return void 0===r&&(r=.1),q(C(this.rgba,-r))},r.prototype.grayscale=function(){return q(C(this.rgba,-1))},r.prototype.lighten=function(r){return void 0===r&&(r=.1),q(L(this.rgba,r))},r.prototype.darken=function(r){return void 0===r&&(r=.1),q(L(this.rgba,-r))},r.prototype.rotate=function(r){return void 0===r&&(r=15),this.hue(N(this.rgba).h+r)},r.prototype.alpha=function(r){return\"number\"==typeof r?q({r:(t=this.rgba).r,g:t.g,b:t.b,a:r}):e(this.rgba.a);var t},r.prototype.hue=function(r){var t=N(this.rgba);return\"number\"==typeof r?q({h:r,s:t.s,l:t.l,a:t.a}):a(t.h)},r.prototype.isEqual=function(r){return this.toHex()===q(r).toHex()},r}(),q=function(r){return r instanceof R?r:new R(r)},A=[],D=function(r){r.forEach(function(r){A.indexOf(r)<0&&(r(R,w),A.push(r))})},F=function(){return new R({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})};export{R as Colord,q as colord,D as extend,k as getFormat,F as random};\n","var e=function(e,f){var a={white:\"#ffffff\",bisque:\"#ffe4c4\",blue:\"#0000ff\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",azure:\"#f0ffff\",whitesmoke:\"#f5f5f5\",papayawhip:\"#ffefd5\",plum:\"#dda0dd\",blanchedalmond:\"#ffebcd\",black:\"#000000\",gold:\"#ffd700\",goldenrod:\"#daa520\",gainsboro:\"#dcdcdc\",cornsilk:\"#fff8dc\",cornflowerblue:\"#6495ed\",burlywood:\"#deb887\",aquamarine:\"#7fffd4\",beige:\"#f5f5dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkkhaki:\"#bdb76b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",darkgrey:\"#a9a9a9\",peachpuff:\"#ffdab9\",darkmagenta:\"#8b008b\",darkred:\"#8b0000\",darkorchid:\"#9932cc\",darkorange:\"#ff8c00\",darkslateblue:\"#483d8b\",gray:\"#808080\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",wheat:\"#f5deb3\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",ghostwhite:\"#f8f8ff\",darkviolet:\"#9400d3\",magenta:\"#ff00ff\",green:\"#008000\",dodgerblue:\"#1e90ff\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",blueviolet:\"#8a2be2\",forestgreen:\"#228b22\",lawngreen:\"#7cfc00\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",fuchsia:\"#ff00ff\",brown:\"#a52a2a\",maroon:\"#800000\",mediumblue:\"#0000cd\",lightcoral:\"#f08080\",darkturquoise:\"#00ced1\",lightcyan:\"#e0ffff\",ivory:\"#fffff0\",lightyellow:\"#ffffe0\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",linen:\"#faf0e6\",mediumaquamarine:\"#66cdaa\",lemonchiffon:\"#fffacd\",lime:\"#00ff00\",khaki:\"#f0e68c\",mediumseagreen:\"#3cb371\",limegreen:\"#32cd32\",mediumspringgreen:\"#00fa9a\",lightskyblue:\"#87cefa\",lightblue:\"#add8e6\",midnightblue:\"#191970\",lightpink:\"#ffb6c1\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",mintcream:\"#f5fffa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",navajowhite:\"#ffdead\",navy:\"#000080\",mediumvioletred:\"#c71585\",powderblue:\"#b0e0e6\",palegoldenrod:\"#eee8aa\",oldlace:\"#fdf5e6\",paleturquoise:\"#afeeee\",mediumturquoise:\"#48d1cc\",mediumorchid:\"#ba55d3\",rebeccapurple:\"#663399\",lightsteelblue:\"#b0c4de\",mediumslateblue:\"#7b68ee\",thistle:\"#d8bfd8\",tan:\"#d2b48c\",orchid:\"#da70d6\",mediumpurple:\"#9370db\",purple:\"#800080\",pink:\"#ffc0cb\",skyblue:\"#87ceeb\",springgreen:\"#00ff7f\",palegreen:\"#98fb98\",red:\"#ff0000\",yellow:\"#ffff00\",slateblue:\"#6a5acd\",lavenderblush:\"#fff0f5\",peru:\"#cd853f\",palevioletred:\"#db7093\",violet:\"#ee82ee\",teal:\"#008080\",slategray:\"#708090\",slategrey:\"#708090\",aliceblue:\"#f0f8ff\",darkseagreen:\"#8fbc8f\",darkolivegreen:\"#556b2f\",greenyellow:\"#adff2f\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",tomato:\"#ff6347\",silver:\"#c0c0c0\",sienna:\"#a0522d\",lavender:\"#e6e6fa\",lightgreen:\"#90ee90\",orange:\"#ffa500\",orangered:\"#ff4500\",steelblue:\"#4682b4\",royalblue:\"#4169e1\",turquoise:\"#40e0d0\",yellowgreen:\"#9acd32\",salmon:\"#fa8072\",saddlebrown:\"#8b4513\",sandybrown:\"#f4a460\",rosybrown:\"#bc8f8f\",darksalmon:\"#e9967a\",lightgoldenrodyellow:\"#fafad2\",snow:\"#fffafa\",lightgrey:\"#d3d3d3\",lightgray:\"#d3d3d3\",dimgray:\"#696969\",dimgrey:\"#696969\",olivedrab:\"#6b8e23\",olive:\"#808000\"},r={};for(var d in a)r[a[d]]=d;var l={};e.prototype.toName=function(f){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return\"transparent\";var d,i,n=r[this.toHex()];if(n)return n;if(null==f?void 0:f.closest){var o=this.toRgb(),t=1/0,b=\"black\";if(!l.length)for(var c in a)l[c]=new e(a[c]).toRgb();for(var g in a){var u=(d=o,i=l[g],Math.pow(d.r-i.r,2)+Math.pow(d.g-i.g,2)+Math.pow(d.b-i.b,2));u<t&&(t=u,b=g)}return b}};f.string.push([function(f){var r=f.toLowerCase(),d=\"transparent\"===r?\"#0000\":a[r];return d?new e(d).toRgb():null},\"name\"])};export{e as default};\n","import e,{useRef as r,useMemo as n,useEffect as t,useState as o,useCallback as a,useLayoutEffect as u}from\"react\";function l(){return(l=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e}).apply(this,arguments)}function c(e,r){if(null==e)return{};var n,t,o={},a=Object.keys(e);for(t=0;t<a.length;t++)r.indexOf(n=a[t])>=0||(o[n]=e[n]);return o}function i(e){var n=r(e),t=r(function(e){n.current&&n.current(e)});return n.current=e,t.current}var s=function(e,r,n){return void 0===r&&(r=0),void 0===n&&(n=1),e>n?n:e<r?r:e},f=function(e){return\"touches\"in e},d=function(e){return e&&e.ownerDocument.defaultView||self},v=function(e,r,n){var t=e.getBoundingClientRect(),o=f(r)?function(e,r){for(var n=0;n<e.length;n++)if(e[n].identifier===r)return e[n];return e[0]}(r.touches,n):r;return{left:s((o.pageX-(t.left+d(e).pageXOffset))/t.width),top:s((o.pageY-(t.top+d(e).pageYOffset))/t.height)}},h=function(e){!f(e)&&e.preventDefault()},g=e.memo(function(o){var a=o.onMove,u=o.onKey,s=o.onEnd,g=c(o,[\"onMove\",\"onKey\",\"onEnd\"]),m=r(null),p=i(a),b=i(u),_=i(s),E=r(null),C=r(!1),x=n(function(){var e=function(e){h(e),(f(e)?e.touches.length>0:e.buttons>0)&&m.current?p(v(m.current,e,E.current)):(n(!1),_())},r=function(){n(!1),_()};function n(n){var t=C.current,o=d(m.current),a=n?o.addEventListener:o.removeEventListener;a(t?\"touchmove\":\"mousemove\",e),a(t?\"touchend\":\"mouseup\",r)}return[function(e){var r=e.nativeEvent,t=m.current;if(t&&(h(r),!function(e,r){return r&&!f(e)}(r,C.current)&&t)){if(f(r)){C.current=!0;var o=r.changedTouches||[];o.length&&(E.current=o[0].identifier)}t.focus(),p(v(t,r,E.current)),n(!0)}},function(e){var r=e.which||e.keyCode;r<37||r>40||(e.preventDefault(),b({left:39===r?.05:37===r?-.05:0,top:40===r?.05:38===r?-.05:0}))},function(e){var r=e.which||e.keyCode;r>=37&&r<=40&&_()},n]},[b,p,_]),H=x[0],M=x[1],N=x[2],w=x[3];return t(function(){return w},[w]),e.createElement(\"div\",l({},g,{onTouchStart:H,onMouseDown:H,className:\"react-colorful__interactive\",ref:m,onKeyDown:M,onKeyUp:N,tabIndex:0,role:\"slider\"}))}),m=function(e){return e.filter(Boolean).join(\" \")},p=function(r){var n=r.color,t=r.left,o=r.top,a=void 0===o?.5:o,u=m([\"react-colorful__pointer\",r.className]);return e.createElement(\"div\",{className:u,style:{top:100*a+\"%\",left:100*t+\"%\"}},e.createElement(\"div\",{className:\"react-colorful__pointer-fill\",style:{backgroundColor:n}}))},b=function(e,r,n){return void 0===r&&(r=0),void 0===n&&(n=Math.pow(10,r)),Math.round(n*e)/n},_={grad:.9,turn:360,rad:360/(2*Math.PI)},E=function(e){return L(C(e))},C=function(e){return\"#\"===e[0]&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?b(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:8===e.length?b(parseInt(e.substring(6,8),16)/255,2):1}},x=function(e,r){return void 0===r&&(r=\"deg\"),Number(e)*(_[r]||1)},H=function(e){var r=/hsla?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?N({h:x(r[1],r[2]),s:Number(r[3]),l:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},M=H,N=function(e){var r=e.s,n=e.l;return{h:e.h,s:(r*=(n<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:e.a}},w=function(e){return B(I(e))},y=function(e){var r=e.s,n=e.v,t=e.a,o=(200-r)*n/100;return{h:b(e.h),s:b(o>0&&o<200?r*n/100/(o<=100?o:200-o)*100:0),l:b(o/2),a:b(t,2)}},k=function(e){var r=y(e);return\"hsl(\"+r.h+\", \"+r.s+\"%, \"+r.l+\"%)\"},q=function(e){var r=y(e);return\"hsla(\"+r.h+\", \"+r.s+\"%, \"+r.l+\"%, \"+r.a+\")\"},I=function(e){var r=e.h,n=e.s,t=e.v,o=e.a;r=r/360*6,n/=100,t/=100;var a=Math.floor(r),u=t*(1-n),l=t*(1-(r-a)*n),c=t*(1-(1-r+a)*n),i=a%6;return{r:b(255*[t,l,u,u,c,t][i]),g:b(255*[c,t,t,l,u,u][i]),b:b(255*[u,u,c,t,t,l][i]),a:b(o,2)}},O=function(e){var r=/hsva?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?A({h:x(r[1],r[2]),s:Number(r[3]),v:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},D=O,j=function(e){var r=/rgba?\\(?\\s*(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?L({r:Number(r[1])/(r[2]?100/255:1),g:Number(r[3])/(r[4]?100/255:1),b:Number(r[5])/(r[6]?100/255:1),a:void 0===r[7]?1:Number(r[7])/(r[8]?100:1)}):{h:0,s:0,v:0,a:1}},z=j,K=function(e){var r=e.toString(16);return r.length<2?\"0\"+r:r},B=function(e){var r=e.r,n=e.g,t=e.b,o=e.a,a=o<1?K(b(255*o)):\"\";return\"#\"+K(r)+K(n)+K(t)+a},L=function(e){var r=e.r,n=e.g,t=e.b,o=e.a,a=Math.max(r,n,t),u=a-Math.min(r,n,t),l=u?a===r?(n-t)/u:a===n?2+(t-r)/u:4+(r-n)/u:0;return{h:60*(l<0?l+6:l),s:a?u/a*100:0,v:a/255*100,a:o}},A=function(e){return{h:b(e.h),s:b(e.s),v:b(e.v),a:b(e.a,2)}},R=e.memo(function(r){var n=r.hue,t=r.onChange,o=r.onChangeEnd,a=m([\"react-colorful__hue\",r.className]);return e.createElement(\"div\",{className:a},e.createElement(g,{onMove:function(e){t({h:360*e.left})},onKey:function(e){t({h:s(n+360*e.left,0,360)})},onEnd:o,\"aria-label\":\"Hue\",\"aria-valuenow\":b(n),\"aria-valuemax\":\"360\",\"aria-valuemin\":\"0\"},e.createElement(p,{className:\"react-colorful__hue-pointer\",left:n/360,color:k({h:n,s:100,v:100,a:1})})))}),S=e.memo(function(r){var n=r.hsva,t=r.onChange,o=r.onChangeEnd,a={backgroundColor:k({h:n.h,s:100,v:100,a:1})};return e.createElement(\"div\",{className:\"react-colorful__saturation\",style:a},e.createElement(g,{onMove:function(e){t({s:100*e.left,v:100-100*e.top})},onKey:function(e){t({s:s(n.s+100*e.left,0,100),v:s(n.v-100*e.top,0,100)})},onEnd:o,\"aria-label\":\"Color\",\"aria-valuetext\":\"Saturation \"+b(n.s)+\"%, Brightness \"+b(n.v)+\"%\"},e.createElement(p,{className:\"react-colorful__saturation-pointer\",top:1-n.v/100,left:n.s/100,color:k(n)})))}),T=function(e,r){if(e===r)return!0;for(var n in e)if(e[n]!==r[n])return!1;return!0},F=function(e,r){return e.replace(/\\s/g,\"\")===r.replace(/\\s/g,\"\")},P=function(e,r){return e.toLowerCase()===r.toLowerCase()||T(C(e),C(r))};function X(e,n,u,l){var c=i(u),s=i(l),f=o(function(){return e.toHsva(n)}),d=f[0],v=f[1],h=r({color:n,hsva:d}),g=r(!1);t(function(){if(!e.equal(n,h.current.color)){var r=e.toHsva(n);h.current={hsva:r,color:n},v(r),g.current=!1}},[n,e]),t(function(){var r;T(d,h.current.hsva)||e.equal(r=e.fromHsva(d),h.current.color)||(h.current={hsva:d,color:r},c(r),g.current=!0)},[d,e,c]);var m=a(function(e){v(function(r){return Object.assign({},r,e)})},[]),p=a(function(){g.current&&(g.current=!1,s(h.current.color))},[s]);return[d,m,p]}var Y,U=\"undefined\"!=typeof window?u:t,V=function(){return Y||(\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:void 0)},W=function(e){Y=e},$=new WeakMap,G=function(e){U(function(){var r=e.current;if(\"undefined\"!=typeof document&&r){var n=r.getRootNode?r.getRootNode():r.ownerDocument,t=n&&(\"head\"in n||\"host\"in n)?n:r.ownerDocument;if(!$.has(t)){var o=\"head\"in t?t.head:t,a=(o.ownerDocument||document).createElement(\"style\");a.innerHTML='.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:\"\";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url(\\'data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill-opacity=\".05\"><path d=\"M8 0h8v8H8zM0 8h8v8H0z\"/></svg>\\')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}';var u=V();u&&a.setAttribute(\"nonce\",u),$.set(t,a),o.appendChild(a)}}},[])},J=function(n){var t=n.className,o=n.colorModel,a=n.color,u=void 0===a?o.defaultColor:a,i=n.onChange,s=n.onChangeEnd,f=c(n,[\"className\",\"colorModel\",\"color\",\"onChange\",\"onChangeEnd\"]),d=r(null);G(d);var v=X(o,u,i,s),h=v[0],g=v[1],p=v[2],b=m([\"react-colorful\",t]);return e.createElement(\"div\",l({},f,{ref:d,className:b}),e.createElement(S,{hsva:h,onChange:g,onChangeEnd:p}),e.createElement(R,{hue:h.h,onChange:g,onChangeEnd:p,className:\"react-colorful__last-control\"}))},Q={defaultColor:\"000\",toHsva:E,fromHsva:function(e){return w({h:e.h,s:e.s,v:e.v,a:1})},equal:P},Z=function(r){return e.createElement(J,l({},r,{colorModel:Q}))},ee=function(r){var n=r.className,t=r.hsva,o=r.onChange,a=r.onChangeEnd,u={backgroundImage:\"linear-gradient(90deg, \"+q(Object.assign({},t,{a:0}))+\", \"+q(Object.assign({},t,{a:1}))+\")\"},l=m([\"react-colorful__alpha\",n]),c=b(100*t.a);return e.createElement(\"div\",{className:l},e.createElement(\"div\",{className:\"react-colorful__alpha-gradient\",style:u}),e.createElement(g,{onMove:function(e){o({a:e.left})},onKey:function(e){o({a:s(t.a+e.left)})},onEnd:a,\"aria-label\":\"Alpha\",\"aria-valuetext\":c+\"%\",\"aria-valuenow\":c,\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\"},e.createElement(p,{className:\"react-colorful__alpha-pointer\",left:t.a,color:q(t)})))},re=function(n){var t=n.className,o=n.colorModel,a=n.color,u=void 0===a?o.defaultColor:a,i=n.onChange,s=n.onChangeEnd,f=c(n,[\"className\",\"colorModel\",\"color\",\"onChange\",\"onChangeEnd\"]),d=r(null);G(d);var v=X(o,u,i,s),h=v[0],g=v[1],p=v[2],b=m([\"react-colorful\",t]);return e.createElement(\"div\",l({},f,{ref:d,className:b}),e.createElement(S,{hsva:h,onChange:g,onChangeEnd:p}),e.createElement(R,{hue:h.h,onChange:g,onChangeEnd:p}),e.createElement(ee,{hsva:h,onChange:g,onChangeEnd:p,className:\"react-colorful__last-control\"}))},ne={defaultColor:\"0001\",toHsva:E,fromHsva:w,equal:P},te=function(r){return e.createElement(re,l({},r,{colorModel:ne}))},oe={defaultColor:{h:0,s:0,l:0,a:1},toHsva:N,fromHsva:y,equal:T},ae=function(r){return e.createElement(re,l({},r,{colorModel:oe}))},ue={defaultColor:\"hsla(0, 0%, 0%, 1)\",toHsva:H,fromHsva:q,equal:F},le=function(r){return e.createElement(re,l({},r,{colorModel:ue}))},ce={defaultColor:{h:0,s:0,l:0},toHsva:function(e){return N({h:e.h,s:e.s,l:e.l,a:1})},fromHsva:function(e){return{h:(r=y(e)).h,s:r.s,l:r.l};var r},equal:T},ie=function(r){return e.createElement(J,l({},r,{colorModel:ce}))},se={defaultColor:\"hsl(0, 0%, 0%)\",toHsva:M,fromHsva:k,equal:F},fe=function(r){return e.createElement(J,l({},r,{colorModel:se}))},de={defaultColor:{h:0,s:0,v:0,a:1},toHsva:function(e){return e},fromHsva:A,equal:T},ve=function(r){return e.createElement(re,l({},r,{colorModel:de}))},he={defaultColor:\"hsva(0, 0%, 0%, 1)\",toHsva:O,fromHsva:function(e){var r=A(e);return\"hsva(\"+r.h+\", \"+r.s+\"%, \"+r.v+\"%, \"+r.a+\")\"},equal:F},ge=function(r){return e.createElement(re,l({},r,{colorModel:he}))},me={defaultColor:{h:0,s:0,v:0},toHsva:function(e){return{h:e.h,s:e.s,v:e.v,a:1}},fromHsva:function(e){var r=A(e);return{h:r.h,s:r.s,v:r.v}},equal:T},pe=function(r){return e.createElement(J,l({},r,{colorModel:me}))},be={defaultColor:\"hsv(0, 0%, 0%)\",toHsva:D,fromHsva:function(e){var r=A(e);return\"hsv(\"+r.h+\", \"+r.s+\"%, \"+r.v+\"%)\"},equal:F},_e=function(r){return e.createElement(J,l({},r,{colorModel:be}))},Ee={defaultColor:{r:0,g:0,b:0,a:1},toHsva:L,fromHsva:I,equal:T},Ce=function(r){return e.createElement(re,l({},r,{colorModel:Ee}))},xe={defaultColor:\"rgba(0, 0, 0, 1)\",toHsva:j,fromHsva:function(e){var r=I(e);return\"rgba(\"+r.r+\", \"+r.g+\", \"+r.b+\", \"+r.a+\")\"},equal:F},He=function(r){return e.createElement(re,l({},r,{colorModel:xe}))},Me={defaultColor:{r:0,g:0,b:0},toHsva:function(e){return L({r:e.r,g:e.g,b:e.b,a:1})},fromHsva:function(e){return{r:(r=I(e)).r,g:r.g,b:r.b};var r},equal:T},Ne=function(r){return e.createElement(J,l({},r,{colorModel:Me}))},we={defaultColor:\"rgb(0, 0, 0)\",toHsva:z,fromHsva:function(e){var r=I(e);return\"rgb(\"+r.r+\", \"+r.g+\", \"+r.b+\")\"},equal:F},ye=function(r){return e.createElement(J,l({},r,{colorModel:we}))},ke=/^#?([0-9A-F]{3,8})$/i,qe=function(r){var n=r.color,u=void 0===n?\"\":n,s=r.onChange,f=r.onBlur,d=r.escape,v=r.validate,h=r.format,g=r.process,m=c(r,[\"color\",\"onChange\",\"onBlur\",\"escape\",\"validate\",\"format\",\"process\"]),p=o(function(){return d(u)}),b=p[0],_=p[1],E=i(s),C=i(f),x=a(function(e){var r=d(e.target.value);_(r),v(r)&&E(g?g(r):r)},[d,g,v,E]),H=a(function(e){v(e.target.value)||_(d(u)),C(e)},[u,d,v,C]);return t(function(){_(d(u))},[u,d]),e.createElement(\"input\",l({},m,{value:h?h(b):b,spellCheck:\"false\",onChange:x,onBlur:H}))},Ie=function(e){return\"#\"+e},Oe=function(r){var n=r.prefixed,t=r.alpha,o=c(r,[\"prefixed\",\"alpha\"]),u=a(function(e){return e.replace(/([^0-9A-F]+)/gi,\"\").substring(0,t?8:6)},[t]),i=a(function(e){return function(e,r){var n=ke.exec(e),t=n?n[1].length:0;return 3===t||6===t||!!r&&4===t||!!r&&8===t}(e,t)},[t]);return e.createElement(qe,l({},o,{escape:u,format:n?Ie:void 0,process:Ie,validate:i}))};export{te as HexAlphaColorPicker,Oe as HexColorInput,Z as HexColorPicker,ie as HslColorPicker,fe as HslStringColorPicker,ae as HslaColorPicker,le as HslaStringColorPicker,pe as HsvColorPicker,_e as HsvStringColorPicker,ve as HsvaColorPicker,ge as HsvaStringColorPicker,Ne as RgbColorPicker,ye as RgbStringColorPicker,Ce as RgbaColorPicker,He as RgbaStringColorPicker,W as setNonce};\n//# sourceMappingURL=index.module.js.map\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\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, extraExtensions, ignoreCase) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n if (extraExtensions) {\n for (var extension in extraExtensions) {\n var suffix = path.slice(-extension.length);\n if (suffix === extension || ignoreCase && suffix.toLowerCase() === extension.toLowerCase()) {\n var output = extraExtensions[extension];\n return output === extension ? path : path.slice(0, -extension.length) + output;\n }\n }\n }\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 COMMON_MIME_TYPES = new Map([\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n ['aac', 'audio/aac'],\n ['abw', 'application/x-abiword'],\n ['arc', 'application/x-freearc'],\n ['avif', 'image/avif'],\n ['avi', 'video/x-msvideo'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['bin', 'application/octet-stream'],\n ['bmp', 'image/bmp'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['cda', 'application/x-cdf'],\n ['csh', 'application/x-csh'],\n ['css', 'text/css'],\n ['csv', 'text/csv'],\n ['doc', 'application/msword'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['epub', 'application/epub+zip'],\n ['gz', 'application/gzip'],\n ['gif', 'image/gif'],\n ['heic', 'image/heic'],\n ['heif', 'image/heif'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['ico', 'image/vnd.microsoft.icon'],\n ['ics', 'text/calendar'],\n ['jar', 'application/java-archive'],\n ['jpeg', 'image/jpeg'],\n ['jpg', 'image/jpeg'],\n ['js', 'text/javascript'],\n ['json', 'application/json'],\n ['jsonld', 'application/ld+json'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mjs', 'text/javascript'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mpeg', 'video/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['opus', 'audio/opus'],\n ['otf', 'font/otf'],\n ['png', 'image/png'],\n ['pdf', 'application/pdf'],\n ['php', 'application/x-httpd-php'],\n ['ppt', 'application/vnd.ms-powerpoint'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['rar', 'application/vnd.rar'],\n ['rtf', 'application/rtf'],\n ['sh', 'application/x-sh'],\n ['svg', 'image/svg+xml'],\n ['swf', 'application/x-shockwave-flash'],\n ['tar', 'application/x-tar'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['ts', 'video/mp2t'],\n ['ttf', 'font/ttf'],\n ['txt', 'text/plain'],\n ['vsd', 'application/vnd.visio'],\n ['wav', 'audio/wav'],\n ['weba', 'audio/webm'],\n ['webm', 'video/webm'],\n ['webp', 'image/webp'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['xhtml', 'application/xhtml+xml'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xml', 'application/xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['zip', 'application/zip'],\n ['7z', 'application/x-7z-compressed'],\n // Others\n ['mkv', 'video/x-matroska'],\n ['mov', 'video/quicktime'],\n ['msg', 'application/vnd.ms-outlook']\n]);\nexport function toFileWithPath(file, path) {\n var f = withMimeType(file);\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n var webkitRelativePath = file.webkitRelativePath;\n Object.defineProperty(f, 'path', {\n value: typeof path === 'string'\n ? path\n // If <input webkitdirectory> is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n return f;\n}\nfunction withMimeType(file) {\n var name = file.name;\n var hasExtension = name && name.lastIndexOf('.') !== -1;\n if (hasExtension && !file.type) {\n var ext = name.split('.')\n .pop().toLowerCase();\n var type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n return file;\n}\n//# sourceMappingURL=file.js.map","import { __awaiter, __generator, __read, __spread } from \"tslib\";\nimport { toFileWithPath } from './file';\nvar FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store',\n 'Thumbs.db' // Windows\n];\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport function fromEvent(evt) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (isObject(evt) && isDataTransfer(evt)) {\n return [2 /*return*/, getDataTransferFiles(evt.dataTransfer, evt.type)];\n }\n else if (isChangeEvt(evt)) {\n return [2 /*return*/, getInputFiles(evt)];\n }\n else if (Array.isArray(evt) && evt.every(function (item) { return 'getFile' in item && typeof item.getFile === 'function'; })) {\n return [2 /*return*/, getFsHandleFiles(evt)];\n }\n return [2 /*return*/, []];\n });\n });\n}\nfunction isDataTransfer(value) {\n return isObject(value.dataTransfer);\n}\nfunction isChangeEvt(value) {\n return isObject(value) && isObject(value.target);\n}\nfunction isObject(v) {\n return typeof v === 'object' && v !== null;\n}\nfunction getInputFiles(evt) {\n return fromList(evt.target.files).map(function (file) { return toFileWithPath(file); });\n}\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nfunction getFsHandleFiles(handles) {\n return __awaiter(this, void 0, void 0, function () {\n var files;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(handles.map(function (h) { return h.getFile(); }))];\n case 1:\n files = _a.sent();\n return [2 /*return*/, files.map(function (file) { return toFileWithPath(file); })];\n }\n });\n });\n}\nfunction getDataTransferFiles(dt, type) {\n return __awaiter(this, void 0, void 0, function () {\n var items, files;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (dt === null) {\n return [2 /*return*/, []];\n }\n if (!dt.items) return [3 /*break*/, 2];\n items = fromList(dt.items)\n .filter(function (item) { return item.kind === 'file'; });\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return [2 /*return*/, items];\n }\n return [4 /*yield*/, Promise.all(items.map(toFilePromises))];\n case 1:\n files = _a.sent();\n return [2 /*return*/, noIgnoredFiles(flatten(files))];\n case 2: return [2 /*return*/, noIgnoredFiles(fromList(dt.files)\n .map(function (file) { return toFileWithPath(file); }))];\n }\n });\n });\n}\nfunction noIgnoredFiles(files) {\n return files.filter(function (file) { return FILES_TO_IGNORE.indexOf(file.name) === -1; });\n}\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items) {\n if (items === null) {\n return [];\n }\n var files = [];\n // tslint:disable: prefer-for-of\n for (var i = 0; i < items.length; i++) {\n var file = items[i];\n files.push(file);\n }\n return files;\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n var entry = item.webkitGetAsEntry();\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry);\n }\n return fromDataTransferItem(item);\n}\nfunction flatten(items) {\n return items.reduce(function (acc, files) { return __spread(acc, (Array.isArray(files) ? flatten(files) : [files])); }, []);\n}\nfunction fromDataTransferItem(item) {\n var file = item.getAsFile();\n if (!file) {\n return Promise.reject(item + \" is not a File\");\n }\n var fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nfunction fromEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry)];\n });\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry) {\n var reader = entry.createReader();\n return new Promise(function (resolve, reject) {\n var entries = [];\n function readEntries() {\n var _this = this;\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries(function (batch) { return __awaiter(_this, void 0, void 0, function () {\n var files, err_1, items;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!batch.length) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, Promise.all(entries)];\n case 2:\n files = _a.sent();\n resolve(files);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n reject(err_1);\n return [3 /*break*/, 4];\n case 4: return [3 /*break*/, 6];\n case 5:\n items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n // Continue reading\n readEntries();\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); }, function (err) {\n reject(err);\n });\n }\n readEntries();\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nfunction fromFileEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n entry.file(function (file) {\n var fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, function (err) {\n reject(err);\n });\n })];\n });\n });\n}\n//# sourceMappingURL=file-selector.js.map","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n\n if (acceptedFilesArray.length === 0) {\n return true;\n }\n\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from \"attr-accept\"; // Error codes\n\nexport var FILE_INVALID_TYPE = \"file-invalid-type\";\nexport var FILE_TOO_LARGE = \"file-too-large\";\nexport var FILE_TOO_SMALL = \"file-too-small\";\nexport var TOO_MANY_FILES = \"too-many-files\";\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n}; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(\", \")) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: \"Too many files\"\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === \"application/x-moz-file\" || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === \"function\") {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== \"undefined\") {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === \"Files\" || type === \"application/x-moz-file\";\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === \"object\" && item !== null && item.kind === \"file\";\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf(\"MSIE\") !== -1 || userAgent.indexOf(\"Trident/\") !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf(\"Edge/\") !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return \"showOpenFilePicker\" in window;\n}\n/**\n * filePickerOptionsTypes returns the {types} option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n * based on the accept attr (see https://github.com/react-dropzone/attr-accept)\n * E.g: converts ['image/*', 'text/*'] to {'image/*': [], 'text/*': []}\n * @param {string|string[]} accept\n */\n\nexport function filePickerOptionsTypes(accept) {\n accept = typeof accept === \"string\" ? accept.split(\",\") : accept;\n return [{\n description: \"everything\",\n // TODO: Need to handle filtering more elegantly than this!\n accept: Array.isArray(accept) ? // Accept just MIME types as per spec\n // NOTE: accept can be https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers\n accept.filter(function (item) {\n return item === \"audio/*\" || item === \"video/*\" || item === \"image/*\" || item === \"text/*\" || /\\w+\\/[-+.\\w]+/g.test(item);\n }).reduce(function (a, b) {\n return _objectSpread(_objectSpread({}, a), {}, _defineProperty({}, b, []));\n }, {}) : {}\n }];\n}\n/**\n * Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is an abort exception.\n */\n\nexport function isAbort(v) {\n return v instanceof DOMException && (v.name === \"AbortError\" || v.code === v.ABORT_ERR);\n}\n/**\n * Check if v is a security error.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is a security error.\n */\n\nexport function isSecurityError(v) {\n return v instanceof DOMException && (v.name === \"SecurityError\" || v.code === v.SECURITY_ERR);\n}","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { fromEvent } from \"file-selector\";\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, filePickerOptionsTypes, canUseFileSystemAccessAPI, isAbort, isEvtWithFiles, isIeOrEdge, isPropagationStopped, isSecurityError, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from \"./utils/index\";\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * <Dropzone>\n * {({getRootProps, getInputProps}) => (\n * <div {...getRootProps()}>\n * <input {...getInputProps()} />\n * <p>Drag 'n' drop some files here, or click to select files</p>\n * </div>\n * )}\n * </Dropzone>\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = \"Dropzone\"; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: true\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `<input type=\"file\">` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Custom validation function\n * @param {File} file\n * @returns {FileError|FileError[]}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise<File[]>)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n * <div {...getRootProps()}>\n * <input {...getInputProps()} />\n * <p>Drag and drop some files here, or click to select files</p>\n * </div>\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `<input type=\"file\">` click event.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$options = _objectSpread(_objectSpread({}, defaultProps), options),\n accept = _defaultProps$options.accept,\n disabled = _defaultProps$options.disabled,\n getFilesFromEvent = _defaultProps$options.getFilesFromEvent,\n maxSize = _defaultProps$options.maxSize,\n minSize = _defaultProps$options.minSize,\n multiple = _defaultProps$options.multiple,\n maxFiles = _defaultProps$options.maxFiles,\n onDragEnter = _defaultProps$options.onDragEnter,\n onDragLeave = _defaultProps$options.onDragLeave,\n onDragOver = _defaultProps$options.onDragOver,\n onDrop = _defaultProps$options.onDrop,\n onDropAccepted = _defaultProps$options.onDropAccepted,\n onDropRejected = _defaultProps$options.onDropRejected,\n onFileDialogCancel = _defaultProps$options.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$options.onFileDialogOpen,\n useFsAccessApi = _defaultProps$options.useFsAccessApi,\n preventDropOnDocument = _defaultProps$options.preventDropOnDocument,\n noClick = _defaultProps$options.noClick,\n noKeyboard = _defaultProps$options.noKeyboard,\n noDrag = _defaultProps$options.noDrag,\n noDragEventsBubbling = _defaultProps$options.noDragEventsBubbling,\n validator = _defaultProps$options.validator;\n\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === \"function\" ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === \"function\" ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles;\n var fsAccessApiWorksRef = useRef(typeof window !== \"undefined\" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (!fsAccessApiWorksRef.current && isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: \"closeDialog\"\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener(\"focus\", onWindowFocus, false);\n return function () {\n window.removeEventListener(\"focus\", onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener(\"dragover\", onDocumentDragOver, false);\n document.addEventListener(\"drop\", onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener(\"dragover\", onDocumentDragOver);\n document.removeEventListener(\"drop\", onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: \"setDraggedFiles\"\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = \"copy\";\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: \"setDraggedFiles\",\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: \"setFiles\"\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, accept, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n });\n }\n\n dispatch({\n type: \"reset\"\n });\n }, [getFilesFromEvent, setFiles, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n // No point to use FS access APIs if context is not secure\n // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection\n if (fsAccessApiWorksRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: filePickerOptionsTypes(accept)\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n setFiles(files, null);\n dispatch({\n type: \"closeDialog\"\n });\n }).catch(function (e) {\n // AbortError means the user canceled\n if (isAbort(e)) {\n onFileDialogCancelCb(e);\n dispatch({\n type: \"closeDialog\"\n });\n } else if (isSecurityError(e)) {\n fsAccessApiWorksRef.current = false; // CORS, so cannot use this API\n // Try using the input\n\n if (inputRef.current) {\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, accept, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.key === \" \" || event.key === \"Enter\" || event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: \"focus\"\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: \"blur\"\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? \"ref\" : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === \"string\" && role !== \"\" ? role : \"button\"\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? \"ref\" : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: \"file\",\n style: {\n display: \"none\"\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case \"focus\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case \"blur\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case \"openDialog\":\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case \"closeDialog\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case \"setDraggedFiles\":\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread(_objectSpread({}, state), {}, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case \"setFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case \"reset\":\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from \"./utils\";","import { useReducer, useRef, useDebugValue, useEffect, useLayoutEffect } from 'react';\n\nfunction createStore(createState) {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (nextState !== state) {\n const previousState = state;\n state = replace ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribeWithSelector = (listener, selector = getState, equalityFn = Object.is) => {\n console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");\n let currentSlice = selector(state);\n function listenerToAdd() {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n listener(currentSlice = nextSlice, previousSlice);\n }\n }\n listeners.add(listenerToAdd);\n return () => listeners.delete(listenerToAdd);\n };\n const subscribe = (listener, selector, equalityFn) => {\n if (selector || equalityFn) {\n return subscribeWithSelector(listener, selector, equalityFn);\n }\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => listeners.clear();\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n}\n\nconst isSSR = typeof window === \"undefined\" || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\nconst useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;\nfunction create(createState) {\n const api = typeof createState === \"function\" ? createStore(createState) : createState;\n const useStore = (selector = api.getState, equalityFn = Object.is) => {\n const [, forceUpdate] = useReducer((c) => c + 1, 0);\n const state = api.getState();\n const stateRef = useRef(state);\n const selectorRef = useRef(selector);\n const equalityFnRef = useRef(equalityFn);\n const erroredRef = useRef(false);\n const currentSliceRef = useRef();\n if (currentSliceRef.current === void 0) {\n currentSliceRef.current = selector(state);\n }\n let newStateSlice;\n let hasNewStateSlice = false;\n if (stateRef.current !== state || selectorRef.current !== selector || equalityFnRef.current !== equalityFn || erroredRef.current) {\n newStateSlice = selector(state);\n hasNewStateSlice = !equalityFn(currentSliceRef.current, newStateSlice);\n }\n useIsomorphicLayoutEffect(() => {\n if (hasNewStateSlice) {\n currentSliceRef.current = newStateSlice;\n }\n stateRef.current = state;\n selectorRef.current = selector;\n equalityFnRef.current = equalityFn;\n erroredRef.current = false;\n });\n const stateBeforeSubscriptionRef = useRef(state);\n useIsomorphicLayoutEffect(() => {\n const listener = () => {\n try {\n const nextState = api.getState();\n const nextStateSlice = selectorRef.current(nextState);\n if (!equalityFnRef.current(currentSliceRef.current, nextStateSlice)) {\n stateRef.current = nextState;\n currentSliceRef.current = nextStateSlice;\n forceUpdate();\n }\n } catch (error) {\n erroredRef.current = true;\n forceUpdate();\n }\n };\n const unsubscribe = api.subscribe(listener);\n if (api.getState() !== stateBeforeSubscriptionRef.current) {\n listener();\n }\n return unsubscribe;\n }, []);\n const sliceToReturn = hasNewStateSlice ? newStateSlice : currentSliceRef.current;\n useDebugValue(sliceToReturn);\n return sliceToReturn;\n };\n Object.assign(useStore, api);\n useStore[Symbol.iterator] = function() {\n console.warn(\"[useStore, api] = create() is deprecated and will be removed in v4\");\n const items = [useStore, api];\n return {\n next() {\n const done = items.length <= 0;\n return { value: items.shift(), done };\n }\n };\n };\n return useStore;\n}\n\nexport { create as default };\n","var __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nconst redux = (reducer, initial) => (set, get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return __spreadValues$1({ dispatch: (...a) => api.dispatch(...a) }, initial);\n};\n\nfunction devtools(fn, options) {\n return (set, get, api) => {\n var _a;\n let didWarnAboutNameDeprecation = false;\n if (typeof options === \"string\" && !didWarnAboutNameDeprecation) {\n console.warn(\"[zustand devtools middleware]: passing `name` as directly will be not allowed in next majorpass the `name` in an object `{ name: ... }` instead\");\n didWarnAboutNameDeprecation = true;\n }\n const devtoolsOptions = options === void 0 ? { name: void 0, anonymousActionType: void 0 } : typeof options === \"string\" ? { name: options } : options;\n if (typeof ((_a = devtoolsOptions == null ? void 0 : devtoolsOptions.serialize) == null ? void 0 : _a.options) !== \"undefined\") {\n console.warn(\"[zustand devtools middleware]: `serialize.options` is deprecated, just use `serialize`\");\n }\n let extensionConnector;\n try {\n extensionConnector = window.__REDUX_DEVTOOLS_EXTENSION__ || window.top.__REDUX_DEVTOOLS_EXTENSION__;\n } catch {\n }\n if (!extensionConnector) {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && typeof window !== \"undefined\") {\n console.warn(\"[zustand devtools middleware] Please install/enable Redux devtools extension\");\n }\n return fn(set, get, api);\n }\n let extension = Object.create(extensionConnector.connect(devtoolsOptions));\n let didWarnAboutDevtools = false;\n Object.defineProperty(api, \"devtools\", {\n get: () => {\n if (!didWarnAboutDevtools) {\n console.warn(\"[zustand devtools middleware] `devtools` property on the store is deprecated it will be removed in the next major.\\nYou shouldn't interact with the extension directly. But in case you still want to you can patch `window.__REDUX_DEVTOOLS_EXTENSION__` directly\");\n didWarnAboutDevtools = true;\n }\n return extension;\n },\n set: (value) => {\n if (!didWarnAboutDevtools) {\n console.warn(\"[zustand devtools middleware] `api.devtools` is deprecated, it will be removed in the next major.\\nYou shouldn't interact with the extension directly. But in case you still want to you can patch `window.__REDUX_DEVTOOLS_EXTENSION__` directly\");\n didWarnAboutDevtools = true;\n }\n extension = value;\n }\n });\n let didWarnAboutPrefix = false;\n Object.defineProperty(extension, \"prefix\", {\n get: () => {\n if (!didWarnAboutPrefix) {\n console.warn(\"[zustand devtools middleware] along with `api.devtools`, `api.devtools.prefix` is deprecated.\\nWe no longer prefix the actions/names\" + devtoolsOptions.name === void 0 ? \", pass the `name` option to create a separate instance of devtools for each store.\" : \", because the `name` option already creates a separate instance of devtools for each store.\");\n didWarnAboutPrefix = true;\n }\n return \"\";\n },\n set: () => {\n if (!didWarnAboutPrefix) {\n console.warn(\"[zustand devtools middleware] along with `api.devtools`, `api.devtools.prefix` is deprecated.\\nWe no longer prefix the actions/names\" + devtoolsOptions.name === void 0 ? \", pass the `name` option to create a separate instance of devtools for each store.\" : \", because the `name` option already creates a separate instance of devtools for each store.\");\n didWarnAboutPrefix = true;\n }\n }\n });\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n set(state, replace);\n if (!isRecording)\n return;\n extension.send(nameOrAction === void 0 ? { type: devtoolsOptions.anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction, get());\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n extension.init(initialState);\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...a) => {\n if (a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn('[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.');\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...a);\n };\n }\n extension.subscribe((message) => {\n var _a2;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\"[zustand devtools middleware] Unsupported action format\");\n return;\n }\n return parseJsonThen(message.payload, (action) => {\n if (action.type === \"__setState\") {\n setStateFromDevtools(action.state);\n return;\n }\n if (!api.dispatchFromDevtools)\n return;\n if (typeof api.dispatch !== \"function\")\n return;\n api.dispatch(action);\n });\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n return extension.init(api.getState());\n case \"COMMIT\":\n return extension.init(api.getState());\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n setStateFromDevtools(state);\n extension.init(api.getState());\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n setStateFromDevtools(state);\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a2 = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a2.state;\n if (!lastComputedState)\n return;\n setStateFromDevtools(lastComputedState);\n extension.send(null, nextLiftedState);\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n };\n}\nconst parseJsonThen = (stringified, f) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\"[zustand devtools middleware] Could not parse the received json\", e);\n }\n if (parsed !== void 0)\n f(parsed);\n};\n\nconst subscribeWithSelector = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\n\nconst combine = (initialState, create) => (set, get, api) => Object.assign({}, initialState, create(set, get, api));\n\nvar __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};\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persist = (config, baseOptions) => (set, get, api) => {\n let options = __spreadValues({\n getStorage: () => localStorage,\n serialize: JSON.stringify,\n deserialize: JSON.parse,\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => __spreadValues(__spreadValues({}, currentState), persistedState)\n }, baseOptions);\n if (options.blacklist || options.whitelist) {\n console.warn(`The ${options.blacklist ? \"blacklist\" : \"whitelist\"} option is deprecated and will be removed in the next version. Please use the 'partialize' option instead.`);\n }\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage;\n try {\n storage = options.getStorage();\n } catch (e) {\n }\n if (!storage) {\n return config((...args) => {\n console.warn(`[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`);\n set(...args);\n }, get, api);\n } else if (!storage.removeItem) {\n console.warn(`[zustand persist middleware] The given storage for item '${options.name}' does not contain a 'removeItem' method, which will be required in v4.`);\n }\n const thenableSerialize = toThenable(options.serialize);\n const setItem = () => {\n const state = options.partialize(__spreadValues({}, get()));\n if (options.whitelist) {\n Object.keys(state).forEach((key) => {\n var _a;\n !((_a = options.whitelist) == null ? void 0 : _a.includes(key)) && delete state[key];\n });\n }\n if (options.blacklist) {\n options.blacklist.forEach((key) => delete state[key]);\n }\n let errorInSync;\n const thenable = thenableSerialize({ state, version: options.version }).then((serializedValue) => storage.setItem(options.name, serializedValue)).catch((e) => {\n errorInSync = e;\n });\n if (errorInSync) {\n throw errorInSync;\n }\n return thenable;\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config((...args) => {\n set(...args);\n void setItem();\n }, get, api);\n let stateFromStorage;\n const hydrate = () => {\n var _a;\n if (!storage)\n return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => cb(get()));\n const postRehydrationCallback = ((_a = options.onRehydrateStorage) == null ? void 0 : _a.call(options, get())) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((storageValue) => {\n if (storageValue) {\n return options.deserialize(storageValue);\n }\n }).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(deserializedStorageValue.state, deserializedStorageValue.version);\n }\n console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`);\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(migratedState, (_a2 = get()) != null ? _a2 : configResult);\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = __spreadValues(__spreadValues({}, options), newOptions);\n if (newOptions.getStorage) {\n storage = newOptions.getStorage();\n }\n },\n clearStorage: () => {\n var _a;\n (_a = storage == null ? void 0 : storage.removeItem) == null ? void 0 : _a.call(storage, options.name);\n },\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n hydrate();\n return stateFromStorage || configResult;\n};\n\nexport { combine, devtools, persist, redux, subscribeWithSelector };\n","/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n","/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isPlainObject = require('is-plain-object');\n\nmodule.exports = function isExtendable(val) {\n return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n","/*!\n * for-in <https://github.com/jonschlinkert/for-in>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function forIn(obj, fn, thisArg) {\n for (var key in obj) {\n if (fn.call(thisArg, obj[key], key, obj) === false) {\n break;\n }\n }\n};\n","'use strict';\n\nvar isExtendable = require('is-extendable');\nvar forIn = require('for-in');\n\nfunction mixinDeep(target, objects) {\n var len = arguments.length, i = 0;\n while (++i < len) {\n var obj = arguments[i];\n if (isObject(obj)) {\n forIn(obj, copy, target);\n }\n }\n return target;\n}\n\n/**\n * Copy properties from the source object to the\n * target object.\n *\n * @param {*} `val`\n * @param {String} `key`\n */\n\nfunction copy(val, key) {\n if (!isValidKey(key)) {\n return;\n }\n\n var obj = this[key];\n if (isObject(val) && isObject(obj)) {\n mixinDeep(obj, val);\n } else {\n this[key] = val;\n }\n}\n\n/**\n * Returns true if `val` is an object or function.\n *\n * @param {any} val\n * @return {Boolean}\n */\n\nfunction isObject(val) {\n return isExtendable(val) && !Array.isArray(val);\n}\n\n/**\n * Returns true if `key` is a valid key to use when extending objects.\n *\n * @param {String} `key`\n * @return {Boolean}\n */\n\nfunction isValidKey(key) {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n};\n\n/**\n * Expose `mixinDeep`\n */\n\nmodule.exports = mixinDeep;\n","/*!\n * get-value <https://github.com/jonschlinkert/get-value>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nmodule.exports = function(obj, prop, a, b, c) {\n if (!isObject(obj) || !prop) {\n return obj;\n }\n\n prop = toString(prop);\n\n // allowing for multiple properties to be passed as\n // a string or array, but much faster (3-4x) than doing\n // `[].slice.call(arguments)`\n if (a) prop += '.' + toString(a);\n if (b) prop += '.' + toString(b);\n if (c) prop += '.' + toString(c);\n\n if (prop in obj) {\n return obj[prop];\n }\n\n var segs = prop.split('.');\n var len = segs.length;\n var i = -1;\n\n while (obj && (++i < len)) {\n var key = segs[i];\n while (key[key.length - 1] === '\\\\') {\n key = key.slice(0, -1) + '.' + segs[++i];\n }\n obj = obj[key];\n }\n return obj;\n};\n\nfunction isObject(val) {\n return val !== null && (typeof val === 'object' || typeof val === 'function');\n}\n\nfunction toString(val) {\n if (!val) return '';\n if (Array.isArray(val)) {\n return val.join('.');\n }\n return val;\n}\n","/*!\n * assign-symbols <https://github.com/jonschlinkert/assign-symbols>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function(receiver, objects) {\n if (receiver === null || typeof receiver === 'undefined') {\n throw new TypeError('expected first argument to be an object.');\n }\n\n if (typeof objects === 'undefined' || typeof Symbol === 'undefined') {\n return receiver;\n }\n\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return receiver;\n }\n\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var target = Object(receiver);\n var len = arguments.length, i = 0;\n\n while (++i < len) {\n var provider = Object(arguments[i]);\n var names = Object.getOwnPropertySymbols(provider);\n\n for (var j = 0; j < names.length; j++) {\n var key = names[j];\n\n if (isEnumerable.call(provider, key)) {\n target[key] = provider[key];\n }\n }\n }\n return target;\n};\n","'use strict';\n\nvar isExtendable = require('is-extendable');\nvar assignSymbols = require('assign-symbols');\n\nmodule.exports = Object.assign || function(obj/*, objects*/) {\n if (obj === null || typeof obj === 'undefined') {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n if (!isObject(obj)) {\n obj = {};\n }\n for (var i = 1; i < arguments.length; i++) {\n var val = arguments[i];\n if (isString(val)) {\n val = toObject(val);\n }\n if (isObject(val)) {\n assign(obj, val);\n assignSymbols(obj, val);\n }\n }\n return obj;\n};\n\nfunction assign(a, b) {\n for (var key in b) {\n if (hasOwn(b, key)) {\n a[key] = b[key];\n }\n }\n}\n\nfunction isString(val) {\n return (val && typeof val === 'string');\n}\n\nfunction toObject(str) {\n var obj = {};\n for (var i in str) {\n obj[i] = str[i];\n }\n return obj;\n}\n\nfunction isObject(val) {\n return (val && typeof val === 'object') || isExtendable(val);\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction isEnum(obj, key) {\n return Object.prototype.propertyIsEnumerable.call(obj, key);\n}\n","/*!\n * split-string <https://github.com/jonschlinkert/split-string>\n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar extend = require('extend-shallow');\n\nmodule.exports = function(str, options, fn) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n if (typeof options === 'function') {\n fn = options;\n options = null;\n }\n\n // allow separator to be defined as a string\n if (typeof options === 'string') {\n options = { sep: options };\n }\n\n var opts = extend({sep: '.'}, options);\n var quotes = opts.quotes || ['\"', \"'\", '`'];\n var brackets;\n\n if (opts.brackets === true) {\n brackets = {\n '<': '>',\n '(': ')',\n '[': ']',\n '{': '}'\n };\n } else if (opts.brackets) {\n brackets = opts.brackets;\n }\n\n var tokens = [];\n var stack = [];\n var arr = [''];\n var sep = opts.sep;\n var len = str.length;\n var idx = -1;\n var closeIdx;\n\n function expected() {\n if (brackets && stack.length) {\n return brackets[stack[stack.length - 1]];\n }\n }\n\n while (++idx < len) {\n var ch = str[idx];\n var next = str[idx + 1];\n var tok = { val: ch, idx: idx, arr: arr, str: str };\n tokens.push(tok);\n\n if (ch === '\\\\') {\n tok.val = keepEscaping(opts, str, idx) === true ? (ch + next) : next;\n tok.escaped = true;\n if (typeof fn === 'function') {\n fn(tok);\n }\n arr[arr.length - 1] += tok.val;\n idx++;\n continue;\n }\n\n if (brackets && brackets[ch]) {\n stack.push(ch);\n var e = expected();\n var i = idx + 1;\n\n if (str.indexOf(e, i + 1) !== -1) {\n while (stack.length && i < len) {\n var s = str[++i];\n if (s === '\\\\') {\n s++;\n continue;\n }\n\n if (quotes.indexOf(s) !== -1) {\n i = getClosingQuote(str, s, i + 1);\n continue;\n }\n\n e = expected();\n if (stack.length && str.indexOf(e, i + 1) === -1) {\n break;\n }\n\n if (brackets[s]) {\n stack.push(s);\n continue;\n }\n\n if (e === s) {\n stack.pop();\n }\n }\n }\n\n closeIdx = i;\n if (closeIdx === -1) {\n arr[arr.length - 1] += ch;\n continue;\n }\n\n ch = str.slice(idx, closeIdx + 1);\n tok.val = ch;\n tok.idx = idx = closeIdx;\n }\n\n if (quotes.indexOf(ch) !== -1) {\n closeIdx = getClosingQuote(str, ch, idx + 1);\n if (closeIdx === -1) {\n arr[arr.length - 1] += ch;\n continue;\n }\n\n if (keepQuotes(ch, opts) === true) {\n ch = str.slice(idx, closeIdx + 1);\n } else {\n ch = str.slice(idx + 1, closeIdx);\n }\n\n tok.val = ch;\n tok.idx = idx = closeIdx;\n }\n\n if (typeof fn === 'function') {\n fn(tok, tokens);\n ch = tok.val;\n idx = tok.idx;\n }\n\n if (tok.val === sep && tok.split !== false) {\n arr.push('');\n continue;\n }\n\n arr[arr.length - 1] += tok.val;\n }\n\n return arr;\n};\n\nfunction getClosingQuote(str, ch, i, brackets) {\n var idx = str.indexOf(ch, i);\n if (str.charAt(idx - 1) === '\\\\') {\n return getClosingQuote(str, ch, idx + 1);\n }\n return idx;\n}\n\nfunction keepQuotes(ch, opts) {\n if (opts.keepDoubleQuotes === true && ch === '\"') return true;\n if (opts.keepSingleQuotes === true && ch === \"'\") return true;\n return opts.keepQuotes;\n}\n\nfunction keepEscaping(opts, str, idx) {\n if (typeof opts.keepEscaping === 'function') {\n return opts.keepEscaping(str, idx);\n }\n return opts.keepEscaping === true || str[idx + 1] === '\\\\';\n}\n","/*!\n * is-extendable <https://github.com/jonschlinkert/is-extendable>\n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isExtendable(val) {\n return typeof val !== 'undefined' && val !== null\n && (typeof val === 'object' || typeof val === 'function');\n};\n","'use strict';\n\nvar isObject = require('is-extendable');\n\nmodule.exports = function extend(o/*, objects*/) {\n if (!isObject(o)) { o = {}; }\n\n var len = arguments.length;\n for (var i = 1; i < len; i++) {\n var obj = arguments[i];\n\n if (isObject(obj)) {\n assign(o, obj);\n }\n }\n return o;\n};\n\nfunction assign(a, b) {\n for (var key in b) {\n if (hasOwn(b, key)) {\n a[key] = b[key];\n }\n }\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n","/*!\n * set-value <https://github.com/jonschlinkert/set-value>\n *\n * Copyright (c) 2014-2015, 2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar split = require('split-string');\nvar extend = require('extend-shallow');\nvar isPlainObject = require('is-plain-object');\nvar isObject = require('is-extendable');\n\nmodule.exports = function(obj, prop, val) {\n if (!isObject(obj)) {\n return obj;\n }\n\n if (Array.isArray(prop)) {\n prop = [].concat.apply([], prop).join('.');\n }\n\n if (typeof prop !== 'string') {\n return obj;\n }\n\n var keys = split(prop, {sep: '.', brackets: true}).filter(isValidKey);\n var len = keys.length;\n var idx = -1;\n var current = obj;\n\n while (++idx < len) {\n var key = keys[idx];\n if (idx !== len - 1) {\n if (!isObject(current[key])) {\n current[key] = {};\n }\n current = current[key];\n continue;\n }\n\n if (isPlainObject(current[key]) && isPlainObject(val)) {\n current[key] = extend({}, current[key], val);\n } else {\n current[key] = val;\n }\n }\n\n return obj;\n};\n\nfunction isValidKey(key) {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n}\n","'use strict';\n\nvar isObject = require('is-extendable');\nvar merge = require('mixin-deep');\nvar get = require('get-value');\nvar set = require('set-value');\n\nmodule.exports = function mergeValue(obj, prop, value) {\n if (!isObject(obj)) {\n throw new TypeError('expected an object');\n }\n\n if (typeof prop !== 'string' || value == null) {\n return merge.apply(null, arguments);\n }\n\n if (typeof value === 'string') {\n set(obj, prop, value);\n return obj;\n }\n\n var current = get(obj, prop);\n if (isObject(value) && isObject(current)) {\n value = merge({}, current, value);\n }\n\n set(obj, prop, value);\n return obj;\n};\n","import { p as pick, _ as _objectSpread2, o as omit, s as styled, u as useInputContext, R as Row, L as Label, V as ValueInput, P as Portal, O as Overlay, c as createInternalPlugin, a as Vector, g as getVectorPlugin, b as useTransform, d as useTh, e as useDrag, f as _extends, m as multiplyStep, h as clamp, i as _objectWithoutProperties, n as normalizeKeyedNumberSettings, j as invertedRange, k as sanitizeStep, r as range, l as RangeWrapper, q as Range, I as Indicator, S as Scrubber, t as getUid, v as SpecialInputs, w as warn, x as LevaErrors, y as updateInput, z as normalizeInput, A as useInputSetters, B as Plugins, C as InputContext, D as StyledInputWrapper, E as useStoreContext, F as useCanvas2d, G as useInput, H as log, J as StyledTitle, K as Chevron, M as StyledWrapper, N as StyledContent, Q as StyledFolder, T as StyledInputRow, U as debounce, W as globalStyles, X as PanelSettingsContext, Y as StoreContext, Z as mergeTheme, $ as ThemeContext, a0 as register, a1 as LevaInputs, a2 as select, a3 as number$1, a4 as string, a5 as boolean } from './vector-plugin-5e122f40.esm.js';\nexport { a1 as LevaInputs, a6 as LevaStoreProvider, E as useStoreContext } from './vector-plugin-5e122f40.esm.js';\nimport v8n from 'v8n';\nimport { extend, colord, getFormat } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport { dequal } from 'dequal/lite';\nimport React, { useRef, useMemo, useLayoutEffect, useEffect, useState, useCallback, forwardRef, useImperativeHandle } from 'react';\nimport { RgbaColorPicker, RgbColorPicker } from 'react-colorful';\nimport shallow from 'zustand/shallow';\nimport '@use-gesture/react';\nimport '@radix-ui/react-portal';\nimport * as RadixTooltip from '@radix-ui/react-tooltip';\nimport { useDropzone } from 'react-dropzone';\nimport create from 'zustand';\nimport { subscribeWithSelector } from 'zustand/middleware';\nimport { createRoot } from 'react-dom/client';\nimport merge from 'merge-value';\nimport '@stitches/react';\n\nconst join = (...args) => args.filter(Boolean).join('.');\nfunction getKeyPath(path) {\n const dir = path.split('.');\n return [dir.pop(), dir.join('.') || undefined];\n}\n\nfunction getValuesForPaths(data, paths) {\n return Object.entries(pick(data, paths)).reduce((acc, [, {\n value,\n disabled,\n key\n }]) => {\n acc[key] = disabled ? undefined : value;\n return acc;\n }, {});\n}\n\nfunction useCompareMemoize(value, deep) {\n const ref = useRef();\n const compare = deep ? dequal : shallow;\n if (!compare(value, ref.current)) {\n ref.current = value;\n }\n return ref.current;\n}\n\nfunction useDeepMemo(fn, deps) {\n var _useCompareMemoize;\n return useMemo(fn, (_useCompareMemoize = useCompareMemoize(deps, true)) !== null && _useCompareMemoize !== void 0 ? _useCompareMemoize : []);\n}\n\nfunction useToggle(toggled) {\n const wrapperRef = useRef(null);\n const contentRef = useRef(null);\n const firstRender = useRef(true);\n useLayoutEffect(() => {\n if (!toggled) {\n wrapperRef.current.style.height = '0px';\n wrapperRef.current.style.overflow = 'hidden';\n }\n }, []);\n useEffect(() => {\n if (firstRender.current) {\n firstRender.current = false;\n return;\n }\n let timeout;\n const ref = wrapperRef.current;\n const fixHeight = () => {\n if (toggled) {\n ref.style.removeProperty('height');\n ref.style.removeProperty('overflow');\n contentRef.current.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest'\n });\n }\n };\n ref.addEventListener('transitionend', fixHeight, {\n once: true\n });\n const {\n height\n } = contentRef.current.getBoundingClientRect();\n ref.style.height = height + 'px';\n if (!toggled) {\n ref.style.overflow = 'hidden';\n timeout = window.setTimeout(() => ref.style.height = '0px', 50);\n }\n return () => {\n ref.removeEventListener('transitionend', fixHeight);\n clearTimeout(timeout);\n };\n }, [toggled]);\n return {\n wrapperRef,\n contentRef\n };\n}\n\nconst useVisiblePaths = store => {\n const [paths, setPaths] = useState(store.getVisiblePaths());\n useEffect(() => {\n setPaths(store.getVisiblePaths());\n const unsub = store.useStore.subscribe(store.getVisiblePaths, setPaths, {\n equalityFn: shallow\n });\n return () => unsub();\n }, [store]);\n return paths;\n};\n\nfunction useValuesForPath(store, paths, initialData) {\n const valuesForPath = store.useStore(s => {\n const data = _objectSpread2(_objectSpread2({}, initialData), s.data);\n return getValuesForPaths(data, paths);\n }, shallow);\n return valuesForPath;\n}\n\nfunction usePopin(margin = 3) {\n const popinRef = useRef(null);\n const wrapperRef = useRef(null);\n const [shown, setShow] = useState(false);\n const show = useCallback(() => setShow(true), []);\n const hide = useCallback(() => setShow(false), []);\n useLayoutEffect(() => {\n if (shown) {\n const {\n bottom,\n top,\n left\n } = popinRef.current.getBoundingClientRect();\n const {\n height\n } = wrapperRef.current.getBoundingClientRect();\n const direction = bottom + height > window.innerHeight - 40 ? 'up' : 'down';\n wrapperRef.current.style.position = 'fixed';\n wrapperRef.current.style.zIndex = '10000';\n wrapperRef.current.style.left = left + 'px';\n if (direction === 'down') wrapperRef.current.style.top = bottom + margin + 'px';else wrapperRef.current.style.bottom = window.innerHeight - top + margin + 'px';\n }\n }, [margin, shown]);\n return {\n popinRef,\n wrapperRef,\n shown,\n show,\n hide\n };\n}\n\nextend([namesPlugin]);\nconst convertMap = {\n rgb: 'toRgb',\n hsl: 'toHsl',\n hsv: 'toHsv',\n hex: 'toHex'\n};\nv8n.extend({\n color: () => value => colord(value).isValid()\n});\nconst schema$2 = o => v8n().color().test(o);\nfunction convert(color, {\n format,\n hasAlpha,\n isString\n}) {\n const convertFn = convertMap[format] + (isString && format !== 'hex' ? 'String' : '');\n const result = color[convertFn]();\n return typeof result === 'object' && !hasAlpha ? omit(result, ['a']) : result;\n}\nconst sanitize$2 = (v, settings) => {\n const color = colord(v);\n if (!color.isValid()) throw Error('Invalid color');\n return convert(color, settings);\n};\nconst format$1 = (v, settings) => {\n return convert(colord(v), _objectSpread2(_objectSpread2({}, settings), {}, {\n isString: true,\n format: 'hex'\n }));\n};\nconst normalize$3 = ({\n value\n}) => {\n const _f = getFormat(value);\n const format = _f === 'name' ? 'hex' : _f;\n const hasAlpha = typeof value === 'object' ? 'a' in value : _f === 'hex' && value.length === 8 || /^(rgba)|(hsla)|(hsva)/.test(value);\n const settings = {\n format,\n hasAlpha,\n isString: typeof value === 'string'\n };\n return {\n value: sanitize$2(value, settings),\n settings\n };\n};\n\nvar props$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n schema: schema$2,\n sanitize: sanitize$2,\n format: format$1,\n normalize: normalize$3\n});\n\nconst ColorPreview = styled('div', {\n position: 'relative',\n boxSizing: 'border-box',\n borderRadius: '$sm',\n overflow: 'hidden',\n cursor: 'pointer',\n height: '$rowHeight',\n width: '$rowHeight',\n backgroundColor: '#fff',\n backgroundImage: `url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill-opacity=\".05\"><path d=\"M8 0h8v8H8zM0 8h8v8H0z\"/></svg>')`,\n $inputStyle: '',\n $hover: '',\n zIndex: 1,\n variants: {\n active: {\n true: {\n $inputStyle: '$accent1'\n }\n }\n },\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 0,\n left: 0,\n backgroundColor: 'currentColor',\n zIndex: 1\n }\n});\nconst PickerContainer = styled('div', {\n position: 'relative',\n display: 'grid',\n gridTemplateColumns: '$sizes$rowHeight auto',\n columnGap: '$colGap',\n alignItems: 'center'\n});\nconst PickerWrapper = styled('div', {\n width: '$colorPickerWidth',\n height: '$colorPickerHeight',\n '.react-colorful': {\n width: '100%',\n height: '100%',\n boxShadow: '$level2',\n cursor: 'crosshair'\n },\n '.react-colorful__saturation': {\n borderRadius: '$sm $sm 0 0'\n },\n '.react-colorful__alpha, .react-colorful__hue': {\n height: 10\n },\n '.react-colorful__last-control': {\n borderRadius: '0 0 $sm $sm'\n },\n '.react-colorful__pointer': {\n height: 12,\n width: 12\n }\n});\n\nfunction convertToRgb(value, format) {\n return format !== 'rgb' ? colord(value).toRgb() : value;\n}\nfunction Color({\n value,\n displayValue,\n settings,\n onUpdate\n}) {\n const {\n emitOnEditStart,\n emitOnEditEnd\n } = useInputContext();\n const {\n format,\n hasAlpha\n } = settings;\n const {\n popinRef,\n wrapperRef,\n shown,\n show,\n hide\n } = usePopin();\n const timer = useRef(0);\n const [initialRgb, setInitialRgb] = useState(() => convertToRgb(value, format));\n const ColorPicker = hasAlpha ? RgbaColorPicker : RgbColorPicker;\n const showPicker = () => {\n setInitialRgb(convertToRgb(value, format));\n show();\n emitOnEditStart();\n };\n const hidePicker = () => {\n hide();\n emitOnEditEnd();\n window.clearTimeout(timer.current);\n };\n const hideAfterDelay = () => {\n timer.current = window.setTimeout(hidePicker, 500);\n };\n useEffect(() => {\n return () => window.clearTimeout(timer.current);\n }, []);\n return React.createElement(React.Fragment, null, React.createElement(ColorPreview, {\n ref: popinRef,\n active: shown,\n onClick: () => showPicker(),\n style: {\n color: displayValue\n }\n }), shown && React.createElement(Portal, null, React.createElement(Overlay, {\n onPointerUp: hidePicker\n }), React.createElement(PickerWrapper, {\n ref: wrapperRef,\n onMouseEnter: () => window.clearTimeout(timer.current),\n onMouseLeave: e => e.buttons === 0 && hideAfterDelay()\n }, React.createElement(ColorPicker, {\n color: initialRgb,\n onChange: onUpdate\n }))));\n}\nfunction ColorComponent() {\n const {\n value,\n displayValue,\n label,\n onChange,\n onUpdate,\n settings\n } = useInputContext();\n return React.createElement(Row, {\n input: true\n }, React.createElement(Label, null, label), React.createElement(PickerContainer, null, React.createElement(Color, {\n value: value,\n displayValue: displayValue,\n onChange: onChange,\n onUpdate: onUpdate,\n settings: settings\n }), React.createElement(ValueInput, {\n value: displayValue,\n onChange: onChange,\n onUpdate: onUpdate\n })));\n}\n\nvar color = createInternalPlugin(_objectSpread2({\n component: ColorComponent\n}, props$2));\n\nfunction Vector3dComponent() {\n const {\n label,\n displayValue,\n onUpdate,\n settings\n } = useInputContext();\n return React.createElement(Row, {\n input: true\n }, React.createElement(Label, null, label), React.createElement(Vector, {\n value: displayValue,\n settings: settings,\n onUpdate: onUpdate\n }));\n}\n\nvar vector3d = createInternalPlugin(_objectSpread2({\n component: Vector3dComponent\n}, getVectorPlugin(['x', 'y', 'z'])));\n\nconst JoystickTrigger = styled('div', {\n $flexCenter: '',\n position: 'relative',\n backgroundColor: '$elevation3',\n borderRadius: '$sm',\n cursor: 'pointer',\n height: '$rowHeight',\n width: '$rowHeight',\n touchAction: 'none',\n $draggable: '',\n $hover: '',\n '&:active': {\n cursor: 'none'\n },\n '&::after': {\n content: '\"\"',\n backgroundColor: '$accent2',\n height: 4,\n width: 4,\n borderRadius: 2\n }\n});\nconst JoystickPlayground = styled('div', {\n $flexCenter: '',\n width: '$joystickWidth',\n height: '$joystickHeight',\n borderRadius: '$sm',\n boxShadow: '$level2',\n position: 'fixed',\n zIndex: 10000,\n overflow: 'hidden',\n $draggable: '',\n transform: 'translate(-50%, -50%)',\n variants: {\n isOutOfBounds: {\n true: {\n backgroundColor: '$elevation1'\n },\n false: {\n backgroundColor: '$elevation3'\n }\n }\n },\n '> div': {\n position: 'absolute',\n $flexCenter: '',\n borderStyle: 'solid',\n borderWidth: 1,\n borderColor: '$highlight1',\n backgroundColor: '$elevation3',\n width: '80%',\n height: '80%',\n '&::after,&::before': {\n content: '\"\"',\n position: 'absolute',\n zindex: 10,\n backgroundColor: '$highlight1'\n },\n '&::before': {\n width: '100%',\n height: 1\n },\n '&::after': {\n height: '100%',\n width: 1\n }\n },\n '> span': {\n position: 'relative',\n zindex: 100,\n width: 10,\n height: 10,\n backgroundColor: '$accent2',\n borderRadius: '50%'\n }\n});\n\nfunction Joystick({\n value,\n settings,\n onUpdate\n}) {\n const timeout = useRef();\n const outOfBoundsX = useRef(0);\n const outOfBoundsY = useRef(0);\n const stepMultiplier = useRef(1);\n const [joystickShown, setShowJoystick] = useState(false);\n const [isOutOfBounds, setIsOutOfBounds] = useState(false);\n const [spanRef, set] = useTransform();\n const joystickeRef = useRef(null);\n const playgroundRef = useRef(null);\n useLayoutEffect(() => {\n if (joystickShown) {\n const {\n top,\n left,\n width,\n height\n } = joystickeRef.current.getBoundingClientRect();\n playgroundRef.current.style.left = left + width / 2 + 'px';\n playgroundRef.current.style.top = top + height / 2 + 'px';\n }\n }, [joystickShown]);\n const {\n keys: [v1, v2],\n joystick\n } = settings;\n const yFactor = joystick === 'invertY' ? 1 : -1;\n const {\n [v1]: {\n step: stepV1\n },\n [v2]: {\n step: stepV2\n }\n } = settings;\n const wpx = useTh('sizes', 'joystickWidth');\n const hpx = useTh('sizes', 'joystickHeight');\n const w = parseFloat(wpx) * 0.8 / 2;\n const h = parseFloat(hpx) * 0.8 / 2;\n const startOutOfBounds = useCallback(() => {\n if (timeout.current) return;\n setIsOutOfBounds(true);\n if (outOfBoundsX.current) set({\n x: outOfBoundsX.current * w\n });\n if (outOfBoundsY.current) set({\n y: outOfBoundsY.current * -h\n });\n timeout.current = window.setInterval(() => {\n onUpdate(v => {\n const incX = stepV1 * outOfBoundsX.current * stepMultiplier.current;\n const incY = yFactor * stepV2 * outOfBoundsY.current * stepMultiplier.current;\n return Array.isArray(v) ? {\n [v1]: v[0] + incX,\n [v2]: v[1] + incY\n } : {\n [v1]: v[v1] + incX,\n [v2]: v[v2] + incY\n };\n });\n }, 16);\n }, [w, h, onUpdate, set, stepV1, stepV2, v1, v2, yFactor]);\n const endOutOfBounds = useCallback(() => {\n window.clearTimeout(timeout.current);\n timeout.current = undefined;\n setIsOutOfBounds(false);\n }, []);\n useEffect(() => {\n function setStepMultiplier(event) {\n stepMultiplier.current = multiplyStep(event);\n }\n window.addEventListener('keydown', setStepMultiplier);\n window.addEventListener('keyup', setStepMultiplier);\n return () => {\n window.clearTimeout(timeout.current);\n window.removeEventListener('keydown', setStepMultiplier);\n window.removeEventListener('keyup', setStepMultiplier);\n };\n }, []);\n const bind = useDrag(({\n first,\n active,\n delta: [dx, dy],\n movement: [mx, my]\n }) => {\n if (first) setShowJoystick(true);\n const _x = clamp(mx, -w, w);\n const _y = clamp(my, -h, h);\n outOfBoundsX.current = Math.abs(mx) > Math.abs(_x) ? Math.sign(mx - _x) : 0;\n outOfBoundsY.current = Math.abs(my) > Math.abs(_y) ? Math.sign(_y - my) : 0;\n let newX = value[v1];\n let newY = value[v2];\n if (active) {\n if (!outOfBoundsX.current) {\n newX += dx * stepV1 * stepMultiplier.current;\n set({\n x: _x\n });\n }\n if (!outOfBoundsY.current) {\n newY -= yFactor * dy * stepV2 * stepMultiplier.current;\n set({\n y: _y\n });\n }\n if (outOfBoundsX.current || outOfBoundsY.current) startOutOfBounds();else endOutOfBounds();\n onUpdate({\n [v1]: newX,\n [v2]: newY\n });\n } else {\n setShowJoystick(false);\n outOfBoundsX.current = 0;\n outOfBoundsY.current = 0;\n set({\n x: 0,\n y: 0\n });\n endOutOfBounds();\n }\n });\n return React.createElement(JoystickTrigger, _extends({\n ref: joystickeRef\n }, bind()), joystickShown && React.createElement(Portal, null, React.createElement(JoystickPlayground, {\n ref: playgroundRef,\n isOutOfBounds: isOutOfBounds\n }, React.createElement(\"div\", null), React.createElement(\"span\", {\n ref: spanRef\n }))));\n}\n\nconst Container$1 = styled('div', {\n display: 'grid',\n columnGap: '$colGap',\n variants: {\n withJoystick: {\n true: {\n gridTemplateColumns: '$sizes$rowHeight auto'\n },\n false: {\n gridTemplateColumns: 'auto'\n }\n }\n }\n});\nfunction Vector2dComponent() {\n const {\n label,\n displayValue,\n onUpdate,\n settings\n } = useInputContext();\n return React.createElement(Row, {\n input: true\n }, React.createElement(Label, null, label), React.createElement(Container$1, {\n withJoystick: !!settings.joystick\n }, settings.joystick && React.createElement(Joystick, {\n value: displayValue,\n settings: settings,\n onUpdate: onUpdate\n }), React.createElement(Vector, {\n value: displayValue,\n settings: settings,\n onUpdate: onUpdate\n })));\n}\n\nconst _excluded$7 = [\"joystick\"];\nconst plugin = getVectorPlugin(['x', 'y']);\nconst normalize$2 = _ref => {\n let {\n joystick = true\n } = _ref,\n input = _objectWithoutProperties(_ref, _excluded$7);\n const {\n value,\n settings\n } = plugin.normalize(input);\n return {\n value,\n settings: _objectSpread2(_objectSpread2({}, settings), {}, {\n joystick\n })\n };\n};\nvar vector2d = createInternalPlugin(_objectSpread2(_objectSpread2({\n component: Vector2dComponent\n}, plugin), {}, {\n normalize: normalize$2\n}));\n\nconst sanitize$1 = v => {\n if (v === undefined) return undefined;\n if (v instanceof File) {\n try {\n return URL.createObjectURL(v);\n } catch (e) {\n return undefined;\n }\n }\n if (typeof v === 'string' && v.indexOf('blob:') === 0) return v;\n throw Error(`Invalid image format [undefined | blob | File].`);\n};\nconst schema$1 = (_o, s) => typeof s === 'object' && 'image' in s;\nconst normalize$1 = ({\n image\n}) => {\n return {\n value: image\n };\n};\n\nvar props$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n sanitize: sanitize$1,\n schema: schema$1,\n normalize: normalize$1\n});\n\nconst ImageContainer = styled('div', {\n position: 'relative',\n display: 'grid',\n gridTemplateColumns: '$sizes$rowHeight auto 20px',\n columnGap: '$colGap',\n alignItems: 'center'\n});\nconst DropZone = styled('div', {\n $flexCenter: '',\n overflow: 'hidden',\n height: '$rowHeight',\n background: '$elevation3',\n textAlign: 'center',\n color: 'inherit',\n borderRadius: '$sm',\n outline: 'none',\n userSelect: 'none',\n cursor: 'pointer',\n $inputStyle: '',\n $hover: '',\n $focusWithin: '',\n $active: '$accent1 $elevation1',\n variants: {\n isDragAccept: {\n true: {\n $inputStyle: '$accent1',\n backgroundColor: '$elevation1'\n }\n }\n }\n});\nconst ImagePreview = styled('div', {\n boxSizing: 'border-box',\n borderRadius: '$sm',\n height: '$rowHeight',\n width: '$rowHeight',\n $inputStyle: '',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n variants: {\n hasImage: {\n true: {\n cursor: 'pointer',\n $hover: '',\n $active: ''\n }\n }\n }\n});\nconst ImageLargePreview = styled('div', {\n $flexCenter: '',\n width: '$imagePreviewWidth',\n height: '$imagePreviewHeight',\n borderRadius: '$sm',\n boxShadow: '$level2',\n pointerEvents: 'none',\n $inputStyle: '',\n backgroundSize: 'cover',\n backgroundPosition: 'center'\n});\nconst Instructions = styled('div', {\n fontSize: '0.8em',\n height: '100%',\n padding: '$rowGap $md'\n});\nconst Remove = styled('div', {\n $flexCenter: '',\n top: '0',\n right: '0',\n marginRight: '$sm',\n height: '100%',\n cursor: 'pointer',\n variants: {\n disabled: {\n true: {\n color: '$elevation3',\n cursor: 'default'\n }\n }\n },\n '&::after,&::before': {\n content: '\"\"',\n position: 'absolute',\n height: 2,\n width: 10,\n borderRadius: 1,\n backgroundColor: 'currentColor'\n },\n '&::after': {\n transform: 'rotate(45deg)'\n },\n '&::before': {\n transform: 'rotate(-45deg)'\n }\n});\n\nfunction ImageComponent() {\n const {\n label,\n value,\n onUpdate,\n disabled\n } = useInputContext();\n const {\n popinRef,\n wrapperRef,\n shown,\n show,\n hide\n } = usePopin();\n const onDrop = useCallback(acceptedFiles => {\n if (acceptedFiles.length) onUpdate(acceptedFiles[0]);\n }, [onUpdate]);\n const clear = useCallback(e => {\n e.stopPropagation();\n onUpdate(undefined);\n }, [onUpdate]);\n const {\n getRootProps,\n getInputProps,\n isDragAccept\n } = useDropzone({\n maxFiles: 1,\n accept: 'image/*',\n onDrop,\n disabled\n });\n return React.createElement(Row, {\n input: true\n }, React.createElement(Label, null, label), React.createElement(ImageContainer, null, React.createElement(ImagePreview, {\n ref: popinRef,\n hasImage: !!value,\n onPointerDown: () => !!value && show(),\n onPointerUp: hide,\n style: {\n backgroundImage: value ? `url(${value})` : 'none'\n }\n }), shown && !!value && React.createElement(Portal, null, React.createElement(Overlay, {\n onPointerUp: hide,\n style: {\n cursor: 'pointer'\n }\n }), React.createElement(ImageLargePreview, {\n ref: wrapperRef,\n style: {\n backgroundImage: `url(${value})`\n }\n })), React.createElement(DropZone, getRootProps({\n isDragAccept\n }), React.createElement(\"input\", getInputProps()), React.createElement(Instructions, null, isDragAccept ? 'drop image' : 'click or drop')), React.createElement(Remove, {\n onClick: clear,\n disabled: !value\n })));\n}\n\nvar image = createInternalPlugin(_objectSpread2({\n component: ImageComponent\n}, props$1));\n\nconst number = v8n().number();\nconst schema = (o, s) => v8n().array().length(2).every.number().test(o) && v8n().schema({\n min: number,\n max: number\n}).test(s);\nconst format = v => ({\n min: v[0],\n max: v[1]\n});\nconst sanitize = (value, {\n bounds: [MIN, MAX]\n}, prevValue) => {\n const _value = Array.isArray(value) ? format(value) : value;\n const _newValue = {\n min: prevValue[0],\n max: prevValue[1]\n };\n const {\n min,\n max\n } = _objectSpread2(_objectSpread2({}, _newValue), _value);\n return [clamp(Number(min), MIN, Math.max(MIN, max)), clamp(Number(max), Math.min(MAX, min), MAX)];\n};\nconst normalize = ({\n value,\n min,\n max\n}) => {\n const boundsSettings = {\n min,\n max\n };\n const _settings = normalizeKeyedNumberSettings(format(value), {\n min: boundsSettings,\n max: boundsSettings\n });\n const bounds = [min, max];\n const settings = _objectSpread2(_objectSpread2({}, _settings), {}, {\n bounds\n });\n const _value = sanitize(format(value), settings, value);\n return {\n value: _value,\n settings\n };\n};\n\nvar props = /*#__PURE__*/Object.freeze({\n __proto__: null,\n schema: schema,\n format: format,\n sanitize: sanitize,\n normalize: normalize\n});\n\nconst _excluded$6 = [\"value\", \"bounds\", \"onDrag\"],\n _excluded2$1 = [\"bounds\"];\nconst Container = styled('div', {\n display: 'grid',\n columnGap: '$colGap',\n gridTemplateColumns: 'auto calc($sizes$numberInputMinWidth * 2 + $space$rowGap)'\n});\nfunction IntervalSlider(_ref) {\n let {\n value,\n bounds: [min, max],\n onDrag\n } = _ref,\n settings = _objectWithoutProperties(_ref, _excluded$6);\n const ref = useRef(null);\n const minScrubberRef = useRef(null);\n const maxScrubberRef = useRef(null);\n const rangeWidth = useRef(0);\n const scrubberWidth = useTh('sizes', 'scrubberWidth');\n const bind = useDrag(({\n event,\n first,\n xy: [x],\n movement: [mx],\n memo: _memo = {}\n }) => {\n if (first) {\n const {\n width,\n left\n } = ref.current.getBoundingClientRect();\n rangeWidth.current = width - parseFloat(scrubberWidth);\n const targetIsScrub = (event === null || event === void 0 ? void 0 : event.target) === minScrubberRef.current || (event === null || event === void 0 ? void 0 : event.target) === maxScrubberRef.current;\n _memo.pos = invertedRange((x - left) / width, min, max);\n const delta = Math.abs(_memo.pos - value.min) - Math.abs(_memo.pos - value.max);\n _memo.key = delta < 0 || delta === 0 && _memo.pos <= value.min ? 'min' : 'max';\n if (targetIsScrub) _memo.pos = value[_memo.key];\n }\n const newValue = _memo.pos + invertedRange(mx / rangeWidth.current, 0, max - min);\n onDrag({\n [_memo.key]: sanitizeStep(newValue, settings[_memo.key])\n });\n return _memo;\n });\n const minStyle = `calc(${range(value.min, min, max)} * (100% - ${scrubberWidth} - 8px) + 4px)`;\n const maxStyle = `calc(${1 - range(value.max, min, max)} * (100% - ${scrubberWidth} - 8px) + 4px)`;\n return React.createElement(RangeWrapper, _extends({\n ref: ref\n }, bind()), React.createElement(Range, null, React.createElement(Indicator, {\n style: {\n left: minStyle,\n right: maxStyle\n }\n })), React.createElement(Scrubber, {\n position: \"left\",\n ref: minScrubberRef,\n style: {\n left: minStyle\n }\n }), React.createElement(Scrubber, {\n position: \"right\",\n ref: maxScrubberRef,\n style: {\n right: maxStyle\n }\n }));\n}\nfunction IntervalComponent() {\n const {\n label,\n displayValue,\n onUpdate,\n settings\n } = useInputContext();\n const _settings = _objectWithoutProperties(settings, _excluded2$1);\n return React.createElement(React.Fragment, null, React.createElement(Row, {\n input: true\n }, React.createElement(Label, null, label), React.createElement(Container, null, React.createElement(IntervalSlider, _extends({\n value: displayValue\n }, settings, {\n onDrag: onUpdate\n })), React.createElement(Vector, {\n value: displayValue,\n settings: _settings,\n onUpdate: onUpdate,\n innerLabelTrim: 0\n }))));\n}\n\nvar interval = createInternalPlugin(_objectSpread2({\n component: IntervalComponent\n}, props));\n\nconst createEventEmitter = () => {\n const listenerMapping = new Map();\n return {\n on: (topic, listener) => {\n let listeners = listenerMapping.get(topic);\n if (listeners === undefined) {\n listeners = new Set();\n listenerMapping.set(topic, listeners);\n }\n listeners.add(listener);\n },\n off: (topic, listener) => {\n const listeners = listenerMapping.get(topic);\n if (listeners === undefined) {\n return;\n }\n listeners.delete(listener);\n if (listeners.size === 0) {\n listenerMapping.delete(topic);\n }\n },\n emit: (topic, ...args) => {\n const listeners = listenerMapping.get(topic);\n if (listeners === undefined) {\n return;\n }\n for (const listener of listeners) {\n listener(...args);\n }\n }\n };\n};\n\nconst _excluded$5 = [\"type\", \"value\"],\n _excluded2 = [\"onChange\", \"transient\", \"onEditStart\", \"onEditEnd\"];\nconst Store = function Store() {\n const store = create(subscribeWithSelector(() => ({\n data: {}\n })));\n const eventEmitter = createEventEmitter();\n this.storeId = getUid();\n this.useStore = store;\n const folders = {};\n const orderedPaths = new Set();\n this.getVisiblePaths = () => {\n const data = this.getData();\n const paths = Object.keys(data);\n const hiddenFolders = [];\n Object.entries(folders).forEach(([path, settings]) => {\n if (settings.render && paths.some(p => p.indexOf(path) === 0) && !settings.render(this.get)) hiddenFolders.push(path + '.');\n });\n const visiblePaths = [];\n orderedPaths.forEach(path => {\n if (path in data && data[path].__refCount > 0 && hiddenFolders.every(p => path.indexOf(p) === -1) && (!data[path].render || data[path].render(this.get))) {\n visiblePaths.push(path);\n }\n });\n return visiblePaths;\n };\n this.setOrderedPaths = newPaths => {\n newPaths.forEach(p => orderedPaths.add(p));\n };\n this.orderPaths = paths => {\n this.setOrderedPaths(paths);\n return paths;\n };\n this.disposePaths = paths => {\n store.setState(s => {\n const data = s.data;\n paths.forEach(path => {\n if (path in data) {\n const input = data[path];\n input.__refCount--;\n if (input.__refCount === 0 && input.type in SpecialInputs) {\n delete data[path];\n }\n }\n });\n return {\n data\n };\n });\n };\n this.dispose = () => {\n store.setState(() => {\n return {\n data: {}\n };\n });\n };\n this.getFolderSettings = path => {\n return folders[path] || {};\n };\n this.getData = () => {\n return store.getState().data;\n };\n this.addData = (newData, override) => {\n store.setState(s => {\n const data = s.data;\n Object.entries(newData).forEach(([path, newInputData]) => {\n let input = data[path];\n if (!!input) {\n const {\n type,\n value\n } = newInputData,\n rest = _objectWithoutProperties(newInputData, _excluded$5);\n if (type !== input.type) {\n warn(LevaErrors.INPUT_TYPE_OVERRIDE, path, input.type, type);\n } else {\n if (input.__refCount === 0 || override) {\n Object.assign(input, rest);\n }\n input.__refCount++;\n }\n } else {\n data[path] = _objectSpread2(_objectSpread2({}, newInputData), {}, {\n __refCount: 1\n });\n }\n });\n return {\n data\n };\n });\n };\n this.setValueAtPath = (path, value, fromPanel) => {\n store.setState(s => {\n const data = s.data;\n updateInput(data[path], value, path, this, fromPanel);\n return {\n data\n };\n });\n };\n this.setSettingsAtPath = (path, settings) => {\n store.setState(s => {\n const data = s.data;\n data[path].settings = _objectSpread2(_objectSpread2({}, data[path].settings), settings);\n return {\n data\n };\n });\n };\n this.disableInputAtPath = (path, flag) => {\n store.setState(s => {\n const data = s.data;\n data[path].disabled = flag;\n return {\n data\n };\n });\n };\n this.set = (values, fromPanel) => {\n store.setState(s => {\n const data = s.data;\n Object.entries(values).forEach(([path, value]) => {\n try {\n updateInput(data[path], value, undefined, undefined, fromPanel);\n } catch (e) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(`[This message will only show in development]: \\`set\\` for path ${path} has failed.`, e);\n }\n }\n });\n return {\n data\n };\n });\n };\n this.getInput = path => {\n try {\n return this.getData()[path];\n } catch (e) {\n warn(LevaErrors.PATH_DOESNT_EXIST, path);\n }\n };\n this.get = path => {\n var _this$getInput;\n return (_this$getInput = this.getInput(path)) === null || _this$getInput === void 0 ? void 0 : _this$getInput.value;\n };\n this.emitOnEditStart = path => {\n eventEmitter.emit(`onEditStart:${path}`, this.get(path), path, _objectSpread2(_objectSpread2({}, this.getInput(path)), {}, {\n get: this.get\n }));\n };\n this.emitOnEditEnd = path => {\n eventEmitter.emit(`onEditEnd:${path}`, this.get(path), path, _objectSpread2(_objectSpread2({}, this.getInput(path)), {}, {\n get: this.get\n }));\n };\n this.subscribeToEditStart = (path, listener) => {\n const _path = `onEditStart:${path}`;\n eventEmitter.on(_path, listener);\n return () => eventEmitter.off(_path, listener);\n };\n this.subscribeToEditEnd = (path, listener) => {\n const _path = `onEditEnd:${path}`;\n eventEmitter.on(_path, listener);\n return () => eventEmitter.off(_path, listener);\n };\n const _getDataFromSchema = (schema, rootPath, mappedPaths) => {\n const data = {};\n Object.entries(schema).forEach(([key, rawInput]) => {\n if (key === '') return warn(LevaErrors.EMPTY_KEY);\n let newPath = join(rootPath, key);\n if (rawInput.type === SpecialInputs.FOLDER) {\n const newData = _getDataFromSchema(rawInput.schema, newPath, mappedPaths);\n Object.assign(data, newData);\n if (!(newPath in folders)) folders[newPath] = rawInput.settings;\n } else if (key in mappedPaths) {\n warn(LevaErrors.DUPLICATE_KEYS, key, newPath, mappedPaths[key].path);\n } else {\n const normalizedInput = normalizeInput(rawInput, key, newPath, data);\n if (normalizedInput) {\n const {\n type,\n options,\n input\n } = normalizedInput;\n const {\n onChange,\n transient,\n onEditStart,\n onEditEnd\n } = options,\n _options = _objectWithoutProperties(options, _excluded2);\n data[newPath] = _objectSpread2(_objectSpread2(_objectSpread2({\n type\n }, _options), input), {}, {\n fromPanel: true\n });\n mappedPaths[key] = {\n path: newPath,\n onChange,\n transient,\n onEditStart,\n onEditEnd\n };\n } else {\n warn(LevaErrors.UNKNOWN_INPUT, newPath, rawInput);\n }\n }\n });\n return data;\n };\n this.getDataFromSchema = schema => {\n const mappedPaths = {};\n const data = _getDataFromSchema(schema, '', mappedPaths);\n return [data, mappedPaths];\n };\n};\nconst levaStore = new Store();\nfunction useCreateStore() {\n return useMemo(() => new Store(), []);\n}\nif (process.env.NODE_ENV === 'development' && typeof window !== 'undefined') {\n window.__STORE = levaStore;\n}\n\nconst defaultSettings$2 = {\n collapsed: false\n};\nfunction folder(schema, settings) {\n return {\n type: SpecialInputs.FOLDER,\n schema,\n settings: _objectSpread2(_objectSpread2({}, defaultSettings$2), settings)\n };\n}\n\nconst defaultSettings$1 = {\n disabled: false\n};\nfunction button(onClick, settings) {\n return {\n type: SpecialInputs.BUTTON,\n onClick,\n settings: _objectSpread2(_objectSpread2({}, defaultSettings$1), settings)\n };\n}\n\nfunction buttonGroup(opts) {\n return {\n type: SpecialInputs.BUTTON_GROUP,\n opts\n };\n}\n\nconst defaultSettings = {\n graph: false,\n interval: 100\n};\nfunction monitor(objectOrFn, settings) {\n return {\n type: SpecialInputs.MONITOR,\n objectOrFn,\n settings: _objectSpread2(_objectSpread2({}, defaultSettings), settings)\n };\n}\n\nconst isInput = v => '__levaInput' in v;\nconst buildTree = (paths, filter) => {\n const tree = {};\n const _filter = filter ? filter.toLowerCase() : null;\n paths.forEach(path => {\n const [valueKey, folderPath] = getKeyPath(path);\n if (!_filter || valueKey.toLowerCase().indexOf(_filter) > -1) {\n merge(tree, folderPath, {\n [valueKey]: {\n __levaInput: true,\n path\n }\n });\n }\n });\n return tree;\n};\n\nconst _excluded$4 = [\"type\", \"label\", \"path\", \"valueKey\", \"value\", \"settings\", \"setValue\", \"disabled\"];\nfunction ControlInput(_ref) {\n let {\n type,\n label,\n path,\n valueKey,\n value,\n settings,\n setValue,\n disabled\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded$4);\n const {\n displayValue,\n onChange,\n onUpdate\n } = useInputSetters({\n type,\n value,\n settings,\n setValue\n });\n const Input = Plugins[type].component;\n if (!Input) {\n warn(LevaErrors.NO_COMPONENT_FOR_TYPE, type, path);\n return null;\n }\n return React.createElement(InputContext.Provider, {\n value: _objectSpread2({\n key: valueKey,\n path,\n id: '' + path,\n label,\n displayValue,\n value,\n onChange,\n onUpdate,\n settings,\n setValue,\n disabled\n }, rest)\n }, React.createElement(StyledInputWrapper, {\n disabled: disabled\n }, React.createElement(Input, null)));\n}\n\nconst StyledButton = styled('button', {\n display: 'block',\n $reset: '',\n fontWeight: '$button',\n height: '$rowHeight',\n borderStyle: 'none',\n borderRadius: '$sm',\n backgroundColor: '$elevation1',\n color: '$highlight1',\n '&:not(:disabled)': {\n color: '$highlight3',\n backgroundColor: '$accent2',\n cursor: 'pointer',\n $hover: '$accent3',\n $active: '$accent3 $accent1',\n $focus: ''\n }\n});\n\nfunction Button({\n onClick,\n settings,\n label\n}) {\n const store = useStoreContext();\n return React.createElement(Row, null, React.createElement(StyledButton, {\n disabled: settings.disabled,\n onClick: () => onClick(store.get)\n }, label));\n}\n\nconst StyledButtonGroup = styled('div', {\n $flex: '',\n justifyContent: 'flex-end',\n gap: '$colGap'\n});\n\nconst StyledButtonGroupButton = styled('button', {\n $reset: '',\n cursor: 'pointer',\n borderRadius: '$xs',\n '&:hover': {\n backgroundColor: '$elevation3'\n }\n});\n\nconst getOpts = ({\n label: _label,\n opts: _opts\n}) => {\n let label = typeof _label === 'string' ? _label.trim() === '' ? null : _label : _label;\n let opts = _opts;\n if (typeof _opts.opts === 'object') {\n if (opts.label !== undefined) {\n label = _opts.label;\n }\n opts = _opts.opts;\n }\n return {\n label,\n opts: opts\n };\n};\nfunction ButtonGroup(props) {\n const {\n label,\n opts\n } = getOpts(props);\n const store = useStoreContext();\n return React.createElement(Row, {\n input: !!label\n }, label && React.createElement(Label, null, label), React.createElement(StyledButtonGroup, null, Object.entries(opts).map(([label, onClick]) => React.createElement(StyledButtonGroupButton, {\n key: label,\n onClick: () => onClick(store.get)\n }, label))));\n}\n\nconst Canvas = styled('canvas', {\n height: '$monitorHeight',\n width: '100%',\n display: 'block',\n borderRadius: '$sm'\n});\n\nconst POINTS = 100;\nfunction push(arr, val) {\n arr.push(val);\n if (arr.length > POINTS) arr.shift();\n}\nconst MonitorCanvas = forwardRef(function ({\n initialValue\n}, ref) {\n const accentColor = useTh('colors', 'highlight3');\n const backgroundColor = useTh('colors', 'elevation2');\n const fillColor = useTh('colors', 'highlight1');\n const [gradientTop, gradientBottom] = useMemo(() => {\n return [colord(fillColor).alpha(0.4).toRgbString(), colord(fillColor).alpha(0.1).toRgbString()];\n }, [fillColor]);\n const points = useRef([initialValue]);\n const min = useRef(initialValue);\n const max = useRef(initialValue);\n const raf = useRef();\n const drawPlot = useCallback((_canvas, _ctx) => {\n if (!_canvas) return;\n const {\n width,\n height\n } = _canvas;\n const path = new Path2D();\n const interval = width / POINTS;\n const verticalPadding = height * 0.05;\n for (let i = 0; i < points.current.length; i++) {\n const p = range(points.current[i], min.current, max.current);\n const x = interval * i;\n const y = height - p * (height - verticalPadding * 2) - verticalPadding;\n path.lineTo(x, y);\n }\n _ctx.clearRect(0, 0, width, height);\n const gradientPath = new Path2D(path);\n gradientPath.lineTo(interval * (points.current.length + 1), height);\n gradientPath.lineTo(0, height);\n gradientPath.lineTo(0, 0);\n const gradient = _ctx.createLinearGradient(0, 0, 0, height);\n gradient.addColorStop(0.0, gradientTop);\n gradient.addColorStop(1.0, gradientBottom);\n _ctx.fillStyle = gradient;\n _ctx.fill(gradientPath);\n _ctx.strokeStyle = backgroundColor;\n _ctx.lineJoin = 'round';\n _ctx.lineWidth = 14;\n _ctx.stroke(path);\n _ctx.strokeStyle = accentColor;\n _ctx.lineWidth = 2;\n _ctx.stroke(path);\n }, [accentColor, backgroundColor, gradientTop, gradientBottom]);\n const [canvas, ctx] = useCanvas2d(drawPlot);\n useImperativeHandle(ref, () => ({\n frame: val => {\n if (min.current === undefined || val < min.current) min.current = val;\n if (max.current === undefined || val > max.current) max.current = val;\n push(points.current, val);\n raf.current = requestAnimationFrame(() => drawPlot(canvas.current, ctx.current));\n }\n }), [canvas, ctx, drawPlot]);\n useEffect(() => () => cancelAnimationFrame(raf.current), []);\n return React.createElement(Canvas, {\n ref: canvas\n });\n});\nconst parse = val => Number.isFinite(val) ? val.toPrecision(2) : val.toString();\nconst MonitorLog = forwardRef(function ({\n initialValue\n}, ref) {\n const [val, set] = useState(parse(initialValue));\n useImperativeHandle(ref, () => ({\n frame: v => set(parse(v))\n }), []);\n return React.createElement(\"div\", null, val);\n});\nfunction getValue(o) {\n return typeof o === 'function' ? o() : o.current;\n}\nfunction Monitor({\n label,\n objectOrFn,\n settings\n}) {\n const ref = useRef();\n const initialValue = useRef(getValue(objectOrFn));\n useEffect(() => {\n const timeout = window.setInterval(() => {\n var _ref$current;\n if (document.hidden) return;\n (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.frame(getValue(objectOrFn));\n }, settings.interval);\n return () => window.clearInterval(timeout);\n }, [objectOrFn, settings.interval]);\n return React.createElement(Row, {\n input: true\n }, React.createElement(Label, {\n align: \"top\"\n }, label), settings.graph ? React.createElement(MonitorCanvas, {\n ref: ref,\n initialValue: initialValue.current\n }) : React.createElement(MonitorLog, {\n ref: ref,\n initialValue: initialValue.current\n }));\n}\n\nconst _excluded$3 = [\"type\", \"label\", \"key\"];\nconst specialComponents = {\n [SpecialInputs.BUTTON]: Button,\n [SpecialInputs.BUTTON_GROUP]: ButtonGroup,\n [SpecialInputs.MONITOR]: Monitor\n};\nconst Control = React.memo(({\n path\n}) => {\n const [input, {\n set,\n setSettings,\n disable,\n storeId,\n emitOnEditStart,\n emitOnEditEnd\n }] = useInput(path);\n if (!input) return null;\n const {\n type,\n label,\n key\n } = input,\n inputProps = _objectWithoutProperties(input, _excluded$3);\n if (type in SpecialInputs) {\n const SpecialInputForType = specialComponents[type];\n return React.createElement(SpecialInputForType, _extends({\n label: label,\n path: path\n }, inputProps));\n }\n if (!(type in Plugins)) {\n log(LevaErrors.UNSUPPORTED_INPUT, type, path);\n return null;\n }\n return (React.createElement(ControlInput, _extends({\n key: storeId + path,\n type: type,\n label: label,\n storeId: storeId,\n path: path,\n valueKey: key,\n setValue: set,\n setSettings: setSettings,\n disable: disable,\n emitOnEditStart: emitOnEditStart,\n emitOnEditEnd: emitOnEditEnd\n }, inputProps))\n );\n});\n\nfunction FolderTitle({\n toggle,\n toggled,\n name\n}) {\n return React.createElement(StyledTitle, {\n onClick: () => toggle()\n }, React.createElement(Chevron, {\n toggled: toggled\n }), React.createElement(\"div\", null, name));\n}\n\nconst Folder = ({\n name,\n path,\n tree\n}) => {\n const store = useStoreContext();\n const newPath = join(path, name);\n const {\n collapsed,\n color\n } = store.getFolderSettings(newPath);\n const [toggled, setToggle] = useState(!collapsed);\n const folderRef = useRef(null);\n const widgetColor = useTh('colors', 'folderWidgetColor');\n const textColor = useTh('colors', 'folderTextColor');\n useLayoutEffect(() => {\n folderRef.current.style.setProperty('--leva-colors-folderWidgetColor', color || widgetColor);\n folderRef.current.style.setProperty('--leva-colors-folderTextColor', color || textColor);\n }, [color, widgetColor, textColor]);\n return React.createElement(StyledFolder, {\n ref: folderRef\n }, React.createElement(FolderTitle, {\n name: name,\n toggled: toggled,\n toggle: () => setToggle(t => !t)\n }), React.createElement(TreeWrapper, {\n parent: newPath,\n tree: tree,\n toggled: toggled\n }));\n};\nconst TreeWrapper = React.memo(({\n isRoot: _isRoot = false,\n fill: _fill = false,\n flat: _flat = false,\n parent,\n tree,\n toggled\n}) => {\n const {\n wrapperRef,\n contentRef\n } = useToggle(toggled);\n const store = useStoreContext();\n const getOrder = ([key, o]) => {\n var _store$getInput;\n const order = isInput(o) ? (_store$getInput = store.getInput(o.path)) === null || _store$getInput === void 0 ? void 0 : _store$getInput.order : store.getFolderSettings(join(parent, key)).order;\n return order || 0;\n };\n const entries = Object.entries(tree).sort((a, b) => getOrder(a) - getOrder(b));\n return React.createElement(StyledWrapper, {\n ref: wrapperRef,\n isRoot: _isRoot,\n fill: _fill,\n flat: _flat\n }, React.createElement(StyledContent, {\n ref: contentRef,\n isRoot: _isRoot,\n toggled: toggled\n }, entries.map(([key, value]) => isInput(value) ? React.createElement(Control, {\n key: value.path,\n valueKey: value.valueKey,\n path: value.path\n }) : React.createElement(Folder, {\n key: key,\n name: key,\n path: parent,\n tree: value\n }))));\n});\n\nconst StyledRoot = styled('div', {\n position: 'relative',\n fontFamily: '$mono',\n fontSize: '$root',\n color: '$rootText',\n backgroundColor: '$elevation1',\n variants: {\n fill: {\n false: {\n position: 'fixed',\n top: '10px',\n right: '10px',\n zIndex: 1000,\n width: '$rootWidth'\n },\n true: {\n position: 'relative',\n width: '100%'\n }\n },\n flat: {\n false: {\n borderRadius: '$lg',\n boxShadow: '$level1'\n }\n },\n oneLineLabels: {\n true: {\n [`${StyledInputRow}`]: {\n gridTemplateColumns: 'auto',\n gridAutoColumns: 'minmax(max-content, 1fr)',\n gridAutoRows: 'minmax($sizes$rowHeight), auto)',\n rowGap: 0,\n columnGap: 0,\n marginTop: '$rowGap'\n }\n }\n },\n hideTitleBar: {\n true: {\n $$titleBarHeight: '0px'\n },\n false: {\n $$titleBarHeight: '$sizes$titleBarHeight'\n }\n }\n },\n '&,*,*:after,*:before': {\n boxSizing: 'border-box'\n },\n '*::selection': {\n backgroundColor: '$accent2'\n }\n});\n\nconst iconWidth = 40;\nconst Icon = styled('i', {\n $flexCenter: '',\n width: iconWidth,\n userSelect: 'none',\n cursor: 'pointer',\n '> svg': {\n fill: '$highlight1',\n transition: 'transform 350ms ease, fill 250ms ease'\n },\n '&:hover > svg': {\n fill: '$highlight3'\n },\n variants: {\n active: {\n true: {\n '> svg': {\n fill: '$highlight2'\n }\n }\n }\n }\n});\nconst StyledTitleWithFilter = styled('div', {\n display: 'flex',\n alignItems: 'stretch',\n justifyContent: 'space-between',\n height: '$titleBarHeight',\n variants: {\n mode: {\n drag: {\n cursor: 'grab'\n }\n }\n }\n});\nconst FilterWrapper = styled('div', {\n $flex: '',\n position: 'relative',\n width: '100%',\n overflow: 'hidden',\n transition: 'height 250ms ease',\n color: '$highlight3',\n paddingLeft: '$md',\n [`> ${Icon}`]: {\n height: 30\n },\n variants: {\n toggled: {\n true: {\n height: 30\n },\n false: {\n height: 0\n }\n }\n }\n});\nconst StyledFilterInput = styled('input', {\n $reset: '',\n flex: 1,\n position: 'relative',\n height: 30,\n width: '100%',\n backgroundColor: 'transparent',\n fontSize: '10px',\n borderRadius: '$root',\n '&:focus': {},\n '&::placeholder': {\n color: '$highlight2'\n }\n});\nconst TitleContainer = styled('div', {\n touchAction: 'none',\n $flexCenter: '',\n flex: 1,\n '> svg': {\n fill: '$highlight1'\n },\n color: '$highlight1',\n variants: {\n drag: {\n true: {\n $draggable: '',\n '> svg': {\n transition: 'fill 250ms ease'\n },\n '&:hover': {\n color: '$highlight3'\n },\n '&:hover > svg': {\n fill: '$highlight3'\n }\n }\n },\n filterEnabled: {\n false: {\n paddingRight: iconWidth\n }\n }\n }\n});\n\nconst FilterInput = React.forwardRef(({\n setFilter,\n toggle\n}, ref) => {\n const [value, set] = useState('');\n const debouncedOnChange = useMemo(() => debounce(setFilter, 250), [setFilter]);\n const clear = () => {\n setFilter('');\n set('');\n };\n const _onChange = e => {\n const v = e.currentTarget.value;\n toggle(true);\n set(v);\n };\n useEffect(() => {\n debouncedOnChange(value);\n }, [value, debouncedOnChange]);\n return React.createElement(React.Fragment, null, React.createElement(StyledFilterInput, {\n ref: ref,\n value: value,\n placeholder: \"[Open filter with CMD+SHIFT+L]\",\n onPointerDown: e => e.stopPropagation(),\n onChange: _onChange\n }), React.createElement(Icon, {\n onClick: () => clear(),\n style: {\n visibility: value ? 'visible' : 'hidden'\n }\n }, React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"14\",\n width: \"14\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\"\n }, React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\",\n clipRule: \"evenodd\"\n }))));\n});\nfunction TitleWithFilter({\n setFilter,\n onDrag,\n onDragStart,\n onDragEnd,\n toggle,\n toggled,\n title,\n drag,\n filterEnabled,\n from\n}) {\n const [filterShown, setShowFilter] = useState(false);\n const inputRef = useRef(null);\n useEffect(() => {\n var _inputRef$current, _inputRef$current2;\n if (filterShown) (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();else (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();\n }, [filterShown]);\n const bind = useDrag(({\n offset: [x, y],\n first,\n last\n }) => {\n onDrag({\n x,\n y\n });\n if (first) {\n onDragStart({\n x,\n y\n });\n }\n if (last) {\n onDragEnd({\n x,\n y\n });\n }\n }, {\n filterTaps: true,\n from: ({\n offset: [x, y]\n }) => [(from === null || from === void 0 ? void 0 : from.x) || x, (from === null || from === void 0 ? void 0 : from.y) || y]\n });\n useEffect(() => {\n const handleShortcut = event => {\n if (event.key === 'L' && event.shiftKey && event.metaKey) {\n setShowFilter(f => !f);\n }\n };\n window.addEventListener('keydown', handleShortcut);\n return () => window.removeEventListener('keydown', handleShortcut);\n }, []);\n return React.createElement(React.Fragment, null, React.createElement(StyledTitleWithFilter, {\n mode: drag ? 'drag' : undefined\n }, React.createElement(Icon, {\n active: !toggled,\n onClick: () => toggle()\n }, React.createElement(Chevron, {\n toggled: toggled,\n width: 12,\n height: 8\n })), React.createElement(TitleContainer, _extends({}, drag ? bind() : {}, {\n drag: drag,\n filterEnabled: filterEnabled\n }), title === undefined && drag ? React.createElement(\"svg\", {\n width: \"20\",\n height: \"10\",\n viewBox: \"0 0 28 14\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, React.createElement(\"circle\", {\n cx: \"2\",\n cy: \"2\",\n r: \"2\"\n }), React.createElement(\"circle\", {\n cx: \"14\",\n cy: \"2\",\n r: \"2\"\n }), React.createElement(\"circle\", {\n cx: \"26\",\n cy: \"2\",\n r: \"2\"\n }), React.createElement(\"circle\", {\n cx: \"2\",\n cy: \"12\",\n r: \"2\"\n }), React.createElement(\"circle\", {\n cx: \"14\",\n cy: \"12\",\n r: \"2\"\n }), React.createElement(\"circle\", {\n cx: \"26\",\n cy: \"12\",\n r: \"2\"\n })) : title), filterEnabled && React.createElement(Icon, {\n active: filterShown,\n onClick: () => setShowFilter(f => !f)\n }, React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, React.createElement(\"path\", {\n d: \"M9 9a2 2 0 114 0 2 2 0 01-4 0z\"\n }), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 18a8 8 0 100-16 8 8 0 000 16zm1-13a4 4 0 00-3.446 6.032l-2.261 2.26a1 1 0 101.414 1.415l2.261-2.261A4 4 0 1011 5z\",\n clipRule: \"evenodd\"\n })))), React.createElement(FilterWrapper, {\n toggled: filterShown\n }, React.createElement(FilterInput, {\n ref: inputRef,\n setFilter: setFilter,\n toggle: toggle\n })));\n}\n\nconst _excluded$2 = [\"store\", \"hidden\", \"theme\", \"collapsed\"];\nfunction LevaRoot(_ref) {\n let {\n store,\n hidden = false,\n theme,\n collapsed = false\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded$2);\n const themeContext = useDeepMemo(() => mergeTheme(theme), [theme]);\n const [toggled, setToggle] = useState(!collapsed);\n const computedToggled = typeof collapsed === 'object' ? !collapsed.collapsed : toggled;\n const computedSetToggle = useMemo(() => {\n if (typeof collapsed === 'object') {\n return value => {\n if (typeof value === 'function') {\n collapsed.onChange(!value(!collapsed.collapsed));\n } else {\n collapsed.onChange(!value);\n }\n };\n }\n return setToggle;\n }, [collapsed]);\n if (!store || hidden) return null;\n return React.createElement(ThemeContext.Provider, {\n value: themeContext\n }, React.createElement(LevaCore, _extends({\n store: store\n }, props, {\n toggled: computedToggled,\n setToggle: computedSetToggle,\n rootClass: themeContext.className\n })));\n}\nconst LevaCore = React.memo(({\n store,\n rootClass,\n fill: _fill = false,\n flat: _flat = false,\n neverHide: _neverHide = false,\n oneLineLabels: _oneLineLabels = false,\n titleBar: _titleBar = {\n title: undefined,\n drag: true,\n filter: true,\n position: undefined,\n onDrag: undefined,\n onDragStart: undefined,\n onDragEnd: undefined\n },\n hideCopyButton: _hideCopyButton = false,\n toggled,\n setToggle\n}) => {\n var _titleBar$drag, _titleBar$filter;\n const paths = useVisiblePaths(store);\n const [filter, setFilter] = useState('');\n const tree = useMemo(() => buildTree(paths, filter), [paths, filter]);\n const [rootRef, set] = useTransform();\n const shouldShow = _neverHide || paths.length > 0;\n const title = typeof _titleBar === 'object' ? _titleBar.title || undefined : undefined;\n const drag = typeof _titleBar === 'object' ? (_titleBar$drag = _titleBar.drag) !== null && _titleBar$drag !== void 0 ? _titleBar$drag : true : true;\n const filterEnabled = typeof _titleBar === 'object' ? (_titleBar$filter = _titleBar.filter) !== null && _titleBar$filter !== void 0 ? _titleBar$filter : true : true;\n const position = typeof _titleBar === 'object' ? _titleBar.position || undefined : undefined;\n const onDrag = typeof _titleBar === 'object' ? _titleBar.onDrag || undefined : undefined;\n const onDragStart = typeof _titleBar === 'object' ? _titleBar.onDragStart || undefined : undefined;\n const onDragEnd = typeof _titleBar === 'object' ? _titleBar.onDragEnd || undefined : undefined;\n React.useEffect(() => {\n set({\n x: position === null || position === void 0 ? void 0 : position.x,\n y: position === null || position === void 0 ? void 0 : position.y\n });\n }, [position, set]);\n globalStyles();\n return React.createElement(RadixTooltip.Provider, null, React.createElement(PanelSettingsContext.Provider, {\n value: {\n hideCopyButton: _hideCopyButton\n }\n }, React.createElement(StyledRoot, {\n ref: rootRef,\n className: rootClass,\n fill: _fill,\n flat: _flat,\n oneLineLabels: _oneLineLabels,\n hideTitleBar: !_titleBar,\n style: {\n display: shouldShow ? 'block' : 'none'\n }\n }, _titleBar && React.createElement(TitleWithFilter, {\n onDrag: point => {\n set(point);\n onDrag === null || onDrag === void 0 || onDrag(point);\n },\n onDragStart: point => onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(point),\n onDragEnd: point => onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(point),\n setFilter: setFilter,\n toggle: flag => setToggle(t => flag !== null && flag !== void 0 ? flag : !t),\n toggled: toggled,\n title: title,\n drag: drag,\n filterEnabled: filterEnabled,\n from: position\n }), shouldShow && React.createElement(StoreContext.Provider, {\n value: store\n }, React.createElement(TreeWrapper, {\n isRoot: true,\n fill: _fill,\n flat: _flat,\n tree: tree,\n toggled: toggled\n })))));\n});\n\nconst _excluded$1 = [\"isRoot\"];\nlet rootInitialized = false;\nlet rootEl = null;\nfunction Leva(_ref) {\n let {\n isRoot = false\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded$1);\n useEffect(() => {\n rootInitialized = true;\n if (!isRoot && rootEl) {\n rootEl.remove();\n rootEl = null;\n }\n return () => {\n if (!isRoot) rootInitialized = false;\n };\n }, [isRoot]);\n return React.createElement(LevaRoot, _extends({\n store: levaStore\n }, props));\n}\nfunction useRenderRoot(isGlobalPanel) {\n useEffect(() => {\n if (isGlobalPanel && !rootInitialized) {\n if (!rootEl) {\n rootEl = document.getElementById('leva__root') || Object.assign(document.createElement('div'), {\n id: 'leva__root'\n });\n if (document.body) {\n document.body.appendChild(rootEl);\n createRoot(rootEl).render(React.createElement(Leva, {\n isRoot: true\n }));\n }\n }\n rootInitialized = true;\n }\n }, [isGlobalPanel]);\n}\n\nconst _excluded = [\"store\"];\nfunction LevaPanel(_ref) {\n let {\n store\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n const parentStore = useStoreContext();\n const _store = store === undefined ? parentStore : store;\n return React.createElement(LevaRoot, _extends({\n store: _store\n }, props));\n}\n\nfunction parseArgs(schemaOrFolderName, settingsOrDepsOrSchema, depsOrSettingsOrFolderSettings, depsOrSettings, depsOrUndefined) {\n let schema;\n let folderName = undefined;\n let folderSettings;\n let hookSettings;\n let deps;\n if (typeof schemaOrFolderName === 'string') {\n folderName = schemaOrFolderName;\n schema = settingsOrDepsOrSchema;\n if (Array.isArray(depsOrSettingsOrFolderSettings)) {\n deps = depsOrSettingsOrFolderSettings;\n } else {\n if (depsOrSettingsOrFolderSettings) {\n if ('store' in depsOrSettingsOrFolderSettings) {\n hookSettings = depsOrSettingsOrFolderSettings;\n deps = depsOrSettings;\n } else {\n folderSettings = depsOrSettingsOrFolderSettings;\n if (Array.isArray(depsOrSettings)) {\n deps = depsOrSettings;\n } else {\n hookSettings = depsOrSettings;\n deps = depsOrUndefined;\n }\n }\n }\n }\n } else {\n schema = schemaOrFolderName;\n if (Array.isArray(settingsOrDepsOrSchema)) {\n deps = settingsOrDepsOrSchema;\n } else {\n hookSettings = settingsOrDepsOrSchema;\n deps = depsOrSettingsOrFolderSettings;\n }\n }\n return {\n schema,\n folderName,\n folderSettings,\n hookSettings,\n deps: deps || []\n };\n}\nfunction useControls(schemaOrFolderName, settingsOrDepsOrSchema, depsOrSettingsOrFolderSettings, depsOrSettings, depsOrUndefined) {\n const {\n folderName,\n schema,\n folderSettings,\n hookSettings,\n deps\n } = parseArgs(schemaOrFolderName, settingsOrDepsOrSchema, depsOrSettingsOrFolderSettings, depsOrSettings, depsOrUndefined);\n const schemaIsFunction = typeof schema === 'function';\n const depsChanged = useRef(false);\n const firstRender = useRef(true);\n const _schema = useDeepMemo(() => {\n depsChanged.current = true;\n const s = typeof schema === 'function' ? schema() : schema;\n return folderName ? {\n [folderName]: folder(s, folderSettings)\n } : s;\n }, deps);\n const isGlobalPanel = !(hookSettings !== null && hookSettings !== void 0 && hookSettings.store);\n useRenderRoot(isGlobalPanel);\n const [store] = useState(() => (hookSettings === null || hookSettings === void 0 ? void 0 : hookSettings.store) || levaStore);\n const [initialData, mappedPaths] = useMemo(() => store.getDataFromSchema(_schema), [store, _schema]);\n const [allPaths, renderPaths, onChangePaths, onEditStartPaths, onEditEndPaths] = useMemo(() => {\n const allPaths = [];\n const renderPaths = [];\n const onChangePaths = {};\n const onEditStartPaths = {};\n const onEditEndPaths = {};\n Object.values(mappedPaths).forEach(({\n path,\n onChange,\n onEditStart,\n onEditEnd,\n transient\n }) => {\n allPaths.push(path);\n if (!!onChange) {\n onChangePaths[path] = onChange;\n if (!transient) {\n renderPaths.push(path);\n }\n } else {\n renderPaths.push(path);\n }\n if (onEditStart) {\n onEditStartPaths[path] = onEditStart;\n }\n if (onEditEnd) {\n onEditEndPaths[path] = onEditEnd;\n }\n });\n return [allPaths, renderPaths, onChangePaths, onEditStartPaths, onEditEndPaths];\n }, [mappedPaths]);\n const paths = useMemo(() => store.orderPaths(allPaths), [allPaths, store]);\n const values = useValuesForPath(store, renderPaths, initialData);\n const set = useCallback(values => {\n const _values = Object.entries(values).reduce((acc, [p, v]) => Object.assign(acc, {\n [mappedPaths[p].path]: v\n }), {});\n store.set(_values, false);\n }, [store, mappedPaths]);\n const get = useCallback(path => store.get(mappedPaths[path].path), [store, mappedPaths]);\n useEffect(() => {\n const shouldOverrideSettings = !firstRender.current && depsChanged.current;\n store.addData(initialData, shouldOverrideSettings);\n firstRender.current = false;\n depsChanged.current = false;\n return () => store.disposePaths(paths);\n }, [store, paths, initialData]);\n useEffect(() => {\n const unsubscriptions = [];\n Object.entries(onChangePaths).forEach(([path, onChange]) => {\n onChange(store.get(path), path, _objectSpread2({\n initial: true,\n get: store.get\n }, store.getInput(path)));\n const unsub = store.useStore.subscribe(s => {\n const input = s.data[path];\n const value = input.disabled ? undefined : input.value;\n return [value, input];\n }, ([value, input]) => onChange(value, path, _objectSpread2({\n initial: false,\n get: store.get\n }, input)), {\n equalityFn: shallow\n });\n unsubscriptions.push(unsub);\n });\n return () => unsubscriptions.forEach(unsub => unsub());\n }, [store, onChangePaths]);\n useEffect(() => {\n const unsubscriptions = [];\n Object.entries(onEditStartPaths).forEach(([path, onEditStart]) => unsubscriptions.push(store.subscribeToEditStart(path, onEditStart)));\n Object.entries(onEditEndPaths).forEach(([path, onEditEnd]) => unsubscriptions.push(store.subscribeToEditEnd(path, onEditEnd)));\n return () => unsubscriptions.forEach(unsub => unsub());\n }, [onEditStartPaths, onEditEndPaths, store]);\n if (schemaIsFunction) return [values, set, get];\n return values;\n}\n\nregister(LevaInputs.SELECT, select);\nregister(LevaInputs.IMAGE, image);\nregister(LevaInputs.NUMBER, number$1);\nregister(LevaInputs.COLOR, color);\nregister(LevaInputs.STRING, string);\nregister(LevaInputs.BOOLEAN, boolean);\nregister(LevaInputs.INTERVAL, interval);\nregister(LevaInputs.VECTOR3D, vector3d);\nregister(LevaInputs.VECTOR2D, vector2d);\n\nexport { Leva, LevaPanel, button, buttonGroup, folder, levaStore, monitor, useControls, useCreateStore };\n","/*\n|--------------------------------------------------------------------------\n|\n| schema 的纯函数工具:与框架无关,形状与 @melt-js/libs-vue3-leva 保持一致\n|\n|--------------------------------------------------------------------------\n*/\n\n/** 透传给面板控件库(Leva)的额外配置:min / max / step / options ... */\nexport type PropControl = Record<string, unknown>\n\n/** propsSchema.json 里单个 prop 的形状(与 Vue 版同构) */\nexport interface PropSchema {\n /** 属性名 */\n name: string\n /** 原始类型串,如 number / string / 'wheel' | 'fan' / Items[] */\n type: string\n /** JSDoc 描述 */\n description: string\n /** 源码里的默认值表达式(字面量或 computed 文本) */\n default: string\n required: boolean\n version: string\n /** 是否为事件回调(onXxx / function) */\n isEvent: boolean\n /** 是否能在面板上生成控件(boolean / number / string) */\n bindable: boolean\n /** 可绑定 prop 的面板初始值(已转成字面量) */\n value?: string | number | boolean\n /** 控件配置,原样交给 Leva */\n control?: PropControl\n}\n\n/** 该 prop 是否能在面板上生成控件(boolean / number / string) */\nexport function isBindable(prop: PropSchema | null | undefined): boolean {\n return Boolean(prop && prop.bindable)\n}\n\n/** 按 schema 生成面板的初始值,只包含可绑定(bindable)的 prop */\nexport function createValues(schema: PropSchema[] | undefined | null): Record<string, unknown> {\n return (schema || []).reduce<Record<string, unknown>>((values, prop) => {\n if (isBindable(prop)) values[prop.name] = prop.value\n return values\n }, {})\n}\n\n/** 没有生成控件的 prop 名(复杂对象 / 数组 / 事件等),面板上给个提示 */\nexport function complexPropNames(schema: PropSchema[] | undefined | null): string[] {\n return (schema || [])\n .filter((prop) => !prop.isEvent && !isBindable(prop))\n .map((prop) => prop.name)\n}\n\n/** 可生成控件的 prop 列表 */\nexport function bindableProps(schema: PropSchema[] | undefined | null): PropSchema[] {\n return (schema || []).filter(isBindable)\n}\n","/*\n|--------------------------------------------------------------------------\n|\n| 把与框架无关的 propsSchema 转成 Leva 的 controls schema 纯函数\n|\n| 面板组件只关心:schema 转控件配置、值从哪来;控件库本身在 PropsPanel 里挂载\n|\n|--------------------------------------------------------------------------\n*/\nimport type { PropSchema } from './schema'\nimport { bindableProps } from './schema'\n\n/** Leva 单个控件配置:value + label,其余 min / max / step / options 等原样透传 */\nexport type LevaControl = Record<string, any>\n\n/** Leva controls schema:{ [propName]: LevaControl } */\nexport type LevaSchema = Record<string, any>\n\n/**\n * 把 propsSchema.json 内容转成 Leva 的 schema 对象。\n *\n * @param schema 组件的 propsSchema 数组\n * @param values 已有的面板值(受控用法下优先取这里,缺省回落到 schema 里的初始值)\n */\nexport function toLevaSchema(\n schema: PropSchema[] | undefined | null,\n values?: Record<string, unknown>,\n): LevaSchema {\n const merged = values || {}\n return bindableProps(schema).reduce<LevaSchema>((acc, prop) => {\n acc[prop.name] = {\n value: Object.prototype.hasOwnProperty.call(merged, prop.name)\n ? merged[prop.name]\n : prop.value,\n label: prop.description || prop.name,\n ...(prop.control || {}),\n }\n return acc\n }, {})\n}\n","import React, { useEffect, useMemo } from 'react'\nimport { useControls } from 'leva'\nimport type { PropSchema } from './core/schema'\nimport { complexPropNames } from './core/schema'\nimport { toLevaSchema } from './core/leva'\n\nexport interface PropsPanelProps {\n /** 面板分组名,一般传组件名 */\n compName?: string\n /** 组件的 propsSchema.json 内容 */\n schema: PropSchema[]\n /** 受控用法:外部持有的值对象(仅作为初始值,面板改动通过 onChange 回传) */\n value?: Record<string, unknown>\n /** 控件改动回调,回传整份最新值 */\n onChange?: (next: Record<string, unknown>) => void\n /** 根节点附加 class */\n className?: string\n}\n\n/**\n * 通用的 props 属性面板:只认 schema,不关心是哪个组件。\n *\n * 与 Vue 版 PropsPanel 同构:schema 决定生成哪些控件,控件值由 Leva store 持有,\n * 改完通过 onChange 通知父级;复杂类型(对象 / 数组 / 事件)不生成控件,只给提示。\n */\nexport default function PropsPanel({\n compName,\n schema,\n value,\n onChange,\n className,\n}: PropsPanelProps) {\n const levaSchema = useMemo(() => toLevaSchema(schema, value), [schema, value])\n const complex = useMemo(() => complexPropNames(schema), [schema])\n\n // useControls 把控件注册进 Leva 全局 store,返回实时值\n const levaValues = useControls(levaSchema)\n\n // 面板值变化 -> 通知父级\n useEffect(() => {\n onChange?.(levaValues as Record<string, unknown>)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [levaValues])\n\n return (\n <div className={`props-panel${className ? ` ${className}` : ''}`}>\n {complex.length > 0 && (\n <p className=\"props-panel__hint\">复杂类型暂未生成控件:{complex.join('、')}</p>\n )}\n </div>\n )\n}\n","import React, { useEffect, useMemo, useState } from 'react'\nimport PropsPanel from './PropsPanel'\nimport type { PropSchema } from './core/schema'\nimport { createValues } from './core/schema'\n\ntype Listener = (...args: unknown[]) => void\n\nexport interface PropsPlaygroundProps {\n /** { 组件名: 组件 } */\n components: Record<string, React.ComponentType<Record<string, unknown>>>\n /** { 组件名: propsSchema 数组 } */\n schemas: Record<string, PropSchema[]>\n /** 可选:{ 组件名: { items: [...] } },面板不生成控件的复杂 props / 配套数据,同时覆盖初始值 */\n presets?: Record<string, Record<string, unknown>>\n /** 可选:{ 组件名: { select: (item) => ... } },组件事件监听 */\n listeners?: Record<string, Record<string, Listener>>\n /** 可选:{ 组件名: 'is-dark' },预览舞台附加 class */\n stageClasses?: Record<string, string>\n /** 可选:{ 组件名: { height: '480px' } },预览舞台内联样式 */\n stageStyles?: Record<string, React.CSSProperties>\n /** 可选:{ 组件名: { default: '<p>内容</p>' } },插槽用 HTML 字符串填充(当前支持 default 作为 children) */\n slotHtml?: Record<string, Record<string, string>>\n}\n\n/** listeners 的 key 映射成 React 回调 prop:select -> onSelect,onSelect 原样保留 */\nfunction toReactListeners(listeners: Record<string, Listener> | undefined) {\n if (!listeners) return {}\n return Object.entries(listeners).reduce<Record<string, Listener>>((acc, [key, fn]) => {\n const propName = /^on[A-Z]/.test(key)\n ? key\n : `on${key.charAt(0).toUpperCase()}${key.slice(1)}`\n acc[propName] = fn\n return acc\n }, {})\n}\n\n/** 纯文本当文本节点,带标签的才走 dangerouslySetInnerHTML */\nfunction renderSlot(html: string | undefined) {\n if (!html) return null\n if (/<[a-z][\\s\\S]*>/i.test(html)) {\n return <span dangerouslySetInnerHTML={{ __html: html }} />\n }\n return html\n}\n\n/**\n * 通用的组件属性实验台:组件、schema 都由宿主通过 props 传入。\n * 不 import 任何具体组件,也不认识组件包的 schema 目录。\n *\n * 与 Vue 版 PropsPlayground 同构:tabs 切换组件、舞台预览、右侧属性面板;\n * presets 固定复杂 props,其余可绑定 props 交给面板读写。\n */\nexport default function PropsPlayground({\n components,\n schemas,\n presets = {},\n listeners = {},\n stageClasses = {},\n stageStyles = {},\n slotHtml = {},\n}: PropsPlaygroundProps) {\n const names = useMemo(\n () => Object.keys(schemas).filter((name) => components[name]),\n [schemas, components],\n )\n const [selected, setSelected] = useState<string>('')\n const [values, setValues] = useState<Record<string, unknown>>({})\n const [mountKey, setMountKey] = useState(0)\n\n useEffect(() => {\n if (!names.includes(selected) && names.length) {\n select(names[0])\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [names])\n\n const schema = schemas[selected] || []\n const ActiveComp = components[selected]\n const activePreset = presets[selected] || {}\n const activeListeners = toReactListeners(listeners[selected])\n const activeSlot = slotHtml[selected] || {}\n\n function select(name: string) {\n if (name === selected) return\n setSelected(name)\n // presets 既承载复杂 props,也可以覆盖面板初始值\n const preset = presets[name] || {}\n setValues({ ...createValues(schemas[name] || []), ...preset })\n }\n\n const remount = () => setMountKey((key) => key + 1)\n\n if (!names.length) {\n return (\n <p className=\"props-playground__empty\">\n PropsPlayground 需要 components(组件映射)和 schemas(propsSchema 映射)两个 props\n </p>\n )\n }\n\n const activeProps = { ...activePreset, ...values }\n\n return (\n <div className=\"props-playground\">\n <div className=\"props-playground__bar\">\n <div className=\"props-playground__tabs\">\n {names.map((name) => (\n <button\n key={name}\n type=\"button\"\n className={`props-playground__tab${name === selected ? ' is-active' : ''}`}\n onClick={() => select(name)}\n >\n {name}\n </button>\n ))}\n </div>\n <button type=\"button\" className=\"props-playground__action\" onClick={remount}>\n 重新挂载\n </button>\n </div>\n\n <div className=\"props-playground__body\">\n <div\n className={`props-playground__stage${stageClasses[selected] ? ` ${stageClasses[selected]}` : ''}`}\n style={stageStyles[selected]}\n >\n {ActiveComp ? (\n <ActiveComp\n key={`${selected}-${mountKey}`}\n {...activeProps}\n {...activeListeners}\n >\n {renderSlot(activeSlot.default)}\n </ActiveComp>\n ) : (\n <p className=\"props-playground__empty\">组件 {selected} 未导出</p>\n )}\n </div>\n\n <PropsPanel\n key={selected}\n className=\"props-playground__panel\"\n compName={selected}\n schema={schema}\n value={values}\n onChange={setValues}\n />\n </div>\n </div>\n )\n}\n","import PropsPanel from '../PropsPanel'\nimport PropsPlayground from '../PropsPlayground'\n\nexport { PropsPanel, PropsPlayground }\nexport * from '../core/schema'\nexport * from '../core/leva'\n\n/**\n * 这个远程包自身持有面板实现(PropsPanel / PropsPlayground),并把它暴露给使用方。\n * 默认导出对象同时挂在 hel 模块上,供 preFetchLib 后按具名取值。\n */\nconst libProperties = { PropsPanel, PropsPlayground }\n\nexport type LibProperties = typeof libProperties\n\nexport default libProperties\n","/**\n * 仅本地调试用:直接访问本工程(dev / preview)时渲染一个玩具组件演示面板,\n * 作为远程库被宿主加载时不会执行(见 src/index.ts 的 isMasterApp 判断)。\n */\nimport React from 'react'\nimport { createRoot } from 'react-dom/client'\nimport PropsPlayground from './PropsPlayground'\n\nconst Toy: React.FC<Record<string, unknown>> = (props) => (\n <div style={{ padding: 24, fontSize: `${props.size}px` }}>{props.label as string}</div>\n)\n\nconst SCHEMA = [\n {\n name: 'label',\n type: 'string',\n description: '文案',\n default: '\"hello\"',\n required: false,\n version: '',\n isEvent: false,\n bindable: true,\n value: 'hello',\n },\n {\n name: 'size',\n type: 'number',\n description: '字号',\n default: '16',\n required: false,\n version: '',\n isEvent: false,\n bindable: true,\n value: 16,\n control: { min: 12, max: 48, step: 1 },\n },\n]\n\nconst node = document.getElementById('container') || document.getElementById('root')\nif (node) {\n createRoot(node).render(\n <PropsPlayground components={{ Toy }} schemas={{ Toy: SCHEMA }} />,\n )\n}\n"],"names":["main","isMasterApp","__vitePreload","index$1","libReady","helLibProxy_min","LIB_NAME","subApp","libProperties","libProperties$1","loadApp","info","getIsoInfo","tryMarkFlag","cachedIsMaster","getIsMaster","getGlobalThis","_getGlobalThis","__HEL_LOAD_ASSETS_FLAG__","__HEL_ISO_FLAG__","__MASTER_APP_LOADED__","globalThis","getCodeHost","loc","err","stackArr","str","codeHost","location","microShared","isFirstMod","isBeforeCore","isLoadAssetsCalled","_microShared$cacheRoo","appGroupName2platform","appName2platform","map","isMasterApp$1","_arrayLikeToArray","r","a","e","n","_arrayWithHoles","_arrayWithoutHoles","_createForOfIteratorHelper","t","_unsupportedIterableToArray","F","o","u","_defineProperty","_toPropertyKey","_iterableToArray","_iterableToArrayLimit","l","f","_nonIterableRest","_nonIterableSpread","ownKeys","_objectSpread2","_slicedToArray","_toConsumableArray","_toPrimitive","i","_typeof","globalThisRef","assignRef","getGlobalThis$1","setGlobalThis$1","specGlobalThis","_globalThisRef","merge","prevShared","getHelSingletonHost","getOB","gs","findNode","nodeList","tagName","targetNode","len","node","okeys$1","getSearch","getLocSearch","locVar","search","hash","hashSearch","_getGlobalThis2","getLsItem","key","_getGlobalThis3","ls","setLsItem","val","_getGlobalThis4","getSearchObj","pureSearch","items","item","_item$split","_item$split2","value","getJsRunLocation","setSubMapValue","rootObj","subKey","subValue","subMap","safeGetMap","defaultMap","safeAssign","assignTo","assignFrom","noDupPush$1","oriList","toPush","isNull$1","nullDef","_nullDef$nullValues","nullValues","_nullDef$emptyObjIsNu","emptyObjIsNull","_nullDef$emptyArrIsNu","emptyArrIsNull","inNullValues","keys","keyLen","noop","_len","args","_key","hasProp","obj","isServer","safeParse","jsonStr","defaultValue","errMsg","result","isNull","noDupPush","okeys","merge2List","list1","list2","mergedList","v","purify","isValueValid","isValidFn","pureObj","getObjsVal","objs","backupVal","_iterator","_step","mayValidVal","pfstr","mayLineBreakStr","mode","lines","lastIdx","formatLine","line","idx","_line$trimStart","replaceBr","hasBrStr","noBrStr","nbstr","nbalert","alertInDev","g","alert","_g$location","setDataset","el","disableNode","commonUtilMod","injectPlat","platform","injectOptions","_this","fn","fnName","arg1PlatObjFnKeys","handleArg1","mergePlatObj","arg1","arg2","inectPlatToMod$1","mod","options","_ref","_ref$ignoreKeys","ignoreKeys","_ref$arg1PlatObjFnKey","newObj","mayFnName","mayFn","valueType","PLAT_HEL$1","PLAT_UNPKG$1","logModeEnum","DEFAULT_ONLINE_VER","DEFAULT_PLAT","helConsts$1","helEvents$1","helLoadStatus$1","LS_LOG_FILTER","LS_LOG_MODE","NONE","LOG","TRACE","inner","firstArg","logFilter","filterList","getHelMicroDebug","memVal","modeNum","helMicroDebug","initMicroDebug","searchObj","hellog","hellogf","logMode","makeHelMicroDebug","ensureHelMicroDebug","allowLog$1","logPrefix","colorDesc","log$1","logFn","rest","logParams","labelTimes","perfMark$1","label","perfPeek$1","subLabel","clear","start","clearPerfMark$1","DEFAULT_API_URL","DEFAULT_USER_LS_KEY","PLAT_HEL","PLAT_UNPKG","DEFAULT_API_PREFIX","CORE_VER","KEY_CSS_LINK_TAG_ADDED$1","KEY_STYLE_TAG_ADDED$1","KEY_IGNORE_CSS_PREFIX_LIST$1","KEY_IGNORE_STYLE_TAG_KEY$1","KEY_IGNORE_CSS_PREFIX_2_KEYS$1","makeOriginOptions","presetOptions","apiPrefix","makeCacheNode","cacheNode","makeEventBus","name2listeners","eventName","cb","listeners","arr","listenersCopy","cbItem","makeHelMicroShared","unpkgCache","helCache","cacheRoot","innerEventBus","userEventBus","ensureCommonKeys","common","getDefault","ensureHelMicroShared","helMicroShared","getHelMicroShared","caches","getPlatform$1","getSharedCache$1","p","getCacheRoot","platType","platCache","innerUtil","appName","customKey","versionId","_getSharedCache","appName2verCustomData","customMap","dataMap","_getSharedCache2","appName2app","loadStatus","statusMapKey","appVerLoadStatus","versionIdVar","_appVerLoadStatus$app","_ref2","libOrAppMap","appMeta","onlineModule","getVerApp$1","inputOptions","_options$strictMatchV","appName2verEmitApp","appName2Comp","strictMatchVer","appName2EmitApp","targetStrictMatchVer","verEmitAppMap","verApp","Comp","legacyWriteVerApp","fallbackApp","setEmitApp$1","emitApp","sharedCache","verEmitApp","KEY_CSS_LINK_TAG_ADDED","KEY_STYLE_TAG_ADDED","KEY_IGNORE_CSS_PREFIX_LIST","KEY_IGNORE_STYLE_TAG_KEY","KEY_IGNORE_CSS_PREFIX_2_KEYS","getDataMap$1","_getCacheRoot","getDataNode","_getCacheRoot2","getCommonData$1","dataKey","setCommonData$1","data","commonDataUtil$1","cssPrefix","list","ignoreCssPrefix","url","ignoreCssPrefixList","matchedPrefix","cssUrlList","text","oldText","getPureConfig","mayCache","needOrigin","apiMode","apiSuffix","apiPathOfApp","apiPathOfAppVersion","getSubAppAndItsVersionFn","onFetchMetaFailed","getUserName","userLsKey","shouldUseGray","getApiPrefix","trustAppNames","origin","hook","customMetaUrl","customMetaJsonpUrl","getMeta","toReturn","getPlatformConfig$1","iPlatform","cache","initGlobalConfig$1","config","shared","nativeHeadAppend","nativeBodyAppend","headAppend","bodyAppend","errTip","initPlatformConfig$1","pureConfig","originInit$1","commonTip","getAppPlatform$1","appGroupName","setAppPlatform$1","overwrite","getAppPlatformByAppName$1","setAppPlatformByAppName$1","getDataMap","_options$platform","getCustomData$1","setCustomData$1","customValue","STYLE_TAG_ADDED","CSS_LINK_TAG_ADDED","getHelEventBus$1","getUserEventBus$1","evName$1","groupName","host","getVerLib$1","appName2verEmitLib","appName2Lib","appName2isLibAssigned","verEmitLibMap","verLib","staticLib","fallbackLib","setEmitLib$1","appProperties","assignLibObj","libObj","getAppMeta$1","setAppMeta$1","setVerLoadStatus$1","getVerLoadStatus$1","setVerStyleStrStatus$1","getVerStyleStrStatus$1","getAppStyleStr$1","_appName2verStyleStr$","appName2verStyleStr","appName2styleStr","fallbackStyleStr","setAppStyleStr$1","appName2verStyleFetched","setVerExtraCssList$1","cssList","appName2verExtraCssList","verExtraCssListMap","getVerExtraCssList$1","getVersion$1","_appName2verAppVersio","appName2verAppVersion","appName2appVersion","firstVerData","setVersion$1","versionData","appGroupName2firstVer","verAppVersion","getVerFromAtInMiddle","nameAndVer","callerSpecifiedVer","verList","ver","isJs","tryGetVersion$1","_loc$split","_loc$split2","restStr","strList","hasSpecifiedVer","isSpecifiedVerHasScope","verSeg","prevSeg","isPrevSegScope","str1","str2","atSymbolIdx","atSymbolSegs","scopeSegIdx","_verSeg","_verSeg2","_restStr$split","_restStr$split2","_restStr$split2$","verStartStr","_verStartStr$split","_verStartStr$split2","verInUrl","tryGetAppName$1","version","isMeMarkTrue","isTryMarkCalled","clearSignals","isSubApp$1","tip","markElFeature","name","elName","KEY_ASSET_CTX","doAppend","nativeAppend","href","src","isLink","assetCtx","beforeAppend","mayChangedEl","urlKey","_url","setAssetUrl","newUrl","patchAppendChild","doc","head","body","MutationObserver","observer","mutations","addedNodes","getAppend","htmlNode","bindTarget","patchedHeadAppend","patchedBodyAppend","isHead","pLogic","libReady$1","emitLib","eventBus","appReady$1","emitOptions","lifecycle","HEL_CSS_MARK_START","HEL_CSS_MARK_END","START_LEN","matchIgnoreCssPrefix","bus","resetStyleText","handleStyleAdded","ignoreStyleTagMap","innerText","markStart","markEnd","helKey","trimedStr","plat","handleHotUpdate","_node$src","handled","obStyleTagInsert","isStyleObInit","mutation","removedNodes","remLen","_i","resetGlobalThis","helEvents","helLoadStatus","helConsts","inectPlatToMod","commonUtil","isSubApp","setGlobalThis","getPlatform","getSharedCache","getHelDebug","allowLog","log","perfMark","perfPeek","clearPerfMark","getVerApp","setEmitApp","getVerLib","setEmitLib","getAppMeta","setAppMeta","getVersion","setVersion","getCustomData","setCustomData","getCommonData","setCommonData","commonDataUtil","getVerLoadStatus","setVerLoadStatus","getVerStyleStrStatus","setVerStyleStrStatus","getAppStyleStr","setAppStyleStr","getVerExtraCssList","setVerExtraCssList","tryGetVersion","tryGetAppName","getPlatformConfig","getAppPlatform","setAppPlatform","setAppPlatformByAppName","getAppPlatformByAppName","initPlatformConfig","originInit","initGlobalConfig","getHelEventBus","getUserEventBus","evName","appReady","exports","require$$0","this","s","c","b","y","d","A","m","x","L","h","P","R","j","S","T","_","E","O","M","k","q","reactJsxRuntime_production_min","jsxRuntimeModule","__defProp","__name","target","setRef","ref","composeRefs","refs","hasCleanup","cleanups","cleanup","useComposedRefs","React","createSlot","ownerName","Slot2","props","forwardedRef","children","slotProps","slottableElement","hasSlottable","newChildren","useUnwrappedLazy","maybeSlottable","isSlottable","slottable","child","isLazyComponent","use","getSlottableElementFromSlottable","_a","slottableElementRef","getElementRef","composedRef","createSlottableError","createSlotError","mergedProps","mergeProps","SLOTTABLE_IDENTIFIER","createSlottable","Slottable2","childProps","overrideProps","propName","slotPropValue","childPropValue","concatAriaDescribedby","element","getter","mayWarn","_b","REACT_LAZY_TYPE","isPromiseLike","unwrapped","values","ids","id","NODES","Primitive","primitive","Slot","Node","asChild","primitiveProps","jsx","dispatchDiscreteCustomEvent","event","ReactDOM","useLayoutEffect2","Portal","containerProp","portalProps","mounted","setMounted","useLayoutEffect","container","has","dequal","foo","bar","ctor","shallow","objA","objB","keysA","Rule","modifiers","testAux","it","this$1","resolve","reject","testAsyncAux","valid","ex","pickFn","variant","rule","modifier","nextFn","Modifier","perform","performAsync","ValidationError","Error","cause","remaining","Context","chain","nextRuleModifiers","ruleFn","executeAsyncRules","rules","consideredEmpty","considerTrimmedEmptyString","optional","validation","v8n","proxyContext","proxylessContext","customRules","newRules","context","prop","newContext","availableModifiers","availableRules","addRuleSet","ruleSet","targetContext","contextWithRuleApplied","contextWithAvailableRules","contextWithAllRules","split","isSchemaRule","expected","allowInfinite","isInteger","isIntegerPolyfill","testType","instance","min","max","schema","testSchema","validations","causes","nestedValidation","nested","B","$","z","I","W","w","C","N","D","H","V","G","J","U","Y","Z","clamp","fallback","v1","v2","rubberband","distance","dimension","constant","rubberbandIfOutOfBounds","position","computeRubberband","bounds","Vx","Vy","Rx","Ry","X0","X1","Y0","Y1","input","hint","prim","res","arg","EVENT_TYPE_MAP","capitalize","string","actionsWithoutCaptureSupported","hasCapture","capture","actionKey","toHandlerProp","device","action","deviceProps","pointerCaptureEvents","parseProp","eventKey","passive","captureKey","toDomEventType","isTouch","getPointerType","getCurrentTargetTouchList","_event$currentTarget","_event$currentTarget$","getTouchList","getValueEvent","touchIds","touch","pointerId","valueEvent","pointerValues","getEventDetails","payload","shiftKey","altKey","metaKey","ctrlKey","call","fns","assignDefault","BEFORE_LAST_KINEMATICS_DELAY","Engine","ctrl","state","ingKey","dt","_absoluteDelta","_m0","_m1","t0","t1","movement","v0","previousOffset","gestureIsActive","ox","oy","x0","x1","y0","y1","absoluteDelta","memo","selectAxis","dx","dy","threshold","absDx","absDy","CoordinatesEngine","identity","DEFAULT_RUBBERBAND","commonConfigResolver","_k","transform","DEFAULT_AXIS_THRESHOLD","coordinatesConfigResolver","_v","axis","left","right","top","bottom","KEYS_DELTA_MAP","displacement","factor","DragEngine","boundRect","targetRect","_bounds","ctrlIds","_values","_dx","_dy","_mx","_my","svx","svy","sx","sy","sdt","_vx","_vy","persistEvent","remove","deltaFn","bindFunction","isBrowser","supportsTouchEvents","isTouchScreen","supportsPointerEvents","supportsPointerLock","supportsGestureEvents","SUPPORT","DEFAULT_PREVENT_SCROLL_DELAY","DEFAULT_DRAG_DELAY","DEFAULT_SWIPE_VELOCITY","DEFAULT_SWIPE_DISTANCE","DEFAULT_SWIPE_DURATION","DEFAULT_KEYBOARD_DISPLACEMENT","DEFAULT_DRAG_AXIS_THRESHOLD","dragConfigResolver","lock","mouse","preventScroll","buttons","filterTaps","tapsThreshold","velocity","duration","scaleBounds","angleBounds","_scaleBounds","_angleBounds","EngineMap","ConfigResolverMap","registerAction","dragAction","_objectWithoutPropertiesLoose","source","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","sharedConfigResolver","_excluded","resolveWith","resolvers","resolver","parse","newConfig","gestureKey","_config","eventOptions","window","enabled","EventStore","handler","type","_options","TimeoutStore","callback","ms","timeout","Controller","handlers","resolveGestures","nativeHandlers","sharedConfig","gestureConfig","bindToProps","nativeBindFunction","handlerProp","setupGesture","internalHandlers","withPassiveOption","isNative","_options$capture","_options$passive","useRecognizers","useDrag","canUseDOM","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","getOwnerWindow","getOwnerDocument","getActiveElement","activeDescendant","activeElement","isFrame","createContext2","rootComponentName","defaultContext","Provider","useContext2","consumerName","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","BaseContext","index","scope","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","useReactInsertionEffect","useCallbackRef","callbackRef","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","deferPointerDownOutside","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","setNode","ownerDocument","force","composedRefs","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","isBodyPointerEventsDisabled","isPointerEventsEnabled","isDeferredPointerDownOutsideRef","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","branch","focusOutside","useFocusOutside","isHighestLayer","handleKeyDown","dispatchUpdate","handleUpdate","useDismissableLayerSurface","IS_TRUE","dismissableSurfaces","shouldHandlePointerDownOutside","handlePointerDownOutside","isPointerInsideReactTreeRef","isPointerDownOutsideRef","interceptedOutsideInteractionEventsRef","handleClickRef","resetOutsideInteraction","isOutsideInteractionIntercepted","handleInteractionCapture","surface","handleInteractionBubble","handlePointerDown","handleAndDispatchPointerDownOutsideEvent2","wasOutsideInteractionIntercepted","handleAndDispatchCustomEvent","eventDetail","outsideInteractionEvents","timerId","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","detail","discrete","FocusScopeBranchContext","FocusScopeBranchProvider","registry","useFocusScopeBranchRegistry","nodes","setNodes","prev","current","useFocusScopeBranch","focusFirst","candidates","select","previouslyFocusedElement","candidate","focus","getTabbableEdges","getTabbableCandidates","first","findVisible","last","walker","isHiddenInput","elements","canUseCheckVisibility","isHidden","upTo","isSelectableInput","createFocusScopesStack","stack","focusScope","activeFocusScope","arrayRemove","array","updatedArray","removeLinks","useReactId","count","useId","deterministicId","setId","reactId","sides","round","floor","createCoords","oppositeSideMap","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","getAxisLength","getSideAxis","firstChar","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","side","isStart","getOppositeAxisPlacements","flipAlignment","direction","expandPaddingObject","padding","_padding$top","_padding$right","_padding$bottom","_padding$left","getPaddingObject","rectToClientRect","rect","width","height","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","detectOverflow","_await$platform$isEle","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","MAX_RESET_COUNT","computePosition","middleware","platformWithDetectOverflow","statefulPlacement","resetCount","middlewareData","currentMiddleware","nextX","nextY","reset","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","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","resetPlacement","_overflowsData$filter2","currentSideAxis","acc","getSideOffsets","isAnySideFullyClipped","hide","offsets","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","clampCoord","coord","limitedCoords","limitShift","_rawOffset$mainAxis","_rawOffset$crossAxis","rawOffset","computedOffset","limitMin","limitMax","_middlewareData$offse2","isOriginSide","size","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","shiftData","noShift","availableHeight","availableWidth","nextDimensions","hasWindow","getNodeName","isNode","getWindow","_node$ownerDocument","getDocumentElement","isElement","isHTMLElement","isShadowRoot","isOverflowElement","overflowX","overflowY","display","getComputedStyle","isTableElement","isTopLayer","willChangeRe","containRe","isNotNone","isWebKitValue","isContainingBlock","elementOrCss","css","isWebKit","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","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","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","SCROLLBAR_MAX","getViewportRect","isLayoutViewport","visualViewport","layoutRelativeClientCoords","bodyStyles","bodyMarginInline","reservedWidth","gutter","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","getClippingElementAncestors","cachedResult","lastKeptComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","lastPosition","ancestor","getClippingRect","clippingAncestors","firstRect","getDimensions","getRectRelativeToOffsetParent","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","ancestorResize","io","timeoutId","root","_io","refresh","skip","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","entries","ratio","handleResize","autoUpdate","update","ancestorScroll","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","useEffect","deepEqual","getDPR","roundByDPR","dpr","useLatestRef","useFloating","externalReference","externalFloating","whileElementsMounted","open","setData","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","fullData","isMountedRef","floatingStyles","initialStyles","isRef","arrow$2","deps","Arrow","arrowProps","useSize","setSize","rAF","entry","borderSizeEntry","borderSize","Sticky","UpdatePositionStrategy","POPPER_NAME","createPopperContext","createPopperScope","PopperProvider","usePopperContext","Popper","__scopePopper","anchor","setAnchor","placementState","setPlacementState","ANCHOR_NAME","PopperAnchor","virtualRef","anchorProps","onAnchorChange","anchorRef","previousAnchor","sideAndAlign","getSideAndAlignFromPlacement","placedSide","placedAlign","CONTENT_NAME","PopperContentProvider","useContentContext","PopperContent","sideOffset","align","alignOffset","arrowPadding","avoidCollisions","collisionBoundary","collisionPaddingProp","sticky","hideWhenDetached","updatePositionStrategy","onPlaced","contentProps","content","setContent","setArrow","arrowSize","arrowWidth","arrowHeight","desiredPlacement","collisionPadding","hasExplicitBoundaries","isNotNull","isPositioned","anchorWidth","anchorHeight","contentStyle","floatingUIarrow","transformOrigin","handlePlaced","arrowX","_c","arrowY","_d","cannotCenterArrow","_e","contentZIndex","setContentZIndex","_f","_g","_h","ARROW_NAME","OPPOSITE_SIDE","PopperArrow","contentContext","baseSide","ArrowPrimitive.Root","isArrowHidden","noArrowAlign","arrowXCenter","arrowYCenter","useStateMachine","initialState","machine","nextState","Presence","present","presence","usePresence","React2","useStableComposedRefs","stylesRef","prevPresentRef","prevAnimationNameRef","mountAnimationNameRef","send","getAnimationName","styles","wasPresent","prevAnimationName","currentAnimationName","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","node2","refsRef","currentRefs","useReactEffectEvent","useEffectEvent","useInsertionEffect","useControllableState","defaultProp","onChange","caller","uncontrolledProp","setUncontrolledProp","onChangeRef","useUncontrolledState","isControlled","setValue","nextValue","value2","isFunction","prevValueRef","SYNC_STATE","useControllableStateReducer","reducer","userArgs","initialArg","init","controlledState","onChangeProp","internalState","dispatch","state2","next","uncontrolledState","VISUALLY_HIDDEN_STYLES","VisuallyHidden","createTooltipContext","createTooltipScope","usePopperScope","PROVIDER_NAME","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider","__scopeTooltip","delayDuration","skipDelayDuration","disableHoverableContent","isOpenDelayedRef","isPointerInTransitRef","skipDelayTimerRef","skipDelayTimer","inTransit","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip","openProp","defaultOpen","onOpenChange","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","contentIdState","setContentId","generatedContentId","openTimerRef","wasOpenDelayedRef","setOpen","open2","stateAttribute","handleOpen","handleClose","handleDelayedOpen","contentId","PopperPrimitive.Root","TRIGGER_NAME","TooltipTrigger","ariaDescribedby","triggerProps","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","PopperPrimitive.Anchor","PORTAL_NAME","PortalProvider","usePortalContext","TooltipContent","portalContext","forceMount","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","onClose","onPointerInTransitChange","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","currentTarget","exitPoint","exitSide","getExitSideFromRect","paddedExitPoints","getPaddedExitPoints","hoverTargetPoints","getPointsFromRect","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","pointerPosition","hasEnteredTarget","isPointerOutsideGraceArea","isPointInPolygon","Slottable","ariaLabel","idProp","contentNode","setContentNode","handleScroll","jsxs","PopperPrimitive.Content","VisuallyHiddenPrimitive.Root","TooltipArrow","PopperPrimitive.Arrow","point","polygon","inside","ii","jj","xi","yi","xj","yj","points","newPoints","getHullPresorted","upperHull","lowerHull","LevaErrors","ErrorList","path","prevPath","category","wrongType","_log","errorType","errorFn","message","warn","_excluded$a","_excluded2$4","_excluded3$1","Schemas","Plugins","getValueType","settings","checker","register","plugin","createInternalPlugin","normalize$3","_normalize","sanitize$4","prevValue","store","sanitize","format$2","format","parseNumber","log10","getStep","number","significantDigits","numberLog","step","range","invertedRange","getUid","parens","exp","muldiv","addsub","expr","subExpr","op","pick","object","omit","mapArrayToKeys","isObject","variable","isEmptyObject","SpecialInputs","LevaInputs","_excluded$9","_excluded2$3","_excluded3","parseOptions","_input","customType","_commonOptions$option","_commonOptions$disabl","_type","__customInput","render","order","disabled","onEditStart","onEditEnd","transient","inputWithType","commonOptions","computedInput","normalizeInput","parsedInputAndOptions","parsedInput","inputType","updateInput","newValue","fromPanel","sanitizeValue","ValueError","error","_newValue","sanitizedNewValue","debounce","wait","immediate","callNow","multiplyStep","_excluded$8","_excluded2$2","schema$3","sanitize$3","_min","_max","suffix","format$1","_pad","normalize$2","_settings","_value","padStep","pad","sanitizeStep$1","initialValue","steps","props$3","_extends","InputContext","createContext","useInputContext","useContext","ThemeContext","StoreContext","PanelSettingsContext","useStoreContext","usePanelSettingsContext","getDefaultTheme","createStateClass","borderColor","bgColor","utils","stitches","createStitches","styled","createTheme","globalCss","globalStyles","mergeTheme","newTheme","defaultTheme","customTheme","useTh","theme","StyledInput","InnerLabel","InnerNumberLabel","InputContainer","_excluded$7","_excluded2$1","ValueInput","innerLabel","onUpdate","onKeyDown","rows","_id","emitOnEditStart","emitOnEditEnd","inputId","inputRef","useRef","isTextArea","asType","useCallback","_onUpdate","onKeyPress","inputProps","NumberInput","dir","StyledFolder","StyledWrapper","StyledTitle","StyledContent","StyledRow","StyledInputRow","CopyLabelContainer","StyledOptionalToggle","StyledLabel","StyledInputWrapper$1","Overlay","StyledToolTipContent","ToolTipArrow","_globalThis$document","className","P.Root","_excluded$6","OptionalToggle","disable","RawLabel","htmlForProp","titleProp","RadixTooltip.Root","RadixTooltip.Trigger","RadixTooltip.Content","Label","hideCopyButton","copyEnabled","copied","setCopied","useState","handleClick","_excluded$5","Svg","Chevron","toggled","_excluded$4","Row","useInputSetters","displayValue","setDisplayValue","previousValueRef","settingsRef","setFormat","updatedValue","previousValue","useDrag$1","useCanvas2d","canvas","ctx","hasFired","handleCanvas","useTransform","local","set","_excluded$3","getInputAtPath","_data$path","useInput","setState","setSettings","flag","unsub","RangeGrid","Range","Scrubber","RangeWrapper","Indicator","RangeSlider","onDrag","scrubberRef","rangeWidth","scrubberWidth","bind","mx","pos","DraggableLabel","innerLabelTrim","dragging","setDragging","active","_memo","Number$1","NumberComponent","hasRange","sanitizeStep","props$2","_o","SelectContainer","NativeSelect","PresentationalSelect","Select","lastDisplayedValue","SelectComponent","props$1","_editable","_rows","_excluded$2","NonEditableString","String$1","editable","StringComponent","StyledInputWrapper","Boolean","BooleanComponent","boolean","_excluded$1","Coordinate","valueKey","valueRef","Container","Lock","locked","Vector","normalizeKeyedNumberSettings","maxStep","minPad","_excluded2","getVectorSchema","isVectorArray","isVectorObject","getVectorType","convert","sanitizeVector","_valueKeys","_previousValue","lockedKey","lockedCoordinate","previousLockedCoordinate","formatVector","isNumberSettings","normalizeVector","defaultKeys","mergedSettings","numberSettings","getVectorPlugin","X","ee","re","Ee","Ce","Me","Ne","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","componentName","propFullName","secret","getShim","ReactPropTypes","propTypesModule","__awaiter","thisArg","_arguments","generator","adopt","fulfilled","rejected","__generator","verb","__read","ar","__spread","COMMON_MIME_TYPES","toFileWithPath","file","withMimeType","webkitRelativePath","hasExtension","ext","FILES_TO_IGNORE","fromEvent","evt","isDataTransfer","getDataTransferFiles","isChangeEvt","getInputFiles","getFsHandleFiles","fromList","handles","files","toFilePromises","noIgnoredFiles","flatten","fromDataTransferItem","fromDirEntry","fwp","fromEntry","fromFileEntry","reader","readEntries","batch","err_1","es","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","enumerableOnly","symbols","sym","_objectSpread","minLen","arr2","_arr","_n","_s","FILE_INVALID_TYPE","FILE_TOO_LARGE","FILE_TOO_SMALL","TOO_MANY_FILES","getInvalidTypeRejectionErr","accept","messageSuffix","getTooLargeRejectionErr","maxSize","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","accepts","fileMatchSize","isDefined","allFilesAccepted","multiple","maxFiles","_fileAccepted","_fileAccepted2","accepted","_fileMatchSize","_fileMatchSize2","sizeMatch","isPropagationStopped","isEvtWithFiles","onDocumentDragOver","isIe","userAgent","isEdge","isIeOrEdge","_len2","_key2","canUseFileSystemAccessAPI","filePickerOptionsTypes","isAbort","isSecurityError","_excluded4","iter","Dropzone","forwardRef","params","_useDropzone","useDropzone","useImperativeHandle","Fragment","defaultProps","PropTypes","_defaultProps$options","getFilesFromEvent","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","onFileDialogCancel","onFileDialogOpen","useFsAccessApi","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","validator","onFileDialogOpenCb","useMemo","onFileDialogCancelCb","rootRef","_useReducer","useReducer","_useReducer2","isFocused","isFileDialogActive","draggedFiles","fsAccessApiWorksRef","onWindowFocus","dragTargetsRef","onDocumentDrop","onDragEnterCb","stopPropagation","onDragOverCb","hasFiles","onDragLeaveCb","targets","targetIdx","setFiles","fileRejections","acceptError","sizeError","customErrors","errors","onDropCb","openFileDialog","opts","onKeyDownCb","onFocusCb","onBlurCb","onClickCb","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2$refKey","refKey","role","onFocus","onBlur","onClick","onInputElementClick","getInputProps","_ref3","_ref3$refKey","fileCount","isDragAccept","isDragReject","isDragActive","createStore","createState","partial","replace","previousState","listener","getState","subscribeWithSelector","selector","equalityFn","currentSlice","listenerToAdd","nextSlice","previousSlice","api","useIsomorphicLayoutEffect","create","useStore","forceUpdate","stateRef","selectorRef","equalityFnRef","erroredRef","currentSliceRef","newStateSlice","hasNewStateSlice","stateBeforeSubscriptionRef","nextStateSlice","unsubscribe","sliceToReturn","useDebugValue","done","get","origSubscribe","optListener","isobject","isObjectObject","isPlainObject","prot","isExtendable","forIn","require$$1","mixinDeep","objects","copy","isValidKey","mixinDeep_1","getValue","toString","segs","assignSymbols","receiver","isEnumerable","provider","names","extendShallow","isString","toObject","assign","hasOwn","extend","splitString","quotes","brackets","tokens","sep","closeIdx","ch","tok","keepEscaping","getClosingQuote","keepQuotes","require$$2","require$$3","mergeValue","join","getKeyPath","getValuesForPaths","paths","useCompareMemoize","deep","useDeepMemo","_useCompareMemoize","useToggle","wrapperRef","contentRef","firstRender","fixHeight","useVisiblePaths","setPaths","useValuesForPath","initialData","usePopin","margin","popinRef","shown","setShow","show","namesPlugin","convertMap","colord","schema$2","color","hasAlpha","convertFn","sanitize$2","getFormat","ColorPreview","PickerContainer","PickerWrapper","convertToRgb","Color","timer","initialRgb","setInitialRgb","ColorPicker","RgbaColorPicker","RgbColorPicker","showPicker","hidePicker","hideAfterDelay","ColorComponent","Vector3dComponent","vector3d","JoystickTrigger","JoystickPlayground","Joystick","outOfBoundsX","outOfBoundsY","stepMultiplier","joystickShown","setShowJoystick","isOutOfBounds","setIsOutOfBounds","spanRef","joystickeRef","playgroundRef","joystick","yFactor","stepV1","stepV2","wpx","hpx","startOutOfBounds","incX","incY","endOutOfBounds","setStepMultiplier","my","_x","_y","newX","newY","Container$1","Vector2dComponent","vector2d","image","ImageContainer","DropZone","ImagePreview","ImageLargePreview","Instructions","Remove","ImageComponent","MIN","MAX","boundsSettings","IntervalSlider","minScrubberRef","maxScrubberRef","targetIsScrub","delta","minStyle","maxStyle","IntervalComponent","interval","createEventEmitter","listenerMapping","topic","Store","eventEmitter","folders","orderedPaths","hiddenFolders","visiblePaths","newPaths","newData","override","newInputData","_this$getInput","_path","_getDataFromSchema","rootPath","mappedPaths","rawInput","newPath","normalizedInput","levaStore","defaultSettings$2","folder","isInput","buildTree","filter","tree","_filter","folderPath","ControlInput","Input","StyledButton","Button","StyledButtonGroup","StyledButtonGroupButton","getOpts","_label","_opts","ButtonGroup","Canvas","POINTS","push","MonitorCanvas","accentColor","backgroundColor","fillColor","gradientTop","gradientBottom","raf","drawPlot","_canvas","_ctx","verticalPadding","gradientPath","gradient","MonitorLog","Monitor","objectOrFn","_ref$current","specialComponents","Control","storeId","SpecialInputForType","FolderTitle","toggle","Folder","collapsed","setToggle","folderRef","widgetColor","textColor","TreeWrapper","_isRoot","_fill","_flat","parent","getOrder","_store$getInput","StyledRoot","iconWidth","Icon","StyledTitleWithFilter","FilterWrapper","StyledFilterInput","TitleContainer","FilterInput","setFilter","debouncedOnChange","_onChange","TitleWithFilter","onDragStart","onDragEnd","title","drag","filterEnabled","from","filterShown","setShowFilter","_inputRef$current","_inputRef$current2","handleShortcut","LevaRoot","hidden","themeContext","computedToggled","computedSetToggle","LevaCore","rootClass","_neverHide","_oneLineLabels","_titleBar","_hideCopyButton","_titleBar$drag","_titleBar$filter","shouldShow","RadixTooltip.Provider","rootInitialized","rootEl","Leva","isRoot","useRenderRoot","isGlobalPanel","createRoot","parseArgs","schemaOrFolderName","settingsOrDepsOrSchema","depsOrSettingsOrFolderSettings","depsOrSettings","depsOrUndefined","folderName","folderSettings","hookSettings","useControls","schemaIsFunction","depsChanged","_schema","allPaths","renderPaths","onChangePaths","onEditStartPaths","onEditEndPaths","shouldOverrideSettings","unsubscriptions","number$1","isBindable","createValues","complexPropNames","bindableProps","toLevaSchema","merged","PropsPanel","compName","levaSchema","complex","levaValues","toReactListeners","renderSlot","PropsPlayground","components","schemas","presets","stageClasses","stageStyles","slotHtml","selected","setSelected","setValues","mountKey","setMountKey","ActiveComp","activePreset","activeListeners","activeSlot","preset","remount","activeProps","Toy","SCHEMA"],"mappings":"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","x_google_ignoreList":[1,2,3,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]}