freebrowse 2.5.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +134 -0
- package/dist-lib/index.js +21492 -0
- package/dist-lib/index.js.map +1 -0
- package/dist-lib/react.js +10790 -0
- package/dist-lib/react.js.map +1 -0
- package/dist-lib/style.css +1 -0
- package/dist-lib/types/components/canvas-area.d.ts +10 -0
- package/dist-lib/types/components/dialogs/imaging-upload-confirmation-dialog.d.ts +6 -0
- package/dist-lib/types/components/dialogs/remove-dialog.d.ts +6 -0
- package/dist-lib/types/components/dialogs/save-dialog.d.ts +14 -0
- package/dist-lib/types/components/dialogs/session-delete-confirmation-dialog.d.ts +6 -0
- package/dist-lib/types/components/dialogs/settings-dialog.d.ts +6 -0
- package/dist-lib/types/components/drag-mode-selector.d.ts +9 -0
- package/dist-lib/types/components/file-list.d.ts +12 -0
- package/dist-lib/types/components/footer.d.ts +1 -0
- package/dist-lib/types/components/freebrowse.d.ts +32 -0
- package/dist-lib/types/components/header.d.ts +6 -0
- package/dist-lib/types/components/image-canvas.d.ts +7 -0
- package/dist-lib/types/components/image-uploader.d.ts +6 -0
- package/dist-lib/types/components/sidebar.d.ts +56 -0
- package/dist-lib/types/components/tabs/ai-annotation-tab.d.ts +20 -0
- package/dist-lib/types/components/tabs/data-tab.d.ts +6 -0
- package/dist-lib/types/components/tabs/drawing-tab.d.ts +17 -0
- package/dist-lib/types/components/tabs/nvd-tab.d.ts +6 -0
- package/dist-lib/types/components/tabs/scene-details-tab.d.ts +22 -0
- package/dist-lib/types/components/tabs/surface-details-tab.d.ts +20 -0
- package/dist-lib/types/components/ui/button.d.ts +10 -0
- package/dist-lib/types/components/ui/checkbox.d.ts +4 -0
- package/dist-lib/types/components/ui/dialog.d.ts +15 -0
- package/dist-lib/types/components/ui/input.d.ts +5 -0
- package/dist-lib/types/components/ui/label.d.ts +4 -0
- package/dist-lib/types/components/ui/labeled-slider-with-input.d.ts +14 -0
- package/dist-lib/types/components/ui/radio-group.d.ts +5 -0
- package/dist-lib/types/components/ui/scroll-area.d.ts +5 -0
- package/dist-lib/types/components/ui/select.d.ts +5 -0
- package/dist-lib/types/components/ui/slider.d.ts +4 -0
- package/dist-lib/types/components/ui/tabs.d.ts +7 -0
- package/dist-lib/types/components/ui/toggle-group.d.ts +7 -0
- package/dist-lib/types/components/ui/toggle.d.ts +9 -0
- package/dist-lib/types/components/view-selector.d.ts +7 -0
- package/dist-lib/types/components/viewer-shell.d.ts +13 -0
- package/dist-lib/types/hooks/use-ai-capabilities.d.ts +1 -0
- package/dist-lib/types/hooks/use-ai-session.d.ts +9 -0
- package/dist-lib/types/hooks/use-drawing.d.ts +27 -0
- package/dist-lib/types/hooks/use-file-loading.d.ts +15 -0
- package/dist-lib/types/hooks/use-magic-wand.d.ts +15 -0
- package/dist-lib/types/hooks/use-mesh-layers.d.ts +21 -0
- package/dist-lib/types/hooks/use-save.d.ts +12 -0
- package/dist-lib/types/hooks/use-surfaces.d.ts +16 -0
- package/dist-lib/types/hooks/use-viewer-options.d.ts +42 -0
- package/dist-lib/types/hooks/use-volumes.d.ts +39 -0
- package/dist-lib/types/lib/confirmations.d.ts +4 -0
- package/dist-lib/types/lib/default-niivue-options.d.ts +16 -0
- package/dist-lib/types/lib/deployment-config.d.ts +66 -0
- package/dist-lib/types/lib/niivue-helpers.d.ts +27 -0
- package/dist-lib/types/lib/nvd-volume-urls.d.ts +26 -0
- package/dist-lib/types/lib/random-session-name.d.ts +1 -0
- package/dist-lib/types/lib/utils.d.ts +2 -0
- package/dist-lib/types/lib.d.ts +16 -0
- package/dist-lib/types/mount.d.ts +49 -0
- package/dist-lib/types/react.d.ts +10 -0
- package/dist-lib/types/store/ai-slice.d.ts +25 -0
- package/dist-lib/types/store/drawing-slice.d.ts +7 -0
- package/dist-lib/types/store/index.d.ts +21 -0
- package/dist-lib/types/store/location-slice.d.ts +7 -0
- package/dist-lib/types/store/niivue-store-sync.d.ts +41 -0
- package/dist-lib/types/store/niivue-sync.d.ts +57 -0
- package/dist-lib/types/store/save-slice.d.ts +9 -0
- package/dist-lib/types/store/surface-slice.d.ts +15 -0
- package/dist-lib/types/store/types.d.ts +69 -0
- package/dist-lib/types/store/viewer-slice.d.ts +31 -0
- package/dist-lib/types/store/volume-slice.d.ts +13 -0
- package/package.json +130 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.js","../node_modules/scheduler/index.js","../node_modules/react/cjs/react.production.js","../node_modules/react/index.js","../node_modules/react-dom/cjs/react-dom.production.js","../node_modules/react-dom/index.js","../node_modules/react-dom/cjs/react-dom-client.production.js","../node_modules/react-dom/client.js","../src/store/niivue-sync.ts","../src/lib/niivue-helpers.ts","../node_modules/zustand/esm/vanilla.mjs","../node_modules/zustand/esm/react.mjs","../node_modules/zustand/esm/middleware.mjs","../src/lib/deployment-config.ts","../src/store/volume-slice.ts","../src/store/surface-slice.ts","../src/store/drawing-slice.ts","../src/store/viewer-slice.ts","../src/store/save-slice.ts","../src/store/location-slice.ts","../src/store/ai-slice.ts","../src/store/index.ts","../src/store/niivue-store-sync.ts","../src/hooks/use-viewer-options.ts","../src/hooks/use-volumes.ts","../src/hooks/use-surfaces.ts","../src/hooks/use-mesh-layers.ts","../src/hooks/use-drawing.ts","../node_modules/@niivue/nv-ext-drawing/dist/nv-ext-drawing.js","../src/hooks/use-magic-wand.ts","../src/lib/nvd-volume-urls.ts","../src/lib/confirmations.ts","../src/hooks/use-save.ts","../src/hooks/use-file-loading.ts","../src/hooks/use-ai-capabilities.ts","../src/hooks/use-ai-session.ts","../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/lib/utils.ts","../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/box.js","../node_modules/lucide-react/dist/esm/icons/brain.js","../node_modules/lucide-react/dist/esm/icons/check.js","../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../node_modules/lucide-react/dist/esm/icons/chevron-up.js","../node_modules/lucide-react/dist/esm/icons/circle-dot.js","../node_modules/lucide-react/dist/esm/icons/circle.js","../node_modules/lucide-react/dist/esm/icons/columns-3.js","../node_modules/lucide-react/dist/esm/icons/contrast.js","../node_modules/lucide-react/dist/esm/icons/crosshair.js","../node_modules/lucide-react/dist/esm/icons/database.js","../node_modules/lucide-react/dist/esm/icons/download.js","../node_modules/lucide-react/dist/esm/icons/eye-off.js","../node_modules/lucide-react/dist/esm/icons/eye.js","../node_modules/lucide-react/dist/esm/icons/file-text.js","../node_modules/lucide-react/dist/esm/icons/file.js","../node_modules/lucide-react/dist/esm/icons/grid-2x2.js","../node_modules/lucide-react/dist/esm/icons/image.js","../node_modules/lucide-react/dist/esm/icons/log-out.js","../node_modules/lucide-react/dist/esm/icons/maximize-2.js","../node_modules/lucide-react/dist/esm/icons/moon.js","../node_modules/lucide-react/dist/esm/icons/mouse-pointer.js","../node_modules/lucide-react/dist/esm/icons/move.js","../node_modules/lucide-react/dist/esm/icons/panel-bottom.js","../node_modules/lucide-react/dist/esm/icons/panel-left.js","../node_modules/lucide-react/dist/esm/icons/panel-right.js","../node_modules/lucide-react/dist/esm/icons/pencil.js","../node_modules/lucide-react/dist/esm/icons/rotate-ccw.js","../node_modules/lucide-react/dist/esm/icons/ruler.js","../node_modules/lucide-react/dist/esm/icons/save.js","../node_modules/lucide-react/dist/esm/icons/settings.js","../node_modules/lucide-react/dist/esm/icons/sparkles.js","../node_modules/lucide-react/dist/esm/icons/square-pen.js","../node_modules/lucide-react/dist/esm/icons/square.js","../node_modules/lucide-react/dist/esm/icons/sun.js","../node_modules/lucide-react/dist/esm/icons/trash-2.js","../node_modules/lucide-react/dist/esm/icons/undo.js","../node_modules/lucide-react/dist/esm/icons/upload.js","../node_modules/lucide-react/dist/esm/icons/x.js","../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../node_modules/@radix-ui/react-slot/dist/index.mjs","../node_modules/class-variance-authority/dist/index.mjs","../src/components/ui/button.tsx","../node_modules/@radix-ui/react-context/dist/index.mjs","../node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.mjs","../node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/primitive/dist/index.mjs","../node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.mjs","../node_modules/@radix-ui/react-collection/dist/index.mjs","../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../node_modules/@radix-ui/react-id/dist/index.mjs","../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../node_modules/@radix-ui/react-direction/dist/index.mjs","../node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../node_modules/@radix-ui/react-toggle/dist/index.mjs","../node_modules/@radix-ui/react-toggle-group/dist/index.mjs","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx","../src/assets/images/axialSlice24.png","../src/assets/images/coronalSlice24.png","../src/assets/images/sagittalSlice24.png","../src/components/view-selector.tsx","../src/components/drag-mode-selector.tsx","../src/components/header.tsx","../src/components/footer.tsx","../src/components/image-uploader.tsx","../src/components/image-canvas.tsx","../src/components/canvas-area.tsx","../src/components/viewer-shell.tsx","../node_modules/@radix-ui/react-presence/dist/index.mjs","../node_modules/@radix-ui/react-tabs/dist/index.mjs","../src/components/ui/tabs.tsx","../node_modules/@radix-ui/number/dist/index.mjs","../node_modules/@radix-ui/react-scroll-area/dist/index.mjs","../src/components/ui/scroll-area.tsx","../src/components/file-list.tsx","../src/components/tabs/nvd-tab.tsx","../src/components/tabs/data-tab.tsx","../node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-label/dist/index.mjs","../src/components/ui/label.tsx","../node_modules/@radix-ui/react-use-previous/dist/index.mjs","../node_modules/@radix-ui/react-use-size/dist/index.mjs","../node_modules/@radix-ui/react-slider/dist/index.mjs","../src/components/ui/slider.tsx","../src/components/ui/input.tsx","../src/components/ui/labeled-slider-with-input.tsx","../src/components/ui/select.tsx","../src/components/tabs/scene-details-tab.tsx","../node_modules/@radix-ui/react-checkbox/dist/index.mjs","../src/components/ui/checkbox.tsx","../src/components/tabs/surface-details-tab.tsx","../src/components/tabs/drawing-tab.tsx","../src/lib/random-session-name.ts","../src/components/tabs/ai-annotation-tab.tsx","../src/components/sidebar.tsx","../src/components/ui/dialog.tsx","../src/components/dialogs/remove-dialog.tsx","../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../src/components/ui/radio-group.tsx","../src/components/dialogs/save-dialog.tsx","../src/components/dialogs/settings-dialog.tsx","../src/components/dialogs/imaging-upload-confirmation-dialog.tsx","../src/components/dialogs/session-delete-confirmation-dialog.tsx","../src/components/freebrowse.tsx","../src/lib/default-niivue-options.ts","../src/mount.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.4\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.4\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$140) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$140);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n if (\n 0 !== (root & 4) &&\n ((root = firstChild.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$139) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$139\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$141 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$141, \"\"), (hostParentFiber.flags &= -33));\n var before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$142, parent$141);\n break;\n case 3:\n case 4:\n var parent$143 = hostParentFiber.stateNode.containerInfo,\n before$144 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$144,\n parent$143\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n ) {\n suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n };\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n );\n var timeoutOffset =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0;\n timeoutOffset = waitForCommitToBeReady(\n suspendedCommitReason,\n timeoutOffset\n );\n if (null !== timeoutOffset) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = timeoutOffset(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$167) {\n handleThrow(root, thrownValue$167);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$170 = firstScheduledRoot; null !== root$170; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$170.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$170.suspendedLanes,\n pingedLanes = root$170.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$170,\n root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$170.cancelPendingCommit ||\n -1 !== root$170.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n root$170 = root$170.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1577 = 0;\n i$jscomp$inline_1577 < simpleEventPluginEvents.length;\n i$jscomp$inline_1577++\n) {\n var eventName$jscomp$inline_1578 =\n simpleEventPluginEvents[i$jscomp$inline_1577],\n domEventName$jscomp$inline_1579 =\n eventName$jscomp$inline_1578.toLowerCase(),\n capitalizedEvent$jscomp$inline_1580 =\n eventName$jscomp$inline_1578[0].toUpperCase() +\n eventName$jscomp$inline_1578.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1579,\n \"on\" + capitalizedEvent$jscomp$inline_1580\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$184 = props[hasSrc];\n if (null != propValue$184)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$184;\n break;\n case \"type\":\n propValue = propValue$184;\n break;\n case \"checked\":\n checked = propValue$184;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$184;\n break;\n case \"value\":\n propKey = propValue$184;\n break;\n case \"defaultValue\":\n defaultValue = propValue$184;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$184)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$184, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$184 in props)\n props.hasOwnProperty(propValue$184) &&\n ((hasSrc = props[propValue$184]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$184,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$201 in nextProps) {\n var propKey = nextProps[propKey$201];\n lastProp = lastProps[propKey$201];\n if (\n nextProps.hasOwnProperty(propKey$201) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$201) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$201,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$201 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$201 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$201\n ? updateOptions(domElement, !!lastProps, propKey$201, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$201 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$201 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$201, propKey);\n return;\n case \"option\":\n for (var propKey$217 in lastProps)\n if (\n ((propKey$201 = lastProps[propKey$217]),\n lastProps.hasOwnProperty(propKey$217) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$217))\n )\n switch (propKey$217) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$217,\n null,\n nextProps,\n propKey$201\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$201 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$201 &&\n \"function\" !== typeof propKey$201 &&\n \"symbol\" !== typeof propKey$201;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$222 in lastProps)\n (propKey$201 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$222) &&\n setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);\n for (checked in nextProps)\n if (\n ((propKey$201 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$201)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$227 in lastProps)\n (propKey$201 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n void 0 !== propKey$201 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$227,\n void 0,\n nextProps,\n propKey$201\n );\n for (defaultChecked in nextProps)\n (propKey$201 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$201 === propKey ||\n (void 0 === propKey$201 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$201,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$232 in lastProps)\n (propKey$201 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);\n for (lastProp in nextProps)\n (propKey$201 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$201 === propKey ||\n (null == propKey$201 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$243 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$244 = styles$243.get(type);\n resource$244 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$244 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$243.set(type, resource$244),\n (styles$243 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$243._p &&\n ((resource$244.instance = styles$243),\n (resource$244.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$243 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$244.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$244;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$249 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$249)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$249),\n markNodeAsHoistable(instance$249),\n instance$249\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$249 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$249);\n var linkInstance = instance$249;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$249, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$249, props.precedence, hoistableRoot);\n return (resource.instance = instance$249);\n case \"script\":\n instance$249 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$249)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$249)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;\nif (\n \"19.2.4\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.4\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2347 = {\n bundleType: 0,\n version: \"19.2.4\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.4\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2348.isDisabled &&\n hook$jscomp$inline_2348.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2348.inject(\n internals$jscomp$inline_2347\n )),\n (injectedHook = hook$jscomp$inline_2348);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.4\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","/**\n * registerNiiVueEvents — the single event-driven sync bridge between a\n * niivue-mono `NiiVue` instance and FreeBrowse's UI state.\n *\n * niivue-mono's controller extends `EventTarget` and emits a `CustomEvent` for\n * every state mutation that goes through its API (setters + methods). By making\n * FreeBrowse's store a *derived view* updated only from these events, both\n * FreeBrowse's own command wrappers and external code (a developer holding\n * `window.freebrowse.nv`) drive the UI through the identical path.\n *\n * Dedupe strategy: every flat scalar setter emits a generic\n * `change {property, value}`, and a handful ALSO emit a specific event\n * (`sliceTypeChange`, `azimuthElevationChange`, `drawingEnabled`,\n * `penValueChanged`). We subscribe to `change` as the single source of truth for\n * scalars and deliberately ignore those scalar-mirror events, so each scalar is\n * handled exactly once. Specific events are used ONLY where `change` carries no\n * equivalent: structural volume/mesh changes, drawing actions, location, etc.\n *\n * Phase 0: this is the dispatcher skeleton + its {@link NiiVueSyncTarget}\n * contract, verified against the event-emitting mock. The concrete adapter that\n * maps these intent callbacks onto the Zustand store (with niivue->store name\n * and value translation) is added as hooks convert in Phase 2+.\n */\n\n/** Minimal shape of a niivue instance this bridge needs. */\nexport interface NiiVueEventSource extends EventTarget {\n volumes: unknown[];\n meshes: unknown[];\n}\n\n/**\n * Intent-level sink for niivue state changes. Phase 2+ provides a concrete\n * implementation backed by the Zustand store; tests provide spies.\n */\nexport interface NiiVueSyncTarget {\n /** A flat viewer/scene scalar changed (niivue property name + new value). */\n onViewerOptionChange(property: string, value: unknown): void;\n /** A drawing-related scalar changed (pen value, opacity, colormap, ...). */\n onDrawingOptionChange(property: string, value: unknown): void;\n /** The volume list changed (add / remove / reorder / update) — re-read `volumes`. */\n onVolumesChanged(volumes: unknown[]): void;\n /** A single volume's properties changed, with the exact applied subset. */\n onVolumeUpdated(index: number, changes: Record<string, unknown>): void;\n /** The mesh list or a mesh/layer changed — re-read `meshes`. */\n onSurfacesChanged(meshes: unknown[]): void;\n /** Drawing state changed; `action` is create/close/undo/stroke/load/update. */\n onDrawingChanged(action: string): void;\n /** Crosshair moved (interaction or a location-emitting method). */\n onLocationChange(location: unknown): void;\n /** A document finished loading (volumes/meshes/scene already applied). */\n onDocumentLoaded(): void;\n /** A colormap was registered by name. */\n onColormapAdded(name: string): void;\n}\n\n/**\n * niivue `change` properties that belong to drawing state rather than general\n * viewer options. Everything else routed by `change` is a viewer/scene option.\n */\nconst DRAWING_PROPS = new Set([\n \"drawIsEnabled\",\n \"drawPenValue\",\n \"drawPenSize\",\n \"drawOpacity\",\n \"drawRimOpacity\",\n \"drawColormap\",\n \"drawIsFillOverwriting\",\n]);\n\ntype ChangeDetail = { property: string; value: unknown };\ntype VolumeUpdatedDetail = {\n volumeIndex: number;\n changes: Record<string, unknown>;\n};\ntype DrawingChangedDetail = { action: string };\ntype ColormapAddedDetail = { name: string };\n\nfunction detailOf<T>(event: Event): T {\n return (event as CustomEvent<T>).detail;\n}\n\n/**\n * Subscribe `target` to all relevant events on `nv`. Returns a teardown that\n * removes every listener (call it on unmount / instance replacement).\n */\nexport function registerNiiVueEvents(\n nv: NiiVueEventSource,\n target: NiiVueSyncTarget,\n): () => void {\n const listeners: [string, EventListener][] = [];\n const on = (type: string, handler: EventListener): void => {\n nv.addEventListener(type, handler);\n listeners.push([type, handler]);\n };\n\n // Scalars — the single `change` stream (mirrors ignored to avoid double-handling).\n on(\"change\", (e) => {\n const { property, value } = detailOf<ChangeDetail>(e);\n if (DRAWING_PROPS.has(property)) {\n target.onDrawingOptionChange(property, value);\n } else {\n target.onViewerOptionChange(property, value);\n }\n });\n\n // Volumes — loaded/removed/reordered lack a usable index or carry the array;\n // re-read `nv.volumes` for a consistent snapshot.\n const onVolumeList = (): void => target.onVolumesChanged(nv.volumes);\n on(\"volumeLoaded\", onVolumeList);\n on(\"volumeRemoved\", onVolumeList);\n on(\"volumeOrderChanged\", onVolumeList);\n on(\"frameChange\", onVolumeList);\n on(\"volumeUpdated\", (e) => {\n const { volumeIndex, changes } = detailOf<VolumeUpdatedDetail>(e);\n target.onVolumeUpdated(volumeIndex, changes);\n target.onVolumesChanged(nv.volumes);\n });\n\n // Meshes & layers — re-read `nv.meshes`.\n const onMeshList = (): void => target.onSurfacesChanged(nv.meshes);\n on(\"meshLoaded\", onMeshList);\n on(\"meshRemoved\", onMeshList);\n on(\"meshUpdated\", onMeshList);\n\n // Drawing actions.\n on(\"drawingChanged\", (e) => {\n target.onDrawingChanged(detailOf<DrawingChangedDetail>(e).action);\n });\n\n // Session / scene.\n on(\"locationChange\", (e) => target.onLocationChange(detailOf(e)));\n on(\"documentLoaded\", () => target.onDocumentLoaded());\n on(\"colormapAdded\", (e) => {\n target.onColormapAdded(detailOf<ColormapAddedDetail>(e).name);\n });\n\n return () => {\n for (const [type, handler] of listeners) {\n nv.removeEventListener(type, handler);\n }\n listeners.length = 0;\n };\n}\n","import { SHOW_RENDER } from \"@niivue/niivue\";\n\n/**\n * Map from view mode name to NiiVue slice type and render settings.\n */\nexport const sliceTypeMap: {\n [type: string]: { sliceType: number; showRender: number };\n} = {\n axial: { sliceType: 0, showRender: SHOW_RENDER.NEVER },\n coronal: { sliceType: 1, showRender: SHOW_RENDER.NEVER },\n sagittal: { sliceType: 2, showRender: SHOW_RENDER.NEVER },\n ACS: { sliceType: 3, showRender: SHOW_RENDER.NEVER },\n ACSR: { sliceType: 3, showRender: SHOW_RENDER.ALWAYS },\n render: { sliceType: 4, showRender: SHOW_RENDER.ALWAYS },\n};\n\n/**\n * Convert an RGBA [0-255] tuple to a hex color string (ignoring alpha).\n */\nexport function rgba255ToHex(\n rgba255: [number, number, number, number],\n): string {\n const r = rgba255[0].toString(16).padStart(2, \"0\");\n const g = rgba255[1].toString(16).padStart(2, \"0\");\n const b = rgba255[2].toString(16).padStart(2, \"0\");\n return `#${r}${g}${b}`;\n}\n\n/**\n * Convert a Uint8Array to a base64 string efficiently for large arrays.\n */\nexport function uint8ArrayToBase64(uint8Array: Uint8Array): string {\n let binaryString = \"\";\n const chunkSize = 8192;\n for (let i = 0; i < uint8Array.length; i += chunkSize) {\n const chunk = uint8Array.subarray(i, i + chunkSize);\n binaryString += String.fromCharCode(...chunk);\n }\n return btoa(binaryString);\n}\n\n/**\n * Gzip a byte array with the browser-native `CompressionStream('gzip')`.\n *\n * niivue-mono's `saveVolume` returns raw (uncompressed) bytes only for an empty\n * filename — a `.gz` filename triggers a browser download instead of returning\n * bytes. So the AI upload path exports raw bytes via `saveVolume({filename:''})`\n * and gzips them here (matching old FreeBrowse's `saveToUint8Array(name.gz)`),\n * with no extra dependency.\n */\nexport async function gzipUint8Array(bytes: Uint8Array): Promise<Uint8Array> {\n const stream = new Response(bytes).body?.pipeThrough(\n new CompressionStream(\"gzip\"),\n );\n if (!stream) throw new Error(\"gzip: no readable stream from input\");\n return new Uint8Array(await new Response(stream).arrayBuffer());\n}\n","const createStoreImpl = (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 (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n React.useCallback(() => selector(api.getInitialState()), [api, selector])\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n","const reduxImpl = (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 { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst shouldDispatchFromDevtools = (api) => !!api.dispatchFromDevtools && typeof api.dispatch === \"function\";\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst findCallerName = (stack) => {\n var _a, _b;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return (_b = /.+ (.+) .+/.exec(callerLine)) == null ? void 0 : _b[1];\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = ((state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n });\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\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 if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (shouldDispatchFromDevtools(api)) {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (shouldDispatchFromDevtools(api)) {\n api.dispatch(action);\n }\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (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};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\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 persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => window.localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n let hydrationVersion = 0;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n return setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n return setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n const currentVersion = ++hydrationVersion;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n if (currentVersion !== hydrationVersion) {\n return;\n }\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n if (currentVersion !== hydrationVersion) {\n return;\n }\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\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 if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nfunction ssrSafe(config, isSSR = typeof window === \"undefined\") {\n return (set, get, api) => {\n if (!isSSR) {\n return config(set, get, api);\n }\n const ssrSet = () => {\n throw new Error(\"Cannot set state of Zustand store in SSR\");\n };\n api.setState = ssrSet;\n return config(ssrSet, get, api);\n };\n}\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector, ssrSafe as unstable_ssrSafe };\n","/**\n * Runtime configuration for one FreeBrowse instance (app or embedded library).\n *\n * These are *deployment* (operator/host-controlled) settings, distinct from\n * per-user preferences, and must never be sourced from user-writable storage.\n *\n * Defaults come from Vite env vars so the app behaves exactly as before\n * (`VITE_SERVERLESS`, `VITE_DISABLE_DOWNLOAD`); an embedding host overrides\n * them at runtime through `configureFreeBrowse` (or the `mountFreeBrowse`\n * options), since a published package has one build and no env.\n *\n * Consumers read through `deploymentConfig` (getters, always current) and the\n * `dataUrl` / `aiUrl` helpers rather than caching values at import time.\n */\n\nexport interface FreeBrowseBackend {\n /** Base URL of the `/data` file API (listings, `.nvd` + `.nii` uploads). */\n dataUrl: string;\n /** Base URL of the `/ai` session API. */\n aiUrl: string;\n}\n\nexport interface FreeBrowseConfig {\n /**\n * Backend endpoints, or `null` for a backend-less (\"serverless\") viewer: no\n * Save-to-server, no Data/NVD tabs, no AI capability probe.\n */\n backend: FreeBrowseBackend | null;\n /**\n * Lock down client-side data export for secure deployments: disables the\n * Download button and no-ops niivue's save-to-disk methods. Not a guarantee\n * against a determined/malicious user — it stops well-intentioned exports.\n */\n downloadDisabled: boolean;\n /** localStorage key for user preferences, or `false` to keep them in memory. */\n persist: string | false;\n /** Read `?nvd=` / `?vol=` from the page URL on startup (app: yes; library: no). */\n readUrlParams: boolean;\n /** Publish the instance as `window.freebrowse.nv` (app: yes; library: no). */\n exposeGlobal: boolean;\n}\n\nexport const DEFAULT_BACKEND: FreeBrowseBackend = { dataUrl: \"/data\", aiUrl: \"/ai\" };\nexport const DEFAULT_PERSIST_KEY = \"freebrowse-user-settings\";\n\nfunction defaultsFromEnv(): FreeBrowseConfig {\n return {\n backend: import.meta.env.VITE_SERVERLESS === \"true\" ? null : { ...DEFAULT_BACKEND },\n downloadDisabled: import.meta.env.VITE_DISABLE_DOWNLOAD === \"true\",\n persist: DEFAULT_PERSIST_KEY,\n readUrlParams: true,\n exposeGlobal: true,\n };\n}\n\nlet config: FreeBrowseConfig = defaultsFromEnv();\n\n/** Override part of the configuration; returns the effective config. */\nexport function configureFreeBrowse(\n partial: Partial<FreeBrowseConfig>,\n): Readonly<FreeBrowseConfig> {\n config = { ...config, ...partial };\n return config;\n}\n\n/** Back to the env-derived defaults (tests). */\nexport function resetFreeBrowseConfig(): void {\n config = defaultsFromEnv();\n}\n\n/** The effective configuration (live view; do not mutate). */\nexport function getFreeBrowseConfig(): Readonly<FreeBrowseConfig> {\n return config;\n}\n\n/**\n * The two flags most of the UI keys off. Getters, so a value read inside a\n * render or effect is always the configured one.\n */\nexport const deploymentConfig = {\n /** No backend configured (file:// builds, or an embedding host without one). */\n get serverless(): boolean {\n return config.backend === null;\n },\n get downloadDisabled(): boolean {\n return config.downloadDisabled;\n },\n};\n\nfunction join(base: string, path: string): string {\n return base.replace(/\\/+$/, \"\") + \"/\" + path.replace(/^\\/+/, \"\");\n}\n\nfunction requireBackend(): FreeBrowseBackend {\n if (config.backend === null) {\n throw new Error(\n \"FreeBrowse: no backend configured (serverless); this call should be unreachable\",\n );\n }\n return config.backend;\n}\n\n/** `dataUrl(\"nvd\")` → `<backend.dataUrl>/nvd`. Throws when no backend is configured. */\nexport function dataUrl(path = \"\"): string {\n return join(requireBackend().dataUrl, path);\n}\n\n/** `aiUrl(\"session/list\")` → `<backend.aiUrl>/session/list`. Throws when no backend. */\nexport function aiUrl(path = \"\"): string {\n return join(requireBackend().aiUrl, path);\n}\n\n/**\n * Strip the configured data base from a URL, returning the path relative to\n * the data root (`\"/data/x/y.nii.gz\"` → `\"x/y.nii.gz\"`), or null if the URL is\n * not under it. Accepts the bare relative spelling too (`\"data/x\"`).\n */\nexport function relativeToDataRoot(url: string): string | null {\n const base = config.backend?.dataUrl ?? DEFAULT_BACKEND.dataUrl;\n const prefix = base.replace(/\\/+$/, \"\") + \"/\";\n if (url.startsWith(prefix)) return url.slice(prefix.length);\n const bare = prefix.replace(/^\\/+/, \"\");\n if (bare && url.startsWith(bare)) return url.slice(bare.length);\n return null;\n}\n","import type { StateCreator } from \"zustand\";\n\nexport interface VolumeSlice {\n currentImageIndex: number | null;\n showUploader: boolean;\n /** Master switch for drag-and-drop loading (niivue canvas drop + the drop zone). */\n dragDropEnabled: boolean;\n volumeVersion: number;\n setCurrentImageIndex: (index: number | null) => void;\n setShowUploader: (show: boolean) => void;\n setDragDropEnabled: (enabled: boolean) => void;\n incrementVolumeVersion: () => void;\n}\n\nexport const createVolumeSlice: StateCreator<VolumeSlice> = (set) => ({\n currentImageIndex: null,\n showUploader: true,\n dragDropEnabled: true,\n volumeVersion: 0,\n setCurrentImageIndex: (currentImageIndex) => set({ currentImageIndex }),\n setShowUploader: (showUploader) => set({ showUploader }),\n setDragDropEnabled: (dragDropEnabled) => set({ dragDropEnabled }),\n incrementVolumeVersion: () => set((state) => ({ volumeVersion: state.volumeVersion + 1 })),\n});\n","import type { StateCreator } from \"zustand\";\nimport type { SurfaceDetails } from \"./types\";\n\nexport interface SurfaceSlice {\n surfaces: SurfaceDetails[];\n currentSurfaceIndex: number | null;\n surfaceToRemove: number | null;\n selectedLayerIndex: number | null;\n layerVersion: number;\n setSurfaces: (surfaces: SurfaceDetails[] | ((prev: SurfaceDetails[]) => SurfaceDetails[])) => void;\n setCurrentSurfaceIndex: (index: number | null) => void;\n setSurfaceToRemove: (index: number | null) => void;\n setSelectedLayerIndex: (index: number | null) => void;\n incrementLayerVersion: () => void;\n}\n\nexport const createSurfaceSlice: StateCreator<SurfaceSlice> = (set) => ({\n surfaces: [],\n currentSurfaceIndex: null,\n surfaceToRemove: null,\n selectedLayerIndex: null,\n layerVersion: 0,\n setSurfaces: (surfaces) =>\n set((state) => ({\n surfaces: typeof surfaces === \"function\" ? surfaces(state.surfaces) : surfaces,\n })),\n setCurrentSurfaceIndex: (currentSurfaceIndex) => set({ currentSurfaceIndex }),\n setSurfaceToRemove: (surfaceToRemove) => set({ surfaceToRemove }),\n setSelectedLayerIndex: (selectedLayerIndex) => set({ selectedLayerIndex }),\n incrementLayerVersion: () => set((state) => ({ layerVersion: state.layerVersion + 1 })),\n});\n","import type { StateCreator } from \"zustand\";\nimport type { DrawingOptions } from \"./types\";\n\nexport interface DrawingSlice {\n drawingOptions: DrawingOptions;\n setDrawingOptions: (options: DrawingOptions | ((prev: DrawingOptions) => DrawingOptions)) => void;\n}\n\nexport const createDrawingSlice: StateCreator<DrawingSlice> = (set) => ({\n drawingOptions: {\n enabled: false,\n mode: \"none\",\n penValue: 1,\n penFill: true,\n penErases: false,\n opacity: 1.0,\n colormap: \"_draw\",\n magicWand2dOnly: true,\n magicWandMaxDistanceMM: 15,\n magicWandThresholdPercent: 0.05,\n filename: \"drawing.nii.gz\",\n },\n setDrawingOptions: (options) =>\n set((state) => ({\n drawingOptions:\n typeof options === \"function\" ? options(state.drawingOptions) : options,\n })),\n});\n","import type { StateCreator } from \"zustand\";\nimport type { ViewerOptions } from \"./types\";\n\nexport interface ViewerSlice {\n viewerOptions: ViewerOptions;\n darkMode: boolean;\n sidebarOpen: boolean;\n footerOpen: boolean;\n activeTab: string;\n settingsDialogOpen: boolean;\n removeDialogOpen: boolean;\n volumeToRemove: number | null;\n skipRemoveConfirmation: boolean;\n imagingUploadConfirmDialogOpen: boolean;\n skipImagingUploadConfirmation: boolean;\n sessionDeleteConfirmDialogOpen: boolean;\n skipSessionDeleteConfirmation: boolean;\n setViewerOptions: (options: ViewerOptions | ((prev: ViewerOptions) => ViewerOptions)) => void;\n setDarkMode: (dark: boolean) => void;\n setSidebarOpen: (open: boolean) => void;\n setFooterOpen: (open: boolean) => void;\n setActiveTab: (tab: string) => void;\n setSettingsDialogOpen: (open: boolean) => void;\n setRemoveDialogOpen: (open: boolean) => void;\n setVolumeToRemove: (index: number | null) => void;\n setSkipRemoveConfirmation: (skip: boolean) => void;\n setImagingUploadConfirmDialogOpen: (open: boolean) => void;\n setSkipImagingUploadConfirmation: (skip: boolean) => void;\n setSessionDeleteConfirmDialogOpen: (open: boolean) => void;\n setSkipSessionDeleteConfirmation: (skip: boolean) => void;\n}\n\nexport const createViewerSlice: StateCreator<ViewerSlice> = (set) => ({\n viewerOptions: {\n viewMode: \"ACS\",\n crosshairWidth: 0.3,\n crosshairGap: 10,\n crosshairVisible: true,\n crosshairColor: [1.0, 0.88, 0.88, 1.0],\n rulerWidth: 1.0,\n rulerVisible: false,\n interpolateVoxels: false,\n dragMode: \"contrast\",\n overlayOutlineWidth: 0.0,\n isColorbar: false,\n isRadiologicalConvention: false,\n sagittalNoseLeft: false,\n },\n darkMode: true,\n sidebarOpen: true,\n footerOpen: true,\n activeTab: \"sceneDetails\",\n settingsDialogOpen: false,\n removeDialogOpen: false,\n volumeToRemove: null,\n skipRemoveConfirmation: false,\n imagingUploadConfirmDialogOpen: false,\n skipImagingUploadConfirmation: false,\n sessionDeleteConfirmDialogOpen: false,\n skipSessionDeleteConfirmation: false,\n setViewerOptions: (options) =>\n set((state) => ({\n viewerOptions:\n typeof options === \"function\" ? options(state.viewerOptions) : options,\n })),\n setDarkMode: (darkMode) => set({ darkMode }),\n setSidebarOpen: (sidebarOpen) => set({ sidebarOpen }),\n setFooterOpen: (footerOpen) => set({ footerOpen }),\n setActiveTab: (activeTab) => set({ activeTab }),\n setSettingsDialogOpen: (settingsDialogOpen) => set({ settingsDialogOpen }),\n setRemoveDialogOpen: (removeDialogOpen) => set({ removeDialogOpen }),\n setVolumeToRemove: (volumeToRemove) => set({ volumeToRemove }),\n setSkipRemoveConfirmation: (skipRemoveConfirmation) =>\n set({ skipRemoveConfirmation }),\n setImagingUploadConfirmDialogOpen: (imagingUploadConfirmDialogOpen) =>\n set({ imagingUploadConfirmDialogOpen }),\n setSkipImagingUploadConfirmation: (skipImagingUploadConfirmation) =>\n set({ skipImagingUploadConfirmation }),\n setSessionDeleteConfirmDialogOpen: (sessionDeleteConfirmDialogOpen) =>\n set({ sessionDeleteConfirmDialogOpen }),\n setSkipSessionDeleteConfirmation: (skipSessionDeleteConfirmation) =>\n set({ skipSessionDeleteConfirmation }),\n});\n","import type { StateCreator } from \"zustand\";\nimport type { SaveState } from \"./types\";\n\nexport interface SaveSlice {\n saveDialogOpen: boolean;\n saveState: SaveState;\n setSaveDialogOpen: (open: boolean) => void;\n setSaveState: (state: SaveState | ((prev: SaveState) => SaveState)) => void;\n}\n\nexport const createSaveSlice: StateCreator<SaveSlice> = (set) => ({\n saveDialogOpen: false,\n saveState: {\n isDownloadMode: false,\n document: {\n enabled: false,\n location: \"\",\n format: \"json\",\n },\n volumes: [],\n },\n setSaveDialogOpen: (saveDialogOpen) => set({ saveDialogOpen }),\n setSaveState: (state) =>\n set((prev) => ({\n saveState:\n typeof state === \"function\" ? state(prev.saveState) : state,\n })),\n});\n","import type { StateCreator } from \"zustand\";\nimport type { LocationData } from \"./types\";\n\nexport interface LocationSlice {\n locationData: LocationData | null;\n setLocationData: (data: LocationData | null) => void;\n}\n\nexport const createLocationSlice: StateCreator<LocationSlice> = (set) => ({\n locationData: null,\n setLocationData: (locationData) => set({ locationData }),\n});\n","import type { StateCreator } from \"zustand\";\n\nexport type AiSessionSummary = {\n session_id: string;\n session_name: string;\n created_at: string;\n volume_path: string | null;\n volume_path_root: \"data\" | \"session\" | null;\n annotation_path: string | null;\n result_path: string | null;\n last_inference_ml_id: string | null;\n last_inference_at: string | null;\n};\n\nexport type AiActiveSession = {\n session_id: string;\n session_name: string;\n};\n\nexport interface AiSlice {\n aiEnabled: boolean | null;\n aiSessions: AiSessionSummary[];\n aiActiveSession: AiActiveSession | null;\n setAiEnabled: (enabled: boolean | null) => void;\n setAiSessions: (sessions: AiSessionSummary[]) => void;\n setAiActiveSession: (session: AiActiveSession | null) => void;\n}\n\nexport const createAiSlice: StateCreator<AiSlice> = (set) => ({\n aiEnabled: null,\n aiSessions: [],\n aiActiveSession: null,\n setAiEnabled: (aiEnabled) => set({ aiEnabled }),\n setAiSessions: (aiSessions) => set({ aiSessions }),\n setAiActiveSession: (aiActiveSession) => set({ aiActiveSession }),\n});\n","import { create } from \"zustand\";\nimport { persist, createJSONStorage, type StateStorage } from \"zustand/middleware\";\nimport { getFreeBrowseConfig } from \"@/lib/deployment-config\";\nimport { createVolumeSlice, type VolumeSlice } from \"./volume-slice\";\nimport { createSurfaceSlice, type SurfaceSlice } from \"./surface-slice\";\nimport { createDrawingSlice, type DrawingSlice } from \"./drawing-slice\";\nimport { createViewerSlice, type ViewerSlice } from \"./viewer-slice\";\nimport { createSaveSlice, type SaveSlice } from \"./save-slice\";\nimport { createLocationSlice, type LocationSlice } from \"./location-slice\";\nimport { createAiSlice, type AiSlice } from \"./ai-slice\";\n\nexport type FreeBrowseStore = VolumeSlice &\n SurfaceSlice &\n DrawingSlice &\n ViewerSlice &\n SaveSlice &\n LocationSlice &\n AiSlice;\n\n/**\n * Persistence target resolved on every call, not at store creation: the key is\n * `config.persist` (default `freebrowse-user-settings`), and `persist: false`\n * routes everything to an in-memory map so an embedding host can opt out of\n * writing to the origin's localStorage. The zustand `name` below is therefore\n * only a label; the real key is read from the config.\n */\nconst memoryStorage = new Map<string, string>();\nconst configuredStorage: StateStorage = {\n getItem: (_name) => {\n const key = getFreeBrowseConfig().persist;\n if (key === false) return memoryStorage.get(\"prefs\") ?? null;\n try {\n return localStorage.getItem(key);\n } catch {\n return null;\n }\n },\n setItem: (_name, value) => {\n const key = getFreeBrowseConfig().persist;\n if (key === false) {\n memoryStorage.set(\"prefs\", value);\n return;\n }\n try {\n localStorage.setItem(key, value);\n } catch {\n /* storage unavailable (private mode, quota) — preferences stay in memory */\n }\n },\n removeItem: (_name) => {\n const key = getFreeBrowseConfig().persist;\n if (key === false) {\n memoryStorage.delete(\"prefs\");\n return;\n }\n try {\n localStorage.removeItem(key);\n } catch {\n /* ignore */\n }\n },\n};\n\nexport const useFreeBrowseStore = create<FreeBrowseStore>()(\n persist(\n (...a) => ({\n ...createVolumeSlice(...a),\n ...createSurfaceSlice(...a),\n ...createDrawingSlice(...a),\n ...createViewerSlice(...a),\n ...createSaveSlice(...a),\n ...createLocationSlice(...a),\n ...createAiSlice(...a),\n }),\n {\n name: \"freebrowse-user-settings\", // label only; the key comes from config\n // The adapter is static; it resolves the key/target on every call.\n storage: createJSONStorage(() => configuredStorage),\n version: 1, // bump + add migrate() on future schema changes\n // Persist ONLY user preferences. Everything else — niivue viewerOptions,\n // loaded volumes/surfaces, dialog-open flags, crosshair location, AI\n // sessions, save state, version counters — is intentionally excluded so\n // that e.g. a loaded document cannot hijack the user's defaults.\n partialize: (state) => ({\n skipRemoveConfirmation: state.skipRemoveConfirmation,\n skipImagingUploadConfirmation: state.skipImagingUploadConfirmation,\n skipSessionDeleteConfirmation: state.skipSessionDeleteConfirmation,\n darkMode: state.darkMode,\n sidebarOpen: state.sidebarOpen,\n footerOpen: state.footerOpen,\n }),\n }\n )\n);\n","import { DRAG_MODE } from \"@niivue/niivue\";\n\nimport { sliceTypeMap } from \"@/lib/niivue-helpers\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport type { DragMode } from \"@/components/drag-mode-selector\";\nimport type { ViewerOptions, ViewMode } from \"@/store/types\";\nimport type { NiiVueEventSource, NiiVueSyncTarget } from \"./niivue-sync\";\n\n/**\n * Concrete NiiVueSyncTarget backed by the FreeBrowse Zustand store.\n *\n * This is the adapter that makes the store a *derived view* of niivue state:\n * `registerNiiVueEvents(nv, createStoreSyncTarget(nv))` routes every relevant\n * niivue event into the store, translating niivue-mono property names/values\n * into FreeBrowse's store shape. Because both FreeBrowse's own command wrappers\n * and external callers (e.g. `window.freebrowse.nv`) drive niivue through the\n * same events, the UI follows either path identically.\n *\n * The volume/surface UI reads live `nv.volumes`/`nv.meshes` and re-renders on a\n * version-counter bump, so those events bump the counter rather than mirroring\n * a list into the store. Viewer options and location are mirrored into store\n * slices.\n */\n\n/** niivue reader surface this adapter needs beyond the event target. */\nexport type NiiVueReader = NiiVueEventSource & {\n sliceType: number;\n showRender: number;\n // Flat settings mirrored into viewerOptions (read back by readViewerFromNiiVue).\n crosshairWidth?: number;\n crosshairGap?: number;\n crosshairColor?: number[];\n rulerWidth?: number;\n isRulerVisible?: boolean;\n volumeIsNearestInterpolation?: boolean;\n volumeOutlineWidth?: number;\n isColorbarVisible?: boolean;\n isRadiological?: boolean;\n secondaryDragMode?: number;\n};\n\n/** Minimal mesh shape read when rebuilding the surfaces list. */\ntype MeshLike = {\n name?: string;\n opacity?: number;\n color?: [number, number, number, number];\n shaderType?: string;\n};\n\n/** niivue mesh color is 0-1 RGBA; the surface UI uses 0-255. */\nfunction colorToRgba255(\n color?: [number, number, number, number],\n): [number, number, number, number] {\n if (!color) return [255, 255, 0, 255];\n return [\n Math.round(color[0] * 255),\n Math.round(color[1] * 255),\n Math.round(color[2] * 255),\n Math.round(color[3] * 255),\n ];\n}\n\nfunction dragModeName(value: unknown): DragMode {\n const match = Object.entries(DRAG_MODE).find(([, v]) => v === value);\n return (match?.[0] as DragMode) ?? \"contrast\";\n}\n\nfunction viewModeFromNiiVue(nv: NiiVueReader): ViewMode {\n // ACS vs ACSR differ only by showRender, so match on both.\n const exact = Object.entries(sliceTypeMap).find(\n ([, cfg]) =>\n cfg.sliceType === nv.sliceType && cfg.showRender === nv.showRender,\n );\n if (exact) return exact[0] as ViewMode;\n const bySlice = Object.entries(sliceTypeMap).find(\n ([, cfg]) => cfg.sliceType === nv.sliceType,\n );\n return (bySlice?.[0] as ViewMode) ?? \"ACS\";\n}\n\n/**\n * The niivue flat setting -> viewerOptions mapping, in one place. Used by the\n * `change` event handler (one property at a time) and by `readViewerFromNiiVue`\n * (all of them at once) so the two can never disagree. Returns null for a\n * property FreeBrowse has no UI for.\n *\n * NOTE: crosshairWidth/crosshairVisible are store-owned UI state and are NOT\n * mirrored from `change` events: niivue only has one crosshairWidth (0 ==\n * hidden), so deriving it back would lose the remembered width while hidden.\n * The use-viewer-options handlers own that pair. `readViewerFromNiiVue` does\n * read it once, when seeding from a host-owned instance, since there is no\n * remembered width to lose yet.\n */\nfunction viewerPatchFor(\n nv: NiiVueReader,\n property: string,\n value: unknown,\n): Partial<ViewerOptions> | null {\n switch (property) {\n case \"crosshairGap\":\n return { crosshairGap: value as number };\n case \"crosshairColor\":\n return { crosshairColor: value as ViewerOptions[\"crosshairColor\"] };\n case \"rulerWidth\":\n return { rulerWidth: value as number };\n case \"isRulerVisible\":\n return { rulerVisible: value as boolean };\n case \"volumeIsNearestInterpolation\":\n return { interpolateVoxels: !value };\n case \"volumeOutlineWidth\":\n return { overlayOutlineWidth: value as number };\n case \"isColorbarVisible\":\n return { isColorbar: value as boolean };\n case \"isRadiological\":\n return { isRadiologicalConvention: value as boolean };\n case \"secondaryDragMode\":\n return { dragMode: dragModeName(value) };\n case \"sliceType\":\n case \"showRender\":\n return { viewMode: viewModeFromNiiVue(nv) };\n default:\n return null;\n }\n}\n\nconst MIRRORED_PROPS = [\n \"crosshairGap\",\n \"crosshairColor\",\n \"rulerWidth\",\n \"isRulerVisible\",\n \"volumeIsNearestInterpolation\",\n \"volumeOutlineWidth\",\n \"isColorbarVisible\",\n \"isRadiological\",\n \"secondaryDragMode\",\n \"sliceType\",\n] as const;\n\n/**\n * Read the instance's current settings as a viewerOptions patch — the\n * nv -> store direction, for seeding the store from an instance the host\n * built (so FreeBrowse never pushes its own defaults onto it). Only settings\n * the instance actually reports (not undefined) are included, so a partial\n * reader (or the test mock) leaves the rest of the store alone.\n */\nexport function readViewerFromNiiVue(nv: NiiVueReader): Partial<ViewerOptions> {\n const patch: Partial<ViewerOptions> = {};\n for (const prop of MIRRORED_PROPS) {\n const value = (nv as unknown as Record<string, unknown>)[prop];\n if (value === undefined) continue;\n Object.assign(patch, viewerPatchFor(nv, prop, value));\n }\n if (typeof nv.crosshairWidth === \"number\") {\n if (nv.crosshairWidth > 0) {\n patch.crosshairVisible = true;\n patch.crosshairWidth = nv.crosshairWidth;\n } else {\n patch.crosshairVisible = false;\n }\n }\n return patch;\n}\n\nexport function createStoreSyncTarget(nv: NiiVueReader): NiiVueSyncTarget {\n const store = () => useFreeBrowseStore.getState();\n const patchViewer = (partial: Record<string, unknown>) =>\n store().setViewerOptions((prev) => ({ ...prev, ...partial }));\n\n return {\n onViewerOptionChange(property, value) {\n // Map niivue-mono flat property names -> FreeBrowse viewerOptions (see\n // viewerPatchFor). Properties FreeBrowse has no UI for fall through.\n const patch = viewerPatchFor(nv, property, value);\n if (patch) patchViewer(patch);\n },\n\n onDrawingOptionChange(property, value) {\n // Only the event-mirrored drawing fields are handled here. penValue/mode/\n // penErases are store-owned (drawPenValue is a derived value that would\n // clobber penValue on erase), and `enabled` follows drawingChanged\n // (drawingVolume presence), not drawIsEnabled (pointer painting).\n const s = store();\n switch (property) {\n case \"drawOpacity\":\n s.setDrawingOptions((prev) => ({\n ...prev,\n opacity: value as number,\n }));\n break;\n case \"drawColormap\":\n s.setDrawingOptions((prev) => ({\n ...prev,\n colormap: value as string,\n }));\n break;\n default:\n break;\n }\n },\n\n onVolumesChanged(volumes) {\n // The sidebar/scene UI reads live nv.volumes; bump the version to re-render.\n const s = store();\n s.incrementVolumeVersion();\n // The drop zone covers the canvas until something is loaded. FreeBrowse's\n // own load paths hide it before loading; a volume added straight through\n // the niivue API (an embedding host, the console) must hide it too, or the\n // canvas is never mounted and nothing renders.\n if (volumes.length > 0 && s.showUploader) s.setShowUploader(false);\n },\n\n onVolumeUpdated() {\n store().incrementVolumeVersion();\n },\n\n onSurfacesChanged() {\n // Rebuild the derived surfaces list from live nv.meshes (the old\n // updateSurfaceDetails, now event-driven). niivue-mono emits *Removed\n // BEFORE mutating the model (the removed item is still present at emit\n // time), so read nv.meshes on a microtask — after the synchronous\n // add/remove completes — to capture the post-mutation list. (Volumes\n // avoid this by reading nv.volumes at render via the version counter.)\n queueMicrotask(() => {\n const meshes = nv.meshes as MeshLike[];\n store().setSurfaces(\n meshes.map((mesh, index) => ({\n id: `surface-${index}`,\n name: mesh.name || `Surface ${index + 1}`,\n // niivue-mono does not render a mesh `visible` flag, so FreeBrowse\n // models surface visibility via opacity (0 == hidden), like volumes.\n visible: (mesh.opacity ?? 1.0) > 0,\n opacity: mesh.opacity ?? 1.0,\n rgba255: colorToRgba255(mesh.color),\n shaderType: mesh.shaderType || \"phong\",\n })),\n );\n store().incrementLayerVersion();\n });\n },\n\n onDrawingChanged() {\n // `enabled` == a drawing layer exists (create/load -> present, close ->\n // gone). drawingChanged fires on create/stroke/undo/close/load, so read\n // drawingVolume presence each time.\n const hasDrawing =\n (nv as { drawingVolume?: unknown }).drawingVolume != null;\n store().setDrawingOptions((prev) => ({ ...prev, enabled: hasDrawing }));\n store().incrementVolumeVersion(); // the drawing bitmap changed; repaint\n },\n\n onLocationChange(location) {\n const detail = location as {\n mm?: [number, number, number];\n values?: {\n name?: string;\n value?: number;\n vox?: [number, number, number];\n }[];\n } | null;\n if (!detail) return;\n const voxels = (detail.values ?? []).map((v, index) => {\n const vox = v.vox ?? [0, 0, 0];\n return {\n name: v.name || `Volume ${index + 1}`,\n voxel: [\n Math.round(vox[0]),\n Math.round(vox[1]),\n Math.round(vox[2]),\n ] as [number, number, number],\n value: v.value ?? 0,\n };\n });\n store().setLocationData({ mm: detail.mm ?? [0, 0, 0], voxels });\n },\n\n onDocumentLoaded() {\n // A document load adds volumes/meshes without per-item events, so bump\n // both versions to make the volume + surface UI re-read. Settings the\n // document applied are NOT resynced here: that waits on upstream `change`\n // events for loadDocument (migration plan Step 8, item 8d).\n store().incrementVolumeVersion();\n store().incrementLayerVersion();\n },\n\n onColormapAdded() {\n // No store field: the UI reads nv.colormaps on demand. No-op.\n },\n };\n}\n","import { useCallback, useEffect, useRef } from \"react\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport { readViewerFromNiiVue } from \"@/store/niivue-store-sync\";\nimport { sliceTypeMap } from \"@/lib/niivue-helpers\";\nimport { DRAG_MODE, type NiiVue } from \"@niivue/niivue\";\nimport type { DragMode } from \"@/components/drag-mode-selector\";\nimport type { ViewMode } from \"@/store/types\";\n\n/**\n * Viewer-option handlers. Event-driven model: handlers issue commands to the\n * niivue instance (`nv.*`) and the Zustand store follows via the event adapter\n * (registerNiiVueEvents / createStoreSyncTarget) — handlers do NOT write the\n * store themselves. The single exception is crosshairWidth/crosshairVisible,\n * which is store-owned UI state (niivue has only one crosshairWidth where 0\n * means hidden, so it can't remember the width while hidden).\n *\n * One-time init on mount, chosen by `init` (only the viewer component that owns\n * the mount passes it; other consumers of the handlers leave it at \"none\"):\n * - `\"apply\"` (the app, which built the instance): push the store's viewer\n * defaults onto the instance once (`applyViewerOptions`).\n * - `\"sync\"` (a host-owned instance): never touch the instance's settings;\n * seed the store FROM it instead (`syncViewerOptionsFromNiiVue`), so the\n * UI reflects what the host configured.\n * - `\"none\"` (default): handlers only.\n */\nexport type ViewerOptionsInit = \"apply\" | \"sync\" | \"none\";\n\nexport function useViewerOptions(\n nvRef: React.RefObject<NiiVue | null>,\n init: ViewerOptionsInit = \"none\",\n) {\n const viewerOptions = useFreeBrowseStore((s) => s.viewerOptions);\n const setViewerOptions = useFreeBrowseStore((s) => s.setViewerOptions);\n\n const updateTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const crosshairColorTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n // Debounced GPU texture refresh (used by volume/mesh hooks via this handle).\n const debouncedGLUpdate = useCallback(() => {\n if (updateTimeoutRef.current) clearTimeout(updateTimeoutRef.current);\n updateTimeoutRef.current = setTimeout(() => {\n if (nvRef.current) void nvRef.current.updateGLVolume();\n }, 100);\n }, [nvRef]);\n\n useEffect(() => {\n return () => {\n if (updateTimeoutRef.current) clearTimeout(updateTimeoutRef.current);\n if (crosshairColorTimeoutRef.current)\n clearTimeout(crosshairColorTimeoutRef.current);\n };\n }, []);\n\n // Store -> niivue push. Applied once at init (and reusable after loads) to\n // seed the instance from the current store viewerOptions. Steady-state\n // changes flow the other way (handlers -> nv -> events -> store).\n const applyViewerOptions = useCallback(() => {\n const nv = nvRef.current;\n if (!nv) return;\n const o = useFreeBrowseStore.getState().viewerOptions;\n nv.crosshairWidth = o.crosshairVisible ? o.crosshairWidth : 0;\n nv.crosshairGap = o.crosshairGap;\n nv.crosshairColor = o.crosshairColor;\n nv.rulerWidth = o.rulerWidth;\n nv.isRulerVisible = o.rulerVisible;\n nv.volumeIsNearestInterpolation = !o.interpolateVoxels;\n nv.secondaryDragMode = DRAG_MODE[o.dragMode];\n nv.volumeOutlineWidth = o.overlayOutlineWidth;\n nv.isColorbarVisible = o.isColorbar;\n nv.isRadiological = o.isRadiologicalConvention;\n const viewConfig = sliceTypeMap[o.viewMode];\n if (viewConfig) {\n nv.showRender = viewConfig.showRender;\n nv.sliceType = viewConfig.sliceType;\n } else {\n nv.sliceType = 0;\n }\n }, [nvRef]);\n\n // niivue -> store read-back: seed viewerOptions from the instance's current\n // settings (only the ones it reports). Steady-state changes still arrive\n // through the event adapter; this is the one-shot for a host-owned instance.\n const syncViewerOptionsFromNiiVue = useCallback(() => {\n const nv = nvRef.current;\n if (!nv) return;\n const patch = readViewerFromNiiVue(nv);\n if (Object.keys(patch).length === 0) return;\n setViewerOptions((prev) => ({ ...prev, ...patch }));\n }, [nvRef, setViewerOptions]);\n\n // One-time init, direction per `init` (see the docblock).\n const didInit = useRef(false);\n useEffect(() => {\n if (init === \"none\" || didInit.current || !nvRef.current) return;\n didInit.current = true;\n if (init === \"apply\") applyViewerOptions();\n else syncViewerOptionsFromNiiVue();\n }, [init, applyViewerOptions, syncViewerOptionsFromNiiVue, nvRef]);\n\n const handleViewMode = useCallback(\n (mode: ViewMode) => {\n const nv = nvRef.current;\n const cfg = sliceTypeMap[mode];\n if (!nv || !cfg) return;\n nv.showRender = cfg.showRender;\n nv.sliceType = cfg.sliceType;\n },\n [nvRef],\n );\n\n // \"Right drag\" mode -> niivue's secondaryDragMode. Store follows via the\n // `change` event -> adapter (secondaryDragMode -> dragMode string).\n const handleDragModeChange = useCallback(\n (mode: DragMode) => {\n if (nvRef.current) nvRef.current.secondaryDragMode = DRAG_MODE[mode];\n },\n [nvRef],\n );\n\n // crosshairWidth/crosshairVisible: store-owned (see file header). Write the\n // store AND push the composed width to nv.\n const handleCrosshairWidthChange = useCallback(\n (value: number) => {\n setViewerOptions((prev) => ({ ...prev, crosshairWidth: value }));\n const nv = nvRef.current;\n if (nv) nv.crosshairWidth = viewerOptions.crosshairVisible ? value : 0;\n },\n [nvRef, setViewerOptions, viewerOptions.crosshairVisible],\n );\n\n const handleCrosshairVisibleChange = useCallback(\n (visible: boolean) => {\n setViewerOptions((prev) => ({ ...prev, crosshairVisible: visible }));\n const nv = nvRef.current;\n if (nv) nv.crosshairWidth = visible ? viewerOptions.crosshairWidth : 0;\n },\n [nvRef, setViewerOptions, viewerOptions.crosshairWidth],\n );\n\n const handleCrosshairGapChange = useCallback(\n (value: number) => {\n if (nvRef.current) nvRef.current.crosshairGap = value;\n },\n [nvRef],\n );\n\n const handleCrosshairColorChange = useCallback(\n (color: string) => {\n const hex = color.replace(\"#\", \"\");\n const r = parseInt(hex.substr(0, 2), 16) / 255;\n const g = parseInt(hex.substr(2, 2), 16) / 255;\n const b = parseInt(hex.substr(4, 2), 16) / 255;\n const a = viewerOptions.crosshairColor[3];\n if (crosshairColorTimeoutRef.current)\n clearTimeout(crosshairColorTimeoutRef.current);\n crosshairColorTimeoutRef.current = setTimeout(() => {\n if (nvRef.current) nvRef.current.crosshairColor = [r, g, b, a];\n }, 50);\n },\n [viewerOptions.crosshairColor, nvRef],\n );\n\n const handleInterpolateVoxelsChange = useCallback(\n (checked: boolean) => {\n if (nvRef.current) nvRef.current.volumeIsNearestInterpolation = !checked;\n },\n [nvRef],\n );\n\n const handleRulerWidthChange = useCallback(\n (value: number) => {\n if (nvRef.current) nvRef.current.rulerWidth = value;\n },\n [nvRef],\n );\n\n const handleRulerVisibleChange = useCallback(\n (visible: boolean) => {\n if (nvRef.current) nvRef.current.isRulerVisible = visible;\n },\n [nvRef],\n );\n\n const handleColorbarChange = useCallback(\n (checked: boolean) => {\n if (nvRef.current) nvRef.current.isColorbarVisible = checked;\n },\n [nvRef],\n );\n\n const handleRadiologicalChange = useCallback(\n (checked: boolean) => {\n if (nvRef.current) nvRef.current.isRadiological = checked;\n },\n [nvRef],\n );\n\n const handleSagittalNoseLeftChange = useCallback(\n (checked: boolean) => {\n // niivue-mono has no sagittal nose-left option (upstream request: migration\n // plan Step 8, item 8j). The Settings toggle is hidden meanwhile; this\n // handler and the store field stay so it can be re-enabled. Store-only.\n setViewerOptions((prev) => ({ ...prev, sagittalNoseLeft: checked }));\n },\n [setViewerOptions],\n );\n\n const handleOverlayOutlineWidthChange = useCallback(\n (value: number) => {\n if (nvRef.current) nvRef.current.volumeOutlineWidth = value;\n },\n [nvRef],\n );\n\n // Reset view + per-volume contrast to load-time defaults. Commands only;\n // the store follows via volumeUpdated/change events.\n const resetViewAndContrast = useCallback(() => {\n const nv = nvRef.current;\n if (!nv) return;\n nv.scaleMultiplier = 1.0;\n nv.pan2Dxyzmm = [0, 0, 0, 1];\n nv.crosshairPos = [0.5, 0.5, 0.5];\n nv.azimuth = 110;\n nv.elevation = 10;\n (nv.volumes ?? []).forEach((vol, i) => {\n if (vol.robustMin !== undefined && vol.robustMax !== undefined) {\n void nv.setVolume(i, { calMin: vol.robustMin, calMax: vol.robustMax });\n }\n });\n }, [nvRef]);\n\n return {\n viewerOptions,\n setViewerOptions,\n applyViewerOptions,\n syncViewerOptionsFromNiiVue,\n debouncedGLUpdate,\n handleViewMode,\n handleDragModeChange,\n handleCrosshairWidthChange,\n handleCrosshairGapChange,\n handleInterpolateVoxelsChange,\n handleCrosshairVisibleChange,\n handleCrosshairColorChange,\n handleRulerWidthChange,\n handleRulerVisibleChange,\n handleOverlayOutlineWidthChange,\n handleColorbarChange,\n handleRadiologicalChange,\n handleSagittalNoseLeftChange,\n resetViewAndContrast,\n };\n}\n","import { useCallback } from \"react\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport type { NiiVue } from \"@niivue/niivue\";\n\n/**\n * Built-in colormaps that are categorical/label maps (as opposed to continuous\n * gradients). When one of these is selected, FreeBrowse applies it as a label\n * colormap (setColormapLabel) so the volume renders as discrete regions.\n * niivue-mono does not tag colormaps as label-vs-continuous, so this list is\n * curated here; matched case-insensitively against nv.colormaps. Only palettes\n * we've made opaque (alpha 255) are included — random/nih still ship alpha 64\n * and would wash out, so they're excluded pending the Phase-7 systemic fix.\n */\nexport const LABEL_COLORMAPS = new Set([\"freesurfer\", \"roi_i256\"]);\n\n/**\n * After a document loads, attach the label LUT to every volume whose\n * `colormap` names a categorical palette but that carries no `colormapLabel`.\n *\n * niivue-mono applies a document's `colormap` as a continuous gradient\n * (niivue/mono#69), so a migrated legacy scene -- `aseg` with `Freesurfer`,\n * say -- would render as a smooth ramp. A document the app itself saved after\n * a dropdown change already embeds `colormapLabel` and is left alone. Same\n * dual call as `handleColormapChange`.\n */\nexport async function applyLabelColormapsAfterLoad(nv: NiiVue): Promise<void> {\n const volumes = nv.volumes || [];\n for (let i = 0; i < volumes.length; i++) {\n const v = volumes[i] as { colormap?: unknown; colormapLabel?: unknown };\n const name = typeof v.colormap === \"string\" ? v.colormap : \"\";\n if (!name || v.colormapLabel) continue;\n if (!LABEL_COLORMAPS.has(name.toLowerCase())) continue;\n await nv.setColormapLabel(i, name);\n }\n}\n\nexport function useVolumes(\n nvRef: React.RefObject<NiiVue | null>,\n debouncedGLUpdate: () => void,\n removeSurface: (surfaceIndex: number) => void,\n) {\n // Contrast/colormap/opacity now go through nv.setVolume (which refreshes the\n // GPU itself and emits volumeUpdated), so the debounced GL update is no\n // longer needed here; kept in the signature for call-site stability.\n void debouncedGLUpdate;\n const currentImageIndex = useFreeBrowseStore((s) => s.currentImageIndex);\n const setCurrentImageIndex = useFreeBrowseStore(\n (s) => s.setCurrentImageIndex,\n );\n const volumeVersion = useFreeBrowseStore((s) => s.volumeVersion);\n const incrementVolumeVersion = useFreeBrowseStore(\n (s) => s.incrementVolumeVersion,\n );\n const volumeToRemove = useFreeBrowseStore((s) => s.volumeToRemove);\n const setVolumeToRemove = useFreeBrowseStore((s) => s.setVolumeToRemove);\n const skipRemoveConfirmation = useFreeBrowseStore(\n (s) => s.skipRemoveConfirmation,\n );\n const setRemoveDialogOpen = useFreeBrowseStore((s) => s.setRemoveDialogOpen);\n const surfaceToRemove = useFreeBrowseStore((s) => s.surfaceToRemove);\n const setSurfaceToRemove = useFreeBrowseStore((s) => s.setSurfaceToRemove);\n const drawingOptions = useFreeBrowseStore((s) => s.drawingOptions);\n const setDrawingOptions = useFreeBrowseStore((s) => s.setDrawingOptions);\n const setActiveTab = useFreeBrowseStore((s) => s.setActiveTab);\n\n const getVolumes = useCallback(() => {\n // Consume volumeVersion to trigger re-renders on mutation\n void volumeVersion;\n const nv = nvRef.current;\n if (!nv) return [];\n return nv.volumes || [];\n }, [nvRef, volumeVersion]);\n\n const toggleImageVisibility = useCallback(\n (id: string) => {\n const nv = nvRef.current;\n if (!nv) return;\n const volumeIndex = nv.volumes.findIndex((v) => v.id === id);\n if (volumeIndex < 0) return;\n\n const volume = nv.volumes[volumeIndex];\n const opacity = volume.opacity ?? 1.0;\n const isCurrentlyVisible = opacity > 0;\n const newOpacity = isCurrentlyVisible ? 0 : opacity === 0 ? 1.0 : opacity;\n\n void nv.setVolume(volumeIndex, { opacity: newOpacity });\n incrementVolumeVersion();\n },\n [nvRef, incrementVolumeVersion],\n );\n\n const handleOpacityChange = useCallback(\n (newOpacity: number) => {\n const nv = nvRef.current;\n if (currentImageIndex === null || !nv || !nv.volumes[currentImageIndex])\n return;\n void nv.setVolume(currentImageIndex, { opacity: newOpacity });\n incrementVolumeVersion();\n },\n [currentImageIndex, nvRef, incrementVolumeVersion],\n );\n\n const handleFrameChange = useCallback(\n (newFrame: number) => {\n const nv = nvRef.current;\n if (currentImageIndex === null || !nv || !nv.volumes[currentImageIndex])\n return;\n const id = nv.volumes[currentImageIndex].id;\n if (!id) return;\n void nv.setFrame4D(id, newFrame);\n incrementVolumeVersion();\n },\n [currentImageIndex, nvRef, incrementVolumeVersion],\n );\n\n const handleContrastMinChange = useCallback(\n (newContrastMin: number) => {\n const nv = nvRef.current;\n if (currentImageIndex === null || !nv || !nv.volumes[currentImageIndex])\n return;\n // setVolume emits volumeUpdated -> the store follows via the event adapter.\n void nv.setVolume(currentImageIndex, { calMin: newContrastMin });\n },\n [currentImageIndex, nvRef],\n );\n\n const handleContrastMaxChange = useCallback(\n (newContrastMax: number) => {\n const nv = nvRef.current;\n if (currentImageIndex === null || !nv || !nv.volumes[currentImageIndex])\n return;\n void nv.setVolume(currentImageIndex, { calMax: newContrastMax });\n },\n [currentImageIndex, nvRef],\n );\n\n const handleColormapChange = useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) => {\n const newColormap = event.target.value;\n const nv = nvRef.current;\n if (currentImageIndex === null || !nv || !nv.volumes[currentImageIndex])\n return;\n // Always set the continuous colormap (so the dropdown value derives from\n // volume.colormap and round-trips through the document). If the chosen\n // colormap is categorical, ALSO attach it as a label colormap so the\n // volume renders as discrete regions; otherwise clear any label colormap.\n // colormapLabel overrides colormap in the renderer, so setting both is safe.\n void nv.setVolume(currentImageIndex, { colormap: newColormap });\n if (LABEL_COLORMAPS.has(newColormap.toLowerCase())) {\n void nv.setColormapLabel(currentImageIndex, newColormap);\n } else {\n void nv.setColormapLabel(currentImageIndex, null);\n }\n },\n [currentImageIndex, nvRef],\n );\n\n const handleMoveVolumeUp = useCallback(() => {\n const nv = nvRef.current;\n if (currentImageIndex === null || !nv || !nv.volumes[currentImageIndex])\n return;\n if (currentImageIndex === 0) return; // already first in the list\n // UI \"up\" means earlier in the list (lower index); niivue's moveVolumeDown\n // decreases the array index.\n void nv.moveVolumeDown(currentImageIndex);\n setCurrentImageIndex(currentImageIndex - 1); // keep selection on moved volume\n incrementVolumeVersion();\n }, [currentImageIndex, nvRef, setCurrentImageIndex, incrementVolumeVersion]);\n\n const handleMoveVolumeDown = useCallback(() => {\n const nv = nvRef.current;\n if (currentImageIndex === null || !nv || !nv.volumes[currentImageIndex])\n return;\n if (currentImageIndex >= nv.volumes.length - 1) return; // already last in the list\n // UI \"down\" means later in the list (higher index); niivue's moveVolumeUp\n // increases the array index.\n void nv.moveVolumeUp(currentImageIndex);\n setCurrentImageIndex(currentImageIndex + 1); // keep selection on moved volume\n incrementVolumeVersion();\n }, [currentImageIndex, nvRef, setCurrentImageIndex, incrementVolumeVersion]);\n\n const removeVolume = useCallback(\n (imageIndex: number) => {\n const nv = nvRef.current;\n if (!nv || !nv.volumes[imageIndex]) return;\n void nv.removeVolume(imageIndex);\n incrementVolumeVersion();\n\n if (currentImageIndex === imageIndex) {\n if (imageIndex > 0) {\n setCurrentImageIndex(imageIndex - 1);\n } else if (nv.volumes.length > 0) {\n setCurrentImageIndex(0);\n } else {\n setCurrentImageIndex(null);\n }\n } else if (currentImageIndex !== null && currentImageIndex > imageIndex) {\n setCurrentImageIndex(currentImageIndex - 1);\n }\n },\n [currentImageIndex, nvRef, incrementVolumeVersion, setCurrentImageIndex],\n );\n\n const handleRemoveVolumeClick = useCallback(\n (imageIndex: number) => {\n if (skipRemoveConfirmation) {\n removeVolume(imageIndex);\n } else {\n setVolumeToRemove(imageIndex);\n setRemoveDialogOpen(true);\n }\n },\n [\n skipRemoveConfirmation,\n removeVolume,\n setVolumeToRemove,\n setRemoveDialogOpen,\n ],\n );\n\n const handleEditVolume = useCallback(\n async (imageIndex: number) => {\n const nv = nvRef.current;\n if (!nv || !nv.volumes[imageIndex]) return;\n const volume = nv.volumes[imageIndex];\n // Carry the volume's colormap onto the drawing so it looks the same as an\n // editable layer (inverse of save-drawing). Captured before removal.\n const cmap = volume.colormap as string | undefined;\n const name = ((volume.name as string) || \"edit.nii\").replace(\n /\\.gz$/i,\n \"\",\n );\n // Export the volume's voxels (uint8 — canEditVolume gates this) as raw bytes.\n const bytes = (await nv.saveVolume({\n filename: \"\",\n volumeByIndex: imageIndex,\n })) as Uint8Array;\n if (!(bytes instanceof Uint8Array)) return;\n const file = new File([bytes], name, {\n type: \"application/octet-stream\",\n });\n\n // The volume becomes the editable drawing.\n await nv.removeVolume(imageIndex);\n await nv.loadDrawing(file); // -> drawingChanged 'load' -> adapter enabled=true\n if (cmap) nv.drawColormap = cmap;\n\n // Enter pen mode with the current pen settings.\n nv.drawPenValue = drawingOptions.penErases ? 0 : drawingOptions.penValue;\n nv.drawPenFilled = drawingOptions.penFill;\n nv.drawIsFillOverwriting = drawingOptions.penFill;\n nv.drawIsEnabled = true;\n setDrawingOptions((prev) => ({ ...prev, mode: \"pen\" }));\n\n // Keep the selection valid now that a volume was removed.\n if (currentImageIndex !== null && currentImageIndex >= imageIndex) {\n const next = Math.max(0, currentImageIndex - 1);\n setCurrentImageIndex(nv.volumes.length > 0 ? next : null);\n }\n setActiveTab(\"drawing\");\n },\n [\n nvRef,\n currentImageIndex,\n drawingOptions.penErases,\n drawingOptions.penValue,\n drawingOptions.penFill,\n setCurrentImageIndex,\n setDrawingOptions,\n setActiveTab,\n ],\n );\n\n const canEditVolume = useCallback(\n (imageIndex: number): boolean => {\n const nv = nvRef.current;\n if (!nv || !nv.volumes[imageIndex]) return false;\n\n const volume = nv.volumes[imageIndex];\n const background = nv.volumes[0];\n\n if (!background) return false;\n if (volume === background) return false;\n if (!volume.hdr || !background.hdr) return false;\n\n // niivue-mono's loadDrawing hard-requires DT_UINT8 (datatypeCode 2) and\n // rejects anything else, so a non-uint8 volume can't be edited as a\n // drawing — grey out the button rather than convert.\n if (volume.hdr.datatypeCode !== 2) return false;\n\n const volDims = volume.hdr.dims;\n const backDims = background.hdr.dims;\n\n if (\n volDims[1] !== backDims[1] ||\n volDims[2] !== backDims[2] ||\n volDims[3] !== backDims[3]\n ) {\n return false;\n }\n\n if (!volume.hdr.affine || !background.hdr.affine) return false;\n\n const volAffine = volume.hdr.affine;\n const backAffine = background.hdr.affine;\n\n for (let i = 0; i < 4; i++) {\n for (let j = 0; j < 4; j++) {\n const idx = i * 4 + j;\n const volValue = Number(volAffine[idx]);\n const backValue = Number(backAffine[idx]);\n if (Math.abs(volValue - backValue) > 0.0001) {\n return false;\n }\n }\n }\n\n return true;\n },\n [nvRef],\n );\n\n const handleConfirmRemove = useCallback(() => {\n if (volumeToRemove !== null) {\n removeVolume(volumeToRemove);\n }\n if (surfaceToRemove !== null) {\n removeSurface(surfaceToRemove);\n }\n setRemoveDialogOpen(false);\n setVolumeToRemove(null);\n setSurfaceToRemove(null);\n }, [\n volumeToRemove,\n removeVolume,\n surfaceToRemove,\n removeSurface,\n setRemoveDialogOpen,\n setVolumeToRemove,\n setSurfaceToRemove,\n ]);\n\n const handleCancelRemove = useCallback(() => {\n setRemoveDialogOpen(false);\n setVolumeToRemove(null);\n setSurfaceToRemove(null);\n }, [setRemoveDialogOpen, setVolumeToRemove, setSurfaceToRemove]);\n\n return {\n getVolumes,\n toggleImageVisibility,\n handleOpacityChange,\n handleFrameChange,\n handleContrastMinChange,\n handleContrastMaxChange,\n handleColormapChange,\n handleMoveVolumeUp,\n handleMoveVolumeDown,\n removeVolume,\n handleRemoveVolumeClick,\n handleEditVolume,\n canEditVolume,\n handleConfirmRemove,\n handleCancelRemove,\n };\n}\n","import { useCallback, useEffect, useRef } from \"react\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport type { NiiVue } from \"@niivue/niivue\";\n\n/**\n * Surface (mesh) handlers. Command-only: handlers issue nv.* commands and the\n * derived `surfaces` list follows via the event adapter (which rebuilds it from\n * nv.meshes on meshLoaded/meshRemoved/meshUpdated). Handlers never write the\n * surfaces slice directly.\n */\nexport function useSurfaces(\n nvRef: React.RefObject<NiiVue | null>,\n debouncedGLUpdate: () => void,\n) {\n void debouncedGLUpdate; // setMesh refreshes the GPU itself; kept for call-site stability\n const currentSurfaceIndex = useFreeBrowseStore((s) => s.currentSurfaceIndex);\n const setCurrentSurfaceIndex = useFreeBrowseStore(\n (s) => s.setCurrentSurfaceIndex,\n );\n const surfaceToRemove = useFreeBrowseStore((s) => s.surfaceToRemove);\n const setSurfaceToRemove = useFreeBrowseStore((s) => s.setSurfaceToRemove);\n const skipRemoveConfirmation = useFreeBrowseStore(\n (s) => s.skipRemoveConfirmation,\n );\n const setRemoveDialogOpen = useFreeBrowseStore((s) => s.setRemoveDialogOpen);\n void surfaceToRemove;\n\n const surfaceColorTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n useEffect(() => {\n return () => {\n if (surfaceColorTimeoutRef.current)\n clearTimeout(surfaceColorTimeoutRef.current);\n };\n }, []);\n\n // The surfaces list is rebuilt from nv.meshes by the event adapter now; kept\n // as a no-op for signature stability (still passed into use-file-loading).\n const updateSurfaceDetails = useCallback(() => {}, []);\n\n const toggleSurfaceVisibility = useCallback(\n // Index-based: niivue-mono meshes have no stable id (unlike volumes), so\n // all mesh ops are addressed by index.\n (surfaceIndex: number) => {\n const nv = nvRef.current;\n const mesh = nv?.meshes[surfaceIndex] as { opacity?: number } | undefined;\n if (!nv || !mesh) return;\n // niivue-mono has no rendered mesh `visible` flag, so toggle via opacity\n // (0 == hidden), mirroring volume visibility.\n const isVisible = (mesh.opacity ?? 1) > 0;\n void nv.setMesh(surfaceIndex, { opacity: isVisible ? 0 : 1 });\n },\n [nvRef],\n );\n\n const removeSurface = useCallback(\n (surfaceIndex: number) => {\n const nv = nvRef.current;\n if (!nv || !nv.meshes[surfaceIndex]) return;\n void nv.removeMesh(surfaceIndex);\n\n if (currentSurfaceIndex === surfaceIndex) {\n if (surfaceIndex > 0) setCurrentSurfaceIndex(surfaceIndex - 1);\n else if (nv.meshes.length > 1) setCurrentSurfaceIndex(0);\n else setCurrentSurfaceIndex(null);\n } else if (\n currentSurfaceIndex !== null &&\n currentSurfaceIndex > surfaceIndex\n ) {\n setCurrentSurfaceIndex(currentSurfaceIndex - 1);\n }\n },\n [nvRef, currentSurfaceIndex, setCurrentSurfaceIndex],\n );\n\n const handleRemoveSurfaceClick = useCallback(\n (surfaceIndex: number) => {\n if (skipRemoveConfirmation) {\n removeSurface(surfaceIndex);\n } else {\n setSurfaceToRemove(surfaceIndex);\n setRemoveDialogOpen(true);\n }\n },\n [\n skipRemoveConfirmation,\n removeSurface,\n setSurfaceToRemove,\n setRemoveDialogOpen,\n ],\n );\n\n const handleSurfaceOpacityChange = useCallback(\n (newOpacity: number) => {\n const nv = nvRef.current;\n if (\n currentSurfaceIndex === null ||\n !nv ||\n !nv.meshes[currentSurfaceIndex]\n )\n return;\n void nv.setMesh(currentSurfaceIndex, { opacity: newOpacity });\n },\n [currentSurfaceIndex, nvRef],\n );\n\n const handleSurfaceColorChange = useCallback(\n (hexColor: string) => {\n const nv = nvRef.current;\n if (\n currentSurfaceIndex === null ||\n !nv ||\n !nv.meshes[currentSurfaceIndex]\n )\n return;\n const r = parseInt(hexColor.slice(1, 3), 16);\n const g = parseInt(hexColor.slice(3, 5), 16);\n const b = parseInt(hexColor.slice(5, 7), 16);\n const index = currentSurfaceIndex;\n if (surfaceColorTimeoutRef.current)\n clearTimeout(surfaceColorTimeoutRef.current);\n surfaceColorTimeoutRef.current = setTimeout(() => {\n // setMesh accepts rgba255 (0-255) and converts to color internally.\n if (nvRef.current)\n void nvRef.current.setMesh(index, { rgba255: [r, g, b, 255] });\n }, 50);\n },\n [currentSurfaceIndex, nvRef],\n );\n\n const handleMeshShaderChange = useCallback(\n (shaderName: string) => {\n const nv = nvRef.current;\n if (\n currentSurfaceIndex === null ||\n !nv ||\n !nv.meshes[currentSurfaceIndex]\n )\n return;\n void nv.setMesh(currentSurfaceIndex, { shaderType: shaderName });\n },\n [currentSurfaceIndex, nvRef],\n );\n\n return {\n updateSurfaceDetails,\n toggleSurfaceVisibility,\n removeSurface,\n handleRemoveSurfaceClick,\n handleSurfaceOpacityChange,\n handleSurfaceColorChange,\n handleMeshShaderChange,\n };\n}\n","import { useCallback, useEffect, useRef } from \"react\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport NiiVue from \"@niivue/niivue\";\n\n/**\n * Mesh scalar-overlay layer handlers. Command-only: handlers issue nv.* layer\n * commands (addMeshLayer/removeMeshLayer/setMeshLayerProperty), which emit\n * meshUpdated -> the event adapter bumps layerVersion. getLayers re-reads\n * nv.meshes[i].layers at render, so the UI follows without imperative writes.\n * Layers are addressed by (meshIndex, layerIndex) — niivue-mono meshes have no id.\n */\nexport function useMeshLayers(nvRef: React.RefObject<NiiVue | null>) {\n const currentSurfaceIndex = useFreeBrowseStore((s) => s.currentSurfaceIndex);\n const selectedLayerIndex = useFreeBrowseStore((s) => s.selectedLayerIndex);\n const setSelectedLayerIndex = useFreeBrowseStore(\n (s) => s.setSelectedLayerIndex,\n );\n const layerVersion = useFreeBrowseStore((s) => s.layerVersion);\n\n const layerFileInputRef = useRef<HTMLInputElement>(null);\n\n // Reset layer selection when the selected surface changes\n useEffect(() => {\n setSelectedLayerIndex(null);\n }, [currentSurfaceIndex, setSelectedLayerIndex]);\n\n const getLayers = useCallback(() => {\n // Consume layerVersion so the list re-renders when layers mutate.\n void layerVersion;\n const nv = nvRef.current;\n if (nv && currentSurfaceIndex !== null && nv.meshes[currentSurfaceIndex]) {\n return nv.meshes[currentSurfaceIndex].layers || [];\n }\n return [];\n }, [nvRef, currentSurfaceIndex, layerVersion]);\n\n const addLayerFromFile = useCallback(\n async (file: File) => {\n const nv = nvRef.current;\n if (\n !nv ||\n currentSurfaceIndex === null ||\n !nv.meshes[currentSurfaceIndex]\n )\n return;\n // niivue-mono loads layers by URL/File and now persists the layer name\n // (PR: URL mesh layers). The old NVMesh.loadLayer + name backfill is gone.\n await nv.addMeshLayer(currentSurfaceIndex, {\n url: file,\n name: file.name,\n opacity: 0.5,\n });\n // Select the newly added (last) layer.\n const layers = nv.meshes[currentSurfaceIndex].layers || [];\n setSelectedLayerIndex(layers.length - 1);\n },\n [nvRef, currentSurfaceIndex, setSelectedLayerIndex],\n );\n\n const removeLayer = useCallback(\n (layerIndex: number) => {\n const nv = nvRef.current;\n if (\n !nv ||\n currentSurfaceIndex === null ||\n !nv.meshes[currentSurfaceIndex]\n )\n return;\n void nv.removeMeshLayer(currentSurfaceIndex, layerIndex);\n\n if (selectedLayerIndex === layerIndex) {\n setSelectedLayerIndex(null);\n } else if (\n selectedLayerIndex !== null &&\n selectedLayerIndex > layerIndex\n ) {\n setSelectedLayerIndex(selectedLayerIndex - 1);\n }\n },\n [nvRef, currentSurfaceIndex, selectedLayerIndex, setSelectedLayerIndex],\n );\n\n // Shared: apply a property change to the currently selected layer.\n const setLayerProperty = useCallback(\n (options: Record<string, unknown>) => {\n const nv = nvRef.current;\n if (\n !nv ||\n currentSurfaceIndex === null ||\n selectedLayerIndex === null ||\n !nv.meshes[currentSurfaceIndex]\n )\n return;\n void nv.setMeshLayerProperty(\n currentSurfaceIndex,\n selectedLayerIndex,\n options,\n );\n },\n [nvRef, currentSurfaceIndex, selectedLayerIndex],\n );\n\n const handleLayerOpacityChange = useCallback(\n (value: number) => setLayerProperty({ opacity: value }),\n [setLayerProperty],\n );\n\n const handleLayerCalMinChange = useCallback(\n (value: number) => setLayerProperty({ calMin: value }),\n [setLayerProperty],\n );\n\n const handleLayerCalMaxChange = useCallback(\n (value: number) => setLayerProperty({ calMax: value }),\n [setLayerProperty],\n );\n\n const handleLayerColormapChange = useCallback(\n async (colormap: string) => setLayerProperty({ colormap }),\n [setLayerProperty],\n );\n\n const handleLayerUseNegativeCmapChange = useCallback(\n // niivue-mono has no `useNegativeCmap` boolean; enabling a negative colormap\n // means setting `colormapNegative` to a colormap name ('' disables).\n async (checked: boolean) =>\n setLayerProperty({ colormapNegative: checked ? \"winter\" : \"\" }),\n [setLayerProperty],\n );\n\n const handleAddLayerFiles = useCallback(() => {\n layerFileInputRef.current?.click();\n }, []);\n\n const handleLayerFileChange = useCallback(\n async (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n const files = Array.from(e.target.files);\n for (const file of files) {\n await addLayerFromFile(file);\n }\n }\n e.target.value = \"\";\n },\n [addLayerFromFile],\n );\n\n return {\n layerFileInputRef,\n getLayers,\n addLayerFromFile,\n removeLayer,\n handleLayerOpacityChange,\n handleLayerCalMinChange,\n handleLayerCalMaxChange,\n handleLayerColormapChange,\n handleLayerUseNegativeCmapChange,\n handleAddLayerFiles,\n handleLayerFileChange,\n };\n}\n","import { useCallback } from \"react\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport NiiVue from \"@niivue/niivue\";\n\n/**\n * Core pen-drawing handlers (Phase 4a). Hybrid store/command model:\n * - Event-mirrored fields (opacity, penFill, colormap, enabled): handlers issue\n * nv.* commands only; the event adapter maps the resulting events into\n * drawingOptions. `enabled` follows drawingChanged (a drawing layer exists),\n * NOT drawIsEnabled (pointer painting) — `mode` is FreeBrowse's abstraction\n * over drawIsEnabled.\n * - Store-owned fields (mode, penErases, penValue): handlers set the store AND\n * drive niivue as a derived value (drawPenValue = penErases ? 0 : penValue),\n * which the adapter does NOT mirror back (mirroring would clobber penValue on\n * erase). Magic-wand params stay store-owned for 4c.\n */\nexport function useDrawing(\n nvRef: React.RefObject<NiiVue | null>,\n debouncedGLUpdate: () => void,\n) {\n void debouncedGLUpdate; // nv draw setters refresh the GPU; kept for call-site stability\n const drawingOptions = useFreeBrowseStore((s) => s.drawingOptions);\n const setDrawingOptions = useFreeBrowseStore((s) => s.setDrawingOptions);\n const setActiveTab = useFreeBrowseStore((s) => s.setActiveTab);\n\n const handleCreateDrawingLayer = useCallback(() => {\n const nv = nvRef.current;\n if (!nv || !nv.volumes[0]) return; // a drawing overlays the background volume\n // niivue-mono no longer auto-creates the bitmap when drawing is enabled.\n nv.createEmptyDrawing();\n nv.drawColormap = drawingOptions.colormap;\n nv.drawOpacity = drawingOptions.opacity;\n nv.drawPenFilled = drawingOptions.penFill;\n nv.drawIsEnabled = false; // start in 'none' mode; user picks a tool\n setDrawingOptions((prev) => ({ ...prev, mode: \"none\" }));\n setActiveTab(\"drawing\");\n }, [\n nvRef,\n drawingOptions.colormap,\n drawingOptions.opacity,\n drawingOptions.penFill,\n setDrawingOptions,\n setActiveTab,\n ]);\n\n const handleDrawModeChange = useCallback(\n (mode: \"none\" | \"pen\" | \"wand\") => {\n setDrawingOptions((prev) => ({ ...prev, mode })); // store-owned\n const nv = nvRef.current;\n if (!nv) return;\n if (mode === \"pen\") {\n nv.drawPenValue = drawingOptions.penErases\n ? 0\n : drawingOptions.penValue;\n nv.drawPenFilled = drawingOptions.penFill; // flood-fill the enclosed shape\n nv.drawIsFillOverwriting = drawingOptions.penFill; // fill overwrites existing labels\n nv.drawIsEnabled = true;\n } else {\n // 'none' (and 'wand', which is disabled in the UI until 4c)\n nv.drawIsEnabled = false;\n }\n },\n [\n nvRef,\n drawingOptions.penErases,\n drawingOptions.penValue,\n drawingOptions.penFill,\n setDrawingOptions,\n ],\n );\n\n const handlePenValueChange = useCallback(\n (value: number) => {\n setDrawingOptions((prev) => ({ ...prev, penValue: value })); // store-owned\n const nv = nvRef.current;\n if (nv && drawingOptions.mode === \"pen\" && !drawingOptions.penErases) {\n nv.drawPenValue = value;\n }\n },\n [nvRef, drawingOptions.mode, drawingOptions.penErases, setDrawingOptions],\n );\n\n const handlePenErasesChange = useCallback(\n (checked: boolean) => {\n setDrawingOptions((prev) => ({ ...prev, penErases: checked })); // store-owned\n const nv = nvRef.current;\n if (nv && drawingOptions.mode === \"pen\") {\n nv.drawPenValue = checked ? 0 : drawingOptions.penValue;\n }\n },\n [nvRef, drawingOptions.mode, drawingOptions.penValue, setDrawingOptions],\n );\n\n const handlePenFillChange = useCallback(\n // store-owned: drawPenFilled is a plain field (no event to mirror). \"Pen\n // fill\" = flood-fill the enclosed shape (drawPenFilled) AND overwrite\n // existing labels (drawIsFillOverwriting), matching old FreeBrowse.\n (checked: boolean) => {\n setDrawingOptions((prev) => ({ ...prev, penFill: checked }));\n const nv = nvRef.current;\n if (nv) {\n nv.drawPenFilled = checked;\n nv.drawIsFillOverwriting = checked;\n }\n },\n [nvRef, setDrawingOptions],\n );\n\n const handleDrawingOpacityChange = useCallback(\n // event-mirrored (opacity follows drawOpacity)\n (opacity: number) => {\n const nv = nvRef.current;\n if (nv) nv.drawOpacity = opacity;\n },\n [nvRef],\n );\n\n const handleDrawingColormapChange = useCallback(\n // event-mirrored (colormap follows drawColormap). Options come from\n // nv.drawingColormapNames() — the `_`-prefixed draw LUTs, not nv.colormaps.\n (event: React.ChangeEvent<HTMLSelectElement>) => {\n const nv = nvRef.current;\n if (nv) nv.drawColormap = event.target.value;\n },\n [nvRef],\n );\n\n const handleDrawUndo = useCallback(() => {\n const nv = nvRef.current;\n if (nv) nv.drawUndo();\n }, [nvRef]);\n\n // --- magic-wand params: store-owned; wired to the extension in 4c ---\n const handleMagicWand2dOnlyChange = useCallback(\n (checked: boolean) =>\n setDrawingOptions((prev) => ({ ...prev, magicWand2dOnly: checked })),\n [setDrawingOptions],\n );\n const handleMagicWandMaxDistanceChange = useCallback(\n (value: number) =>\n setDrawingOptions((prev) => ({ ...prev, magicWandMaxDistanceMM: value })),\n [setDrawingOptions],\n );\n const handleMagicWandThresholdChange = useCallback(\n (value: number) =>\n setDrawingOptions((prev) => ({\n ...prev,\n magicWandThresholdPercent: value,\n })),\n [setDrawingOptions],\n );\n\n const handleSaveDrawing = useCallback(async () => {\n const nv = nvRef.current;\n if (!nv || !nv.drawingVolume) return;\n // Export the drawing bitmap as raw NIfTI bytes. filename '' returns a\n // Uint8Array; since it isn't a .gz name the bytes are uncompressed, so the\n // reloaded File must be named .nii (not .nii.gz, or the loader gunzips).\n const bytes = (await nv.saveVolume({\n filename: \"\",\n isSaveDrawing: true,\n volumeByIndex: 0,\n })) as Uint8Array;\n if (!(bytes instanceof Uint8Array)) return;\n const name = drawingOptions.filename.replace(/\\.gz$/i, \"\");\n const file = new File([bytes], name, { type: \"application/octet-stream\" });\n\n nv.drawIsEnabled = false;\n nv.closeDrawing(); // -> drawingChanged 'close' -> adapter sets enabled=false\n await nv.addVolume({ url: file, name });\n // Persist as a label volume with a dropdown-native, opaque palette\n // (roi_i256: sequential indices so pen values 1..N map 1:1, no `labels` so\n // no legend). Set both colormap + colormapLabel (the 3c pattern) so it's\n // consistent with the Scene-Details dropdown. Exact draw-color persistence\n // is deferred (Phase 7). NOTE: the drawing's own `_draw` colormap is NOT\n // carried over — the saved segmentation is recolored with roi_i256.\n const idx = nv.volumes.length - 1;\n if (idx >= 0) {\n await nv.setVolume(idx, { colormap: \"roi_i256\" });\n await nv.setColormapLabel(idx, \"roi_i256\");\n }\n\n setDrawingOptions((prev) => ({ ...prev, mode: \"none\" }));\n setActiveTab(\"sceneDetails\");\n }, [nvRef, drawingOptions.filename, setDrawingOptions, setActiveTab]);\n\n return {\n handleCreateDrawingLayer,\n handleDrawingColormapChange,\n handleDrawModeChange,\n handlePenFillChange,\n handlePenErasesChange,\n handlePenValueChange,\n handleDrawingOpacityChange,\n handleMagicWand2dOnlyChange,\n handleMagicWandMaxDistanceChange,\n handleMagicWandThresholdChange,\n handleDrawUndo,\n handleSaveDrawing,\n };\n}\n","import { NVWorker as p } from \"@niivue/niivue\";\nconst g = '(function(){\"use strict\";const X={AXIAL:0,CORONAL:1};function ct(t,e){const{dimX:o,dimY:r,dimZ:s}=e;return t===X.AXIAL?{w:o,h:r,depth:s}:t===X.CORONAL?{w:o,h:s,depth:r}:{w:r,h:s,depth:o}}function Y(t,e,o,r){return t+e*r.dimX+o*r.dimX*r.dimY}function j(t,e,o,r,s){if(!s)return Y(t,e,o,r);const{img2RASstep:i,img2RASstart:n}=s;return n[0]+t*i[0]+n[1]+e*i[1]+n[2]+o*i[2]}function U(t,e,o,r){const{dimX:s,dimY:i,dimZ:n}=r;if(e===X.AXIAL){const c=new Float32Array(s*i),f=t*s*i;for(let a=0;a<c.length;a++)c[a]=o[f+a];return c}if(e===X.CORONAL){const c=new Float32Array(s*n);for(let f=0;f<n;f++)for(let a=0;a<s;a++)c[a+f*s]=o[Y(a,t,f,r)];return c}const l=new Float32Array(i*n);for(let c=0;c<n;c++)for(let f=0;f<i;f++)l[f+c*i]=o[Y(t,f,c,r)];return l}function J(t,e,o,r,s,i){const{dimX:n,dimY:l,dimZ:c}=r,f=1/s;if(e===X.AXIAL){const u=new Float32Array(n*l);for(let h=0;h<l;h++)for(let p=0;p<n;p++)u[p+h*n]=o[j(p,h,t,r,i)]*f;return u}if(e===X.CORONAL){const u=new Float32Array(n*c);for(let h=0;h<c;h++)for(let p=0;p<n;p++)u[p+h*n]=o[j(p,t,h,r,i)]*f;return u}const a=new Float32Array(l*c);for(let u=0;u<c;u++)for(let h=0;h<l;h++)a[h+u*l]=o[j(t,h,u,r,i)]*f;return a}function wt(t,e,o,r,s,i,n){const{dimX:l,dimY:c,dimZ:f}=s;if(o===X.AXIAL){const a=e*l*c;for(let u=0;u<t.length;u++)t[u]>=i&&(r[a+u]=n)}else if(o===X.CORONAL)for(let a=0;a<f;a++)for(let u=0;u<l;u++)t[u+a*l]>=i&&(r[Y(u,e,a,s)]=n);else for(let a=0;a<f;a++)for(let u=0;u<c;u++)t[u+a*c]>=i&&(r[Y(e,u,a,s)]=n)}function ft(t,e,o){if(e<3||o<3)return;const r=new Float32Array(t.length);for(let s=0;s<o;s++)for(let i=0;i<e;i++){const n=i+s*e;r[n]=i===0||i===e-1?t[n]:(t[n-1]+2*t[n]+t[n+1])*.25}for(let s=0;s<o;s++)for(let i=0;i<e;i++){const n=i+s*e;t[n]=s===0||s===o-1?r[n]:(r[n-e]+2*r[n]+r[n+e])*.25}}function pt(t,e,o,r){const s=Math.abs(o-t),i=Math.abs(o-e),n=Math.exp(-s*s/(2*r*r)),l=Math.exp(-i*i/(2*r*r)),c=n+l;return c<1e-6?.5:n/c}function bt(t,e,o){const{depth:r}=ct(t,o);let s=-1,i=-1;for(let n=0;n<r;n++){const l=U(n,t,e,o);let c=!1;for(let f=0;f<l.length;f++)if(l[f]>0){c=!0;break}c&&(s===-1&&(s=n),i=n)}return s===-1?null:{first:s,last:i}}function xt(t,e,o,r,s,i,n,l){const c=n.sliceType??X.AXIAL,{w:f,h:a,depth:u}=ct(c,e),h=u-1,p={intensityWeight:n.intensityWeight??.7,binaryThreshold:n.binaryThreshold??.375,intensitySigma:n.intensitySigma??.1,applySmoothingToSlices:n.applySmoothingToSlices??!0,useIntensityGuided:n.useIntensityGuided??!1};if(s!==void 0&&i!==void 0){if(s>=i)throw new Error(\"Low slice index must be less than high slice index\");if(s<0||i>h)throw new Error(`Slice indices out of bounds [0, ${h}]`)}const C=new Map;for(let b=0;b<=h;b++){const N=U(b,c,t,e);for(let y=0;y<N.length;y++){const g=N[y];if(g>0){const x=C.get(g);x?(x.min=Math.min(x.min,b),x.max=Math.max(x.max,b)):C.set(g,{min:b,max:b})}}}for(const[b,N]of C){const y=s!==void 0?Math.max(s,N.min):N.min,g=i!==void 0?Math.min(i,N.max):N.max;if(y>=g||g-y<2)continue;const x=U(y,c,t,e),O=U(g,c,t,e),M=new Float32Array(x.length),I=new Float32Array(O.length);for(let A=0;A<x.length;A++)M[A]=x[A]===b?1:0,I[A]=O[A]===b?1:0;p.applySmoothingToSlices&&(ft(M,f,a),ft(I,f,a));for(let A=y+1;A<g;A++){const E=new Float32Array(f*a),d=(A-y)/(g-y),w=1-d;if(p.useIntensityGuided&&o){const m=J(y,c,o,e,r,l),v=J(g,c,o,e,r,l),nt=J(A,c,o,e,r,l),Z=p.intensityWeight;for(let F=0;F<M.length;F++)if(M[F]>0||I[F]>0){const et=pt(m[F],v[F],nt[F],p.intensitySigma),D=Z*et+(1-Z)*w,ot=1-D;E[F]=M[F]*D+I[F]*ot}else E[F]=M[F]*w+I[F]*d}else for(let m=0;m<M.length;m++)E[m]=M[m]*w+I[m]*d;wt(E,A,c,t,e,p.binaryThreshold,b)}}return t}function k(t,e,o,r){return t+e*r.dimX+o*r.dimX*r.dimY}function lt(t,e,o,r,s){if(!s)return k(t,e,o,r);const{img2RASstep:i,img2RASstart:n}=s;return n[0]+t*i[0]+n[1]+e*i[1]+n[2]+o*i[2]}const K=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],at=[[-1,-1,0],[1,-1,0],[-1,1,0],[1,1,0],[0,-1,-1],[0,1,-1],[-1,0,-1],[1,0,-1],[0,-1,1],[0,1,1],[-1,0,1],[1,0,1]],Mt=[[-1,-1,-1],[1,-1,-1],[-1,1,-1],[1,1,-1],[-1,-1,1],[1,-1,1],[-1,1,1],[1,1,1]];function ut(t){return t>=26?[...K,...at,...Mt]:t>=18?[...K,...at]:[...K]}function dt(t,e,o,r,s={},i,n){const{tolerance:l=0,thresholdMode:c=\"symmetric\",percent:f=0,calMin:a=0,calMax:u=1,connectivity:h=6,maxDistanceMM:p=Number.POSITIVE_INFINITY,is2D:C=!1,sliceAxis:b=0,penValue:N=1}=s,{dimX:y,dimY:g,dimZ:x}=o,O=y*g*x,[M,I,A]=t;if(M<0||I<0||A<0||M>=y||I>=g||A>=x)return{filledCount:0,seedIntensity:0,intensityMin:0,intensityMax:0};const E=lt(M,I,A,o,i),d=Number(r[E]);let w,m,v;if(s.intensityMin!==void 0&&s.intensityMax!==void 0)w=s.intensityMin,m=s.intensityMax;else{let L=c===\"auto\"?\"symmetric\":c;switch(c===\"auto\"&&(v=d>(a+u)*.5,L=v?\"bright\":\"dark\"),L){case\"percent\":{const S=d===0?.01:d;w=S*(1-f),m=S*(1+f);break}case\"bright\":if(f>0){const S=d===0?.01:d;w=S*(1-f),m=S*(1+f)}else l>0?(w=d,m=d+l):(w=d,m=Number.POSITIVE_INFINITY);break;case\"dark\":if(f>0){const S=d===0?.01:d;w=S*(1-f),m=S*(1+f)}else l>0?(w=d-l,m=d):(w=Number.NEGATIVE_INFINITY,m=d);break;default:w=d-l,m=d+l;break}}const nt=ut(h),Z=n?n[0]:1,F=n?n[1]:1,et=n?n[2]:1,D=p*p;function ot(L,S,H){if(!Number.isFinite(D))return!0;const P=(L-M)*Z,q=(S-I)*F,$=(H-A)*et;return P*P+q*q+$*$<=D}let z=-1,G=-1;C&&(b===0?(z=2,G=A):b===1?(z=1,G=I):b===2&&(z=0,G=M));const it=new Uint8Array(O),yt=k(M,I,A,o);if(d<w||d>m)return{filledCount:0,seedIntensity:d,intensityMin:w,intensityMax:m,isBright:v};const rt=[yt];it[yt]=1;let gt=0;for(;rt.length>0;){const L=rt.shift(),S=Math.floor(L/(y*g)),H=Math.floor((L-S*y*g)/y),P=L-S*y*g-H*y;e[L]=N,gt++;for(const[q,$,St]of nt){const B=P+q,W=H+$,T=S+St;if(B<0||W<0||T<0||B>=y||W>=g||T>=x||z>=0&&(z===0?B:z===1?W:T)!==G)continue;const st=k(B,W,T,o);if(it[st]||(it[st]=1,!ot(B,W,T)))continue;const At=Number(r[lt(B,W,T,o,i)]);At<w||At>m||rt.push(st)}}return{filledCount:gt,seedIntensity:d,intensityMin:w,intensityMax:m,isBright:v}}function It(t,e,o,r,s=6){const{dimX:i,dimY:n,dimZ:l}=o,[c,f,a]=t;if(c<0||f<0||a<0||c>=i||f>=n||a>=l)return 0;const u=k(c,f,a,o),h=e[u];if(h===r||h===0)return 0;const p=i*n*l,C=new Uint8Array(p),b=ut(s),N=[u];C[u]=1;let y=0;for(;N.length>0;){const g=N.shift();e[g]=r,y++;const x=Math.floor(g/(i*n)),O=Math.floor((g-x*i*n)/i),M=g-x*i*n-O*i;for(const[I,A,E]of b){const d=M+I,w=O+A,m=x+E;if(d<0||w<0||m<0||d>=i||w>=n||m>=l)continue;const v=k(d,w,m,o);C[v]||(C[v]=1,e[v]===h&&N.push(v))}}return y}const R=self.postMessage.bind(self),Ft={findBoundarySlices(t){const e=t.sliceType,o=new Uint8Array(t.drawBitmap),r=t.dims;return{result:bt(e,o,r)}},interpolateMaskSlices(t){const e=new Uint8Array(t.drawBitmap),o=t.dims,r=t.imageData?new Float32Array(t.imageData):null,s=t.maxVal??1,i=t.sliceIndexLow,n=t.sliceIndexHigh,l=t.options??{},c=t.rasMap??void 0;return{drawBitmap:xt(e,o,r,s,i,n,l,c).buffer}},magicWand(t){const e=t.seed,o=new Uint8Array(t.drawBitmap),r=t.dims,s=new Float32Array(t.imageData),i=t.options??{},n=t.rasMap??void 0,l=t.voxelSizeMM??void 0,c=dt(e,o,r,s,i,n,l);return{drawBitmap:o.buffer,result:c}},magicWandFromBitmap(t){const e=t.seed,o=new Uint8Array(t.drawBitmap),r=t.dims,s=t.newColor??0,i=t.connectivity??6,n=It(e,o,r,s,i);return{drawBitmap:o.buffer,count:n}}};let V=null,Q=null,_=null,tt=null,mt,ht;self.onmessage=t=>{const e=t.data;if(e.type===\"initShared\"){V=new Uint8Array(e.workingBuffer),Q=new Float32Array(e.imageBuffer),_=new Uint8Array(e.committedBuffer),tt=e.dims,mt=e.rasMap??void 0,ht=e.voxelSizeMM??void 0,R({type:\"initSharedDone\"});return}if(e.type===\"updateCommitted\"){_=new Uint8Array(e.committed);return}if(e.type===\"magicWandShared\"){if(!V||!Q||!_||!tt){R({type:\"magicWandSharedResult\",error:\"Not initialized\",gen:e.gen});return}V.set(_);const n=dt(e.seed,V,tt,Q,e.options??{},mt,ht);R({type:\"magicWandSharedResult\",result:n,gen:e.gen});return}const{_wbId:o,name:r,...s}=e,i=Ft[r];if(!i){R({_wbId:o,_wbError:`Unknown operation: ${r}`});return}try{const n=i(s),l=[];for(const c of Object.values(n))c instanceof ArrayBuffer&&l.push(c);R({_wbId:o,...n},l)}catch(n){R({_wbId:o,_wbError:n instanceof Error?n.message:String(n)})}}})();\\n', h = typeof self < \"u\" && self.Blob && new Blob([g], { type: \"text/javascript;charset=utf-8\" });\nfunction w(e) {\n let t;\n try {\n if (t = h && (self.URL || self.webkitURL).createObjectURL(h), !t) throw \"\";\n const n = new Worker(t, {\n name: e == null ? void 0 : e.name\n });\n return n.addEventListener(\"error\", () => {\n (self.URL || self.webkitURL).revokeObjectURL(t);\n }), n;\n } catch {\n return new Worker(\n \"data:text/javascript;charset=utf-8,\" + encodeURIComponent(g),\n {\n name: e == null ? void 0 : e.name\n }\n );\n } finally {\n t && (self.URL || self.webkitURL).revokeObjectURL(t);\n }\n}\nfunction y(e) {\n if (e instanceof Float32Array) return e;\n const t = new Float32Array(e.length);\n for (let n = 0; n < e.length; n++) t[n] = e[n];\n return t;\n}\nlet m = null;\nfunction d() {\n return m || (m = new p(() => new w())), m;\n}\nasync function M(e, t, n) {\n const r = t.buffer.slice(\n t.byteOffset,\n t.byteOffset + t.byteLength\n );\n return (await d().execute(\n {\n name: \"findBoundarySlices\",\n sliceType: e,\n drawBitmap: r,\n dims: n\n },\n [r]\n )).result;\n}\nasync function S(e, t, n, r, o, s, i) {\n const a = e.buffer.slice(\n e.byteOffset,\n e.byteOffset + e.byteLength\n ), c = [a];\n let f = null;\n if (n) {\n const l = y(n);\n f = l.buffer.slice(\n l.byteOffset,\n l.byteOffset + l.byteLength\n ), c.push(f);\n }\n const u = await d().execute(\n {\n name: \"interpolateMaskSlices\",\n drawBitmap: a,\n dims: t,\n imageData: f,\n maxVal: r,\n sliceIndexLow: o,\n sliceIndexHigh: s,\n options: i ?? {},\n rasMap: null\n },\n c\n );\n return new Uint8Array(u.drawBitmap);\n}\nasync function x(e, t, n, r, o, s) {\n const i = t.buffer.slice(\n t.byteOffset,\n t.byteOffset + t.byteLength\n ), a = y(r), c = a.buffer.slice(\n a.byteOffset,\n a.byteOffset + a.byteLength\n ), f = [i, c], u = await d().execute(\n {\n name: \"magicWand\",\n seed: e,\n drawBitmap: i,\n dims: n,\n imageData: c,\n options: o ?? {},\n rasMap: null,\n voxelSizeMM: s ?? null\n },\n f\n );\n return { bitmap: new Uint8Array(u.drawBitmap), result: u.result };\n}\nasync function I(e, t, n, r, o = 6) {\n const s = t.buffer.slice(\n t.byteOffset,\n t.byteOffset + t.byteLength\n ), i = await d().execute(\n {\n name: \"magicWandFromBitmap\",\n seed: e,\n drawBitmap: s,\n dims: n,\n newColor: r,\n connectivity: o\n },\n [s]\n );\n return { bitmap: new Uint8Array(i.drawBitmap), count: i.count };\n}\nclass L {\n constructor(t, n, r, o) {\n this._gen = 0;\n const s = t.dimX * t.dimY * t.dimZ, i = new SharedArrayBuffer(s);\n this.bitmap = new Uint8Array(i), this.bitmap.set(r);\n const a = y(n), c = new SharedArrayBuffer(a.byteLength);\n new Float32Array(c).set(a);\n const f = r.slice();\n this._worker = new w(), this.ready = new Promise((u) => {\n const l = (b) => {\n b.data.type === \"initSharedDone\" && (this._worker.removeEventListener(\"message\", l), u());\n };\n this._worker.addEventListener(\"message\", l);\n }), this._worker.postMessage(\n {\n type: \"initShared\",\n workingBuffer: i,\n imageBuffer: c,\n committedBuffer: f.buffer,\n dims: t,\n rasMap: null,\n voxelSizeMM: o ?? null\n },\n [f.buffer]\n );\n }\n /**\n * Send a new committed bitmap to the worker.\n * Call after commit, undo, or clear.\n */\n updateCommitted(t) {\n const n = t.slice();\n this._worker.postMessage(\n { type: \"updateCommitted\", committed: n.buffer },\n [n.buffer]\n );\n }\n /**\n * Run a magic wand preview. The worker restores the committed bitmap\n * into the shared working buffer, runs the flood fill, and returns\n * the result summary. By the time the promise resolves, `this.bitmap`\n * already contains the updated drawing.\n *\n * Returns `null` if a newer preview superseded this one.\n */\n preview(t, n) {\n const r = ++this._gen;\n return new Promise((o) => {\n const s = (i) => {\n if (i.data.type === \"magicWandSharedResult\") {\n if (this._worker.removeEventListener(\"message\", s), i.data.gen !== r) {\n o(null);\n return;\n }\n o(i.data.result);\n }\n };\n this._worker.addEventListener(\"message\", s), this._worker.postMessage({\n type: \"magicWandShared\",\n seed: t,\n options: n ?? {},\n gen: r\n });\n });\n }\n /** Terminate the worker and release resources. */\n dispose() {\n this._worker.terminate();\n }\n}\nexport {\n L as MagicWandShared,\n M as findDrawingBoundarySlices,\n S as interpolateMaskSlices,\n x as magicWand,\n I as magicWandFromBitmap\n};\n","import { useEffect, useRef } from \"react\";\nimport { magicWand, type MagicWandOptions } from \"@niivue/nv-ext-drawing\";\nimport type {\n BackgroundVolumeAccess,\n DrawingChangedDetail,\n NiiVue,\n NVExtensionContext,\n SlicePointerEvent,\n} from \"@niivue/niivue\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport type { DrawingOptions } from \"@/store/types\";\n\n/**\n * Magic-wand (click-to-segment) rebuilt on `@niivue/nv-ext-drawing` (Phase 4c).\n * niivue-mono removed `clickToSegment` from core, so the wand is an extension:\n * an intensity flood-fill seeded from the pointer, painted into the active\n * drawing layer, honoring the store's threshold / 2D-only / max-distance params.\n *\n * **Hover preview (4c.2):** the fill previews live as the pointer moves and only\n * commits on click. niivue-mono has no separate preview overlay — the preview\n * *is* the drawing bitmap, temporarily. We keep a `committed` snapshot of the\n * pre-preview drawing and always flood FROM it (never from the current preview,\n * so previews don't accumulate); leaving restores the snapshot, clicking makes\n * the preview permanent. All fills apply via `ctx.drawing.update`, which emits\n * `drawingChanged {action:'update'}` — the store adapter repaints, so no adapter\n * change is needed here.\n *\n * This uses the copy-based `magicWand` (worker via postMessage) for both preview\n * and commit — no headers, works in every build target incl. `file://`. The\n * zero-copy `MagicWandShared` preview (faster on large volumes, needs COOP/COEP)\n * is a Phase 7 perf upgrade.\n *\n * NOTE: no undo snapshot — niivue-mono exposes no public snapshot-push API, so a\n * wand fill is NOT on the pen undo stack (Phase 7; see the migration plan).\n */\n\nfunction buildWandOptions(\n opts: DrawingOptions,\n bg: BackgroundVolumeAccess,\n sliceType: number,\n): MagicWandOptions {\n return {\n thresholdMode: \"auto\", // bright/dark auto-picked around the seed via calMin/calMax\n percent: opts.magicWandThresholdPercent, // == old clickToSegmentPercent\n calMin: bg.calMin,\n calMax: bg.calMax,\n maxDistanceMM: opts.magicWandMaxDistanceMM,\n is2D: opts.magicWand2dOnly,\n sliceAxis: sliceType, // 0/1/2 axial/coronal/sagittal, matches sliceType\n penValue: opts.penValue, // wand writes the current pen value\n };\n}\n\n/**\n * Flood from the drawing layer's *current* bitmap and apply the result. Used for\n * the one-shot commit path (a click with no preceding hover preview). Exported\n * for unit testing against a fake ctx. Guards on drawing/volume so a click before\n * a layer/volume exists is a no-op.\n */\nexport async function runMagicWand(\n ctx: NVExtensionContext,\n opts: DrawingOptions,\n seed: [number, number, number],\n sliceType: number,\n): Promise<void> {\n const bg = ctx.backgroundVolume;\n const drawing = ctx.drawing;\n if (!bg?.imgRAS || !drawing) return;\n const { bitmap } = await magicWand(\n seed,\n drawing.bitmap,\n drawing.dims,\n bg.imgRAS,\n buildWandOptions(opts, bg, sliceType),\n drawing.voxelSizeMM,\n );\n drawing.update(bitmap);\n}\n\n/**\n * Wires the wand engine to the niivue instance. One extension context per\n * instance; params are read imperatively at event time (so changing them never\n * re-subscribes).\n */\nexport function useMagicWand(nvRef: React.RefObject<NiiVue | null>): void {\n // Snapshot of the drawing bitmap before the active preview (null = no active\n // preview; the live drawing bitmap is the truth). Flood base for previews.\n const committedRef = useRef<Uint8Array | null>(null);\n // One worker call in flight at a time; latest hovered seed waits its turn.\n const busyRef = useRef(false);\n const pendingRef = useRef<{\n seed: [number, number, number];\n sliceType: number;\n } | null>(null);\n // Bumped on leave / external edit; a preview whose gen changed mid-flight is\n // discarded instead of painting a stale region.\n const genRef = useRef(0);\n\n useEffect(() => {\n const nv = nvRef.current;\n if (!nv) return;\n const ctx = nv.createExtensionContext();\n const opts = () => useFreeBrowseStore.getState().drawingOptions;\n\n // Flood from the committed snapshot and paint the preview.\n const previewAt = async (\n seed: [number, number, number],\n sliceType: number,\n ): Promise<void> => {\n const drawing = ctx.drawing;\n const bg = ctx.backgroundVolume;\n if (!drawing || !bg?.imgRAS) return;\n if (committedRef.current == null) {\n committedRef.current = drawing.bitmap.slice(); // snapshot the truth\n }\n const myGen = genRef.current;\n const { bitmap } = await magicWand(\n seed,\n committedRef.current, // magicWand copies its buffer, so this stays intact\n drawing.dims,\n bg.imgRAS,\n buildWandOptions(opts(), bg, sliceType),\n drawing.voxelSizeMM,\n );\n if (myGen !== genRef.current) return; // left / invalidated mid-flight\n drawing.update(bitmap);\n };\n\n // Process the latest pending position; re-pump when the worker frees up.\n const pump = (): void => {\n if (busyRef.current) return;\n const p = pendingRef.current;\n if (!p) return;\n pendingRef.current = null;\n busyRef.current = true;\n void previewAt(p.seed, p.sliceType).finally(() => {\n busyRef.current = false;\n pump();\n });\n };\n\n const onMove = (e: CustomEvent<SlicePointerEvent>): void => {\n if (opts().mode !== \"wand\") return;\n if (!ctx.drawing || !ctx.backgroundVolume?.imgRAS) return;\n pendingRef.current = {\n seed: e.detail.voxel,\n sliceType: e.detail.sliceType,\n };\n pump();\n };\n\n const onLeave = (): void => {\n genRef.current++; // discard any in-flight preview\n pendingRef.current = null;\n if (committedRef.current != null) {\n ctx.drawing?.update(committedRef.current); // clear the preview\n committedRef.current = null;\n }\n };\n\n const onUp = (e: CustomEvent<SlicePointerEvent>): void => {\n if (opts().mode !== \"wand\") return;\n if (!ctx.drawing || !ctx.backgroundVolume?.imgRAS) return;\n pendingRef.current = null;\n if (committedRef.current != null) {\n // An active preview already shows the fill at this location — keep it.\n // Any in-flight preview is intentionally NOT discarded (it lands the\n // same commit); the snapshot is dropped so the next hover re-snapshots.\n committedRef.current = null;\n } else if (!busyRef.current) {\n // No hover preview happened (e.g. a bare click) — one-shot commit.\n busyRef.current = true;\n void runMagicWand(\n ctx,\n opts(),\n e.detail.voxel,\n e.detail.sliceType,\n ).finally(() => {\n busyRef.current = false;\n });\n }\n };\n\n // External drawing edits (undo/close/load) invalidate the snapshot. Our own\n // preview/commit updates use action 'update', which we ignore.\n const onDrawingChanged = (e: CustomEvent<DrawingChangedDetail>): void => {\n if (e.detail?.action === \"update\") return;\n genRef.current++;\n committedRef.current = null;\n };\n\n ctx.on(\"slicePointerMove\", onMove);\n ctx.on(\"slicePointerUp\", onUp);\n ctx.on(\"slicePointerLeave\", onLeave);\n ctx.on(\"drawingChanged\", onDrawingChanged);\n return () => ctx.dispose();\n }, [nvRef]);\n}\n","/**\n * Point each volume entry at the backend path it is being uploaded to, for the\n * \"save to server\" flow.\n *\n * The document is serialized with `linkData: true`, so a volume that already has\n * a fetchable url carries no bytes. This rewrites that url to the *destination*\n * — which `linkData` cannot do, because it keys off where a volume was loaded\n * from (`shouldLinkVolume` in niivue's `documentLinkData.ts`), not where it is\n * going. FreeBrowse's save dialog collects a path for a file being uploaded in\n * the same submit, which does not exist yet and is not `volume.url`.\n *\n * Any residual embedded data is dropped: a `blob:`/`data:` url fails niivue's\n * `isLinkableUrl`, so those volumes embed as a fallback.\n *\n * A `null` entry means the user gave no destination for that volume, so its\n * bytes are KEPT and the document still round-trips. (The previous\n * `stripEmbeddedData` deleted them regardless, producing an entry that pointed\n * at nothing.)\n *\n * Meshes are deliberately untouched: niivue's mesh URL-restore path does not\n * reapply scalar-overlay layers or tract options, so a linked mesh loses that\n * state silently.\n *\n * Mutates and returns `doc`.\n */\nexport function retargetVolumeUrls(\n doc: Record<string, unknown>,\n volumeUrls: (string | null)[],\n): Record<string, unknown> {\n const volumes = doc.volumes;\n if (!Array.isArray(volumes)) return doc;\n\n volumes.forEach((vol, i) => {\n if (typeof vol !== \"object\" || vol === null || Array.isArray(vol)) return;\n const url = volumeUrls[i];\n if (url == null) return; // no destination -> keep the embedded bytes\n const entry = vol as Record<string, unknown>;\n delete entry.data;\n entry.url = url;\n });\n\n return doc;\n}\n","import { useFreeBrowseStore } from \"@/store\";\n\nlet pendingImagingUpload: ((ok: boolean) => void) | null = null;\nlet pendingSessionDelete: ((ok: boolean) => void) | null = null;\n\nexport function requestImagingUploadConfirmation(): Promise<boolean> {\n const state = useFreeBrowseStore.getState();\n if (state.skipImagingUploadConfirmation) return Promise.resolve(true);\n if (pendingImagingUpload) {\n pendingImagingUpload(false);\n pendingImagingUpload = null;\n }\n return new Promise<boolean>((resolve) => {\n pendingImagingUpload = resolve;\n state.setImagingUploadConfirmDialogOpen(true);\n });\n}\n\nexport function resolveImagingUploadConfirmation(ok: boolean): void {\n useFreeBrowseStore.getState().setImagingUploadConfirmDialogOpen(false);\n const resolver = pendingImagingUpload;\n pendingImagingUpload = null;\n if (resolver) resolver(ok);\n}\n\nexport function requestSessionDeleteConfirmation(): Promise<boolean> {\n const state = useFreeBrowseStore.getState();\n if (state.skipSessionDeleteConfirmation) return Promise.resolve(true);\n if (pendingSessionDelete) {\n pendingSessionDelete(false);\n pendingSessionDelete = null;\n }\n return new Promise<boolean>((resolve) => {\n pendingSessionDelete = resolve;\n state.setSessionDeleteConfirmDialogOpen(true);\n });\n}\n\nexport function resolveSessionDeleteConfirmation(ok: boolean): void {\n useFreeBrowseStore.getState().setSessionDeleteConfirmDialogOpen(false);\n const resolver = pendingSessionDelete;\n pendingSessionDelete = null;\n if (resolver) resolver(ok);\n}\n","import { useCallback } from \"react\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport { gzipUint8Array, uint8ArrayToBase64 } from \"@/lib/niivue-helpers\";\nimport { retargetVolumeUrls } from \"@/lib/nvd-volume-urls\";\nimport { requestImagingUploadConfirmation } from \"@/lib/confirmations\";\nimport { dataUrl } from \"@/lib/deployment-config\";\nimport type { NvdFormat } from \"@/store/types\";\nimport type { NiiVue } from \"@niivue/niivue\";\n\n/** Append the given extension if the filename lacks it. */\nfunction ensureExt(name: string, ext: string): string {\n return name.toLowerCase().endsWith(ext) ? name : name + ext;\n}\n\n/** Trigger a browser download of `bytes` as `filename`. */\nfunction downloadBytes(bytes: Uint8Array | string, filename: string, type: string) {\n const blob = new Blob([bytes], { type });\n const url = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = url;\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n}\n\nexport function useSave(nvRef: React.RefObject<NiiVue | null>) {\n const setSaveDialogOpen = useFreeBrowseStore((s) => s.setSaveDialogOpen);\n const saveState = useFreeBrowseStore((s) => s.saveState);\n const setSaveState = useFreeBrowseStore((s) => s.setSaveState);\n\n const handleSaveScene = useCallback(\n async (isDownload: boolean = false) => {\n if (!nvRef.current) return;\n\n if (!isDownload && nvRef.current.volumes.length > 0) {\n const ok = await requestImagingUploadConfirmation();\n if (!ok) return;\n }\n\n const volumeStates = nvRef.current.volumes.map((volume) => {\n const isExternal = !!(volume.url && volume.url.startsWith(\"http\"));\n return {\n enabled: !isExternal,\n isExternal,\n url: isDownload ? volume.name || \"\" : volume.url || \"\",\n };\n });\n\n setSaveState({\n isDownloadMode: isDownload,\n document: {\n enabled: false,\n location: \"\",\n format: \"json\",\n },\n volumes: volumeStates,\n });\n\n setSaveDialogOpen(true);\n },\n [nvRef, setSaveState, setSaveDialogOpen],\n );\n\n const handleConfirmSave = useCallback(async () => {\n console.log(\"Saving scene to:\", saveState.document.location);\n\n if (!nvRef.current) return;\n\n if (saveState.isDownloadMode) {\n // Download mode\n if (saveState.document.enabled && saveState.document.location.trim()) {\n try {\n const filename = ensureExt(saveState.document.location.trim(), \".nvd\");\n const format = saveState.document.format;\n // niivue serializes both encodings natively; `loadDocument` sniffs\n // them apart on the way back in. Embeds everything, meshes included.\n const bytes = nvRef.current.serializeDocument({ format });\n downloadBytes(\n bytes,\n filename,\n format === \"json\" ? \"application/json\" : \"application/cbor\",\n );\n } catch (error) {\n console.error(\"Error downloading document:\", error);\n }\n }\n\n // Download enabled volumes\n for (let index = 0; index < saveState.volumes.length; index++) {\n const volumeState = saveState.volumes[index];\n if (\n volumeState.enabled &&\n nvRef.current &&\n nvRef.current.volumes[index]\n ) {\n const filename = ensureExt(\n volumeState.url || `volume_${index + 1}.nii.gz`,\n \".nii.gz\",\n );\n\n try {\n // saveVolume with an empty filename returns raw NIfTI bytes; gzip\n // them for a .nii.gz download.\n const raw = await nvRef.current.saveVolume({\n filename: \"\",\n volumeByIndex: index,\n });\n if (!(raw instanceof Uint8Array)) {\n throw new Error(\"saveVolume did not return bytes\");\n }\n const bytes = await gzipUint8Array(raw);\n downloadBytes(bytes, filename, \"application/octet-stream\");\n } catch (error) {\n console.error(`Error downloading volume ${index}:`, error);\n }\n }\n }\n } else {\n // Save to backend mode\n if (saveState.document.enabled && saveState.document.location.trim()) {\n try {\n // Point each volume entry at its backend save URL, and drop embedded\n // volume data (the backend stores volumes separately, below).\n //\n // `linkData: true` is load-bearing: without it niivue embeds every\n // volume's bytes into the document only for us to delete them, which\n // on the JSON path means base64-ing the whole volume first.\n const volumeUrls = saveState.volumes.map((v) =>\n v.url && v.url.trim() ? v.url : null,\n );\n const format: NvdFormat = saveState.document.format;\n\n let data: unknown;\n if (format === \"cbor\") {\n // CBOR cannot be retargeted without a decoder, so linked volumes\n // keep the url they were loaded from. The save dialog offers CBOR\n // in download mode only.\n data = uint8ArrayToBase64(\n nvRef.current.serializeDocument({ linkData: true }),\n );\n } else {\n // Parse back to an object: the backend stores `data` as a dict and\n // pretty-prints it, which keeps saved .nvd files diffable.\n const text = new TextDecoder().decode(\n nvRef.current.serializeDocument({\n format: \"json\",\n linkData: true,\n }),\n );\n data = retargetVolumeUrls(\n JSON.parse(text) as Record<string, unknown>,\n volumeUrls,\n );\n }\n\n const response = await fetch(dataUrl(\"nvd\"), {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n filename: saveState.document.location,\n data,\n format,\n }),\n });\n if (!response.ok) {\n throw new Error(`Failed to save document: ${response.statusText}`);\n }\n console.log(\"Document saved:\", await response.json());\n } catch (error) {\n console.error(\"Error saving document:\", error);\n }\n }\n\n // Save enabled volumes to backend\n const volumeSavePromises = saveState.volumes.map(\n async (volumeState, index) => {\n if (\n volumeState.enabled &&\n nvRef.current &&\n nvRef.current.volumes[index]\n ) {\n if (!volumeState.url || volumeState.url.trim() === \"\") {\n console.log(`Skipping volume ${index}: no URL specified`);\n return;\n }\n\n try {\n // saveVolume('' ) returns raw NIfTI bytes; gzip for a .nii.gz\n // upload (the backend appends .nii.gz if the name lacks it).\n const raw = await nvRef.current.saveVolume({\n filename: \"\",\n volumeByIndex: index,\n });\n if (!(raw instanceof Uint8Array)) {\n throw new Error(\"saveVolume did not return bytes\");\n }\n const uint8Array = await gzipUint8Array(raw);\n const base64Data = uint8ArrayToBase64(uint8Array);\n\n const volumeResponse = await fetch(dataUrl(\"nii\"), {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n filename: volumeState.url,\n data: base64Data,\n }),\n });\n\n if (!volumeResponse.ok) {\n throw new Error(\n `Failed to save volume ${index}: ${volumeResponse.statusText}`,\n );\n }\n\n const volumeResult = await volumeResponse.json();\n console.log(`Volume ${index} saved successfully:`, volumeResult);\n } catch (error) {\n console.error(`Error saving volume ${index}:`, error);\n }\n }\n },\n );\n\n await Promise.all(volumeSavePromises);\n }\n\n setSaveDialogOpen(false);\n setSaveState({\n isDownloadMode: false,\n document: {\n enabled: false,\n location: \"\",\n format: \"json\",\n },\n volumes: [],\n });\n }, [nvRef, saveState, setSaveDialogOpen, setSaveState]);\n\n const handleCancelSave = useCallback(() => {\n setSaveDialogOpen(false);\n setSaveState({\n isDownloadMode: false,\n document: {\n enabled: false,\n location: \"\",\n format: \"json\",\n },\n volumes: [],\n });\n }, [setSaveDialogOpen, setSaveState]);\n\n const handleVolumeUrlChange = useCallback(\n (index: number, url: string) => {\n setSaveState((prev) => ({\n ...prev,\n volumes: prev.volumes.map((state, i) =>\n i === index ? { ...state, url } : state,\n ),\n }));\n },\n [setSaveState],\n );\n\n const handleVolumeCheckboxChange = useCallback(\n (index: number, enabled: boolean) => {\n setSaveState((prev) => ({\n ...prev,\n volumes: prev.volumes.map((state, i) => {\n if (i === index) {\n if (enabled && state.isExternal) {\n return { ...state, enabled, url: \"\" };\n }\n return { ...state, enabled };\n }\n return state;\n }),\n }));\n },\n [setSaveState],\n );\n\n const handleDocumentLocationChange = useCallback(\n (location: string) => {\n setSaveState((prev) => ({\n ...prev,\n document: {\n ...prev.document,\n location,\n },\n }));\n },\n [setSaveState],\n );\n\n const handleDocumentCheckboxChange = useCallback(\n (enabled: boolean) => {\n setSaveState((prev) => ({\n ...prev,\n document: {\n ...prev.document,\n enabled,\n },\n }));\n },\n [setSaveState],\n );\n\n const handleDocumentFormatChange = useCallback(\n (format: NvdFormat) => {\n setSaveState((prev) => ({\n ...prev,\n document: {\n ...prev.document,\n format,\n },\n }));\n },\n [setSaveState],\n );\n\n return {\n handleSaveScene,\n handleConfirmSave,\n handleCancelSave,\n handleVolumeUrlChange,\n handleVolumeCheckboxChange,\n handleDocumentLocationChange,\n handleDocumentCheckboxChange,\n handleDocumentFormatChange,\n };\n}\n","import { useCallback, useEffect, useRef } from \"react\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport type { NiiVue } from \"@niivue/niivue\";\nimport type { FileItem } from \"@/components/file-list\";\nimport { applyLabelColormapsAfterLoad } from \"@/hooks/use-volumes\";\nimport { deploymentConfig, getFreeBrowseConfig } from \"@/lib/deployment-config\";\n\nconst LEGACY_NVD_MESSAGE =\n \"This .nvd predates the niivue document schema (it has `imageOptionsArray` \" +\n \"and no `version`). Regenerate it with scripts/migrate-nvd.py.\";\n\n/**\n * Fail legibly on a pre-niivue-mono `.nvd` instead of letting niivue report the\n * opaque \"Invalid NVD file: missing version\".\n *\n * Legacy documents are old niivue's `DocumentData`/`ExportDocumentData` shape\n * (`imageOptionsArray`, `encodedImageBlobs`, `meshesString`, …) plus\n * FreeBrowse's own top-level `meshes` array. niivue's `deserialize` rejects them\n * outright because they carry no `version`.\n *\n * Best-effort by design: for raw bytes this scans a bounded prefix rather than\n * parsing a document that may be hundreds of MB. A miss just means the user gets\n * niivue's original error, so this never needs to be exhaustive.\n */\nfunction assertNotLegacyDocument(\n data: Uint8Array | Record<string, unknown>,\n): void {\n if (data instanceof Uint8Array) {\n // Only JSON can be legacy; CBOR documents are always versioned.\n const first = data.find(\n (b) => b !== 0x20 && b !== 0x09 && b !== 0x0a && b !== 0x0d,\n );\n if (first !== 0x7b) return; // not '{'\n const prefix = new TextDecoder(\"utf-8\", { fatal: false }).decode(\n data.subarray(0, 64 * 1024),\n );\n // `encodedImageBlobs` is checked too: FreeBrowse 2.4.x writes it FIRST, so\n // in a 45 MB embedded document `imageOptionsArray` sits far past the prefix.\n // v9 documents never carry that key.\n const legacyKey =\n prefix.includes('\"imageOptionsArray\"') ||\n prefix.includes('\"encodedImageBlobs\"');\n if (legacyKey && !prefix.includes('\"version\"'))\n throw new Error(LEGACY_NVD_MESSAGE);\n return;\n }\n if (\n (\"imageOptionsArray\" in data || \"encodedImageBlobs\" in data) &&\n typeof data.version !== \"number\"\n ) {\n throw new Error(LEGACY_NVD_MESSAGE);\n }\n}\n\nexport function useFileLoading(\n nvRef: React.RefObject<NiiVue | null>,\n applyViewerOptions: () => void,\n syncViewerOptionsFromNiiVue: () => void,\n updateSurfaceDetails: () => void,\n) {\n const showUploader = useFreeBrowseStore((s) => s.showUploader);\n const setShowUploader = useFreeBrowseStore((s) => s.setShowUploader);\n const currentImageIndex = useFreeBrowseStore((s) => s.currentImageIndex);\n const setCurrentImageIndex = useFreeBrowseStore(\n (s) => s.setCurrentImageIndex,\n );\n const volumeVersion = useFreeBrowseStore((s) => s.volumeVersion);\n const incrementVolumeVersion = useFreeBrowseStore(\n (s) => s.incrementVolumeVersion,\n );\n const currentSurfaceIndex = useFreeBrowseStore((s) => s.currentSurfaceIndex);\n const setCurrentSurfaceIndex = useFreeBrowseStore(\n (s) => s.setCurrentSurfaceIndex,\n );\n const setActiveTab = useFreeBrowseStore((s) => s.setActiveTab);\n\n const serverlessMode = deploymentConfig.serverless;\n const fileInputRef = useRef<HTMLInputElement>(null);\n const surfaceFileInputRef = useRef<HTMLInputElement>(null);\n\n // Load a niivue Document (.nvd) into the scene.\n //\n // Accepts either raw bytes (from a file upload / server fetch) or an\n // already-parsed JSON object (the embedded single-file path). niivue sniffs\n // JSON vs CBOR itself (NVDocument.deserialize -> looksLikeJSON), so both\n // encodings pass through unchanged and FreeBrowse no longer transcodes. The\n // store follows via documentLoaded/volumeLoaded/meshLoaded (niivue-store-sync).\n const loadNvdData = useCallback(\n async (data: ArrayBuffer | Uint8Array | Record<string, unknown>) => {\n const nv = nvRef.current;\n if (!nv) return;\n void syncViewerOptionsFromNiiVue;\n void updateSurfaceDetails;\n\n let file: File;\n if (data instanceof ArrayBuffer || data instanceof Uint8Array) {\n const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);\n assertNotLegacyDocument(bytes);\n file = new File([bytes], \"scene.nvd\", {\n type: \"application/octet-stream\",\n });\n } else {\n // Already-parsed JSON object (embedded __EMBEDDED_NVD_DATA__ path).\n // Re-stringify: lossless, since it came from JSON text and so holds no\n // typed arrays and no non-finite numbers.\n assertNotLegacyDocument(data);\n file = new File([JSON.stringify(data)], \"scene.nvd\", {\n type: \"application/json\",\n });\n }\n\n // `fill: \"current\"`: a setting the document OMITS keeps the instance's\n // value. v9 documents are sparse (a setting equal to its default is not\n // written), and niivue's default policy would reset every omitted setting\n // to its built-in default, silently changing e.g. crosshair colour or view\n // mode on every load. A document should only change what it sets.\n await nv.loadDocument(file, { fill: \"current\" });\n // Migrated legacy documents name label palettes by `colormap` only.\n await applyLabelColormapsAfterLoad(nv);\n\n // Select a first volume / surface so the details tabs have a target. The\n // lists themselves follow via events.\n if (currentImageIndex === null && nv.volumes.length > 0) {\n setCurrentImageIndex(0);\n }\n if (currentSurfaceIndex === null && nv.meshes.length > 0) {\n setCurrentSurfaceIndex(0);\n }\n },\n [\n nvRef,\n syncViewerOptionsFromNiiVue,\n updateSurfaceDetails,\n currentImageIndex,\n currentSurfaceIndex,\n setCurrentImageIndex,\n setCurrentSurfaceIndex,\n ],\n );\n\n // Add uploaded files to NiiVue\n const handleFileUpload = useCallback(\n async (files: File[]) => {\n if (!nvRef.current) return;\n const nv = nvRef.current;\n\n if (showUploader) {\n setShowUploader(false);\n }\n\n let retries = 0;\n while (!nv.canvas && retries < 20) {\n console.log(\n `Waiting for canvas to be ready for file upload... attempt ${retries + 1}`,\n );\n await new Promise((resolve) => setTimeout(resolve, 100));\n retries++;\n }\n\n if (!nv.canvas) {\n throw new Error(\"Canvas failed to initialize after 2 seconds\");\n }\n\n const nvdFiles = files.filter(\n (file) =>\n file.name.toLowerCase().endsWith(\".nvd\") ||\n file.name.toLowerCase().endsWith(\".json\"),\n );\n\n if (nvdFiles.length > 0) {\n const nvdFile = nvdFiles[0];\n try {\n // Pass raw bytes: loadNvdData sniffs JSON vs CBOR.\n const bytes = await nvdFile.arrayBuffer();\n console.log(\"NVD file loaded:\", nvdFile.name, bytes.byteLength, \"bytes\");\n await loadNvdData(bytes);\n } catch (error) {\n console.error(\"Error loading uploaded NVD file:\", error);\n }\n } else {\n const promises = files.map(async (file) => {\n // niivue-mono: addVolume accepts a File directly (url: string | File);\n // the separate NVImage.loadFromFile step is gone.\n await nv.addVolume({ url: file, name: file.name });\n });\n\n await Promise.all(promises);\n\n applyViewerOptions();\n incrementVolumeVersion();\n\n if (currentImageIndex === null && files.length > 0) {\n setCurrentImageIndex(0);\n }\n }\n },\n [\n nvRef,\n showUploader,\n currentImageIndex,\n loadNvdData,\n applyViewerOptions,\n incrementVolumeVersion,\n setShowUploader,\n setCurrentImageIndex,\n ],\n );\n\n const handleImagingFileSelect = useCallback(\n async (file: FileItem) => {\n if (!nvRef.current) return;\n const nv = nvRef.current;\n\n try {\n if (showUploader) {\n setShowUploader(false);\n }\n\n let retries = 0;\n while (!nv.canvas && retries < 20) {\n console.log(\n `Waiting for canvas to be ready for imaging file... attempt ${retries + 1}`,\n );\n await new Promise((resolve) => setTimeout(resolve, 100));\n retries++;\n }\n\n if (!nv.canvas) {\n throw new Error(\"Canvas failed to initialize after 2 seconds\");\n }\n\n const basename = file.filename.split(\"/\").pop() || file.filename;\n const volume = {\n url: file.url,\n name: basename,\n };\n\n console.log(\"Adding imaging file to scene:\", volume);\n await nv.addVolume(volume);\n\n applyViewerOptions();\n incrementVolumeVersion();\n\n if (nv.volumes.length > 0) {\n setCurrentImageIndex(nv.volumes.length - 1);\n }\n\n console.log(\"Imaging file loaded successfully\");\n } catch (error) {\n console.error(\"Error loading imaging file:\", error);\n }\n },\n [\n nvRef,\n showUploader,\n applyViewerOptions,\n incrementVolumeVersion,\n setShowUploader,\n setCurrentImageIndex,\n ],\n );\n\n const handleNvdFileSelect = useCallback(\n async (file: FileItem) => {\n if (!nvRef.current) return;\n const nv = nvRef.current;\n\n try {\n const response = await fetch(file.url);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n // Fetch raw bytes: loadNvdData sniffs JSON vs CBOR.\n const bytes = await response.arrayBuffer();\n console.log(`NVD fetched from ${file.url}: ${bytes.byteLength} bytes`);\n\n setShowUploader(false);\n\n let retries = 0;\n while (!nv.canvas && retries < 20) {\n console.log(\n `Waiting for canvas to be ready... attempt ${retries + 1}`,\n );\n await new Promise((resolve) => setTimeout(resolve, 100));\n retries++;\n }\n\n if (!nv.canvas) {\n throw new Error(\"Canvas failed to initialize after 2 seconds\");\n }\n\n await loadNvdData(bytes);\n } catch (error) {\n console.error(\"Error loading NVD:\", error);\n }\n },\n [nvRef, loadNvdData, setShowUploader],\n );\n\n const handleFileChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n const files = Array.from(e.target.files);\n handleFileUpload(files);\n }\n e.target.value = \"\";\n },\n [handleFileUpload],\n );\n\n const handleAddMoreFiles = useCallback(() => {\n fileInputRef.current?.click();\n }, []);\n\n const handleAddSurfaceFiles = useCallback(() => {\n surfaceFileInputRef.current?.click();\n }, []);\n\n const handleSurfaceFileChange = useCallback(\n async (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0 && nvRef.current) {\n const nv = nvRef.current;\n const files = Array.from(e.target.files);\n\n if (showUploader) {\n setShowUploader(false);\n }\n\n let retries = 0;\n while (!nv.canvas && retries < 20) {\n await new Promise((resolve) => setTimeout(resolve, 100));\n retries++;\n }\n\n if (!nv.canvas) {\n console.error(\"Canvas failed to initialize for surface upload\");\n return;\n }\n\n // addMesh (not loadMeshes) — loadMeshes replaces all meshes; addMesh\n // appends. niivue-mono accepts a File directly (no blob URL), a 0-1\n // `color`, and a shader `shaderType` name. The surfaces list follows via\n // meshLoaded -> event adapter.\n try {\n for (const file of files) {\n await nv.addMesh({\n url: file,\n name: file.name,\n color: [1, 1, 0, 1] as [number, number, number, number],\n shaderType: \"phong\",\n });\n }\n } catch (error) {\n console.error(\"Error loading surface files:\", error);\n }\n\n if (currentSurfaceIndex === null && nv.meshes.length > 0) {\n setCurrentSurfaceIndex(nv.meshes.length - files.length);\n }\n }\n e.target.value = \"\";\n },\n [\n nvRef,\n showUploader,\n currentSurfaceIndex,\n setShowUploader,\n setCurrentSurfaceIndex,\n ],\n );\n\n // Re-read the volume list after a drag ends (niivue-mono uses the EventTarget\n // API rather than assignable onXxx callback props). The crosshair readout is\n // NOT handled here: `locationChange` reaches the store through the event\n // adapter (niivue-store-sync `onLocationChange`), the single path for it.\n useEffect(() => {\n const nv = nvRef.current;\n if (!nv) return;\n\n const onDragRelease = () => {\n requestAnimationFrame(() => incrementVolumeVersion());\n };\n\n nv.addEventListener(\"dragRelease\", onDragRelease);\n return () => {\n nv.removeEventListener(\"dragRelease\", onDragRelease);\n };\n }, [nvRef, incrementVolumeVersion]);\n\n // niivue's own canvas drag-and-drop: only while the drop zone is up and\n // nothing is loaded, and never when the host switched drag-and-drop off.\n const dragDropEnabled = useFreeBrowseStore((s) => s.dragDropEnabled);\n useEffect(() => {\n void volumeVersion;\n if (nvRef.current) {\n nvRef.current.isDragDropEnabled =\n dragDropEnabled &&\n showUploader &&\n (nvRef.current.volumes?.length ?? 0) === 0;\n }\n }, [nvRef, volumeVersion, showUploader, dragDropEnabled]);\n\n // If in serverless mode, switch to sceneDetails tab by default\n useEffect(() => {\n if (serverlessMode) {\n setActiveTab(\"sceneDetails\");\n }\n }, [serverlessMode, setActiveTab]);\n\n // Load NVD from URL parameter on initial load (app only: an embedding host\n // keeps its own query string, see config.readUrlParams).\n useEffect(() => {\n if (!getFreeBrowseConfig().readUrlParams) return;\n const urlParams = new URLSearchParams(window.location.search);\n const nvdParam = urlParams.get(\"nvd\");\n\n if (nvdParam) {\n console.log(\"Loading NVD from URL parameter:\", nvdParam);\n const nvdFromUrl: FileItem = {\n filename: nvdParam.split(\"/\").pop() || nvdParam,\n url: nvdParam,\n };\n handleNvdFileSelect(nvdFromUrl);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n // Load volume from URL parameter on initial load (app only, as above).\n useEffect(() => {\n if (!getFreeBrowseConfig().readUrlParams) return;\n const urlParams = new URLSearchParams(window.location.search);\n const volParam = urlParams.get(\"vol\");\n\n if (volParam) {\n console.log(\"Loading volume from URL parameter:\", volParam);\n const filename = volParam.split(\"/\").pop() || volParam;\n const fileItem: FileItem = { filename, url: volParam };\n handleImagingFileSelect(fileItem);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n // Load embedded NVD data (for self-contained HTML files)\n useEffect(() => {\n const handleEmbeddedNvd = async (event: CustomEvent) => {\n if (!event.detail || !nvRef.current) return;\n\n if (window.__EMBEDDED_NVD_LOADED__) return;\n window.__EMBEDDED_NVD_LOADED__ = true;\n\n console.log(\"Loading embedded NVD data\");\n setShowUploader(false);\n\n let retries = 0;\n while (!nvRef.current.canvas && retries < 20) {\n await new Promise((resolve) => setTimeout(resolve, 100));\n retries++;\n }\n\n if (nvRef.current.canvas) {\n await loadNvdData(event.detail);\n }\n };\n\n window.addEventListener(\n \"loadEmbeddedNvd\",\n handleEmbeddedNvd as unknown as EventListener,\n );\n\n if (window.__EMBEDDED_NVD_DATA__ && !window.__EMBEDDED_NVD_LOADED__) {\n window.dispatchEvent(\n new CustomEvent(\"loadEmbeddedNvd\", {\n detail: window.__EMBEDDED_NVD_DATA__,\n }),\n );\n }\n\n return () =>\n window.removeEventListener(\n \"loadEmbeddedNvd\",\n handleEmbeddedNvd as unknown as EventListener,\n );\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return {\n serverlessMode,\n fileInputRef,\n surfaceFileInputRef,\n loadNvdData,\n handleFileUpload,\n handleImagingFileSelect,\n handleNvdFileSelect,\n handleFileChange,\n handleAddMoreFiles,\n handleAddSurfaceFiles,\n handleSurfaceFileChange,\n };\n}\n","import { useEffect } from \"react\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport { aiUrl, deploymentConfig } from \"@/lib/deployment-config\";\n\nexport function useAiCapabilities() {\n const setAiEnabled = useFreeBrowseStore((s) => s.setAiEnabled);\n\n useEffect(() => {\n if (deploymentConfig.serverless) {\n setAiEnabled(false);\n return;\n }\n\n let cancelled = false;\n (async () => {\n try {\n const res = await fetch(aiUrl(\"model/list\"));\n if (!res.ok) {\n if (!cancelled) setAiEnabled(false);\n return;\n }\n const body = await res.json();\n if (cancelled) return;\n setAiEnabled(Array.isArray(body) && body.length > 0);\n } catch {\n if (!cancelled) setAiEnabled(false);\n }\n })();\n\n return () => {\n cancelled = true;\n };\n }, [setAiEnabled]);\n}\n","import { useCallback, useEffect } from \"react\";\nimport type { NiiVue } from \"@niivue/niivue\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport {\n requestImagingUploadConfirmation,\n requestSessionDeleteConfirmation,\n} from \"@/lib/confirmations\";\nimport { gzipUint8Array, uint8ArrayToBase64 } from \"@/lib/niivue-helpers\";\nimport type { AiSessionSummary } from \"@/store/ai-slice\";\nimport { aiUrl, dataUrl, relativeToDataRoot } from \"@/lib/deployment-config\";\n\nconst SESSION_NAME_RE = /^[A-Za-z0-9_-]+$/;\n\nasync function fetchSessionList(): Promise<AiSessionSummary[]> {\n const res = await fetch(aiUrl(\"session/list\"));\n if (!res.ok) throw new Error(`GET /ai/session/list failed: ${res.status}`);\n return res.json();\n}\n\nfunction ensureNiiName(name: string | undefined | null): string {\n if (!name) return \"volume.nii.gz\";\n if (name.endsWith(\".nii.gz\") || name.endsWith(\".nii\")) return name;\n return `${name}.nii.gz`;\n}\n\nfunction stripDataPrefix(url: string): string | null {\n return relativeToDataRoot(url);\n}\n\nasync function fetchArrayBuffer(url: string): Promise<Uint8Array> {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`GET ${url} failed: ${res.status}`);\n return new Uint8Array(await res.arrayBuffer());\n}\n\nasync function exportAndUploadDrawing(\n nv: NiiVue,\n sessionName: string,\n): Promise<string | null> {\n if (!nv.drawingVolume || nv.volumes.length === 0) return null;\n // saveVolume returns raw bytes only for an empty filename (a `.gz` name\n // downloads instead) — export raw, then gzip to match the old\n // `saveToUint8Array(\"annotations.nii.gz\", drawBitmap)` behavior.\n const raw = await nv.saveVolume({\n filename: \"\",\n isSaveDrawing: true,\n volumeByIndex: 0,\n });\n if (!(raw instanceof Uint8Array)) return null;\n const bytes = await gzipUint8Array(raw);\n const annotRel = \"annotations.nii.gz\";\n const targetPath = `ai-sessions/${sessionName}/${annotRel}`;\n const res = await fetch(dataUrl(\"nii\"), {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n filename: targetPath,\n data: uint8ArrayToBase64(bytes),\n }),\n });\n if (!res.ok)\n throw new Error(\n `annotations upload failed: ${res.status} ${res.statusText}`,\n );\n return annotRel;\n}\n\nasync function postSetAnnots(\n sessionId: string,\n annotationRelPath: string,\n): Promise<void> {\n const res = await fetch(\n aiUrl(`session/${encodeURIComponent(sessionId)}/set_annots`),\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ annotation_path: annotationRelPath }),\n },\n );\n if (!res.ok) {\n const msg = await res.text();\n throw new Error(`set_annots failed (${res.status}): ${msg}`);\n }\n}\n\nconst RESULT_FILENAME = \"result.nii.gz\";\nconst AI_RESULT_COLORMAP_NAME = \"sky_blue\";\n\nconst AI_RESULT_COLORMAP = {\n R: [0, 91, 91],\n G: [0, 163, 163],\n B: [0, 201, 201],\n A: [0, 64, 128],\n I: [0, 128, 255],\n};\n\nconst AI_PROMPT_COLORMAP = {\n R: [0, 0, 255],\n G: [0, 255, 0],\n B: [0, 0, 0],\n A: [0, 255, 255],\n I: [0, 1, 2],\n labels: [\"background\", \"positive\", \"negative\"],\n};\n\nexport function useAiSession(nvRef: React.RefObject<NiiVue | null>) {\n const aiEnabled = useFreeBrowseStore((s) => s.aiEnabled);\n const setAiSessions = useFreeBrowseStore((s) => s.setAiSessions);\n const setAiActiveSession = useFreeBrowseStore((s) => s.setAiActiveSession);\n const aiActiveSession = useFreeBrowseStore((s) => s.aiActiveSession);\n const drawingOptions = useFreeBrowseStore((s) => s.drawingOptions);\n const setDrawingOptions = useFreeBrowseStore((s) => s.setDrawingOptions);\n const setActiveTab = useFreeBrowseStore((s) => s.setActiveTab);\n const setShowUploader = useFreeBrowseStore((s) => s.setShowUploader);\n const incrementVolumeVersion = useFreeBrowseStore(\n (s) => s.incrementVolumeVersion,\n );\n\n const refreshSessions = useCallback(async () => {\n try {\n const sessions = await fetchSessionList();\n setAiSessions(sessions);\n } catch (err) {\n console.error(\"Failed to refresh AI sessions:\", err);\n }\n }, [setAiSessions]);\n\n useEffect(() => {\n if (aiEnabled) void refreshSessions();\n }, [aiEnabled, refreshSessions]);\n\n const enterDrawMode = useCallback(() => {\n const nv = nvRef.current;\n if (!nv) return;\n const penValue = drawingOptions.penValue === 2 ? 2 : 1;\n // Create the prompt drawing layer (niivue-mono no longer auto-creates it),\n // register + select the prompt colormap (index 1 = positive/green,\n // 2 = negative/red), and set pen defaults. Pen stays disabled until the\n // user picks + Positive / − Negative (the AI tab routes those through\n // use-drawing's handleDrawModeChange, which enables the pen).\n if (!nv.drawingVolume) nv.createEmptyDrawing();\n nv.addColormap(\"ai_prompt\", AI_PROMPT_COLORMAP);\n nv.drawColormap = \"ai_prompt\";\n nv.drawPenValue = penValue;\n nv.drawOpacity = 1.0;\n nv.drawIsEnabled = false;\n setDrawingOptions((prev) => ({\n ...prev,\n enabled: true,\n mode: \"none\",\n opacity: 1.0,\n penValue,\n }));\n setActiveTab(\"aiAnnotation\");\n }, [\n nvRef,\n drawingOptions.penValue,\n setDrawingOptions,\n setActiveTab,\n ]);\n\n const exitDrawModeLocal = useCallback(() => {\n const nv = nvRef.current;\n if (nv) {\n // Disable the pen and destroy the drawing layer (clickToSegment is gone in\n // niivue-mono). closeDrawing -> drawingChanged 'close' -> adapter enabled=false.\n nv.drawIsEnabled = false;\n nv.closeDrawing();\n }\n setDrawingOptions((prev) => ({ ...prev, enabled: false, mode: \"none\" }));\n setAiActiveSession(null);\n incrementVolumeVersion();\n }, [nvRef, setDrawingOptions, setAiActiveSession, incrementVolumeVersion]);\n\n const handleNewSession = useCallback(\n async (sessionName: string): Promise<void> => {\n const trimmed = sessionName.trim();\n if (!trimmed) throw new Error(\"Session name is required\");\n if (!SESSION_NAME_RE.test(trimmed))\n throw new Error(\n \"Session name may only contain letters, digits, underscores, and hyphens\",\n );\n\n const nv = nvRef.current;\n if (!nv || nv.volumes.length === 0)\n throw new Error(\"Load a volume before creating a session\");\n\n const volume = nv.volumes[0];\n const backendRelPath =\n typeof volume.url === \"string\" ? stripDataPrefix(volume.url) : null;\n const needsUpload = !backendRelPath;\n\n if (needsUpload) {\n const ok = await requestImagingUploadConfirmation();\n if (!ok) throw new Error(\"Upload cancelled\");\n }\n\n const newRes = await fetch(aiUrl(\"session/new\"), {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ session_name: trimmed }),\n });\n if (!newRes.ok) {\n const msg = await newRes.text();\n throw new Error(`Create session failed (${newRes.status}): ${msg}`);\n }\n const { session_id, session_name } = await newRes.json();\n\n let volumePathForSetVolume: string;\n if (needsUpload) {\n const basename = ensureNiiName(volume.name);\n const targetPath = `ai-sessions/${trimmed}/${basename}`;\n // Export the loaded volume's voxels (raw) and gzip for a .nii.gz upload\n // (was volume.saveToUint8Array(basename)).\n const raw = await nv.saveVolume({ filename: \"\", volumeByIndex: 0 });\n const uint8Array =\n raw instanceof Uint8Array\n ? await gzipUint8Array(raw)\n : new Uint8Array();\n const base64Data = uint8ArrayToBase64(uint8Array);\n\n const uploadRes = await fetch(dataUrl(\"nii\"), {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ filename: targetPath, data: base64Data }),\n });\n if (!uploadRes.ok)\n throw new Error(\n `Volume upload failed: ${uploadRes.status} ${uploadRes.statusText}`,\n );\n\n volumePathForSetVolume = targetPath;\n } else {\n volumePathForSetVolume = backendRelPath;\n }\n\n const setVolRes = await fetch(\n aiUrl(`session/${encodeURIComponent(session_id)}/set_volume`),\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ volume_path: volumePathForSetVolume }),\n },\n );\n if (!setVolRes.ok) {\n const msg = await setVolRes.text();\n throw new Error(`set_volume failed (${setVolRes.status}): ${msg}`);\n }\n\n setAiActiveSession({ session_id, session_name });\n enterDrawMode();\n await refreshSessions();\n },\n [nvRef, setAiActiveSession, enterDrawMode, refreshSessions],\n );\n\n const handleLoadSession = useCallback(\n async (sessionId: string): Promise<void> => {\n const nv = nvRef.current;\n if (!nv) throw new Error(\"Viewer not ready\");\n\n const summary = useFreeBrowseStore\n .getState()\n .aiSessions.find((s) => s.session_id === sessionId);\n if (!summary) throw new Error(`Unknown session: ${sessionId}`);\n if (!summary.volume_path)\n throw new Error(\"Session has no volume set; cannot load\");\n\n const volumeUrl =\n summary.volume_path_root === \"session\"\n ? dataUrl(`ai-sessions/${summary.session_name}/${summary.volume_path}`)\n : dataUrl(summary.volume_path);\n\n // Ensure the niivue canvas is mounted + attached (first-load-in-session path).\n // Same trick use-file-loading.ts:196 uses before addVolumeFromUrl.\n setShowUploader(false);\n\n // Atomic scene swap — niivue manages the teardown internally.\n await nv.loadVolumes([{ url: volumeUrl }]);\n incrementVolumeVersion();\n\n if (summary.annotation_path) {\n try {\n const annotUrl = dataUrl(\n `ai-sessions/${summary.session_name}/${summary.annotation_path}`,\n );\n const bytes = await fetchArrayBuffer(annotUrl);\n // Load the annotation mask as the drawing layer. loadDrawing takes a\n // File|string and gunzips by the .gz name; it hard-requires uint8\n // (annotation masks are uint8). (was niftiArray2NVImage + loadDrawing.)\n const file = new File([bytes], summary.annotation_path);\n const ok = await nv.loadDrawing(file);\n if (!ok)\n console.warn(\n \"loadDrawing returned false — annotation dimensions may not match the volume\",\n );\n } catch (err) {\n console.error(\"Failed to load existing annotations:\", err);\n }\n }\n\n setAiActiveSession({\n session_id: summary.session_id,\n session_name: summary.session_name,\n });\n enterDrawMode();\n },\n [\n nvRef,\n setShowUploader,\n incrementVolumeVersion,\n setAiActiveSession,\n enterDrawMode,\n ],\n );\n\n const handleRunSegmentation = useCallback(\n async (mlId: string, labelValue: number): Promise<void> => {\n const nv = nvRef.current;\n const active = useFreeBrowseStore.getState().aiActiveSession;\n if (!nv || !active || nv.volumes.length === 0)\n throw new Error(\"No active session or volume\");\n\n const annotRel = await exportAndUploadDrawing(nv, active.session_name);\n if (!annotRel) throw new Error(\"No drawing layer to send as annotations\");\n\n await postSetAnnots(active.session_id, annotRel);\n\n const inferRes = await fetch(\n aiUrl(\n `session/${encodeURIComponent(active.session_id)}/infer/${encodeURIComponent(mlId)}`,\n ),\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ label_value: labelValue }),\n },\n );\n if (!inferRes.ok) {\n const msg = await inferRes.text();\n throw new Error(`inference failed (${inferRes.status}): ${msg}`);\n }\n await inferRes.json();\n\n // Replace any prior result overlay before loading the fresh one.\n const lastIdx = nv.volumes.length - 1;\n if (lastIdx > 0) {\n const last = nv.volumes[lastIdx];\n const lastName = typeof last?.name === \"string\" ? last.name : \"\";\n const lastUrl = typeof last?.url === \"string\" ? last.url : \"\";\n if (\n lastName === RESULT_FILENAME ||\n lastUrl.includes(`/${RESULT_FILENAME}`)\n ) {\n await nv.removeVolume(lastIdx); // was removeVolumeByIndex\n }\n }\n\n const resultUrl =\n dataUrl(`ai-sessions/${active.session_name}/${RESULT_FILENAME}`) +\n `?t=${Date.now()}`;\n nv.addColormap(AI_RESULT_COLORMAP_NAME, AI_RESULT_COLORMAP);\n await nv.addVolume({\n url: resultUrl,\n name: RESULT_FILENAME,\n colormap: AI_RESULT_COLORMAP_NAME,\n opacity: 0.5,\n });\n incrementVolumeVersion();\n },\n [nvRef, incrementVolumeVersion],\n );\n\n const handleExitAndSaveSession = useCallback(async (): Promise<void> => {\n const nv = nvRef.current;\n const active = useFreeBrowseStore.getState().aiActiveSession;\n if (nv && active) {\n try {\n const annotRel = await exportAndUploadDrawing(nv, active.session_name);\n if (annotRel) await postSetAnnots(active.session_id, annotRel);\n } catch (err) {\n console.error(\"Failed to save annotations on exit:\", err);\n }\n }\n exitDrawModeLocal();\n }, [nvRef, exitDrawModeLocal]);\n\n const handleExitAndDeleteSession = useCallback(async (): Promise<void> => {\n if (!aiActiveSession) return;\n const ok = await requestSessionDeleteConfirmation();\n if (!ok) return;\n\n const id = aiActiveSession.session_id;\n try {\n const res = await fetch(aiUrl(`session/${encodeURIComponent(id)}`), {\n method: \"DELETE\",\n });\n if (!res.ok) {\n const msg = await res.text();\n console.error(`DELETE session failed (${res.status}): ${msg}`);\n }\n } catch (err) {\n console.error(\"DELETE session error:\", err);\n }\n\n exitDrawModeLocal();\n await refreshSessions();\n }, [aiActiveSession, exitDrawModeLocal, refreshSessions]);\n\n return {\n refreshSessions,\n handleNewSession,\n handleLoadSession,\n handleRunSegmentation,\n handleExitAndSaveSession,\n handleExitAndDeleteSession,\n };\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Concatenates two arrays faster than the array spread operator.\n */\nconst concatArrays = (array1, array2) => {\n // Pre-allocate for better V8 optimization\n const combinedArray = new Array(array1.length + array2.length);\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i];\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i];\n }\n return combinedArray;\n};\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (classGroupId, validator) => ({\n classGroupId,\n validator\n});\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (nextPart = new Map(), validators = null, classGroupId) => ({\n nextPart,\n validators,\n classGroupId\n});\nconst CLASS_PART_SEPARATOR = '-';\nconst EMPTY_CONFLICTS = [];\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className);\n }\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0;\n return getGroupRecursive(classParts, startIndex, classMap);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId];\n const baseConflicts = conflictingClassGroups[classGroupId];\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts);\n }\n // Only modifier conflicts\n return modifierConflicts;\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS;\n }\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, startIndex, classPartObject) => {\n const classPathsLength = classParts.length - startIndex;\n if (classPathsLength === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[startIndex];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);\n if (result) return result;\n }\n const validators = classPartObject.validators;\n if (validators === null) {\n return undefined;\n }\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);\n const validatorsLength = validators.length;\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i];\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId;\n }\n }\n return undefined;\n};\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = className => className.slice(1, -1).indexOf(':') === -1 ? undefined : (() => {\n const content = className.slice(1, -1);\n const colonIndex = content.indexOf(':');\n const property = content.slice(0, colonIndex);\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined;\n})();\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n return processClassGroups(classGroups, theme);\n};\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (classGroups, theme) => {\n const classMap = createClassPartObject();\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId];\n processClassesRecursively(group, classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n const len = classGroup.length;\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i];\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme);\n }\n};\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId);\n return;\n }\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);\n return;\n }\n processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);\n};\nconst processStringDefinition = (classDefinition, classPartObject, classGroupId) => {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n};\nconst processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n if (classPartObject.validators === null) {\n classPartObject.validators = [];\n }\n classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));\n};\nconst processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n const entries = Object.entries(classDefinition);\n const len = entries.length;\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i];\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);\n }\n};\nconst getPart = (classPartObject, path) => {\n let current = classPartObject;\n const parts = path.split(CLASS_PART_SEPARATOR);\n const len = parts.length;\n for (let i = 0; i < len; i++) {\n const part = parts[i];\n let next = current.nextPart.get(part);\n if (!next) {\n next = createClassPartObject();\n current.nextPart.set(part, next);\n }\n current = next;\n }\n return current;\n};\n// Type guard maintains monomorphic check\nconst isThemeGetter = func => 'isThemeGetter' in func && func.isThemeGetter === true;\n\n// LRU cache implementation using plain objects for simplicity\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = Object.create(null);\n let previousCache = Object.create(null);\n const update = (key, value) => {\n cache[key] = value;\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = Object.create(null);\n }\n };\n return {\n get(key) {\n let value = cache[key];\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value;\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst EMPTY_MODIFIERS = [];\n// Pre-allocated result object shape for consistency\nconst createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal\n});\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n // Use simple array with push for better performance\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n const len = className.length;\n for (let index = 0; index < len; index++) {\n const currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + 1;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') bracketDepth++;else if (currentCharacter === ']') bracketDepth--;else if (currentCharacter === '(') parenDepth++;else if (currentCharacter === ')') parenDepth--;\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier;\n let hasImportantModifier = false;\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1);\n hasImportantModifier = true;\n } else if (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(1);\n hasImportantModifier = true;\n }\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true);\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map();\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index); // High weights for sensitive mods\n });\n return modifiers => {\n const result = [];\n let currentSegment = [];\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i];\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '[';\n const isOrderSensitive = modifierWeights.has(modifier);\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n currentSegment = [];\n }\n result.push(modifier);\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier);\n }\n }\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n }\n return result;\n };\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n // Fast path: skip sorting for empty or single modifier\n const variantModifier = modifiers.length === 0 ? '' : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.indexOf(classId) > -1) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nconst twJoin = (...classLists) => {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < classLists.length) {\n if (argument = classLists[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nconst toValue = mix => {\n // Fast path for strings\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nconst createTailwindMerge = (createConfigFirst, ...createConfigRest) => {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall;\n const initTailwindMerge = classList => {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n };\n const tailwindMerge = classList => {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n };\n functionToCall = initTailwindMerge;\n return (...args) => functionToCall(twJoin(...args));\n};\nconst fallbackThemeArr = [];\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || fallbackThemeArr;\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\",\n key: \"hh9hay\"\n }\n ],\n [\"path\", { d: \"m3.3 7 8.7 5 8.7-5\", key: \"g66t2b\" }],\n [\"path\", { d: \"M12 22V12\", key: \"d0xqtd\" }]\n];\nconst Box = createLucideIcon(\"box\", __iconNode);\n\nexport { __iconNode, Box as default };\n//# sourceMappingURL=box.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z\",\n key: \"l5xja\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z\",\n key: \"ep3f8r\"\n }\n ],\n [\"path\", { d: \"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4\", key: \"1p4c4q\" }],\n [\"path\", { d: \"M17.599 6.5a3 3 0 0 0 .399-1.375\", key: \"tmeiqw\" }],\n [\"path\", { d: \"M6.003 5.125A3 3 0 0 0 6.401 6.5\", key: \"105sqy\" }],\n [\"path\", { d: \"M3.477 10.896a4 4 0 0 1 .585-.396\", key: \"ql3yin\" }],\n [\"path\", { d: \"M19.938 10.5a4 4 0 0 1 .585.396\", key: \"1qfode\" }],\n [\"path\", { d: \"M6 18a4 4 0 0 1-1.967-.516\", key: \"2e4loj\" }],\n [\"path\", { d: \"M19.967 17.484A4 4 0 0 1 18 18\", key: \"159ez6\" }]\n];\nconst Brain = createLucideIcon(\"brain\", __iconNode);\n\nexport { __iconNode, Brain as default };\n//# sourceMappingURL=brain.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]];\nconst Check = createLucideIcon(\"check\", __iconNode);\n\nexport { __iconNode, Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]];\nconst ChevronUp = createLucideIcon(\"chevron-up\", __iconNode);\n\nexport { __iconNode, ChevronUp as default };\n//# sourceMappingURL=chevron-up.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"1\", key: \"41hilf\" }]\n];\nconst CircleDot = createLucideIcon(\"circle-dot\", __iconNode);\n\nexport { __iconNode, CircleDot as default };\n//# sourceMappingURL=circle-dot.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]];\nconst Circle = createLucideIcon(\"circle\", __iconNode);\n\nexport { __iconNode, Circle as default };\n//# sourceMappingURL=circle.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }],\n [\"path\", { d: \"M15 3v18\", key: \"14nvp0\" }]\n];\nconst Columns3 = createLucideIcon(\"columns-3\", __iconNode);\n\nexport { __iconNode, Columns3 as default };\n//# sourceMappingURL=columns-3.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 18a6 6 0 0 0 0-12v12z\", key: \"j4l70d\" }]\n];\nconst Contrast = createLucideIcon(\"contrast\", __iconNode);\n\nexport { __iconNode, Contrast as default };\n//# sourceMappingURL=contrast.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"22\", x2: \"18\", y1: \"12\", y2: \"12\", key: \"l9bcsi\" }],\n [\"line\", { x1: \"6\", x2: \"2\", y1: \"12\", y2: \"12\", key: \"13hhkx\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"6\", y2: \"2\", key: \"10w3f3\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"22\", y2: \"18\", key: \"15g9kq\" }]\n];\nconst Crosshair = createLucideIcon(\"crosshair\", __iconNode);\n\nexport { __iconNode, Crosshair as default };\n//# sourceMappingURL=crosshair.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"ellipse\", { cx: \"12\", cy: \"5\", rx: \"9\", ry: \"3\", key: \"msslwz\" }],\n [\"path\", { d: \"M3 5V19A9 3 0 0 0 21 19V5\", key: \"1wlel7\" }],\n [\"path\", { d: \"M3 12A9 3 0 0 0 21 12\", key: \"mv7ke4\" }]\n];\nconst Database = createLucideIcon(\"database\", __iconNode);\n\nexport { __iconNode, Database as default };\n//# sourceMappingURL=database.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 15V3\", key: \"m9g1x1\" }],\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n [\"path\", { d: \"m7 10 5 5 5-5\", key: \"brsn70\" }]\n];\nconst Download = createLucideIcon(\"download\", __iconNode);\n\nexport { __iconNode, Download as default };\n//# sourceMappingURL=download.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n];\nconst EyeOff = createLucideIcon(\"eye-off\", __iconNode);\n\nexport { __iconNode, EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\",\n key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst Eye = createLucideIcon(\"eye\", __iconNode);\n\nexport { __iconNode, Eye as default };\n//# sourceMappingURL=eye.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n];\nconst FileText = createLucideIcon(\"file-text\", __iconNode);\n\nexport { __iconNode, FileText as default };\n//# sourceMappingURL=file-text.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }]\n];\nconst File = createLucideIcon(\"file\", __iconNode);\n\nexport { __iconNode, File as default };\n//# sourceMappingURL=file.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3v18\", key: \"108xh3\" }],\n [\"path\", { d: \"M3 12h18\", key: \"1i2n21\" }],\n [\"rect\", { x: \"3\", y: \"3\", width: \"18\", height: \"18\", rx: \"2\", key: \"h1oib\" }]\n];\nconst Grid2x2 = createLucideIcon(\"grid-2x2\", __iconNode);\n\nexport { __iconNode, Grid2x2 as default };\n//# sourceMappingURL=grid-2x2.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", ry: \"2\", key: \"1m3agn\" }],\n [\"circle\", { cx: \"9\", cy: \"9\", r: \"2\", key: \"af1f0g\" }],\n [\"path\", { d: \"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\", key: \"1xmnt7\" }]\n];\nconst Image = createLucideIcon(\"image\", __iconNode);\n\nexport { __iconNode, Image as default };\n//# sourceMappingURL=image.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m16 17 5-5-5-5\", key: \"1bji2h\" }],\n [\"path\", { d: \"M21 12H9\", key: \"dn1m92\" }],\n [\"path\", { d: \"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\", key: \"1uf3rs\" }]\n];\nconst LogOut = createLucideIcon(\"log-out\", __iconNode);\n\nexport { __iconNode, LogOut as default };\n//# sourceMappingURL=log-out.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M15 3h6v6\", key: \"1q9fwt\" }],\n [\"path\", { d: \"m21 3-7 7\", key: \"1l2asr\" }],\n [\"path\", { d: \"m3 21 7-7\", key: \"tjx5ai\" }],\n [\"path\", { d: \"M9 21H3v-6\", key: \"wtvkvv\" }]\n];\nconst Maximize2 = createLucideIcon(\"maximize-2\", __iconNode);\n\nexport { __iconNode, Maximize2 as default };\n//# sourceMappingURL=maximize-2.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\", key: \"a7tn18\" }]\n];\nconst Moon = createLucideIcon(\"moon\", __iconNode);\n\nexport { __iconNode, Moon as default };\n//# sourceMappingURL=moon.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12.586 12.586 19 19\", key: \"ea5xo7\" }],\n [\n \"path\",\n {\n d: \"M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z\",\n key: \"277e5u\"\n }\n ]\n];\nconst MousePointer = createLucideIcon(\"mouse-pointer\", __iconNode);\n\nexport { __iconNode, MousePointer as default };\n//# sourceMappingURL=mouse-pointer.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 2v20\", key: \"t6zp3m\" }],\n [\"path\", { d: \"m15 19-3 3-3-3\", key: \"11eu04\" }],\n [\"path\", { d: \"m19 9 3 3-3 3\", key: \"1mg7y2\" }],\n [\"path\", { d: \"M2 12h20\", key: \"9i4pu4\" }],\n [\"path\", { d: \"m5 9-3 3 3 3\", key: \"j64kie\" }],\n [\"path\", { d: \"m9 5 3-3 3 3\", key: \"l8vdw6\" }]\n];\nconst Move = createLucideIcon(\"move\", __iconNode);\n\nexport { __iconNode, Move as default };\n//# sourceMappingURL=move.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M3 15h18\", key: \"5xshup\" }]\n];\nconst PanelBottom = createLucideIcon(\"panel-bottom\", __iconNode);\n\nexport { __iconNode, PanelBottom as default };\n//# sourceMappingURL=panel-bottom.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M9 3v18\", key: \"fh3hqa\" }]\n];\nconst PanelLeft = createLucideIcon(\"panel-left\", __iconNode);\n\nexport { __iconNode, PanelLeft as default };\n//# sourceMappingURL=panel-left.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }],\n [\"path\", { d: \"M15 3v18\", key: \"14nvp0\" }]\n];\nconst PanelRight = createLucideIcon(\"panel-right\", __iconNode);\n\nexport { __iconNode, PanelRight as default };\n//# sourceMappingURL=panel-right.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\",\n key: \"1a8usu\"\n }\n ],\n [\"path\", { d: \"m15 5 4 4\", key: \"1mk7zo\" }]\n];\nconst Pencil = createLucideIcon(\"pencil\", __iconNode);\n\nexport { __iconNode, Pencil as default };\n//# sourceMappingURL=pencil.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }]\n];\nconst RotateCcw = createLucideIcon(\"rotate-ccw\", __iconNode);\n\nexport { __iconNode, RotateCcw as default };\n//# sourceMappingURL=rotate-ccw.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z\",\n key: \"icamh8\"\n }\n ],\n [\"path\", { d: \"m14.5 12.5 2-2\", key: \"inckbg\" }],\n [\"path\", { d: \"m11.5 9.5 2-2\", key: \"fmmyf7\" }],\n [\"path\", { d: \"m8.5 6.5 2-2\", key: \"vc6u1g\" }],\n [\"path\", { d: \"m17.5 15.5 2-2\", key: \"wo5hmg\" }]\n];\nconst Ruler = createLucideIcon(\"ruler\", __iconNode);\n\nexport { __iconNode, Ruler as default };\n//# sourceMappingURL=ruler.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\",\n key: \"1c8476\"\n }\n ],\n [\"path\", { d: \"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7\", key: \"1ydtos\" }],\n [\"path\", { d: \"M7 3v4a1 1 0 0 0 1 1h7\", key: \"t51u73\" }]\n];\nconst Save = createLucideIcon(\"save\", __iconNode);\n\nexport { __iconNode, Save as default };\n//# sourceMappingURL=save.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\",\n key: \"1qme2f\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst Settings = createLucideIcon(\"settings\", __iconNode);\n\nexport { __iconNode, Settings as default };\n//# sourceMappingURL=settings.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z\",\n key: \"4pj2yx\"\n }\n ],\n [\"path\", { d: \"M20 3v4\", key: \"1olli1\" }],\n [\"path\", { d: \"M22 5h-4\", key: \"1gvqau\" }],\n [\"path\", { d: \"M4 17v2\", key: \"vumght\" }],\n [\"path\", { d: \"M5 18H3\", key: \"zchphs\" }]\n];\nconst Sparkles = createLucideIcon(\"sparkles\", __iconNode);\n\nexport { __iconNode, Sparkles as default };\n//# sourceMappingURL=sparkles.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\", key: \"1m0v6g\" }],\n [\n \"path\",\n {\n d: \"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z\",\n key: \"ohrbg2\"\n }\n ]\n];\nconst SquarePen = createLucideIcon(\"square-pen\", __iconNode);\n\nexport { __iconNode, SquarePen as default };\n//# sourceMappingURL=square-pen.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", key: \"afitv7\" }]\n];\nconst Square = createLucideIcon(\"square\", __iconNode);\n\nexport { __iconNode, Square as default };\n//# sourceMappingURL=square.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"4\", key: \"4exip2\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"m4.93 4.93 1.41 1.41\", key: \"149t6j\" }],\n [\"path\", { d: \"m17.66 17.66 1.41 1.41\", key: \"ptbguv\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"m6.34 17.66-1.41 1.41\", key: \"1m8zz5\" }],\n [\"path\", { d: \"m19.07 4.93-1.41 1.41\", key: \"1shlcs\" }]\n];\nconst Sun = createLucideIcon(\"sun\", __iconNode);\n\nexport { __iconNode, Sun as default };\n//# sourceMappingURL=sun.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 6h18\", key: \"d0wm0j\" }],\n [\"path\", { d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\", key: \"4alrt4\" }],\n [\"path\", { d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\", key: \"v07s0e\" }],\n [\"line\", { x1: \"10\", x2: \"10\", y1: \"11\", y2: \"17\", key: \"1uufr5\" }],\n [\"line\", { x1: \"14\", x2: \"14\", y1: \"11\", y2: \"17\", key: \"xtxkd\" }]\n];\nconst Trash2 = createLucideIcon(\"trash-2\", __iconNode);\n\nexport { __iconNode, Trash2 as default };\n//# sourceMappingURL=trash-2.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 7v6h6\", key: \"1v2h90\" }],\n [\"path\", { d: \"M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13\", key: \"1r6uu6\" }]\n];\nconst Undo = createLucideIcon(\"undo\", __iconNode);\n\nexport { __iconNode, Undo as default };\n//# sourceMappingURL=undo.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3v12\", key: \"1x0j5s\" }],\n [\"path\", { d: \"m17 8-5-5-5 5\", key: \"7q97r8\" }],\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }]\n];\nconst Upload = createLucideIcon(\"upload\", __iconNode);\n\nexport { __iconNode, Upload as default };\n//# sourceMappingURL=upload.js.map\n","/**\n * @license lucide-react v0.511.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nvar use = React[\" use \".trim().toString()];\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\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// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","// packages/react/context/src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/collection-legacy.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\n\n// src/collection.tsx\nimport React2 from \"react\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createSlot as createSlot2 } from \"@radix-ui/react-slot\";\n\n// src/ordered-dictionary.ts\nvar __instanciated = /* @__PURE__ */ new WeakMap();\nvar OrderedDict = class _OrderedDict extends Map {\n #keys;\n constructor(entries) {\n super(entries);\n this.#keys = [...super.keys()];\n __instanciated.set(this, true);\n }\n set(key, value) {\n if (__instanciated.get(this)) {\n if (this.has(key)) {\n this.#keys[this.#keys.indexOf(key)] = key;\n } else {\n this.#keys.push(key);\n }\n }\n super.set(key, value);\n return this;\n }\n insert(index, key, value) {\n const has = this.has(key);\n const length = this.#keys.length;\n const relativeIndex = toSafeInteger(index);\n let actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n const safeIndex = actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n if (safeIndex === this.size || has && safeIndex === this.size - 1 || safeIndex === -1) {\n this.set(key, value);\n return this;\n }\n const size = this.size + (has ? 0 : 1);\n if (relativeIndex < 0) {\n actualIndex++;\n }\n const keys = [...this.#keys];\n let nextValue;\n let shouldSkip = false;\n for (let i = actualIndex; i < size; i++) {\n if (actualIndex === i) {\n let nextKey = keys[i];\n if (keys[i] === key) {\n nextKey = keys[i + 1];\n }\n if (has) {\n this.delete(key);\n }\n nextValue = this.get(nextKey);\n this.set(key, value);\n } else {\n if (!shouldSkip && keys[i - 1] === key) {\n shouldSkip = true;\n }\n const currentKey = keys[shouldSkip ? i : i - 1];\n const currentValue = nextValue;\n nextValue = this.get(currentKey);\n this.delete(currentKey);\n this.set(currentKey, currentValue);\n }\n }\n return this;\n }\n with(index, key, value) {\n const copy = new _OrderedDict(this);\n copy.insert(index, key, value);\n return copy;\n }\n before(key) {\n const index = this.#keys.indexOf(key) - 1;\n if (index < 0) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position before the given key.\n */\n setBefore(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index, newKey, value);\n }\n after(key) {\n let index = this.#keys.indexOf(key);\n index = index === -1 || index === this.size - 1 ? -1 : index + 1;\n if (index === -1) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position after the given key.\n */\n setAfter(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index + 1, newKey, value);\n }\n first() {\n return this.entryAt(0);\n }\n last() {\n return this.entryAt(-1);\n }\n clear() {\n this.#keys = [];\n return super.clear();\n }\n delete(key) {\n const deleted = super.delete(key);\n if (deleted) {\n this.#keys.splice(this.#keys.indexOf(key), 1);\n }\n return deleted;\n }\n deleteAt(index) {\n const key = this.keyAt(index);\n if (key !== void 0) {\n return this.delete(key);\n }\n return false;\n }\n at(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return this.get(key);\n }\n }\n entryAt(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return [key, this.get(key)];\n }\n }\n indexOf(key) {\n return this.#keys.indexOf(key);\n }\n keyAt(index) {\n return at(this.#keys, index);\n }\n from(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.at(dest);\n }\n keyFrom(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.keyAt(dest);\n }\n find(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return entry;\n }\n index++;\n }\n return void 0;\n }\n findIndex(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n filter(predicate, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n entries.push(entry);\n }\n index++;\n }\n return new _OrderedDict(entries);\n }\n map(callbackfn, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n entries.push([entry[0], Reflect.apply(callbackfn, thisArg, [entry, index, this])]);\n index++;\n }\n return new _OrderedDict(entries);\n }\n reduce(...args) {\n const [callbackfn, initialValue] = args;\n let index = 0;\n let accumulator = initialValue ?? this.at(0);\n for (const entry of this) {\n if (index === 0 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n index++;\n }\n return accumulator;\n }\n reduceRight(...args) {\n const [callbackfn, initialValue] = args;\n let accumulator = initialValue ?? this.at(-1);\n for (let index = this.size - 1; index >= 0; index--) {\n const entry = this.at(index);\n if (index === this.size - 1 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n }\n return accumulator;\n }\n toSorted(compareFn) {\n const entries = [...this.entries()].sort(compareFn);\n return new _OrderedDict(entries);\n }\n toReversed() {\n const reversed = new _OrderedDict();\n for (let index = this.size - 1; index >= 0; index--) {\n const key = this.keyAt(index);\n const element = this.get(key);\n reversed.set(key, element);\n }\n return reversed;\n }\n toSpliced(...args) {\n const entries = [...this.entries()];\n entries.splice(...args);\n return new _OrderedDict(entries);\n }\n slice(start, end) {\n const result = new _OrderedDict();\n let stop = this.size - 1;\n if (start === void 0) {\n return result;\n }\n if (start < 0) {\n start = start + this.size;\n }\n if (end !== void 0 && end > 0) {\n stop = end - 1;\n }\n for (let index = start; index <= stop; index++) {\n const key = this.keyAt(index);\n const element = this.get(key);\n result.set(key, element);\n }\n return result;\n }\n every(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (!Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return false;\n }\n index++;\n }\n return true;\n }\n some(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return true;\n }\n index++;\n }\n return false;\n }\n};\nfunction at(array, index) {\n if (\"at\" in Array.prototype) {\n return Array.prototype.at.call(array, index);\n }\n const actualIndex = toSafeIndex(array, index);\n return actualIndex === -1 ? void 0 : array[actualIndex];\n}\nfunction toSafeIndex(array, index) {\n const length = array.length;\n const relativeIndex = toSafeInteger(index);\n const actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n return actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n}\nfunction toSafeInteger(number) {\n return number !== number || number === 0 ? 0 : Math.trunc(number);\n}\n\n// src/collection.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nfunction createCollection2(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope2(PROVIDER_NAME);\n const [CollectionContextProvider, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n {\n collectionElement: null,\n collectionRef: { current: null },\n collectionRefObject: { current: null },\n itemMap: new OrderedDict(),\n setItemMap: () => void 0\n }\n );\n const CollectionProvider = ({ state, ...props }) => {\n return state ? /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state }) : /* @__PURE__ */ jsx2(CollectionInit, { ...props });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const CollectionInit = (props) => {\n const state = useInitCollection();\n return /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state });\n };\n CollectionInit.displayName = PROVIDER_NAME + \"Init\";\n const CollectionProviderImpl = (props) => {\n const { scope, children, state } = props;\n const ref = React2.useRef(null);\n const [collectionElement, setCollectionElement] = React2.useState(\n null\n );\n const composeRefs = useComposedRefs2(ref, setCollectionElement);\n const [itemMap, setItemMap] = state;\n React2.useEffect(() => {\n if (!collectionElement) return;\n const observer = getChildListObserver(() => {\n });\n observer.observe(collectionElement, {\n childList: true,\n subtree: true\n });\n return () => {\n observer.disconnect();\n };\n }, [collectionElement]);\n return /* @__PURE__ */ jsx2(\n CollectionContextProvider,\n {\n scope,\n itemMap,\n setItemMap,\n collectionRef: composeRefs,\n collectionRefObject: ref,\n collectionElement,\n children\n }\n );\n };\n CollectionProviderImpl.displayName = PROVIDER_NAME + \"Impl\";\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot2(COLLECTION_SLOT_NAME);\n const CollectionSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs2(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx2(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot2(ITEM_SLOT_NAME);\n const CollectionItemSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React2.useRef(null);\n const [element, setElement] = React2.useState(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref, setElement);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n const { setItemMap } = context;\n const itemDataRef = React2.useRef(itemData);\n if (!shallowEqual(itemDataRef.current, itemData)) {\n itemDataRef.current = itemData;\n }\n const memoizedItemData = itemDataRef.current;\n React2.useEffect(() => {\n const itemData2 = memoizedItemData;\n setItemMap((map) => {\n if (!element) {\n return map;\n }\n if (!map.has(element)) {\n map.set(element, { ...itemData2, element });\n return map.toSorted(sortByDocumentPosition);\n }\n return map.set(element, { ...itemData2, element }).toSorted(sortByDocumentPosition);\n });\n return () => {\n setItemMap((map) => {\n if (!element || !map.has(element)) {\n return map;\n }\n map.delete(element);\n return new OrderedDict(map);\n });\n };\n }, [element, memoizedItemData, setItemMap]);\n return /* @__PURE__ */ jsx2(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useInitCollection() {\n return React2.useState(new OrderedDict());\n }\n function useCollection(scope) {\n const { itemMap } = useCollectionContext(name + \"CollectionConsumer\", scope);\n return itemMap;\n }\n const functions = {\n createCollectionScope,\n useCollection,\n useInitCollection\n };\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n functions\n ];\n}\nfunction shallowEqual(a, b) {\n if (a === b) return true;\n if (typeof a !== \"object\" || typeof b !== \"object\") return false;\n if (a == null || b == null) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\nfunction isElementPreceding(a, b) {\n return !!(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\nfunction sortByDocumentPosition(a, b) {\n return !a[1].element || !b[1].element ? 0 : isElementPreceding(a[1].element, b[1].element) ? -1 : 1;\n}\nfunction getChildListObserver(callback) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === \"childList\") {\n callback();\n return;\n }\n }\n });\n return observer;\n}\nexport {\n createCollection,\n createCollection2 as unstable_createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\" useId \".trim().toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n },\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (true) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (true) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/toggle.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Toggle\";\nvar Toggle = React.forwardRef((props, forwardedRef) => {\n const { pressed: pressedProp, defaultPressed, onPressedChange, ...buttonProps } = props;\n const [pressed, setPressed] = useControllableState({\n prop: pressedProp,\n onChange: onPressedChange,\n defaultProp: defaultPressed ?? false,\n caller: NAME\n });\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-pressed\": pressed,\n \"data-state\": pressed ? \"on\" : \"off\",\n \"data-disabled\": props.disabled ? \"\" : void 0,\n ...buttonProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => {\n if (!props.disabled) {\n setPressed(!pressed);\n }\n })\n }\n );\n});\nToggle.displayName = NAME;\nvar Root = Toggle;\nexport {\n Root,\n Toggle\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/toggle-group.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Toggle } from \"@radix-ui/react-toggle\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TOGGLE_GROUP_NAME = \"ToggleGroup\";\nvar [createToggleGroupContext, createToggleGroupScope] = createContextScope(TOGGLE_GROUP_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar ToggleGroup = React.forwardRef((props, forwardedRef) => {\n const { type, ...toggleGroupProps } = props;\n if (type === \"single\") {\n const singleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplSingle, { ...singleProps, ref: forwardedRef });\n }\n if (type === \"multiple\") {\n const multipleProps = toggleGroupProps;\n return /* @__PURE__ */ jsx(ToggleGroupImplMultiple, { ...multipleProps, ref: forwardedRef });\n }\n throw new Error(`Missing prop \\`type\\` expected on \\`${TOGGLE_GROUP_NAME}\\``);\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupValueProvider, useToggleGroupValueContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImplSingle = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? \"\",\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"single\",\n value: React.useMemo(() => value ? [value] : [], [value]),\n onItemActivate: setValue,\n onItemDeactivate: React.useCallback(() => setValue(\"\"), [setValue]),\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupSingleProps, ref: forwardedRef })\n }\n );\n});\nvar ToggleGroupImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...toggleGroupMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME\n });\n const handleButtonActivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleButtonDeactivate = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n ToggleGroupValueProvider,\n {\n scope: props.__scopeToggleGroup,\n type: \"multiple\",\n value,\n onItemActivate: handleButtonActivate,\n onItemDeactivate: handleButtonDeactivate,\n children: /* @__PURE__ */ jsx(ToggleGroupImpl, { ...toggleGroupMultipleProps, ref: forwardedRef })\n }\n );\n});\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\nvar [ToggleGroupContext, useToggleGroupContext] = createToggleGroupContext(TOGGLE_GROUP_NAME);\nvar ToggleGroupImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeToggleGroup,\n disabled = false,\n rovingFocus = true,\n orientation,\n dir,\n loop = true,\n ...toggleGroupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeToggleGroup);\n const direction = useDirection(dir);\n const commonProps = { role: \"group\", dir: direction, ...toggleGroupProps };\n return /* @__PURE__ */ jsx(ToggleGroupContext, { scope: __scopeToggleGroup, rovingFocus, disabled, children: rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(Primitive.div, { ...commonProps, ref: forwardedRef }) });\n }\n);\nvar ITEM_NAME = \"ToggleGroupItem\";\nvar ToggleGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const valueContext = useToggleGroupValueContext(ITEM_NAME, props.__scopeToggleGroup);\n const context = useToggleGroupContext(ITEM_NAME, props.__scopeToggleGroup);\n const rovingFocusGroupScope = useRovingFocusGroupScope(props.__scopeToggleGroup);\n const pressed = valueContext.value.includes(props.value);\n const disabled = context.disabled || props.disabled;\n const commonProps = { ...props, pressed, disabled };\n const ref = React.useRef(null);\n return context.rovingFocus ? /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: pressed,\n ref,\n children: /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef })\n }\n ) : /* @__PURE__ */ jsx(ToggleGroupItemImpl, { ...commonProps, ref: forwardedRef });\n }\n);\nToggleGroupItem.displayName = ITEM_NAME;\nvar ToggleGroupItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeToggleGroup, value, ...itemProps } = props;\n const valueContext = useToggleGroupValueContext(ITEM_NAME, __scopeToggleGroup);\n const singleProps = { role: \"radio\", \"aria-checked\": props.pressed, \"aria-pressed\": void 0 };\n const typeProps = valueContext.type === \"single\" ? singleProps : void 0;\n return /* @__PURE__ */ jsx(\n Toggle,\n {\n ...typeProps,\n ...itemProps,\n ref: forwardedRef,\n onPressedChange: (pressed) => {\n if (pressed) {\n valueContext.onItemActivate(value);\n } else {\n valueContext.onItemDeactivate(value);\n }\n }\n }\n );\n }\n);\nvar Root2 = ToggleGroup;\nvar Item2 = ToggleGroupItem;\nexport {\n Item2 as Item,\n Root2 as Root,\n ToggleGroup,\n ToggleGroupItem,\n createToggleGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-2 min-w-9\",\n sm: \"h-8 px-1.5 min-w-8\",\n lg: \"h-10 px-2.5 min-w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","import * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toggleVariants } from \"@/components/ui/toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: \"default\",\n variant: \"default\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n className={cn(\n \"group/toggle-group flex w-fit items-center rounded-md data-[variant=outline]:shadow-xs\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n \"min-w-0 flex-1 shrink-0 rounded-none shadow-none first:rounded-l-md last:rounded-r-md focus:z-10 focus-visible:z-10 data-[variant=outline]:border-l-0 data-[variant=outline]:first:border-l\",\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QAMQBwAP8c8a2UAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAAB3RJTUUH4AEUExQQFfKCQgAAACZpVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVAgb24gYSBNYWOV5F9bAAACcElEQVRIx5XWT4hXVRQH8M9vxmlKzE2CVqJiMgUzGUoLQQXN1iqI5EJQGUJIRURBDF20aSMRJFGgtGjhwkWUiEkKuhBSzDaJCFI0VCr4Lx3UmhF/br5P7jzm93N+Fx73vXPPPd97zv2ec163iY0GJmVuoEsHG1vJm3l/DWuxHI8xhJm4gB9wVYejAu3G+7gTsNu4i0eFrIldeKETgO7MG2JgFIewEIvwHt7FTvwRnc8maryK7QCuYxgftgnlW/g5IKs68eJgNm0uZC+iJx72YnLki3OQv/HKRGK/IsZP4+Vx9CYV71Xs92fPYBtvn41dUV5TyObiK/Tn+2NsLdb78RcuxtOWINPwYwCWFvIvw55/cTTrlzC/0Pk18uklQD1hXg3fv8tpKsWrATgQ6n6OKSFCNc5kXh6gxngAs3OBV/CwoOw/ife+nPoObuFmLh7OJRGXlHdaBxjI/EstJ/pxGa8nP07hDcxInnThBG5gdRmdOsDDFqHbiJ+wHutwLSdclvUe3I8HjfESqxovZR7J/D/2xMBxfBLqDuIbfBQbo0VY/msHUHH8cSHblqJ2JF58GoqOhDFL8aRFnoz9wO+Z5xWys4n7b/ggbOrDbpyvMalZXPq4WbwgSkcxNbJZAZhR6E8Jo8pkXIkH+L5GkDGjp6hDa1scpJ6lVbk4ln2LW/WaSrAE9+L6rMJIV/E0csKq4G2K8ZNF52tb8PYW5aCvIESjBihl+nr03+mkhX6dTcPYkTt4s0jGOTic3GkV0ud2tS0BaNaekVCziT9Tnzpq+tWFj6bBb8fb6cm94f4QvsC3RQifdPoD0D2BX5SedjpPAbRYi2qFhp13AAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAAB3RJTUUH4AEUEzUtwQXbsAAAACZpVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVAgb24gYSBNYWOV5F9bAAAB9klEQVRIx8WWP2gUQRTGf7u3yRGJKInkOAlXnNZaiE0Kg6nOQAohtWhrmjQemICCkM7SXkFBThBLlYCkC0JIUihnEbETD5EkFzn1ksvafAPPcY/duxQZWIaZeX++9733ZhaOeYRHPE8VGAauAh+B78BF4CHwFXgJjPWLPADuA3GG75PkM488sCPlA6AJzAMPjNELwKpZd4DxNEYcihj4o7niyUSebBFoGPnJNPQN4BD4oXUuAYSlY0DzsommbID8o3hOlMTACWCwh3wBrAP7wJtugksy/jhBmYyJdFEkjk2PxxAYAT4DH7yIHonOCS+xTdkYTUq4Oyyaw23gNbAB1LXnyncpAW1DeyWXP+vlpOa2Di8Dp4FrwFMjd0ZOF7WeMfT91FywlAZy5Pg7pSp4IsMVleE9yZcl9w54DryVfqCmi4HrpsIIhd45GBLfd83eTY+KEvDK5CwQqPdi4LYa9r8GcxG4+j+vko26NJwD6NB+kY3ZpDJfUZNtATeEYCCl/R24KaBqQOZ9vVDIDyXQMglLGzXR0pFuLU1hLq1hvPFNsi+A6aw36q4Q1RW+5T004V8yYK5kNZ4DFqT0W/Me8Eznt1SOv7ybl17fhbJKtWVQOodts1ft91WLDBUTHto7wNkuV3jfzgrAmu6gTA9+v38YUS9KfwHiN479kenpigAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAAB3RJTUUH4AEUExsoumgmEwAAACZpVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVAgb24gYSBNYWOV5F9bAAACHUlEQVRIx+XVy4tOYRwH8M+M4R0iWcnrkgYxZTkimRIWppRSaLCxIAvFxj/AjFtsWFlQFBvCgrAQBuU2WbmMYWbIbWdqZsiMvDa/U09vx8zbTFaeenrOOb/v7/J8f5fDP15VFcpTXKnsHPUaV4Hz6tHeYAIGMQsbMAef8Ru9uIUvgS1gKGQVrdo49+NjUJHuAbzDc6xM9MZXYjwD3cavMHgVu3EXp/EtcfYdnVhWCa0ZXZdC+RNW5+AKaMCxoGso8DcwbSTjeyPyXiyIb5NGSOYRvAwnjzH9b8D56ApgU1k+YB1acAit2JbI6/A6dJ9hap6DAwE4VZaP+oisC5dxAReD+05sCdxC3AwbrZGPqjT6AfTHc7amRMLPYnZOUDtC72i8L43yLWFGSu3O+HiwzMBctKMRRVzH+8C+wSIsL+uBEyFvhprYDSG8X+agBw9wDRNxBifxFZvxNMr2YaLzNs7FmQNJBHnVsgfn8QF9OBy36cDa4Lotwc+Mszs1sj2udS+nlrPmKSblWEqacGOMk+Yo2e6Q1aVJnhw0lHA8blYdgEJg9oW8HSvwKGeMZLsl088o6o/SasSqABXwI+RLsCaa8EXkZRPWR7UUQ3YnHPfkDb8inoTxrUkDdcS3QfzEvGHyNeIc2hVRl8LwuXh+FQ1WX4avjhxle1inNUnztAVtpZz+qBrLX6wmGXBNMVmvRA7GbFwOt7Xxd/uP1x8qjZQl/fBreAAAAABJRU5ErkJggg==\"","\"use client\"\nimport { ToggleGroup, ToggleGroupItem } from \"@/components/ui/toggle-group\"\nimport { Columns3, Grid2X2, Box } from \"lucide-react\"\nimport axialIcon from \"@/assets/images/axialSlice24.png\";\nimport coronalIcon from \"@/assets/images/coronalSlice24.png\";\nimport sagittalIcon from \"@/assets/images/sagittalSlice24.png\";\n\nexport type ViewMode = \"axial\" | \"coronal\" | \"sagittal\" | \"ACS\" | \"ACSR\" | \"render\"\n\ninterface ViewSelectorProps {\n currentView: ViewMode\n onViewChange: (view: ViewMode) => void\n}\n\nexport default function ViewSelector({ currentView, onViewChange }: ViewSelectorProps) {\n return (\n <div className=\"flex items-center\">\n <ToggleGroup\n type=\"single\"\n value={currentView}\n onValueChange={(value) => value && onViewChange(value as ViewMode)}\n >\n <ToggleGroupItem value=\"axial\" aria-label=\"Axial view\" title=\"Axial view\">\n <img src={axialIcon} alt=\"axial\" className=\"dark:invert\" />\n <span className=\"sr-only sm:not-sr-only sm:inline-block text-xs\">Axial</span>\n </ToggleGroupItem>\n <ToggleGroupItem value=\"coronal\" aria-label=\"Coronal view\" title=\"Coronal view\">\n <img src={coronalIcon} alt=\"coronal\" className=\"dark:invert\" />\n <span className=\"sr-only sm:not-sr-only sm:inline-block text-xs\">Coronal</span>\n </ToggleGroupItem>\n <ToggleGroupItem value=\"sagittal\" aria-label=\"Sagittal view\" title=\"Sagittal view\">\n <img src={sagittalIcon} alt=\"sagittal\" className=\"dark:invert\" />\n <span className=\"sr-only sm:not-sr-only sm:inline-block text-xs\">Sagittal</span>\n </ToggleGroupItem>\n <ToggleGroupItem value=\"render\" aria-label=\"Render view\" title=\"Render view\">\n <Box className=\"h-4 w-4 mr-1\" />\n <span className=\"sr-only sm:not-sr-only sm:inline-block text-xs\">Render</span>\n </ToggleGroupItem> \n <ToggleGroupItem value=\"ACS\" aria-label=\"Multi view\" title=\"Multi view\">\n <Columns3 className=\"h-4 w-4 mr-1\" />\n <span className=\"sr-only sm:not-sr-only sm:inline-block text-xs\">ACS</span>\n </ToggleGroupItem>\n <ToggleGroupItem value=\"ACSR\" aria-label=\"Multi+Render\" title=\"Multi+Render\">\n <Grid2X2 className=\"h-4 w-4 mr-1\" />\n <span className=\"sr-only sm:not-sr-only sm:inline-block text-xs\">ACSR</span>\n </ToggleGroupItem>\n </ToggleGroup>\n </div>\n )\n}\n","\"use client\"\nimport { ToggleGroup, ToggleGroupItem } from \"@/components/ui/toggle-group\"\nimport { Move, Contrast, Ruler, MousePointer, Crosshair, CircleDot, Square, Maximize2 } from \"lucide-react\"\nimport { DRAG_MODE } from '@niivue/niivue'\n\nexport type DragMode = keyof typeof DRAG_MODE\n\ninterface DragModeSelectorProps {\n currentMode: DragMode\n onModeChange: (mode: DragMode) => void\n availableModes?: DragMode[]\n}\n\nconst dragModeConfig: Record<DragMode, { icon: React.FC<{ className?: string }>, label: string, displayName: string }> = {\n none: { icon: MousePointer, label: \"None\", displayName: \"none\" },\n contrast: { icon: Contrast, label: \"Contrast\", displayName: \"contrast\" },\n measurement: { icon: Ruler, label: \"Measurement\", displayName: \"measurement\" },\n pan: { icon: Move, label: \"Pan/Zoom\", displayName: \"pan/zoom\" },\n slicer3D: { icon: Maximize2, label: \"Slicer 3D\", displayName: \"slicer3D\" },\n callbackOnly: { icon: CircleDot, label: \"Callback Only\", displayName: \"callbackOnly\" },\n roiSelection: { icon: Square, label: \"ROI Selection\", displayName: \"roiSelection\" },\n angle: { icon: Crosshair, label: \"Angle\", displayName: \"angle\" },\n crosshair: { icon: Crosshair, label: \"Crosshair\", displayName: \"crosshair\" },\n windowing: { icon: Contrast, label: \"Windowing\", displayName: \"windowing\" }\n}\n\nconst defaultAvailableModes: DragMode[] = Object.keys(DRAG_MODE).filter(\n key => isNaN(Number(key))\n) as DragMode[]\n\nexport default function DragModeSelector({ \n currentMode, \n onModeChange, \n availableModes = defaultAvailableModes \n}: DragModeSelectorProps) {\n return (\n <div className=\"flex items-center\">\n <ToggleGroup\n type=\"single\"\n value={currentMode}\n onValueChange={(value) => value && onModeChange(value as DragMode)}\n >\n {availableModes.map((mode) => {\n const config = dragModeConfig[mode]\n const Icon = config.icon\n return (\n <ToggleGroupItem \n key={mode}\n value={mode} \n aria-label={config.label} \n title={config.label}\n >\n <Icon className=\"h-4 w-4 mr-1\" />\n <span className=\"sr-only sm:not-sr-only sm:inline-block text-xs\">{config.displayName}</span>\n </ToggleGroupItem>\n )\n })}\n </ToggleGroup>\n </div>\n )\n}","import { useFreeBrowseStore } from \"@/store\";\nimport { useViewerOptions } from \"@/hooks/use-viewer-options\";\nimport {\n PanelLeft,\n PanelRight,\n PanelBottom,\n Settings,\n Moon,\n Sun,\n Brain,\n RotateCcw,\n} from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport ViewSelector from \"@/components/view-selector\";\nimport DragModeSelector from \"@/components/drag-mode-selector\";\nimport { cn } from \"@/lib/utils\";\nimport type { NiiVue } from \"@niivue/niivue\";\n\ninterface HeaderProps {\n nvRef: React.RefObject<NiiVue | null>;\n}\n\nexport default function Header({ nvRef }: HeaderProps) {\n const sidebarOpen = useFreeBrowseStore((s) => s.sidebarOpen);\n const setSidebarOpen = useFreeBrowseStore((s) => s.setSidebarOpen);\n const footerOpen = useFreeBrowseStore((s) => s.footerOpen);\n const setFooterOpen = useFreeBrowseStore((s) => s.setFooterOpen);\n const darkMode = useFreeBrowseStore((s) => s.darkMode);\n const setDarkMode = useFreeBrowseStore((s) => s.setDarkMode);\n const setSettingsDialogOpen = useFreeBrowseStore(\n (s) => s.setSettingsDialogOpen,\n );\n\n const {\n viewerOptions,\n handleViewMode,\n handleDragModeChange,\n resetViewAndContrast,\n } = useViewerOptions(nvRef);\n\n return (\n <header className=\"border-b bg-background px-6 py-3\">\n <div className=\"flex items-center justify-between\">\n <h1 className=\"text-xl font-semibold flex items-center\">\n <Brain className=\"h-6 w-6 mr-2\" />\n <a\n href=\"https://github.com/freesurfer/freebrowse\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n FreeBrowse {__APP_VERSION__}\n </a>\n </h1>\n <div className=\"bg-background p-2\">\n <div className=\"flex items-center justify-between flex-wrap gap-4\">\n <div className=\"flex items-center gap-2 border border-border rounded-md px-3 py-1\">\n <span className=\"text-sm font-medium\">View:</span>\n <ViewSelector\n currentView={viewerOptions.viewMode}\n onViewChange={handleViewMode}\n />\n </div>\n <div className=\"flex items-center gap-2 border border-border rounded-md px-3 py-1\">\n <span className=\"text-sm font-medium\">Right drag:</span>\n <DragModeSelector\n currentMode={viewerOptions.dragMode}\n onModeChange={handleDragModeChange}\n availableModes={[\"contrast\", \"pan\"]}\n />\n </div>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={resetViewAndContrast}\n className=\"h-8 w-8 p-0\"\n title=\"Reset view+contrast of all volumes\"\n >\n <RotateCcw className=\"h-4 w-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setSidebarOpen(!sidebarOpen)}\n className=\"h-8 w-8 p-0\"\n title={sidebarOpen ? \"Hide sidebar\" : \"Show sidebar\"}\n >\n {sidebarOpen ? (\n <PanelRight className=\"h-4 w-4\" />\n ) : (\n <PanelLeft className=\"h-4 w-4\" />\n )}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setFooterOpen(!footerOpen)}\n className=\"h-8 w-8 p-0\"\n title={footerOpen ? \"Hide footer\" : \"Show footer\"}\n >\n <PanelBottom\n className={cn(\"h-4 w-4\", !footerOpen && \"rotate-180\")}\n />\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setDarkMode(!darkMode)}\n className=\"h-8 w-8 p-0\"\n title={darkMode ? \"Switch to light mode\" : \"Switch to dark mode\"}\n >\n {darkMode ? (\n <Sun className=\"h-4 w-4\" />\n ) : (\n <Moon className=\"h-4 w-4\" />\n )}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setSettingsDialogOpen(true)}\n className=\"h-8 w-8 p-0\"\n title=\"Settings\"\n >\n <Settings className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n </header>\n );\n}\n","import { useFreeBrowseStore } from \"@/store\";\nimport { cn } from \"@/lib/utils\";\n\nexport default function Footer() {\n const locationData = useFreeBrowseStore((s) => s.locationData);\n\n return (\n <footer className=\"border-t bg-background px-4 py-4 flex-shrink-0\">\n {locationData ? (\n <div className=\"space-y-2\">\n <div className=\"grid grid-cols-[50%_auto_1fr] gap-4 items-center text-sm\">\n <div></div>\n <div className=\"text-muted-foreground font-mono whitespace-nowrap\">\n <span className=\"inline-block w-16\">RAS</span>[\n {locationData.mm[0].toFixed(1)},{\" \"}\n {locationData.mm[1].toFixed(1)},{\" \"}\n {locationData.mm[2].toFixed(1)}]\n </div>\n <div></div>\n </div>\n {locationData.voxels.map((vol, index) => (\n <div\n key={index}\n className={cn(\n \"grid grid-cols-[50%_auto_1fr] gap-4 items-center text-sm px-2 py-1 rounded-sm\",\n index % 2 === 1 && \"bg-accent\",\n )}\n >\n <div className=\"font-medium overflow-x-auto whitespace-nowrap\">\n {vol.name}:\n </div>\n <div className=\"text-muted-foreground font-mono whitespace-nowrap\">\n <span className=\"inline-block w-16\">Voxel</span>[\n {vol.voxel[0]}, {vol.voxel[1]}, {vol.voxel[2]}]\n </div>\n <div className=\"text-muted-foreground\">\n Value: {vol.value.toFixed(2)}\n </div>\n </div>\n ))}\n </div>\n ) : (\n <p className=\"text-sm text-muted-foreground\">\n Load images to see coordinates\n </p>\n )}\n </footer>\n );\n}\n","\"use client\"\n\nimport type React from \"react\"\n\nimport { useState, useRef } from \"react\"\nimport { Upload, File } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { cn } from \"@/lib/utils\"\n\ninterface ImageUploaderProps {\n onUpload: (files: File[]) => Promise<void>\n compact?: boolean\n}\n\nexport default function ImageUploader({ onUpload, compact = false }: ImageUploaderProps) {\n const [isDragging, setIsDragging] = useState(false)\n const fileInputRef = useRef<HTMLInputElement>(null)\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault()\n setIsDragging(true)\n }\n\n const handleDragLeave = () => {\n setIsDragging(false)\n }\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault()\n setIsDragging(false)\n\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n const files = Array.from(e.dataTransfer.files)\n onUpload(files)\n }\n }\n\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n console.log(\"Files selected:\", e.target.files)\n const files = Array.from(e.target.files)\n onUpload(files)\n }\n }\n\n const handleButtonClick = () => {\n fileInputRef.current?.click()\n }\n\n if (compact) {\n return (\n <div className=\"w-full\">\n <Button variant=\"outline\" className=\"w-full\" onClick={handleButtonClick}>\n <Upload className=\"mr-2 h-4 w-4\" />\n Upload Images\n </Button>\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileChange}\n accept=\"image/*\"\n multiple\n className=\"hidden\"\n />\n </div>\n )\n }\n\n return (\n <div\n className={cn(\n \"border-2 border-dashed rounded-lg p-12 text-center transition-colors\",\n isDragging ? \"border-primary bg-primary/5\" : \"border-muted-foreground/25\",\n \"max-w-xl mx-auto w-full\",\n )}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n <div className=\"flex flex-col items-center justify-center gap-4\">\n <div className=\"rounded-full bg-background p-3 shadow-sm\">\n <File className=\"h-10 w-10 text-muted-foreground\" />\n </div>\n <div className=\"grid gap-1 text-center\">\n <h3 className=\"text-lg font-semibold\">Load Medical Images</h3>\n <p className=\"text-sm text-muted-foreground\">Drag and drop your medical images here or click to browse</p>\n <p className=\"text-sm text-muted-foreground\">No data will leave your device by loading data</p>\n </div>\n <Button onClick={handleButtonClick}>\n <Upload className=\"mr-2 h-4 w-4\" />\n Select Files\n </Button>\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileChange}\n multiple\n className=\"hidden\"\n />\n </div>\n </div>\n )\n}\n","\"use client\";\n\nimport { useRef, useEffect, useState } from \"react\";\nimport { NiiVue } from \"@niivue/niivue\";\n\ninterface ImageCanvasProps {\n viewMode: \"axial\" | \"coronal\" | \"sagittal\" | \"ACS\" | \"ACSR\" | \"render\";\n nvRef: NiiVue;\n}\n\nexport default function ImageCanvas({ viewMode, nvRef }: ImageCanvasProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const [imageLoaded, setImageLoaded] = useState(false);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n const nv = nvRef;\n console.log(\"NiiVue attached to canvas\", nv);\n if (!canvas) return;\n if (!nv) return;\n nv.attachToCanvas(canvas);\n // Deliberately no `nv.sliceType = ...` here: the view mode is owned by\n // use-viewer-options (app: pushed from the store on init; host-owned\n // instance: read FROM the instance). Setting it on canvas mount would\n // clobber a host's slice type with the store's stale value, because this\n // child effect runs before the parent's init effect.\n setImageLoaded(true);\n // Mount-once: attach the canvas exactly once. Later view-mode changes are\n // applied through use-viewer-options, never by re-attaching.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const renderMultiView = () => {\n // PW: disable for now\n return null;\n\n if (viewMode !== \"ACSR\" && viewMode !== \"ACS\") return null;\n\n return (\n <div className=\"grid grid-cols-2 grid-rows-2 w-full h-full gap-1 absolute top-0 left-0 pointer-events-none\">\n <div className=\"border border-primary/30 bg-black/20 flex items-center justify-center\">\n <span className=\"text-white text-xs font-medium\">Axial</span>\n </div>\n <div className=\"border border-primary/30 bg-black/20 flex items-center justify-center\">\n <span className=\"text-white text-xs font-medium\">Coronal</span>\n </div>\n <div className=\"border border-primary/30 bg-black/20 flex items-center justify-center\">\n <span className=\"text-white text-xs font-medium\">Sagittal</span>\n </div>\n <div className=\"border border-primary/30 bg-black/20 flex items-center justify-center\">\n <span className=\"text-white text-xs font-medium\">3D</span>\n </div>\n </div>\n );\n };\n\n const getViewLabel = () => {\n if (viewMode === \"ACSR\" || viewMode === \"ACS\") return null;\n return (\n <div className=\"absolute top-2 left-2 bg-black/50 text-white px-2 py-1 rounded text-xs font-medium\">\n {viewMode.charAt(0).toUpperCase() + viewMode.slice(1)} View\n </div>\n );\n };\n\n return (\n <div\n ref={containerRef}\n className=\"niivue-canvas w-full h-full relative bg-[#111]\"\n >\n <canvas ref={canvasRef}></canvas>\n {getViewLabel()}\n {renderMultiView()}\n {!imageLoaded && (\n <div className=\"absolute inset-0 flex items-center justify-center text-white\">\n Loading image...\n </div>\n )}\n </div>\n );\n}\n","import { useFreeBrowseStore } from \"@/store\";\nimport ImageUploader from \"./image-uploader\";\nimport ImageCanvas from \"./image-canvas\";\nimport type { ViewMode } from \"@/store/types\";\nimport type { NiiVue } from \"@niivue/niivue\";\n\ninterface CanvasAreaProps {\n nvInstance: NiiVue;\n viewMode: ViewMode;\n onFileUpload: (files: File[]) => Promise<void>;\n nvCanvasEmptyState?: React.ReactNode;\n}\n\nexport default function CanvasArea({\n nvInstance,\n viewMode,\n onFileUpload,\n nvCanvasEmptyState,\n}: CanvasAreaProps) {\n const showUploader = useFreeBrowseStore((s) => s.showUploader);\n\n return (\n <main className=\"flex-1 min-h-0 overflow-hidden flex flex-col\">\n {showUploader ? (\n <div className=\"flex flex-1 items-center justify-center\">\n {nvCanvasEmptyState ?? <ImageUploader onUpload={onFileUpload} />}\n </div>\n ) : (\n <div className=\"flex flex-1\">\n <ImageCanvas viewMode={viewMode} nvRef={nvInstance} />\n </div>\n )}\n </main>\n );\n}\n","import { useRef } from \"react\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport { cn } from \"@/lib/utils\";\nimport type { NiiVue } from \"@niivue/niivue\";\nimport type { ViewMode } from \"@/store/types\";\nimport Header from \"./header\";\nimport Footer from \"./footer\";\nimport CanvasArea from \"./canvas-area\";\n\ninterface ViewerShellProps {\n nvInstance: NiiVue;\n viewMode: ViewMode;\n onFileUpload: (files: File[]) => Promise<void>;\n sidebar?: React.ReactNode;\n dialogs?: React.ReactNode;\n hiddenInputs?: React.ReactNode;\n nvCanvasEmptyState?: React.ReactNode;\n}\n\nexport default function ViewerShell({\n nvInstance,\n viewMode,\n onFileUpload,\n sidebar,\n dialogs,\n hiddenInputs,\n nvCanvasEmptyState,\n}: ViewerShellProps) {\n const sidebarOpen = useFreeBrowseStore((s) => s.sidebarOpen);\n const footerOpen = useFreeBrowseStore((s) => s.footerOpen);\n const darkMode = useFreeBrowseStore((s) => s.darkMode);\n\n const nvRef = useRef<NiiVue | null>(nvInstance);\n nvRef.current = nvInstance;\n\n // `freebrowse-root` scopes every style (tokens, reset, the `dark:` variant —\n // see styles/lib.css) and `relative` contains the dialogs' absolute overlay,\n // so an embedding host's page is never touched. Dark mode is a class on THIS\n // element, not on <html>.\n return (\n <div\n className={cn(\n \"freebrowse-root relative flex h-full flex-col\",\n darkMode && \"dark\",\n )}\n >\n <Header nvRef={nvRef} />\n\n <div className=\"flex flex-1 overflow-hidden\">\n <div className=\"flex flex-1 flex-col min-h-0\">\n <CanvasArea\n nvInstance={nvInstance}\n viewMode={viewMode}\n onFileUpload={onFileUpload}\n nvCanvasEmptyState={nvCanvasEmptyState}\n />\n\n {footerOpen && <Footer />}\n </div>\n\n {sidebarOpen && sidebar}\n </div>\n\n {hiddenInputs}\n {dialogs}\n </div>\n );\n}\n","\"use client\";\n\n// src/presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// src/use-state-machine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef(null);\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n stylesRef.current = node2 ? getComputedStyle(node2) : null;\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Presence;\nexport {\n Presence,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Tabs({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction TabsList({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n \"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/scroll-area.tsx\nimport * as React2 from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\n// src/use-state-machine.ts\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/scroll-area.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React2.useState(null);\n const [viewport, setViewport] = React2.useState(null);\n const [content, setContent] = React2.useState(null);\n const [scrollbarX, setScrollbarX] = React2.useState(null);\n const [scrollbarY, setScrollbarY] = React2.useState(null);\n const [cornerWidth, setCornerWidth] = React2.useState(0);\n const [cornerHeight, setCornerHeight] = React2.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React2.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React2.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n const direction = useDirection(dir);\n return /* @__PURE__ */ jsx(\n ScrollAreaProvider,\n {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--radix-scroll-area-corner-width\"]: cornerWidth + \"px\",\n [\"--radix-scroll-area-corner-height\"]: cornerHeight + \"px\",\n ...props.style\n }\n }\n )\n }\n );\n }\n);\nScrollArea.displayName = SCROLL_AREA_NAME;\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ jsx(\"div\", { ref: context.onContentChange, style: { minWidth: \"100%\", display: \"table\" }, children })\n }\n )\n ] });\n }\n);\nScrollAreaViewport.displayName = VIEWPORT_NAME;\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n React2.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n return context.type === \"hover\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"scroll\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"auto\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === \"always\" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;\n }\n);\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\nvar ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React2.useState(false);\n React2.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarAuto,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n React2.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(() => send(\"HIDE\"), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n React2.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || state !== \"hidden\", children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => send(\"POINTER_ENTER\")),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send(\"POINTER_LEAVE\"))\n }\n ) });\n});\nvar ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React2.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx(\n ScrollAreaScrollbarVisible,\n {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n }\n ) });\n});\nvar ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React2.useRef(null);\n const pointerOffsetRef = React2.useRef(0);\n const [sizes, setSizes] = React2.useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => thumbRef.current = thumb,\n onThumbPointerUp: () => pointerOffsetRef.current = 0,\n onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarX,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n }\n );\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarY,\n {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: () => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n }\n );\n }\n return null;\n});\nvar ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n [\"--radix-scroll-area-thumb-width\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n }\n );\n});\nvar ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React2.useState();\n const ref = React2.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n React2.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n return /* @__PURE__ */ jsx(\n ScrollAreaScrollbarImpl,\n {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n [\"--radix-scroll-area-thumb-height\"]: getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos) => props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos) => props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: () => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n }\n );\n});\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React2.useState(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React2.useRef(null);\n const prevWebkitUserSelectRef = React2.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n React2.useEffect(() => {\n const handleWheel = (event) => {\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () => document.removeEventListener(\"wheel\", handleWheel, { passive: false });\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n React2.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ jsx(\n ScrollbarProvider,\n {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: useCallbackRef(onThumbChange),\n onThumbPointerUp: useCallbackRef(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: useCallbackRef(onThumbPointerDown),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...scrollbarProps,\n ref: composeRefs,\n style: { position: \"absolute\", ...scrollbarProps.style },\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, handleDragScroll),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n }\n )\n }\n );\n});\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = React2.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });\n }\n);\nvar ScrollAreaThumbImpl = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(\n forwardedRef,\n (node) => scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React2.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }, 100);\n React2.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, (event) => {\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n }\n );\n }\n);\nScrollAreaThumb.displayName = THUMB_NAME;\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = React2.forwardRef(\n (props, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;\n }\n);\nScrollAreaCorner.displayName = CORNER_NAME;\nvar ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React2.useState(0);\n const [height, setHeight] = React2.useState(0);\n const hasSize = Boolean(width && height);\n useResizeObserver(context.scrollbarX, () => {\n const height2 = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n });\n useResizeObserver(context.scrollbarY, () => {\n const width2 = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n });\n return hasSize ? /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }\n ) : null;\n});\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nvar addUnlinkedScrollListener = (node, handler = () => {\n}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\nfunction useDebounceCallback(callback, delay) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React2.useRef(0);\n React2.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React2.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\nexport {\n Corner,\n Root,\n ScrollArea,\n ScrollAreaCorner,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaViewport,\n Scrollbar,\n Thumb,\n Viewport,\n createScrollAreaScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-border relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n","import React, { useEffect, useState } from 'react'\n\nexport interface FileItem {\n filename: string;\n url: string;\n}\n\ninterface FileListProps {\n endpoint: string;\n onFileSelect: (file: FileItem) => void;\n emptyMessage?: string;\n}\n\nexport const FileList: React.FC<FileListProps> = ({ \n endpoint, \n onFileSelect,\n emptyMessage = \"No files available.\"\n}) => {\n const [files, setFiles] = useState<FileItem[]>([])\n const [loading, setLoading] = useState<boolean>(false)\n const [error, setError] = useState<string>('')\n\n useEffect(() => {\n // Define an async function to fetch file list\n const fetchFiles = async () => {\n setLoading(true)\n try {\n const response = await fetch(endpoint)\n console.log(`Fetching from ${endpoint}:`, response)\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`)\n }\n const data: FileItem[] = await response.json()\n console.log(`Files from ${endpoint}:`, data)\n setFiles(data)\n } catch (err: unknown) {\n console.error(`Error fetching files from ${endpoint}:`, err)\n setError(err instanceof Error ? err.message : String(err))\n } finally {\n setLoading(false)\n }\n }\n\n fetchFiles()\n }, [endpoint])\n\n return (\n <div>\n {loading && <p>Loading List...</p>}\n {error && <p style={{ color: 'red' }}>Error: {error}</p>}\n {!loading && !error && (files.length > 0 ? (\n <ul className=\"space-y-1\">\n {files.map((file, index) => (\n <li\n key={index}\n className=\"cursor-pointer px-3 py-2 rounded-md text-sm hover:bg-accent hover:text-accent-foreground transition-colors\"\n onClick={() => onFileSelect(file)}\n >\n {file.filename}\n </li>\n ))}\n </ul>\n ) : (\n <p>{emptyMessage}</p>\n ))}\n </div>\n )\n}\n\nexport default FileList","import { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { FileList, type FileItem } from \"@/components/file-list\";\nimport { dataUrl } from \"@/lib/deployment-config\";\n\ninterface NvdTabProps {\n onFileSelect: (file: FileItem) => void;\n}\n\nexport default function NvdTab({ onFileSelect }: NvdTabProps) {\n return (\n <div className=\"flex flex-col h-full\">\n <div className=\"border-b px-4 py-3\">\n <h2 className=\"text-lg font-semibold\">Backend: NiiVue Documents</h2>\n <p className=\"text-sm text-muted-foreground\">\n Load complete scenes and visualizations\n </p>\n </div>\n <ScrollArea className=\"flex-1 min-h-0\">\n <div className=\"p-4 pb-6\">\n <FileList\n endpoint={dataUrl(\"nvd\")}\n onFileSelect={onFileSelect}\n emptyMessage=\"No niivue documents available.\"\n />\n </div>\n </ScrollArea>\n </div>\n );\n}\n","import { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { FileList, type FileItem } from \"@/components/file-list\";\nimport { dataUrl } from \"@/lib/deployment-config\";\n\ninterface DataTabProps {\n onFileSelect: (file: FileItem) => void;\n}\n\nexport default function DataTab({ onFileSelect }: DataTabProps) {\n return (\n <div className=\"flex flex-col h-full\">\n <div className=\"border-b px-4 py-3\">\n <h2 className=\"text-lg font-semibold\">Backend: Imaging Data</h2>\n <p className=\"text-sm text-muted-foreground\">\n Add individual volumes to the current scene\n </p>\n </div>\n <ScrollArea className=\"flex-1 min-h-0\">\n <div className=\"p-4 pb-6\">\n <FileList\n endpoint={dataUrl(\"vol\")}\n onFileSelect={onFileSelect}\n emptyMessage=\"No imaging files available.\"\n />\n </div>\n </ScrollArea>\n </div>\n );\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}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","// packages/react/use-previous/src/use-previous.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/use-size.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/slider.tsx\nimport * as React from \"react\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n \"from-left\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-right\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowRight\"],\n \"from-bottom\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-top\": [\"Home\", \"PageDown\", \"ArrowUp\", \"ArrowLeft\"]\n};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = \"horizontal\",\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {\n },\n onValueCommit = () => {\n },\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n form,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: forwardedRef,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, { commit: true }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, { commit: true }),\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value2 = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value2 + stepInDirection, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef(void 0);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateX(-50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef(void 0);\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateY(50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,\n [getItems, thumb]\n );\n return /* @__PURE__ */ jsx(SliderThumbImpl, { ...props, ref: composedRefs, index });\n }\n);\nvar SliderThumbImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const isFormControl = thumb ? context.form || !!thumb.closest(\"form\") : true;\n const size = useSize(thumb);\n const value = context.values[index];\n const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n return /* @__PURE__ */ jsxs(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: [\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) }),\n isFormControl && /* @__PURE__ */ jsx(\n SliderBubbleInput,\n {\n name: name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0),\n form: context.form,\n value\n },\n index\n )\n ]\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar SliderBubbleInput = React.forwardRef(\n ({ __scopeSlider, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n style: { display: \"none\" },\n ...props,\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSliderBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return [\"Minimum\", \"Maximum\"][index];\n } else {\n return void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nvar Root = Slider;\nvar Track = SliderTrack;\nvar Range = SliderRange;\nvar Thumb = SliderThumb;\nexport {\n Range,\n Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n Thumb,\n Track,\n createSliderScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n )\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\"\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }","\"use client\"\n\nimport * as React from \"react\"\nimport { Label } from \"./label\"\nimport { Slider } from \"./slider\"\nimport { Input } from \"./input\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface LabeledSliderWithInputProps {\n label: string\n value: number\n onValueChange: (value: number) => void\n min?: number\n max?: number\n step?: number\n decimalPlaces?: number\n className?: string\n disabled?: boolean\n}\n\nconst LabeledSliderWithInput = React.forwardRef<HTMLDivElement, LabeledSliderWithInputProps>(\n ({ \n label, \n value, \n onValueChange, \n min = 0, \n max = 100, \n step = 1, \n decimalPlaces = 2,\n className,\n disabled = false,\n ...props \n }, ref) => {\n \n const [localValue, setLocalValue] = React.useState(value)\n const timeoutRef = React.useRef<NodeJS.Timeout>(undefined)\n \n // Helper function to format the displayed value\n const formatValue = (val: number) => {\n return Number(val.toFixed(decimalPlaces))\n }\n \n // Sync local value when external value changes\n React.useEffect(() => {\n setLocalValue(value)\n }, [value])\n \n const debouncedOnValueChange = React.useCallback((newValue: number) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n \n timeoutRef.current = setTimeout(() => {\n onValueChange(newValue)\n }, 50) // 50ms debounce\n }, [onValueChange])\n \n const handleSliderChange = (values: number[]) => {\n const newValue = values[0]\n setLocalValue(newValue)\n debouncedOnValueChange(newValue)\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = parseFloat(e.target.value)\n if (!isNaN(inputValue)) {\n // Clamp the value between min and max\n const clampedValue = Math.min(Math.max(inputValue, min), max)\n setLocalValue(clampedValue)\n debouncedOnValueChange(clampedValue)\n }\n }\n\n const handleInputBlur = (e: React.ChangeEvent<HTMLInputElement>) => {\n // Ensure the input shows the clamped value if user entered something out of range\n const inputValue = parseFloat(e.target.value)\n if (isNaN(inputValue) || inputValue < min || inputValue > max) {\n // Reset to current valid value\n setLocalValue(value)\n e.target.value = value.toString()\n }\n }\n\n return (\n <div \n ref={ref}\n className={cn(\"space-y-2\", className)}\n {...props}\n >\n <Label className=\"text-sm font-medium\">{label}</Label>\n \n <div className=\"flex items-center space-x-3\">\n <Slider\n value={[localValue]}\n onValueChange={handleSliderChange}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n className=\"flex-1\"\n />\n \n <Input\n type=\"number\"\n value={formatValue(localValue)}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n className=\"w-20 text-center\"\n />\n </div>\n </div>\n )\n }\n)\n\nLabeledSliderWithInput.displayName = \"LabeledSliderWithInput\"\n\nexport { LabeledSliderWithInput }","\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface SelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {}\n\nconst Select = React.forwardRef<HTMLSelectElement, SelectProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <select\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </select>\n )\n }\n)\nSelect.displayName = \"Select\"\n\nexport { Select }","import { useFreeBrowseStore } from \"@/store\";\nimport {\n ImageIcon,\n Upload,\n Trash2,\n Eye,\n EyeOff,\n Save,\n Edit,\n Pencil,\n Download,\n ChevronUp,\n ChevronDown,\n} from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { Label } from \"@/components/ui/label\";\nimport { LabeledSliderWithInput } from \"@/components/ui/labeled-slider-with-input\";\nimport { Select } from \"@/components/ui/select\";\nimport { cn } from \"@/lib/utils\";\nimport { deploymentConfig } from \"@/lib/deployment-config\";\nimport type { NiiVue, NVImage } from \"@niivue/niivue\";\n\ninterface SceneDetailsTabProps {\n nvRef: React.RefObject<NiiVue | null>;\n serverlessMode: boolean;\n getVolumes: () => NVImage[];\n onToggleVisibility: (id: string) => void;\n onEditVolume: (index: number) => void;\n canEditVolume: (index: number) => boolean;\n onRemoveVolume: (index: number) => void;\n onAddMoreFiles: () => void;\n onCreateDrawingLayer: () => void;\n onSaveScene: (isDownload: boolean) => void;\n onOpacityChange: (value: number) => void;\n onFrameChange: (value: number) => void;\n onContrastMinChange: (value: number) => void;\n onContrastMaxChange: (value: number) => void;\n onColormapChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;\n onMoveVolumeUp: () => void;\n onMoveVolumeDown: () => void;\n}\n\nexport default function SceneDetailsTab({\n nvRef,\n serverlessMode,\n getVolumes,\n onToggleVisibility,\n onEditVolume,\n canEditVolume,\n onRemoveVolume,\n onAddMoreFiles,\n onCreateDrawingLayer,\n onSaveScene,\n onOpacityChange,\n onFrameChange,\n onContrastMinChange,\n onContrastMaxChange,\n onColormapChange,\n onMoveVolumeUp,\n onMoveVolumeDown,\n}: SceneDetailsTabProps) {\n const currentImageIndex = useFreeBrowseStore((s) => s.currentImageIndex);\n const setCurrentImageIndex = useFreeBrowseStore(\n (s) => s.setCurrentImageIndex,\n );\n const drawingOptions = useFreeBrowseStore((s) => s.drawingOptions);\n\n const volumes = getVolumes();\n const currentVolume =\n currentImageIndex !== null ? volumes[currentImageIndex] : null;\n\n return (\n <div className=\"flex flex-col h-full\">\n <div className=\"border-b px-4 py-3\">\n <h2 className=\"text-lg font-semibold\">Volumetric Details</h2>\n <p className=\"text-sm text-muted-foreground\">\n Manage volumes and adjust properties\n </p>\n </div>\n <ScrollArea className=\"max-h-[50%] min-h-0\">\n {volumes.length > 0 ? (\n <div className=\"grid gap-2 p-4\">\n {volumes.map((volume, index) => (\n <div\n key={volume.id}\n className={cn(\n \"flex items-center gap-2 p-2 rounded-md cursor-pointer\",\n currentImageIndex === index\n ? \"bg-muted\"\n : \"hover:bg-muted/50\",\n )}\n onClick={() => setCurrentImageIndex(index)}\n >\n <div className=\"flex-shrink-0\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 w-6 p-0\"\n onClick={(e) => {\n e.stopPropagation();\n // niivue-mono assigns every loaded volume an id; the\n // type keeps it optional, so guard rather than assert.\n if (volume.id) onToggleVisibility(volume.id);\n }}\n >\n {(volume.opacity ?? 1) > 0 ? (\n <Eye className=\"h-3 w-3\" />\n ) : (\n <EyeOff className=\"h-3 w-3 opacity-50\" />\n )}\n </Button>\n </div>\n <div className=\"flex-1 w-0\">\n <p className=\"text-sm font-medium break-words\">\n {volume.name || `Volume ${index + 1}`}\n </p>\n </div>\n <div className=\"flex-shrink-0 flex gap-1\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 w-6 p-0 hover:bg-blue-100 hover:text-blue-600 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-transparent\"\n onClick={(e) => {\n e.stopPropagation();\n onEditVolume(index);\n }}\n disabled={!canEditVolume(index)}\n title={\n canEditVolume(index)\n ? \"Edit as drawing\"\n : \"Cannot edit - must match background dimensions and affine\"\n }\n >\n <Edit className=\"h-3 w-3\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 w-6 p-0 hover:bg-destructive hover:text-destructive-foreground\"\n onClick={(e) => {\n e.stopPropagation();\n onRemoveVolume(index);\n }}\n title=\"Delete volume\"\n >\n <Trash2 className=\"h-3 w-3\" />\n </Button>\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"flex flex-col items-center justify-center h-full p-4 text-center text-muted-foreground\">\n <ImageIcon className=\"h-8 w-8 mb-2\" />\n <p>No images</p>\n </div>\n )}\n <div className=\"p-2 border-t space-y-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full\"\n onClick={onAddMoreFiles}\n >\n <Upload className=\"mr-2 h-4 w-4\" />\n Load volumes\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full\"\n onClick={onCreateDrawingLayer}\n disabled={drawingOptions.enabled || volumes.length === 0}\n >\n <Pencil className=\"mr-2 h-4 w-4\" />\n Create empty drawing layer\n </Button>\n <div className=\"flex gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"flex-1\"\n onClick={() => onSaveScene(false)}\n disabled={\n volumes.length === 0 || drawingOptions.enabled || serverlessMode\n }\n >\n <Save className=\"mr-2 h-4 w-4\" />\n Save\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"flex-1\"\n onClick={() => onSaveScene(true)}\n disabled={\n volumes.length === 0 ||\n drawingOptions.enabled ||\n deploymentConfig.downloadDisabled\n }\n title={\n deploymentConfig.downloadDisabled\n ? \"Download is disabled in this deployment\"\n : undefined\n }\n >\n <Download className=\"mr-2 h-4 w-4\" />\n Download\n </Button>\n </div>\n </div>\n </ScrollArea>\n <ScrollArea className=\"flex-1 min-h-0\">\n {currentVolume ? (\n <div className=\"grid gap-4 p-4\">\n <div className=\"flex gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"flex-1\"\n onClick={onMoveVolumeUp}\n disabled={currentImageIndex === null || currentImageIndex === 0}\n >\n <ChevronUp className=\"mr-2 h-4 w-4\" />\n Move up\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"flex-1\"\n onClick={onMoveVolumeDown}\n disabled={\n currentImageIndex === null ||\n currentImageIndex === volumes.length - 1\n }\n >\n <ChevronDown className=\"mr-2 h-4 w-4\" />\n Move down\n </Button>\n </div>\n {(currentVolume.nFrame4D || 1) > 1 && (\n <LabeledSliderWithInput\n label=\"Frame\"\n value={currentVolume.frame4D ?? 0}\n onValueChange={onFrameChange}\n min={0}\n max={(currentVolume.nFrame4D || 1) - 1}\n step={1}\n />\n )}\n <LabeledSliderWithInput\n label=\"Opacity\"\n value={currentVolume.opacity ?? 1}\n onValueChange={onOpacityChange}\n min={0}\n max={1}\n step={0.01}\n />\n <LabeledSliderWithInput\n label=\"Contrast Min\"\n value={currentVolume.calMin ?? 0}\n onValueChange={onContrastMinChange}\n min={currentVolume.globalMin ?? 0}\n max={currentVolume.globalMax ?? 255}\n step={0.1}\n decimalPlaces={1}\n />\n <LabeledSliderWithInput\n label=\"Contrast Max\"\n value={currentVolume.calMax ?? 100}\n onValueChange={onContrastMaxChange}\n min={currentVolume.globalMin ?? 0}\n max={currentVolume.globalMax ?? 255}\n step={0.1}\n decimalPlaces={1}\n />\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Colormap</Label>\n <Select\n value={currentVolume.colormap || \"gray\"}\n onChange={onColormapChange}\n >\n {nvRef.current?.colormaps.map((colormap: string) => (\n <option key={colormap} value={colormap}>\n {colormap}\n </option>\n ))}\n </Select>\n </div>\n </div>\n ) : (\n <div className=\"flex flex-col items-center justify-center h-full p-4 text-center text-muted-foreground\"></div>\n )}\n </ScrollArea>\n </div>\n );\n}\n","\"use client\";\n\n// src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nfunction CheckboxProvider(props) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n disabled,\n setChecked,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(\n CheckboxProviderImpl,\n {\n scope: __scopeCheckbox,\n ...context,\n children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children\n }\n );\n}\nvar TRIGGER_NAME = \"CheckboxTrigger\";\nvar CheckboxTrigger = React.forwardRef(\n ({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener(\"reset\", reset);\n return () => form.removeEventListener(\"reset\", reset);\n }\n }, [control, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }\n);\nCheckboxTrigger.displayName = TRIGGER_NAME;\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n return /* @__PURE__ */ jsx(\n CheckboxProvider,\n {\n __scopeCheckbox,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n CheckboxTrigger,\n {\n ...checkboxProps,\n ref: forwardedRef,\n __scopeCheckbox\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n CheckboxBubbleInput,\n {\n __scopeCheckbox\n }\n )\n ] })\n }\n );\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(context.checked) || context.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n )\n }\n );\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"CheckboxBubbleInput\";\nvar CheckboxBubbleInput = React.forwardRef(\n ({ __scopeCheckbox, ...props }, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }\n);\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nexport {\n Checkbox,\n CheckboxIndicator,\n CheckboxIndicator as Indicator,\n Checkbox as Root,\n createCheckboxScope,\n CheckboxBubbleInput as unstable_BubbleInput,\n CheckboxBubbleInput as unstable_CheckboxBubbleInput,\n CheckboxProvider as unstable_CheckboxProvider,\n CheckboxTrigger as unstable_CheckboxTrigger,\n CheckboxProvider as unstable_Provider,\n CheckboxTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"flex items-center justify-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","import { useFreeBrowseStore } from \"@/store\";\nimport { Upload, Trash2, Eye, EyeOff, Brain } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { Label } from \"@/components/ui/label\";\nimport { LabeledSliderWithInput } from \"@/components/ui/labeled-slider-with-input\";\nimport { Select } from \"@/components/ui/select\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { cn } from \"@/lib/utils\";\nimport { rgba255ToHex } from \"@/lib/niivue-helpers\";\nimport type { NiiVue, NVMeshLayer } from \"@niivue/niivue\";\n\ninterface SurfaceDetailsTabProps {\n nvRef: React.RefObject<NiiVue | null>;\n onToggleVisibility: (index: number) => void;\n onRemoveSurface: (index: number) => void;\n onAddSurfaceFiles: () => void;\n onOpacityChange: (value: number) => void;\n onColorChange: (hexColor: string) => void;\n onShaderChange: (shaderName: string) => void;\n // Layer operations\n getLayers: () => NVMeshLayer[];\n onAddLayerFiles: () => void;\n onRemoveLayer: (index: number) => void;\n onLayerOpacityChange: (value: number) => void;\n onLayerCalMinChange: (value: number) => void;\n onLayerCalMaxChange: (value: number) => void;\n onLayerColormapChange: (colormap: string) => void;\n onLayerUseNegativeCmapChange: (checked: boolean) => void;\n}\n\nexport default function SurfaceDetailsTab({\n nvRef,\n onToggleVisibility,\n onRemoveSurface,\n onAddSurfaceFiles,\n onOpacityChange,\n onColorChange,\n onShaderChange,\n getLayers,\n onAddLayerFiles,\n onRemoveLayer,\n onLayerOpacityChange,\n onLayerCalMinChange,\n onLayerCalMaxChange,\n onLayerColormapChange,\n onLayerUseNegativeCmapChange,\n}: SurfaceDetailsTabProps) {\n const surfaces = useFreeBrowseStore((s) => s.surfaces);\n const currentSurfaceIndex = useFreeBrowseStore((s) => s.currentSurfaceIndex);\n const setCurrentSurfaceIndex = useFreeBrowseStore(\n (s) => s.setCurrentSurfaceIndex,\n );\n const selectedLayerIndex = useFreeBrowseStore((s) => s.selectedLayerIndex);\n const setSelectedLayerIndex = useFreeBrowseStore(\n (s) => s.setSelectedLayerIndex,\n );\n\n const layers = getLayers();\n const selectedLayer =\n selectedLayerIndex !== null ? layers[selectedLayerIndex] : null;\n\n return (\n <div className=\"flex flex-col h-full\">\n <div className=\"border-b px-4 py-3\">\n <h2 className=\"text-lg font-semibold\">Surface Details</h2>\n <p className=\"text-sm text-muted-foreground\">\n Manage surfaces and adjust properties\n </p>\n </div>\n <ScrollArea className=\"max-h-[50%] min-h-0\">\n {surfaces.length > 0 ? (\n <div className=\"grid gap-2 p-4\">\n {surfaces.map((surface, index) => (\n <div\n key={surface.id}\n className={cn(\n \"flex items-center gap-2 p-2 rounded-md cursor-pointer\",\n currentSurfaceIndex === index\n ? \"bg-muted\"\n : \"hover:bg-muted/50\",\n )}\n onClick={() => setCurrentSurfaceIndex(index)}\n >\n <div className=\"flex-shrink-0\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 w-6 p-0\"\n onClick={(e) => {\n e.stopPropagation();\n onToggleVisibility(index);\n }}\n >\n {surface.visible ? (\n <Eye className=\"h-3 w-3\" />\n ) : (\n <EyeOff className=\"h-3 w-3 opacity-50\" />\n )}\n </Button>\n </div>\n <div className=\"flex-1 w-0\">\n <p className=\"text-sm font-medium break-words\">\n {surface.name}\n </p>\n </div>\n <div className=\"flex-shrink-0 flex gap-1\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 w-6 p-0 hover:bg-destructive hover:text-destructive-foreground\"\n onClick={(e) => {\n e.stopPropagation();\n onRemoveSurface(index);\n }}\n title=\"Delete surface\"\n >\n <Trash2 className=\"h-3 w-3\" />\n </Button>\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"flex flex-col items-center justify-center h-full p-4 text-center text-muted-foreground\">\n <Brain className=\"h-8 w-8 mb-2\" />\n <p>No surfaces</p>\n </div>\n )}\n <div className=\"p-2 border-t space-y-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full\"\n onClick={onAddSurfaceFiles}\n >\n <Upload className=\"mr-2 h-4 w-4\" />\n Load surfaces\n </Button>\n </div>\n </ScrollArea>\n <ScrollArea className=\"flex-1 min-h-0\">\n {currentSurfaceIndex != null && surfaces[currentSurfaceIndex] ? (\n <div className=\"grid gap-4 p-4\">\n <LabeledSliderWithInput\n label=\"Opacity\"\n value={surfaces[currentSurfaceIndex]?.opacity || 1}\n onValueChange={onOpacityChange}\n min={0}\n max={1}\n step={0.01}\n />\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Color</Label>\n <div className=\"flex items-center gap-2\">\n <input\n type=\"color\"\n value={rgba255ToHex(\n surfaces[currentSurfaceIndex]?.rgba255 || [\n 255, 255, 0, 255,\n ],\n )}\n onChange={(e) => onColorChange(e.target.value)}\n className=\"h-9 w-16 rounded-md border border-input cursor-pointer\"\n />\n <span className=\"text-sm text-muted-foreground\">\n {rgba255ToHex(\n surfaces[currentSurfaceIndex]?.rgba255 || [\n 255, 255, 0, 255,\n ],\n )}\n </span>\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Mesh Shader</Label>\n <Select\n value={surfaces[currentSurfaceIndex]?.shaderType || \"phong\"}\n onChange={(e) => onShaderChange(e.target.value)}\n >\n {nvRef.current?.meshShaders.map((shaderName: string) => (\n <option key={shaderName} value={shaderName}>\n {shaderName}\n </option>\n ))}\n </Select>\n </div>\n\n {/* Layers section */}\n <div className=\"border-t pt-4\">\n <div className=\"flex items-center justify-between mb-2\">\n <Label className=\"text-sm font-medium\">Layers</Label>\n <Button variant=\"outline\" size=\"sm\" onClick={onAddLayerFiles}>\n <Upload className=\"mr-2 h-3 w-3\" />\n Add\n </Button>\n </div>\n\n {layers.length > 0 ? (\n <div className=\"grid gap-1 mb-4\">\n {layers.map((layer, index) => (\n <div\n key={index}\n className={cn(\n \"flex items-center gap-2 p-2 rounded-md cursor-pointer text-sm\",\n selectedLayerIndex === index\n ? \"bg-muted\"\n : \"hover:bg-muted/50\",\n )}\n onClick={() => setSelectedLayerIndex(index)}\n >\n <div className=\"flex-1 w-0\">\n <p className=\"text-sm truncate\">\n {layer.name || `Layer ${index + 1}`}\n </p>\n </div>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 w-6 p-0 hover:bg-destructive hover:text-destructive-foreground\"\n onClick={(e) => {\n e.stopPropagation();\n onRemoveLayer(index);\n }}\n title=\"Remove layer\"\n >\n <Trash2 className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n </div>\n ) : (\n <p className=\"text-sm text-muted-foreground mb-4\">\n No layers loaded\n </p>\n )}\n\n {selectedLayer && (\n <div className=\"grid gap-4 border-t pt-4\">\n <LabeledSliderWithInput\n label=\"Contrast Min\"\n value={selectedLayer.calMin ?? 0}\n onValueChange={onLayerCalMinChange}\n min={-10}\n max={10}\n step={0.01}\n />\n <LabeledSliderWithInput\n label=\"Contrast Max\"\n value={selectedLayer.calMax ?? 1}\n onValueChange={onLayerCalMaxChange}\n min={-10}\n max={10}\n step={0.01}\n />\n <LabeledSliderWithInput\n label=\"Opacity\"\n value={selectedLayer.opacity ?? 1}\n onValueChange={onLayerOpacityChange}\n min={0}\n max={1}\n step={0.01}\n />\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Colormap</Label>\n <Select\n value={selectedLayer.colormap || \"warm\"}\n onChange={(e) => onLayerColormapChange(e.target.value)}\n >\n {nvRef.current?.colormaps.map((cm: string) => (\n <option key={cm} value={cm}>\n {cm}\n </option>\n ))}\n </Select>\n </div>\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"use-negative-cmap\"\n checked={!!selectedLayer.colormapNegative}\n onCheckedChange={(checked) =>\n onLayerUseNegativeCmapChange(checked === true)\n }\n />\n <Label\n htmlFor=\"use-negative-cmap\"\n className=\"text-sm font-medium\"\n >\n Use Negative Colormap\n </Label>\n </div>\n </div>\n )}\n </div>\n </div>\n ) : (\n <div className=\"flex flex-col items-center justify-center h-full p-4 text-center text-muted-foreground\"></div>\n )}\n </ScrollArea>\n </div>\n );\n}\n","import { useFreeBrowseStore } from \"@/store\";\nimport { Save, Pencil, Undo } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Label } from \"@/components/ui/label\";\nimport { Input } from \"@/components/ui/input\";\nimport { LabeledSliderWithInput } from \"@/components/ui/labeled-slider-with-input\";\nimport { Select } from \"@/components/ui/select\";\nimport NiiVue from \"@niivue/niivue\";\n\ninterface DrawingTabProps {\n nvRef: React.RefObject<NiiVue | null>;\n onDrawModeChange: (mode: \"none\" | \"pen\" | \"wand\") => void;\n onDrawingColormapChange: (\n event: React.ChangeEvent<HTMLSelectElement>,\n ) => void;\n onPenFillChange: (checked: boolean) => void;\n onPenErasesChange: (checked: boolean) => void;\n onPenValueChange: (value: number) => void;\n onDrawingOpacityChange: (value: number) => void;\n onMagicWand2dOnlyChange: (checked: boolean) => void;\n onMagicWandMaxDistanceChange: (value: number) => void;\n onMagicWandThresholdChange: (value: number) => void;\n onDrawUndo: () => void;\n onSaveDrawing: () => void;\n}\n\nexport default function DrawingTab({\n nvRef,\n onDrawModeChange,\n onDrawingColormapChange,\n onPenFillChange,\n onPenErasesChange,\n onPenValueChange,\n onDrawingOpacityChange,\n onMagicWand2dOnlyChange,\n onMagicWandMaxDistanceChange,\n onMagicWandThresholdChange,\n onDrawUndo,\n onSaveDrawing,\n}: DrawingTabProps) {\n const drawingOptions = useFreeBrowseStore((s) => s.drawingOptions);\n const setDrawingOptions = useFreeBrowseStore((s) => s.setDrawingOptions);\n\n // Drawing colormaps are the `_`-prefixed draw LUTs, NOT the volume colormaps.\n const drawColormaps: string[] = nvRef.current?.drawingColormaps ?? [];\n\n return (\n <div className=\"flex flex-col h-full\">\n <div className=\"border-b px-4 py-3\">\n <h2 className=\"text-lg font-semibold\">Drawing Tools</h2>\n <p className=\"text-sm text-muted-foreground\">Edit annotations</p>\n </div>\n <ScrollArea className=\"flex-1 min-h-0\">\n <div className=\"p-4 space-y-4\">\n {drawingOptions.enabled ? (\n <>\n {/* Drawing Filename Input */}\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Filename</Label>\n <Input\n type=\"text\"\n value={drawingOptions.filename}\n onChange={(e) =>\n setDrawingOptions((prev) => ({\n ...prev,\n filename: e.target.value,\n }))\n }\n placeholder=\"Enter filename...\"\n />\n </div>\n\n {/* Drawing Opacity Slider */}\n <LabeledSliderWithInput\n label=\"Drawing Opacity\"\n value={drawingOptions.opacity}\n onValueChange={onDrawingOpacityChange}\n min={0}\n max={1}\n step={0.01}\n />\n\n {/* Drawing Colormap */}\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Drawing Colormap</Label>\n <Select\n value={drawingOptions.colormap}\n onChange={onDrawingColormapChange}\n >\n {drawColormaps.map((cm) => (\n <option key={cm} value={cm}>\n {cm}\n </option>\n ))}\n </Select>\n </div>\n\n {/* Draw Mode Selector */}\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Draw Mode</Label>\n <Select\n value={drawingOptions.mode}\n onChange={(e) =>\n onDrawModeChange(e.target.value as \"none\" | \"pen\" | \"wand\")\n }\n >\n <option value=\"none\">None</option>\n <option value=\"pen\">Pen</option>\n <option value=\"wand\">Magic Wand</option>\n </Select>\n </div>\n\n {/* Undo Button - show when pen or wand mode is selected */}\n {(drawingOptions.mode === \"pen\" ||\n drawingOptions.mode === \"wand\") && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full\"\n onClick={onDrawUndo}\n >\n <Undo className=\"mr-2 h-4 w-4\" />\n Undo\n </Button>\n )}\n\n {/* Pen-related controls - show when pen or wand mode is selected */}\n {(drawingOptions.mode === \"pen\" ||\n drawingOptions.mode === \"wand\") && (\n <>\n {/* Pen Fill Checkbox - only show for pen mode */}\n {drawingOptions.mode === \"pen\" && (\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"pen-fill\"\n checked={drawingOptions.penFill}\n onCheckedChange={onPenFillChange}\n />\n <Label htmlFor=\"pen-fill\" className=\"text-sm font-medium\">\n Pen Fill\n </Label>\n </div>\n )}\n\n {/* Pen Erases Checkbox - only show for pen mode */}\n {drawingOptions.mode === \"pen\" && (\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"pen-erases\"\n checked={drawingOptions.penErases}\n onCheckedChange={onPenErasesChange}\n />\n <Label\n htmlFor=\"pen-erases\"\n className=\"text-sm font-medium\"\n >\n Pen Erases\n </Label>\n </div>\n )}\n\n {/* 2D Only Checkbox - only show for wand mode */}\n {drawingOptions.mode === \"wand\" && (\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"magic-wand-2d-only\"\n checked={drawingOptions.magicWand2dOnly}\n onCheckedChange={onMagicWand2dOnlyChange}\n />\n <Label\n htmlFor=\"magic-wand-2d-only\"\n className=\"text-sm font-medium\"\n >\n 2D Only\n </Label>\n </div>\n )}\n\n {/* Magic Wand Max Distance - only show for wand mode */}\n {drawingOptions.mode === \"wand\" && (\n <LabeledSliderWithInput\n label=\"Max Distance (mm)\"\n value={drawingOptions.magicWandMaxDistanceMM}\n onValueChange={onMagicWandMaxDistanceChange}\n min={2}\n max={500}\n step={1}\n />\n )}\n\n {/* Magic Wand Threshold Percentage - only show for wand mode */}\n {drawingOptions.mode === \"wand\" && (\n <LabeledSliderWithInput\n label=\"Threshold Percentage\"\n value={drawingOptions.magicWandThresholdPercent}\n onValueChange={onMagicWandThresholdChange}\n min={0.0}\n max={1.0}\n step={0.01}\n />\n )}\n\n {/* Pen Value Slider */}\n <LabeledSliderWithInput\n label=\"Pen Value\"\n value={drawingOptions.penValue}\n onValueChange={onPenValueChange}\n min={1}\n max={255}\n step={1}\n disabled={drawingOptions.penErases}\n />\n </>\n )}\n\n {/* Save Drawing Button */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full\"\n onClick={onSaveDrawing}\n >\n <Save className=\"mr-2 h-4 w-4\" />\n Save Drawing\n </Button>\n </>\n ) : (\n <div className=\"flex flex-col items-center justify-center h-full p-4 text-center text-muted-foreground\">\n <Pencil className=\"h-8 w-8 mb-2\" />\n <p>No drawing layer active</p>\n <p className=\"text-xs\">\n Create a drawing layer to access drawing tools\n </p>\n </div>\n )}\n </div>\n </ScrollArea>\n </div>\n );\n}\n","const ADJECTIVES = [\n \"Fantastic\", \"Bold\", \"Brave\", \"Calm\", \"Clever\", \"Curious\", \"Dapper\",\n \"Eager\", \"Fierce\", \"Gentle\", \"Happy\", \"Jolly\", \"Kind\", \"Lively\",\n \"Merry\", \"Noble\", \"Playful\", \"Proud\", \"Quick\", \"Quiet\", \"Radiant\",\n \"Silly\", \"Spry\", \"Sunny\", \"Swift\", \"Tidy\", \"Tiny\", \"Vivid\",\n \"Witty\", \"Wise\", \"Zany\", \"Zesty\", \"Amber\", \"Cosmic\", \"Dusty\",\n \"Golden\", \"Misty\", \"Nimble\", \"Plucky\", \"Steady\",\n];\n\nconst ANIMALS = [\n \"Pony\", \"Badger\", \"Beaver\", \"Bison\", \"Cheetah\", \"Dolphin\", \"Eagle\",\n \"Ferret\", \"Finch\", \"Fox\", \"Gecko\", \"Giraffe\", \"Hawk\", \"Hedgehog\",\n \"Heron\", \"Jaguar\", \"Koala\", \"Lemur\", \"Lynx\", \"Magpie\", \"Mongoose\",\n \"Narwhal\", \"Newt\", \"Octopus\", \"Osprey\", \"Otter\", \"Panda\", \"Penguin\",\n \"Pelican\", \"Puffin\", \"Raccoon\", \"Raven\", \"Rhino\", \"Salmon\", \"Seal\",\n \"Sloth\", \"Stoat\", \"Tapir\", \"Tiger\", \"Walrus\",\n];\n\nfunction pick<T>(arr: readonly T[]): T {\n return arr[Math.floor(Math.random() * arr.length)];\n}\n\nexport function randomSessionName(): string {\n return `${pick(ADJECTIVES)}${pick(ANIMALS)}`;\n}\n","import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport { Brain, Trash2, LogOut, Undo } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Select } from \"@/components/ui/select\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\nimport { LabeledSliderWithInput } from \"@/components/ui/labeled-slider-with-input\";\nimport { randomSessionName } from \"@/lib/random-session-name\";\nimport type { AiSessionSummary } from \"@/store/ai-slice\";\nimport { aiUrl } from \"@/lib/deployment-config\";\n\ninterface AiAnnotationTabProps {\n volumesCount: number;\n onNewSession: (sessionName: string) => Promise<void>;\n onLoadSession: (sessionId: string) => Promise<void>;\n onRunSegmentation: (mlId: string, labelValue: number) => Promise<void>;\n onExitAndSaveSession: () => Promise<void>;\n onExitAndDeleteSession: () => Promise<void>;\n onRefreshSessions: () => Promise<void>;\n onDrawModeChange: (mode: \"none\" | \"pen\" | \"wand\") => void;\n onDrawingOpacityChange: (value: number) => void;\n onPenValueChange: (value: number) => void;\n onPenFillChange: (checked: boolean) => void;\n onPenErasesChange: (checked: boolean) => void;\n onMagicWand2dOnlyChange: (checked: boolean) => void;\n onMagicWandMaxDistanceChange: (value: number) => void;\n onMagicWandThresholdChange: (value: number) => void;\n onDrawUndo: () => void;\n}\n\ntype ModelInfo = {\n ml_id: string;\n name: string;\n config_path: string | null;\n};\n\nexport default function AiAnnotationTab({\n volumesCount,\n onNewSession,\n onLoadSession,\n onRunSegmentation,\n onExitAndSaveSession,\n onExitAndDeleteSession,\n onRefreshSessions,\n onDrawModeChange,\n onDrawingOpacityChange,\n onPenValueChange,\n onPenFillChange,\n onPenErasesChange,\n onMagicWand2dOnlyChange,\n onMagicWandMaxDistanceChange,\n onMagicWandThresholdChange,\n onDrawUndo,\n}: AiAnnotationTabProps) {\n const aiSessions = useFreeBrowseStore((s) => s.aiSessions);\n const activeSession = useFreeBrowseStore((s) => s.aiActiveSession);\n const drawingOptions = useFreeBrowseStore((s) => s.drawingOptions);\n\n const [sessionName, setSessionName] = useState<string>(() => randomSessionName());\n const [selectedSessionId, setSelectedSessionId] = useState<string>(\"\");\n const [newError, setNewError] = useState<string | null>(null);\n const [loading, setLoading] = useState<boolean>(false);\n\n const [models, setModels] = useState<ModelInfo[]>([]);\n const [selectedMlId, setSelectedMlId] = useState<string>(\"\");\n const [labelValue, setLabelValue] = useState<number>(1);\n const [inferring, setInferring] = useState<boolean>(false);\n const [inferError, setInferError] = useState<string | null>(null);\n const [exitBusy, setExitBusy] = useState<boolean>(false);\n\n useEffect(() => {\n void onRefreshSessions();\n }, [onRefreshSessions]);\n\n const fetchModels = useCallback(async () => {\n try {\n const res = await fetch(aiUrl(\"model/list\"));\n if (!res.ok) throw new Error(`GET /ai/model/list failed: ${res.status}`);\n const body: ModelInfo[] = await res.json();\n setModels(body);\n setSelectedMlId((prev) =>\n prev && body.some((m) => m.ml_id === prev)\n ? prev\n : body[0]?.ml_id ?? \"\",\n );\n } catch (err) {\n console.error(err);\n }\n }, []);\n\n useEffect(() => {\n void fetchModels();\n }, [fetchModels]);\n\n const sessionsById = useMemo(() => {\n const map: Record<string, AiSessionSummary> = {};\n for (const s of aiSessions) map[s.session_id] = s;\n return map;\n }, [aiSessions]);\n\n const handleClickNewSession = async () => {\n setNewError(null);\n setLoading(true);\n try {\n await onNewSession(sessionName);\n } catch (err) {\n setNewError(err instanceof Error ? err.message : String(err));\n setSessionName(randomSessionName());\n } finally {\n setLoading(false);\n }\n };\n\n const handleClickLoadSession = async () => {\n if (!selectedSessionId) return;\n setLoading(true);\n try {\n await onLoadSession(selectedSessionId);\n } catch (err) {\n console.error(\"Load Session failed:\", err);\n setNewError(err instanceof Error ? err.message : String(err));\n } finally {\n setLoading(false);\n }\n };\n\n const handleLoadModels = () => {\n void fetchModels();\n };\n\n const handleRunSegmentation = async () => {\n if (!activeSession || !selectedMlId) return;\n setInferError(null);\n setInferring(true);\n try {\n await onRunSegmentation(selectedMlId, labelValue);\n } catch (err) {\n setInferError(err instanceof Error ? err.message : String(err));\n } finally {\n setInferring(false);\n }\n };\n\n const handleExitAndSave = async () => {\n setInferError(null);\n setExitBusy(true);\n try {\n await onExitAndSaveSession();\n } catch (err) {\n setInferError(err instanceof Error ? err.message : String(err));\n } finally {\n setExitBusy(false);\n }\n };\n\n const handleExitAndDelete = async () => {\n setInferError(null);\n setExitBusy(true);\n try {\n await onExitAndDeleteSession();\n } catch (err) {\n setInferError(err instanceof Error ? err.message : String(err));\n } finally {\n setExitBusy(false);\n }\n };\n\n const handleClickMode = (mode: \"positive\" | \"negative\") => {\n const value = mode === \"positive\" ? 1 : 2;\n onPenValueChange(value);\n if (drawingOptions.mode !== \"pen\") onDrawModeChange(\"pen\");\n };\n\n const renderPreSession = () => (\n <div className=\"p-4 space-y-6\">\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Session Name</Label>\n <Input\n type=\"text\"\n value={sessionName}\n onChange={(e) => setSessionName(e.target.value)}\n placeholder=\"Enter session name...\"\n />\n <Button\n className=\"w-full\"\n onClick={handleClickNewSession}\n disabled={volumesCount === 0 || loading}\n >\n New Session\n </Button>\n {volumesCount === 0 && (\n <p className=\"text-xs text-muted-foreground\">\n Load a volume before creating a session.\n </p>\n )}\n {newError && <p className=\"text-xs text-destructive\">{newError}</p>}\n </div>\n\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Previous Sessions</Label>\n <Select\n value={selectedSessionId}\n onChange={(e) => setSelectedSessionId(e.target.value)}\n disabled={aiSessions.length === 0 || loading}\n >\n <option value=\"\">\n {aiSessions.length === 0\n ? \"(no sessions)\"\n : \"Select a session...\"}\n </option>\n {aiSessions.map((s) => (\n <option key={s.session_id} value={s.session_id}>\n {s.session_name}\n </option>\n ))}\n </Select>\n <Button\n variant=\"outline\"\n className=\"w-full\"\n onClick={handleClickLoadSession}\n disabled={!selectedSessionId || loading}\n >\n Load Session\n </Button>\n {selectedSessionId && sessionsById[selectedSessionId] && (\n <p className=\"text-xs text-muted-foreground\">\n volume: {sessionsById[selectedSessionId].volume_path ?? \"—\"}\n <br />\n annotations:{\" \"}\n {sessionsById[selectedSessionId].annotation_path ?? \"—\"}\n </p>\n )}\n </div>\n </div>\n );\n\n const renderPostSession = () => {\n if (!activeSession) return null;\n return (\n <div className=\"p-4 space-y-4\">\n <div className=\"space-y-1\">\n <Label className=\"text-sm font-medium\">Session</Label>\n <p className=\"text-sm\">\n {activeSession.session_name}{\" \"}\n <span className=\"text-xs text-muted-foreground\">\n ({activeSession.session_id.slice(0, 8)}…)\n </span>\n </p>\n </div>\n\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full\"\n onClick={() => void handleExitAndSave()}\n disabled={inferring || exitBusy}\n >\n <LogOut className=\"mr-2 h-4 w-4\" />\n Exit and Save Session\n </Button>\n <Button\n variant=\"destructive\"\n size=\"sm\"\n className=\"w-full\"\n onClick={() => void handleExitAndDelete()}\n disabled={inferring || exitBusy}\n >\n <Trash2 className=\"mr-2 h-4 w-4\" />\n Exit and Delete Session\n </Button>\n\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Select AI model</Label>\n <Select\n value={selectedMlId}\n onChange={(e) => setSelectedMlId(e.target.value)}\n >\n {models.length === 0 ? (\n <option value=\"\">(no models available)</option>\n ) : (\n models.map((m) => (\n <option key={m.ml_id} value={m.ml_id}>\n {m.name}\n </option>\n ))\n )}\n </Select>\n <Button variant=\"outline\" className=\"w-full\" onClick={handleLoadModels}>\n Reload Models\n </Button>\n </div>\n\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Draw Mode</Label>\n <Select\n value={drawingOptions.mode}\n onChange={(e) =>\n onDrawModeChange(e.target.value as \"none\" | \"pen\" | \"wand\")\n }\n >\n <option value=\"none\">None</option>\n <option value=\"pen\">Pen</option>\n <option value=\"wand\">Magic Wand</option>\n </Select>\n </div>\n\n <LabeledSliderWithInput\n label=\"Drawing Opacity\"\n value={drawingOptions.opacity}\n onValueChange={onDrawingOpacityChange}\n min={0}\n max={1}\n step={0.01}\n />\n\n {(drawingOptions.mode === \"pen\" || drawingOptions.mode === \"wand\") && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full\"\n onClick={onDrawUndo}\n >\n <Undo className=\"mr-2 h-4 w-4\" />\n Undo\n </Button>\n )}\n\n {drawingOptions.mode === \"pen\" && (\n <>\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"ai-pen-fill\"\n checked={drawingOptions.penFill}\n onCheckedChange={onPenFillChange}\n />\n <Label htmlFor=\"ai-pen-fill\" className=\"text-sm font-medium\">\n Pen Fill\n </Label>\n </div>\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"ai-pen-erases\"\n checked={drawingOptions.penErases}\n onCheckedChange={onPenErasesChange}\n />\n <Label htmlFor=\"ai-pen-erases\" className=\"text-sm font-medium\">\n Pen Erases\n </Label>\n </div>\n </>\n )}\n\n {drawingOptions.mode === \"wand\" && (\n <>\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"ai-magic-wand-2d-only\"\n checked={drawingOptions.magicWand2dOnly}\n onCheckedChange={onMagicWand2dOnlyChange}\n />\n <Label\n htmlFor=\"ai-magic-wand-2d-only\"\n className=\"text-sm font-medium\"\n >\n 2D Only\n </Label>\n </div>\n <LabeledSliderWithInput\n label=\"Max Distance (mm)\"\n value={drawingOptions.magicWandMaxDistanceMM}\n onValueChange={onMagicWandMaxDistanceChange}\n min={2}\n max={500}\n step={1}\n />\n <LabeledSliderWithInput\n label=\"Threshold Percentage\"\n value={drawingOptions.magicWandThresholdPercent}\n onValueChange={onMagicWandThresholdChange}\n min={0.0}\n max={1.0}\n step={0.01}\n />\n </>\n )}\n\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Click Mode</Label>\n <div className=\"flex gap-2\">\n <Button\n variant={drawingOptions.penValue === 1 ? \"default\" : \"outline\"}\n size=\"sm\"\n className=\"flex-1\"\n onClick={() => handleClickMode(\"positive\")}\n >\n + Positive\n </Button>\n <Button\n variant={drawingOptions.penValue === 2 ? \"default\" : \"outline\"}\n size=\"sm\"\n className=\"flex-1\"\n onClick={() => handleClickMode(\"negative\")}\n >\n − Negative\n </Button>\n </div>\n </div>\n\n <LabeledSliderWithInput\n label=\"Result label value\"\n value={labelValue}\n onValueChange={setLabelValue}\n min={0}\n max={255}\n step={1}\n decimalPlaces={0}\n />\n <p className=\"text-xs text-muted-foreground -mt-2\">\n Foreground voxel value in the returned mask.\n </p>\n\n <Button\n className=\"w-full\"\n onClick={() => void handleRunSegmentation()}\n disabled={!selectedMlId || inferring || exitBusy}\n >\n <Brain className=\"mr-2 h-4 w-4\" />\n {inferring ? \"Running segmentation…\" : \"Run Segmentation\"}\n </Button>\n\n {inferError && (\n <p className=\"text-xs text-destructive\">{inferError}</p>\n )}\n </div>\n );\n };\n\n return (\n <div className=\"flex flex-col h-full\">\n <div className=\"border-b px-4 py-3\">\n <h2 className=\"text-lg font-semibold\">AI annotation (experimental)</h2>\n <p className=\"text-sm text-muted-foreground\">\n Guide an AI model with positive and negative seed voxels.\n </p>\n </div>\n <ScrollArea className=\"flex-1 min-h-0\">\n {activeSession ? renderPostSession() : renderPreSession()}\n </ScrollArea>\n </div>\n );\n}\n","import { useFreeBrowseStore } from \"@/store\";\nimport { FileText, Box, Brain, Database, Pencil } from \"lucide-react\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { cn } from \"@/lib/utils\";\nimport type { NiiVue, NVImage, NVMeshLayer } from \"@niivue/niivue\";\nimport type { FileItem } from \"@/components/file-list\";\nimport NvdTab from \"@/components/tabs/nvd-tab\";\nimport DataTab from \"@/components/tabs/data-tab\";\nimport SceneDetailsTab from \"@/components/tabs/scene-details-tab\";\nimport SurfaceDetailsTab from \"@/components/tabs/surface-details-tab\";\nimport DrawingTab from \"@/components/tabs/drawing-tab\";\nimport AiAnnotationTab from \"@/components/tabs/ai-annotation-tab\";\nimport { Sparkles } from \"lucide-react\";\n\ninterface SidebarProps {\n nvRef: React.RefObject<NiiVue | null>;\n serverlessMode: boolean;\n // File loading\n onNvdFileSelect: (file: FileItem) => void;\n onImagingFileSelect: (file: FileItem) => void;\n onAddMoreFiles: () => void;\n onAddSurfaceFiles: () => void;\n // Volume operations\n getVolumes: () => NVImage[];\n onToggleImageVisibility: (id: string) => void;\n onEditVolume: (index: number) => void;\n canEditVolume: (index: number) => boolean;\n onRemoveVolumeClick: (index: number) => void;\n onOpacityChange: (value: number) => void;\n onFrameChange: (value: number) => void;\n onContrastMinChange: (value: number) => void;\n onContrastMaxChange: (value: number) => void;\n onColormapChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;\n onMoveVolumeUp: () => void;\n onMoveVolumeDown: () => void;\n // Surface operations\n onToggleSurfaceVisibility: (index: number) => void;\n onRemoveSurfaceClick: (index: number) => void;\n onSurfaceOpacityChange: (value: number) => void;\n onSurfaceColorChange: (hexColor: string) => void;\n onMeshShaderChange: (shaderName: string) => void;\n // Layer operations\n getLayers: () => NVMeshLayer[];\n onAddLayerFiles: () => void;\n onRemoveLayer: (index: number) => void;\n onLayerOpacityChange: (value: number) => void;\n onLayerCalMinChange: (value: number) => void;\n onLayerCalMaxChange: (value: number) => void;\n onLayerColormapChange: (colormap: string) => void;\n onLayerUseNegativeCmapChange: (checked: boolean) => void;\n // Drawing operations\n onCreateDrawingLayer: () => void;\n onDrawModeChange: (mode: \"none\" | \"pen\" | \"wand\") => void;\n onDrawingColormapChange: (\n event: React.ChangeEvent<HTMLSelectElement>,\n ) => void;\n onPenFillChange: (checked: boolean) => void;\n onPenErasesChange: (checked: boolean) => void;\n onPenValueChange: (value: number) => void;\n onDrawingOpacityChange: (value: number) => void;\n onMagicWand2dOnlyChange: (checked: boolean) => void;\n onMagicWandMaxDistanceChange: (value: number) => void;\n onMagicWandThresholdChange: (value: number) => void;\n onDrawUndo: () => void;\n onSaveDrawing: () => void;\n // Save operations\n onSaveScene: (isDownload: boolean) => void;\n // AI annotation operations\n onAiNewSession: (sessionName: string) => Promise<void>;\n onAiLoadSession: (sessionId: string) => Promise<void>;\n onAiRunSegmentation: (mlId: string, labelValue: number) => Promise<void>;\n onAiExitAndSaveSession: () => Promise<void>;\n onAiExitAndDeleteSession: () => Promise<void>;\n onAiRefreshSessions: () => Promise<void>;\n}\n\nexport default function Sidebar(props: SidebarProps) {\n const activeTab = useFreeBrowseStore((s) => s.activeTab);\n const setActiveTab = useFreeBrowseStore((s) => s.setActiveTab);\n const drawingOptions = useFreeBrowseStore((s) => s.drawingOptions);\n const aiEnabled = useFreeBrowseStore((s) => s.aiEnabled);\n const showAiTab = !props.serverlessMode && aiEnabled === true;\n\n return (\n <aside\n className={cn(\n \"border-l bg-background w-80 overflow-hidden flex flex-col\",\n )}\n >\n <Tabs\n value={activeTab}\n onValueChange={setActiveTab}\n className=\"flex flex-col flex-1 min-h-0\"\n >\n <TabsList className=\"w-full justify-start border-b rounded-none px-2 h-12 flex-shrink-0\">\n <TabsTrigger\n value=\"sceneDetails\"\n className=\"data-[state=active]:bg-muted\"\n >\n <Box className=\"h-4 w-4 mr-2\" />\n </TabsTrigger>\n <TabsTrigger\n value=\"surfaceDetails\"\n className=\"data-[state=active]:bg-muted\"\n >\n <Brain className=\"h-4 w-4 mr-2\" />\n </TabsTrigger>\n <TabsTrigger\n value=\"drawing\"\n className={cn(\n \"data-[state=active]:bg-muted\",\n !drawingOptions.enabled && \"text-muted-foreground\",\n )}\n disabled={!drawingOptions.enabled}\n >\n <Pencil className=\"h-4 w-4 mr-2\" />\n </TabsTrigger>\n {showAiTab && (\n <TabsTrigger\n value=\"aiAnnotation\"\n className=\"data-[state=active]:bg-muted\"\n >\n <Sparkles className=\"h-4 w-4 mr-2\" />\n </TabsTrigger>\n )}\n {!props.serverlessMode && (\n <TabsTrigger value=\"nvds\" className=\"data-[state=active]:bg-muted\">\n <FileText className=\"h-4 w-4 mr-2\" />\n </TabsTrigger>\n )}\n {!props.serverlessMode && (\n <TabsTrigger value=\"data\" className=\"data-[state=active]:bg-muted\">\n <Database className=\"h-4 w-4 mr-2\" />\n </TabsTrigger>\n )}\n </TabsList>\n\n <TabsContent value=\"sceneDetails\" className=\"flex-1 min-h-0 p-0\">\n <SceneDetailsTab\n nvRef={props.nvRef}\n serverlessMode={props.serverlessMode}\n getVolumes={props.getVolumes}\n onToggleVisibility={props.onToggleImageVisibility}\n onEditVolume={props.onEditVolume}\n canEditVolume={props.canEditVolume}\n onRemoveVolume={props.onRemoveVolumeClick}\n onAddMoreFiles={props.onAddMoreFiles}\n onCreateDrawingLayer={props.onCreateDrawingLayer}\n onSaveScene={props.onSaveScene}\n onOpacityChange={props.onOpacityChange}\n onFrameChange={props.onFrameChange}\n onContrastMinChange={props.onContrastMinChange}\n onContrastMaxChange={props.onContrastMaxChange}\n onColormapChange={props.onColormapChange}\n onMoveVolumeUp={props.onMoveVolumeUp}\n onMoveVolumeDown={props.onMoveVolumeDown}\n />\n </TabsContent>\n\n <TabsContent value=\"surfaceDetails\" className=\"flex-1 min-h-0 p-0\">\n <SurfaceDetailsTab\n nvRef={props.nvRef}\n onToggleVisibility={props.onToggleSurfaceVisibility}\n onRemoveSurface={props.onRemoveSurfaceClick}\n onAddSurfaceFiles={props.onAddSurfaceFiles}\n onOpacityChange={props.onSurfaceOpacityChange}\n onColorChange={props.onSurfaceColorChange}\n onShaderChange={props.onMeshShaderChange}\n getLayers={props.getLayers}\n onAddLayerFiles={props.onAddLayerFiles}\n onRemoveLayer={props.onRemoveLayer}\n onLayerOpacityChange={props.onLayerOpacityChange}\n onLayerCalMinChange={props.onLayerCalMinChange}\n onLayerCalMaxChange={props.onLayerCalMaxChange}\n onLayerColormapChange={props.onLayerColormapChange}\n onLayerUseNegativeCmapChange={props.onLayerUseNegativeCmapChange}\n />\n </TabsContent>\n\n <TabsContent value=\"drawing\" className=\"flex-1 min-h-0 p-0\">\n <DrawingTab\n nvRef={props.nvRef}\n onDrawModeChange={props.onDrawModeChange}\n onDrawingColormapChange={props.onDrawingColormapChange}\n onPenFillChange={props.onPenFillChange}\n onPenErasesChange={props.onPenErasesChange}\n onPenValueChange={props.onPenValueChange}\n onDrawingOpacityChange={props.onDrawingOpacityChange}\n onMagicWand2dOnlyChange={props.onMagicWand2dOnlyChange}\n onMagicWandMaxDistanceChange={props.onMagicWandMaxDistanceChange}\n onMagicWandThresholdChange={props.onMagicWandThresholdChange}\n onDrawUndo={props.onDrawUndo}\n onSaveDrawing={props.onSaveDrawing}\n />\n </TabsContent>\n\n {showAiTab && (\n <TabsContent value=\"aiAnnotation\" className=\"flex-1 min-h-0 p-0\">\n <AiAnnotationTab\n volumesCount={props.getVolumes().length}\n onNewSession={props.onAiNewSession}\n onLoadSession={props.onAiLoadSession}\n onRunSegmentation={props.onAiRunSegmentation}\n onExitAndSaveSession={props.onAiExitAndSaveSession}\n onExitAndDeleteSession={props.onAiExitAndDeleteSession}\n onRefreshSessions={props.onAiRefreshSessions}\n onDrawModeChange={props.onDrawModeChange}\n onDrawingOpacityChange={props.onDrawingOpacityChange}\n onPenValueChange={props.onPenValueChange}\n onPenFillChange={props.onPenFillChange}\n onPenErasesChange={props.onPenErasesChange}\n onMagicWand2dOnlyChange={props.onMagicWand2dOnlyChange}\n onMagicWandMaxDistanceChange={props.onMagicWandMaxDistanceChange}\n onMagicWandThresholdChange={props.onMagicWandThresholdChange}\n onDrawUndo={props.onDrawUndo}\n />\n </TabsContent>\n )}\n\n <TabsContent value=\"nvds\" className=\"flex-1 min-h-0 p-0\">\n {!props.serverlessMode && (\n <NvdTab onFileSelect={props.onNvdFileSelect} />\n )}\n </TabsContent>\n\n <TabsContent value=\"data\" className=\"flex-1 min-h-0 p-0\">\n {!props.serverlessMode && (\n <DataTab onFileSelect={props.onImagingFileSelect} />\n )}\n </TabsContent>\n </Tabs>\n </aside>\n );\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { X } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DialogProps {\n open?: boolean\n onOpenChange?: (open: boolean) => void\n children: React.ReactNode\n}\n\nconst Dialog = ({ open = false, onOpenChange, children }: DialogProps) => {\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" && open) {\n onOpenChange?.(false)\n }\n }\n\n // Escape closes while open. No body-scroll lock: the overlay is confined to\n // the viewer (absolute within `.freebrowse-root`), so the host page's\n // scrolling is none of our business.\n if (open) {\n document.addEventListener(\"keydown\", handleEscape)\n }\n\n return () => {\n document.removeEventListener(\"keydown\", handleEscape)\n }\n }, [open, onOpenChange])\n\n if (!open) return null\n\n return (\n <div className=\"absolute inset-0 z-50 flex items-center justify-center\">\n {/* Backdrop */}\n <div\n className=\"absolute inset-0 bg-black/50\"\n onClick={() => onOpenChange?.(false)}\n />\n {/* Dialog content */}\n <div className=\"relative\">\n {children}\n </div>\n </div>\n )\n}\n\nconst DialogContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n onClose?: () => void\n }\n>(({ className, children, onClose, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"relative bg-background border rounded-lg shadow-lg p-6 w-full max-w-lg mx-4\",\n \"animate-in fade-in-0 zoom-in-95\",\n className\n )}\n {...props}\n >\n {onClose && (\n <button\n onClick={onClose}\n className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n )}\n {children}\n </div>\n))\nDialogContent.displayName = \"DialogContent\"\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"flex flex-col space-y-1.5 text-center sm:text-left mb-4\", className)}\n {...props}\n />\n)\n\nconst DialogTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn(\"text-lg font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n))\nDialogTitle.displayName = \"DialogTitle\"\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = \"DialogDescription\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2 mt-6\", className)}\n {...props}\n />\n)\n\nexport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n}","import { useFreeBrowseStore } from \"@/store\";\nimport { Button } from \"@/components/ui/button\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Label } from \"@/components/ui/label\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n} from \"@/components/ui/dialog\";\n\ninterface RemoveDialogProps {\n onConfirm: () => void;\n onCancel: () => void;\n}\n\nexport default function RemoveDialog({ onConfirm, onCancel }: RemoveDialogProps) {\n const removeDialogOpen = useFreeBrowseStore((s) => s.removeDialogOpen);\n const setRemoveDialogOpen = useFreeBrowseStore((s) => s.setRemoveDialogOpen);\n const skipRemoveConfirmation = useFreeBrowseStore((s) => s.skipRemoveConfirmation);\n const setSkipRemoveConfirmation = useFreeBrowseStore((s) => s.setSkipRemoveConfirmation);\n const surfaceToRemove = useFreeBrowseStore((s) => s.surfaceToRemove);\n\n return (\n <Dialog open={removeDialogOpen} onOpenChange={setRemoveDialogOpen}>\n <DialogContent onClose={onCancel}>\n <DialogHeader>\n <DialogTitle>\n {surfaceToRemove !== null ? \"Remove Surface\" : \"Remove Volume\"}\n </DialogTitle>\n <DialogDescription>\n Are you sure you want to remove this {surfaceToRemove !== null ? \"surface\" : \"volume\"}?\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"flex items-center space-x-2 mt-4\">\n <Checkbox\n id=\"dont-ask-again\"\n checked={skipRemoveConfirmation}\n onCheckedChange={(checked) =>\n setSkipRemoveConfirmation(checked === true)\n }\n />\n <Label htmlFor=\"dont-ask-again\" className=\"text-sm\">\n Don't ask me again\n </Label>\n </div>\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={onCancel}>\n Cancel\n </Button>\n <Button variant=\"destructive\" onClick={onConfirm}>\n Remove\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","\"use client\";\n\n// src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// src/radio.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 { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = \"on\",\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n return /* @__PURE__ */ jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n RadioBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = React.forwardRef(\n ({\n __scopeRadio,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// src/radio-group.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange,\n caller: RADIO_GROUP_NAME\n });\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: forwardedRef\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !isDisabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n Radio,\n {\n disabled: isDisabled,\n required: context.required,\n checked,\n ...radioScope,\n ...itemProps,\n name: context.name,\n ref: composedRefs,\n onCheck: () => context.onValueChange(itemProps.value),\n onKeyDown: composeEventHandlers2((event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(itemProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })\n }\n )\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nvar Root2 = RadioGroup;\nvar Item2 = RadioGroupItem;\nvar Indicator = RadioGroupIndicator;\nexport {\n Indicator,\n Item2 as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n Root2 as Root,\n createRadioGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { CircleIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","import { useFreeBrowseStore } from \"@/store\";\nimport { Button } from \"@/components/ui/button\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Label } from \"@/components/ui/label\";\nimport { Input } from \"@/components/ui/input\";\nimport { RadioGroup, RadioGroupItem } from \"@/components/ui/radio-group\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n} from \"@/components/ui/dialog\";\nimport type { NvdFormat } from \"@/store/types\";\nimport type { NiiVue } from \"@niivue/niivue\";\n\ninterface SaveDialogProps {\n nvRef: React.RefObject<NiiVue | null>;\n onConfirm: () => void;\n onCancel: () => void;\n onVolumeUrlChange: (index: number, url: string) => void;\n onVolumeCheckboxChange: (index: number, enabled: boolean) => void;\n onDocumentLocationChange: (location: string) => void;\n onDocumentCheckboxChange: (enabled: boolean) => void;\n onDocumentFormatChange: (format: NvdFormat) => void;\n}\n\nexport default function SaveDialog({\n nvRef,\n onConfirm,\n onCancel,\n onVolumeUrlChange,\n onVolumeCheckboxChange,\n onDocumentLocationChange,\n onDocumentCheckboxChange,\n onDocumentFormatChange,\n}: SaveDialogProps) {\n const saveDialogOpen = useFreeBrowseStore((s) => s.saveDialogOpen);\n const setSaveDialogOpen = useFreeBrowseStore((s) => s.setSaveDialogOpen);\n const saveState = useFreeBrowseStore((s) => s.saveState);\n\n return (\n <Dialog open={saveDialogOpen} onOpenChange={setSaveDialogOpen}>\n <DialogContent onClose={onCancel}>\n <DialogHeader>\n <DialogTitle>\n {saveState.isDownloadMode ? \"Download Scene\" : \"Save Scene\"}\n </DialogTitle>\n <DialogDescription>\n {saveState.isDownloadMode\n ? \"Select the files you want to download.\"\n : \"Enter the location where you want to save the scene.\"}\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"mt-4\">\n <div className=\"flex items-center gap-3 p-3 border rounded-md\">\n <Checkbox\n id=\"document-checkbox\"\n checked={saveState.document.enabled}\n onCheckedChange={onDocumentCheckboxChange}\n disabled={!saveState.document.location.trim()}\n />\n <div className=\"flex-1 min-w-0\">\n <Label\n htmlFor=\"document-checkbox\"\n className=\"text-sm font-medium\"\n >\n {saveState.isDownloadMode\n ? \"NiiVue Document Name\"\n : \"NiiVue Document Save Location\"}\n </Label>\n <Input\n id=\"save-location\"\n type=\"text\"\n placeholder={\n saveState.isDownloadMode\n ? \"Enter filename...\"\n : \"Enter file path...\"\n }\n value={saveState.document.location}\n onChange={(e) => onDocumentLocationChange(e.target.value)}\n className=\"mt-1\"\n />\n\n <div className=\"mt-3\">\n <Label className=\"text-xs font-medium text-muted-foreground\">\n Format\n </Label>\n <RadioGroup\n value={saveState.document.format}\n onValueChange={(v) => onDocumentFormatChange(v as NvdFormat)}\n className=\"mt-1 flex gap-4\"\n >\n <div className=\"flex items-center gap-2\">\n <RadioGroupItem value=\"json\" id=\"format-json\" />\n <Label htmlFor=\"format-json\" className=\"text-sm font-normal\">\n JSON\n </Label>\n </div>\n <div className=\"flex items-center gap-2\">\n <RadioGroupItem\n value=\"cbor\"\n id=\"format-cbor\"\n disabled={!saveState.isDownloadMode}\n />\n <Label\n htmlFor=\"format-cbor\"\n className=\"text-sm font-normal data-[disabled]:text-muted-foreground\"\n data-disabled={!saveState.isDownloadMode || undefined}\n >\n CBOR\n </Label>\n </div>\n </RadioGroup>\n {!saveState.isDownloadMode && (\n <p className=\"mt-1 text-xs text-muted-foreground\">\n CBOR is download-only: saving to the server rewrites each\n volume’s URL to its upload destination, which needs the\n text format.\n </p>\n )}\n </div>\n </div>\n </div>\n </div>\n\n {saveState.volumes.length > 0 && (\n <div className=\"mt-4\">\n <Label className=\"text-sm font-medium\">\n Volumes to {saveState.isDownloadMode ? \"Download\" : \"Save\"}\n </Label>\n <div className=\"mt-2 space-y-4 max-h-48 overflow-y-auto\">\n {saveState.volumes.map((volumeState, index) => {\n const volume = nvRef.current?.volumes[index];\n if (!volumeState || !volume) return null;\n\n return (\n <div\n key={index}\n className=\"flex items-center gap-3 p-3 border rounded-md\"\n >\n <Checkbox\n id={`volume-${index}`}\n checked={volumeState.enabled}\n onCheckedChange={(checked) =>\n onVolumeCheckboxChange(index, checked === true)\n }\n />\n <div className=\"flex-1 min-w-0\">\n <Label\n htmlFor={`volume-${index}`}\n className=\"text-sm font-medium\"\n >\n {volume.name || `Volume ${index + 1}`}\n </Label>\n <Input\n type=\"text\"\n placeholder={\n saveState.isDownloadMode\n ? \"Enter filename...\"\n : \"Enter path...\"\n }\n value={volumeState.url || \"\"}\n onChange={(e) =>\n onVolumeUrlChange(index, e.target.value)\n }\n className=\"mt-1 text-xs\"\n />\n {!saveState.isDownloadMode &&\n volumeState.isExternal &&\n !volumeState.enabled && (\n <p className=\"text-xs text-muted-foreground mt-1\">\n External URL - check to save with custom path\n </p>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n )}\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={onCancel}>\n Cancel\n </Button>\n <Button\n onClick={onConfirm}\n disabled={\n !saveState.document.enabled &&\n !saveState.volumes.some((v) => v.enabled)\n }\n >\n OK\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","import { useFreeBrowseStore } from \"@/store\";\nimport { useViewerOptions } from \"@/hooks/use-viewer-options\";\nimport { Eye, EyeOff } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Label } from \"@/components/ui/label\";\nimport { Input } from \"@/components/ui/input\";\nimport { LabeledSliderWithInput } from \"@/components/ui/labeled-slider-with-input\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n} from \"@/components/ui/dialog\";\nimport type { NiiVue } from \"@niivue/niivue\";\n\ninterface SettingsDialogProps {\n nvRef: React.RefObject<NiiVue | null>;\n}\n\nexport default function SettingsDialog({ nvRef }: SettingsDialogProps) {\n const settingsDialogOpen = useFreeBrowseStore((s) => s.settingsDialogOpen);\n const setSettingsDialogOpen = useFreeBrowseStore(\n (s) => s.setSettingsDialogOpen,\n );\n const skipRemoveConfirmation = useFreeBrowseStore(\n (s) => s.skipRemoveConfirmation,\n );\n const setSkipRemoveConfirmation = useFreeBrowseStore(\n (s) => s.setSkipRemoveConfirmation,\n );\n const skipImagingUploadConfirmation = useFreeBrowseStore(\n (s) => s.skipImagingUploadConfirmation,\n );\n const setSkipImagingUploadConfirmation = useFreeBrowseStore(\n (s) => s.setSkipImagingUploadConfirmation,\n );\n const skipSessionDeleteConfirmation = useFreeBrowseStore(\n (s) => s.skipSessionDeleteConfirmation,\n );\n const setSkipSessionDeleteConfirmation = useFreeBrowseStore(\n (s) => s.setSkipSessionDeleteConfirmation,\n );\n\n const {\n viewerOptions,\n handleCrosshairWidthChange,\n handleCrosshairGapChange,\n handleInterpolateVoxelsChange,\n handleCrosshairVisibleChange,\n handleCrosshairColorChange,\n handleOverlayOutlineWidthChange,\n handleColorbarChange,\n handleRadiologicalChange,\n } = useViewerOptions(nvRef);\n\n return (\n <Dialog open={settingsDialogOpen} onOpenChange={setSettingsDialogOpen}>\n <DialogContent\n onClose={() => setSettingsDialogOpen(false)}\n className=\"max-w-2xl\"\n >\n <DialogHeader>\n <DialogTitle>FreeBrowse Settings</DialogTitle>\n <DialogDescription>\n Configure the FreeBrowse viewer settings\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-x-8 gap-y-6 py-4\">\n {/* Left column: appearance controls */}\n <div className=\"space-y-6\">\n <h3 className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Appearance\n </h3>\n\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-sm font-medium\">Crosshair Width</Label>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 w-6 p-0\"\n onClick={() =>\n handleCrosshairVisibleChange(\n !viewerOptions.crosshairVisible,\n )\n }\n >\n {viewerOptions.crosshairVisible ? (\n <Eye className=\"h-4 w-4\" />\n ) : (\n <EyeOff className=\"h-4 w-4 opacity-50\" />\n )}\n </Button>\n </div>\n <LabeledSliderWithInput\n label=\"\"\n value={viewerOptions.crosshairWidth}\n onValueChange={handleCrosshairWidthChange}\n min={0.0}\n max={5}\n step={0.1}\n decimalPlaces={1}\n disabled={!viewerOptions.crosshairVisible}\n />\n </div>\n\n <div className=\"space-y-2\">\n <LabeledSliderWithInput\n label=\"Crosshair Gap\"\n value={viewerOptions.crosshairGap}\n onValueChange={handleCrosshairGapChange}\n min={0.0}\n max={10.0}\n step={0.5}\n decimalPlaces={1}\n disabled={!viewerOptions.crosshairVisible}\n />\n </div>\n\n <div className=\"space-y-2\">\n <Label className=\"text-sm font-medium\">Crosshair Color</Label>\n <Input\n type=\"color\"\n value={`#${Math.round(viewerOptions.crosshairColor[0] * 255)\n .toString(16)\n .padStart(2, \"0\")}${Math.round(\n viewerOptions.crosshairColor[1] * 255,\n )\n .toString(16)\n .padStart(2, \"0\")}${Math.round(\n viewerOptions.crosshairColor[2] * 255,\n )\n .toString(16)\n .padStart(2, \"0\")}`}\n onChange={(e) => handleCrosshairColorChange(e.target.value)}\n className=\"w-full h-10\"\n />\n </div>\n {/*\n // PW 20251210: Ruler UI elements commented out for now. Only shows\n // in first panel and unclear what the scale is\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-sm font-medium\">Ruler Width</Label>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 w-6 p-0\"\n onClick={() =>\n handleRulerVisibleChange(!viewerOptions.rulerVisible)\n }\n >\n {viewerOptions.rulerVisible ? (\n <Eye className=\"h-4 w-4\" />\n ) : (\n <EyeOff className=\"h-4 w-4 opacity-50\" />\n )}\n </Button>\n </div>\n <LabeledSliderWithInput\n label=\"\"\n value={viewerOptions.rulerWidth}\n onValueChange={handleRulerWidthChange}\n min={0.0}\n max={10.0}\n step={0.1}\n decimalPlaces={1}\n disabled={!viewerOptions.rulerVisible}\n />\n </div>\n */}\n\n <div className=\"space-y-2\">\n <LabeledSliderWithInput\n label=\"Overlay Outline Width\"\n value={viewerOptions.overlayOutlineWidth}\n onValueChange={handleOverlayOutlineWidthChange}\n min={0.0}\n max={2.0}\n step={0.1}\n decimalPlaces={1}\n />\n </div>\n </div>\n\n {/* Right column: view options and confirmation toggles */}\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h3 className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n View Options\n </h3>\n\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"show-colorbar\"\n checked={viewerOptions.isColorbar}\n onCheckedChange={(checked) =>\n handleColorbarChange(checked as boolean)\n }\n />\n <Label htmlFor=\"show-colorbar\" className=\"text-sm font-medium\">\n Show Colorbar\n </Label>\n </div>\n\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"radiological-view\"\n checked={viewerOptions.isRadiologicalConvention}\n onCheckedChange={(checked) =>\n handleRadiologicalChange(checked as boolean)\n }\n />\n <Label\n htmlFor=\"radiological-view\"\n className=\"text-sm font-medium\"\n >\n Radiological View\n </Label>\n </div>\n\n {/* \"Sagittal Nose on Left\" is hidden: niivue-mono has no such\n option (migration plan Step 8, item 8j). The store field and\n `handleSagittalNoseLeftChange` are kept so the toggle can be\n restored once upstream supports it. */}\n\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"interpolate-voxels\"\n checked={viewerOptions.interpolateVoxels}\n onCheckedChange={(checked) =>\n handleInterpolateVoxelsChange(checked as boolean)\n }\n />\n <Label\n htmlFor=\"interpolate-voxels\"\n className=\"text-sm font-medium\"\n >\n Interpolate Voxels\n </Label>\n </div>\n </div>\n\n <div className=\"space-y-3\">\n <h3 className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Confirmations\n </h3>\n\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"skip-remove-confirmation\"\n checked={skipRemoveConfirmation}\n onCheckedChange={(checked) =>\n setSkipRemoveConfirmation(checked as boolean)\n }\n />\n <Label\n htmlFor=\"skip-remove-confirmation\"\n className=\"text-sm font-medium\"\n >\n Don't ask me to confirm removals\n </Label>\n </div>\n\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"skip-imaging-upload-confirmation-settings\"\n checked={skipImagingUploadConfirmation}\n onCheckedChange={(checked) =>\n setSkipImagingUploadConfirmation(checked as boolean)\n }\n />\n <Label\n htmlFor=\"skip-imaging-upload-confirmation-settings\"\n className=\"text-sm font-medium\"\n >\n Don't ask me to confirm imaging data uploads\n </Label>\n </div>\n\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"skip-session-delete-confirmation-settings\"\n checked={skipSessionDeleteConfirmation}\n onCheckedChange={(checked) =>\n setSkipSessionDeleteConfirmation(checked as boolean)\n }\n />\n <Label\n htmlFor=\"skip-session-delete-confirmation-settings\"\n className=\"text-sm font-medium\"\n >\n Don't ask me to confirm session deletions\n </Label>\n </div>\n </div>\n </div>\n </div>\n\n <DialogFooter>\n <Button onClick={() => setSettingsDialogOpen(false)}>Close</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","import { useFreeBrowseStore } from \"@/store\";\nimport { Button } from \"@/components/ui/button\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Label } from \"@/components/ui/label\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n} from \"@/components/ui/dialog\";\n\ninterface ImagingUploadConfirmationDialogProps {\n onConfirm: () => void;\n onCancel: () => void;\n}\n\nexport default function ImagingUploadConfirmationDialog({\n onConfirm,\n onCancel,\n}: ImagingUploadConfirmationDialogProps) {\n const open = useFreeBrowseStore((s) => s.imagingUploadConfirmDialogOpen);\n const setOpen = useFreeBrowseStore((s) => s.setImagingUploadConfirmDialogOpen);\n const skip = useFreeBrowseStore((s) => s.skipImagingUploadConfirmation);\n const setSkip = useFreeBrowseStore((s) => s.setSkipImagingUploadConfirmation);\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogContent onClose={onCancel}>\n <DialogHeader>\n <DialogTitle>Upload imaging data to backend?</DialogTitle>\n <DialogDescription>\n Warning: this operation will transfer imaging data to the backend\n server. Are you sure you want to proceed?\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"flex items-center space-x-2 mt-4\">\n <Checkbox\n id=\"skip-imaging-upload-confirmation\"\n checked={skip}\n onCheckedChange={(checked) => setSkip(checked === true)}\n />\n <Label\n htmlFor=\"skip-imaging-upload-confirmation\"\n className=\"text-sm\"\n >\n Don't ask me again to confirm imaging data uploads\n </Label>\n </div>\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={onCancel}>\n Cancel\n </Button>\n <Button onClick={onConfirm}>Upload</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","import { useFreeBrowseStore } from \"@/store\";\nimport { Button } from \"@/components/ui/button\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Label } from \"@/components/ui/label\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n} from \"@/components/ui/dialog\";\n\ninterface SessionDeleteConfirmationDialogProps {\n onConfirm: () => void;\n onCancel: () => void;\n}\n\nexport default function SessionDeleteConfirmationDialog({\n onConfirm,\n onCancel,\n}: SessionDeleteConfirmationDialogProps) {\n const open = useFreeBrowseStore((s) => s.sessionDeleteConfirmDialogOpen);\n const setOpen = useFreeBrowseStore((s) => s.setSessionDeleteConfirmDialogOpen);\n const skip = useFreeBrowseStore((s) => s.skipSessionDeleteConfirmation);\n const setSkip = useFreeBrowseStore((s) => s.setSkipSessionDeleteConfirmation);\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogContent onClose={onCancel}>\n <DialogHeader>\n <DialogTitle>Delete this session?</DialogTitle>\n <DialogDescription>\n Are you sure you want to delete this session? The session folder\n and its contents will be removed from the backend.\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"flex items-center space-x-2 mt-4\">\n <Checkbox\n id=\"skip-session-delete-confirmation\"\n checked={skip}\n onCheckedChange={(checked) => setSkip(checked === true)}\n />\n <Label\n htmlFor=\"skip-session-delete-confirmation\"\n className=\"text-sm\"\n >\n Don't ask me to confirm session deletions\n </Label>\n </div>\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={onCancel}>\n Cancel\n </Button>\n <Button variant=\"destructive\" onClick={onConfirm}>\n Delete\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","import { useEffect, useRef } from \"react\";\nimport { registerNiiVueEvents } from \"@/store/niivue-sync\";\nimport { createStoreSyncTarget } from \"@/store/niivue-store-sync\";\nimport { useViewerOptions } from \"@/hooks/use-viewer-options\";\nimport { useVolumes } from \"@/hooks/use-volumes\";\nimport { useSurfaces } from \"@/hooks/use-surfaces\";\nimport { useMeshLayers } from \"@/hooks/use-mesh-layers\";\nimport { useDrawing } from \"@/hooks/use-drawing\";\nimport { useMagicWand } from \"@/hooks/use-magic-wand\";\nimport { useSave } from \"@/hooks/use-save\";\nimport { useFileLoading } from \"@/hooks/use-file-loading\";\nimport { useAiCapabilities } from \"@/hooks/use-ai-capabilities\";\nimport { useAiSession } from \"@/hooks/use-ai-session\";\nimport {\n resolveImagingUploadConfirmation,\n resolveSessionDeleteConfirmation,\n} from \"@/lib/confirmations\";\nimport type { NiiVue } from \"@niivue/niivue\";\nimport { getFreeBrowseConfig } from \"@/lib/deployment-config\";\nimport { useFreeBrowseStore } from \"@/store\";\nimport ViewerShell from \"./viewer-shell\";\nimport Sidebar from \"./sidebar\";\nimport RemoveDialog from \"./dialogs/remove-dialog\";\nimport SaveDialog from \"./dialogs/save-dialog\";\nimport SettingsDialog from \"./dialogs/settings-dialog\";\nimport ImagingUploadConfirmationDialog from \"./dialogs/imaging-upload-confirmation-dialog\";\nimport SessionDeleteConfirmationDialog from \"./dialogs/session-delete-confirmation-dialog\";\n\nexport interface FreeBrowseProps {\n /**\n * The NiiVue instance this UI reflects and drives. The app creates it with\n * `createFreeBrowseInstance()` (`lib/default-niivue-options.ts`); an\n * embedding host may pass its own.\n */\n nv: NiiVue;\n /**\n * Publish the instance as `window.freebrowse.nv` for external callers\n * (console, embedding pages). Defaults to the configured `exposeGlobal`\n * (app: true; library: false).\n */\n exposeGlobal?: boolean;\n /**\n * The instance belongs to the host: FreeBrowse must not push its stored\n * viewer defaults (view mode, crosshair, ruler, …) onto it. The store is\n * seeded FROM the instance instead. Default false (the app owns its instance).\n */\n hostInstance?: boolean;\n /**\n * Allow loading by drag-and-drop (niivue's canvas drop and FreeBrowse's\n * drop zone). `false` also skips the drop zone: the canvas is shown from\n * the start, since the host is expected to load data itself. Default true.\n */\n dragDrop?: boolean;\n /** Show the sidebar initially (the header button still toggles it). Default true. */\n sidebar?: boolean;\n /** Show the footer (coordinate readout) initially. Default true. */\n footer?: boolean;\n}\n\nexport default function FreeBrowse({\n nv,\n exposeGlobal,\n hostInstance = false,\n dragDrop,\n sidebar,\n footer,\n}: FreeBrowseProps) {\n const expose = exposeGlobal ?? getFreeBrowseConfig().exposeGlobal;\n\n // Initial layout / loading preferences from the host. Applied on mount and\n // whenever the props change; the user's own toggles are left alone otherwise.\n useEffect(() => {\n const patch: Partial<{\n dragDropEnabled: boolean;\n showUploader: boolean;\n sidebarOpen: boolean;\n footerOpen: boolean;\n }> = {};\n if (dragDrop !== undefined) {\n patch.dragDropEnabled = dragDrop;\n if (!dragDrop) patch.showUploader = false;\n }\n if (sidebar !== undefined) patch.sidebarOpen = sidebar;\n if (footer !== undefined) patch.footerOpen = footer;\n if (Object.keys(patch).length) useFreeBrowseStore.setState(patch);\n }, [dragDrop, sidebar, footer]);\n const nvRef = useRef<NiiVue | null>(nv);\n nvRef.current = nv;\n\n // Event-driven sync: the Zustand store is a derived view of niivue state.\n // registerNiiVueEvents subscribes the store adapter to niivue's events, so\n // both FreeBrowse's own command wrappers and external callers driving the\n // instance (window.freebrowse.nv) update the UI through the same path.\n useEffect(() => {\n const teardown = registerNiiVueEvents(nv, createStoreSyncTarget(nv));\n if (expose) window.freebrowse = { nv }; // typed in src/window.d.ts\n return () => {\n teardown();\n if (window.freebrowse?.nv === nv) delete window.freebrowse;\n };\n }, [nv, expose]);\n\n // --- Hooks ---\n const {\n viewerOptions,\n applyViewerOptions,\n syncViewerOptionsFromNiiVue,\n debouncedGLUpdate,\n } = useViewerOptions(nvRef, hostInstance ? \"sync\" : \"apply\");\n const {\n updateSurfaceDetails,\n toggleSurfaceVisibility,\n removeSurface,\n handleRemoveSurfaceClick,\n handleSurfaceOpacityChange,\n handleSurfaceColorChange,\n handleMeshShaderChange,\n } = useSurfaces(nvRef, debouncedGLUpdate);\n const {\n layerFileInputRef,\n getLayers,\n removeLayer: removeLayerFromMesh,\n handleLayerOpacityChange,\n handleLayerCalMinChange,\n handleLayerCalMaxChange,\n handleLayerColormapChange,\n handleLayerUseNegativeCmapChange,\n handleAddLayerFiles,\n handleLayerFileChange,\n } = useMeshLayers(nvRef);\n const {\n getVolumes,\n toggleImageVisibility,\n handleOpacityChange,\n handleFrameChange,\n handleContrastMinChange,\n handleContrastMaxChange,\n handleColormapChange,\n handleMoveVolumeUp,\n handleMoveVolumeDown,\n handleRemoveVolumeClick,\n handleEditVolume,\n canEditVolume,\n handleConfirmRemove,\n handleCancelRemove,\n } = useVolumes(nvRef, debouncedGLUpdate, removeSurface);\n const {\n handleCreateDrawingLayer,\n handleDrawingColormapChange,\n handleDrawModeChange,\n handlePenFillChange,\n handlePenErasesChange,\n handlePenValueChange,\n handleDrawingOpacityChange,\n handleMagicWand2dOnlyChange,\n handleMagicWandMaxDistanceChange,\n handleMagicWandThresholdChange,\n handleDrawUndo,\n handleSaveDrawing,\n } = useDrawing(nvRef, debouncedGLUpdate);\n // Magic wand (nv-ext-drawing): seeds a flood fill on slice clicks in wand\n // mode; params flow through the store, result via drawingChanged.\n useMagicWand(nvRef);\n const {\n handleSaveScene,\n handleConfirmSave,\n handleCancelSave,\n handleVolumeUrlChange,\n handleVolumeCheckboxChange,\n handleDocumentLocationChange,\n handleDocumentCheckboxChange,\n handleDocumentFormatChange,\n } = useSave(nvRef);\n const {\n serverlessMode,\n fileInputRef,\n surfaceFileInputRef,\n handleFileUpload,\n handleImagingFileSelect,\n handleNvdFileSelect,\n handleFileChange,\n handleAddMoreFiles,\n handleAddSurfaceFiles,\n handleSurfaceFileChange,\n } = useFileLoading(\n nvRef,\n applyViewerOptions,\n syncViewerOptionsFromNiiVue,\n updateSurfaceDetails,\n );\n\n useAiCapabilities();\n const {\n refreshSessions: handleAiRefreshSessions,\n handleNewSession: handleAiNewSession,\n handleLoadSession: handleAiLoadSession,\n handleRunSegmentation: handleAiRunSegmentation,\n handleExitAndSaveSession: handleAiExitAndSaveSession,\n handleExitAndDeleteSession: handleAiExitAndDeleteSession,\n } = useAiSession(nvRef);\n\n return (\n <ViewerShell\n nvInstance={nv}\n viewMode={viewerOptions.viewMode}\n onFileUpload={handleFileUpload}\n sidebar={\n <Sidebar\n nvRef={nvRef}\n serverlessMode={serverlessMode}\n onNvdFileSelect={handleNvdFileSelect}\n onImagingFileSelect={handleImagingFileSelect}\n onAddMoreFiles={handleAddMoreFiles}\n onAddSurfaceFiles={handleAddSurfaceFiles}\n getVolumes={getVolumes}\n onToggleImageVisibility={toggleImageVisibility}\n onEditVolume={handleEditVolume}\n canEditVolume={canEditVolume}\n onRemoveVolumeClick={handleRemoveVolumeClick}\n onOpacityChange={handleOpacityChange}\n onFrameChange={handleFrameChange}\n onContrastMinChange={handleContrastMinChange}\n onContrastMaxChange={handleContrastMaxChange}\n onColormapChange={handleColormapChange}\n onMoveVolumeUp={handleMoveVolumeUp}\n onMoveVolumeDown={handleMoveVolumeDown}\n onToggleSurfaceVisibility={toggleSurfaceVisibility}\n onRemoveSurfaceClick={handleRemoveSurfaceClick}\n onSurfaceOpacityChange={handleSurfaceOpacityChange}\n onSurfaceColorChange={handleSurfaceColorChange}\n onMeshShaderChange={handleMeshShaderChange}\n getLayers={getLayers}\n onAddLayerFiles={handleAddLayerFiles}\n onRemoveLayer={removeLayerFromMesh}\n onLayerOpacityChange={handleLayerOpacityChange}\n onLayerCalMinChange={handleLayerCalMinChange}\n onLayerCalMaxChange={handleLayerCalMaxChange}\n onLayerColormapChange={handleLayerColormapChange}\n onLayerUseNegativeCmapChange={handleLayerUseNegativeCmapChange}\n onCreateDrawingLayer={handleCreateDrawingLayer}\n onDrawModeChange={handleDrawModeChange}\n onDrawingColormapChange={handleDrawingColormapChange}\n onPenFillChange={handlePenFillChange}\n onPenErasesChange={handlePenErasesChange}\n onPenValueChange={handlePenValueChange}\n onDrawingOpacityChange={handleDrawingOpacityChange}\n onMagicWand2dOnlyChange={handleMagicWand2dOnlyChange}\n onMagicWandMaxDistanceChange={handleMagicWandMaxDistanceChange}\n onMagicWandThresholdChange={handleMagicWandThresholdChange}\n onDrawUndo={handleDrawUndo}\n onSaveDrawing={handleSaveDrawing}\n onSaveScene={handleSaveScene}\n onAiNewSession={handleAiNewSession}\n onAiLoadSession={handleAiLoadSession}\n onAiRunSegmentation={handleAiRunSegmentation}\n onAiExitAndSaveSession={handleAiExitAndSaveSession}\n onAiExitAndDeleteSession={handleAiExitAndDeleteSession}\n onAiRefreshSessions={handleAiRefreshSessions}\n />\n }\n dialogs={\n <>\n <RemoveDialog\n onConfirm={handleConfirmRemove}\n onCancel={handleCancelRemove}\n />\n <SaveDialog\n nvRef={nvRef}\n onConfirm={handleConfirmSave}\n onCancel={handleCancelSave}\n onVolumeUrlChange={handleVolumeUrlChange}\n onVolumeCheckboxChange={handleVolumeCheckboxChange}\n onDocumentLocationChange={handleDocumentLocationChange}\n onDocumentCheckboxChange={handleDocumentCheckboxChange}\n onDocumentFormatChange={handleDocumentFormatChange}\n />\n <SettingsDialog nvRef={nvRef} />\n <ImagingUploadConfirmationDialog\n onConfirm={() => resolveImagingUploadConfirmation(true)}\n onCancel={() => resolveImagingUploadConfirmation(false)}\n />\n <SessionDeleteConfirmationDialog\n onConfirm={() => resolveSessionDeleteConfirmation(true)}\n onCancel={() => resolveSessionDeleteConfirmation(false)}\n />\n </>\n }\n hiddenInputs={\n <>\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileChange}\n multiple\n className=\"hidden\"\n />\n <input\n type=\"file\"\n ref={surfaceFileInputRef}\n onChange={handleSurfaceFileChange}\n multiple\n className=\"hidden\"\n />\n <input\n type=\"file\"\n ref={layerFileInputRef}\n onChange={handleLayerFileChange}\n multiple\n className=\"hidden\"\n />\n </>\n }\n />\n );\n}\n","import { NiiVue, type NiiVueOptions } from \"@niivue/niivue\";\n\n/**\n * The options FreeBrowse constructs its NiiVue instance with. Shared by the\n * app entry (`main.tsx`) and the library (`createFreeBrowseInstance`) so both\n * produce identical instances. No `backend` option: niivue picks WebGPU when\n * `navigator.gpu` exists and falls back to WebGL2 otherwise.\n */\nexport const DEFAULT_NIIVUE_OPTIONS: Partial<NiiVueOptions> = {\n placeholderText: \"Drag-drop images\",\n isDragDropEnabled: true,\n backgroundColor: [0, 0, 0, 1],\n crosshairColor: [1.0, 0.0, 0.0, 0.5],\n};\n\n/** Overrides the QA route applies on top of the defaults. */\nexport const QA_VIEWER_NIIVUE_OPTIONS: Partial<NiiVueOptions> = {\n placeholderText: \"\",\n isDragDropEnabled: false,\n crosshairColor: [1.0, 0.88, 0.88, 1.0],\n crosshairWidth: 0.3,\n crosshairGap: 10,\n};\n\n/**\n * Build a NiiVue instance the way FreeBrowse does. A host that wants FreeBrowse\n * to own the instance calls this (or lets `mountFreeBrowse` call it); a host\n * that already has an instance passes its own instead.\n */\nexport function createFreeBrowseInstance(\n overrides: Partial<NiiVueOptions> = {},\n): NiiVue {\n return new NiiVue({ ...DEFAULT_NIIVUE_OPTIONS, ...overrides });\n}\n","import { createRoot, type Root } from \"react-dom/client\";\nimport type { NiiVue } from \"@niivue/niivue\";\nimport FreeBrowse from \"@/components/freebrowse\";\nimport { createFreeBrowseInstance } from \"@/lib/default-niivue-options\";\nimport {\n configureFreeBrowse,\n type FreeBrowseBackend,\n} from \"@/lib/deployment-config\";\nimport { useFreeBrowseStore } from \"@/store\";\n\nexport interface MountOptions {\n /**\n * The NiiVue instance to show. When given, the host owns it: FreeBrowse\n * seeds its UI from the instance's current settings and never pushes its\n * own defaults onto it. When omitted, FreeBrowse creates one with\n * `createFreeBrowseInstance()` and applies its defaults.\n */\n nv?: NiiVue;\n /**\n * Backend endpoints for Save-to-server, the Data/NVD tabs and AI sessions.\n * Omitted (or `null`): no backend — those features are hidden.\n */\n backend?: FreeBrowseBackend | null;\n /** localStorage key for user preferences (default `freebrowse-user-settings`), or `false` to keep them in memory. */\n persist?: string | false;\n /** Read `?nvd=` / `?vol=` from the host page URL on startup. Default false. */\n readUrlParams?: boolean;\n /** Also publish the instance as `window.freebrowse.nv`. Default false. */\n exposeGlobal?: boolean;\n /** Disable the Download button and niivue's save-to-disk methods. Default false. */\n downloadDisabled?: boolean;\n /**\n * Allow loading by drag-and-drop (niivue's canvas drop and FreeBrowse's\n * drop zone). `false` also skips the drop zone and shows the canvas from\n * the start, for hosts that load data themselves. Default true.\n */\n dragDrop?: boolean;\n /** Show the sidebar initially (the header button still toggles it). Default true. */\n sidebar?: boolean;\n /** Show the footer (coordinate readout) initially. Default true. */\n footer?: boolean;\n}\n\nexport interface FreeBrowseHandle {\n /** The instance FreeBrowse is showing (the one passed in, or the one it created). */\n nv: NiiVue;\n /** Unmount the UI and detach FreeBrowse's event listeners from the instance. */\n destroy(): void;\n}\n\nlet activeRoot: Root | null = null;\n\n/**\n * Mount the FreeBrowse UI into `container` and return a handle.\n *\n * One mount at a time: FreeBrowse's UI state is a single store, so a second\n * concurrent mount throws. Call `destroy()` on the previous handle first.\n *\n * Styles are not injected — import `freebrowse/style.css` once in the host.\n */\nexport function mountFreeBrowse(\n container: HTMLElement,\n options: MountOptions = {},\n): FreeBrowseHandle {\n if (activeRoot) {\n throw new Error(\n \"FreeBrowse: already mounted; call destroy() on the existing handle before mounting again\",\n );\n }\n const hostInstance = options.nv !== undefined;\n const nv = options.nv ?? createFreeBrowseInstance();\n\n configureFreeBrowse({\n backend: options.backend ?? null,\n persist: options.persist ?? \"freebrowse-user-settings\",\n readUrlParams: options.readUrlParams ?? false,\n exposeGlobal: options.exposeGlobal ?? false,\n downloadDisabled: options.downloadDisabled ?? false,\n });\n // The store hydrated once at import with the default key; re-read through\n // the (now configured) storage so `persist` takes effect before first paint.\n // Layout options are re-applied afterwards so a persisted preference from an\n // earlier session cannot override what the host asked for at mount.\n const layout = { sidebar: options.sidebar, footer: options.footer };\n void useFreeBrowseStore.persist.rehydrate()?.then(() => {\n const patch: Partial<{ sidebarOpen: boolean; footerOpen: boolean }> = {};\n if (layout.sidebar !== undefined) patch.sidebarOpen = layout.sidebar;\n if (layout.footer !== undefined) patch.footerOpen = layout.footer;\n if (Object.keys(patch).length) useFreeBrowseStore.setState(patch);\n });\n\n const root = createRoot(container);\n activeRoot = root;\n root.render(\n <FreeBrowse\n nv={nv}\n hostInstance={hostInstance}\n dragDrop={options.dragDrop}\n sidebar={options.sidebar}\n footer={options.footer}\n />,\n );\n\n return {\n nv,\n destroy() {\n if (activeRoot !== root) return;\n root.unmount();\n activeRoot = null;\n },\n };\n}\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","jsxRuntimeModule","require$$0","push","heap","node","index","a","parentIndex","parent","compare","peek","pop","first","last","length","halfLength","leftIndex","left","rightIndex","right","b","diff","exports","localPerformance","localDate","initialTime","taskQueue","timerQueue","taskIdCounter","currentTask","currentPriorityLevel","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","needsPaint","localSetTimeout","localClearTimeout","localSetImmediate","advanceTimers","currentTime","timer","handleTimeout","isMessageLoopRunning","schedulePerformWorkUntilDeadline","firstTimer","requestHostTimeout","taskTimeoutID","frameInterval","startTime","shouldYieldToHost","performWorkUntilDeadline","hasMoreWork","previousPriorityLevel","callback","continuationCallback","channel","port","ms","task","fps","eventHandler","priorityLevel","options","timeout","parentPriorityLevel","schedulerModule","REACT_PORTAL_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","assign","emptyObject","Component","props","context","updater","partialState","ComponentDummy","PureComponent","pureComponentPrototype","isArrayImpl","noop","ReactSharedInternals","hasOwnProperty","ReactElement","refProp","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","match","userProvidedKeyEscapeRegex","getElementKey","element","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","children","array","escapedPrefix","nameSoFar","invokeCallback","c","nextNamePrefix","i","mapChildren","func","result","count","child","lazyInitializer","payload","ctor","moduleObject","reportGlobalError","event","Children","forEachFunc","forEachContext","n","react_production","size","fn","childArray","defaultValue","childrenLength","render","scope","prevTransition","currentTransition","returnValue","onStartTransitionFinish","usable","action","initialState","permalink","deps","Context","value","initialValue","create","ref","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","reactModule","React","formatProdErrorMessage","code","url","Internals","createPortal$1","containerInfo","implementation","getCrossOriginStringAs","as","input","reactDom_production","container","previousTransition","previousUpdatePriority","href","crossOrigin","integrity","fetchPriority","form","checkDCE","err","reactDomModule","Scheduler","require$$1","ReactDOM","require$$2","isValidContainer","getNearestMountedFiber","fiber","nearestMounted","getSuspenseInstanceFromFiber","suspenseState","getActivityInstanceFromFiber","activityState","assertIsMounted","findCurrentFiberUsingSlowPath","alternate","parentA","parentB","didFindChild","child$0","findCurrentHostFiberImpl","tag","REACT_LEGACY_ELEMENT_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_CACHE_SENTINEL","REACT_CLIENT_REFERENCE","getComponentNameFromType","innerType","ReactDOMSharedInternals","sharedNotPendingObject","valueStack","createCursor","cursor","contextStackCursor","contextFiberStackCursor","rootInstanceStackCursor","hostTransitionProviderCursor","pushHostContainer","nextRootInstance","getOwnHostContext","getChildHostContextProd","popHostContainer","pushHostContext","JSCompiler_inline_result","popHostContext","HostTransitionContext","prefix","suffix","describeBuiltInComponentFrame","name","x","reentry","describeNativeComponentFrame","construct","previousPrepareStackTrace","RunInRootFrame","Fake","control","x$1","x$2","sample","namePropDescriptor","_RunInRootFrame$Deter","sampleStack","controlStack","sampleLines","controlLines","frame","describeFiber","childFiber","getStackByFiberInDevAndProd","workInProgress","info","previous","scheduleCallback$3","cancelCallback$1","shouldYield","requestPaint","now","getCurrentPriorityLevel","ImmediatePriority","UserBlockingPriority","NormalPriority$1","LowPriority","IdlePriority","log$1","unstable_setDisableYieldValue","rendererID","injectedHook","setIsStrictModeForDevtools","newIsStrictMode","clz32","clz32Fallback","log","LN2","nextTransitionUpdateLane","nextTransitionDeferredLane","nextRetryLane","getHighestPriorityLanes","lanes","pendingSyncLanes","getNextLanes","root","wipLanes","rootHasPendingCommit","pendingLanes","nextLanes","suspendedLanes","pingedLanes","nonIdlePendingLanes","checkIfRootIsPrerendering","renderLanes","computeExpirationTime","lane","claimNextRetryLane","createLaneMap","initial","laneMap","markRootUpdated$1","updateLane","markRootFinished","finishedLanes","remainingLanes","spawnedLane","updatedLanes","suspendedRetryLanes","previouslyPendingLanes","entanglements","expirationTimes","hiddenUpdates","index$7","hiddenUpdatesForLane","update","markSpawnedDeferredLane","entangledLanes","spawnedLaneIndex","markRootEntangled","rootEntangledLanes","index$8","getBumpedLaneForHydration","renderLane","getBumpedLaneForHydrationByLane","lanesToEventPriority","resolveUpdatePriority","updatePriority","getEventPriority","runWithPriority","priority","previousPriority","randomKey","internalInstanceKey","internalPropsKey","internalContainerInstanceKey","internalEventHandlersKey","internalEventHandlerListenersKey","internalEventHandlesSetKey","internalRootNodeResourcesKey","internalHoistableMarker","detachDeletedInstance","getClosestInstanceFromNode","targetNode","targetInst","parentNode","getParentHydrationBoundary","getInstanceFromNode","getNodeFromInstance","inst","getResourcesFromRoot","resources","markNodeAsHoistable","allNativeEvents","registrationNameDependencies","registerTwoPhaseEvent","registrationName","dependencies","registerDirectEvent","VALID_ATTRIBUTE_NAME_REGEX","illegalAttributeNameCache","validatedAttributeNameCache","isAttributeNameSafe","attributeName","setValueForAttribute","prefix$10","setValueForKnownAttribute","setValueForNamespacedAttribute","namespace","getToStringValue","isCheckable","elem","trackValueOnNode","valueField","currentValue","descriptor","get","set","track","updateValueIfChanged","tracker","lastValue","getActiveElement","doc","escapeSelectorAttributeValueInsideDoubleQuotesRegex","escapeSelectorAttributeValueInsideDoubleQuotes","ch","updateInput","lastDefaultValue","checked","defaultChecked","setDefaultValue","initInput","isHydrating","updateOptions","multiple","propValue","setDefaultSelected","updateTextarea","initTextarea","setTextContent","text","firstChild","unitlessNumbers","setValueForStyle","style","styleName","isCustomProperty","setValueForStyles","styles","prevStyles","styleName$16","styleName$17","isCustomElement","tagName","aliases","isJavaScriptProtocol","sanitizeURL","noop$1","currentReplayingEvent","getEventTarget","nativeEvent","restoreTarget","restoreQueue","restoreStateOfTarget","target","internalInstance","otherNode","otherProps","isInsideEventHandler","batchedUpdates$1","flushSyncWork$1","getListener","stateNode","canUseDOM","passiveBrowserEventsSupported","startText","fallbackText","getData","start","startValue","startLength","end","endValue","endLength","minEnd","getEventCharCode","keyCode","functionThatReturnsTrue","functionThatReturnsFalse","createSyntheticEvent","Interface","SyntheticBaseEvent","reactName","reactEventType","nativeEventTarget","EventInterface","SyntheticEvent","UIEventInterface","SyntheticUIEvent","lastMovementX","lastMovementY","lastMouseEvent","MouseEventInterface","getEventModifierState","SyntheticMouseEvent","DragEventInterface","SyntheticDragEvent","FocusEventInterface","SyntheticFocusEvent","AnimationEventInterface","SyntheticAnimationEvent","ClipboardEventInterface","SyntheticClipboardEvent","CompositionEventInterface","SyntheticCompositionEvent","normalizeKey","translateToKey","modifierKeyToProp","modifierStateGetter","keyArg","KeyboardEventInterface","SyntheticKeyboardEvent","PointerEventInterface","SyntheticPointerEvent","TouchEventInterface","SyntheticTouchEvent","TransitionEventInterface","SyntheticTransitionEvent","WheelEventInterface","SyntheticWheelEvent","ToggleEventInterface","SyntheticToggleEvent","END_KEYCODES","canUseCompositionEvent","documentMode","canUseTextInputEvent","useFallbackCompositionData","SPACEBAR_CHAR","hasSpaceKeypress","isFallbackCompositionEnd","domEventName","getDataFromCustomEvent","isComposing","getNativeBeforeInputChars","getFallbackBeforeInputChars","supportedInputTypes","isTextInputElement","nodeName","createAndAccumulateChangeEvent","dispatchQueue","accumulateTwoPhaseListeners","activeElement$1","activeElementInst$1","runEventInBatch","processDispatchQueue","getInstIfValueChanged","getTargetInstForChangeEvent","isInputEventSupported","JSCompiler_inline_result$jscomp$286","isSupported$jscomp$inline_427","element$jscomp$inline_428","stopWatchingForValueChange","handlePropertyChange","handleEventsForInputEventPolyfill","getTargetInstForInputEventPolyfill","getTargetInstForClickEvent","getTargetInstForInputOrChangeEvent","is","y","objectIs","shallowEqual","objA","objB","keysA","keysB","currentKey","getLeafNode","getNodeForCharacterOffset","offset","nodeEnd","containsNode","outerNode","innerNode","getActiveElementDeep","hasSelectionCapabilities","skipSelectionChangeEvent","activeElement","activeElementInst","lastSelection","mouseDown","constructSelectEvent","makePrefixMap","styleProp","eventName","prefixes","vendorPrefixes","prefixedEventNames","getVendorPrefixedEventName","prefixMap","ANIMATION_END","ANIMATION_ITERATION","ANIMATION_START","TRANSITION_RUN","TRANSITION_START","TRANSITION_CANCEL","TRANSITION_END","topLevelEventsToReactNames","simpleEventPluginEvents","registerSimpleEvent","concurrentQueues","concurrentQueuesIndex","concurrentlyUpdatedLanes","finishQueueingConcurrentUpdates","endIndex","queue","pending","markUpdateLaneFromFiberToRoot","enqueueUpdate$1","enqueueConcurrentHookUpdate","getRootForUpdatedFiber","enqueueConcurrentRenderForLane","sourceFiber","isHidden","nestedUpdateCount","rootWithNestedUpdates","emptyContextObject","FiberNode","pendingProps","mode","createFiberImplClass","shouldConstruct","createWorkInProgress","current","resetWorkInProgress","createFiberFromTypeAndProps","owner","fiberTag","isHostHoistableType","createFiberFromFragment","elements","createFiberFromText","content","createFiberFromDehydratedFragment","dehydratedNode","createFiberFromPortal","portal","CapturedStacks","createCapturedValueAtFiber","source","existing","forkStack","forkStackIndex","treeForkProvider","treeForkCount","idStack","idStackIndex","treeContextProvider","treeContextId","treeContextOverflow","pushTreeFork","totalChildren","pushTreeId","baseIdWithLeadingBit","baseLength","numberOfOverflowBits","pushMaterializedTreeId","popTreeContext","restoreSuspendedTreeContext","suspendedContext","hydrationParentFiber","nextHydratableInstance","hydrationErrors","rootOrSingletonContext","HydrationMismatchException","throwOnHydrationMismatch","queueHydrationError","prepareToHydrateHostInstance","instance","listenToNonDelegatedEvent","mediaEventTypes","checkForUnmatchedText","popToNextHostParent","popHydrationState","JSCompiler_temp","shouldSetTextContent","getNextHydratableInstanceAfterHydrationBoundary","isSingletonScope","previousHydratableOnEnteringScopedSingleton","getNextHydratable","resetHydrationState","upgradeHydrationErrorsToRecoverable","queuedErrors","workInProgressRootRecoverableErrors","valueCursor","currentlyRenderingFiber$1","lastContextDependency","pushProvider","providerFiber","nextValue","popProvider","scheduleContextWorkOnParentPath","propagationRoot","propagateContextChanges","contexts","forcePropagateEntireTree","list","nextFiber","dependency","propagateParentContextChanges","isInsidePropagationBailout","currentParent","checkIfContextChanged","currentDependencies","prepareToReadContext","readContext","readContextForConsumer","readContextDuringReconciliation","consumer","AbortControllerLocal","listeners","signal","listener","scheduleCallback$2","NormalPriority","CacheContext","createCache","releaseCache","cache","currentEntangledListeners","currentEntangledPendingCount","currentEntangledLane","currentEntangledActionThenable","entangleAsyncAction","transition","entangledListeners","requestTransitionLane","resolve","pingEngtangledActionScope","chainThenableValue","thenableWithOverride","prevOnStartTransitionFinish","globalMostRecentTransitionTime","resumedCache","peekCacheFromPool","cacheResumedFromPreviousRender","workInProgressRoot","pushTransition","offscreenWorkInProgress","prevCachePool","getSuspendedCache","cacheFromPool","SuspenseException","SuspenseyCommitException","SuspenseActionException","noopSuspenseyCommitThenable","isThenableResolved","trackUsedThenable","thenableState","checkIfUseWrappedInAsyncCatch","fulfilledThenable","rejectedThenable","suspendedThenable","resolveLazy","lazyType","getSuspendedThenable","rejectedReason","thenableState$1","thenableIndexCounter$1","unwrapThenable","coerceRef","throwOnInvalidObjectTypeImpl","returnFiber","newChild","createChildReconciler","shouldTrackSideEffects","deleteChild","childToDelete","deletions","deleteRemainingChildren","currentFirstChild","mapRemainingChildren","existingChildren","useFiber","placeChild","newFiber","lastPlacedIndex","newIndex","placeSingleChild","updateTextNode","textContent","updateElement","elementType","updateFragment","updatePortal","fragment","createChild","updateSlot","oldFiber","updateFromMap","newIdx","reconcileChildrenArray","newChildren","resultingFirstChild","previousNewFiber","nextOldFiber","reconcileChildrenIterator","step","reconcileChildFibersImpl","firstChildFiber","reconcileChildFibers","mountChildFibers","hasForceUpdate","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","updateQueue","executionContext","entangleTransitions","queueLanes","enqueueCapturedUpdate","capturedUpdate","newFirst","newLast","clone","didReadFromEntangledAsyncAction","suspendIfUpdateReadFromEntangledAsyncAction","entangledActionThenable","processUpdateQueue","workInProgress$jscomp$0","instance$jscomp$0","firstBaseUpdate","lastBaseUpdate","pendingQueue","lastPendingUpdate","firstPendingUpdate","newState","isHiddenUpdate","workInProgressRootRenderLanes","workInProgressRootSkippedLanes","callCallback","commitCallbacks","callbacks","currentTreeHiddenStackCursor","prevEntangledRenderLanesCursor","pushHiddenContext","entangledRenderLanes","reuseHiddenContextOnStack","popHiddenContext","suspenseHandlerStackCursor","shellBoundary","pushPrimaryTreeSuspenseHandler","handler","suspenseStackCursor","pushDehydratedActivitySuspenseHandler","pushOffscreenSuspenseHandler","reuseSuspenseHandlerOnStack","popSuspenseHandler","findFirstSuspended","row","state","isSuspenseInstancePending","isSuspenseInstanceFallback","currentlyRenderingFiber","currentHook","workInProgressHook","didScheduleRenderPhaseUpdate","didScheduleRenderPhaseUpdateDuringThisPass","shouldDoubleInvokeUserFnsInHooksDEV","localIdCounter","thenableIndexCounter","globalClientIdCounter","throwInvalidHookError","areHookInputsEqual","nextDeps","prevDeps","renderWithHooks","secondArg","nextRenderLanes","HooksDispatcherOnMount","HooksDispatcherOnUpdate","renderWithHooksAgain","finishRenderingHooks","ContextOnlyDispatcher","didRenderTooFewHooks","didReceiveUpdate","numberOfReRenders","HooksDispatcherOnRerender","TransitionAwareHostComponent","dispatcher","maybeThenable","useThenable","checkDidRenderIdHook","didRenderIdHook","bailoutHooks","resetHooksOnUnwind","mountWorkInProgressHook","hook","updateWorkInProgressHook","nextCurrentHook","nextWorkInProgressHook","createFunctionComponentUpdateQueue","use","useMemoCache","memoCache","basicStateReducer","updateReducer","updateReducerImpl","baseQueue","baseFirst","newBaseQueueFirst","newBaseQueueLast","didReadFromEntangledAsyncAction$60","revertLane","rerenderReducer","dispatch","lastRenderPhaseUpdate","updateSyncExternalStore","isHydrating$jscomp$0","snapshotChanged","updateEffect","subscribeToStore","pushSimpleEffect","updateStoreInstance","pushStoreConsistencyCheck","renderedSnapshot","nextSnapshot","checkIfSnapshotChanged","forceStoreRerender","latestGetSnapshot","scheduleUpdateOnFiber","mountStateImpl","initialStateInitializer","updateOptimisticImpl","dispatchActionState","actionQueue","setPendingState","setState","isRenderPhaseUpdate","actionNode","runActionStateAction","prevState","handleActionReturnValue","onActionError","error$66","nextState","onActionSuccess","notifyActionListeners","actionStateReducer","oldState","mountActionState","initialStateProp","ssrFormState","JSCompiler_inline_result$jscomp$0","inRootOrSingleton","dispatchSetState","dispatchOptimisticSetState","updateActionState","stateHook","updateActionStateImpl","currentStateHook","actionStateActionEffect","rerenderActionState","updateRef","mountEffectImpl","fiberFlags","hookFlags","updateEffectImpl","mountEffect","useEffectEventImpl","componentUpdateQueue","events","updateEvent","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","refCleanup","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","nextCreate","mountDeferredValueImpl","requestDeferredLane","updateDeferredValueImpl","prevValue","startTransition","pendingState","finishedState","thenableForFinishedState","dispatchSetStateInternal","requestUpdateLane","startHostTransition","formFiber","formData","ensureFormComponentIsStateful","requestFormReset$1","existingStateHook","initialResetState","useHostTransitionStatus","updateId","updateRefresh","refreshCache","provider","root$69","dispatchReducerAction","enqueueRenderPhaseUpdate","entangleTransitionUpdate","currentState","eagerState","throwIfDuringRender","identifierPrefix","idWithLeadingBit","booleanOrThenable","applyDerivedStateFromProps","getDerivedStateFromProps","nextProps","classComponentUpdater","checkShouldComponentUpdate","oldProps","newProps","nextContext","callComponentWillReceiveProps","resolveClassComponentProps","baseProps","propName$73","defaultOnUncaughtError","defaultOnCaughtError","defaultOnRecoverableError","logUncaughtError","errorInfo","onUncaughtError","e$74","logCaughtError","boundary","onCaughtError","e$75","createRootErrorUpdate","createClassErrorUpdate","initializeClassErrorUpdate","getDerivedStateFromError","legacyErrorBoundariesThatAlreadyFailed","stack","throwException","rootRenderLanes","renderDidSuspendDelayIfPossible","workInProgressRootExitStatus","attachPingListener","wrapperError","workInProgressRootConcurrentErrors","SelectiveHydrationException","reconcileChildren","nextChildren","updateForwardRef","propsWithoutRef","bailoutOnAlreadyFinishedWork","updateMemoComponent","updateSimpleMemoComponent","checkScheduledUpdateOrContext","prevProps","updateFunctionComponent","updateOffscreenComponent","deferHiddenOffscreenComponent","bailoutOffscreenComponent","nextBaseLanes","remainingChildLanes","mountActivityChildren","mountWorkInProgressOffscreenFiber","retryActivityComponentWithoutHydrating","updateActivityComponent","didSuspend","canHydrateHydrationBoundary","dehydrated","markRef","replayFunctionComponent","updateClassComponent","contextType","unresolvedOldProps","oldContext","contextType$jscomp$0","mountHostRootWithoutHydrating","SUSPENDED_MARKER","mountSuspenseOffscreenState","getRemainingWorkInPrimaryTree","primaryTreeDidDefer","workInProgressDeferredLane","updateSuspenseComponent","showFallback","nextPrimaryChildren","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","digest","primaryChildren","offscreenProps","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","isBackwards","tail","lastContentRow","tailMode","renderState","updateSuspenseListComponent","revealOrder","suspenseContext","shouldForceFallback","attemptEarlyBailoutIfNoScheduledUpdate","state$102","didSuspendBefore","beginWork","$$typeof","getResource","getOwnerDocumentFromRootContainer","setInitialProperties","resolveSingletonInstance","canHydrateInstance","canHydrateTextInstance","markUpdate","preloadInstanceAndSuspendIfNeeded","shouldRemainOnPreviousScreen","preloadResourceAndSuspendIfNeeded","resource","preloadResource","scheduleRetryEffect","retryQueue","workInProgressSuspendedRetryLanes","cutOffTailIfNeeded","hasRenderedATailFallback","lastTailNode","lastTailNode$106","bubbleProperties","completedWork","didBailout","newChildLanes","subtreeFlags","child$107","completeWork","nextResource","ownerDocument","listenToAllSupportedEvents","workInProgressRootRenderTargetTime","unwindWork","unwindInterruptedWork","interruptedWork","commitHookEffectListMount","flags","finishedWork","lastEffect","firstEffect","captureCommitPhaseError","commitHookEffectListUnmount","nearestMountedAncestor$jscomp$0","destroy","nearestMountedAncestor","destroy_","commitClassCallbacks","safelyCallComponentWillUnmount","safelyAttachRef","instanceToUse","safelyDetachRef","error$140","commitHostMount","commitHostUpdate","domElement","updateProperties","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","before","insertOrAppendPlacementNode","commitHostSingletonAcquisition","singleton","attributes","offscreenSubtreeIsHidden","offscreenSubtreeWasHidden","needsFormReset","PossiblyWeakSet","nextEffect","commitBeforeMutationEffects","eventsEnabled","_enabled","selection","anchorOffset","focusNode","indexWithinAnchor","indexWithinFocus","next","selectionInformation","resolvedPrevProps","clearContainerSparingly","commitLayoutEffectOnFiber","finishedRoot","recursivelyTraverseLayoutEffects","error$139","commitActivityHydrationCallbacks","commitSuspenseHydrationCallbacks","retryDehydratedSuspenseBoundary","registerSuspenseInstanceRetry","prevOffscreenSubtreeWasHidden","recursivelyTraverseReappearLayoutEffects","detachFiberAfterEffects","hostParent","hostParentIsContainer","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","deletedFiber","prevHostParent","prevHostParentIsContainer","releaseSingletonInstance","clearHydrationBoundary","retryIfBlockedOn","getRetryCache","retryCache","attachSuspenseRetryListeners","wakeables","wakeable","retry","resolveRetryWakeable","recursivelyTraverseMutationEffects","root$jscomp$0","parentFiber","commitMutationEffectsOnFiber","currentHoistableRoot","commitReconciliationEffects","hoistableRoot","currentResource","maybeNodes","getHydratableHoistableCache","mountHoistable","acquireResource","tagCaches","getHoistableRoot","recursivelyResetForms","globalMostRecentFallbackTime","wasHidden","prevOffscreenSubtreeIsHidden","recursivelyTraverseDisappearLayoutEffects","display","hideOrUnhideDehydratedBoundary","hostParentFiber","parent$141","before$142","parent$143","before$144","finishedRoot$jscomp$0","includeWorkInProgressEffects","hiddenCallbacks","commitOffscreenPassiveMountEffects","previousCache","commitCachePassiveMountEffect","recursivelyTraversePassiveMountEffects","committedLanes","committedTransitions","commitPassiveMountOnFiber","_finishedWork$memoize2","id","onPostCommit","recursivelyTraverseAtomicPassiveEffects","recursivelyTraverseReconnectPassiveEffects","committedLanes$jscomp$0","committedTransitions$jscomp$0","suspenseyCommitFlag","recursivelyAccumulateSuspenseyCommit","suspendedState","accumulateSuspenseyCommitOnFiber","suspendResource","previousHoistableRoot","detachAlternateSiblings","previousFiber","recursivelyTraversePassiveUnmountEffects","commitPassiveUnmountEffectsInsideOfDeletedTree_begin","commitPassiveUnmountOnFiber","recursivelyTraverseDisconnectPassiveEffects","deletedSubtreeRoot","sibling","DefaultAsyncDispatcher","resourceType","cacheForType","PossiblyWeakMap","workInProgressSuspendedReason","workInProgressThrownValue","workInProgressRootDidSkipSuspendedSiblings","workInProgressRootIsPrerendering","workInProgressRootDidAttachPingListener","workInProgressRootInterleavedUpdatedLanes","workInProgressRootPingedLanes","workInProgressRootDidIncludeRecursiveRenderUpdate","workInProgressTransitions","pendingEffectsStatus","pendingEffectsRoot","pendingFinishedWork","pendingEffectsLanes","pendingEffectsRemainingLanes","pendingPassiveTransitions","pendingRecoverableErrors","prepareFreshStack","markRootSuspended","ensureRootIsScheduled","performWorkOnRoot","forceSync","shouldTimeSlice","exitStatus","renderRootConcurrent","renderRootSync","renderWasConcurrent","isRenderConsistentWithExternalStores","wasRootDehydrated","scheduleTimeout","commitRootWhenReady","recoverableErrors","transitions","didIncludeRenderPhaseUpdate","didSkipSuspendedSiblings","suspendedCommitReason","completedRenderStartTime","completedRenderEndTime","timeoutOffset","waitForCommitToBeReady","commitRoot","check","didAttemptEntireTree","index$6","flushSyncWorkAcrossRoots_impl","resetWorkInProgressStack","timeoutHandle","cancelTimeout","allEntangledLanes","index$4","handleThrow","thrownValue","pushDispatcher","prevDispatcher","pushAsyncDispatcher","prevAsyncDispatcher","shouldYieldForPrerendering","prevExecutionContext","unitOfWork","reason","throwAndUnwindWorkLoop","workLoopSync","thrownValue$165","performUnitOfWork","replaySuspendedUnitOfWork","hostFiber","completeUnitOfWork","workLoopConcurrentByScheduler","thrownValue$167","suspendedReason","unwindUnitOfWork","skipSiblings","flushPendingEffects","scheduleCallback$1","flushPassiveEffects","flushMutationEffects","flushLayoutEffects","flushSpawnedWork","rootMutationHasEffect","priorSelectionInformation","curFocusedElem","priorFocusedElem","priorSelectionRange","win","start$jscomp$0","end$jscomp$0","startMarker","endMarker","range","rootHasLayoutEffect","releaseRootPooledCache","onRecoverableError","recoverableError","renderPriority","captureCommitPhaseErrorOnRoot","rootFiber","pingCache","threadIDs","pingSuspendedRoot","retryTimedOutBoundary","boundaryFiber","retryLane","firstScheduledRoot","lastScheduledRoot","didScheduleMicrotask","mightHavePendingSyncWork","isFlushingWork","currentEventTransitionLane","scheduleImmediateRootScheduleTask","syncTransitionLanes","onlyLegacy","didPerformSomeWork","root$170","performSyncWorkOnRoot","processRootScheduleInImmediateTask","processRootScheduleInMicrotask","shouldAttemptEagerTransition","prev","scheduleTaskForRootDuringMicrotask","index$5","expirationTime","performWorkOnRootViaSchedulerTask","didTimeout","originalCallbackNode","workInProgressRootRenderLanes$jscomp$0","scheduleMicrotask","actionScopeLane","coerceFormActionProp","actionProp","createFormDataWithSubmitter","submitter","temp","extractEvents$1","maybeTargetInst","i$jscomp$inline_1577","eventName$jscomp$inline_1578","domEventName$jscomp$inline_1579","capitalizedEvent$jscomp$inline_1580","nonDelegatedEvents","eventSystemFlags","_dispatchQueue$i","previousInstance","i$jscomp$0","_dispatchListeners$i","currentTarget","targetElement","listenerSetKey","addTrappedEventListener","listenToNativeEvent","isCapturePhaseListener","listeningMarker","rootContainerElement","targetContainer","listenerWrapper","dispatchDiscreteEvent","dispatchContinuousEvent","dispatchEvent","dispatchEventForPluginEventSystem","targetInst$jscomp$0","ancestorInst","nodeTag","grandTag","SyntheticEventCtor","inCapturePhase","accumulateTargetOnly","reactEventName","lastHostComponent","_instance","createDispatchListener","getParent","tempB","accumulateEnterLeaveListenersForEvent","getTargetInstFunc","handleEventFunc","fallbackData","eventType","targetFiber","captureName","_instance2","common","_instance3","NORMALIZE_NEWLINES_REGEX","NORMALIZE_NULL_AND_REPLACEMENT_REGEX","normalizeMarkupForTextOrAttribute","markup","serverText","clientText","setProp","setPropOnCustomElement","hasSrc","hasSrcSet","propKey","propValue$184","lastProps","lastProp","propKey$201","propKey$217","propKey$222","propKey$227","propKey$232","isLikelyStaticResource","initiatorType","estimateBandwidth","bits","resourceEntries","entry","transferSize","duration","overlapEntry","overlapStartTime","overlapTransferSize","overlapInitiatorType","namespaceURI","parentNamespace","currentPopstateTransitionEvent","localPromise","handleErrorInNextTick","parentInstance","hydrationInstance","depth","nextNode","node$jscomp$0","nextNode$jscomp$0","suspenseInstance","anyProps","nodeType","data","targetInstance","rootContainerInstance","preloadPropsMap","preconnectsSet","previousDispatcher","flushSyncWork","requestFormReset","prefetchDNS","preconnect","preload","preloadModule","preinitScript","preinitStyle","preinitModuleScript","previousWasRendering","wasRendering","formInst","globalDocument","preconnectAs","rel","limitedEscapedHref","preloadSelector","getStyleKey","getScriptKey","getStylesheetSelectorFromKey","getScriptSelectorFromKey","precedence","adoptPreloadPropsForStylesheet","link","reject","insertStylesheet","src","scripts","adoptPreloadPropsForScript","currentProps","styles$243","resource$244","preloadStylesheet","stylesheetPropsFromRawProps","rawProps","preloadProps","styleProps","instance$249","linkInstance","nodes","prior","stylesheetProps","scriptProps","keyAttribute","caches","nodeKey","hostContext","onUnsuspend","estimatedBytesWithinLimit","insertSuspendedStylesheets","commit","stylesheetTimer","unsuspend","imgTimer","precedencesByRoot","insertStylesheetIntoRoot","precedences","FiberRootNode","hydrate","onDefaultTransitionIndicator","formState","createFiberRoot","initialChildren","hydrationCallbacks","isStrictMode","getContextForSubtree","parentComponent","updateContainerImpl","markRetryLaneImpl","markRetryLaneIfNotHydrated","attemptContinuousHydration","attemptHydrationAtCurrentPriority","blockedOn","findInstanceBlockingEvent","return_targetInst","clearIfContinuousEvent","queueIfContinuousEvent","discreteReplayableEvents","findInstanceBlockingTarget","hasScheduledReplayAttempt","queuedFocus","queuedDrag","queuedMouse","queuedPointers","queuedPointerCaptures","queuedExplicitHydrationTargets","accumulateOrCreateContinuousQueuedReplayableEvent","existingQueuedEvent","pointerId","attemptExplicitHydrationTarget","queuedTarget","attemptReplayContinuousQueuedEvent","queuedEvent","targetContainers","nextBlockedOn","nativeEventClone","attemptReplayContinuousQueuedEventInMap","map","replayUnblockedEvents","scheduleCallbackIfUnblocked","unblocked","lastScheduledReplayQueue","scheduleReplayQueueIfNeeded","formReplayingQueue","submitterOrAction","unblock","formProps","defaultOnDefaultTransitionIndicator","handleNavigate","pendingResolve","handleNavigateComplete","isCancelled","startFakeNavigation","currentEntry","ReactDOMRoot","internalRoot","ReactDOMHydrationRoot","isomorphicReactPackageVersion$jscomp$inline_1840","componentOrElement","internals$jscomp$inline_2347","hook$jscomp$inline_2348","reactDomClient_production","clientModule","DRAWING_PROPS","detailOf","registerNiiVueEvents","nv","on","e","property","onVolumeList","volumeIndex","changes","onMeshList","sliceTypeMap","SHOW_RENDER","rgba255ToHex","rgba255","r","g","uint8ArrayToBase64","uint8Array","binaryString","chunk","gzipUint8Array","bytes","stream","_a","createStoreImpl","createState","partial","replace","previousState","getState","api","createStore","identity","arg","useStore","selector","slice","createImpl","useBoundStore","createJSONStorage","getStorage","storage","parse","str2","str","newValue","toThenable","onFulfilled","_onRejected","_onFulfilled","onRejected","persistImpl","baseOptions","persistedState","hasHydrated","hydrationVersion","hydrationListeners","finishHydrationListeners","args","setItem","savedSetState","configResult","stateFromStorage","_b","currentVersion","cb","_a2","postRehydrationCallback","deserializedStorageValue","migration","migrationResult","migrated","migratedState","newOptions","persist","DEFAULT_BACKEND","DEFAULT_PERSIST_KEY","defaultsFromEnv","configureFreeBrowse","getFreeBrowseConfig","deploymentConfig","join","base","path","requireBackend","dataUrl","aiUrl","relativeToDataRoot","bare","createVolumeSlice","currentImageIndex","showUploader","dragDropEnabled","createSurfaceSlice","surfaces","currentSurfaceIndex","surfaceToRemove","selectedLayerIndex","createDrawingSlice","createViewerSlice","darkMode","sidebarOpen","footerOpen","activeTab","settingsDialogOpen","removeDialogOpen","volumeToRemove","skipRemoveConfirmation","imagingUploadConfirmDialogOpen","skipImagingUploadConfirmation","sessionDeleteConfirmDialogOpen","skipSessionDeleteConfirmation","createSaveSlice","saveDialogOpen","createLocationSlice","locationData","createAiSlice","aiEnabled","aiSessions","aiActiveSession","memoryStorage","configuredStorage","_name","useFreeBrowseStore","colorToRgba255","color","dragModeName","DRAG_MODE","v","viewModeFromNiiVue","exact","cfg","bySlice","viewerPatchFor","MIRRORED_PROPS","readViewerFromNiiVue","patch","prop","createStoreSyncTarget","store","patchViewer","s","volumes","meshes","mesh","hasDrawing","location","detail","voxels","vox","useViewerOptions","nvRef","viewerOptions","setViewerOptions","updateTimeoutRef","useRef","crosshairColorTimeoutRef","debouncedGLUpdate","useCallback","useEffect","applyViewerOptions","o","viewConfig","syncViewerOptionsFromNiiVue","didInit","handleViewMode","handleDragModeChange","handleCrosshairWidthChange","handleCrosshairVisibleChange","visible","handleCrosshairGapChange","handleCrosshairColorChange","hex","handleInterpolateVoxelsChange","handleRulerWidthChange","handleRulerVisibleChange","handleColorbarChange","handleRadiologicalChange","handleSagittalNoseLeftChange","handleOverlayOutlineWidthChange","resetViewAndContrast","vol","LABEL_COLORMAPS","applyLabelColormapsAfterLoad","useVolumes","removeSurface","setCurrentImageIndex","volumeVersion","incrementVolumeVersion","setVolumeToRemove","setRemoveDialogOpen","setSurfaceToRemove","drawingOptions","setDrawingOptions","setActiveTab","getVolumes","toggleImageVisibility","opacity","newOpacity","handleOpacityChange","handleFrameChange","newFrame","handleContrastMinChange","newContrastMin","handleContrastMaxChange","newContrastMax","handleColormapChange","newColormap","handleMoveVolumeUp","handleMoveVolumeDown","removeVolume","imageIndex","handleRemoveVolumeClick","handleEditVolume","volume","cmap","file","canEditVolume","background","volDims","backDims","volAffine","backAffine","j","idx","volValue","backValue","handleConfirmRemove","handleCancelRemove","useSurfaces","setCurrentSurfaceIndex","surfaceColorTimeoutRef","updateSurfaceDetails","toggleSurfaceVisibility","surfaceIndex","isVisible","handleRemoveSurfaceClick","handleSurfaceOpacityChange","handleSurfaceColorChange","hexColor","handleMeshShaderChange","shaderName","useMeshLayers","setSelectedLayerIndex","layerVersion","layerFileInputRef","getLayers","addLayerFromFile","layers","removeLayer","layerIndex","setLayerProperty","handleLayerOpacityChange","handleLayerCalMinChange","handleLayerCalMaxChange","handleLayerColormapChange","colormap","handleLayerUseNegativeCmapChange","handleAddLayerFiles","handleLayerFileChange","files","useDrawing","handleCreateDrawingLayer","handleDrawModeChange","handlePenValueChange","handlePenErasesChange","handlePenFillChange","handleDrawingOpacityChange","handleDrawingColormapChange","handleDrawUndo","handleMagicWand2dOnlyChange","handleMagicWandMaxDistanceChange","handleMagicWandThresholdChange","handleSaveDrawing","h","w","m","d","p","f","u","buildWandOptions","opts","bg","sliceType","runMagicWand","ctx","seed","drawing","bitmap","magicWand","useMagicWand","committedRef","busyRef","pendingRef","genRef","previewAt","myGen","pump","onMove","onLeave","onUp","onDrawingChanged","retargetVolumeUrls","volumeUrls","pendingImagingUpload","pendingSessionDelete","requestImagingUploadConfirmation","resolveImagingUploadConfirmation","ok","resolver","requestSessionDeleteConfirmation","resolveSessionDeleteConfirmation","ensureExt","ext","downloadBytes","filename","blob","useSave","setSaveDialogOpen","saveState","setSaveState","handleSaveScene","isDownload","volumeStates","isExternal","handleConfirmSave","format","volumeState","raw","response","volumeSavePromises","base64Data","volumeResponse","volumeResult","handleCancelSave","handleVolumeUrlChange","handleVolumeCheckboxChange","enabled","handleDocumentLocationChange","handleDocumentCheckboxChange","handleDocumentFormatChange","LEGACY_NVD_MESSAGE","assertNotLegacyDocument","useFileLoading","setShowUploader","serverlessMode","fileInputRef","surfaceFileInputRef","loadNvdData","handleFileUpload","retries","nvdFiles","nvdFile","promises","handleImagingFileSelect","basename","handleNvdFileSelect","handleFileChange","handleAddMoreFiles","handleAddSurfaceFiles","handleSurfaceFileChange","onDragRelease","nvdParam","nvdFromUrl","volParam","fileItem","handleEmbeddedNvd","useAiCapabilities","setAiEnabled","cancelled","res","body","SESSION_NAME_RE","fetchSessionList","ensureNiiName","stripDataPrefix","fetchArrayBuffer","exportAndUploadDrawing","sessionName","annotRel","targetPath","postSetAnnots","sessionId","annotationRelPath","msg","RESULT_FILENAME","AI_RESULT_COLORMAP_NAME","AI_RESULT_COLORMAP","AI_PROMPT_COLORMAP","useAiSession","setAiSessions","setAiActiveSession","refreshSessions","sessions","enterDrawMode","penValue","exitDrawModeLocal","handleNewSession","trimmed","backendRelPath","needsUpload","newRes","session_id","session_name","volumePathForSetVolume","uploadRes","setVolRes","handleLoadSession","summary","volumeUrl","annotUrl","handleRunSegmentation","mlId","labelValue","active","inferRes","lastIdx","lastName","lastUrl","resultUrl","handleExitAndSaveSession","handleExitAndDeleteSession","clsx","concatArrays","array1","array2","combinedArray","createClassValidatorObject","classGroupId","validator","createClassPartObject","nextPart","validators","CLASS_PART_SEPARATOR","EMPTY_CONFLICTS","ARBITRARY_PROPERTY_PREFIX","createClassGroupUtils","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","className","getGroupIdForArbitraryProperty","classParts","startIndex","getGroupRecursive","hasPostfixModifier","modifierConflicts","baseConflicts","classPartObject","currentClassPart","nextClassPartObject","classRest","validatorsLength","validatorObj","colonIndex","theme","classGroups","processClassGroups","group","processClassesRecursively","classGroup","len","classDefinition","processClassDefinition","processStringDefinition","processFunctionDefinition","processObjectDefinition","classPartObjectToEdit","getPart","isThemeGetter","entries","parts","part","createLruCache","maxCacheSize","cacheSize","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","EMPTY_MODIFIERS","createResultObject","modifiers","hasImportantModifier","baseClassName","maybePostfixModifierPosition","createParseClassName","experimentalParseClassName","parseClassName","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","fullPrefix","parseClassNameOriginal","createSortModifiers","modifierWeights","mod","currentSegment","modifier","isArbitrary","isOrderSensitive","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","sortModifiers","classGroupsInConflict","classNames","originalClassName","variantModifier","modifierId","classId","conflictGroups","twJoin","classLists","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","fallbackThemeArr","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","scaleBgRepeat","scaleBgSize","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","twMerge","cn","inputs","toKebabCase","toCamelCase","p1","p2","toPascalCase","camelCase","mergeClasses","classes","hasA11yProp","defaultAttributes","Icon","forwardRef","strokeWidth","absoluteStrokeWidth","iconNode","rest","createElement","attrs","createLucideIcon","iconName","__iconNode","Box","Brain","Check","ChevronDown","ChevronUp","CircleDot","Circle","Columns3","Contrast","Crosshair","Database","Download","EyeOff","Eye","FileText","File","Grid2x2","Image","LogOut","Maximize2","Moon","MousePointer","Move","PanelBottom","PanelLeft","PanelRight","Pencil","RotateCcw","Ruler","Save","Settings","Sparkles","SquarePen","Square","Sun","Trash2","Undo","Upload","X","setRef","composeRefs","refs","hasCleanup","cleanups","cleanup","useComposedRefs","React.useCallback","isPromiseLike","isLazyComponent","createSlot","ownerName","SlotClone","createSlotClone","Slot2","React.forwardRef","forwardedRef","slotProps","childrenArray","React.Children","slottable","isSlottable","newElement","React.isValidElement","jsx","React.cloneElement","Slot","childrenRef","getElementRef","props2","mergeProps","React.Fragment","SLOTTABLE_IDENTIFIER","childProps","overrideProps","slotPropValue","childPropValue","getter","mayWarn","falsyToString","cx","cva","_config_compoundVariants","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","cvClass","cvClassName","compoundVariantOptions","buttonVariants","Button","asChild","Comp","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","React.createContext","Provider","React.useMemo","useContext2","consumerName","React.useContext","createScope","scopeContexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","NODES","Primitive","primitive","Node","primitiveProps","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","createCollection","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","itemMap","COLLECTION_SLOT_NAME","CollectionSlotImpl","CollectionSlot","composedRefs","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlotImpl","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","useLayoutEffect2","React.useLayoutEffect","useReactId","useId","deterministicId","setId","React.useState","useLayoutEffect","reactId","useCallbackRef","callbackRef","React.useRef","React.useEffect","useInsertionEffect","useControllableState","defaultProp","onChange","caller","uncontrolledProp","setUncontrolledProp","onChangeRef","useUncontrolledState","isControlled","isControlledRef","wasControlled","setValue","value2","isFunction","prevValueRef","DirectionContext","useDirection","localDir","globalDir","ENTRY_FOCUS","EVENT_OPTIONS","GROUP_NAME","Collection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","direction","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","isKeyboardFocus","entryFocusEvent","items","item","activeItem","currentItem","candidateNodes","focusFirst","ITEM_NAME","RovingFocusGroupItem","focusable","itemProps","autoId","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","candidates","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","candidate","_","Root","Item","NAME","Toggle","pressedProp","defaultPressed","onPressedChange","buttonProps","pressed","setPressed","TOGGLE_GROUP_NAME","createToggleGroupContext","useRovingFocusGroupScope","ToggleGroup","toggleGroupProps","singleProps","ToggleGroupImplSingle","multipleProps","ToggleGroupImplMultiple","ToggleGroupValueProvider","useToggleGroupValueContext","valueProp","onValueChange","toggleGroupSingleProps","ToggleGroupImpl","toggleGroupMultipleProps","handleButtonActivate","itemValue","handleButtonDeactivate","ToggleGroupContext","useToggleGroupContext","__scopeToggleGroup","disabled","rovingFocus","rovingFocusGroupScope","commonProps","RovingFocusGroup.Root","ToggleGroupItem","valueContext","RovingFocusGroup.Item","ToggleGroupItemImpl","typeProps","Root2","Item2","toggleVariants","ToggleGroupPrimitive.Root","ToggleGroupPrimitive.Item","axialIcon","coronalIcon","sagittalIcon","ViewSelector","currentView","onViewChange","jsxs","Grid2X2","dragModeConfig","defaultAvailableModes","DragModeSelector","currentMode","onModeChange","availableModes","Header","setSidebarOpen","setFooterOpen","setDarkMode","setSettingsDialogOpen","Footer","ImageUploader","onUpload","compact","isDragging","setIsDragging","useState","handleDragOver","handleDragLeave","handleDrop","handleButtonClick","ImageCanvas","viewMode","canvasRef","containerRef","imageLoaded","setImageLoaded","canvas","renderMultiView","getViewLabel","CanvasArea","nvInstance","onFileUpload","nvCanvasEmptyState","ViewerShell","sidebar","dialogs","hiddenInputs","useStateMachine","machine","React.useReducer","Presence","present","presence","usePresence","React2.Children","React2.cloneElement","setNode","React2.useState","stylesRef","React2.useRef","prevPresentRef","prevAnimationNameRef","send","React2.useEffect","currentAnimationName","getAnimationName","wasPresent","prevAnimationName","timeoutId","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","React2.useCallback","node2","TABS_NAME","createTabsContext","TabsProvider","useTabsContext","Tabs","__scopeTabs","activationMode","tabsProps","TAB_LIST_NAME","TabsList","listProps","TRIGGER_NAME","TabsTrigger","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","contentProps","isMountAnimationPreventedRef","rAF","baseId","List","Trigger","Content","TabsPrimitive.Root","TabsPrimitive.List","TabsPrimitive.Trigger","TabsPrimitive.Content","clamp","min","max","SCROLL_AREA_NAME","createScrollAreaContext","ScrollAreaProvider","useScrollAreaContext","ScrollArea","React2.forwardRef","__scopeScrollArea","scrollHideDelay","scrollAreaProps","scrollArea","setScrollArea","viewport","setViewport","setContent","scrollbarX","setScrollbarX","scrollbarY","setScrollbarY","cornerWidth","setCornerWidth","cornerHeight","setCornerHeight","scrollbarXEnabled","setScrollbarXEnabled","scrollbarYEnabled","setScrollbarYEnabled","VIEWPORT_NAME","ScrollAreaViewport","nonce","viewportProps","Fragment","SCROLLBAR_NAME","ScrollAreaScrollbar","scrollbarProps","onScrollbarXEnabledChange","onScrollbarYEnabledChange","isHorizontal","ScrollAreaScrollbarHover","ScrollAreaScrollbarScroll","ScrollAreaScrollbarAuto","ScrollAreaScrollbarVisible","setVisible","hideTimer","handlePointerEnter","handlePointerLeave","debounceScrollEnd","useDebounceCallback","scrollDirection","prevScrollPos","handleScroll","scrollPos","handleResize","isOverflowX","isOverflowY","useResizeObserver","thumbRef","pointerOffsetRef","sizes","setSizes","thumbRatio","getThumbRatio","thumb","pointerPos","getScrollPosition","getScrollPositionFromPointer","ScrollAreaScrollbarX","getThumbOffsetFromScroll","ScrollAreaScrollbarY","onSizesChange","computedStyle","setComputedStyle","ScrollAreaScrollbarImpl","getThumbSize","maxScrollPos","isScrollingWithinScrollbarBounds","toInt","ScrollbarProvider","useScrollbarContext","hasThumb","onThumbChange","onThumbPointerUp","onThumbPointerDown","onThumbPositionChange","onDragScroll","onWheelScroll","onResize","scrollbar","setScrollbar","rectRef","prevWebkitUserSelectRef","handleWheelScroll","handleThumbPositionChange","handleDragScroll","handleWheel","THUMB_NAME","ScrollAreaThumb","thumbProps","scrollbarContext","ScrollAreaThumbImpl","scrollAreaContext","composedRef","removeUnlinkedScrollListenerRef","addUnlinkedScrollListener","thumbRect","CORNER_NAME","ScrollAreaCorner","hasBothScrollbarsVisible","ScrollAreaCornerImpl","cornerProps","width","setWidth","height","setHeight","hasSize","height2","width2","viewportSize","contentSize","ratio","scrollbarPadding","thumbSize","pointerOffset","thumbSizePx","thumbCenter","thumbOffsetFromEnd","minPointerPos","maxPointerPos","scrollRange","linearScale","maxThumbPos","scrollClampRange","scrollWithoutMomentum","output","prevPosition","position","isHorizontalScroll","isVerticalScroll","delay","handleCallback","debounceTimerRef","resizeObserver","Viewport","Corner","ScrollAreaPrimitive.Root","ScrollAreaPrimitive.Viewport","ScrollBar","ScrollAreaPrimitive.Corner","ScrollAreaPrimitive.ScrollAreaScrollbar","ScrollAreaPrimitive.ScrollAreaThumb","FileList","endpoint","onFileSelect","emptyMessage","setFiles","loading","setLoading","setError","NvdTab","DataTab","Label","LabelPrimitive.Root","usePrevious","useSize","setSize","borderSizeEntry","borderSize","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","createSliderContext","SliderProvider","useSliderContext","Slider","minStepsBetweenThumbs","onValueCommit","inverted","sliderProps","thumbRefs","valueIndexToChangeRef","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","atIndex","decimalCount","getDecimalCount","snapToStep","roundValue","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","hasChanged","stepDirection","multiplier","stepInDirection","SliderOrientationProvider","useSliderOrientationContext","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","SliderImpl","isBackKey","sliderRef","isSlidingFromBottom","__scopeSlider","onHomeKeyDown","onEndKeyDown","TRACK_NAME","SliderTrack","trackProps","RANGE_NAME","SliderRange","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","SliderThumb","setThumb","SliderThumbImpl","isFormControl","percent","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","SliderBubbleInput","BUBBLE_INPUT_NAME","inputProto","percentage","totalValues","distances","closestDistance","halfWidth","getStepsBetweenValues","minStepsBetweenValues","stepsBetweenValues","rounder","Track","Range","Thumb","_values","SliderPrimitive.Root","SliderPrimitive.Track","SliderPrimitive.Range","SliderPrimitive.Thumb","Input","LabeledSliderWithInput","decimalPlaces","localValue","setLocalValue","timeoutRef","formatValue","val","debouncedOnValueChange","handleSliderChange","handleInputChange","inputValue","clampedValue","handleInputBlur","Select","SceneDetailsTab","onToggleVisibility","onEditVolume","onRemoveVolume","onAddMoreFiles","onCreateDrawingLayer","onSaveScene","onOpacityChange","onFrameChange","onContrastMinChange","onContrastMaxChange","onColormapChange","onMoveVolumeUp","onMoveVolumeDown","currentVolume","Edit","ImageIcon","CHECKBOX_NAME","createCheckboxContext","CheckboxProviderImpl","useCheckboxContext","CheckboxProvider","__scopeCheckbox","checkedProp","onCheckedChange","required","internal_do_not_use_render","setChecked","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","isIndeterminate","CheckboxTrigger","onKeyDown","onClick","checkboxProps","initialCheckedStateRef","reset","prevChecked","Checkbox","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","indicatorProps","controlSize","bubbles","defaultCheckedRef","CheckboxPrimitive.Root","CheckboxPrimitive.Indicator","CheckIcon","SurfaceDetailsTab","onRemoveSurface","onAddSurfaceFiles","onColorChange","onShaderChange","onAddLayerFiles","onRemoveLayer","onLayerOpacityChange","onLayerCalMinChange","onLayerCalMaxChange","onLayerColormapChange","onLayerUseNegativeCmapChange","selectedLayer","surface","_c","_d","_e","layer","_f","cm","DrawingTab","onDrawModeChange","onDrawingColormapChange","onPenFillChange","onPenErasesChange","onPenValueChange","onDrawingOpacityChange","onMagicWand2dOnlyChange","onMagicWandMaxDistanceChange","onMagicWandThresholdChange","onDrawUndo","onSaveDrawing","drawColormaps","ADJECTIVES","ANIMALS","pick","arr","randomSessionName","AiAnnotationTab","volumesCount","onNewSession","onLoadSession","onRunSegmentation","onExitAndSaveSession","onExitAndDeleteSession","onRefreshSessions","activeSession","setSessionName","selectedSessionId","setSelectedSessionId","newError","setNewError","models","setModels","selectedMlId","setSelectedMlId","setLabelValue","inferring","setInferring","inferError","setInferError","exitBusy","setExitBusy","fetchModels","sessionsById","useMemo","handleClickNewSession","handleClickLoadSession","handleLoadModels","handleExitAndSave","handleExitAndDelete","handleClickMode","renderPreSession","renderPostSession","Sidebar","showAiTab","Dialog","open","onOpenChange","handleEscape","DialogContent","onClose","DialogHeader","DialogTitle","DialogDescription","DialogFooter","RemoveDialog","onConfirm","onCancel","setSkipRemoveConfirmation","RADIO_NAME","createRadioContext","createRadioScope","RadioProvider","useRadioContext","Radio","__scopeRadio","onCheck","radioProps","button","setButton","RadioBubbleInput","RadioIndicator","RADIO_GROUP_NAME","createRadioGroupContext","createContextScope2","useRadioScope","RadioGroupProvider","useRadioGroupContext","RadioGroup","__scopeRadioGroup","jsx2","Primitive2","RadioGroupItem","isDisabled","radioScope","useComposedRefs2","isArrowKeyPressedRef","handleKeyDown","handleKeyUp","composeEventHandlers2","INDICATOR_NAME2","RadioGroupIndicator","Indicator","RadioGroupPrimitive.Root","RadioGroupPrimitive.Item","RadioGroupPrimitive.Indicator","CircleIcon","SaveDialog","onVolumeUrlChange","onVolumeCheckboxChange","onDocumentLocationChange","onDocumentCheckboxChange","onDocumentFormatChange","SettingsDialog","setSkipImagingUploadConfirmation","setSkipSessionDeleteConfirmation","ImagingUploadConfirmationDialog","setOpen","skip","setSkip","SessionDeleteConfirmationDialog","FreeBrowse","exposeGlobal","hostInstance","dragDrop","footer","expose","teardown","removeLayerFromMesh","handleAiRefreshSessions","handleAiNewSession","handleAiLoadSession","handleAiRunSegmentation","handleAiExitAndSaveSession","handleAiExitAndDeleteSession","DEFAULT_NIIVUE_OPTIONS","createFreeBrowseInstance","overrides","NiiVue","activeRoot","mountFreeBrowse","layout","createRoot"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,12,13,14,30,38,39,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,115,116,118,119,124,125,127,128,129,135,144]}
|