system-canvas-standalone 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/react/cjs/react.production.js","../../../node_modules/react/index.js","../../../node_modules/scheduler/cjs/scheduler.production.js","../../../node_modules/scheduler/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","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/react/jsx-runtime.js","../src/index.tsx","../../react/src/components/SystemCanvas.tsx","../../core/src/themes/dark.ts","../../core/src/themes/midnight.ts","../../core/src/themes/light.ts","../../core/src/themes/blueprint.ts","../../core/src/themes/warm.ts","../../core/src/themes/roadmap.ts","../../core/src/themes/resolve.ts","../../core/src/rendering/anchor-points.ts","../../core/src/rendering/edge-routing.ts","../../core/src/rendering/viewport-math.ts","../../core/src/lanes.ts","../../core/src/actions.ts","../../core/src/canvas.ts","../../core/src/index.ts","../../react/src/hooks/useNavigation.ts","../../react/src/hooks/useCanvasInteraction.ts","../../react/src/hooks/useNodeDrag.ts","../../react/src/hooks/useNodeResize.ts","../../react/src/hooks/useEdgeCreate.ts","../../react/src/hooks/useZoomNavigation.ts","../../react/src/components/Viewport.tsx","../../react/src/hooks/useViewport.ts","../../../node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/d3-selection/src/namespaces.js","../../../node_modules/d3-selection/src/namespace.js","../../../node_modules/d3-selection/src/creator.js","../../../node_modules/d3-selection/src/selector.js","../../../node_modules/d3-selection/src/selection/select.js","../../../node_modules/d3-selection/src/array.js","../../../node_modules/d3-selection/src/selectorAll.js","../../../node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/d3-selection/src/matcher.js","../../../node_modules/d3-selection/src/selection/selectChild.js","../../../node_modules/d3-selection/src/selection/selectChildren.js","../../../node_modules/d3-selection/src/selection/filter.js","../../../node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/d3-selection/src/selection/enter.js","../../../node_modules/d3-selection/src/constant.js","../../../node_modules/d3-selection/src/selection/data.js","../../../node_modules/d3-selection/src/selection/exit.js","../../../node_modules/d3-selection/src/selection/join.js","../../../node_modules/d3-selection/src/selection/merge.js","../../../node_modules/d3-selection/src/selection/order.js","../../../node_modules/d3-selection/src/selection/sort.js","../../../node_modules/d3-selection/src/selection/call.js","../../../node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/d3-selection/src/selection/node.js","../../../node_modules/d3-selection/src/selection/size.js","../../../node_modules/d3-selection/src/selection/empty.js","../../../node_modules/d3-selection/src/selection/each.js","../../../node_modules/d3-selection/src/selection/attr.js","../../../node_modules/d3-selection/src/window.js","../../../node_modules/d3-selection/src/selection/style.js","../../../node_modules/d3-selection/src/selection/property.js","../../../node_modules/d3-selection/src/selection/classed.js","../../../node_modules/d3-selection/src/selection/text.js","../../../node_modules/d3-selection/src/selection/html.js","../../../node_modules/d3-selection/src/selection/raise.js","../../../node_modules/d3-selection/src/selection/lower.js","../../../node_modules/d3-selection/src/selection/append.js","../../../node_modules/d3-selection/src/selection/insert.js","../../../node_modules/d3-selection/src/selection/remove.js","../../../node_modules/d3-selection/src/selection/clone.js","../../../node_modules/d3-selection/src/selection/datum.js","../../../node_modules/d3-selection/src/selection/on.js","../../../node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/d3-selection/src/selection/iterator.js","../../../node_modules/d3-selection/src/selection/index.js","../../../node_modules/d3-selection/src/select.js","../../../node_modules/d3-selection/src/sourceEvent.js","../../../node_modules/d3-selection/src/pointer.js","../../../node_modules/d3-drag/src/noevent.js","../../../node_modules/d3-drag/src/nodrag.js","../../../node_modules/d3-color/src/define.js","../../../node_modules/d3-color/src/color.js","../../../node_modules/d3-interpolate/src/basis.js","../../../node_modules/d3-interpolate/src/basisClosed.js","../../../node_modules/d3-interpolate/src/constant.js","../../../node_modules/d3-interpolate/src/color.js","../../../node_modules/d3-interpolate/src/rgb.js","../../../node_modules/d3-interpolate/src/number.js","../../../node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/d3-interpolate/src/zoom.js","../../../node_modules/d3-timer/src/timer.js","../../../node_modules/d3-timer/src/timeout.js","../../../node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/d3-transition/src/interrupt.js","../../../node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/d3-transition/src/transition/tween.js","../../../node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/d3-transition/src/transition/attr.js","../../../node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/d3-transition/src/transition/delay.js","../../../node_modules/d3-transition/src/transition/duration.js","../../../node_modules/d3-transition/src/transition/ease.js","../../../node_modules/d3-transition/src/transition/easeVarying.js","../../../node_modules/d3-transition/src/transition/filter.js","../../../node_modules/d3-transition/src/transition/merge.js","../../../node_modules/d3-transition/src/transition/on.js","../../../node_modules/d3-transition/src/transition/remove.js","../../../node_modules/d3-transition/src/transition/select.js","../../../node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/d3-transition/src/transition/selection.js","../../../node_modules/d3-transition/src/transition/style.js","../../../node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/d3-transition/src/transition/text.js","../../../node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/d3-transition/src/transition/transition.js","../../../node_modules/d3-transition/src/transition/end.js","../../../node_modules/d3-transition/src/transition/index.js","../../../node_modules/d3-ease/src/cubic.js","../../../node_modules/d3-transition/src/selection/transition.js","../../../node_modules/d3-transition/src/selection/index.js","../../../node_modules/d3-zoom/src/constant.js","../../../node_modules/d3-zoom/src/event.js","../../../node_modules/d3-zoom/src/transform.js","../../../node_modules/d3-zoom/src/noevent.js","../../../node_modules/d3-zoom/src/zoom.js","../../react/src/components/NodeIcon.tsx","../../react/src/components/RefIndicator.tsx","../../react/src/components/TextNode.tsx","../../react/src/components/FileNode.tsx","../../react/src/components/LinkNode.tsx","../../react/src/components/GroupNode.tsx","../../react/src/components/ResizeHandles.tsx","../../react/src/components/NodeRenderer.tsx","../../react/src/components/EdgeRenderer.tsx","../../react/src/components/NodeEditor.tsx","../../react/src/components/EdgeLabelEditor.tsx","../../react/src/components/ConnectionHandles.tsx","../../react/src/components/PendingEdgeRenderer.tsx","../../react/src/components/LanesBackground.tsx","../../react/src/components/Breadcrumbs.tsx","../../react/src/components/AddNodeButton.tsx","../../react/src/components/LaneHeaders.tsx","../../react/src/components/NodeToolbar.tsx"],"sourcesContent":["/**\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.5\";\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 * 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-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.5\";\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.5\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.5\"\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.5\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.5\"\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.5\";\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 * @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","import React from 'react'\nimport { createRoot, type Root } from 'react-dom/client'\nimport {\n SystemCanvas as SystemCanvasReact,\n type SystemCanvasProps,\n} from 'system-canvas-react'\nimport {\n addNode,\n updateNode,\n removeNode,\n addEdge,\n updateEdge,\n removeEdge,\n themes,\n type CanvasData,\n type CanvasNode,\n type CanvasEdge,\n type CanvasTheme,\n type NodeUpdate,\n type EdgeUpdate,\n} from 'system-canvas'\n\n// -----------------------------------------------------------------------------\n// Public types\n// -----------------------------------------------------------------------------\n\ntype ThemeOption = CanvasTheme | Partial<CanvasTheme> | keyof typeof themes\n\nexport interface StandaloneOptions\n extends Omit<SystemCanvasProps, 'canvas' | 'canvases' | 'theme'> {\n /** Root canvas data. Required. */\n canvas: CanvasData\n\n /**\n * Map of ref -> CanvasData for sub-canvases. Optional. When editable mode\n * is enabled, the standalone wrapper will automatically keep this map\n * up to date as edits are made on sub-canvases.\n */\n canvases?: Record<string, CanvasData>\n\n /**\n * Theme as an object, a partial override, or a string theme name\n * (one of: 'dark', 'midnight', 'light', 'blueprint', 'warm').\n */\n theme?: ThemeOption\n\n /**\n * Called whenever the internal canvas state changes (any edit in editable\n * mode). Receives the new root canvas and the sub-canvas map.\n */\n onChange?: (canvas: CanvasData, canvases: Record<string, CanvasData>) => void\n}\n\nexport interface StandaloneInstance {\n /** Get the current root canvas. */\n getCanvas: () => CanvasData\n /** Get the current sub-canvas map. */\n getCanvases: () => Record<string, CanvasData>\n /** Replace the root canvas and re-render. */\n setCanvas: (canvas: CanvasData) => void\n /** Replace the sub-canvas map and re-render. */\n setCanvasesMap: (canvases: Record<string, CanvasData>) => void\n /**\n * Update any subset of the options (theme, editable, callbacks, etc.)\n * and re-render. `canvas` and `canvases` are also accepted; if provided,\n * they replace the internal state.\n */\n update: (partial: Partial<StandaloneOptions>) => void\n /** Subscribe to change events. Returns an unsubscribe function. */\n on: (\n event: 'change',\n listener: (canvas: CanvasData, canvases: Record<string, CanvasData>) => void\n ) => () => void\n /** Unmount React and release all resources. */\n destroy: () => void\n}\n\n// -----------------------------------------------------------------------------\n// Implementation\n// -----------------------------------------------------------------------------\n\nfunction resolveThemeOption(\n theme: ThemeOption | undefined\n): CanvasTheme | Partial<CanvasTheme> | undefined {\n if (typeof theme === 'string') {\n return themes[theme] ?? undefined\n }\n return theme\n}\n\n/**\n * Mount a system-canvas into an HTML element.\n *\n * @example\n * const instance = SystemCanvas.render(document.getElementById('app'), {\n * canvas: { nodes: [...], edges: [...] },\n * theme: 'midnight',\n * editable: true,\n * onChange: (canvas) => console.log('updated', canvas),\n * })\n * instance.destroy() // when done\n */\nexport function render(\n element: HTMLElement,\n options: StandaloneOptions\n): StandaloneInstance {\n if (!element) {\n throw new Error('[system-canvas] render(): target element is required')\n }\n\n // Internal mutable state\n let currentCanvas: CanvasData = options.canvas\n let currentCanvases: Record<string, CanvasData> = { ...(options.canvases ?? {}) }\n let currentOptions: StandaloneOptions = options\n const listeners = new Set<\n (canvas: CanvasData, canvases: Record<string, CanvasData>) => void\n >()\n\n const root: Root = createRoot(element)\n\n const emitChange = () => {\n currentOptions.onChange?.(currentCanvas, currentCanvases)\n listeners.forEach((l) => {\n try {\n l(currentCanvas, currentCanvases)\n } catch (err) {\n console.error('[system-canvas] change listener threw:', err)\n }\n })\n }\n\n // Resolve the target CanvasData for a given canvasRef (undefined = root).\n const getTarget = (canvasRef: string | undefined): CanvasData => {\n if (!canvasRef) return currentCanvas\n return currentCanvases[canvasRef] ?? { nodes: [], edges: [] }\n }\n\n const setTarget = (canvasRef: string | undefined, next: CanvasData) => {\n if (!canvasRef) {\n currentCanvas = next\n } else {\n currentCanvases = { ...currentCanvases, [canvasRef]: next }\n }\n }\n\n // Mutation handlers that delegate to core helpers\n const handleNodeAdd = (node: CanvasNode, canvasRef: string | undefined) => {\n const target = getTarget(canvasRef)\n setTarget(canvasRef, addNode(target, node))\n currentOptions.onNodeAdd?.(node, canvasRef)\n doRender()\n emitChange()\n }\n\n const handleNodeUpdate = (\n nodeId: string,\n patch: NodeUpdate,\n canvasRef: string | undefined\n ) => {\n const target = getTarget(canvasRef)\n setTarget(canvasRef, updateNode(target, nodeId, patch))\n currentOptions.onNodeUpdate?.(nodeId, patch, canvasRef)\n doRender()\n emitChange()\n }\n\n const handleNodeDelete = (nodeId: string, canvasRef: string | undefined) => {\n const target = getTarget(canvasRef)\n setTarget(canvasRef, removeNode(target, nodeId))\n currentOptions.onNodeDelete?.(nodeId, canvasRef)\n doRender()\n emitChange()\n }\n\n const handleEdgeAdd = (edge: CanvasEdge, canvasRef: string | undefined) => {\n const target = getTarget(canvasRef)\n setTarget(canvasRef, addEdge(target, edge))\n currentOptions.onEdgeAdd?.(edge, canvasRef)\n doRender()\n emitChange()\n }\n\n const handleEdgeUpdate = (\n edgeId: string,\n patch: EdgeUpdate,\n canvasRef: string | undefined\n ) => {\n const target = getTarget(canvasRef)\n setTarget(canvasRef, updateEdge(target, edgeId, patch))\n currentOptions.onEdgeUpdate?.(edgeId, patch, canvasRef)\n doRender()\n emitChange()\n }\n\n const handleEdgeDelete = (edgeId: string, canvasRef: string | undefined) => {\n const target = getTarget(canvasRef)\n setTarget(canvasRef, removeEdge(target, edgeId))\n currentOptions.onEdgeDelete?.(edgeId, canvasRef)\n doRender()\n emitChange()\n }\n\n const doRender = () => {\n // Strip out our wrapper-specific fields and the raw canvas/canvases/theme\n // so the remaining props pass straight through to SystemCanvas.\n const {\n canvas: _canvas,\n canvases: _canvases,\n theme,\n onChange: _onChange,\n onNodeAdd: _onNodeAdd,\n onNodeUpdate: _onNodeUpdate,\n onNodeDelete: _onNodeDelete,\n onEdgeAdd: _onEdgeAdd,\n onEdgeUpdate: _onEdgeUpdate,\n onEdgeDelete: _onEdgeDelete,\n ...passthrough\n } = currentOptions\n\n const resolvedTheme = resolveThemeOption(theme)\n\n const props: SystemCanvasProps = {\n ...passthrough,\n canvas: currentCanvas,\n canvases: currentCanvases,\n theme: resolvedTheme,\n // Always provide our managed handlers so state stays in sync. Consumer\n // callbacks are invoked inside them for observation.\n onNodeAdd: handleNodeAdd,\n onNodeUpdate: handleNodeUpdate,\n onNodeDelete: handleNodeDelete,\n onEdgeAdd: handleEdgeAdd,\n onEdgeUpdate: handleEdgeUpdate,\n onEdgeDelete: handleEdgeDelete,\n }\n\n root.render(React.createElement(SystemCanvasReact, props))\n }\n\n doRender()\n\n return {\n getCanvas: () => currentCanvas,\n getCanvases: () => currentCanvases,\n setCanvas: (next) => {\n currentCanvas = next\n doRender()\n emitChange()\n },\n setCanvasesMap: (next) => {\n currentCanvases = { ...next }\n doRender()\n emitChange()\n },\n update: (partial) => {\n if (partial.canvas) currentCanvas = partial.canvas\n if (partial.canvases) currentCanvases = { ...partial.canvases }\n currentOptions = { ...currentOptions, ...partial }\n doRender()\n },\n on: (event, listener) => {\n if (event !== 'change') {\n throw new Error(`[system-canvas] unknown event: ${event}`)\n }\n listeners.add(listener)\n return () => {\n listeners.delete(listener)\n }\n },\n destroy: () => {\n listeners.clear()\n root.unmount()\n },\n }\n}\n\n// Re-export themes so users can do SystemCanvas.themes.midnight\nexport { themes }\n\n// Re-export types for the ESM bundle\nexport type {\n CanvasData,\n CanvasNode,\n CanvasEdge,\n CanvasTheme,\n NodeUpdate,\n EdgeUpdate,\n} from 'system-canvas'\n","import React, {\n useMemo,\n useRef,\n useCallback,\n useState,\n useEffect,\n useImperativeHandle,\n forwardRef,\n} from 'react'\nimport type {\n CanvasData,\n CanvasNode,\n CanvasEdge,\n CanvasTheme,\n EdgeStyle,\n ViewportState,\n ContextMenuEvent,\n ResolvedNode,\n NodeUpdate,\n EdgeUpdate,\n NodeMenuOption,\n} from 'system-canvas'\nimport {\n resolveTheme,\n resolveCanvas,\n buildNodeMap,\n darkTheme,\n themes,\n getNodeMenuOptions,\n createNodeFromOption,\n screenToCanvas,\n snapToLane,\n} from 'system-canvas'\nimport { useNavigation } from '../hooks/useNavigation.js'\nimport { useCanvasInteraction } from '../hooks/useCanvasInteraction.js'\nimport { useNodeDrag } from '../hooks/useNodeDrag.js'\nimport { useNodeResize } from '../hooks/useNodeResize.js'\nimport { useEdgeCreate } from '../hooks/useEdgeCreate.js'\nimport {\n useZoomNavigation,\n type ParentFrame,\n type ZoomNavigationConfig,\n} from '../hooks/useZoomNavigation.js'\nimport { Viewport, type ViewportHandle } from './Viewport.js'\nimport { Breadcrumbs } from './Breadcrumbs.js'\nimport { AddNodeButton, type AddNodeButtonRenderProps } from './AddNodeButton.js'\nimport { LaneHeaders } from './LaneHeaders.js'\nimport { NodeToolbar, type NodeToolbarRenderProps } from './NodeToolbar.js'\n\nexport interface SystemCanvasProps {\n /** Canvas data to render */\n canvas: CanvasData\n\n /** Resolve a ref string to canvas data (for navigation) */\n onResolveCanvas?: (ref: string) => Promise<CanvasData>\n\n /**\n * Synchronous map from ref to CanvasData. Required for `editable` mode so\n * the library can observe consumer-side edits to sub-canvases.\n */\n canvases?: Record<string, CanvasData>\n\n /** Root label for breadcrumbs (default: \"Home\") */\n rootLabel?: string\n\n /** Called when navigation occurs */\n onNavigate?: (ref: string) => void\n\n /** Called when a breadcrumb is clicked */\n onBreadcrumbClick?: (index: number) => void\n\n // --- Interaction callbacks ---\n onNodeClick?: (node: CanvasNode) => void\n onNodeDoubleClick?: (node: CanvasNode) => void\n onEdgeClick?: (edge: CanvasEdge) => void\n onEdgeDoubleClick?: (edge: CanvasEdge) => void\n onContextMenu?: (event: ContextMenuEvent) => void\n\n // --- Editing ---\n /** When true, the canvas becomes editable (add / edit / move / delete). */\n editable?: boolean\n onNodeAdd?: (node: CanvasNode, canvasRef: string | undefined) => void\n onNodeUpdate?: (\n nodeId: string,\n patch: NodeUpdate,\n canvasRef: string | undefined\n ) => void\n onNodeDelete?: (nodeId: string, canvasRef: string | undefined) => void\n onEdgeUpdate?: (\n edgeId: string,\n patch: EdgeUpdate,\n canvasRef: string | undefined\n ) => void\n onEdgeDelete?: (edgeId: string, canvasRef: string | undefined) => void\n onEdgeAdd?: (edge: CanvasEdge, canvasRef: string | undefined) => void\n /** Fully replace the default add-node FAB. */\n renderAddNodeButton?: (props: AddNodeButtonRenderProps) => React.ReactNode\n\n /**\n * Controls the floating toolbar that appears above a selected node in\n * editable mode. Defaults to `true`. Pass `false` to suppress it entirely\n * (consumers can still build their own UI via `onContextMenu`).\n */\n showNodeToolbar?: boolean\n\n /**\n * Fully replace the default node toolbar contents. The library still\n * positions the toolbar container above the node; the render prop supplies\n * its inner React nodes. Receives `{ node, theme, patch, deleteNode }`.\n */\n renderNodeToolbar?: (props: NodeToolbarRenderProps) => React.ReactNode\n\n // --- Theming ---\n /**\n * Theme applied to the entire canvas. When omitted, the library falls\n * back to (in order): the current canvas's `theme.base` hint, then the\n * root canvas's `theme.base` hint, then `darkTheme`. Supplying this\n * prop forces the theme regardless of canvas-level hints.\n */\n theme?: CanvasTheme | Partial<CanvasTheme>\n\n /**\n * Optional map of additional themes, keyed by name. Merged with the\n * built-in themes (dark, midnight, light, blueprint, warm, roadmap) and\n * consulted when a canvas declares `theme.base`. This is how you wire\n * custom themes into the per-canvas theming mechanism — set\n * `canvas.theme.base = 'kanban'` and the library looks it up here.\n */\n themes?: Record<string, CanvasTheme>\n\n // --- Edge rendering ---\n edgeStyle?: EdgeStyle\n\n // --- Viewport ---\n defaultViewport?: ViewportState\n minZoom?: number\n maxZoom?: number\n onViewportChange?: (viewport: ViewportState) => void\n /**\n * Controls when the viewport auto-fits to the visible content.\n *\n * - `'canvas-change'` (default): fit on initial mount and when navigating\n * to a different canvas. Edits (add / move / resize / delete) do NOT\n * trigger a re-fit.\n * - `'always'`: fit on initial mount and whenever the node set changes,\n * including after every edit. This is the legacy behavior.\n * - `'initial'`: fit once on initial mount only.\n * - `'never'`: do not auto-fit. Use `defaultViewport` and/or manual\n * control via consumer-managed viewport state.\n */\n autoFit?: 'canvas-change' | 'always' | 'initial' | 'never'\n\n /**\n * Controls rendering of the lane header strips (column labels on top,\n * row labels on the left) when the current canvas has `columns` or `rows`.\n *\n * - `'pinned'` (default): headers stay glued to the viewport edges,\n * so labels are always visible as the user pans/zooms.\n * - `'scroll'`: headers live at the top/left of the lane grid and\n * move with the content.\n * - `'none'`: no headers are drawn. The lane bands still render.\n */\n laneHeaders?: 'pinned' | 'scroll' | 'none'\n\n /**\n * When true and the current canvas has `columns` or `rows`, dragged nodes\n * snap their x (for columns) and y (for rows) to the nearest lane start.\n * Defaults to `false` so existing behavior is preserved.\n */\n snapToLanes?: boolean\n\n /**\n * When enabled, zooming into a ref-bearing node past a threshold commits\n * the navigation and continues seamlessly inside the sub-canvas. Zooming\n * back out past a threshold pops to the parent. Accepts `true` for the\n * default config, or an object to tune thresholds.\n *\n * Defaults to `false`. When `true` and `maxZoom` is not explicitly set,\n * the effective max zoom is raised so small nodes can reach the enter\n * threshold.\n */\n zoomNavigation?: boolean | ZoomNavigationConfig\n\n // --- Styling ---\n className?: string\n style?: React.CSSProperties\n}\n\nconst CASCADE_WINDOW_MS = 1500\nconst CASCADE_OFFSET = 20\n\n/**\n * Imperative handle exposed on the SystemCanvas component ref. Lets a\n * parent drive the camera — e.g. play a cinematic tour that zooms through\n * a chain of ref-bearing nodes.\n */\nexport interface SystemCanvasHandle {\n /**\n * Animate the camera into a node in the currently-viewed canvas, then\n * (if the node has a `ref`) navigate into its sub-canvas and fit that\n * sub-canvas to the viewport. Resolves when the new canvas has mounted\n * and finished fitting, so consumers can chain `await` calls to build a\n * multi-step tour.\n *\n * If the node has no `ref`, the zoom animation plays and the promise\n * resolves without navigating.\n */\n zoomIntoNode: (\n nodeId: string,\n options?: { durationMs?: number; targetZoom?: number }\n ) => Promise<void>\n /** Navigate back up one level in the breadcrumb stack. */\n navigateBack: () => void\n /** Reset to the root canvas. */\n navigateToRoot: () => void\n}\n\nexport const SystemCanvas = forwardRef<SystemCanvasHandle, SystemCanvasProps>(\n function SystemCanvas(\n {\n canvas,\n onResolveCanvas,\n canvases,\n rootLabel = 'Home',\n onNavigate,\n onBreadcrumbClick,\n onNodeClick,\n onNodeDoubleClick,\n onEdgeClick,\n onEdgeDoubleClick,\n onContextMenu,\n editable = false,\n onNodeAdd,\n onNodeUpdate,\n onNodeDelete,\n onEdgeUpdate,\n onEdgeDelete,\n onEdgeAdd,\n renderAddNodeButton,\n showNodeToolbar = true,\n renderNodeToolbar,\n theme: themeProp,\n themes: customThemes,\n edgeStyle = 'bezier',\n defaultViewport,\n minZoom: minZoomProp,\n maxZoom,\n onViewportChange,\n autoFit = 'canvas-change',\n laneHeaders = 'pinned',\n snapToLanes = false,\n zoomNavigation = false,\n className,\n style,\n },\n forwardedRef\n ) {\n // Resolve zoom-nav config\n const zoomNavConfig = useMemo(() => {\n const defaults = {\n enterThreshold: 0.66,\n exitThreshold: 0.33,\n prefetchThreshold: 0.4,\n landingScale: 1.2,\n landingPadding: 0.08,\n fadeDuration: 200,\n }\n if (!zoomNavigation) return { enabled: false, ...defaults }\n if (zoomNavigation === true) return { enabled: true, ...defaults }\n return {\n enabled: true,\n enterThreshold: zoomNavigation.enterThreshold ?? defaults.enterThreshold,\n exitThreshold: zoomNavigation.exitThreshold ?? defaults.exitThreshold,\n prefetchThreshold:\n zoomNavigation.prefetchThreshold ?? defaults.prefetchThreshold,\n landingScale: zoomNavigation.landingScale ?? defaults.landingScale,\n landingPadding:\n zoomNavigation.landingPadding ?? defaults.landingPadding,\n fadeDuration:\n zoomNavigation.fadeDuration ?? defaults.fadeDuration,\n }\n }, [zoomNavigation])\n\n // When zoom-navigation is enabled and the zoom extents are not\n // explicitly set, widen them so (a) small nodes can be zoomed up to the\n // enter threshold, and (b) child-canvas handoff transforms that require\n // very small zoom to fit don't get clamped.\n const effectiveMaxZoom = maxZoom ?? (zoomNavConfig.enabled ? 16 : 4)\n const effectiveMinZoom =\n minZoomProp ?? (zoomNavConfig.enabled ? 0.01 : 0.1)\n // Dev warning for missing canvases prop in editable mode\n useEffect(() => {\n const env = (globalThis as any).process?.env?.NODE_ENV\n if (editable && !canvases && env !== 'production') {\n console.warn(\n '[system-canvas] `editable` is enabled but `canvases` prop is missing. ' +\n 'Edits to sub-canvases will not be reflected without a synchronous ' +\n 'ref → CanvasData map.'\n )\n }\n }, [editable, canvases])\n\n // Zoom-navigation state: stack of parent frames, one per breadcrumb\n // entry beyond root. parentFrames[i] describes how we entered the\n // canvas at breadcrumb index i+1. Frames are populated when entering\n // via zoom-navigation; for discrete (click) navigation they're null so\n // zoom-exit is disabled from that canvas.\n const [parentFrames, setParentFrames] = useState<(ParentFrame | null)[]>([])\n const [pendingHandoff, setPendingHandoff] = useState<ViewportState | null>(\n null\n )\n\n // Guard to suppress the \"clear handoff\" side-effect inside\n // handleBreadcrumbClick when the breadcrumb click is a programmatic\n // side-effect of zoom-exit (which needs the handoff preserved).\n const suppressNextHandoffClearRef = useRef(false)\n\n const handleBreadcrumbClick = useCallback(\n (index: number) => {\n // Truncate the parent-frames stack to match the new breadcrumb depth.\n // Breadcrumb index 0 is root (no parent frame); depth of frames is\n // `breadcrumbs.length - 1`. After clicking breadcrumb index, depth\n // becomes `index`.\n setParentFrames((prev) => prev.slice(0, index))\n if (suppressNextHandoffClearRef.current) {\n suppressNextHandoffClearRef.current = false\n } else {\n setPendingHandoff(null)\n }\n onBreadcrumbClick?.(index)\n },\n [onBreadcrumbClick]\n )\n\n // Navigation state\n const {\n canvas: currentCanvas,\n currentCanvasRef,\n breadcrumbs,\n isLoading,\n navigateToRef,\n navigateToBreadcrumb,\n seedCanvas,\n } = useNavigation({\n rootCanvas: canvas,\n rootLabel,\n canvases,\n onResolveCanvas,\n onNavigate,\n onBreadcrumbClick: handleBreadcrumbClick,\n })\n\n // Resolve theme with per-canvas awareness.\n //\n // 1. An explicit `theme` prop always wins — consumer is in full control.\n // 2. Else if the *currently-viewed* canvas declares `theme.base`, use\n // that. This is what enables \"zoom into a node, land in a themed\n // sub-canvas\" UX — navigate between canvases and the theme swaps\n // automatically. Names are resolved against the built-in `themes`\n // registry plus any `customThemes` the consumer provided.\n // 3. Else if the *root* canvas declares `theme.base`, use that (so the\n // root's preference carries to sub-canvases that don't specify one).\n // 4. Else fall back to `darkTheme`.\n const theme = useMemo(() => {\n const registry: Record<string, CanvasTheme> = { ...themes, ...customThemes }\n\n const resolveByName = (name: string | undefined): CanvasTheme | null =>\n name && registry[name] ? registry[name] : null\n\n if (themeProp) {\n if ('name' in themeProp && 'background' in themeProp && 'grid' in themeProp) {\n return themeProp as CanvasTheme\n }\n return resolveTheme(themeProp as Partial<CanvasTheme>)\n }\n return (\n resolveByName(currentCanvas.theme?.base) ??\n resolveByName(canvas.theme?.base) ??\n darkTheme\n )\n }, [themeProp, customThemes, currentCanvas.theme?.base, canvas.theme?.base])\n\n // Resolve canvas data (apply theme, categories, defaults)\n const { nodes, edges, nodeMap } = useMemo(() => {\n const resolved = resolveCanvas(currentCanvas, theme)\n const map = buildNodeMap(resolved.nodes)\n return { nodes: resolved.nodes, edges: resolved.edges, nodeMap: map }\n }, [currentCanvas, theme])\n\n // Keep a ref to the latest nodes so useNodeDrag can look up group children\n // without forcing re-creations of its callbacks.\n const nodesRef = useRef<ResolvedNode[]>(nodes)\n nodesRef.current = nodes\n\n // Viewport refs\n const viewportStateRef = useRef<ViewportState>(\n defaultViewport ?? { x: 0, y: 0, zoom: 1 }\n )\n const viewportHandleRef = useRef<ViewportHandle>(null)\n\n // Stable refs used by the imperative handle. We keep them updated on\n // every render so the handle methods (created once via\n // useImperativeHandle) always see fresh state without forcing\n // consumers to re-capture the handle on every canvas swap.\n const navigateToRefRef = useRef<typeof navigateToRef>(navigateToRef)\n navigateToRefRef.current = navigateToRef\n const navigateToBreadcrumbRef = useRef<typeof navigateToBreadcrumb>(\n navigateToBreadcrumb\n )\n navigateToBreadcrumbRef.current = navigateToBreadcrumb\n const breadcrumbsRef = useRef(breadcrumbs)\n breadcrumbsRef.current = breadcrumbs\n\n // Expose an imperative API for programmatic camera control (tours, etc.)\n useImperativeHandle(\n forwardedRef,\n () => ({\n zoomIntoNode: (nodeId, options) => {\n return new Promise<void>((resolve) => {\n const node = nodesRef.current.find((n) => n.id === nodeId)\n const handle = viewportHandleRef.current\n if (!node || !handle) {\n resolve()\n return\n }\n // Phase 1: animate the camera into the node.\n handle.zoomToNode(\n node,\n () => {\n // Phase 2: if the node has a ref, navigate into the\n // sub-canvas. `navigateToRef` is async (may fetch data).\n if (!node.ref) {\n resolve()\n return\n }\n void navigateToRefRef.current(node).then(() => {\n // Give React two frames to render the new canvas so that\n // the next `zoomIntoNode` call — which reads\n // `nodesRef.current` — sees the freshly-mounted sub-canvas\n // nodes. The first rAF lets React commit, the second lets\n // the post-commit effects (including auto-fit) run.\n requestAnimationFrame(() => {\n requestAnimationFrame(() => resolve())\n })\n })\n },\n options\n )\n })\n },\n navigateBack: () => {\n const crumbs = breadcrumbsRef.current\n if (crumbs.length > 1) {\n navigateToBreadcrumbRef.current(crumbs.length - 2)\n }\n },\n navigateToRoot: () => {\n navigateToBreadcrumbRef.current(0)\n },\n }),\n [forwardedRef]\n )\n\n // Selection + editing state (editable mode)\n const [selectedId, setSelectedId] = useState<string | null>(null)\n const [editingId, setEditingId] = useState<string | null>(null)\n const [selectedEdgeId, setSelectedEdgeId] = useState<string | null>(null)\n const [editingEdgeId, setEditingEdgeId] = useState<string | null>(null)\n\n // Clear selection/editing when navigating between canvases\n useEffect(() => {\n setSelectedId(null)\n setEditingId(null)\n setSelectedEdgeId(null)\n setEditingEdgeId(null)\n }, [currentCanvasRef])\n\n // Container size — tracked so the lane-header overlay can size itself.\n const containerRef = useRef<HTMLDivElement | null>(null)\n const [containerSize, setContainerSize] = useState<{ width: number; height: number }>(\n { width: 0, height: 0 }\n )\n useEffect(() => {\n const el = containerRef.current\n if (!el) return\n const update = () => {\n const r = el.getBoundingClientRect()\n setContainerSize({ width: r.width, height: r.height })\n }\n update()\n const ro = new ResizeObserver(update)\n ro.observe(el)\n return () => ro.disconnect()\n }, [])\n\n const hasLanes =\n (currentCanvas.columns && currentCanvas.columns.length > 0) ||\n (currentCanvas.rows && currentCanvas.rows.length > 0)\n const showLaneHeaders = hasLanes && laneHeaders !== 'none'\n\n const getViewportState = useCallback(\n () => viewportStateRef.current ?? { x: 0, y: 0, zoom: 1 },\n []\n )\n\n // Drag. If snapToLanes is on and the canvas has lanes, snap the committed\n // x (to column start) and/or y (to row start) before forwarding the patch.\n const commitDrag = useCallback(\n (id: string, patch: NodeUpdate) => {\n let final = patch\n if (snapToLanes) {\n const cols = currentCanvas.columns\n const rows = currentCanvas.rows\n const nx = patch.x\n const ny = patch.y\n if (cols && cols.length > 0 && nx != null) {\n final = { ...final, x: Math.round(snapToLane(nx, cols)) }\n }\n if (rows && rows.length > 0 && ny != null) {\n final = { ...final, y: Math.round(snapToLane(ny, rows)) }\n }\n }\n onNodeUpdate?.(id, final, currentCanvasRef)\n },\n [onNodeUpdate, currentCanvasRef, snapToLanes, currentCanvas.columns, currentCanvas.rows]\n )\n\n const { dragOverrides, onPointerDown: onNodePointerDown } = useNodeDrag({\n viewport: viewportStateRef,\n nodesRef,\n onCommit: commitDrag,\n })\n\n const { resizeOverrides, onHandlePointerDown: onResizeHandlePointerDown } =\n useNodeResize({\n viewport: viewportStateRef,\n onCommit: commitDrag,\n })\n\n // Selected node with live drag/resize overrides applied — used to position\n // the floating node toolbar so it tracks the node as the user drags it.\n const selectedResolvedNode = useMemo<ResolvedNode | null>(() => {\n if (!selectedId) return null\n const base = nodeMap.get(selectedId)\n if (!base) return null\n const resize = resizeOverrides.get(selectedId)\n if (resize) {\n return { ...base, x: resize.x, y: resize.y, width: resize.width, height: resize.height }\n }\n const drag = dragOverrides.get(selectedId)\n if (drag) {\n return { ...base, x: drag.x, y: drag.y }\n }\n return base\n }, [selectedId, nodeMap, dragOverrides, resizeOverrides])\n\n // Proxy ref pointing at the SVG element exposed by the viewport handle.\n // Updated on every render so useEdgeCreate can convert client coords.\n const svgProxyRef = useRef<SVGSVGElement | null>(null)\n svgProxyRef.current = viewportHandleRef.current?.getSvgElement() ?? null\n\n const handleEdgeCreated = useCallback(\n (edge: CanvasEdge) => {\n onEdgeAdd?.(edge, currentCanvasRef)\n },\n [onEdgeAdd, currentCanvasRef]\n )\n\n const { pending: pendingEdge, onHandlePointerDown: onConnectionHandlePointerDown } =\n useEdgeCreate({\n svgRef: svgProxyRef,\n viewport: viewportStateRef,\n nodesRef,\n onCreate: handleEdgeCreated,\n })\n\n // Zoom-then-navigate: animate toward the node, then swap canvas.\n // Also stash a parent frame so zoom-exit works on the way back out\n // (even though the entry was a click rather than a zoom).\n const handleNavigableNodeClick = useCallback(\n (node: ResolvedNode) => {\n const frame: ParentFrame = {\n parentCanvasRef: currentCanvasRef,\n parentNodeRect: {\n x: node.x,\n y: node.y,\n width: node.width,\n height: node.height,\n },\n }\n setParentFrames((prev) => [...prev, frame])\n const handle = viewportHandleRef.current\n if (handle) {\n handle.zoomToNode(node, () => {\n navigateToRef(node)\n })\n } else {\n navigateToRef(node)\n }\n },\n [navigateToRef, currentCanvasRef]\n )\n\n // --- Zoom-navigation enter/exit handlers ---\n const handleZoomEnter = useCallback(\n (node: ResolvedNode, targetTransform: ViewportState) => {\n const frame: ParentFrame = {\n parentCanvasRef: currentCanvasRef,\n parentNodeRect: {\n x: node.x,\n y: node.y,\n width: node.width,\n height: node.height,\n },\n }\n setParentFrames((prev) => [...prev, frame])\n setPendingHandoff(targetTransform)\n // Fire the existing navigation flow. Because the data is already\n // resolved synchronously (the hook only fires when data is\n // available), this completes in a single tick.\n navigateToRef(node)\n },\n [currentCanvasRef, navigateToRef]\n )\n\n const handleZoomExit = useCallback(\n (targetTransform: ViewportState) => {\n setPendingHandoff(targetTransform)\n // Mark the next breadcrumb click as programmatic so its handler\n // doesn't wipe our freshly-set pending handoff.\n suppressNextHandoffClearRef.current = true\n // navigateToBreadcrumb triggers handleBreadcrumbClick which is\n // responsible for truncating parentFrames to match.\n navigateToBreadcrumb(breadcrumbs.length - 2)\n },\n [navigateToBreadcrumb, breadcrumbs.length]\n )\n\n // Current parent frame (top of the stack) — enables zoom-exit from this\n // canvas only if we entered via zoom-navigation.\n const currentParentFrame = parentFrames[parentFrames.length - 1] ?? null\n\n const {\n handleViewportChange: handleZoomNavViewportChange,\n clearCommitting: clearZoomNavCommitting,\n } = useZoomNavigation({\n enabled: zoomNavConfig.enabled,\n config: zoomNavConfig,\n nodes,\n currentCanvas,\n parentFrame: currentParentFrame,\n canvases,\n onResolveCanvas,\n onSeedCanvas: seedCanvas,\n theme,\n getViewportSize: () => {\n const svg = viewportHandleRef.current?.getSvgElement()\n if (!svg) return null\n const rect = svg.getBoundingClientRect()\n return { width: rect.width, height: rect.height }\n },\n onEnter: handleZoomEnter,\n onExit: handleZoomExit,\n })\n\n const handleViewportChange = useCallback(\n (vp: ViewportState) => {\n viewportStateRef.current = vp\n handleZoomNavViewportChange(vp)\n onViewportChange?.(vp)\n },\n [handleZoomNavViewportChange, onViewportChange]\n )\n\n const handleHandoffApplied = useCallback(() => {\n setPendingHandoff(null)\n clearZoomNavCommitting()\n }, [clearZoomNavCommitting])\n\n const handleBeginEdit = useCallback((node: ResolvedNode) => {\n setEditingId(node.id)\n }, [])\n\n const handleBeginEditEdge = useCallback((edge: CanvasEdge) => {\n setEditingEdgeId(edge.id)\n }, [])\n\n // Interaction handlers\n const {\n handleNodeClick,\n handleNodeDoubleClick,\n handleNodeNavigate,\n handleEdgeClick,\n handleEdgeDoubleClick,\n handleCanvasClick,\n handleCanvasContextMenu,\n handleNodeContextMenu,\n handleEdgeContextMenu,\n } = useCanvasInteraction({\n onNodeClick,\n onNodeDoubleClick,\n onEdgeClick,\n onEdgeDoubleClick,\n onContextMenu,\n onNavigableNodeClick: handleNavigableNodeClick,\n viewport: viewportStateRef,\n editable,\n onSelect: setSelectedId,\n onBeginEdit: handleBeginEdit,\n onSelectEdge: setSelectedEdgeId,\n onBeginEditEdge: handleBeginEditEdge,\n })\n\n // Editor commit/cancel\n const handleEditorCommit = useCallback(\n (patch: NodeUpdate) => {\n if (editingId) {\n onNodeUpdate?.(editingId, patch, currentCanvasRef)\n }\n setEditingId(null)\n },\n [editingId, onNodeUpdate, currentCanvasRef]\n )\n const handleEditorCancel = useCallback(() => {\n setEditingId(null)\n }, [])\n\n // Edge editor commit/cancel\n const handleEdgeEditorCommit = useCallback(\n (patch: EdgeUpdate) => {\n if (editingEdgeId) {\n onEdgeUpdate?.(editingEdgeId, patch, currentCanvasRef)\n }\n setEditingEdgeId(null)\n },\n [editingEdgeId, onEdgeUpdate, currentCanvasRef]\n )\n const handleEdgeEditorCancel = useCallback(() => {\n setEditingEdgeId(null)\n }, [])\n\n // Cascade offset for rapid successive adds\n const lastAddRef = useRef<{ t: number; offset: number } | null>(null)\n\n // Add-node menu plumbing\n const menuOptions = useMemo<NodeMenuOption[]>(\n () => getNodeMenuOptions(currentCanvas, theme),\n [currentCanvas, theme]\n )\n\n const addNode = useCallback(\n (option: NodeMenuOption, position?: { x: number; y: number }) => {\n // Compute default position: viewport center in canvas-space, with\n // a cascade offset for rapid successive adds.\n let x: number, y: number\n if (position) {\n x = position.x\n y = position.y\n } else {\n const handle = viewportHandleRef.current\n const svg = handle?.getSvgElement()\n if (svg) {\n const rect = svg.getBoundingClientRect()\n const centerScreen = {\n x: rect.left + rect.width / 2,\n y: rect.top + rect.height / 2,\n }\n const vp = handle!.getViewport()\n const canvasPos = screenToCanvas(centerScreen.x, centerScreen.y, vp)\n x = canvasPos.x\n y = canvasPos.y\n } else {\n x = 0\n y = 0\n }\n\n const now = Date.now()\n const last = lastAddRef.current\n const nextOffset =\n last && now - last.t < CASCADE_WINDOW_MS\n ? last.offset + CASCADE_OFFSET\n : 0\n x += nextOffset\n y += nextOffset\n lastAddRef.current = { t: now, offset: nextOffset }\n }\n\n const node = createNodeFromOption(option, Math.round(x), Math.round(y))\n onNodeAdd?.(node, currentCanvasRef)\n },\n [onNodeAdd, currentCanvasRef]\n )\n\n // Keyboard: Delete/Backspace removes selected node/edge; Escape clears selection/editing\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!editable) return\n if (e.key === 'Escape') {\n setEditingId(null)\n setSelectedId(null)\n setEditingEdgeId(null)\n setSelectedEdgeId(null)\n return\n }\n if (editingId || editingEdgeId) return // let the editor own the keys\n if (e.key === 'Delete' || e.key === 'Backspace') {\n if (selectedId) {\n e.preventDefault()\n onNodeDelete?.(selectedId, currentCanvasRef)\n setSelectedId(null)\n } else if (selectedEdgeId) {\n e.preventDefault()\n onEdgeDelete?.(selectedEdgeId, currentCanvasRef)\n setSelectedEdgeId(null)\n }\n }\n },\n [\n editable,\n editingId,\n editingEdgeId,\n selectedId,\n selectedEdgeId,\n onNodeDelete,\n onEdgeDelete,\n currentCanvasRef,\n ]\n )\n\n const renderProps: AddNodeButtonRenderProps = { options: menuOptions, addNode, theme }\n\n return (\n <div\n ref={containerRef}\n className={`system-canvas ${className ?? ''}`}\n tabIndex={editable ? 0 : -1}\n onKeyDown={handleKeyDown}\n style={{\n position: 'relative',\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n outline: 'none',\n ...style,\n }}\n >\n {/* Breadcrumbs overlay */}\n <Breadcrumbs\n breadcrumbs={breadcrumbs}\n theme={theme.breadcrumbs}\n onNavigate={navigateToBreadcrumb}\n />\n\n {/* Loading indicator */}\n {isLoading && (\n <div\n className=\"system-canvas-loading\"\n style={{\n position: 'absolute',\n top: 12,\n right: 12,\n zIndex: 10,\n padding: '6px 12px',\n background: theme.breadcrumbs.background,\n borderRadius: 8,\n color: theme.breadcrumbs.textColor,\n fontFamily: theme.node.fontFamily,\n fontSize: 12,\n backdropFilter: 'blur(8px)',\n }}\n >\n Loading...\n </div>\n )}\n\n {/* SVG viewport */}\n <Viewport\n ref={viewportHandleRef}\n nodes={nodes}\n edges={edges}\n nodeMap={nodeMap}\n theme={theme}\n edgeStyle={edgeStyle}\n columns={currentCanvas.columns}\n rows={currentCanvas.rows}\n minZoom={effectiveMinZoom}\n maxZoom={effectiveMaxZoom}\n defaultViewport={defaultViewport}\n autoFit={autoFit}\n canvasRef={currentCanvasRef}\n handoffTransform={pendingHandoff}\n onHandoffApplied={handleHandoffApplied}\n handoffFadeMs={zoomNavConfig.fadeDuration}\n onViewportChange={handleViewportChange}\n onNodeClick={handleNodeClick}\n onNodeDoubleClick={handleNodeDoubleClick}\n onNodeNavigate={handleNodeNavigate}\n onEdgeClick={handleEdgeClick}\n onEdgeDoubleClick={handleEdgeDoubleClick}\n onCanvasClick={editable ? handleCanvasClick : undefined}\n onCanvasContextMenu={handleCanvasContextMenu}\n onNodeContextMenu={handleNodeContextMenu}\n onEdgeContextMenu={handleEdgeContextMenu}\n onNodePointerDown={editable ? onNodePointerDown : undefined}\n selectedId={editable ? selectedId : null}\n editingId={editable ? editingId : null}\n selectedEdgeId={editable ? selectedEdgeId : null}\n editingEdgeId={editable ? editingEdgeId : null}\n dragOverrides={dragOverrides}\n resizeOverrides={resizeOverrides}\n onResizeHandlePointerDown={editable ? onResizeHandlePointerDown : undefined}\n onEditorCommit={handleEditorCommit}\n onEditorCancel={handleEditorCancel}\n onEdgeEditorCommit={handleEdgeEditorCommit}\n onEdgeEditorCancel={handleEdgeEditorCancel}\n pendingEdge={editable ? pendingEdge : null}\n onConnectionHandlePointerDown={\n editable ? onConnectionHandlePointerDown : undefined\n }\n edgeCreateEnabled={editable}\n />\n\n {/* Sticky lane headers overlay (above the viewport SVG) */}\n {showLaneHeaders && (\n <LaneHeaders\n columns={currentCanvas.columns}\n rows={currentCanvas.rows}\n theme={theme}\n getViewport={getViewportState}\n width={containerSize.width}\n height={containerSize.height}\n pinned={laneHeaders === 'pinned'}\n />\n )}\n\n {/* Floating node toolbar (above the selected node, editable mode only) */}\n {editable && showNodeToolbar && selectedResolvedNode && !editingId && (\n <NodeToolbar\n node={selectedResolvedNode}\n theme={theme}\n onPatch={(update) => {\n onNodeUpdate?.(selectedResolvedNode.id, update, currentCanvasRef)\n }}\n onDelete={() => {\n onNodeDelete?.(selectedResolvedNode.id, currentCanvasRef)\n setSelectedId(null)\n }}\n getViewport={getViewportState}\n containerWidth={containerSize.width}\n containerHeight={containerSize.height}\n render={renderNodeToolbar}\n />\n )}\n\n {/* Add-node FAB (editable only) */}\n {editable &&\n (renderAddNodeButton\n ? renderAddNodeButton(renderProps)\n : <AddNodeButton {...renderProps} />)}\n </div>\n )\n }\n)\n","import type { CanvasTheme } from '../types.js'\n\n/**\n * Default dark theme — inspired by the architecture diagram reference.\n * Slate-950 background, glowing colored nodes, grid pattern, JetBrains Mono.\n */\nexport const darkTheme: CanvasTheme = {\n name: 'dark',\n\n background: '#020617', // slate-950\n\n grid: {\n size: 40,\n color: '#1e293b', // slate-800\n strokeWidth: 0.5,\n },\n\n node: {\n fill: 'rgba(30, 41, 59, 0.5)', // slate default\n stroke: '#94a3b8', // slate-400\n strokeWidth: 1.5,\n cornerRadius: 6,\n labelColor: '#ffffff',\n sublabelColor: '#94a3b8', // slate-400\n fontFamily: \"'JetBrains Mono', 'Fira Code', 'SF Mono', monospace\",\n fontSize: 12,\n sublabelFontSize: 9,\n refIndicator: {\n icon: 'chevron',\n color: 'rgba(203, 213, 225, 0.95)', // slate-300 at 95%\n },\n },\n\n edge: {\n stroke: '#64748b', // slate-500\n strokeWidth: 1.5,\n arrowSize: 10,\n labelColor: '#94a3b8', // slate-400\n labelFontSize: 9,\n },\n\n group: {\n fill: 'rgba(30, 41, 59, 0.15)',\n stroke: '#475569', // slate-600\n strokeWidth: 1,\n strokeDasharray: '8,4',\n labelColor: '#94a3b8', // slate-400\n labelFontSize: 11,\n cornerRadius: 12,\n },\n\n breadcrumbs: {\n background: 'rgba(15, 23, 42, 0.9)', // slate-900 at 90%\n textColor: '#94a3b8',\n activeColor: '#e2e8f0', // slate-200\n separatorColor: '#475569', // slate-600\n fontFamily: \"'JetBrains Mono', 'Fira Code', 'SF Mono', monospace\",\n fontSize: 12,\n },\n\n lanes: {\n bandFillEven: 'rgba(30, 41, 59, 0.18)', // slate-800 soft\n bandFillOdd: 'rgba(30, 41, 59, 0.06)',\n dividerColor: 'rgba(71, 85, 105, 0.35)', // slate-600 muted\n dividerWidth: 1,\n headerBackground: 'rgba(15, 23, 42, 0.88)',\n headerTextColor: '#cbd5e1', // slate-300\n headerFontFamily: \"'JetBrains Mono', 'Fira Code', 'SF Mono', monospace\",\n headerFontSize: 11,\n headerSize: 28,\n headerPadding: 10,\n },\n\n presetColors: {\n '1': { fill: 'rgba(136, 19, 55, 0.4)', stroke: '#fb7185' }, // rose — security/auth\n '2': { fill: 'rgba(120, 53, 15, 0.3)', stroke: '#fb923c' }, // orange — events/messaging\n '3': { fill: 'rgba(120, 53, 15, 0.3)', stroke: '#fbbf24' }, // amber — cloud/infra\n '4': { fill: 'rgba(6, 78, 59, 0.4)', stroke: '#34d399' }, // emerald — backend/services\n '5': { fill: 'rgba(8, 51, 68, 0.4)', stroke: '#22d3ee' }, // cyan — frontend/client\n '6': { fill: 'rgba(76, 29, 149, 0.4)', stroke: '#a78bfa' }, // violet — database/storage\n },\n\n categories: {},\n}\n","import type { CanvasTheme } from '../types.js'\n\n/**\n * Midnight theme — deeper blacks, higher contrast, neon accents.\n * Terminal/hacker aesthetic.\n */\nexport const midnightTheme: CanvasTheme = {\n name: 'midnight',\n\n background: '#000000',\n\n grid: {\n size: 32,\n color: '#111111',\n strokeWidth: 0.3,\n },\n\n node: {\n fill: 'rgba(10, 10, 10, 0.8)',\n stroke: '#6b7280', // gray-500\n strokeWidth: 1,\n cornerRadius: 4,\n labelColor: '#e5e7eb', // gray-200\n sublabelColor: '#6b7280', // gray-500\n fontFamily: \"'JetBrains Mono', 'Fira Code', monospace\",\n fontSize: 11,\n sublabelFontSize: 8,\n refIndicator: {\n icon: 'arrow',\n color: 'rgba(203, 213, 225, 0.95)',\n },\n },\n\n edge: {\n stroke: '#374151', // gray-700\n strokeWidth: 1,\n arrowSize: 8,\n labelColor: '#6b7280', // gray-500\n labelFontSize: 8,\n },\n\n group: {\n fill: 'rgba(17, 17, 17, 0.4)',\n stroke: '#374151',\n strokeWidth: 1,\n strokeDasharray: '6,3',\n labelColor: '#6b7280',\n labelFontSize: 10,\n cornerRadius: 8,\n },\n\n breadcrumbs: {\n background: 'rgba(0, 0, 0, 0.95)',\n textColor: '#6b7280',\n activeColor: '#00ff88',\n separatorColor: '#374151',\n fontFamily: \"'JetBrains Mono', monospace\",\n fontSize: 11,\n },\n\n lanes: {\n bandFillEven: 'rgba(17, 17, 17, 0.7)',\n bandFillOdd: 'rgba(0, 0, 0, 0)',\n dividerColor: 'rgba(55, 65, 81, 0.6)', // gray-700\n dividerWidth: 1,\n headerBackground: 'rgba(0, 0, 0, 0.92)',\n headerTextColor: '#00ff88',\n headerFontFamily: \"'JetBrains Mono', monospace\",\n headerFontSize: 10,\n headerSize: 26,\n headerPadding: 10,\n },\n\n presetColors: {\n '1': { fill: 'rgba(255, 0, 60, 0.15)', stroke: '#ff003c' }, // neon red\n '2': { fill: 'rgba(255, 140, 0, 0.15)', stroke: '#ff8c00' }, // neon orange\n '3': { fill: 'rgba(255, 230, 0, 0.15)', stroke: '#ffe600' }, // neon yellow\n '4': { fill: 'rgba(0, 255, 136, 0.15)', stroke: '#00ff88' }, // neon green\n '5': { fill: 'rgba(0, 200, 255, 0.15)', stroke: '#00c8ff' }, // neon cyan\n '6': { fill: 'rgba(160, 0, 255, 0.15)', stroke: '#a000ff' }, // neon purple\n },\n\n categories: {},\n}\n","import type { CanvasTheme } from '../types.js'\n\n/**\n * Light theme — clean white/gray, subtle borders, muted fills.\n * Professional / documentation aesthetic.\n */\nexport const lightTheme: CanvasTheme = {\n name: 'light',\n\n background: '#f8fafc', // slate-50\n\n grid: {\n size: 40,\n color: '#e2e8f0', // slate-200\n strokeWidth: 0.5,\n },\n\n node: {\n fill: 'rgba(241, 245, 249, 0.9)', // slate-100\n stroke: '#cbd5e1', // slate-300\n strokeWidth: 1,\n cornerRadius: 8,\n labelColor: '#0f172a', // slate-900\n sublabelColor: '#64748b', // slate-500\n fontFamily: \"'Inter', 'Helvetica Neue', sans-serif\",\n fontSize: 12,\n sublabelFontSize: 9,\n refIndicator: {\n icon: 'chevron',\n color: 'rgba(71, 85, 105, 0.9)',\n },\n },\n\n edge: {\n stroke: '#94a3b8', // slate-400\n strokeWidth: 1.5,\n arrowSize: 10,\n labelColor: '#64748b', // slate-500\n labelFontSize: 9,\n },\n\n group: {\n fill: 'rgba(241, 245, 249, 0.5)',\n stroke: '#cbd5e1',\n strokeWidth: 1,\n strokeDasharray: '8,4',\n labelColor: '#64748b',\n labelFontSize: 11,\n cornerRadius: 12,\n },\n\n breadcrumbs: {\n background: 'rgba(255, 255, 255, 0.95)',\n textColor: '#64748b',\n activeColor: '#0f172a',\n separatorColor: '#cbd5e1',\n fontFamily: \"'Inter', 'Helvetica Neue', sans-serif\",\n fontSize: 12,\n },\n\n lanes: {\n bandFillEven: 'rgba(148, 163, 184, 0.10)', // slate-400 soft\n bandFillOdd: 'rgba(148, 163, 184, 0.03)',\n dividerColor: 'rgba(148, 163, 184, 0.4)',\n dividerWidth: 1,\n headerBackground: 'rgba(255, 255, 255, 0.92)',\n headerTextColor: '#334155', // slate-700\n headerFontFamily: \"'Inter', 'Helvetica Neue', sans-serif\",\n headerFontSize: 11,\n headerSize: 28,\n headerPadding: 10,\n },\n\n presetColors: {\n '1': { fill: 'rgba(254, 226, 226, 0.7)', stroke: '#ef4444' }, // red\n '2': { fill: 'rgba(255, 237, 213, 0.7)', stroke: '#f97316' }, // orange\n '3': { fill: 'rgba(254, 249, 195, 0.7)', stroke: '#eab308' }, // yellow\n '4': { fill: 'rgba(220, 252, 231, 0.7)', stroke: '#22c55e' }, // green\n '5': { fill: 'rgba(207, 250, 254, 0.7)', stroke: '#06b6d4' }, // cyan\n '6': { fill: 'rgba(237, 233, 254, 0.7)', stroke: '#8b5cf6' }, // violet\n },\n\n categories: {},\n}\n","import type { CanvasTheme } from '../types.js'\n\n/**\n * Blueprint theme — deep blue background, white/light-blue lines.\n * Technical drawing / architectural blueprint aesthetic.\n */\nexport const blueprintTheme: CanvasTheme = {\n name: 'blueprint',\n\n background: '#0a1628',\n\n grid: {\n size: 48,\n color: '#132244',\n strokeWidth: 0.6,\n },\n\n node: {\n fill: 'rgba(10, 30, 60, 0.6)',\n stroke: '#4a90d9',\n strokeWidth: 1,\n cornerRadius: 2,\n labelColor: '#d4e5f7',\n sublabelColor: '#7aaccf',\n fontFamily: \"'JetBrains Mono', 'Courier New', monospace\",\n fontSize: 11,\n sublabelFontSize: 8,\n refIndicator: {\n icon: 'expand',\n color: 'rgba(191, 219, 254, 0.95)',\n },\n },\n\n edge: {\n stroke: '#4a90d9',\n strokeWidth: 1,\n arrowSize: 9,\n labelColor: '#7aaccf',\n labelFontSize: 8,\n },\n\n group: {\n fill: 'rgba(20, 50, 90, 0.2)',\n stroke: '#4a90d9',\n strokeWidth: 0.8,\n strokeDasharray: '12,4',\n labelColor: '#7aaccf',\n labelFontSize: 10,\n cornerRadius: 2,\n },\n\n breadcrumbs: {\n background: 'rgba(10, 22, 40, 0.95)',\n textColor: '#7aaccf',\n activeColor: '#d4e5f7',\n separatorColor: '#2a4a6f',\n fontFamily: \"'JetBrains Mono', monospace\",\n fontSize: 11,\n },\n\n lanes: {\n bandFillEven: 'rgba(19, 34, 68, 0.45)',\n bandFillOdd: 'rgba(19, 34, 68, 0.15)',\n dividerColor: 'rgba(74, 144, 217, 0.35)',\n dividerWidth: 1,\n headerBackground: 'rgba(10, 22, 40, 0.92)',\n headerTextColor: '#d4e5f7',\n headerFontFamily: \"'JetBrains Mono', monospace\",\n headerFontSize: 11,\n headerSize: 28,\n headerPadding: 10,\n },\n\n presetColors: {\n '1': { fill: 'rgba(180, 60, 60, 0.25)', stroke: '#e07070' }, // blueprint red\n '2': { fill: 'rgba(200, 130, 50, 0.25)', stroke: '#d4a050' }, // blueprint orange\n '3': { fill: 'rgba(200, 180, 60, 0.25)', stroke: '#d4c860' }, // blueprint yellow\n '4': { fill: 'rgba(60, 160, 80, 0.25)', stroke: '#60c070' }, // blueprint green\n '5': { fill: 'rgba(60, 140, 200, 0.25)', stroke: '#60b0e0' }, // blueprint cyan\n '6': { fill: 'rgba(130, 80, 200, 0.25)', stroke: '#a080d0' }, // blueprint violet\n },\n\n categories: {},\n}\n","import type { CanvasTheme } from '../types.js'\n\n/**\n * Warm theme — dark warm grays, earth-tone accents.\n * Design studio / organic aesthetic.\n */\nexport const warmTheme: CanvasTheme = {\n name: 'warm',\n\n background: '#1a1714',\n\n grid: {\n size: 36,\n color: '#2a2520',\n strokeWidth: 0.4,\n },\n\n node: {\n fill: 'rgba(42, 37, 32, 0.6)',\n stroke: '#8b7e6a',\n strokeWidth: 1,\n cornerRadius: 10,\n labelColor: '#e8ddd0',\n sublabelColor: '#8b7e6a',\n fontFamily: \"'IBM Plex Mono', 'Menlo', monospace\",\n fontSize: 12,\n sublabelFontSize: 9,\n refIndicator: {\n icon: 'chevron',\n color: 'rgba(87, 77, 62, 0.9)',\n },\n },\n\n edge: {\n stroke: '#6b5e4a',\n strokeWidth: 1.5,\n arrowSize: 10,\n labelColor: '#8b7e6a',\n labelFontSize: 9,\n },\n\n group: {\n fill: 'rgba(42, 37, 32, 0.3)',\n stroke: '#6b5e4a',\n strokeWidth: 1,\n strokeDasharray: '8,4',\n labelColor: '#8b7e6a',\n labelFontSize: 11,\n cornerRadius: 14,\n },\n\n breadcrumbs: {\n background: 'rgba(26, 23, 20, 0.95)',\n textColor: '#8b7e6a',\n activeColor: '#e8ddd0',\n separatorColor: '#4a4238',\n fontFamily: \"'IBM Plex Mono', monospace\",\n fontSize: 12,\n },\n\n lanes: {\n bandFillEven: 'rgba(42, 37, 32, 0.55)',\n bandFillOdd: 'rgba(42, 37, 32, 0.2)',\n dividerColor: 'rgba(107, 94, 74, 0.45)',\n dividerWidth: 1,\n headerBackground: 'rgba(26, 23, 20, 0.92)',\n headerTextColor: '#e8ddd0',\n headerFontFamily: \"'IBM Plex Mono', monospace\",\n headerFontSize: 11,\n headerSize: 28,\n headerPadding: 10,\n },\n\n presetColors: {\n '1': { fill: 'rgba(160, 60, 50, 0.3)', stroke: '#c77e6a' }, // terracotta\n '2': { fill: 'rgba(180, 120, 50, 0.3)', stroke: '#d4a060' }, // amber/honey\n '3': { fill: 'rgba(180, 160, 60, 0.3)', stroke: '#c8b860' }, // gold\n '4': { fill: 'rgba(80, 120, 70, 0.3)', stroke: '#8aaa70' }, // sage\n '5': { fill: 'rgba(70, 120, 130, 0.3)', stroke: '#70a8aa' }, // teal\n '6': { fill: 'rgba(100, 70, 120, 0.3)', stroke: '#9a80b0' }, // dusty plum\n },\n\n categories: {},\n}\n","import type { CanvasTheme } from '../types.js'\n\n/**\n * Roadmap theme — designed for timeline/column layouts like Now/Next/Later,\n * quarter-based planning, or swim-lane roadmaps. Soft neutral background,\n * muted lane bands, and purpose-built categories (initiative, milestone,\n * outcome, blocker, parking-lot).\n *\n * The theme is agnostic about what \"columns\" mean — the consumer decides\n * whether they represent quarters, ordinal buckets, phases, or anything\n * else. It just ships good visual defaults for roadmap-shaped work.\n */\nexport const roadmapTheme: CanvasTheme = {\n name: 'roadmap',\n\n background: '#0f1115', // near-black with a hint of blue\n\n grid: {\n size: 40,\n color: '#1a1d25',\n strokeWidth: 0.5,\n },\n\n node: {\n fill: 'rgba(30, 34, 44, 0.85)',\n stroke: '#3f4553',\n strokeWidth: 1,\n cornerRadius: 8,\n labelColor: '#e8ebf2',\n sublabelColor: '#8a93a6',\n fontFamily: \"'Inter', 'Helvetica Neue', sans-serif\",\n fontSize: 12,\n sublabelFontSize: 10,\n refIndicator: {\n icon: 'chevron',\n color: 'rgba(210, 217, 232, 0.95)',\n },\n },\n\n edge: {\n stroke: '#5a6478',\n strokeWidth: 1.2,\n arrowSize: 9,\n labelColor: '#8a93a6',\n labelFontSize: 9,\n },\n\n group: {\n fill: 'rgba(30, 34, 44, 0.25)',\n stroke: '#3f4553',\n strokeWidth: 1,\n strokeDasharray: '6,4',\n labelColor: '#8a93a6',\n labelFontSize: 11,\n cornerRadius: 10,\n },\n\n breadcrumbs: {\n background: 'rgba(15, 17, 21, 0.92)',\n textColor: '#8a93a6',\n activeColor: '#e8ebf2',\n separatorColor: '#3f4553',\n fontFamily: \"'Inter', 'Helvetica Neue', sans-serif\",\n fontSize: 12,\n },\n\n // Slightly stronger lane fills than the other themes — roadmap columns\n // should read as the primary structure of the canvas.\n lanes: {\n bandFillEven: 'rgba(50, 56, 70, 0.28)',\n bandFillOdd: 'rgba(50, 56, 70, 0.10)',\n dividerColor: 'rgba(90, 100, 120, 0.45)',\n dividerWidth: 1,\n headerBackground: 'rgba(15, 17, 21, 0.94)',\n headerTextColor: '#d2d9e8',\n headerFontFamily: \"'Inter', 'Helvetica Neue', sans-serif\",\n headerFontSize: 12,\n headerSize: 32,\n headerPadding: 12,\n },\n\n // Status-oriented preset colors: use these for \"done / in-progress /\n // blocked / parked\" conventions, or just as visual accents.\n presetColors: {\n '1': { fill: 'rgba(220, 38, 38, 0.22)', stroke: '#f87171' }, // blocker / risk\n '2': { fill: 'rgba(234, 88, 12, 0.22)', stroke: '#fb923c' }, // warning / at-risk\n '3': { fill: 'rgba(234, 179, 8, 0.22)', stroke: '#fcd34d' }, // in-progress\n '4': { fill: 'rgba(22, 163, 74, 0.22)', stroke: '#4ade80' }, // done / shipped\n '5': { fill: 'rgba(56, 189, 248, 0.22)', stroke: '#7dd3fc' }, // planned / next\n '6': { fill: 'rgba(168, 85, 247, 0.22)', stroke: '#c4b5fd' }, // research / discovery\n },\n\n categories: {\n initiative: {\n defaultWidth: 200,\n defaultHeight: 72,\n fill: 'rgba(56, 189, 248, 0.14)',\n stroke: '#7dd3fc',\n cornerRadius: 10,\n icon: 'initiative',\n type: 'text',\n },\n milestone: {\n defaultWidth: 160,\n defaultHeight: 52,\n fill: 'rgba(234, 179, 8, 0.18)',\n stroke: '#fcd34d',\n cornerRadius: 4,\n icon: 'milestone',\n type: 'text',\n },\n outcome: {\n defaultWidth: 200,\n defaultHeight: 68,\n fill: 'rgba(22, 163, 74, 0.15)',\n stroke: '#4ade80',\n cornerRadius: 14,\n icon: 'outcome',\n type: 'text',\n },\n blocker: {\n defaultWidth: 180,\n defaultHeight: 56,\n fill: 'rgba(220, 38, 38, 0.18)',\n stroke: '#f87171',\n cornerRadius: 6,\n icon: 'blocker',\n type: 'text',\n },\n parked: {\n defaultWidth: 180,\n defaultHeight: 56,\n fill: 'rgba(120, 125, 140, 0.18)',\n stroke: '#8a93a6',\n cornerRadius: 8,\n icon: 'parked',\n type: 'text',\n },\n lane: {\n defaultWidth: 800,\n defaultHeight: 180,\n fill: 'rgba(30, 34, 44, 0.35)',\n stroke: '#3f4553',\n cornerRadius: 10,\n icon: null,\n type: 'group',\n },\n },\n\n // Node toolbar groups: status swatches (by far the most important thing\n // to toggle on a roadmap node) and a category picker so users can convert\n // between initiative/milestone/outcome/blocker/parked in-place.\n nodeActions: [\n {\n id: 'status',\n label: 'Status',\n kind: 'swatches',\n actions: [\n {\n id: 'status-planned',\n label: 'Planned',\n swatch: '#7dd3fc',\n patch: (n) => ({\n color: '5',\n customData: { ...(n.customData ?? {}), status: 'planned' },\n }),\n isActive: (n) => n.customData?.status === 'planned',\n },\n {\n id: 'status-in-progress',\n label: 'In progress',\n swatch: '#fcd34d',\n patch: (n) => ({\n color: '3',\n customData: { ...(n.customData ?? {}), status: 'in-progress' },\n }),\n isActive: (n) => n.customData?.status === 'in-progress',\n },\n {\n id: 'status-done',\n label: 'Done',\n swatch: '#4ade80',\n patch: (n) => ({\n color: '4',\n customData: { ...(n.customData ?? {}), status: 'done' },\n }),\n isActive: (n) => n.customData?.status === 'done',\n },\n {\n id: 'status-blocked',\n label: 'Blocked',\n swatch: '#f87171',\n patch: (n) => ({\n color: '1',\n customData: { ...(n.customData ?? {}), status: 'blocked' },\n }),\n isActive: (n) => n.customData?.status === 'blocked',\n },\n ],\n },\n {\n id: 'category',\n label: 'Type',\n kind: 'menu',\n actions: [\n {\n id: 'cat-initiative',\n label: 'Initiative',\n icon: 'initiative',\n patch: { category: 'initiative' },\n isActive: (n) => n.category === 'initiative',\n },\n {\n id: 'cat-milestone',\n label: 'Milestone',\n icon: 'milestone',\n patch: { category: 'milestone' },\n isActive: (n) => n.category === 'milestone',\n },\n {\n id: 'cat-outcome',\n label: 'Outcome',\n icon: 'outcome',\n patch: { category: 'outcome' },\n isActive: (n) => n.category === 'outcome',\n },\n {\n id: 'cat-blocker',\n label: 'Blocker',\n icon: 'blocker',\n patch: { category: 'blocker' },\n isActive: (n) => n.category === 'blocker',\n },\n {\n id: 'cat-parked',\n label: 'Parked',\n icon: 'parked',\n patch: { category: 'parked' },\n isActive: (n) => n.category === 'parked',\n },\n ],\n },\n ],\n\n // Roadmap-specific glyphs authored in a 16x16 coordinate space, matching\n // the built-in icon system so they render at the same scale.\n icons: {\n // Initiative: upward arrow inside a rounded square — \"push forward\"\n initiative: [\n 'M 2 2 L 14 2 L 14 14 L 2 14 Z',\n 'M 8 11 L 8 5',\n 'M 5 8 L 8 5 L 11 8',\n ],\n // Milestone: diamond/flag hybrid — a discrete important moment\n milestone: [\n 'M 8 2 L 14 8 L 8 14 L 2 8 Z',\n ],\n // Outcome: concentric circles, \"target\"\n outcome: [\n 'M 8 1 A 7 7 0 1 0 8 15 A 7 7 0 1 0 8 1',\n 'M 8 4.5 A 3.5 3.5 0 1 0 8 11.5 A 3.5 3.5 0 1 0 8 4.5',\n 'M 8 7.5 L 8 8.5',\n ],\n // Blocker: warning triangle with exclamation\n blocker: [\n 'M 8 2 L 15 14 L 1 14 Z',\n 'M 8 6 L 8 10',\n 'M 8 12 L 8 12.5',\n ],\n // Parked: pause bars\n parked: [\n 'M 5 3 L 5 13',\n 'M 11 3 L 11 13',\n ],\n },\n}\n","import type {\n CanvasTheme,\n CanvasNode,\n ResolvedNode,\n PresetColor,\n} from '../types.js'\nimport { darkTheme } from './dark.js'\n\n/** Deep-merge a partial theme into a base theme. */\nexport function resolveTheme(\n partial?: Partial<CanvasTheme>,\n base: CanvasTheme = darkTheme\n): CanvasTheme {\n if (!partial) return base\n\n return {\n name: partial.name ?? base.name,\n background: partial.background ?? base.background,\n grid: { ...base.grid, ...partial.grid },\n node: { ...base.node, ...partial.node },\n edge: { ...base.edge, ...partial.edge },\n group: { ...base.group, ...partial.group },\n breadcrumbs: { ...base.breadcrumbs, ...partial.breadcrumbs },\n lanes: { ...base.lanes, ...partial.lanes },\n presetColors: { ...base.presetColors, ...partial.presetColors },\n categories: { ...base.categories, ...partial.categories },\n icons: partial.icons\n ? { ...(base.icons ?? {}), ...partial.icons }\n : base.icons,\n nodeActions: partial.nodeActions ?? base.nodeActions,\n }\n}\n\n/**\n * Resolve a CanvasColor string to a fill/stroke pair.\n *\n * - Preset \"1\"-\"6\" → looked up in theme.presetColors\n * - Hex string like \"#FF0000\" → used as stroke, fill is derived at 30% opacity\n * - undefined → returns the theme's default node fill/stroke\n */\nexport function resolveColor(\n color: string | undefined,\n theme: CanvasTheme\n): PresetColor {\n if (!color) {\n return { fill: theme.node.fill, stroke: theme.node.stroke }\n }\n\n // Preset color\n const preset = theme.presetColors[color]\n if (preset) return preset\n\n // Hex color — use as stroke, derive a semi-transparent fill\n if (color.startsWith('#')) {\n const r = parseInt(color.slice(1, 3), 16)\n const g = parseInt(color.slice(3, 5), 16)\n const b = parseInt(color.slice(5, 7), 16)\n return {\n fill: `rgba(${r}, ${g}, ${b}, 0.3)`,\n stroke: color,\n }\n }\n\n // Unknown — fallback to defaults\n return { fill: theme.node.fill, stroke: theme.node.stroke }\n}\n\n/**\n * Resolve a canvas node into a fully-resolved node with all dimensions,\n * colors, and visual properties computed from the theme.\n */\nexport function resolveNode(\n node: CanvasNode,\n theme: CanvasTheme\n): ResolvedNode {\n const categoryDef = node.category\n ? theme.categories[node.category]\n : undefined\n\n // Resolve dimensions: explicit > category > fallback\n const width = node.width || categoryDef?.defaultWidth || 120\n const height = node.height || categoryDef?.defaultHeight || 60\n\n // Resolve colors: explicit color > category > theme default\n let fill: string\n let stroke: string\n\n if (node.color) {\n const resolved = resolveColor(node.color, theme)\n fill = resolved.fill\n stroke = resolved.stroke\n } else if (categoryDef) {\n fill = categoryDef.fill\n stroke = categoryDef.stroke\n } else {\n fill = theme.node.fill\n stroke = theme.node.stroke\n }\n\n // Resolve corner radius: category > theme default\n const cornerRadius =\n categoryDef?.cornerRadius ?? theme.node.cornerRadius\n\n // Resolve icon from category\n const icon = categoryDef?.icon ?? null\n\n return {\n ...node,\n width,\n height,\n resolvedFill: fill,\n resolvedStroke: stroke,\n resolvedCornerRadius: cornerRadius,\n isNavigable: node.ref != null,\n resolvedIcon: icon,\n }\n}\n","import type { ResolvedNode, Side, AnchorPoint } from '../types.js'\n\n/**\n * Compute the anchor point on a node's side.\n * Returns the midpoint of the specified edge of the node's bounding box.\n * If no side is specified, returns the center of the node.\n */\nexport function computeAnchorPoint(\n node: ResolvedNode,\n side?: Side\n): AnchorPoint {\n const cx = node.x + node.width / 2\n const cy = node.y + node.height / 2\n\n switch (side) {\n case 'top':\n return { x: cx, y: node.y }\n case 'right':\n return { x: node.x + node.width, y: cy }\n case 'bottom':\n return { x: cx, y: node.y + node.height }\n case 'left':\n return { x: node.x, y: cy }\n default:\n return { x: cx, y: cy }\n }\n}\n\n/**\n * Determine the best side to connect from/to based on relative position,\n * when no explicit side is specified.\n */\nexport function inferSide(\n from: ResolvedNode,\n to: ResolvedNode\n): { fromSide: Side; toSide: Side } {\n const fromCx = from.x + from.width / 2\n const fromCy = from.y + from.height / 2\n const toCx = to.x + to.width / 2\n const toCy = to.y + to.height / 2\n\n const dx = toCx - fromCx\n const dy = toCy - fromCy\n\n // Determine primary axis of connection\n if (Math.abs(dx) > Math.abs(dy)) {\n // Horizontal connection\n if (dx > 0) {\n return { fromSide: 'right', toSide: 'left' }\n } else {\n return { fromSide: 'left', toSide: 'right' }\n }\n } else {\n // Vertical connection\n if (dy > 0) {\n return { fromSide: 'bottom', toSide: 'top' }\n } else {\n return { fromSide: 'top', toSide: 'bottom' }\n }\n }\n}\n","import type {\n CanvasEdge,\n ResolvedNode,\n EdgeStyle,\n AnchorPoint,\n} from '../types.js'\nimport { computeAnchorPoint, inferSide } from './anchor-points.js'\n\n/**\n * Compute the SVG path `d` attribute for an edge between two nodes.\n */\nexport function computeEdgePath(\n edge: CanvasEdge,\n fromNode: ResolvedNode,\n toNode: ResolvedNode,\n style: EdgeStyle = 'bezier'\n): string {\n // Determine connection sides\n const inferred = inferSide(fromNode, toNode)\n const fromSide = edge.fromSide ?? inferred.fromSide\n const toSide = edge.toSide ?? inferred.toSide\n\n const from = computeAnchorPoint(fromNode, fromSide)\n const to = computeAnchorPoint(toNode, toSide)\n\n const effectiveStyle = edge.style ?? style\n\n switch (effectiveStyle) {\n case 'straight':\n return computeStraightPath(from, to)\n case 'orthogonal':\n return computeOrthogonalPath(from, to, fromSide, toSide)\n case 'bezier':\n default:\n return computeBezierPath(from, to, fromSide, toSide)\n }\n}\n\n/** Straight line between two points. */\nfunction computeStraightPath(from: AnchorPoint, to: AnchorPoint): string {\n return `M ${from.x} ${from.y} L ${to.x} ${to.y}`\n}\n\n/**\n * Cubic bezier curve with control points offset along the connection sides.\n * Uses a tightness factor of 0.75 (matching the Obsidian reference).\n */\nfunction computeBezierPath(\n from: AnchorPoint,\n to: AnchorPoint,\n fromSide: string,\n toSide: string\n): string {\n const dist = Math.sqrt((to.x - from.x) ** 2 + (to.y - from.y) ** 2)\n const offset = Math.max(50, dist * 0.4)\n\n const cp1 = controlPointOffset(from, fromSide, offset)\n const cp2 = controlPointOffset(to, toSide, offset)\n\n return `M ${from.x} ${from.y} C ${cp1.x} ${cp1.y}, ${cp2.x} ${cp2.y}, ${to.x} ${to.y}`\n}\n\n/**\n * Orthogonal (right-angle) path routing.\n * Creates an L-shaped or Z-shaped path depending on relative positions.\n */\nfunction computeOrthogonalPath(\n from: AnchorPoint,\n to: AnchorPoint,\n fromSide: string,\n toSide: string\n): string {\n const midX = (from.x + to.x) / 2\n const midY = (from.y + to.y) / 2\n\n // Determine routing based on the sides involved\n const isFromHorizontal = fromSide === 'left' || fromSide === 'right'\n const isToHorizontal = toSide === 'left' || toSide === 'right'\n\n if (isFromHorizontal && isToHorizontal) {\n // Both horizontal: route through midX\n return `M ${from.x} ${from.y} L ${midX} ${from.y} L ${midX} ${to.y} L ${to.x} ${to.y}`\n } else if (!isFromHorizontal && !isToHorizontal) {\n // Both vertical: route through midY\n return `M ${from.x} ${from.y} L ${from.x} ${midY} L ${to.x} ${midY} L ${to.x} ${to.y}`\n } else if (isFromHorizontal && !isToHorizontal) {\n // From horizontal, to vertical: L-shape\n return `M ${from.x} ${from.y} L ${to.x} ${from.y} L ${to.x} ${to.y}`\n } else {\n // From vertical, to horizontal: L-shape\n return `M ${from.x} ${from.y} L ${from.x} ${to.y} L ${to.x} ${to.y}`\n }\n}\n\n/**\n * Offset a point along the direction of a side for bezier control points.\n */\nfunction controlPointOffset(\n point: AnchorPoint,\n side: string,\n offset: number\n): AnchorPoint {\n switch (side) {\n case 'top':\n return { x: point.x, y: point.y - offset }\n case 'bottom':\n return { x: point.x, y: point.y + offset }\n case 'left':\n return { x: point.x - offset, y: point.y }\n case 'right':\n return { x: point.x + offset, y: point.y }\n default:\n return point\n }\n}\n\n/**\n * Compute the midpoint of an edge path (for label placement).\n */\nexport function computeEdgeMidpoint(\n edge: CanvasEdge,\n fromNode: ResolvedNode,\n toNode: ResolvedNode\n): AnchorPoint {\n const inferred = inferSide(fromNode, toNode)\n const fromSide = edge.fromSide ?? inferred.fromSide\n const toSide = edge.toSide ?? inferred.toSide\n\n const from = computeAnchorPoint(fromNode, fromSide)\n const to = computeAnchorPoint(toNode, toSide)\n\n // For the midpoint, we use the bezier curve midpoint (t=0.5)\n const dist = Math.sqrt((to.x - from.x) ** 2 + (to.y - from.y) ** 2)\n const offset = Math.max(50, dist * 0.4)\n\n const cp1 = controlPointOffset(from, fromSide, offset)\n const cp2 = controlPointOffset(to, toSide, offset)\n\n // Cubic bezier at t=0.5\n const t = 0.5\n const mt = 1 - t\n const x =\n mt * mt * mt * from.x +\n 3 * mt * mt * t * cp1.x +\n 3 * mt * t * t * cp2.x +\n t * t * t * to.x\n const y =\n mt * mt * mt * from.y +\n 3 * mt * mt * t * cp1.y +\n 3 * mt * t * t * cp2.y +\n t * t * t * to.y\n\n return { x, y }\n}\n","import type {\n ResolvedNode,\n BoundingBox,\n ViewportState,\n} from '../types.js'\n\n/**\n * Compute the bounding box of all nodes.\n */\nexport function computeBoundingBox(nodes: ResolvedNode[]): BoundingBox {\n if (nodes.length === 0) {\n return { minX: 0, minY: 0, maxX: 0, maxY: 0, width: 0, height: 0 }\n }\n\n let minX = Infinity\n let minY = Infinity\n let maxX = -Infinity\n let maxY = -Infinity\n\n for (const node of nodes) {\n minX = Math.min(minX, node.x)\n minY = Math.min(minY, node.y)\n maxX = Math.max(maxX, node.x + node.width)\n maxY = Math.max(maxY, node.y + node.height)\n }\n\n return {\n minX,\n minY,\n maxX,\n maxY,\n width: maxX - minX,\n height: maxY - minY,\n }\n}\n\n/**\n * Compute a viewport transform that fits all nodes into the given\n * viewport dimensions with padding.\n */\nexport function fitToBounds(\n nodes: ResolvedNode[],\n viewportWidth: number,\n viewportHeight: number,\n padding: number = 60\n): ViewportState {\n const bounds = computeBoundingBox(nodes)\n\n if (bounds.width === 0 || bounds.height === 0) {\n return { x: 0, y: 0, zoom: 1 }\n }\n\n const availableWidth = viewportWidth - padding * 2\n const availableHeight = viewportHeight - padding * 2\n\n const scaleX = availableWidth / bounds.width\n const scaleY = availableHeight / bounds.height\n const zoom = Math.min(scaleX, scaleY, 2) // cap at 2x\n\n // Center the content\n const contentCenterX = bounds.minX + bounds.width / 2\n const contentCenterY = bounds.minY + bounds.height / 2\n\n const x = viewportWidth / 2 - contentCenterX * zoom\n const y = viewportHeight / 2 - contentCenterY * zoom\n\n return { x, y, zoom }\n}\n\n/**\n * Convert a screen-space point to canvas-space given the current viewport.\n */\nexport function screenToCanvas(\n screenX: number,\n screenY: number,\n viewport: ViewportState\n): { x: number; y: number } {\n return {\n x: (screenX - viewport.x) / viewport.zoom,\n y: (screenY - viewport.y) / viewport.zoom,\n }\n}\n\n/**\n * Convert a canvas-space point to screen-space given the current viewport.\n */\nexport function canvasToScreen(\n canvasX: number,\n canvasY: number,\n viewport: ViewportState\n): { x: number; y: number } {\n return {\n x: canvasX * viewport.zoom + viewport.x,\n y: canvasY * viewport.zoom + viewport.y,\n }\n}\n\n/**\n * Axis-aligned rectangle in either canvas-space or screen-space.\n */\nexport interface Rect {\n x: number\n y: number\n width: number\n height: number\n}\n\n/**\n * Compute a viewport transform that places the given canvas-space bounds\n * (`bounds`) so that they fit inside the given screen-space rect\n * (`targetScreenRect`), preserving aspect ratio (contain). When the aspect\n * ratios differ, the bounds are letterboxed (centered) on the shorter axis.\n *\n * `padding` (in screen pixels) insets the target rect on all sides before\n * fitting, giving the content visual breathing room.\n *\n * This is the core \"seamless handoff\" math: given a parent node's on-screen\n * rect and a child canvas's bounding box, it returns the new viewport\n * transform that makes the child canvas appear exactly where the parent\n * node was.\n */\nexport function fitBoundsIntoRect(\n bounds: BoundingBox,\n targetScreenRect: Rect,\n padding: number = 0\n): ViewportState {\n if (bounds.width === 0 || bounds.height === 0) {\n // Degenerate bounds — center the single point in the target rect at 1x.\n return {\n x: targetScreenRect.x + targetScreenRect.width / 2 - bounds.minX,\n y: targetScreenRect.y + targetScreenRect.height / 2 - bounds.minY,\n zoom: 1,\n }\n }\n\n const availW = Math.max(1, targetScreenRect.width - padding * 2)\n const availH = Math.max(1, targetScreenRect.height - padding * 2)\n\n const scaleX = availW / bounds.width\n const scaleY = availH / bounds.height\n // Contain (fit-inside): use the smaller scale so both dimensions fit.\n const zoom = Math.min(scaleX, scaleY)\n\n // Center the scaled bounds inside the padded target rect.\n const scaledW = bounds.width * zoom\n const scaledH = bounds.height * zoom\n const offsetX = padding + (availW - scaledW) / 2\n const offsetY = padding + (availH - scaledH) / 2\n\n const x = targetScreenRect.x + offsetX - bounds.minX * zoom\n const y = targetScreenRect.y + offsetY - bounds.minY * zoom\n\n return { x, y, zoom }\n}\n\n/**\n * Compute the on-screen rect of a canvas-space rect under the given viewport.\n */\nexport function canvasRectToScreenRect(\n canvasRect: Rect,\n viewport: ViewportState\n): Rect {\n return {\n x: canvasRect.x * viewport.zoom + viewport.x,\n y: canvasRect.y * viewport.zoom + viewport.y,\n width: canvasRect.width * viewport.zoom,\n height: canvasRect.height * viewport.zoom,\n }\n}\n","import type { CanvasLane } from './types.js'\n\n/**\n * Find the lane (if any) that contains the given position along its axis.\n *\n * For `columns`, pass the node's x (or x + width/2). For `rows`, pass y.\n * Returns the first matching lane, or null if the position sits outside\n * every lane.\n */\nexport function findLaneAt(\n pos: number,\n lanes: CanvasLane[] | undefined\n): CanvasLane | null {\n if (!lanes || lanes.length === 0) return null\n for (const lane of lanes) {\n if (pos >= lane.start && pos < lane.start + lane.size) return lane\n }\n return null\n}\n\n/**\n * Snap a position to a lane boundary.\n *\n * `edge: 'start'` (default) snaps to the lane's start edge — useful for\n * snapping a node's x/y when you want nodes to left/top-align in their lane.\n * `edge: 'nearest'` snaps to whichever boundary (start, end, or any interior\n * divider between two adjacent lanes) is closest — useful when the user\n * drags across lane borders.\n *\n * If `size` is provided, the input is treated as the leading edge of an\n * object of that size, and the snap target accounts for keeping the object\n * fully inside a single lane when possible.\n *\n * Returns `pos` unchanged when `lanes` is empty or the position falls\n * outside every lane (nothing meaningful to snap to).\n */\nexport function snapToLane(\n pos: number,\n lanes: CanvasLane[] | undefined,\n options: { edge?: 'start' | 'nearest'; size?: number } = {}\n): number {\n if (!lanes || lanes.length === 0) return pos\n const edge = options.edge ?? 'start'\n const size = options.size ?? 0\n\n if (edge === 'start') {\n // Prefer the lane whose body contains `pos`; else the lane whose\n // start is closest to `pos`.\n const containing = findLaneAt(pos, lanes)\n if (containing) return containing.start\n let best = lanes[0]\n let bestDist = Math.abs(pos - best.start)\n for (const lane of lanes) {\n const d = Math.abs(pos - lane.start)\n if (d < bestDist) {\n best = lane\n bestDist = d\n }\n }\n return best.start\n }\n\n // 'nearest': consider every lane boundary (start of each lane, plus end\n // of the last lane) and pick the closest.\n const boundaries: number[] = []\n for (const lane of lanes) boundaries.push(lane.start)\n const last = lanes[lanes.length - 1]\n boundaries.push(last.start + last.size)\n\n // When size is given, the object's right/bottom edge is `pos + size`.\n // We want `pos` itself to snap to a boundary — simple nearest is fine.\n let best = boundaries[0]\n let bestDist = Math.abs(pos - best)\n for (const b of boundaries) {\n const d = Math.abs(pos - b)\n if (d < bestDist) {\n best = b\n bestDist = d\n }\n }\n // If snapping would overflow the last lane given the object size, pull\n // back to keep the object inside.\n if (size > 0) {\n const maxStart = last.start + last.size - size\n if (best > maxStart) best = maxStart\n }\n return best\n}\n\n/**\n * Convenience: produce a set of equally-sized lanes from an array of labels.\n *\n * Consumers that don't want to compute pixel positions can write\n * `evenLanes(['Now', 'Next', 'Later'])` and get three 400-wide lanes\n * starting at x = 0.\n */\nexport function evenLanes(\n labels: string[],\n size: number = 400,\n start: number = 0\n): CanvasLane[] {\n return labels.map((label, i) => ({\n id: label,\n label,\n start: start + i * size,\n size,\n }))\n}\n\n/**\n * Total extent covered by a lane list (from first.start to last end).\n * Returns 0 when the list is empty.\n */\nexport function lanesExtent(\n lanes: CanvasLane[] | undefined\n): { start: number; end: number } {\n if (!lanes || lanes.length === 0) return { start: 0, end: 0 }\n let start = Infinity\n let end = -Infinity\n for (const lane of lanes) {\n if (lane.start < start) start = lane.start\n if (lane.start + lane.size > end) end = lane.start + lane.size\n }\n return { start, end }\n}\n","import type {\n CanvasNode,\n CanvasTheme,\n NodeAction,\n NodeActionGroup,\n NodeUpdate,\n} from './types.js'\n\n/**\n * Resolve a NodeAction's patch against the given node.\n *\n * Actions may declare their patch as a static object or as a function\n * that receives the current node — the function form enables toggles,\n * cycles, and customData merges.\n */\nexport function resolveActionPatch(\n action: NodeAction,\n node: CanvasNode\n): NodeUpdate {\n return typeof action.patch === 'function' ? action.patch(node) : action.patch\n}\n\n/**\n * Build the default action group used when a theme does not declare its\n * own `nodeActions`. Renders the theme's preset colors \"1\"..\"6\" as\n * swatches that patch the node's `color`.\n */\nexport function buildDefaultColorActions(theme: CanvasTheme): NodeActionGroup {\n const keys = Object.keys(theme.presetColors).sort()\n const actions: NodeAction[] = keys.map((key) => {\n const preset = theme.presetColors[key]\n return {\n id: `color-${key}`,\n label: `Color ${key}`,\n swatch: preset.stroke,\n patch: { color: key },\n isActive: (n) => n.color === key,\n }\n })\n return {\n id: 'color',\n label: 'Color',\n kind: 'swatches',\n actions,\n }\n}\n\n/**\n * Return the effective list of action groups for a theme. Themes that\n * declare `nodeActions` win; otherwise a generic color-swatch group is\n * synthesized from `presetColors`.\n */\nexport function getNodeActions(theme: CanvasTheme): NodeActionGroup[] {\n if (theme.nodeActions && theme.nodeActions.length > 0) {\n return theme.nodeActions\n }\n return [buildDefaultColorActions(theme)]\n}\n\n/**\n * Filter a group's actions against a specific node using each action's\n * `appliesTo` predicate (actions without `appliesTo` always apply).\n */\nexport function filterActionsForNode(\n group: NodeActionGroup,\n node: CanvasNode\n): NodeAction[] {\n return group.actions.filter((a) => !a.appliesTo || a.appliesTo(node))\n}\n","import type {\n CanvasData,\n CanvasNode,\n CanvasEdge,\n ResolvedNode,\n CanvasTheme,\n NodeUpdate,\n EdgeUpdate,\n NodeMenuOption,\n NodeType,\n} from './types.js'\nimport { resolveNode } from './themes/resolve.js'\n\n/**\n * Resolve all nodes in a canvas, applying category defaults and color resolution.\n *\n * If the canvas includes a `theme` hint with inline categories, those are\n * merged into the active theme before resolving nodes.\n */\nexport function resolveCanvas(\n canvas: CanvasData,\n theme: CanvasTheme\n): { nodes: ResolvedNode[]; edges: CanvasEdge[] } {\n // Merge canvas-level categories into the theme\n const effectiveTheme = canvas.theme?.categories\n ? {\n ...theme,\n categories: { ...theme.categories, ...canvas.theme.categories },\n }\n : theme\n\n const nodes = (canvas.nodes ?? []).map((n) => resolveNode(n, effectiveTheme))\n const edges = canvas.edges ?? []\n return { nodes, edges }\n}\n\n/**\n * Build a lookup map from node IDs to resolved nodes.\n */\nexport function buildNodeMap(\n nodes: ResolvedNode[]\n): Map<string, ResolvedNode> {\n const map = new Map<string, ResolvedNode>()\n for (const node of nodes) {\n map.set(node.id, node)\n }\n return map\n}\n\n/**\n * Get the display label for a node (used in breadcrumbs, tooltips, etc.).\n */\nexport function getNodeLabel(node: CanvasNode): string {\n if (node.type === 'group' && node.label) return node.label\n if (node.type === 'text' && node.text) {\n // Use first line of text, truncated\n const firstLine = node.text.split('\\n')[0]\n return firstLine.length > 40\n ? firstLine.slice(0, 37) + '...'\n : firstLine\n }\n if (node.type === 'file' && node.file) return node.file\n if (node.type === 'link' && node.url) return node.url\n return node.id\n}\n\n/**\n * Determine which nodes are spatially contained within a group node.\n */\nexport function getGroupChildren(\n group: ResolvedNode,\n allNodes: ResolvedNode[]\n): ResolvedNode[] {\n return allNodes.filter(\n (n) =>\n n.id !== group.id &&\n n.x >= group.x &&\n n.y >= group.y &&\n n.x + n.width <= group.x + group.width &&\n n.y + n.height <= group.y + group.height\n )\n}\n\n/**\n * Validate a canvas document. Returns an array of error messages (empty if valid).\n */\nexport function validateCanvas(canvas: CanvasData): string[] {\n const errors: string[] = []\n const nodeIds = new Set<string>()\n\n for (const node of canvas.nodes ?? []) {\n if (!node.id) errors.push('Node missing id')\n if (!node.type) errors.push(`Node ${node.id}: missing type`)\n if (node.x == null) errors.push(`Node ${node.id}: missing x`)\n if (node.y == null) errors.push(`Node ${node.id}: missing y`)\n if (nodeIds.has(node.id)) {\n errors.push(`Duplicate node id: ${node.id}`)\n }\n nodeIds.add(node.id)\n }\n\n for (const edge of canvas.edges ?? []) {\n if (!edge.id) errors.push('Edge missing id')\n if (!edge.fromNode) errors.push(`Edge ${edge.id}: missing fromNode`)\n if (!edge.toNode) errors.push(`Edge ${edge.id}: missing toNode`)\n if (edge.fromNode && !nodeIds.has(edge.fromNode)) {\n errors.push(`Edge ${edge.id}: fromNode \"${edge.fromNode}\" not found`)\n }\n if (edge.toNode && !nodeIds.has(edge.toNode)) {\n errors.push(`Edge ${edge.id}: toNode \"${edge.toNode}\" not found`)\n }\n }\n\n return errors\n}\n\n// ---------------------------------------------------------------------------\n// Editing helpers\n// ---------------------------------------------------------------------------\n\n/**\n * Generate a unique node id. Uses crypto.randomUUID() when available,\n * else falls back to a random base36 string.\n */\nexport function generateNodeId(): string {\n const g: any = globalThis as any\n if (g.crypto?.randomUUID) {\n return g.crypto.randomUUID()\n }\n return (\n 'n_' +\n Math.random().toString(36).slice(2, 10) +\n Math.random().toString(36).slice(2, 6)\n )\n}\n\n/**\n * Build the list of options that should appear in the add-node menu:\n * first every merged category (theme + canvas-level) with its visual\n * treatment, then the four base JSON Canvas node types.\n */\nexport function getNodeMenuOptions(\n canvas: CanvasData,\n theme: CanvasTheme\n): NodeMenuOption[] {\n const mergedCategories = {\n ...theme.categories,\n ...(canvas.theme?.categories ?? {}),\n }\n\n const categoryOptions: NodeMenuOption[] = Object.entries(mergedCategories).map(\n ([key, def]) => ({\n kind: 'category',\n value: key,\n label: key,\n icon: def.icon ?? null,\n fill: def.fill,\n stroke: def.stroke,\n nodeType: def.type ?? 'text',\n })\n )\n\n const baseTypes: NodeType[] = ['text', 'file', 'link', 'group']\n const typeOptions: NodeMenuOption[] = baseTypes.map((t) => ({\n kind: 'type',\n value: t,\n label: t,\n nodeType: t,\n }))\n\n return [...categoryOptions, ...typeOptions]\n}\n\n/**\n * Build a new CanvasNode for the given menu option at (x, y).\n * Dimensions come from the theme category when applicable; otherwise\n * sensible defaults are used.\n */\nexport function createNodeFromOption(\n option: NodeMenuOption,\n x: number,\n y: number,\n id: string = generateNodeId()\n): CanvasNode {\n const base: CanvasNode = {\n id,\n type: option.nodeType,\n x,\n y,\n }\n\n if (option.kind === 'category') {\n base.category = option.value\n }\n\n // Provide reasonable type-specific starter content / dimensions.\n switch (option.nodeType) {\n case 'text':\n base.text = base.text ?? 'New node'\n if (option.kind === 'type') {\n base.width = 140\n base.height = 60\n }\n break\n case 'file':\n base.file = ''\n if (option.kind === 'type') {\n base.width = 160\n base.height = 52\n }\n break\n case 'link':\n base.url = ''\n if (option.kind === 'type') {\n base.width = 200\n base.height = 60\n }\n break\n case 'group':\n base.label = option.kind === 'category' ? option.value : 'New group'\n if (option.kind === 'type') {\n base.width = 300\n base.height = 200\n }\n break\n }\n\n return base\n}\n\n/** Append a node to a canvas, returning a new CanvasData. */\nexport function addNode(canvas: CanvasData, node: CanvasNode): CanvasData {\n return {\n ...canvas,\n nodes: [...(canvas.nodes ?? []), node],\n }\n}\n\n/** Generate a unique edge id. */\nexport function generateEdgeId(): string {\n const g: any = globalThis as any\n if (g.crypto?.randomUUID) {\n return g.crypto.randomUUID()\n }\n return (\n 'e_' +\n Math.random().toString(36).slice(2, 10) +\n Math.random().toString(36).slice(2, 6)\n )\n}\n\n/** Append an edge to a canvas, returning a new CanvasData. */\nexport function addEdge(canvas: CanvasData, edge: CanvasEdge): CanvasData {\n return {\n ...canvas,\n edges: [...(canvas.edges ?? []), edge],\n }\n}\n\n/** Patch a node by id. Returns the same reference if the node is not found. */\nexport function updateNode(\n canvas: CanvasData,\n nodeId: string,\n patch: NodeUpdate\n): CanvasData {\n const nodes = canvas.nodes ?? []\n let changed = false\n const next = nodes.map((n) => {\n if (n.id !== nodeId) return n\n changed = true\n return { ...n, ...patch }\n })\n if (!changed) return canvas\n return { ...canvas, nodes: next }\n}\n\n/** Remove a node AND any edges that reference it. */\nexport function removeNode(canvas: CanvasData, nodeId: string): CanvasData {\n const nodes = (canvas.nodes ?? []).filter((n) => n.id !== nodeId)\n const edges = (canvas.edges ?? []).filter(\n (e) => e.fromNode !== nodeId && e.toNode !== nodeId\n )\n return { ...canvas, nodes, edges }\n}\n\n/** Patch an edge by id. Returns the same reference if the edge is not found. */\nexport function updateEdge(\n canvas: CanvasData,\n edgeId: string,\n patch: EdgeUpdate\n): CanvasData {\n const edges = canvas.edges ?? []\n let changed = false\n const next = edges.map((e) => {\n if (e.id !== edgeId) return e\n changed = true\n return { ...e, ...patch }\n })\n if (!changed) return canvas\n return { ...canvas, edges: next }\n}\n\n/** Remove an edge by id. */\nexport function removeEdge(canvas: CanvasData, edgeId: string): CanvasData {\n const edges = (canvas.edges ?? []).filter((e) => e.id !== edgeId)\n return { ...canvas, edges }\n}\n","// Types\nexport type {\n CanvasColor,\n NodeType,\n Side,\n EndShape,\n EdgeStyle,\n BackgroundStyle,\n CanvasNode,\n CanvasEdge,\n CanvasData,\n CanvasThemeHint,\n CategoryDefinition,\n PresetColor,\n GridConfig,\n RefIndicatorConfig,\n NodeTheme,\n EdgeTheme,\n GroupTheme,\n BreadcrumbTheme,\n LanesTheme,\n CanvasLane,\n CanvasTheme,\n ResolvedNode,\n AnchorPoint,\n ViewportState,\n BreadcrumbEntry,\n BoundingBox,\n ContextMenuEvent,\n NodeUpdate,\n EdgeUpdate,\n NodeMenuOption,\n NodeAction,\n NodeActionGroup,\n} from './types.js'\n\n// Themes\nexport {\n darkTheme,\n midnightTheme,\n lightTheme,\n blueprintTheme,\n warmTheme,\n roadmapTheme,\n resolveTheme,\n resolveColor,\n resolveNode,\n} from './themes/index.js'\n\n// Rendering utilities\nexport {\n computeAnchorPoint,\n inferSide,\n computeEdgePath,\n computeEdgeMidpoint,\n computeBoundingBox,\n fitToBounds,\n fitBoundsIntoRect,\n canvasRectToScreenRect,\n screenToCanvas,\n canvasToScreen,\n} from './rendering/index.js'\nexport type { Rect } from './rendering/index.js'\n\n// Lane helpers\nexport { findLaneAt, snapToLane, evenLanes, lanesExtent } from './lanes.js'\n\n// Action helpers\nexport {\n resolveActionPatch,\n buildDefaultColorActions,\n getNodeActions,\n filterActionsForNode,\n} from './actions.js'\n\n// Canvas helpers\nexport {\n resolveCanvas,\n buildNodeMap,\n getNodeLabel,\n getGroupChildren,\n validateCanvas,\n generateNodeId,\n getNodeMenuOptions,\n createNodeFromOption,\n addNode,\n updateNode,\n removeNode,\n generateEdgeId,\n addEdge,\n updateEdge,\n removeEdge,\n} from './canvas.js'\n\n// Convenience theme collection\nimport { darkTheme as _dark } from './themes/dark.js'\nimport { midnightTheme as _midnight } from './themes/midnight.js'\nimport { lightTheme as _light } from './themes/light.js'\nimport { blueprintTheme as _blueprint } from './themes/blueprint.js'\nimport { warmTheme as _warm } from './themes/warm.js'\nimport { roadmapTheme as _roadmap } from './themes/roadmap.js'\n\nexport const themes = {\n dark: _dark,\n midnight: _midnight,\n light: _light,\n blueprint: _blueprint,\n warm: _warm,\n roadmap: _roadmap,\n} as const\n","import { useState, useCallback, useRef, useMemo } from 'react'\nimport type { CanvasData, CanvasNode, BreadcrumbEntry } from 'system-canvas'\nimport { getNodeLabel } from 'system-canvas'\n\ninterface UseNavigationOptions {\n /** Root canvas data */\n rootCanvas: CanvasData\n /** Root label for breadcrumbs */\n rootLabel?: string\n /**\n * Synchronous map from ref to CanvasData. When present, the hook prefers\n * this over cached async results, so consumer-side edits to sub-canvases\n * are reflected immediately.\n */\n canvases?: Record<string, CanvasData>\n /** Resolve a ref string to canvas data (async fallback) */\n onResolveCanvas?: (ref: string) => Promise<CanvasData>\n /** Called when navigation occurs */\n onNavigate?: (ref: string) => void\n /** Called when breadcrumb is clicked */\n onBreadcrumbClick?: (index: number) => void\n}\n\ninterface UseNavigationResult {\n /** Current canvas to render */\n canvas: CanvasData\n /** Ref of the current canvas (undefined at root) */\n currentCanvasRef: string | undefined\n /** Current breadcrumb trail */\n breadcrumbs: BreadcrumbEntry[]\n /** Whether a canvas is currently being loaded */\n isLoading: boolean\n /** Error message if loading failed */\n error: string | null\n /** Navigate into a node's sub-canvas */\n navigateToRef: (node: CanvasNode) => Promise<void>\n /** Navigate back to a breadcrumb */\n navigateToBreadcrumb: (index: number) => void\n /**\n * Seed canvas data for a ref into the async cache without navigating.\n * Used by zoom-navigation pre-fetch so subsequent `navigateToRef` calls\n * complete synchronously.\n */\n seedCanvas: (ref: string, data: CanvasData) => void\n}\n\nexport function useNavigation(options: UseNavigationOptions): UseNavigationResult {\n const {\n rootCanvas,\n rootLabel = 'Home',\n canvases,\n onResolveCanvas,\n onNavigate,\n onBreadcrumbClick,\n } = options\n\n // Breadcrumb stack — we only track labels and refs; canvas data is looked\n // up each render from `canvases` or the async cache.\n const [breadcrumbs, setBreadcrumbs] = useState<BreadcrumbEntry[]>([\n { label: rootLabel },\n ])\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n // Async cache: ref -> last-fetched CanvasData. Used only when `canvases`\n // doesn't contain the ref.\n const asyncCacheRef = useRef<Map<string, CanvasData>>(new Map())\n // Bump to force recompute when async cache updates.\n const [, setCacheVersion] = useState(0)\n\n const currentRef = breadcrumbs.length > 1\n ? breadcrumbs[breadcrumbs.length - 1].ref\n : undefined\n\n const canvas = useMemo<CanvasData>(() => {\n if (!currentRef) return rootCanvas\n const fromProp = canvases?.[currentRef]\n if (fromProp) return fromProp\n const fromCache = asyncCacheRef.current.get(currentRef)\n if (fromCache) return fromCache\n // No data yet (still loading) — fall back to an empty canvas so the\n // renderer has something valid to work with.\n return { nodes: [], edges: [] }\n }, [rootCanvas, canvases, currentRef])\n\n const navigateToRef = useCallback(\n async (node: CanvasNode) => {\n if (!node.ref) return\n\n const ref = node.ref\n onNavigate?.(ref)\n const label = getNodeLabel(node)\n\n // Synchronous path: data already available.\n if (canvases?.[ref] || asyncCacheRef.current.has(ref)) {\n setBreadcrumbs((prev) => [...prev, { label, ref }])\n setError(null)\n return\n }\n\n if (!onResolveCanvas) {\n setError(`No data for ref \"${ref}\" and no resolver configured`)\n return\n }\n\n setIsLoading(true)\n setError(null)\n try {\n const childCanvas = await onResolveCanvas(ref)\n asyncCacheRef.current.set(ref, childCanvas)\n setCacheVersion((v) => v + 1)\n setBreadcrumbs((prev) => [...prev, { label, ref }])\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load canvas')\n } finally {\n setIsLoading(false)\n }\n },\n [canvases, onResolveCanvas, onNavigate]\n )\n\n const seedCanvas = useCallback((ref: string, data: CanvasData) => {\n asyncCacheRef.current.set(ref, data)\n }, [])\n\n const navigateToBreadcrumb = useCallback(\n (index: number) => {\n onBreadcrumbClick?.(index)\n setBreadcrumbs((prev) => prev.slice(0, index + 1))\n setError(null)\n },\n [onBreadcrumbClick]\n )\n\n return {\n canvas,\n currentCanvasRef: currentRef,\n breadcrumbs,\n isLoading,\n error,\n navigateToRef,\n navigateToBreadcrumb,\n seedCanvas,\n }\n}\n","import { useCallback } from 'react'\nimport type {\n CanvasNode,\n CanvasEdge,\n ResolvedNode,\n ContextMenuEvent,\n ViewportState,\n} from 'system-canvas'\nimport { screenToCanvas } from 'system-canvas'\n\ninterface UseCanvasInteractionOptions {\n onNodeClick?: (node: CanvasNode) => void\n onNodeDoubleClick?: (node: CanvasNode) => void\n onEdgeClick?: (edge: CanvasEdge) => void\n onEdgeDoubleClick?: (edge: CanvasEdge) => void\n onContextMenu?: (event: ContextMenuEvent) => void\n /** Called when a navigable node (has ref) is clicked to initiate navigation */\n onNavigableNodeClick?: (node: ResolvedNode) => void\n viewport: React.RefObject<ViewportState>\n\n // Editable-mode extensions\n editable?: boolean\n onSelect?: (nodeId: string | null) => void\n onBeginEdit?: (node: ResolvedNode) => void\n onSelectEdge?: (edgeId: string | null) => void\n onBeginEditEdge?: (edge: CanvasEdge) => void\n}\n\ninterface UseCanvasInteractionResult {\n handleNodeClick: (node: ResolvedNode, event: React.MouseEvent) => void\n handleNodeDoubleClick: (node: ResolvedNode, event: React.MouseEvent) => void\n handleNodeNavigate: (node: ResolvedNode, event: React.MouseEvent) => void\n handleEdgeClick: (edge: CanvasEdge, event: React.MouseEvent) => void\n handleEdgeDoubleClick: (edge: CanvasEdge, event: React.MouseEvent) => void\n handleCanvasContextMenu: (event: React.MouseEvent) => void\n handleNodeContextMenu: (node: ResolvedNode, event: React.MouseEvent) => void\n handleEdgeContextMenu: (edge: CanvasEdge, event: React.MouseEvent) => void\n /** Background click — clears selection */\n handleCanvasClick: (event: React.MouseEvent) => void\n}\n\nexport function useCanvasInteraction(\n options: UseCanvasInteractionOptions\n): UseCanvasInteractionResult {\n const {\n onNodeClick,\n onNodeDoubleClick,\n onEdgeClick,\n onEdgeDoubleClick,\n onContextMenu,\n onNavigableNodeClick,\n viewport,\n editable,\n onSelect,\n onBeginEdit,\n onSelectEdge,\n onBeginEditEdge,\n } = options\n\n const handleNodeClick = useCallback(\n (node: ResolvedNode, event: React.MouseEvent) => {\n event.stopPropagation()\n if (editable) {\n onSelect?.(node.id)\n onSelectEdge?.(null)\n }\n onNodeClick?.(node)\n },\n [editable, onNodeClick, onSelect, onSelectEdge]\n )\n\n const handleNodeDoubleClick = useCallback(\n (node: ResolvedNode, event: React.MouseEvent) => {\n event.stopPropagation()\n onNodeDoubleClick?.(node)\n if (editable) {\n onBeginEdit?.(node)\n }\n },\n [editable, onNodeDoubleClick, onBeginEdit]\n )\n\n const handleNodeNavigate = useCallback(\n (node: ResolvedNode, _event: React.MouseEvent) => {\n if (node.isNavigable) {\n onNavigableNodeClick?.(node)\n }\n },\n [onNavigableNodeClick]\n )\n\n const handleEdgeClick = useCallback(\n (edge: CanvasEdge, event: React.MouseEvent) => {\n event.stopPropagation()\n if (editable) {\n onSelectEdge?.(edge.id)\n onSelect?.(null)\n }\n onEdgeClick?.(edge)\n },\n [editable, onEdgeClick, onSelectEdge, onSelect]\n )\n\n const handleEdgeDoubleClick = useCallback(\n (edge: CanvasEdge, event: React.MouseEvent) => {\n event.stopPropagation()\n onEdgeDoubleClick?.(edge)\n if (editable) {\n onBeginEditEdge?.(edge)\n }\n },\n [editable, onEdgeDoubleClick, onBeginEditEdge]\n )\n\n const createContextMenuHandler = useCallback(\n (\n type: ContextMenuEvent['type'],\n target?: CanvasNode | CanvasEdge\n ) => {\n return (event: React.MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n if (!onContextMenu) return\n\n const canvasPos = screenToCanvas(\n event.clientX,\n event.clientY,\n viewport.current\n )\n onContextMenu({\n type,\n target,\n position: canvasPos,\n })\n }\n },\n [onContextMenu, viewport]\n )\n\n const handleCanvasContextMenu = useCallback(\n (event: React.MouseEvent) => {\n createContextMenuHandler('canvas')(event)\n },\n [createContextMenuHandler]\n )\n\n const handleNodeContextMenu = useCallback(\n (node: ResolvedNode, event: React.MouseEvent) => {\n createContextMenuHandler('node', node)(event)\n },\n [createContextMenuHandler]\n )\n\n const handleEdgeContextMenu = useCallback(\n (edge: CanvasEdge, event: React.MouseEvent) => {\n createContextMenuHandler('edge', edge)(event)\n },\n [createContextMenuHandler]\n )\n\n const handleCanvasClick = useCallback(\n (_event: React.MouseEvent) => {\n if (editable) {\n onSelect?.(null)\n onSelectEdge?.(null)\n }\n },\n [editable, onSelect, onSelectEdge]\n )\n\n return {\n handleNodeClick,\n handleNodeDoubleClick,\n handleNodeNavigate,\n handleEdgeClick,\n handleEdgeDoubleClick,\n handleCanvasContextMenu,\n handleNodeContextMenu,\n handleEdgeContextMenu,\n handleCanvasClick,\n }\n}\n","import { useCallback, useRef, useState } from 'react'\nimport type { ResolvedNode, ViewportState, NodeUpdate } from 'system-canvas'\nimport { getGroupChildren } from 'system-canvas'\n\ninterface UseNodeDragOptions {\n /** Current viewport state ref — drag uses viewport.zoom to convert deltas */\n viewport: React.RefObject<ViewportState>\n /** All currently-resolved nodes (used to find group children at drag start) */\n nodesRef: React.RefObject<ResolvedNode[]>\n /** Called once per moved node when drag ends */\n onCommit: (id: string, patch: NodeUpdate) => void\n}\n\ninterface UseNodeDragResult {\n /** Map of node id → live drag position (canvas-space) */\n dragOverrides: Map<string, { x: number; y: number }>\n /** Attach this as the node component's onPointerDown */\n onPointerDown: (node: ResolvedNode, event: React.PointerEvent) => void\n isDragging: boolean\n}\n\ninterface DragState {\n /** Starting pointer position in screen coords */\n startClientX: number\n startClientY: number\n /** Element that captured the pointer — released on up */\n captureTarget: Element\n pointerId: number\n /** Set of node ids being moved, with their original positions */\n moving: Map<string, { startX: number; startY: number }>\n}\n\nconst DRAG_THRESHOLD = 3 // px in screen space before we consider it a drag\n\nexport function useNodeDrag(options: UseNodeDragOptions): UseNodeDragResult {\n const { viewport, nodesRef, onCommit } = options\n\n const [dragOverrides, setDragOverrides] = useState<\n Map<string, { x: number; y: number }>\n >(() => new Map())\n const [isDragging, setIsDragging] = useState(false)\n\n const stateRef = useRef<DragState | null>(null)\n const movedRef = useRef(false)\n\n const onPointerMove = useCallback((event: PointerEvent) => {\n const st = stateRef.current\n if (!st || event.pointerId !== st.pointerId) return\n\n const dxScreen = event.clientX - st.startClientX\n const dyScreen = event.clientY - st.startClientY\n\n if (!movedRef.current) {\n if (\n Math.abs(dxScreen) < DRAG_THRESHOLD &&\n Math.abs(dyScreen) < DRAG_THRESHOLD\n ) {\n return\n }\n movedRef.current = true\n setIsDragging(true)\n }\n\n const zoom = viewport.current?.zoom ?? 1\n const dx = dxScreen / zoom\n const dy = dyScreen / zoom\n\n const next = new Map<string, { x: number; y: number }>()\n for (const [id, start] of st.moving) {\n next.set(id, { x: start.startX + dx, y: start.startY + dy })\n }\n setDragOverrides(next)\n }, [viewport])\n\n const finishDrag = useCallback(\n (commit: boolean) => {\n const st = stateRef.current\n if (!st) return\n\n window.removeEventListener('pointermove', onPointerMove)\n window.removeEventListener('pointerup', onPointerUpRef.current!)\n window.removeEventListener('pointercancel', onPointerCancelRef.current!)\n\n try {\n ;(st.captureTarget as any).releasePointerCapture?.(st.pointerId)\n } catch {\n // ignore\n }\n\n if (commit && movedRef.current) {\n const overrides = Array.from(dragOverridesRef.current.entries())\n for (const [id, pos] of overrides) {\n onCommit(id, { x: Math.round(pos.x), y: Math.round(pos.y) })\n }\n }\n\n stateRef.current = null\n movedRef.current = false\n setIsDragging(false)\n setDragOverrides(new Map())\n },\n [onPointerMove, onCommit]\n )\n\n // Keep a ref to dragOverrides for finishDrag to read without re-binding.\n const dragOverridesRef = useRef(dragOverrides)\n dragOverridesRef.current = dragOverrides\n\n const onPointerUpRef = useRef<((e: PointerEvent) => void) | null>(null)\n const onPointerCancelRef = useRef<((e: PointerEvent) => void) | null>(null)\n\n const onPointerUp = useCallback(\n (event: PointerEvent) => {\n const st = stateRef.current\n if (!st || event.pointerId !== st.pointerId) return\n finishDrag(true)\n },\n [finishDrag]\n )\n onPointerUpRef.current = onPointerUp\n\n const onPointerCancel = useCallback(\n (event: PointerEvent) => {\n const st = stateRef.current\n if (!st || event.pointerId !== st.pointerId) return\n finishDrag(false)\n },\n [finishDrag]\n )\n onPointerCancelRef.current = onPointerCancel\n\n const onPointerDown = useCallback(\n (node: ResolvedNode, event: React.PointerEvent) => {\n // Only primary button\n if (event.button !== 0) return\n // Don't start another drag\n if (stateRef.current) return\n\n event.stopPropagation()\n\n const moving = new Map<string, { startX: number; startY: number }>()\n moving.set(node.id, { startX: node.x, startY: node.y })\n\n // If it's a group, also move spatially contained children.\n if (node.type === 'group' && nodesRef.current) {\n const children = getGroupChildren(node, nodesRef.current)\n for (const c of children) {\n if (!moving.has(c.id)) {\n moving.set(c.id, { startX: c.x, startY: c.y })\n }\n }\n }\n\n stateRef.current = {\n startClientX: event.clientX,\n startClientY: event.clientY,\n captureTarget: event.currentTarget,\n pointerId: event.pointerId,\n moving,\n }\n movedRef.current = false\n\n try {\n ;(event.currentTarget as any).setPointerCapture?.(event.pointerId)\n } catch {\n // ignore\n }\n\n window.addEventListener('pointermove', onPointerMove)\n window.addEventListener('pointerup', onPointerUp)\n window.addEventListener('pointercancel', onPointerCancel)\n },\n [nodesRef, onPointerMove, onPointerUp, onPointerCancel]\n )\n\n return { dragOverrides, onPointerDown, isDragging }\n}\n","import { useCallback, useRef, useState } from 'react'\nimport type { ResolvedNode, ViewportState, NodeUpdate } from 'system-canvas'\n\nexport type ResizeCorner = 'nw' | 'ne' | 'sw' | 'se'\n\nexport interface ResizeOverride {\n x: number\n y: number\n width: number\n height: number\n}\n\ninterface UseNodeResizeOptions {\n viewport: React.RefObject<ViewportState>\n onCommit: (id: string, patch: NodeUpdate) => void\n /** Minimum node width/height in canvas-space. */\n minSize?: number\n}\n\ninterface UseNodeResizeResult {\n resizeOverrides: Map<string, ResizeOverride>\n onHandlePointerDown: (\n node: ResolvedNode,\n corner: ResizeCorner,\n event: React.PointerEvent\n ) => void\n isResizing: boolean\n}\n\ninterface ResizeState {\n nodeId: string\n corner: ResizeCorner\n startClientX: number\n startClientY: number\n startX: number\n startY: number\n startW: number\n startH: number\n pointerId: number\n captureTarget: Element\n}\n\nconst DEFAULT_MIN_SIZE = 40\n\nexport function useNodeResize(options: UseNodeResizeOptions): UseNodeResizeResult {\n const { viewport, onCommit, minSize = DEFAULT_MIN_SIZE } = options\n\n const [resizeOverrides, setResizeOverrides] = useState<Map<string, ResizeOverride>>(\n () => new Map()\n )\n const [isResizing, setIsResizing] = useState(false)\n\n const stateRef = useRef<ResizeState | null>(null)\n const overridesRef = useRef(resizeOverrides)\n overridesRef.current = resizeOverrides\n\n const onPointerMove = useCallback(\n (event: PointerEvent) => {\n const st = stateRef.current\n if (!st || event.pointerId !== st.pointerId) return\n\n const zoom = viewport.current?.zoom ?? 1\n const dx = (event.clientX - st.startClientX) / zoom\n const dy = (event.clientY - st.startClientY) / zoom\n\n let { startX: nx, startY: ny, startW: nw, startH: nh } = st\n\n switch (st.corner) {\n case 'se':\n nw = st.startW + dx\n nh = st.startH + dy\n break\n case 'sw':\n nw = st.startW - dx\n nh = st.startH + dy\n nx = st.startX + dx\n break\n case 'ne':\n nw = st.startW + dx\n nh = st.startH - dy\n ny = st.startY + dy\n break\n case 'nw':\n nw = st.startW - dx\n nh = st.startH - dy\n nx = st.startX + dx\n ny = st.startY + dy\n break\n }\n\n // Clamp to minimum. When clamping a west/north edge, pin the opposite\n // edge so the node doesn't drift.\n if (nw < minSize) {\n if (st.corner === 'sw' || st.corner === 'nw') {\n nx = st.startX + (st.startW - minSize)\n }\n nw = minSize\n }\n if (nh < minSize) {\n if (st.corner === 'ne' || st.corner === 'nw') {\n ny = st.startY + (st.startH - minSize)\n }\n nh = minSize\n }\n\n const next = new Map(overridesRef.current)\n next.set(st.nodeId, { x: nx, y: ny, width: nw, height: nh })\n setResizeOverrides(next)\n if (!isResizing) setIsResizing(true)\n },\n [viewport, isResizing]\n )\n\n const onPointerUpRef = useRef<((e: PointerEvent) => void) | null>(null)\n const onPointerCancelRef = useRef<((e: PointerEvent) => void) | null>(null)\n\n const finish = useCallback(\n (commit: boolean) => {\n const st = stateRef.current\n if (!st) return\n\n window.removeEventListener('pointermove', onPointerMove)\n window.removeEventListener('pointerup', onPointerUpRef.current!)\n window.removeEventListener('pointercancel', onPointerCancelRef.current!)\n\n try {\n ;(st.captureTarget as any).releasePointerCapture?.(st.pointerId)\n } catch {\n // ignore\n }\n\n if (commit) {\n const o = overridesRef.current.get(st.nodeId)\n if (o) {\n onCommit(st.nodeId, {\n x: Math.round(o.x),\n y: Math.round(o.y),\n width: Math.round(o.width),\n height: Math.round(o.height),\n })\n }\n }\n\n stateRef.current = null\n setIsResizing(false)\n setResizeOverrides(new Map())\n },\n [onPointerMove, onCommit]\n )\n\n const onPointerUp = useCallback(\n (event: PointerEvent) => {\n const st = stateRef.current\n if (!st || event.pointerId !== st.pointerId) return\n finish(true)\n },\n [finish]\n )\n onPointerUpRef.current = onPointerUp\n\n const onPointerCancel = useCallback(\n (event: PointerEvent) => {\n const st = stateRef.current\n if (!st || event.pointerId !== st.pointerId) return\n finish(false)\n },\n [finish]\n )\n onPointerCancelRef.current = onPointerCancel\n\n const onHandlePointerDown = useCallback(\n (node: ResolvedNode, corner: ResizeCorner, event: React.PointerEvent) => {\n if (event.button !== 0) return\n if (stateRef.current) return\n event.stopPropagation()\n event.preventDefault()\n\n stateRef.current = {\n nodeId: node.id,\n corner,\n startClientX: event.clientX,\n startClientY: event.clientY,\n startX: node.x,\n startY: node.y,\n startW: node.width,\n startH: node.height,\n pointerId: event.pointerId,\n captureTarget: event.currentTarget,\n }\n\n try {\n ;(event.currentTarget as any).setPointerCapture?.(event.pointerId)\n } catch {\n // ignore\n }\n\n window.addEventListener('pointermove', onPointerMove)\n window.addEventListener('pointerup', onPointerUp)\n window.addEventListener('pointercancel', onPointerCancel)\n },\n [onPointerMove, onPointerUp, onPointerCancel]\n )\n\n return { resizeOverrides, onHandlePointerDown, isResizing }\n}\n","import { useCallback, useEffect, useRef, useState } from 'react'\nimport type {\n CanvasEdge,\n ResolvedNode,\n Side,\n ViewportState,\n} from 'system-canvas'\nimport { screenToCanvas, generateEdgeId } from 'system-canvas'\n\ninterface UseEdgeCreateOptions {\n /** Ref to the SVG element (for client-rect offset + canvas-space conversion) */\n svgRef: React.RefObject<SVGSVGElement | null>\n /** Current viewport state ref */\n viewport: React.RefObject<ViewportState>\n /** All currently-resolved nodes (used to hit-test the release target) */\n nodesRef: React.RefObject<ResolvedNode[]>\n /** Called once a valid drop target is chosen */\n onCreate: (edge: CanvasEdge) => void\n}\n\nexport interface PendingEdgeState {\n sourceId: string\n sourceSide: Side\n /** Current cursor position in canvas-space */\n cursor: { x: number; y: number }\n /** The node id the cursor is currently over (may equal sourceId) */\n hoveredTargetId: string | null\n}\n\ninterface UseEdgeCreateResult {\n pending: PendingEdgeState | null\n /** Attach to each connection handle's onPointerDown */\n onHandlePointerDown: (\n node: ResolvedNode,\n side: Side,\n event: React.PointerEvent\n ) => void\n}\n\n/**\n * Padding added around each node's rect when hit-testing drop targets.\n * Must match (or exceed) ConnectionHandles' HANDLE_HIT_RADIUS so releasing\n * directly over a target node's connection handle — which sits on the\n * border and extends slightly outside the rect — still counts as a hit.\n * Also makes the drop zone a little more forgiving in general.\n */\nconst DROP_PADDING = 10\n\n/**\n * Return the topmost non-group node whose bounds (expanded by DROP_PADDING)\n * contain (x, y). Groups are never valid drop targets for edge creation.\n */\nfunction hitTestNodes(\n nodes: ResolvedNode[],\n x: number,\n y: number\n): ResolvedNode | null {\n const pad = DROP_PADDING\n // Iterate in reverse so later (visually on top) nodes win ties.\n for (let i = nodes.length - 1; i >= 0; i--) {\n const n = nodes[i]\n if (n.type === 'group') continue\n if (x < n.x - pad || x > n.x + n.width + pad) continue\n if (y < n.y - pad || y > n.y + n.height + pad) continue\n return n\n }\n return null\n}\n\nexport function useEdgeCreate(options: UseEdgeCreateOptions): UseEdgeCreateResult {\n const { svgRef, viewport, nodesRef, onCreate } = options\n\n const [pending, setPending] = useState<PendingEdgeState | null>(null)\n const pendingRef = useRef<PendingEdgeState | null>(null)\n pendingRef.current = pending\n\n // Track the pointerId to ignore stray events.\n const pointerIdRef = useRef<number | null>(null)\n\n const toCanvasPoint = useCallback(\n (clientX: number, clientY: number) => {\n const rect = svgRef.current?.getBoundingClientRect()\n const sx = clientX - (rect?.left ?? 0)\n const sy = clientY - (rect?.top ?? 0)\n const vp = viewport.current ?? { x: 0, y: 0, zoom: 1 }\n return screenToCanvas(sx, sy, vp)\n },\n [svgRef, viewport]\n )\n\n const handleMove = useCallback(\n (event: PointerEvent) => {\n if (pointerIdRef.current !== event.pointerId) return\n const curr = pendingRef.current\n if (!curr) return\n const cursor = toCanvasPoint(event.clientX, event.clientY)\n const nodes = nodesRef.current ?? []\n const hit = hitTestNodes(nodes, cursor.x, cursor.y)\n const hoveredTargetId = hit ? hit.id : null\n setPending({ ...curr, cursor, hoveredTargetId })\n },\n [nodesRef, toCanvasPoint]\n )\n\n const cleanup = useCallback(() => {\n pointerIdRef.current = null\n setPending(null)\n }, [])\n\n const handleUp = useCallback(\n (event: PointerEvent) => {\n if (pointerIdRef.current !== event.pointerId) return\n const curr = pendingRef.current\n if (!curr) {\n cleanup()\n return\n }\n\n const cursor = toCanvasPoint(event.clientX, event.clientY)\n const nodes = nodesRef.current ?? []\n const hit = hitTestNodes(nodes, cursor.x, cursor.y)\n\n // Must release over a node that isn't the source.\n if (hit && hit.id !== curr.sourceId) {\n const edge: CanvasEdge = {\n id: generateEdgeId(),\n fromNode: curr.sourceId,\n fromSide: curr.sourceSide,\n toNode: hit.id,\n }\n onCreate(edge)\n }\n\n cleanup()\n },\n [cleanup, nodesRef, onCreate, toCanvasPoint]\n )\n\n const handleCancel = useCallback(\n (event: PointerEvent) => {\n if (pointerIdRef.current !== event.pointerId) return\n cleanup()\n },\n [cleanup]\n )\n\n // Attach/detach window listeners only while a drag is active.\n useEffect(() => {\n if (!pending) return\n window.addEventListener('pointermove', handleMove)\n window.addEventListener('pointerup', handleUp)\n window.addEventListener('pointercancel', handleCancel)\n return () => {\n window.removeEventListener('pointermove', handleMove)\n window.removeEventListener('pointerup', handleUp)\n window.removeEventListener('pointercancel', handleCancel)\n }\n }, [pending, handleMove, handleUp, handleCancel])\n\n const onHandlePointerDown = useCallback(\n (node: ResolvedNode, side: Side, event: React.PointerEvent) => {\n if (event.button !== 0) return\n if (pointerIdRef.current !== null) return\n pointerIdRef.current = event.pointerId\n const cursor = toCanvasPoint(event.clientX, event.clientY)\n setPending({\n sourceId: node.id,\n sourceSide: side,\n cursor,\n hoveredTargetId: null,\n })\n },\n [toCanvasPoint]\n )\n\n return { pending, onHandlePointerDown }\n}\n","import { useCallback, useEffect, useRef } from 'react'\nimport type {\n CanvasData,\n CanvasTheme,\n Rect,\n ResolvedNode,\n ViewportState,\n} from 'system-canvas'\nimport {\n computeBoundingBox,\n fitBoundsIntoRect,\n canvasRectToScreenRect,\n resolveCanvas,\n} from 'system-canvas'\n\n/**\n * Controls how zoom-to-navigate behaves.\n */\nexport interface ZoomNavigationConfig {\n /**\n * When a ref-bearing node's on-screen size reaches this fraction of the\n * viewport in the dominant dimension, the library commits navigation\n * into the sub-canvas. Default 0.7.\n */\n enterThreshold?: number\n /**\n * When the current sub-canvas's on-screen bounding box shrinks to this\n * fraction of the viewport in the dominant dimension, the library pops\n * back to the parent. Should be well below `enterThreshold` to avoid\n * oscillation. Default 0.35.\n */\n exitThreshold?: number\n /**\n * When a ref-bearing node reaches this fraction of the viewport (a\n * lower bar than `enterThreshold`), the library pre-fetches its\n * sub-canvas via `onResolveCanvas` so the handoff is synchronous when\n * `enterThreshold` is crossed. Default 0.4.\n */\n prefetchThreshold?: number\n /**\n * Post-handoff, the child canvas is fit into the parent node's old\n * on-screen rect expanded by this factor around its center. A value of\n * 1.0 means \"exactly where the parent node was\"; 1.2 means the child\n * lands 20% larger than the parent node, centered on the same point.\n * The transform is then clamped so no child content falls outside the\n * viewport. Default 1.2.\n */\n landingScale?: number\n /**\n * Fraction of the target rect's smaller dimension reserved as padding\n * around the child content on landing. Gives the landed content visual\n * breathing room so it doesn't hug the edges of the parent node's old\n * rect. Default 0.08 (8%).\n */\n landingPadding?: number\n /**\n * Duration in milliseconds of the opacity fade-in applied to the new\n * canvas after a zoom-enter or zoom-exit handoff. Set to 0 to disable\n * fade entirely. Default 200.\n */\n fadeDuration?: number\n}\n\ninterface UseZoomNavigationOptions {\n enabled: boolean\n config: Required<ZoomNavigationConfig>\n /**\n * The nodes of the *current* canvas, with resolved dimensions. Used to\n * hit-test against the viewport.\n */\n nodes: ResolvedNode[]\n /** The current canvas (used to compute its bbox for exit detection). */\n currentCanvas: CanvasData\n /**\n * The ref of the canvas we just entered via zoom-enter, along with the\n * resolved rect of the parent node at the moment of entry. Null when at\n * a canvas not reached via zoom-enter.\n */\n parentFrame: ParentFrame | null\n /** Sync canvases map — used for pre-resolution check and pre-fetch. */\n canvases?: Record<string, CanvasData>\n /** Async resolver — used for pre-fetch. */\n onResolveCanvas?: (ref: string) => Promise<CanvasData>\n /**\n * Called to seed pre-fetched canvas data into whatever cache\n * `navigateToRef` consults, so the subsequent navigation is synchronous.\n */\n onSeedCanvas?: (ref: string, data: CanvasData) => void\n /**\n * The active theme, needed so we can resolve the pre-fetched sub-canvas\n * to compute its bounding box for the handoff math.\n */\n theme: CanvasTheme\n /** Getter for the current viewport screen size. */\n getViewportSize: () => { width: number; height: number } | null\n /**\n * Called to commit a zoom-enter navigation. Receives the (resolved)\n * node being entered and the target viewport transform that must be\n * applied on the newly-loaded canvas to make the handoff seamless.\n */\n onEnter: (node: ResolvedNode, targetTransform: ViewportState) => void\n /**\n * Called to commit a zoom-exit navigation. Receives the target viewport\n * transform that must be applied on the parent canvas to make the\n * handoff seamless.\n */\n onExit: (targetTransform: ViewportState) => void\n}\n\n/**\n * Remembers the parent node rect (in parent-canvas coordinates) and the\n * parent canvas ref for the canvas we most recently entered via\n * zoom-navigation. Used to compute the reverse handoff on zoom-exit.\n */\nexport interface ParentFrame {\n parentCanvasRef: string | undefined\n parentNodeRect: Rect\n}\n\n/**\n * Return a new rect expanded by `factor` around its center.\n * factor=1.0 is a no-op; factor=1.4 grows the rect by 40%.\n */\nfunction expandRect(rect: Rect, factor: number): Rect {\n if (factor === 1) return rect\n const cx = rect.x + rect.width / 2\n const cy = rect.y + rect.height / 2\n const w = rect.width * factor\n const h = rect.height * factor\n return { x: cx - w / 2, y: cy - h / 2, width: w, height: h }\n}\n\n/**\n * Shift `transform` so that `bounds` rendered at that transform stays\n * fully inside the viewport (with a `margin` on each side). Zoom is not\n * changed. If the bounds at the given zoom are too large to fit in the\n * viewport, the content is centered instead.\n */\nfunction clampTransformToViewport(\n transform: ViewportState,\n bounds: { minX: number; minY: number; width: number; height: number },\n viewport: { width: number; height: number },\n margin: number\n): ViewportState {\n const { zoom } = transform\n let { x, y } = transform\n const scaledW = bounds.width * zoom\n const scaledH = bounds.height * zoom\n\n // Where the bounds currently land on screen.\n const screenLeft = bounds.minX * zoom + x\n const screenTop = bounds.minY * zoom + y\n\n // Horizontal\n if (scaledW + 2 * margin >= viewport.width) {\n // Too wide to respect margins — center horizontally.\n x = (viewport.width - scaledW) / 2 - bounds.minX * zoom\n } else {\n if (screenLeft < margin) x += margin - screenLeft\n else if (screenLeft + scaledW > viewport.width - margin)\n x -= screenLeft + scaledW - (viewport.width - margin)\n }\n\n // Vertical\n const newScreenTop = bounds.minY * zoom + y\n if (scaledH + 2 * margin >= viewport.height) {\n y = (viewport.height - scaledH) / 2 - bounds.minY * zoom\n } else {\n if (newScreenTop < margin) y += margin - newScreenTop\n else if (newScreenTop + scaledH > viewport.height - margin)\n y -= newScreenTop + scaledH - (viewport.height - margin)\n }\n\n return { x, y, zoom }\n}\n\ninterface PrefetchState {\n ref: string\n data?: CanvasData\n loading: boolean\n}\n\nexport function useZoomNavigation(options: UseZoomNavigationOptions) {\n const {\n enabled,\n config,\n nodes,\n currentCanvas,\n parentFrame,\n canvases,\n onResolveCanvas,\n onSeedCanvas,\n theme,\n getViewportSize,\n onEnter,\n onExit,\n } = options\n\n // Guard against firing the commit repeatedly when the viewport is\n // continuously changing past threshold. Cleared explicitly by the\n // consumer via clearCommitting() once the handoff has been applied.\n const committingRef = useRef(false)\n // Also reset on canvas change as a belt-and-braces fallback.\n useEffect(() => {\n committingRef.current = false\n }, [currentCanvas])\n\n // Most-recent pre-fetch in flight, keyed by ref to avoid duplicates.\n const prefetchRef = useRef<Map<string, PrefetchState>>(new Map())\n\n const prefetch = useCallback(\n (ref: string) => {\n if (!onResolveCanvas) return\n if (canvases?.[ref]) return // already synchronously available\n const existing = prefetchRef.current.get(ref)\n if (existing) return // already fetched or in flight\n const state: PrefetchState = { ref, loading: true }\n prefetchRef.current.set(ref, state)\n onResolveCanvas(ref)\n .then((data) => {\n state.data = data\n state.loading = false\n onSeedCanvas?.(ref, data)\n })\n .catch(() => {\n state.loading = false\n })\n },\n [canvases, onResolveCanvas, onSeedCanvas]\n )\n\n /**\n * Called on every viewport change. Detects enter/exit thresholds and\n * dispatches the appropriate handoff.\n */\n const handleViewportChange = useCallback(\n (vp: ViewportState) => {\n if (!enabled) return\n if (committingRef.current) return\n const size = getViewportSize()\n if (!size) return\n\n // --- Enter detection: any ref-bearing node filling the viewport ---\n for (const n of nodes) {\n if (!n.ref) continue\n const screen = canvasRectToScreenRect(\n { x: n.x, y: n.y, width: n.width, height: n.height },\n vp\n )\n\n // The node must actually be on-screen — its center must lie\n // inside the viewport. Without this check, any ref-bearing node\n // grows with zoom and may pass the fill-fraction threshold even\n // when it's entirely off to the side; the loop would then enter\n // that node instead of the one the user is actually zooming on.\n const centerX = screen.x + screen.width / 2\n const centerY = screen.y + screen.height / 2\n const centerOnScreen =\n centerX >= 0 &&\n centerX <= size.width &&\n centerY >= 0 &&\n centerY <= size.height\n if (!centerOnScreen) continue\n\n const fillFraction = Math.max(\n screen.width / size.width,\n screen.height / size.height\n )\n\n if (\n fillFraction >= config.prefetchThreshold &&\n fillFraction < config.enterThreshold\n ) {\n prefetch(n.ref)\n }\n\n if (fillFraction >= config.enterThreshold) {\n // Resolve the sub-canvas synchronously from canvases map or\n // pre-fetch cache. If not available, skip (discrete nav will\n // take over via normal maxZoom pinning).\n const childData =\n canvases?.[n.ref] ?? prefetchRef.current.get(n.ref)?.data\n if (!childData) {\n prefetch(n.ref)\n continue\n }\n\n // Resolve child canvas so we can compute its bounding box.\n const resolved = resolveCanvas(childData, theme)\n if (resolved.nodes.length === 0) continue\n\n const bounds = computeBoundingBox(resolved.nodes)\n // Target: fit child bbox into the parent node's on-screen rect,\n // expanded by `landingScale` around its center. Expanding makes\n // the child content land larger than the parent node itself,\n // while still anchored to where the parent node was.\n const targetRect = expandRect(screen, config.landingScale)\n // Inset padding (proportional to the smaller dimension) so the\n // child content has breathing room inside the target rect\n // instead of hugging its edges.\n const landingPad =\n Math.min(targetRect.width, targetRect.height) *\n config.landingPadding\n let targetTransform = fitBoundsIntoRect(\n bounds,\n targetRect,\n landingPad\n )\n // Nudge the transform so the child bbox stays fully on screen\n // (with a small margin). This preserves the size and only shifts\n // the translation when the anchored position would put content\n // off the edge of the viewport.\n targetTransform = clampTransformToViewport(\n targetTransform,\n bounds,\n size,\n 16\n )\n\n committingRef.current = true\n // Convert the ResolvedNode back to a plain CanvasNode-ish object\n // with just id + ref (navigation only needs these + label for the\n // breadcrumb). The caller treats n as a CanvasNode-compatible\n // object.\n onEnter(n, targetTransform)\n return\n }\n }\n\n // --- Exit detection: the current canvas shrunk below threshold ---\n if (parentFrame && nodes.length > 0) {\n const bounds = computeBoundingBox(nodes)\n if (bounds.width === 0 || bounds.height === 0) return\n const screen = canvasRectToScreenRect(\n {\n x: bounds.minX,\n y: bounds.minY,\n width: bounds.width,\n height: bounds.height,\n },\n vp\n )\n const fillFraction = Math.max(\n screen.width / size.width,\n screen.height / size.height\n )\n if (fillFraction <= config.exitThreshold) {\n // Target on the parent canvas: the parent node rect should\n // appear at the current on-screen rect of the child canvas bbox.\n const targetTransform = fitBoundsIntoRect(\n {\n minX: parentFrame.parentNodeRect.x,\n minY: parentFrame.parentNodeRect.y,\n maxX:\n parentFrame.parentNodeRect.x + parentFrame.parentNodeRect.width,\n maxY:\n parentFrame.parentNodeRect.y +\n parentFrame.parentNodeRect.height,\n width: parentFrame.parentNodeRect.width,\n height: parentFrame.parentNodeRect.height,\n },\n {\n x: screen.x,\n y: screen.y,\n width: screen.width,\n height: screen.height,\n }\n )\n committingRef.current = true\n onExit(targetTransform)\n }\n }\n },\n [\n enabled,\n nodes,\n parentFrame,\n canvases,\n theme,\n config,\n getViewportSize,\n prefetch,\n onEnter,\n onExit,\n ]\n )\n\n const clearCommitting = useCallback(() => {\n committingRef.current = false\n }, [])\n\n return { handleViewportChange, clearCommitting }\n}\n","import React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n forwardRef,\n} from 'react'\nimport type {\n CanvasEdge,\n CanvasLane,\n ResolvedNode,\n CanvasTheme,\n EdgeStyle,\n Side,\n ViewportState,\n NodeUpdate,\n EdgeUpdate,\n} from 'system-canvas'\nimport { computeEdgeMidpoint, screenToCanvas } from 'system-canvas'\nimport { useViewport } from '../hooks/useViewport.js'\nimport { NodeRenderer } from './NodeRenderer.js'\nimport { EdgeRenderer } from './EdgeRenderer.js'\nimport { NodeEditor } from './NodeEditor.js'\nimport { EdgeLabelEditor } from './EdgeLabelEditor.js'\nimport { ConnectionHandles } from './ConnectionHandles.js'\nimport { PendingEdgeRenderer } from './PendingEdgeRenderer.js'\nimport { LanesBackground } from './LanesBackground.js'\nimport type { ResizeCorner, ResizeOverride } from '../hooks/useNodeResize.js'\nimport type { PendingEdgeState } from '../hooks/useEdgeCreate.js'\n\n/**\n * Extra padding around each node's bounding box when hit-testing for hover.\n * This keeps the node \"hovered\" while the cursor is on a connection handle,\n * which sits on the node border and extends slightly outside the rect.\n * Matches (or slightly exceeds) the handle's hit radius.\n */\nconst HOVER_PADDING = 10\n\n/**\n * A connection handle is shown only when the cursor is within this many\n * pixels (canvas-space) of the node's perimeter on the nearest side.\n * Deeper into the node's interior and no handle appears, so the user can\n * freely click/drag the node body without a handle flashing in.\n */\nconst EDGE_PROXIMITY = 16\n\ninterface ViewportProps {\n nodes: ResolvedNode[]\n edges: CanvasEdge[]\n nodeMap: Map<string, ResolvedNode>\n theme: CanvasTheme\n edgeStyle: EdgeStyle\n columns?: CanvasLane[]\n rows?: CanvasLane[]\n minZoom: number\n maxZoom: number\n defaultViewport?: ViewportState\n onViewportChange?: (viewport: ViewportState) => void\n /**\n * Controls when the viewport auto-fits.\n * See SystemCanvasProps['autoFit'] for semantics.\n */\n autoFit?: 'canvas-change' | 'always' | 'initial' | 'never'\n /**\n * Ref of the currently-viewed canvas (undefined at root). Used as the\n * trigger key for `autoFit === 'canvas-change'`.\n */\n canvasRef?: string\n /**\n * When provided, skip the next canvas-change auto-fit and apply this\n * transform instantly instead. Used by the zoom-navigation feature for\n * seamless enter/exit handoffs. Must be re-provided on every render\n * where it should apply — consumers set this in the same render as the\n * canvas change and clear it once consumed via `onHandoffApplied`.\n */\n handoffTransform?: ViewportState | null\n /** Called after the handoffTransform has been applied. */\n onHandoffApplied?: () => void\n /**\n * When a handoff transform is applied, fade the content group's\n * opacity from 0 to 1 over this many milliseconds. 0 disables the fade.\n */\n handoffFadeMs?: number\n onNodeClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onNodeDoubleClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onNodeNavigate: (node: ResolvedNode, event: React.MouseEvent) => void\n onEdgeClick: (edge: CanvasEdge, event: React.MouseEvent) => void\n onEdgeDoubleClick?: (edge: CanvasEdge, event: React.MouseEvent) => void\n onCanvasClick?: (event: React.MouseEvent) => void\n onCanvasContextMenu: (event: React.MouseEvent) => void\n onNodeContextMenu: (node: ResolvedNode, event: React.MouseEvent) => void\n onEdgeContextMenu: (edge: CanvasEdge, event: React.MouseEvent) => void\n\n // Editable\n onNodePointerDown?: (node: ResolvedNode, event: React.PointerEvent) => void\n selectedId?: string | null\n editingId?: string | null\n selectedEdgeId?: string | null\n editingEdgeId?: string | null\n dragOverrides?: Map<string, { x: number; y: number }>\n resizeOverrides?: Map<string, ResizeOverride>\n onResizeHandlePointerDown?: (\n node: ResolvedNode,\n corner: ResizeCorner,\n event: React.PointerEvent\n ) => void\n onEditorCommit?: (patch: NodeUpdate) => void\n onEditorCancel?: () => void\n onEdgeEditorCommit?: (patch: EdgeUpdate) => void\n onEdgeEditorCancel?: () => void\n\n // Edge creation (editable mode)\n pendingEdge?: PendingEdgeState | null\n onConnectionHandlePointerDown?: (\n node: ResolvedNode,\n side: Side,\n event: React.PointerEvent\n ) => void\n /** When true, enable handle-on-hover and pending-edge preview layer */\n edgeCreateEnabled?: boolean\n}\n\nexport interface ViewportHandle {\n zoomToNode: (\n node: ResolvedNode,\n onComplete?: () => void,\n options?: { durationMs?: number; targetZoom?: number }\n ) => void\n fitToContent: (nodes: ResolvedNode[], animate?: boolean) => void\n setTransform: (\n transform: ViewportState,\n options?: { animate?: boolean; durationMs?: number }\n ) => void\n getSvgElement: () => SVGSVGElement | null\n getViewport: () => ViewportState\n}\n\nexport const Viewport = forwardRef<ViewportHandle, ViewportProps>(\n function Viewport(\n {\n nodes,\n edges,\n nodeMap,\n theme,\n edgeStyle,\n columns,\n rows,\n minZoom,\n maxZoom,\n defaultViewport,\n onViewportChange,\n onNodeClick,\n onNodeDoubleClick,\n onNodeNavigate,\n onEdgeClick,\n onEdgeDoubleClick,\n onCanvasClick,\n onCanvasContextMenu,\n onNodeContextMenu,\n onEdgeContextMenu,\n onNodePointerDown,\n selectedId,\n editingId,\n selectedEdgeId,\n editingEdgeId,\n dragOverrides,\n resizeOverrides,\n onResizeHandlePointerDown,\n onEditorCommit,\n onEditorCancel,\n onEdgeEditorCommit,\n onEdgeEditorCancel,\n pendingEdge,\n onConnectionHandlePointerDown,\n edgeCreateEnabled,\n autoFit = 'canvas-change',\n canvasRef,\n handoffTransform,\n onHandoffApplied,\n handoffFadeMs = 0,\n },\n ref\n ) {\n const { svgRef, groupRef, viewport, fitToContent, zoomToNode, setTransform } =\n useViewport({\n minZoom,\n maxZoom,\n defaultViewport,\n onViewportChange,\n })\n\n // Track whether a zoom-to-node navigation just happened.\n // When true, the next fitToContent should be instant (no animation).\n const navigatingRef = useRef(false)\n\n // Fade animation is driven directly on the DOM group to avoid\n // React-render timing issues. We set opacity:0 + transition, then on\n // the next animation frame flip to opacity:1 so the browser paints\n // the transition.\n const fadeRafRef = useRef<number | null>(null)\n const fadeTimeoutRef = useRef<number | null>(null)\n\n const triggerFade = useCallback((durationMs: number) => {\n if (durationMs <= 0) return\n const g = groupRef.current\n if (!g) return\n if (fadeRafRef.current !== null) cancelAnimationFrame(fadeRafRef.current)\n if (fadeTimeoutRef.current !== null)\n clearTimeout(fadeTimeoutRef.current)\n\n // Instantly snap to opacity 0 with no transition.\n g.style.transition = 'none'\n g.style.opacity = '0'\n // Force a layout/style flush so the 0 value is committed before we\n // install the transition and flip to 1.\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n g.getBoundingClientRect()\n\n fadeRafRef.current = requestAnimationFrame(() => {\n g.style.transition = `opacity ${durationMs}ms ease-out`\n g.style.opacity = '1'\n fadeTimeoutRef.current = window.setTimeout(() => {\n // Clean up inline styles so future renders aren't constrained.\n g.style.transition = ''\n g.style.opacity = ''\n fadeTimeoutRef.current = null\n }, durationMs + 16)\n })\n }, [])\n\n useEffect(() => {\n return () => {\n if (fadeRafRef.current !== null)\n cancelAnimationFrame(fadeRafRef.current)\n if (fadeTimeoutRef.current !== null)\n clearTimeout(fadeTimeoutRef.current)\n }\n }, [])\n\n // Hovered node id — used to render connection handles in editable mode.\n const [hoveredNodeId, setHoveredNodeId] = useState<string | null>(null)\n // Side of the hovered node the cursor is closest to — only that side's\n // handle is shown. Null when no hover is active.\n const [hoveredSide, setHoveredSide] = useState<Side | null>(null)\n\n useImperativeHandle(ref, () => ({\n zoomToNode: (node, onComplete, options) => {\n navigatingRef.current = true\n zoomToNode(node, onComplete, options)\n },\n fitToContent,\n setTransform,\n getSvgElement: () => svgRef.current,\n getViewport: () => viewport.current ?? { x: 0, y: 0, zoom: 1 },\n }))\n\n // Apply drag + resize overrides to nodes before rendering so edges route correctly.\n const renderNodes = useMemo(() => {\n const hasDrag = dragOverrides && dragOverrides.size > 0\n const hasResize = resizeOverrides && resizeOverrides.size > 0\n if (!hasDrag && !hasResize) return nodes\n return nodes.map((n) => {\n const r = resizeOverrides?.get(n.id)\n if (r) return { ...n, x: r.x, y: r.y, width: r.width, height: r.height }\n const d = dragOverrides?.get(n.id)\n return d ? { ...n, x: d.x, y: d.y } : n\n })\n }, [nodes, dragOverrides, resizeOverrides])\n\n const renderNodeMap = useMemo(() => {\n const hasDrag = dragOverrides && dragOverrides.size > 0\n const hasResize = resizeOverrides && resizeOverrides.size > 0\n if (!hasDrag && !hasResize) return nodeMap\n const m = new Map(nodeMap)\n for (const n of renderNodes) {\n m.set(n.id, n)\n }\n return m\n }, [renderNodes, nodeMap, dragOverrides, resizeOverrides])\n\n // Keep a ref to the latest nodes so auto-fit effects can read them\n // without taking `nodes` as a dependency (which would re-fit on every edit).\n const latestNodesRef = useRef(nodes)\n useEffect(() => {\n latestNodesRef.current = nodes\n }, [nodes])\n\n // Auto-fit to content. Behavior controlled by the `autoFit` prop:\n // - 'always': fit whenever nodes change (legacy behavior).\n // - 'canvas-change': fit on mount and when the canvas ref changes.\n // - 'initial': fit once on mount.\n // - 'never': no auto-fit.\n //\n // `defaultViewport` always suppresses auto-fit, regardless of mode.\n const fitNow = useCallback(() => {\n const current = latestNodesRef.current\n if (current.length === 0) return\n const animate = !navigatingRef.current\n navigatingRef.current = false\n requestAnimationFrame(() => {\n fitToContent(current, animate)\n })\n }, [fitToContent])\n\n // 'always' mode: re-fit whenever the nodes array identity changes.\n useEffect(() => {\n if (defaultViewport) return\n if (autoFit !== 'always') return\n if (nodes.length === 0) return\n fitNow()\n }, [nodes, autoFit, defaultViewport, fitNow])\n\n // For 'canvas-change' and 'initial' modes, track whether we've already\n // done the one fit for the current canvas. Reset when canvasRef changes\n // (canvas-change mode) so navigation re-fits.\n const fittedForRef = useRef<string | undefined | null>(null)\n useEffect(() => {\n if (defaultViewport) return\n if (autoFit !== 'canvas-change' && autoFit !== 'initial') return\n if (nodes.length === 0) return\n // Key we compare against: the current canvasRef for 'canvas-change',\n // or the string 'mounted' for 'initial' (never changes, so only one fit).\n const key = autoFit === 'canvas-change' ? canvasRef ?? '__root__' : 'mounted'\n if (fittedForRef.current === key) return\n fittedForRef.current = key\n // If a zoom-navigation handoff transform was supplied for this canvas\n // change, apply it instantly instead of fitting.\n if (handoffTransform) {\n setTransform(handoffTransform, { animate: false })\n if (handoffFadeMs > 0) triggerFade(handoffFadeMs)\n onHandoffApplied?.()\n return\n }\n fitNow()\n }, [\n nodes,\n autoFit,\n canvasRef,\n defaultViewport,\n fitNow,\n handoffTransform,\n setTransform,\n onHandoffApplied,\n handoffFadeMs,\n triggerFade,\n ])\n\n const editingNode = editingId\n ? renderNodes.find((n) => n.id === editingId) ?? null\n : null\n\n // Hit-test pointer position against renderNodes to determine the hovered\n // node. Groups are skipped entirely — they never expose connection\n // handles and are never drop targets, so hovering inside a group \"sees\"\n // the inner node (or nothing).\n //\n // The bounding box is padded by HOVER_PADDING so the cursor can move\n // onto a connection handle (which sits on the node border, extending\n // slightly outside the node rect) without losing hover.\n const handleSvgPointerMove = useCallback(\n (event: React.PointerEvent<SVGSVGElement>) => {\n if (!edgeCreateEnabled) return\n const svg = svgRef.current\n if (!svg) return\n const rect = svg.getBoundingClientRect()\n const vp = viewport.current ?? { x: 0, y: 0, zoom: 1 }\n const { x, y } = screenToCanvas(\n event.clientX - rect.left,\n event.clientY - rect.top,\n vp\n )\n const pad = HOVER_PADDING\n let hit: ResolvedNode | null = null\n for (let i = renderNodes.length - 1; i >= 0; i--) {\n const n = renderNodes[i]\n if (n.type === 'group') continue\n if (x < n.x - pad || x > n.x + n.width + pad) continue\n if (y < n.y - pad || y > n.y + n.height + pad) continue\n hit = n\n break\n }\n const next = hit?.id ?? null\n setHoveredNodeId((prev) => (prev === next ? prev : next))\n\n // Determine which side of the hovered node the cursor is closest\n // to, and only expose it if the cursor is within EDGE_PROXIMITY of\n // that side's edge. The distance is signed-from-perimeter: inside\n // the rect we use the perpendicular distance to each edge; outside\n // we fall back to the same absolute distance (still works because\n // the hovered node was already expanded by HOVER_PADDING). This\n // means the node's center is a dead zone where no handle shows.\n if (hit) {\n const dTop = Math.abs(y - hit.y)\n const dBottom = Math.abs(y - (hit.y + hit.height))\n const dLeft = Math.abs(x - hit.x)\n const dRight = Math.abs(x - (hit.x + hit.width))\n let side: Side = 'top'\n let min = dTop\n if (dRight < min) {\n side = 'right'\n min = dRight\n }\n if (dBottom < min) {\n side = 'bottom'\n min = dBottom\n }\n if (dLeft < min) {\n side = 'left'\n min = dLeft\n }\n const next = min <= EDGE_PROXIMITY ? side : null\n setHoveredSide((prev) => (prev === next ? prev : next))\n } else {\n setHoveredSide((prev) => (prev === null ? prev : null))\n }\n },\n [edgeCreateEnabled, renderNodes, svgRef, viewport]\n )\n\n const handleSvgPointerLeave = useCallback(() => {\n setHoveredNodeId(null)\n setHoveredSide(null)\n }, [])\n\n // Node to show connection handles on: the hovered node, unless a drag\n // is in progress (then show them on the source so the user always sees\n // where the edge is coming from).\n const handlesNodeId = pendingEdge?.sourceId ?? hoveredNodeId\n const handlesNode =\n edgeCreateEnabled && handlesNodeId\n ? renderNodeMap.get(handlesNodeId) ?? null\n : null\n\n // Pending edge source/target lookup\n const pendingSourceNode =\n pendingEdge ? renderNodeMap.get(pendingEdge.sourceId) ?? null : null\n const pendingTargetNode =\n pendingEdge?.hoveredTargetId &&\n pendingEdge.hoveredTargetId !== pendingEdge.sourceId\n ? renderNodeMap.get(pendingEdge.hoveredTargetId) ?? null\n : null\n\n // Compute edge editor anchor (midpoint of the edge being edited)\n const editingEdge = editingEdgeId\n ? edges.find((e) => e.id === editingEdgeId) ?? null\n : null\n const editingEdgeMidpoint = (() => {\n if (!editingEdge) return null\n const from = renderNodeMap.get(editingEdge.fromNode)\n const to = renderNodeMap.get(editingEdge.toNode)\n if (!from || !to) return null\n return computeEdgeMidpoint(editingEdge, from, to)\n })()\n\n return (\n <svg\n ref={svgRef}\n className=\"system-canvas-viewport\"\n style={{\n width: '100%',\n height: '100%',\n display: 'block',\n background: theme.background,\n userSelect: 'none',\n WebkitUserSelect: 'none',\n MozUserSelect: 'none',\n msUserSelect: 'none',\n }}\n onClick={onCanvasClick}\n onContextMenu={onCanvasContextMenu}\n onPointerMove={handleSvgPointerMove}\n onPointerLeave={handleSvgPointerLeave}\n >\n {/* Grid pattern */}\n <defs>\n <pattern\n id=\"system-canvas-grid\"\n width={theme.grid.size}\n height={theme.grid.size}\n patternUnits=\"userSpaceOnUse\"\n >\n <path\n d={`M ${theme.grid.size} 0 L 0 0 0 ${theme.grid.size}`}\n fill=\"none\"\n stroke={theme.grid.color}\n strokeWidth={theme.grid.strokeWidth}\n />\n </pattern>\n </defs>\n\n {/* Grid background */}\n <rect\n x=\"-50000\"\n y=\"-50000\"\n width=\"100000\"\n height=\"100000\"\n fill=\"url(#system-canvas-grid)\"\n />\n\n {/* Transformable group -- d3-zoom applies transforms here.\n Fade-in on handoff is applied directly via groupRef's style. */}\n <g ref={groupRef}>\n {/* Lane bands sit behind every node, edge, and group. */}\n <LanesBackground columns={columns} rows={rows} theme={theme} />\n\n {/* Groups first (behind everything) */}\n <NodeRenderer\n nodes={renderNodes}\n theme={theme}\n onClick={onNodeClick}\n onDoubleClick={onNodeDoubleClick}\n onContextMenu={onNodeContextMenu}\n onNavigate={onNodeNavigate}\n onPointerDown={onNodePointerDown}\n selectedId={selectedId}\n editingId={editingId}\n only=\"groups\"\n />\n\n {/* Edges above groups but below regular nodes — so edges appear\n over translucent group fills (and are clickable there), while\n still tucking under opaque nodes at their endpoints. */}\n <EdgeRenderer\n edges={edges}\n nodeMap={renderNodeMap}\n theme={theme}\n defaultEdgeStyle={edgeStyle}\n onClick={onEdgeClick}\n onDoubleClick={onEdgeDoubleClick}\n onContextMenu={onEdgeContextMenu}\n selectedId={selectedEdgeId}\n editingId={editingEdgeId}\n />\n\n {/* Non-group nodes on top (+ resize handles) */}\n <NodeRenderer\n nodes={renderNodes}\n theme={theme}\n onClick={onNodeClick}\n onDoubleClick={onNodeDoubleClick}\n onContextMenu={onNodeContextMenu}\n onNavigate={onNodeNavigate}\n onPointerDown={onNodePointerDown}\n selectedId={selectedId}\n editingId={editingId}\n onResizeHandlePointerDown={onResizeHandlePointerDown}\n only=\"non-groups\"\n />\n\n {/* Target highlight (halo) for the currently-hovered drop target\n during an edge-creation drag. */}\n {pendingTargetNode && (\n <rect\n className=\"system-canvas-drop-target\"\n x={pendingTargetNode.x - 4}\n y={pendingTargetNode.y - 4}\n width={pendingTargetNode.width + 8}\n height={pendingTargetNode.height + 8}\n rx={pendingTargetNode.resolvedCornerRadius + 4}\n fill=\"none\"\n stroke={theme.node.labelColor}\n strokeWidth={2}\n opacity={0.85}\n pointerEvents=\"none\"\n />\n )}\n\n {/* Ghost edge preview during edge-creation drag */}\n {pendingEdge && pendingSourceNode && (\n <PendingEdgeRenderer\n sourceNode={pendingSourceNode}\n sourceSide={pendingEdge.sourceSide}\n cursor={pendingEdge.cursor}\n targetNode={pendingTargetNode}\n theme={theme}\n defaultEdgeStyle={edgeStyle}\n />\n )}\n\n {/* Connection handles on the hovered (or source-during-drag) node */}\n {handlesNode && onConnectionHandlePointerDown && (\n <ConnectionHandles\n node={handlesNode}\n theme={theme}\n onHandlePointerDown={onConnectionHandlePointerDown}\n immediate={!!pendingEdge}\n activeSide={hoveredSide}\n />\n )}\n\n {/* Inline editor on top of the edited node */}\n {editingNode && onEditorCommit && onEditorCancel && (\n <NodeEditor\n node={editingNode}\n theme={theme}\n onCommit={onEditorCommit}\n onCancel={onEditorCancel}\n />\n )}\n\n {/* Inline edge label editor at the edge midpoint */}\n {editingEdge &&\n editingEdgeMidpoint &&\n onEdgeEditorCommit &&\n onEdgeEditorCancel && (\n <EdgeLabelEditor\n initialLabel={editingEdge.label ?? ''}\n midpoint={editingEdgeMidpoint}\n theme={theme}\n onCommit={onEdgeEditorCommit}\n onCancel={onEdgeEditorCancel}\n />\n )}\n </g>\n </svg>\n )\n }\n)\n","import { useEffect, useRef, useCallback } from 'react'\nimport { zoom, zoomIdentity, type ZoomBehavior } from 'd3-zoom'\nimport { select } from 'd3-selection'\nimport 'd3-transition' // Extends d3-selection with .transition()\nimport type { ViewportState, ResolvedNode } from 'system-canvas'\nimport { fitToBounds } from 'system-canvas'\n\ninterface UseViewportOptions {\n minZoom: number\n maxZoom: number\n defaultViewport?: ViewportState\n onViewportChange?: (viewport: ViewportState) => void\n}\n\ninterface UseViewportResult {\n svgRef: React.RefObject<SVGSVGElement | null>\n groupRef: React.RefObject<SVGGElement | null>\n viewport: React.RefObject<ViewportState>\n fitToContent: (nodes: ResolvedNode[], animate?: boolean) => void\n resetZoom: () => void\n /** Animate zoom to center on a node, then call onComplete */\n zoomToNode: (\n node: ResolvedNode,\n onComplete?: () => void,\n options?: { durationMs?: number; targetZoom?: number }\n ) => void\n /**\n * Imperatively set the viewport transform. When `animate` is false the\n * transform is applied instantly (used for the seamless zoom-navigation\n * handoff); the change still fires the onViewportChange callback.\n */\n setTransform: (\n transform: ViewportState,\n options?: { animate?: boolean; durationMs?: number }\n ) => void\n}\n\nexport function useViewport(options: UseViewportOptions): UseViewportResult {\n const { minZoom, maxZoom, defaultViewport, onViewportChange } = options\n\n const svgRef = useRef<SVGSVGElement | null>(null)\n const groupRef = useRef<SVGGElement | null>(null)\n const viewport = useRef<ViewportState>(\n defaultViewport ?? { x: 0, y: 0, zoom: 1 }\n )\n const zoomBehaviorRef = useRef<ZoomBehavior<SVGSVGElement, unknown> | null>(\n null\n )\n // Keep the latest onViewportChange in a ref so the d3-zoom handler\n // (which is installed once) always calls the current callback rather\n // than the one captured on mount.\n const onViewportChangeRef = useRef(onViewportChange)\n onViewportChangeRef.current = onViewportChange\n\n useEffect(() => {\n const svg = svgRef.current\n const group = groupRef.current\n if (!svg || !group) return\n\n const zoomBehavior = zoom<SVGSVGElement, unknown>()\n .scaleExtent([minZoom, maxZoom])\n // Don't start pan/zoom when the gesture begins on a node — that's a\n // node drag. d3-zoom's default filter lets through most events; we\n // extend it to also reject drag-starting events originating inside\n // a node. Wheel events are always allowed so scroll-to-zoom works\n // anywhere over the canvas, even when the cursor is over a node.\n .filter((event) => {\n // Mirror d3-zoom's default rules for the things we still want to\n // honor (ignore secondary buttons etc.). Note: we intentionally\n // don't block ctrl+wheel — letting it through matches d3-zoom's\n // default (native pinch gestures come through as ctrl+wheel).\n if (event.button) return false\n // Wheel events always pass through — zooming should work regardless\n // of what's under the cursor.\n if (event.type === 'wheel') return true\n const target = event.target as Element | null\n if (target && typeof target.closest === 'function') {\n if (target.closest('.system-canvas-node')) return false\n if (target.closest('.system-canvas-resize-handles')) return false\n if (target.closest('.system-canvas-connection-handles')) return false\n }\n return true\n })\n .on('zoom', (event) => {\n const { x, y, k } = event.transform\n group.setAttribute('transform', `translate(${x},${y}) scale(${k})`)\n viewport.current = { x, y, zoom: k }\n onViewportChangeRef.current?.({ x, y, zoom: k })\n })\n\n zoomBehaviorRef.current = zoomBehavior\n\n const selection = select(svg)\n selection.call(zoomBehavior)\n\n // Disable double-click zoom (we use double-click for navigation)\n selection.on('dblclick.zoom', null)\n\n // Apply default viewport\n if (defaultViewport) {\n const t = zoomIdentity\n .translate(defaultViewport.x, defaultViewport.y)\n .scale(defaultViewport.zoom)\n selection.call(zoomBehavior.transform, t)\n }\n\n return () => {\n selection.on('.zoom', null)\n }\n }, [minZoom, maxZoom]) // eslint-disable-line react-hooks/exhaustive-deps\n\n const fitToContent = useCallback((nodes: ResolvedNode[], animate = true) => {\n const svg = svgRef.current\n if (!svg || !zoomBehaviorRef.current || nodes.length === 0) return\n\n const rect = svg.getBoundingClientRect()\n const target = fitToBounds(nodes, rect.width, rect.height)\n\n const t = zoomIdentity\n .translate(target.x, target.y)\n .scale(target.zoom)\n\n if (animate) {\n select(svg)\n .transition()\n .duration(400)\n .call(zoomBehaviorRef.current.transform as any, t)\n } else {\n select(svg).call(zoomBehaviorRef.current.transform, t)\n }\n }, [])\n\n const resetZoom = useCallback(() => {\n const svg = svgRef.current\n if (!svg || !zoomBehaviorRef.current) return\n\n select(svg)\n .transition()\n .duration(400)\n .call(zoomBehaviorRef.current.transform as any, zoomIdentity)\n }, [])\n\n const setTransform = useCallback(\n (\n transform: ViewportState,\n options?: { animate?: boolean; durationMs?: number }\n ) => {\n const svg = svgRef.current\n if (!svg || !zoomBehaviorRef.current) return\n\n const t = zoomIdentity\n .translate(transform.x, transform.y)\n .scale(transform.zoom)\n\n const sel = select(svg)\n if (options?.animate) {\n sel\n .transition()\n .duration(options.durationMs ?? 300)\n .call(zoomBehaviorRef.current.transform as any, t)\n } else {\n sel.call(zoomBehaviorRef.current.transform, t)\n }\n },\n []\n )\n\n const zoomToNode = useCallback(\n (\n node: ResolvedNode,\n onComplete?: () => void,\n options?: { durationMs?: number; targetZoom?: number }\n ) => {\n const svg = svgRef.current\n if (!svg || !zoomBehaviorRef.current) {\n onComplete?.()\n return\n }\n\n const rect = svg.getBoundingClientRect()\n\n // Compute a transform that centers the node and zooms in\n const nodeCx = node.x + node.width / 2\n const nodeCy = node.y + node.height / 2\n\n // Zoom level: either caller-supplied, or fit-with-padding capped at 3x.\n let targetZoom: number\n if (options?.targetZoom != null) {\n targetZoom = options.targetZoom\n } else {\n const padding = 40\n const scaleX = rect.width / (node.width + padding * 2)\n const scaleY = rect.height / (node.height + padding * 2)\n targetZoom = Math.min(scaleX, scaleY, 3)\n }\n\n const t = zoomIdentity\n .translate(rect.width / 2 - nodeCx * targetZoom, rect.height / 2 - nodeCy * targetZoom)\n .scale(targetZoom)\n\n select(svg)\n .transition()\n .duration(options?.durationMs ?? 500)\n .call(zoomBehaviorRef.current.transform as any, t)\n .on('end', () => {\n onComplete?.()\n })\n },\n []\n )\n\n return {\n svgRef,\n groupRef,\n viewport,\n fitToContent,\n resetZoom,\n zoomToNode,\n setTransform,\n }\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","import React from 'react'\n\ninterface NodeIconProps {\n icon: string\n x: number\n y: number\n size?: number\n color: string\n opacity?: number\n /**\n * Custom icon map, merged over the built-in set. Entries here win over\n * built-ins of the same name, so themes can both extend and override.\n * Path data is expected in a 16x16 coordinate space.\n */\n customIcons?: Record<string, string[]>\n}\n\n/**\n * Renders a small SVG icon at the given position.\n * All icons are drawn as stroked paths within a `size x size` viewBox.\n */\nexport function NodeIcon({\n icon,\n x,\n y,\n size = 14,\n color,\n opacity = 0.7,\n customIcons,\n}: NodeIconProps) {\n const pathData = customIcons?.[icon] ?? iconPaths[icon]\n if (!pathData) return null\n\n return (\n <g\n transform={`translate(${x}, ${y})`}\n pointerEvents=\"none\"\n opacity={opacity}\n >\n {pathData.map((d, i) => (\n <path\n key={i}\n d={scalePathData(d, size)}\n fill=\"none\"\n stroke={color}\n strokeWidth={1.2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n ))}\n </g>\n )\n}\n\n/**\n * Scale path data from a 16x16 coordinate space to the target size.\n */\nfunction scalePathData(d: string, size: number): string {\n const scale = size / 16\n return d.replace(/(-?\\d+\\.?\\d*)/g, (match) => {\n return String(parseFloat(match) * scale)\n })\n}\n\n/**\n * Icon path data in a 16x16 coordinate space.\n * Each icon is an array of path `d` strings (some icons need multiple paths).\n */\nconst iconPaths: Record<string, string[]> = {\n // Database: cylinder shape\n database: [\n 'M 2 4 C 2 2 8 1 8 1 C 8 1 14 2 14 4 L 14 12 C 14 14 8 15 8 15 C 8 15 2 14 2 12 Z',\n 'M 2 4 C 2 6 8 7 8 7 C 8 7 14 6 14 4',\n 'M 2 8 C 2 10 8 11 8 11 C 8 11 14 10 14 8',\n ],\n\n // Server: stacked rectangles with dots\n server: [\n 'M 2 2 L 14 2 L 14 7 L 2 7 Z',\n 'M 2 9 L 14 9 L 14 14 L 2 14 Z',\n 'M 4.5 4.5 L 4.5 4.5',\n 'M 4.5 11.5 L 4.5 11.5',\n ],\n\n // Person: head circle + body arc\n person: [\n 'M 8 7 A 3 3 0 1 0 8 1 A 3 3 0 1 0 8 7',\n 'M 2 15 C 2 11 5 9 8 9 C 11 9 14 11 14 15',\n ],\n\n // Cloud: cloud shape\n cloud: [\n 'M 4 12 C 1.5 12 1 10 2 8.5 C 1 7 2 5 4 5 C 4.5 3 6.5 2 8.5 2.5 C 10 1 12.5 1.5 13 3.5 C 15 4 15.5 6.5 14 8 C 15 9.5 14.5 12 12 12 Z',\n ],\n\n // Lock: padlock shape\n lock: [\n 'M 4 7 L 12 7 L 12 14 L 4 14 Z',\n 'M 5.5 7 L 5.5 5 C 5.5 3 6.5 1.5 8 1.5 C 9.5 1.5 10.5 3 10.5 5 L 10.5 7',\n 'M 8 10 L 8 11.5',\n ],\n\n // Globe: circle with latitude/longitude lines\n globe: [\n 'M 1 8 A 7 7 0 1 0 15 8 A 7 7 0 1 0 1 8',\n 'M 1 8 L 15 8',\n 'M 8 1 C 5 4 5 12 8 15',\n 'M 8 1 C 11 4 11 12 8 15',\n ],\n\n // Code: angle brackets\n code: [\n 'M 5 3 L 1 8 L 5 13',\n 'M 11 3 L 15 8 L 11 13',\n 'M 10 1 L 6 15',\n ],\n\n // Folder: folder shape\n folder: [\n 'M 1 4 L 1 13 L 15 13 L 15 4 L 7 4 L 6 2 L 1 2 Z',\n ],\n\n // Network: three connected nodes\n network: [\n 'M 8 2 L 8 2 M 6 2 A 2 2 0 1 0 10 2 A 2 2 0 1 0 6 2',\n 'M 2 12 L 2 12 M 0 12 A 2 2 0 1 0 4 12 A 2 2 0 1 0 0 12',\n 'M 14 12 L 14 12 M 12 12 A 2 2 0 1 0 16 12 A 2 2 0 1 0 12 12',\n 'M 8 4 L 3 10',\n 'M 8 4 L 13 10',\n ],\n\n // Shield: security shield\n shield: [\n 'M 8 1 L 2 4 L 2 8 C 2 12 8 15 8 15 C 8 15 14 12 14 8 L 14 4 Z',\n ],\n\n // Zap: lightning bolt\n zap: [\n 'M 9 1 L 3 9 L 8 9 L 7 15 L 13 7 L 8 7 Z',\n ],\n\n // Users: two people\n users: [\n 'M 6 7 A 2.5 2.5 0 1 0 6 2 A 2.5 2.5 0 1 0 6 7',\n 'M 1 14 C 1 11 3 9 6 9 C 9 9 11 11 11 14',\n 'M 11 6.5 A 2 2 0 1 0 11 2.5 A 2 2 0 1 0 11 6.5',\n 'M 15 14 C 15 11.5 13.5 10 11.5 9.5',\n ],\n\n // Cog: gear/settings\n cog: [\n 'M 8 5.5 A 2.5 2.5 0 1 0 8 10.5 A 2.5 2.5 0 1 0 8 5.5',\n 'M 8 1 L 8 3 M 8 13 L 8 15 M 1 8 L 3 8 M 13 8 L 15 8 M 3 3 L 4.5 4.5 M 11.5 11.5 L 13 13 M 13 3 L 11.5 4.5 M 4.5 11.5 L 3 13',\n ],\n\n // Terminal: command prompt\n terminal: [\n 'M 2 2 L 14 2 L 14 14 L 2 14 Z',\n 'M 5 7 L 7.5 9 L 5 11',\n 'M 9 11 L 12 11',\n ],\n\n // Package: box\n package: [\n 'M 2 5 L 8 2 L 14 5 L 14 11 L 8 14 L 2 11 Z',\n 'M 2 5 L 8 8 L 14 5',\n 'M 8 8 L 8 14',\n ],\n}\n","import React, { useState } from 'react'\nimport type { ResolvedNode, CanvasTheme } from 'system-canvas'\n\ntype Corner = 'bottom-right' | 'top-right'\n\ninterface RefIndicatorProps {\n node: ResolvedNode\n theme: CanvasTheme\n /** The node's absolute bounding box. */\n nodeX: number\n nodeY: number\n nodeWidth: number\n nodeHeight: number\n /** Color of the node's own stroke — the carved lines match it. */\n strokeColor: string\n /** Stroke width of the node — carved lines match it. */\n strokeWidth?: number\n /** Which corner of the node to carve. Defaults to bottom-right. */\n corner?: Corner\n /** Size of the carved square region. */\n size?: number\n /** Fired when the user clicks the indicator. The parent should navigate. */\n onNavigate: (node: ResolvedNode, event: React.MouseEvent) => void\n}\n\n/**\n * Turns a corner of the node into a clickable \"enter sub-canvas\" region.\n * Renders as two short lines that continue the node's own stroke to form\n * a small square, with the configured arrow glyph inside.\n *\n * Hovering fills the square with a subtle tint for affordance.\n * Stops pointer/mouse event propagation so it doesn't trigger node drag\n * or node click handlers.\n */\nexport function RefIndicator({\n node,\n theme,\n nodeX,\n nodeY,\n nodeWidth,\n nodeHeight,\n strokeColor,\n strokeWidth,\n corner = 'bottom-right',\n size = 18,\n onNavigate,\n}: RefIndicatorProps) {\n const [hover, setHover] = useState(false)\n const iconKind = theme.node.refIndicator.icon\n if (iconKind === 'none') return null\n\n const stopAll = (e: React.SyntheticEvent) => e.stopPropagation()\n\n // Compute the carved square bounds.\n const right = nodeX + nodeWidth\n const bottom = nodeY + nodeHeight\n\n // Round the inner corner (the one facing into the node body) so the carve\n // visually echoes the box's rounding, but keep the arc noticeably tighter\n // than the node's own radius so the carve still reads as a distinct corner\n // rather than a soft scoop. Clamp to half the carve size so it always fits.\n const nodeRadius =\n corner === 'top-right' ? theme.group.cornerRadius : node.resolvedCornerRadius\n const innerR = Math.max(0, Math.min(nodeRadius * 0.64, size / 2))\n\n let squareX: number\n let squareY: number\n // Path tracing the carve from one outer edge to the other, with a rounded\n // concave arc at the inner corner. The arc sweeps away from the outer\n // corner so the inside of the carve matches the node's own rounding.\n let carvePath: string\n\n if (corner === 'bottom-right') {\n squareX = right - size\n squareY = bottom - size\n // Start at the top of the carve on the node's right edge, walk left\n // along the top of the square to the arc, curve down, then walk down\n // to the node's bottom edge.\n carvePath =\n `M ${right} ${squareY} ` +\n `L ${squareX + innerR} ${squareY} ` +\n `A ${innerR} ${innerR} 0 0 0 ${squareX} ${squareY + innerR} ` +\n `L ${squareX} ${bottom}`\n } else {\n // top-right\n squareX = right - size\n squareY = nodeY\n // Start at the left of the carve on the node's top edge, walk down\n // to the arc, curve right, then walk right to the node's right edge.\n carvePath =\n `M ${squareX} ${nodeY} ` +\n `L ${squareX} ${squareY + size - innerR} ` +\n `A ${innerR} ${innerR} 0 0 0 ${squareX + innerR} ${squareY + size} ` +\n `L ${right} ${squareY + size}`\n }\n\n const cx = squareX + size / 2\n const cy = squareY + size / 2\n\n const sw = strokeWidth ?? theme.node.strokeWidth\n const restGlyph = theme.node.refIndicator.color\n // On hover the carved square fills with the node's own stroke color (the\n // category/accent) and the glyph flips to the canvas background so it\n // reads as a cutout — a green node's button turns solid green, a red\n // node's red.\n const hoverFill = strokeColor\n const hoverGlyph = theme.background\n\n // Hover fill needs to respect the rounded inner corner. We build a closed\n // path from the square's outer corner around to the inner arc.\n let hoverPath: string\n if (corner === 'bottom-right') {\n hoverPath =\n `M ${right} ${squareY} ` +\n `L ${right} ${bottom} ` +\n `L ${squareX} ${bottom} ` +\n `L ${squareX} ${squareY + innerR} ` +\n `A ${innerR} ${innerR} 0 0 1 ${squareX + innerR} ${squareY} ` +\n `Z`\n } else {\n hoverPath =\n `M ${squareX} ${nodeY} ` +\n `L ${right} ${nodeY} ` +\n `L ${right} ${squareY + size} ` +\n `L ${squareX + innerR} ${squareY + size} ` +\n `A ${innerR} ${innerR} 0 0 1 ${squareX} ${squareY + size - innerR} ` +\n `Z`\n }\n\n return (\n <g\n className=\"system-canvas-ref-indicator\"\n style={{ cursor: 'pointer' }}\n onClick={(e) => {\n e.stopPropagation()\n onNavigate(node, e)\n }}\n onDoubleClick={stopAll}\n onPointerDown={stopAll}\n onMouseDown={stopAll}\n onPointerEnter={() => setHover(true)}\n onPointerLeave={() => setHover(false)}\n >\n {/* Hover fill — inside the carved square, respecting the inner arc */}\n {hover && (\n <path\n d={hoverPath}\n fill={hoverFill}\n pointerEvents=\"none\"\n />\n )}\n\n {/* The carved corner stroke — two edges joined by a rounded inner arc */}\n <path\n d={carvePath}\n fill=\"none\"\n stroke={strokeColor}\n strokeWidth={sw}\n strokeLinecap=\"butt\"\n strokeLinejoin=\"round\"\n pointerEvents=\"none\"\n />\n\n {/* Transparent hit target covering the carved square */}\n <rect\n x={squareX}\n y={squareY}\n width={size}\n height={size}\n fill=\"transparent\"\n />\n\n <Glyph kind={iconKind} cx={cx} cy={cy} color={hover ? hoverGlyph : restGlyph} />\n </g>\n )\n}\n\nfunction Glyph({\n kind,\n cx,\n cy,\n color,\n}: {\n kind: 'chevron' | 'arrow' | 'expand'\n cx: number\n cy: number\n color: string\n}) {\n // Inner icon half-size. Slightly smaller than before so the glyph sits\n // comfortably inside the 18px carved square with breathing room.\n const s = 3\n switch (kind) {\n case 'chevron':\n return (\n <path\n d={`M ${cx - s / 2} ${cy - s} L ${cx + s / 2} ${cy} L ${cx - s / 2} ${cy + s}`}\n fill=\"none\"\n stroke={color}\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n pointerEvents=\"none\"\n />\n )\n case 'arrow': {\n const h = s * 0.9 // head size\n return (\n <path\n d={`M ${cx - s} ${cy} L ${cx + s} ${cy} M ${cx + s - h} ${cy - h} L ${cx + s} ${cy} L ${cx + s - h} ${cy + h}`}\n fill=\"none\"\n stroke={color}\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n pointerEvents=\"none\"\n />\n )\n }\n case 'expand':\n return (\n <g pointerEvents=\"none\">\n <path\n d={`M ${cx - s} ${cy - s} L ${cx + s} ${cy - s} L ${cx + s} ${cy + s} L ${cx - s} ${cy + s} Z`}\n fill=\"none\"\n stroke={color}\n strokeWidth={1.5}\n strokeLinejoin=\"round\"\n />\n <line x1={cx} y1={cy - s + 1} x2={cx} y2={cy + s - 1} stroke={color} strokeWidth={1.5} strokeLinecap=\"round\" />\n <line x1={cx - s + 1} y1={cy} x2={cx + s - 1} y2={cy} stroke={color} strokeWidth={1.5} strokeLinecap=\"round\" />\n </g>\n )\n }\n}\n","import React from 'react'\nimport type { ResolvedNode, CanvasTheme } from 'system-canvas'\nimport { NodeIcon } from './NodeIcon.js'\nimport { RefIndicator } from './RefIndicator.js'\n\ninterface TextNodeProps {\n node: ResolvedNode\n theme: CanvasTheme\n onClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onDoubleClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onContextMenu: (node: ResolvedNode, event: React.MouseEvent) => void\n onNavigate: (node: ResolvedNode, event: React.MouseEvent) => void\n onPointerDown?: (node: ResolvedNode, event: React.PointerEvent) => void\n isSelected?: boolean\n isEditing?: boolean\n}\n\nexport function TextNode({\n node,\n theme,\n onClick,\n onDoubleClick,\n onContextMenu,\n onNavigate,\n onPointerDown,\n isSelected,\n isEditing,\n}: TextNodeProps) {\n const { x, y, width, height } = node\n const cx = x + width / 2\n\n // Split text into lines for multi-line rendering\n const text = node.text ?? ''\n const lines = text.split('\\n').filter(Boolean)\n const mainLabel = lines[0] ?? node.id\n const sublabel = lines[1]\n\n const lineHeight = theme.node.fontSize + 4\n const totalTextHeight = sublabel\n ? lineHeight + theme.node.sublabelFontSize + 4\n : lineHeight\n const textStartY = y + (height - totalTextHeight) / 2 + theme.node.fontSize\n\n return (\n <g\n className=\"system-canvas-node system-canvas-node--text\"\n style={{ cursor: onPointerDown ? 'move' : node.isNavigable ? 'pointer' : 'default' }}\n onClick={(e) => onClick(node, e)}\n onDoubleClick={(e) => onDoubleClick(node, e)}\n onContextMenu={(e) => onContextMenu(node, e)}\n onPointerDown={onPointerDown ? (e) => onPointerDown(node, e) : undefined}\n >\n {/* Opaque backer — masks edges behind semi-transparent fill */}\n <rect\n x={x}\n y={y}\n width={width}\n height={height}\n rx={node.resolvedCornerRadius}\n fill={theme.background}\n />\n {/* Styled overlay */}\n <rect\n x={x}\n y={y}\n width={width}\n height={height}\n rx={node.resolvedCornerRadius}\n fill={node.resolvedFill}\n stroke={node.resolvedStroke}\n strokeWidth={theme.node.strokeWidth}\n />\n\n {/* Label */}\n {!isEditing && (\n <text\n x={cx}\n y={textStartY}\n fill={theme.node.labelColor}\n fontSize={theme.node.fontSize}\n fontWeight={600}\n fontFamily={theme.node.fontFamily}\n textAnchor=\"middle\"\n pointerEvents=\"none\"\n >\n {mainLabel}\n </text>\n )}\n\n {/* Sublabel */}\n {!isEditing && sublabel && (\n <text\n x={cx}\n y={textStartY + lineHeight}\n fill={theme.node.sublabelColor}\n fontSize={theme.node.sublabelFontSize}\n fontFamily={theme.node.fontFamily}\n textAnchor=\"middle\"\n pointerEvents=\"none\"\n >\n {sublabel}\n </text>\n )}\n\n {/* Ref indicator — carved bottom-right corner */}\n {node.isNavigable && (\n <RefIndicator\n node={node}\n theme={theme}\n nodeX={x}\n nodeY={y}\n nodeWidth={width}\n nodeHeight={height}\n strokeColor={node.resolvedStroke}\n strokeWidth={theme.node.strokeWidth}\n onNavigate={onNavigate}\n />\n )}\n\n {/* Category icon */}\n {node.resolvedIcon && (\n <NodeIcon\n icon={node.resolvedIcon}\n x={x + 8}\n y={y + height / 2 - 7}\n size={14}\n color={node.resolvedStroke}\n opacity={0.7}\n customIcons={theme.icons}\n />\n )}\n </g>\n )\n}\n","import React from 'react'\nimport type { ResolvedNode, CanvasTheme } from 'system-canvas'\nimport { RefIndicator } from './RefIndicator.js'\n\ninterface FileNodeProps {\n node: ResolvedNode\n theme: CanvasTheme\n onClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onDoubleClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onContextMenu: (node: ResolvedNode, event: React.MouseEvent) => void\n onNavigate: (node: ResolvedNode, event: React.MouseEvent) => void\n onPointerDown?: (node: ResolvedNode, event: React.PointerEvent) => void\n isSelected?: boolean\n isEditing?: boolean\n}\n\n/**\n * File nodes have a distinct visual style:\n * - Square corners (rx=2) instead of rounded\n * - Thinner border (0.75px)\n * - Dog-ear fold in the top-right corner\n * - Monospace filename rendering\n * - Text clipped to node bounds\n */\nexport function FileNode({\n node,\n theme,\n onClick,\n onDoubleClick,\n onContextMenu,\n onNavigate,\n onPointerDown,\n isSelected,\n isEditing,\n}: FileNodeProps) {\n const { x, y, width, height } = node\n\n // Display the filename (last segment of path)\n const filePath = node.file ?? ''\n const fileName = filePath.split('/').pop() ?? filePath\n const dirPath = filePath.includes('/')\n ? filePath.slice(0, filePath.lastIndexOf('/'))\n : ''\n const subpath = node.subpath ?? ''\n\n // Dog-ear size\n const fold = 10\n const textPadding = 10\n const maxTextWidth = width - textPadding * 2 - fold\n\n // File shape: rectangle with a folded corner (top-right)\n const shapePath = [\n `M ${x + 2} ${y}`,\n `L ${x + width - fold} ${y}`,\n `L ${x + width} ${y + fold}`,\n `L ${x + width} ${y + height - 2}`,\n `Q ${x + width} ${y + height} ${x + width - 2} ${y + height}`,\n `L ${x + 2} ${y + height}`,\n `Q ${x} ${y + height} ${x} ${y + height - 2}`,\n `L ${x} ${y + 2}`,\n `Q ${x} ${y} ${x + 2} ${y}`,\n 'Z',\n ].join(' ')\n\n // Fold crease line\n const foldPath = `M ${x + width - fold} ${y} L ${x + width - fold} ${y + fold} L ${x + width} ${y + fold}`\n\n const strokeColor = node.resolvedStroke\n const thinStroke = 0.75\n const clipId = `file-clip-${node.id}`\n\n return (\n <g\n className=\"system-canvas-node system-canvas-node--file\"\n style={{ cursor: onPointerDown ? 'move' : node.isNavigable ? 'pointer' : 'default' }}\n onClick={(e) => onClick(node, e)}\n onDoubleClick={(e) => onDoubleClick(node, e)}\n onContextMenu={(e) => onContextMenu(node, e)}\n onPointerDown={onPointerDown ? (e) => onPointerDown(node, e) : undefined}\n >\n {/* Clip path to contain text within the node */}\n <defs>\n <clipPath id={clipId}>\n <rect\n x={x + textPadding}\n y={y}\n width={maxTextWidth}\n height={height}\n />\n </clipPath>\n </defs>\n\n {/* Opaque backer */}\n <path d={shapePath} fill={theme.background} />\n {/* Styled overlay */}\n <path\n d={shapePath}\n fill={node.resolvedFill}\n stroke={strokeColor}\n strokeWidth={thinStroke}\n />\n {/* Fold crease */}\n <path\n d={foldPath}\n fill=\"none\"\n stroke={strokeColor}\n strokeWidth={thinStroke}\n opacity={0.5}\n />\n\n {/* Clipped text group */}\n {!isEditing && (\n <g clipPath={`url(#${clipId})`}>\n {/* Directory path (small, above filename) */}\n {dirPath && (\n <text\n x={x + textPadding}\n y={y + 14}\n fill={theme.node.sublabelColor}\n fontSize={theme.node.sublabelFontSize - 1}\n fontFamily={theme.node.fontFamily}\n pointerEvents=\"none\"\n opacity={0.6}\n >\n {dirPath}/\n </text>\n )}\n\n {/* Filename */}\n <text\n x={x + textPadding}\n y={y + (dirPath ? 28 : height / 2 + (subpath ? -2 : 4))}\n fill={theme.node.labelColor}\n fontSize={theme.node.fontSize - 1}\n fontWeight={500}\n fontFamily={theme.node.fontFamily}\n pointerEvents=\"none\"\n >\n {fileName}\n </text>\n\n {/* Subpath */}\n {subpath && (\n <text\n x={x + textPadding}\n y={y + (dirPath ? 40 : height / 2 + theme.node.fontSize + 2)}\n fill={theme.node.sublabelColor}\n fontSize={theme.node.sublabelFontSize}\n fontFamily={theme.node.fontFamily}\n pointerEvents=\"none\"\n >\n {subpath}\n </text>\n )}\n </g>\n )}\n\n {/* Ref indicator — carved bottom-right corner */}\n {node.isNavigable && (\n <RefIndicator\n node={node}\n theme={theme}\n nodeX={x}\n nodeY={y}\n nodeWidth={width}\n nodeHeight={height}\n strokeColor={strokeColor}\n strokeWidth={thinStroke}\n onNavigate={onNavigate}\n />\n )}\n </g>\n )\n}\n","import React from 'react'\nimport type { ResolvedNode, CanvasTheme } from 'system-canvas'\nimport { RefIndicator } from './RefIndicator.js'\n\ninterface LinkNodeProps {\n node: ResolvedNode\n theme: CanvasTheme\n onClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onDoubleClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onContextMenu: (node: ResolvedNode, event: React.MouseEvent) => void\n onNavigate: (node: ResolvedNode, event: React.MouseEvent) => void\n onPointerDown?: (node: ResolvedNode, event: React.PointerEvent) => void\n isSelected?: boolean\n isEditing?: boolean\n}\n\nexport function LinkNode({\n node,\n theme,\n onClick,\n onDoubleClick,\n onContextMenu,\n onNavigate,\n onPointerDown,\n isSelected,\n isEditing,\n}: LinkNodeProps) {\n const { x, y, width, height } = node\n const cx = x + width / 2\n\n // Parse URL to show hostname\n let displayUrl = node.url ?? ''\n try {\n const url = new URL(displayUrl)\n displayUrl = url.hostname\n } catch {\n // Keep full URL if parsing fails\n }\n\n return (\n <g\n className=\"system-canvas-node system-canvas-node--link\"\n style={{ cursor: onPointerDown ? 'move' : 'pointer' }}\n onClick={(e) => onClick(node, e)}\n onDoubleClick={(e) => onDoubleClick(node, e)}\n onContextMenu={(e) => onContextMenu(node, e)}\n onPointerDown={onPointerDown ? (e) => onPointerDown(node, e) : undefined}\n >\n {/* Opaque backer */}\n <rect\n x={x}\n y={y}\n width={width}\n height={height}\n rx={node.resolvedCornerRadius}\n fill={theme.background}\n />\n {/* Styled overlay */}\n <rect\n x={x}\n y={y}\n width={width}\n height={height}\n rx={node.resolvedCornerRadius}\n fill={node.resolvedFill}\n stroke={node.resolvedStroke}\n strokeWidth={theme.node.strokeWidth}\n />\n\n {/* Link icon */}\n {!isEditing && (\n <text\n x={x + 12}\n y={y + height / 2 + 4}\n fill={node.resolvedStroke}\n fontSize={12}\n fontFamily={theme.node.fontFamily}\n pointerEvents=\"none\"\n opacity={0.6}\n >\n {'\\u{29C9}'}\n </text>\n )}\n\n {/* URL display */}\n {!isEditing && (\n <text\n x={cx}\n y={y + height / 2 + 4}\n fill={theme.node.labelColor}\n fontSize={theme.node.fontSize}\n fontWeight={600}\n fontFamily={theme.node.fontFamily}\n textAnchor=\"middle\"\n pointerEvents=\"none\"\n textDecoration=\"underline\"\n >\n {displayUrl}\n </text>\n )}\n\n {/* Ref indicator — carved bottom-right corner */}\n {node.isNavigable && (\n <RefIndicator\n node={node}\n theme={theme}\n nodeX={x}\n nodeY={y}\n nodeWidth={width}\n nodeHeight={height}\n strokeColor={node.resolvedStroke}\n strokeWidth={theme.node.strokeWidth}\n onNavigate={onNavigate}\n />\n )}\n </g>\n )\n}\n","import React from 'react'\nimport type { ResolvedNode, CanvasTheme } from 'system-canvas'\nimport { RefIndicator } from './RefIndicator.js'\n\ninterface GroupNodeProps {\n node: ResolvedNode\n theme: CanvasTheme\n onClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onDoubleClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onContextMenu: (node: ResolvedNode, event: React.MouseEvent) => void\n onNavigate: (node: ResolvedNode, event: React.MouseEvent) => void\n onPointerDown?: (node: ResolvedNode, event: React.PointerEvent) => void\n isSelected?: boolean\n isEditing?: boolean\n}\n\nexport function GroupNode({\n node,\n theme,\n onClick,\n onDoubleClick,\n onContextMenu,\n onNavigate,\n onPointerDown,\n isSelected,\n isEditing,\n}: GroupNodeProps) {\n const { x, y, width, height } = node\n\n // Use the node's resolved color for the group border, falling back to group theme\n const stroke = node.color ? node.resolvedStroke : theme.group.stroke\n const fill = node.color ? node.resolvedFill : theme.group.fill\n\n return (\n <g\n className=\"system-canvas-node system-canvas-node--group\"\n style={{ cursor: onPointerDown ? 'move' : node.isNavigable ? 'pointer' : 'default' }}\n onClick={(e) => onClick(node, e)}\n onDoubleClick={(e) => onDoubleClick(node, e)}\n onContextMenu={(e) => onContextMenu(node, e)}\n onPointerDown={onPointerDown ? (e) => onPointerDown(node, e) : undefined}\n >\n {/* Dashed boundary */}\n <rect\n x={x}\n y={y}\n width={width}\n height={height}\n rx={theme.group.cornerRadius}\n fill={fill}\n stroke={stroke}\n strokeWidth={theme.group.strokeWidth}\n strokeDasharray={theme.group.strokeDasharray}\n />\n\n {/* Label in top-left */}\n {!isEditing && node.label && (\n <text\n x={x + 12}\n y={y + theme.group.labelFontSize + 8}\n fill={node.color ? stroke : theme.group.labelColor}\n fontSize={theme.group.labelFontSize}\n fontWeight={600}\n fontFamily={theme.node.fontFamily}\n pointerEvents=\"none\"\n >\n {node.label}\n </text>\n )}\n\n {/* Ref indicator — carved top-right corner (label is top-left) */}\n {node.isNavigable && (\n <RefIndicator\n node={node}\n theme={theme}\n nodeX={x}\n nodeY={y}\n nodeWidth={width}\n nodeHeight={height}\n strokeColor={stroke}\n strokeWidth={theme.group.strokeWidth}\n corner=\"top-right\"\n onNavigate={onNavigate}\n />\n )}\n </g>\n )\n}\n","import React, { useState } from 'react'\nimport type { ResolvedNode, CanvasTheme } from 'system-canvas'\nimport type { ResizeCorner } from '../hooks/useNodeResize.js'\n\ninterface ResizeHandlesProps {\n node: ResolvedNode\n theme: CanvasTheme\n onHandlePointerDown: (\n node: ResolvedNode,\n corner: ResizeCorner,\n event: React.PointerEvent\n ) => void\n}\n\nconst HANDLE_SIZE = 7\n\nconst CORNERS: { corner: ResizeCorner; cursor: string; anchor: 'nw' | 'ne' | 'sw' | 'se' }[] = [\n { corner: 'nw', cursor: 'nwse-resize', anchor: 'nw' },\n { corner: 'ne', cursor: 'nesw-resize', anchor: 'ne' },\n { corner: 'sw', cursor: 'nesw-resize', anchor: 'sw' },\n { corner: 'se', cursor: 'nwse-resize', anchor: 'se' },\n]\n\n/**\n * Gentle per-radius inset. A square corner (r=0) gets no inset — the handle\n * sits centered on the geometric corner. As the radius grows, the handle is\n * nudged inward just slightly so it doesn't drift fully outside the rounded\n * outline for larger radii like groups (r=12) or outcome nodes (r=14).\n *\n * Capped at 3px so we never push the handle visibly inward from the corner —\n * the handle's half-width is 3.5px, so even at the cap the outer edge of the\n * handle still pokes ~0.5px past the bbox corner.\n */\nconst cornerInset = (cornerRadius: number) =>\n Math.min(cornerRadius * 0.25, 3)\n\n/**\n * Renders four small squares at the corners of a selected node. Pointer-down\n * on a handle starts a resize gesture.\n *\n * Placed inside the node's <g> but rendered AFTER the ref indicator so it\n * sits on top of any carved corner. Solid-filled in the node's own stroke\n * color so they read as part of the node; the hovered corner grows slightly.\n *\n * Each handle sits at (or very near) the node's geometric corner: a small\n * radius-proportional inset keeps it visually attached to the outline on\n * larger rounded corners without pulling it noticeably toward the center.\n */\nexport function ResizeHandles({ node, theme, onHandlePointerDown }: ResizeHandlesProps) {\n const { x, y, width, height } = node\n const [hoveredCorner, setHoveredCorner] = useState<ResizeCorner | null>(null)\n\n const handleColor = node.resolvedStroke ?? theme.node.labelColor\n\n const i = cornerInset(node.resolvedCornerRadius)\n const anchorPos = (anchor: 'nw' | 'ne' | 'sw' | 'se') => {\n switch (anchor) {\n case 'nw':\n return { cx: x + i, cy: y + i }\n case 'ne':\n return { cx: x + width - i, cy: y + i }\n case 'sw':\n return { cx: x + i, cy: y + height - i }\n case 'se':\n return { cx: x + width - i, cy: y + height - i }\n }\n }\n\n return (\n <g className=\"system-canvas-resize-handles\" pointerEvents=\"all\">\n {CORNERS.map(({ corner, cursor, anchor }) => {\n const { cx, cy } = anchorPos(anchor)\n const isHovered = hoveredCorner === corner\n const s = isHovered ? HANDLE_SIZE + 2 : HANDLE_SIZE\n const half = s / 2\n return (\n <rect\n key={corner}\n x={cx - half}\n y={cy - half}\n width={s}\n height={s}\n fill={handleColor}\n style={{ cursor }}\n onPointerEnter={() => setHoveredCorner(corner)}\n onPointerLeave={() =>\n setHoveredCorner((c) => (c === corner ? null : c))\n }\n onPointerDown={(e) => onHandlePointerDown(node, corner, e)}\n onClick={(e) => e.stopPropagation()}\n onDoubleClick={(e) => e.stopPropagation()}\n />\n )\n })}\n </g>\n )\n}\n","import React from 'react'\nimport type { ResolvedNode, CanvasTheme } from 'system-canvas'\nimport { TextNode } from './TextNode.js'\nimport { FileNode } from './FileNode.js'\nimport { LinkNode } from './LinkNode.js'\nimport { GroupNode } from './GroupNode.js'\nimport { ResizeHandles } from './ResizeHandles.js'\nimport type { ResizeCorner } from '../hooks/useNodeResize.js'\n\ninterface NodeRendererProps {\n nodes: ResolvedNode[]\n theme: CanvasTheme\n onClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onDoubleClick: (node: ResolvedNode, event: React.MouseEvent) => void\n onContextMenu: (node: ResolvedNode, event: React.MouseEvent) => void\n onNavigate: (node: ResolvedNode, event: React.MouseEvent) => void\n onPointerDown?: (node: ResolvedNode, event: React.PointerEvent) => void\n selectedId?: string | null\n editingId?: string | null\n onResizeHandlePointerDown?: (\n node: ResolvedNode,\n corner: ResizeCorner,\n event: React.PointerEvent\n ) => void\n /**\n * Render only a subset of nodes:\n * 'groups' → only group nodes\n * 'non-groups' → everything except groups\n * undefined → all nodes (groups first, then others)\n * Callers can use this to interleave edges between groups and other nodes.\n */\n only?: 'groups' | 'non-groups'\n}\n\n/**\n * Renders all nodes, dispatching to the appropriate type-specific component.\n * Groups are rendered first (lower z-index), then other nodes in array order.\n */\nexport function NodeRenderer({\n nodes,\n theme,\n onClick,\n onDoubleClick,\n onContextMenu,\n onNavigate,\n onPointerDown,\n selectedId,\n editingId,\n onResizeHandlePointerDown,\n only,\n}: NodeRendererProps) {\n const groups = nodes.filter((n) => n.type === 'group')\n const others = nodes.filter((n) => n.type !== 'group')\n\n const common = (node: ResolvedNode) => ({\n node,\n theme,\n onClick,\n onDoubleClick,\n onContextMenu,\n onNavigate,\n onPointerDown,\n isSelected: selectedId === node.id,\n isEditing: editingId === node.id,\n })\n\n const selectedNode =\n selectedId && editingId !== selectedId\n ? nodes.find((n) => n.id === selectedId)\n : undefined\n\n // Resize handles belong on the topmost layer: only render them when we're\n // drawing non-groups (or everything), so they end up above edges and nodes.\n const renderResizeHandles =\n only !== 'groups' && selectedNode && onResizeHandlePointerDown\n\n return (\n <>\n {only !== 'non-groups' &&\n groups.map((node) => <GroupNode key={node.id} {...common(node)} />)}\n\n {only !== 'groups' &&\n others.map((node) => {\n const Component = getNodeComponent(node.type)\n return <Component key={node.id} {...common(node)} />\n })}\n\n {renderResizeHandles && (\n <ResizeHandles\n node={selectedNode!}\n theme={theme}\n onHandlePointerDown={onResizeHandlePointerDown!}\n />\n )}\n </>\n )\n}\n\nfunction getNodeComponent(type: string) {\n switch (type) {\n case 'file':\n return FileNode\n case 'link':\n return LinkNode\n default:\n return TextNode\n }\n}\n","import React from 'react'\nimport type {\n CanvasEdge,\n ResolvedNode,\n CanvasTheme,\n EdgeStyle,\n} from 'system-canvas'\nimport {\n computeEdgePath,\n computeEdgeMidpoint,\n resolveColor,\n} from 'system-canvas'\n\ninterface EdgeRendererProps {\n edges: CanvasEdge[]\n nodeMap: Map<string, ResolvedNode>\n theme: CanvasTheme\n defaultEdgeStyle: EdgeStyle\n onClick: (edge: CanvasEdge, event: React.MouseEvent) => void\n onDoubleClick?: (edge: CanvasEdge, event: React.MouseEvent) => void\n onContextMenu: (edge: CanvasEdge, event: React.MouseEvent) => void\n /** Id of the currently selected edge (editable mode) */\n selectedId?: string | null\n /** Id of the edge whose label is currently being edited (label is hidden) */\n editingId?: string | null\n}\n\n/**\n * Renders all edges. Edges are drawn before nodes in the SVG so they\n * appear behind node rectangles (painter's model).\n */\nexport function EdgeRenderer({\n edges,\n nodeMap,\n theme,\n defaultEdgeStyle,\n onClick,\n onDoubleClick,\n onContextMenu,\n selectedId,\n editingId,\n}: EdgeRendererProps) {\n return (\n <>\n {/* Arrowhead marker definition. Uses `context-stroke` so the polygon\n inherits the stroke color of whichever path references it — that\n way one marker serves edges of any color (theme default, preset\n color, or selected highlight) without us needing a marker per\n color. Selected edges already set their path stroke to the\n high-contrast label color, so the arrow follows along. */}\n <defs>\n <marker\n id=\"system-canvas-arrowhead\"\n markerWidth={theme.edge.arrowSize}\n markerHeight={theme.edge.arrowSize * 0.7}\n refX={theme.edge.arrowSize - 1}\n refY={theme.edge.arrowSize * 0.35}\n orient=\"auto\"\n markerUnits=\"userSpaceOnUse\"\n >\n <polygon\n points={`0 0, ${theme.edge.arrowSize} ${theme.edge.arrowSize * 0.35}, 0 ${theme.edge.arrowSize * 0.7}`}\n fill=\"context-stroke\"\n />\n </marker>\n </defs>\n\n {/* Stable-sort so edges using the theme's default stroke render first\n (behind), and edges with an explicit color render on top. Selected\n edges are bumped to the very top so they're always fully visible.\n The underlying `edges` array is not mutated. */}\n {[...edges]\n .map((edge, i) => ({ edge, i }))\n .sort((a, b) => {\n const aSel = selectedId === a.edge.id ? 2 : 0\n const bSel = selectedId === b.edge.id ? 2 : 0\n const aCol = a.edge.color ? 1 : 0\n const bCol = b.edge.color ? 1 : 0\n const aRank = aSel + aCol\n const bRank = bSel + bCol\n if (aRank !== bRank) return aRank - bRank\n return a.i - b.i\n })\n .map(({ edge }) => {\n const fromNode = nodeMap.get(edge.fromNode)\n const toNode = nodeMap.get(edge.toNode)\n if (!fromNode || !toNode) return null\n\n const pathD = computeEdgePath(edge, fromNode, toNode, defaultEdgeStyle)\n const midpoint = computeEdgeMidpoint(edge, fromNode, toNode)\n\n const isSelected = selectedId === edge.id\n const isEditing = editingId === edge.id\n\n // Resolve edge color (selection overrides to high-contrast label color)\n const baseColor = edge.color\n ? resolveColor(edge.color, theme).stroke\n : theme.edge.stroke\n const edgeColor = isSelected ? theme.node.labelColor : baseColor\n const strokeWidth = isSelected\n ? theme.edge.strokeWidth * 1.75\n : theme.edge.strokeWidth\n\n const toEnd = edge.toEnd ?? 'arrow'\n const fromEnd = edge.fromEnd ?? 'none'\n const arrowId = 'system-canvas-arrowhead'\n\n return (\n <g\n key={edge.id}\n className=\"system-canvas-edge\"\n style={{ cursor: 'pointer' }}\n onClick={(e) => onClick(edge, e)}\n onDoubleClick={(e) => onDoubleClick?.(edge, e)}\n onContextMenu={(e) => onContextMenu(edge, e)}\n >\n {/* Invisible wider path for easier click targeting */}\n <path\n d={pathD}\n fill=\"none\"\n stroke=\"transparent\"\n strokeWidth={12}\n />\n\n {/* Visible path */}\n <path\n d={pathD}\n fill=\"none\"\n stroke={edgeColor}\n strokeWidth={strokeWidth}\n markerEnd={toEnd === 'arrow' ? `url(#${arrowId})` : undefined}\n markerStart={fromEnd === 'arrow' ? `url(#${arrowId})` : undefined}\n />\n\n {/* Edge label (hidden while editing) */}\n {edge.label && !isEditing && (\n <>\n {/* Label background for readability */}\n <rect\n x={midpoint.x - edge.label.length * 3 - 4}\n y={midpoint.y - theme.edge.labelFontSize - 2}\n width={edge.label.length * 6 + 8}\n height={theme.edge.labelFontSize + 6}\n rx={3}\n fill={theme.background}\n opacity={0.8}\n />\n <text\n x={midpoint.x}\n y={midpoint.y}\n fill={isSelected ? theme.node.labelColor : theme.edge.labelColor}\n fontSize={theme.edge.labelFontSize}\n fontFamily={theme.node.fontFamily}\n textAnchor=\"middle\"\n pointerEvents=\"none\"\n >\n {edge.label}\n </text>\n </>\n )}\n </g>\n )\n })}\n </>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport type { ResolvedNode, CanvasTheme, NodeUpdate } from 'system-canvas'\n\ninterface NodeEditorProps {\n node: ResolvedNode\n theme: CanvasTheme\n onCommit: (patch: NodeUpdate) => void\n onCancel: () => void\n}\n\n/**\n * Inline editor rendered inside a <foreignObject> overlaying the node.\n *\n * - text → <textarea> editing node.text\n * - file → <input> editing node.file\n * - link → <input> editing node.url\n * - group → <input> editing node.label\n */\nexport function NodeEditor({ node, theme, onCommit, onCancel }: NodeEditorProps) {\n const initial = getInitialValue(node)\n const [value, setValue] = useState(initial)\n const textareaRef = useRef<HTMLTextAreaElement | null>(null)\n const inputRef = useRef<HTMLInputElement | null>(null)\n const committedRef = useRef(false)\n\n useEffect(() => {\n const el = textareaRef.current ?? inputRef.current\n if (el) {\n el.focus()\n // Place cursor at end so user can append/edit without overwriting.\n const end = el.value.length\n el.setSelectionRange(end, end)\n }\n }, [])\n\n const commit = () => {\n if (committedRef.current) return\n committedRef.current = true\n if (value === initial) {\n onCancel()\n return\n }\n onCommit(buildPatch(node, value))\n }\n\n const cancel = () => {\n if (committedRef.current) return\n committedRef.current = true\n onCancel()\n }\n\n const stopPointer = (e: React.PointerEvent | React.MouseEvent) => {\n // Prevent the SVG's pan/drag handlers from stealing the event.\n e.stopPropagation()\n }\n\n const fontFamily = theme.node.fontFamily\n const fontSize = theme.node.fontSize\n const padding = 8\n\n const commonFieldStyle: React.CSSProperties = {\n width: '100%',\n height: '100%',\n boxSizing: 'border-box',\n padding,\n fontFamily,\n fontSize,\n background: theme.background,\n color: theme.node.labelColor,\n border: `1.5px solid ${theme.node.labelColor}`,\n borderRadius: node.resolvedCornerRadius,\n outline: 'none',\n resize: 'none',\n textAlign: node.type === 'text' ? 'center' : 'left',\n }\n\n return (\n <foreignObject\n x={node.x}\n y={node.y}\n width={node.width}\n height={node.height}\n onPointerDown={stopPointer}\n onMouseDown={stopPointer}\n onClick={stopPointer}\n onDoubleClick={stopPointer}\n >\n {node.type === 'text' ? (\n <textarea\n ref={textareaRef}\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onBlur={commit}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n commit()\n } else if (e.key === 'Escape') {\n e.preventDefault()\n cancel()\n }\n }}\n style={commonFieldStyle}\n />\n ) : (\n <input\n ref={inputRef}\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onBlur={commit}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault()\n commit()\n } else if (e.key === 'Escape') {\n e.preventDefault()\n cancel()\n }\n }}\n style={commonFieldStyle}\n />\n )}\n </foreignObject>\n )\n}\n\nfunction getInitialValue(node: ResolvedNode): string {\n switch (node.type) {\n case 'text':\n return node.text ?? ''\n case 'file':\n return node.file ?? ''\n case 'link':\n return node.url ?? ''\n case 'group':\n return node.label ?? ''\n default:\n return ''\n }\n}\n\nfunction buildPatch(node: ResolvedNode, value: string): NodeUpdate {\n switch (node.type) {\n case 'text':\n return { text: value }\n case 'file':\n return { file: value }\n case 'link':\n return { url: value }\n case 'group':\n return { label: value }\n default:\n return {}\n }\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport type { CanvasTheme, EdgeUpdate } from 'system-canvas'\n\ninterface EdgeLabelEditorProps {\n initialLabel: string\n midpoint: { x: number; y: number }\n theme: CanvasTheme\n onCommit: (patch: EdgeUpdate) => void\n onCancel: () => void\n}\n\nconst EDITOR_WIDTH = 110\n\n/**\n * Inline edge label editor rendered inside a <foreignObject> centered\n * on the edge midpoint. Enter commits, Escape cancels.\n */\nexport function EdgeLabelEditor({\n initialLabel,\n midpoint,\n theme,\n onCommit,\n onCancel,\n}: EdgeLabelEditorProps) {\n const [value, setValue] = useState(initialLabel)\n const inputRef = useRef<HTMLInputElement | null>(null)\n const committedRef = useRef(false)\n\n useEffect(() => {\n const el = inputRef.current\n if (el) {\n el.focus()\n const end = el.value.length\n el.setSelectionRange(end, end)\n }\n }, [])\n\n const commit = () => {\n if (committedRef.current) return\n committedRef.current = true\n if (value === initialLabel) {\n onCancel()\n return\n }\n onCommit({ label: value })\n }\n\n const cancel = () => {\n if (committedRef.current) return\n committedRef.current = true\n onCancel()\n }\n\n const stopPointer = (e: React.PointerEvent | React.MouseEvent) => {\n // Prevent the SVG's pan/drag handlers from stealing the event.\n e.stopPropagation()\n }\n\n const fontSize = theme.edge.labelFontSize\n const height = fontSize + 14\n\n return (\n <foreignObject\n x={midpoint.x - EDITOR_WIDTH / 2}\n y={midpoint.y - height / 2}\n width={EDITOR_WIDTH}\n height={height}\n onPointerDown={stopPointer}\n onMouseDown={stopPointer}\n onClick={stopPointer}\n onDoubleClick={stopPointer}\n >\n <input\n ref={inputRef}\n value={value}\n onChange={(e) => setValue(e.target.value)}\n onBlur={commit}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault()\n commit()\n } else if (e.key === 'Escape') {\n e.preventDefault()\n cancel()\n }\n }}\n placeholder=\"Label\"\n style={{\n width: '100%',\n height: '100%',\n boxSizing: 'border-box',\n padding: '2px 6px',\n fontFamily: theme.node.fontFamily,\n fontSize,\n background: theme.background,\n color: theme.edge.labelColor,\n border: `1.5px solid ${theme.node.labelColor}`,\n borderRadius: 4,\n outline: 'none',\n textAlign: 'center',\n }}\n />\n </foreignObject>\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport type { ResolvedNode, CanvasTheme, Side } from 'system-canvas'\nimport { computeAnchorPoint } from 'system-canvas'\n\ninterface ConnectionHandlesProps {\n node: ResolvedNode\n theme: CanvasTheme\n onHandlePointerDown: (\n node: ResolvedNode,\n side: Side,\n event: React.PointerEvent\n ) => void\n /**\n * When true, skip the fade-in delay and render at full opacity\n * immediately (used while a connection drag is already in progress).\n */\n immediate?: boolean\n /**\n * Which side (if any) is currently closest to the cursor. When set, only\n * that side's handle is rendered. When null/undefined, no side-handles\n * render (unless `immediate` is true, in which case all four render so the\n * source handle remains visible during a drag).\n */\n activeSide?: Side | null\n}\n\nconst SIDES: Side[] = ['top', 'right', 'bottom', 'left']\nconst HANDLE_RADIUS = 4\nconst HANDLE_HIT_RADIUS = 10\nconst FADE_DELAY_MS = 300\nconst FADE_DURATION_MS = 150\n/**\n * Scale factor applied to the handle circle when the pointer is directly\n * over it. Animated via CSS `transform` (SVG's `r` attribute can't be\n * CSS-transitioned reliably across browsers, but `transform` can).\n */\nconst HOVER_SCALE = 1.42\nconst HOVER_TRANSITION_MS = 120\n\n/**\n * Four small circular handles, one centered on each side of the node.\n * Pressing a handle begins an edge-creation drag.\n *\n * Fades in after a 300ms delay to avoid flashing during mouse fly-throughs.\n * Handles are solid-filled in the node's own stroke color; hovering an\n * individual handle grows it slightly.\n */\nexport function ConnectionHandles({\n node,\n theme,\n onHandlePointerDown,\n immediate,\n activeSide,\n}: ConnectionHandlesProps) {\n const [visible, setVisible] = useState<boolean>(!!immediate)\n const [hoveredSide, setHoveredSide] = useState<Side | null>(null)\n\n useEffect(() => {\n if (immediate) {\n setVisible(true)\n return\n }\n setVisible(false)\n const t = window.setTimeout(() => setVisible(true), FADE_DELAY_MS)\n return () => window.clearTimeout(t)\n }, [node.id, immediate])\n\n const handleColor = node.resolvedStroke ?? theme.node.labelColor\n\n // While a drag is in progress (`immediate`), render all four sides so the\n // source handle stays put. Otherwise render only the side closest to the\n // cursor (or nothing when no side is active).\n const sidesToRender: Side[] = immediate\n ? SIDES\n : activeSide\n ? [activeSide]\n : []\n\n return (\n <g\n className=\"system-canvas-connection-handles\"\n pointerEvents=\"auto\"\n style={{\n opacity: visible ? 1 : 0,\n transition: `opacity ${FADE_DURATION_MS}ms ease-out`,\n }}\n >\n {sidesToRender.map((side) => {\n const { x, y } = computeAnchorPoint(node, side)\n const isHovered = hoveredSide === side\n return (\n <g\n key={side}\n style={{ cursor: 'crosshair' }}\n onPointerEnter={() => setHoveredSide(side)}\n onPointerLeave={() => setHoveredSide((s) => (s === side ? null : s))}\n onPointerDown={(e) => {\n // Stop propagation so the node's own drag/click doesn't fire.\n e.stopPropagation()\n onHandlePointerDown(node, side, e)\n }}\n >\n {/* Invisible wider hit target */}\n <circle cx={x} cy={y} r={HANDLE_HIT_RADIUS} fill=\"transparent\" />\n <circle\n cx={x}\n cy={y}\n r={HANDLE_RADIUS}\n fill={handleColor}\n pointerEvents=\"none\"\n style={{\n // Scale around the handle's own center. CSS transforms on\n // SVG elements use the element's user-space origin by\n // default, so we set transform-origin explicitly.\n transformOrigin: `${x}px ${y}px`,\n transform: isHovered ? `scale(${HOVER_SCALE})` : 'scale(1)',\n transition: `transform ${HOVER_TRANSITION_MS}ms ease-out`,\n }}\n />\n </g>\n )\n })}\n </g>\n )\n}\n","import React from 'react'\nimport type {\n CanvasEdge,\n CanvasTheme,\n EdgeStyle,\n ResolvedNode,\n Side,\n} from 'system-canvas'\nimport { computeEdgePath } from 'system-canvas'\n\ninterface PendingEdgeRendererProps {\n sourceNode: ResolvedNode\n sourceSide: Side\n cursor: { x: number; y: number }\n targetNode: ResolvedNode | null\n theme: CanvasTheme\n defaultEdgeStyle: EdgeStyle\n}\n\n/**\n * Ghost edge rendered while the user is dragging to create a new edge.\n * If the cursor is over a valid target node, the preview snaps to that\n * node's nearest side. Otherwise the preview follows the cursor directly.\n */\nexport function PendingEdgeRenderer({\n sourceNode,\n sourceSide,\n cursor,\n targetNode,\n theme,\n defaultEdgeStyle,\n}: PendingEdgeRendererProps) {\n // When there's no target, build a synthetic zero-sized \"target\" at the\n // cursor so computeEdgePath produces a curve terminating at the cursor.\n const endNode: ResolvedNode = targetNode ?? {\n id: '__pending__',\n type: 'text',\n x: cursor.x,\n y: cursor.y,\n width: 0,\n height: 0,\n resolvedFill: 'transparent',\n resolvedStroke: 'transparent',\n resolvedCornerRadius: 0,\n isNavigable: false,\n resolvedIcon: null,\n }\n\n const pendingEdge: CanvasEdge = {\n id: '__pending__',\n fromNode: sourceNode.id,\n fromSide: sourceSide,\n toNode: endNode.id,\n }\n\n const pathD = computeEdgePath(pendingEdge, sourceNode, endNode, defaultEdgeStyle)\n\n return (\n <g className=\"system-canvas-pending-edge\" pointerEvents=\"none\">\n <path\n d={pathD}\n fill=\"none\"\n stroke={theme.node.labelColor}\n strokeWidth={theme.edge.strokeWidth * 1.25}\n strokeDasharray=\"5,4\"\n opacity={0.85}\n />\n {/* Small dot at the cursor for affordance when floating free */}\n {!targetNode && (\n <circle\n cx={cursor.x}\n cy={cursor.y}\n r={4}\n fill={theme.background}\n stroke={theme.node.labelColor}\n strokeWidth={1.5}\n />\n )}\n </g>\n )\n}\n","import React from 'react'\nimport type { CanvasLane, CanvasTheme } from 'system-canvas'\nimport { resolveColor } from 'system-canvas'\n\n// Lane bands extend far beyond the viewport along the non-lane axis\n// so users never see an edge while panning. Matches the grid's \"infinite\"\n// 100000x100000 rect trick.\nconst LANE_EXTENT = 100000\n\ninterface LanesBackgroundProps {\n columns?: CanvasLane[]\n rows?: CanvasLane[]\n theme: CanvasTheme\n}\n\n/**\n * Renders column/row bands in canvas-space. Sits inside the transformable\n * <g> so it pans and zooms with the content. Drawn behind every node and\n * edge.\n *\n * Header labels are rendered separately by LaneHeaders (screen-space\n * overlay), so this component only draws the bands themselves.\n */\nexport function LanesBackground({\n columns,\n rows,\n theme,\n}: LanesBackgroundProps) {\n const hasColumns = columns && columns.length > 0\n const hasRows = rows && rows.length > 0\n if (!hasColumns && !hasRows) return null\n\n const lanesTheme = theme.lanes\n\n // Resolve per-lane fill override if the consumer supplied `color`.\n // Otherwise alternate the theme's bandFillEven/Odd.\n const fillForLane = (lane: CanvasLane, index: number): string => {\n if (lane.color) {\n const resolved = resolveColor(lane.color, theme)\n return resolved.fill\n }\n return index % 2 === 0 ? lanesTheme.bandFillEven : lanesTheme.bandFillOdd\n }\n\n return (\n <g className=\"system-canvas-lanes\" pointerEvents=\"none\">\n {/* Rows first so columns draw on top (columns are the more common\n primary axis in roadmap layouts). */}\n {hasRows &&\n rows!.map((row, i) => (\n <rect\n key={`row-${row.id}`}\n x={-LANE_EXTENT}\n y={row.start}\n width={LANE_EXTENT * 2}\n height={row.size}\n fill={fillForLane(row, i)}\n />\n ))}\n\n {hasColumns &&\n columns!.map((col, i) => (\n <rect\n key={`col-${col.id}`}\n x={col.start}\n y={-LANE_EXTENT}\n width={col.size}\n height={LANE_EXTENT * 2}\n fill={fillForLane(col, i)}\n />\n ))}\n\n {/* Dividers — thin lines between adjacent lanes. Drawn last so they\n sit on top of the fills. */}\n {hasRows &&\n rows!.map((row, i) => {\n if (i === 0) return null\n return (\n <line\n key={`rowdiv-${row.id}`}\n x1={-LANE_EXTENT}\n y1={row.start}\n x2={LANE_EXTENT}\n y2={row.start}\n stroke={lanesTheme.dividerColor}\n strokeWidth={lanesTheme.dividerWidth}\n vectorEffect=\"non-scaling-stroke\"\n />\n )\n })}\n\n {hasColumns &&\n columns!.map((col, i) => {\n if (i === 0) return null\n return (\n <line\n key={`coldiv-${col.id}`}\n x1={col.start}\n y1={-LANE_EXTENT}\n x2={col.start}\n y2={LANE_EXTENT}\n stroke={lanesTheme.dividerColor}\n strokeWidth={lanesTheme.dividerWidth}\n vectorEffect=\"non-scaling-stroke\"\n />\n )\n })}\n </g>\n )\n}\n","import React from 'react'\nimport type { BreadcrumbEntry, BreadcrumbTheme } from 'system-canvas'\n\ninterface BreadcrumbsProps {\n breadcrumbs: BreadcrumbEntry[]\n theme: BreadcrumbTheme\n onNavigate: (index: number) => void\n}\n\nexport function Breadcrumbs({\n breadcrumbs,\n theme,\n onNavigate,\n}: BreadcrumbsProps) {\n if (breadcrumbs.length <= 1) return null\n\n return (\n <div\n className=\"system-canvas-breadcrumbs\"\n style={{\n position: 'absolute',\n top: 12,\n left: 12,\n zIndex: 10,\n display: 'flex',\n alignItems: 'center',\n gap: 4,\n padding: '6px 12px',\n background: theme.background,\n borderRadius: 8,\n fontFamily: theme.fontFamily,\n fontSize: theme.fontSize,\n userSelect: 'none',\n backdropFilter: 'blur(8px)',\n }}\n >\n {breadcrumbs.map((crumb, index) => {\n const isLast = index === breadcrumbs.length - 1\n\n return (\n <React.Fragment key={index}>\n {index > 0 && (\n <span\n style={{\n color: theme.separatorColor,\n margin: '0 2px',\n }}\n >\n /\n </span>\n )}\n <span\n onClick={isLast ? undefined : () => onNavigate(index)}\n style={{\n color: isLast ? theme.activeColor : theme.textColor,\n cursor: isLast ? 'default' : 'pointer',\n fontWeight: isLast ? 600 : 400,\n transition: 'color 0.15s ease',\n }}\n onMouseEnter={(e) => {\n if (!isLast) {\n ;(e.target as HTMLElement).style.color = theme.activeColor\n }\n }}\n onMouseLeave={(e) => {\n if (!isLast) {\n ;(e.target as HTMLElement).style.color = theme.textColor\n }\n }}\n >\n {crumb.label}\n </span>\n </React.Fragment>\n )\n })}\n </div>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport type { CanvasTheme, NodeMenuOption } from 'system-canvas'\nimport { NodeIcon } from './NodeIcon.js'\n\nexport interface AddNodeButtonRenderProps {\n options: NodeMenuOption[]\n addNode: (option: NodeMenuOption, position?: { x: number; y: number }) => void\n theme: CanvasTheme\n}\n\ninterface AddNodeButtonProps extends AddNodeButtonRenderProps {}\n\n/**\n * Default floating \"+\" button. Click opens a popover with category options\n * first, then a divider, then base JSON Canvas types.\n */\nexport function AddNodeButton({ options, addNode, theme }: AddNodeButtonProps) {\n const [open, setOpen] = useState(false)\n const rootRef = useRef<HTMLDivElement | null>(null)\n\n useEffect(() => {\n if (!open) return\n function onDocClick(e: MouseEvent) {\n if (!rootRef.current) return\n if (!rootRef.current.contains(e.target as Node)) {\n setOpen(false)\n }\n }\n function onKey(e: KeyboardEvent) {\n if (e.key === 'Escape') setOpen(false)\n }\n window.addEventListener('mousedown', onDocClick)\n window.addEventListener('keydown', onKey)\n return () => {\n window.removeEventListener('mousedown', onDocClick)\n window.removeEventListener('keydown', onKey)\n }\n }, [open])\n\n const categoryOptions = options.filter((o) => o.kind === 'category')\n const typeOptions = options.filter((o) => o.kind === 'type')\n\n return (\n <div\n ref={rootRef}\n className=\"system-canvas-add-node\"\n style={{\n position: 'absolute',\n bottom: 16,\n right: 16,\n zIndex: 15,\n fontFamily: theme.breadcrumbs.fontFamily,\n fontSize: theme.breadcrumbs.fontSize,\n userSelect: 'none',\n }}\n >\n {open && (\n <div\n style={{\n position: 'absolute',\n bottom: 52,\n right: 0,\n minWidth: 200,\n maxHeight: 360,\n overflowY: 'auto',\n padding: 6,\n background: theme.breadcrumbs.background,\n color: theme.breadcrumbs.textColor,\n borderRadius: 10,\n boxShadow: '0 8px 24px rgba(0,0,0,0.35)',\n backdropFilter: 'blur(10px)',\n }}\n >\n {categoryOptions.length > 0 && (\n <>\n <SectionLabel theme={theme}>Categories</SectionLabel>\n {categoryOptions.map((opt) => (\n <MenuRow\n key={`cat-${opt.value}`}\n theme={theme}\n option={opt}\n onClick={() => {\n addNode(opt)\n setOpen(false)\n }}\n />\n ))}\n <Divider theme={theme} />\n </>\n )}\n <SectionLabel theme={theme}>Basic</SectionLabel>\n {typeOptions.map((opt) => (\n <MenuRow\n key={`type-${opt.value}`}\n theme={theme}\n option={opt}\n onClick={() => {\n addNode(opt)\n setOpen(false)\n }}\n />\n ))}\n </div>\n )}\n\n <button\n type=\"button\"\n aria-label={open ? 'Close add node menu' : 'Add node'}\n onClick={() => setOpen((v) => !v)}\n style={{\n width: 44,\n height: 44,\n borderRadius: 22,\n border: `1px solid ${theme.breadcrumbs.separatorColor}`,\n background: theme.breadcrumbs.background,\n color: theme.breadcrumbs.activeColor,\n cursor: 'pointer',\n fontSize: 24,\n lineHeight: 1,\n padding: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backdropFilter: 'blur(8px)',\n boxShadow: '0 4px 12px rgba(0,0,0,0.25)',\n transform: open ? 'rotate(45deg)' : 'rotate(0deg)',\n transition: 'transform 0.15s ease',\n }}\n >\n +\n </button>\n </div>\n )\n}\n\nfunction SectionLabel({\n theme,\n children,\n}: {\n theme: CanvasTheme\n children: React.ReactNode\n}) {\n return (\n <div\n style={{\n padding: '4px 8px',\n fontSize: theme.breadcrumbs.fontSize - 2,\n color: theme.breadcrumbs.textColor,\n opacity: 0.6,\n textTransform: 'uppercase',\n letterSpacing: '0.05em',\n }}\n >\n {children}\n </div>\n )\n}\n\nfunction Divider({ theme }: { theme: CanvasTheme }) {\n return (\n <div\n style={{\n height: 1,\n margin: '4px 0',\n background: theme.breadcrumbs.separatorColor,\n opacity: 0.4,\n }}\n />\n )\n}\n\nfunction MenuRow({\n theme,\n option,\n onClick,\n}: {\n theme: CanvasTheme\n option: NodeMenuOption\n onClick: () => void\n}) {\n const [hover, setHover] = useState(false)\n const swatchSize = 18\n\n return (\n <div\n role=\"button\"\n onClick={onClick}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n padding: '6px 8px',\n borderRadius: 6,\n cursor: 'pointer',\n background: hover ? 'rgba(255,255,255,0.06)' : 'transparent',\n color: theme.breadcrumbs.activeColor,\n }}\n >\n {option.kind === 'category' ? (\n <span\n style={{\n width: swatchSize,\n height: swatchSize,\n borderRadius: 4,\n background: option.fill ?? 'transparent',\n border: `1px solid ${option.stroke ?? theme.breadcrumbs.separatorColor}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n }}\n >\n {option.icon && (\n <svg\n width={12}\n height={12}\n viewBox=\"0 0 14 14\"\n style={{ overflow: 'visible' }}\n >\n <g transform=\"translate(-1, -1)\">\n <NodeIcon\n icon={option.icon}\n x={0}\n y={0}\n size={14}\n color={option.stroke ?? theme.breadcrumbs.activeColor}\n opacity={0.9}\n customIcons={theme.icons}\n />\n </g>\n </svg>\n )}\n </span>\n ) : (\n <span\n style={{\n width: swatchSize,\n height: swatchSize,\n borderRadius: 4,\n border: `1px dashed ${theme.breadcrumbs.separatorColor}`,\n flexShrink: 0,\n }}\n />\n )}\n <span style={{ textTransform: 'capitalize' }}>{option.label}</span>\n <span\n style={{\n marginLeft: 'auto',\n fontSize: theme.breadcrumbs.fontSize - 2,\n opacity: 0.5,\n }}\n >\n {option.nodeType}\n </span>\n </div>\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport type { CanvasLane, CanvasTheme, ViewportState } from 'system-canvas'\nimport { canvasToScreen } from 'system-canvas'\n\ninterface LaneHeadersProps {\n columns?: CanvasLane[]\n rows?: CanvasLane[]\n theme: CanvasTheme\n /** Live viewport state — updated via getViewport() each animation frame. */\n getViewport: () => ViewportState\n /**\n * Screen-space size of the SVG viewport. Used to position headers relative\n * to the right/bottom edges if we ever need to; currently just for clipping.\n */\n width: number\n height: number\n /** Whether headers should be pinned (true) or scroll with canvas (false). */\n pinned?: boolean\n}\n\n/**\n * Sticky headers for columns (top strip) and rows (left strip).\n *\n * Rendered as a separate SVG overlay that sits above the main viewport SVG\n * and tracks its transform via requestAnimationFrame. Headers scale their\n * position along the lane axis with the viewport but keep a constant\n * screen-pixel thickness on the cross axis, so labels stay legible at any\n * zoom level.\n */\nexport function LaneHeaders({\n columns,\n rows,\n theme,\n getViewport,\n width,\n height,\n pinned = true,\n}: LaneHeadersProps) {\n const hasColumns = columns && columns.length > 0\n const hasRows = rows && rows.length > 0\n\n const [viewport, setViewport] = useState<ViewportState>(() => getViewport())\n\n // Poll the viewport on every animation frame so headers stay in sync\n // with d3-zoom transforms. Cheaper than re-plumbing a callback through\n // useViewport and totally imperceptible in practice — runs only while\n // this component is mounted.\n useEffect(() => {\n if (!hasColumns && !hasRows) return\n let raf = 0\n let lastX = -Infinity\n let lastY = -Infinity\n let lastZoom = -Infinity\n const tick = () => {\n const vp = getViewport()\n if (vp.x !== lastX || vp.y !== lastY || vp.zoom !== lastZoom) {\n lastX = vp.x\n lastY = vp.y\n lastZoom = vp.zoom\n setViewport(vp)\n }\n raf = requestAnimationFrame(tick)\n }\n raf = requestAnimationFrame(tick)\n return () => cancelAnimationFrame(raf)\n }, [getViewport, hasColumns, hasRows])\n\n if (!hasColumns && !hasRows) return null\n\n const lanesTheme = theme.lanes\n const headerSize = lanesTheme.headerSize\n const pad = lanesTheme.headerPadding\n\n // If rows are present, columns header must shift right to clear the row strip.\n const colsOffsetLeft = hasRows && pinned ? headerSize : 0\n const rowsOffsetTop = hasColumns && pinned ? headerSize : 0\n\n return (\n <svg\n className=\"system-canvas-lane-headers\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width,\n height,\n pointerEvents: 'none',\n }}\n >\n {/* Column headers — top strip */}\n {hasColumns && (\n <g>\n {pinned && (\n <rect\n x={colsOffsetLeft}\n y={0}\n width={width - colsOffsetLeft}\n height={headerSize}\n fill={lanesTheme.headerBackground}\n />\n )}\n {columns!.map((col) => {\n const startScreen = canvasToScreen(col.start, 0, viewport).x\n const endScreen = canvasToScreen(col.start + col.size, 0, viewport).x\n const w = endScreen - startScreen\n const y = pinned ? 0 : canvasToScreen(0, 0, viewport).y - headerSize\n // Clip the label to the visible portion so long labels don't\n // slide off the left edge when a wide column scrolls partially\n // offscreen. We center-align the label within the visible slice.\n const visibleLeft = Math.max(startScreen, colsOffsetLeft)\n const visibleRight = Math.min(endScreen, width)\n const visibleW = Math.max(0, visibleRight - visibleLeft)\n const cx = visibleLeft + visibleW / 2\n // Hide entirely if offscreen\n if (endScreen <= colsOffsetLeft || startScreen >= width) return null\n return (\n <g key={`colh-${col.id}`}>\n {/* Per-lane divider on the header strip */}\n <line\n x1={startScreen}\n y1={pinned ? headerSize : y + headerSize}\n x2={startScreen}\n y2={pinned ? 0 : y}\n stroke={lanesTheme.dividerColor}\n strokeWidth={lanesTheme.dividerWidth}\n />\n <text\n x={cx}\n y={(pinned ? 0 : y) + headerSize / 2}\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n fill={lanesTheme.headerTextColor}\n fontFamily={lanesTheme.headerFontFamily}\n fontSize={lanesTheme.headerFontSize}\n style={{ userSelect: 'none' }}\n >\n {truncateToWidth(col.label, visibleW - pad * 2, lanesTheme.headerFontSize)}\n </text>\n </g>\n )\n })}\n {/* Bottom border of the header strip */}\n {pinned && (\n <line\n x1={colsOffsetLeft}\n y1={headerSize}\n x2={width}\n y2={headerSize}\n stroke={lanesTheme.dividerColor}\n strokeWidth={lanesTheme.dividerWidth}\n />\n )}\n </g>\n )}\n\n {/* Row headers — left strip */}\n {hasRows && (\n <g>\n {pinned && (\n <rect\n x={0}\n y={rowsOffsetTop}\n width={headerSize}\n height={height - rowsOffsetTop}\n fill={lanesTheme.headerBackground}\n />\n )}\n {rows!.map((row) => {\n const startScreen = canvasToScreen(0, row.start, viewport).y\n const endScreen = canvasToScreen(0, row.start + row.size, viewport).y\n const h = endScreen - startScreen\n const x = pinned ? 0 : canvasToScreen(0, 0, viewport).x - headerSize\n const visibleTop = Math.max(startScreen, rowsOffsetTop)\n const visibleBottom = Math.min(endScreen, height)\n const visibleH = Math.max(0, visibleBottom - visibleTop)\n const cy = visibleTop + visibleH / 2\n if (endScreen <= rowsOffsetTop || startScreen >= height) return null\n return (\n <g key={`rowh-${row.id}`}>\n <line\n x1={pinned ? 0 : x}\n y1={startScreen}\n x2={pinned ? headerSize : x + headerSize}\n y2={startScreen}\n stroke={lanesTheme.dividerColor}\n strokeWidth={lanesTheme.dividerWidth}\n />\n {/* Rotate -90 around the label center so row labels read\n bottom-to-top along the left strip. */}\n <text\n x={(pinned ? 0 : x) + headerSize / 2}\n y={cy}\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n fill={lanesTheme.headerTextColor}\n fontFamily={lanesTheme.headerFontFamily}\n fontSize={lanesTheme.headerFontSize}\n transform={`rotate(-90 ${(pinned ? 0 : x) + headerSize / 2} ${cy})`}\n style={{ userSelect: 'none' }}\n >\n {truncateToWidth(row.label, visibleH - pad * 2, lanesTheme.headerFontSize)}\n </text>\n </g>\n )\n })}\n {pinned && (\n <line\n x1={headerSize}\n y1={rowsOffsetTop}\n x2={headerSize}\n y2={height}\n stroke={lanesTheme.dividerColor}\n strokeWidth={lanesTheme.dividerWidth}\n />\n )}\n </g>\n )}\n\n {/* Top-left cell where the two strips intersect */}\n {hasColumns && hasRows && pinned && (\n <rect\n x={0}\n y={0}\n width={headerSize}\n height={headerSize}\n fill={lanesTheme.headerBackground}\n />\n )}\n </svg>\n )\n}\n\n/**\n * Crude label truncator — cuts the string if its approximate rendered width\n * exceeds the available pixels. Approximates char width as `fontSize * 0.6`\n * (fine for mono/proportional mixed content; not perfect but fast).\n */\nfunction truncateToWidth(label: string, availablePx: number, fontSize: number): string {\n if (availablePx <= 0) return ''\n const charPx = fontSize * 0.6\n const maxChars = Math.max(1, Math.floor(availablePx / charPx))\n if (label.length <= maxChars) return label\n if (maxChars <= 1) return '…'\n return label.slice(0, maxChars - 1) + '…'\n}\n","import React, { useEffect, useMemo, useRef, useState } from 'react'\nimport type {\n CanvasNode,\n CanvasTheme,\n NodeAction,\n NodeActionGroup,\n NodeUpdate,\n ResolvedNode,\n ViewportState,\n} from 'system-canvas'\nimport {\n canvasToScreen,\n filterActionsForNode,\n getNodeActions,\n resolveActionPatch,\n} from 'system-canvas'\nimport { NodeIcon } from './NodeIcon.js'\n\n/** Gap between the node's top edge and the toolbar's bottom edge, in screen px. */\nconst NODE_GAP = 10\n/** Margin from the viewport's top edge before the toolbar flips to below the node. */\nconst FLIP_MARGIN = 8\n/** Toolbar internal padding / button gap, in screen px. */\nconst PADDING = 6\nconst BUTTON_GAP = 4\n/** Swatch dot diameter, in screen px. */\nconst SWATCH_SIZE = 16\n/** Icon/button button square size, in screen px. */\nconst BUTTON_SIZE = 28\n/** Delete-button icon size. */\nconst DELETE_SIZE = 14\n\nexport interface NodeToolbarRenderProps {\n node: ResolvedNode\n theme: CanvasTheme\n /** Apply a patch to the node (same semantics as onNodeUpdate). */\n patch: (update: NodeUpdate) => void\n /** Delete the node. */\n deleteNode: () => void\n}\n\ninterface NodeToolbarProps {\n node: ResolvedNode\n theme: CanvasTheme\n /** Called when an action fires — forwarded to onNodeUpdate. */\n onPatch: (update: NodeUpdate) => void\n /** Called when the delete button fires. */\n onDelete: () => void\n /** Live viewport state — polled each frame for position sync. */\n getViewport: () => ViewportState\n /** Container width/height in screen px (for flip-below-node logic). */\n containerWidth: number\n containerHeight: number\n /** Optional full override of the toolbar UI. */\n render?: (props: NodeToolbarRenderProps) => React.ReactNode\n}\n\n/**\n * A floating toolbar that appears above the selected node in editable mode.\n *\n * Implementation:\n * - Rendered as an HTML overlay (absolute-positioned inside the canvas\n * container), kept in sync with the viewport via rAF polling — same\n * pattern as LaneHeaders. This gives fixed-pixel sizing regardless of\n * zoom without needing inverse-scale transforms.\n * - Action groups come from `theme.nodeActions`; falls back to a generic\n * color-swatch group derived from `theme.presetColors`.\n * - Delete is always appended as a final divider group.\n * - Fully replaceable via the `render` prop, in which case the library\n * only positions the container and the consumer draws its contents.\n */\nexport function NodeToolbar({\n node,\n theme,\n onPatch,\n onDelete,\n getViewport,\n containerWidth,\n containerHeight,\n render,\n}: NodeToolbarProps) {\n const [viewport, setViewport] = useState<ViewportState>(() => getViewport())\n\n useEffect(() => {\n let raf = 0\n let lastX = -Infinity\n let lastY = -Infinity\n let lastZoom = -Infinity\n const tick = () => {\n const vp = getViewport()\n if (vp.x !== lastX || vp.y !== lastY || vp.zoom !== lastZoom) {\n lastX = vp.x\n lastY = vp.y\n lastZoom = vp.zoom\n setViewport(vp)\n }\n raf = requestAnimationFrame(tick)\n }\n raf = requestAnimationFrame(tick)\n return () => cancelAnimationFrame(raf)\n }, [getViewport])\n\n // Position of the node's top-center in screen coords.\n const topCenter = canvasToScreen(node.x + node.width / 2, node.y, viewport)\n const bottomCenter = canvasToScreen(\n node.x + node.width / 2,\n node.y + node.height,\n viewport\n )\n\n // Measure the toolbar's actual screen size so we can center it over the\n // node and flip it below when near the top of the viewport.\n const toolbarRef = useRef<HTMLDivElement | null>(null)\n const [size, setSize] = useState({ width: 0, height: 0 })\n useEffect(() => {\n const el = toolbarRef.current\n if (!el) return\n const update = () => {\n const r = el.getBoundingClientRect()\n setSize({ width: r.width, height: r.height })\n }\n update()\n const ro = new ResizeObserver(update)\n ro.observe(el)\n return () => ro.disconnect()\n })\n\n // Default position: centered horizontally above the node.\n let left = topCenter.x - size.width / 2\n let top = topCenter.y - size.height - NODE_GAP\n\n // Flip below the node if it would clip the top of the viewport.\n if (top < FLIP_MARGIN) {\n top = bottomCenter.y + NODE_GAP\n }\n\n // Clamp horizontally to the viewport so the toolbar stays readable.\n left = Math.max(FLIP_MARGIN, Math.min(left, containerWidth - size.width - FLIP_MARGIN))\n\n const patch = (update: NodeUpdate) => onPatch(update)\n const deleteNode = () => onDelete()\n\n return (\n <div\n ref={toolbarRef}\n className=\"system-canvas-node-toolbar\"\n // Stop pointer events from bubbling to the canvas (which would\n // deselect the node or start a pan).\n onPointerDown={(e) => e.stopPropagation()}\n onMouseDown={(e) => e.stopPropagation()}\n onClick={(e) => e.stopPropagation()}\n onDoubleClick={(e) => e.stopPropagation()}\n style={{\n position: 'absolute',\n left,\n top,\n display: 'flex',\n alignItems: 'center',\n gap: BUTTON_GAP,\n padding: PADDING,\n background: theme.breadcrumbs.background,\n border: `1px solid ${theme.breadcrumbs.separatorColor}`,\n borderRadius: 8,\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.25)',\n backdropFilter: 'blur(8px)',\n fontFamily: theme.node.fontFamily,\n fontSize: 11,\n color: theme.breadcrumbs.textColor,\n pointerEvents: 'auto',\n userSelect: 'none',\n whiteSpace: 'nowrap',\n }}\n >\n {render ? (\n render({ node, theme, patch, deleteNode })\n ) : (\n <DefaultToolbarContent\n node={node}\n theme={theme}\n onPatch={patch}\n onDelete={deleteNode}\n />\n )}\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Default content\n// ---------------------------------------------------------------------------\n\ninterface DefaultToolbarContentProps {\n node: ResolvedNode\n theme: CanvasTheme\n onPatch: (update: NodeUpdate) => void\n onDelete: () => void\n}\n\nfunction DefaultToolbarContent({\n node,\n theme,\n onPatch,\n onDelete,\n}: DefaultToolbarContentProps) {\n const groups = useMemo(() => getNodeActions(theme), [theme])\n\n return (\n <>\n {groups.map((group, i) => (\n <React.Fragment key={group.id}>\n {i > 0 && <Divider theme={theme} />}\n <ActionGroupView\n group={group}\n node={node}\n theme={theme}\n onPatch={onPatch}\n />\n </React.Fragment>\n ))}\n <Divider theme={theme} />\n <DeleteButton theme={theme} onDelete={onDelete} />\n </>\n )\n}\n\nfunction Divider({ theme }: { theme: CanvasTheme }) {\n return (\n <div\n style={{\n width: 1,\n alignSelf: 'stretch',\n background: theme.breadcrumbs.separatorColor,\n margin: `0 ${BUTTON_GAP / 2}px`,\n }}\n />\n )\n}\n\ninterface ActionGroupViewProps {\n group: NodeActionGroup\n node: ResolvedNode\n theme: CanvasTheme\n onPatch: (update: NodeUpdate) => void\n}\n\nfunction ActionGroupView({ group, node, theme, onPatch }: ActionGroupViewProps) {\n const actions = filterActionsForNode(group, node)\n if (actions.length === 0) return null\n\n const kind = group.kind ?? 'buttons'\n\n if (kind === 'menu') {\n return <MenuGroup group={group} actions={actions} node={node} theme={theme} onPatch={onPatch} />\n }\n\n return (\n <div\n title={group.label}\n style={{ display: 'flex', alignItems: 'center', gap: BUTTON_GAP }}\n >\n {actions.map((action) => {\n const handleClick = () => {\n const patch = resolveActionPatch(action, node)\n onPatch(patch)\n }\n const active = action.isActive?.(node) ?? false\n if (kind === 'swatches') {\n return (\n <SwatchButton\n key={action.id}\n action={action}\n active={active}\n theme={theme}\n onClick={handleClick}\n />\n )\n }\n return (\n <IconButton\n key={action.id}\n action={action}\n active={active}\n theme={theme}\n onClick={handleClick}\n />\n )\n })}\n </div>\n )\n}\n\nfunction SwatchButton({\n action,\n active,\n theme,\n onClick,\n}: {\n action: NodeAction\n active: boolean\n theme: CanvasTheme\n onClick: () => void\n}) {\n const color = action.swatch ?? theme.node.labelColor\n return (\n <button\n type=\"button\"\n title={action.label}\n onClick={onClick}\n style={{\n width: SWATCH_SIZE,\n height: SWATCH_SIZE,\n borderRadius: '50%',\n background: color,\n border: active\n ? `2px solid ${theme.breadcrumbs.activeColor}`\n : `1px solid ${theme.breadcrumbs.separatorColor}`,\n padding: 0,\n cursor: 'pointer',\n outline: 'none',\n boxShadow: active ? `0 0 0 2px ${theme.background}` : 'none',\n transition: 'transform 80ms ease-out',\n }}\n onMouseDown={(e) => e.preventDefault()}\n />\n )\n}\n\nfunction IconButton({\n action,\n active,\n theme,\n onClick,\n}: {\n action: NodeAction\n active: boolean\n theme: CanvasTheme\n onClick: () => void\n}) {\n return (\n <button\n type=\"button\"\n title={action.label}\n onClick={onClick}\n style={{\n width: BUTTON_SIZE,\n height: BUTTON_SIZE,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: active\n ? theme.breadcrumbs.separatorColor\n : 'transparent',\n border: `1px solid ${\n active ? theme.breadcrumbs.activeColor : theme.breadcrumbs.separatorColor\n }`,\n borderRadius: 6,\n color: active\n ? theme.breadcrumbs.activeColor\n : theme.breadcrumbs.textColor,\n cursor: 'pointer',\n padding: 0,\n outline: 'none',\n }}\n onMouseDown={(e) => e.preventDefault()}\n >\n {action.icon ? (\n <svg width={16} height={16} viewBox=\"0 0 16 16\">\n <NodeIcon\n icon={action.icon}\n x={0}\n y={0}\n size={16}\n color={\n active\n ? theme.breadcrumbs.activeColor\n : theme.breadcrumbs.textColor\n }\n opacity={1}\n customIcons={theme.icons}\n />\n </svg>\n ) : action.swatch ? (\n <span\n style={{\n width: 10,\n height: 10,\n borderRadius: '50%',\n background: action.swatch,\n }}\n />\n ) : (\n <span style={{ fontSize: 10 }}>{action.label.slice(0, 2)}</span>\n )}\n </button>\n )\n}\n\ninterface MenuGroupProps {\n group: NodeActionGroup\n actions: NodeAction[]\n node: ResolvedNode\n theme: CanvasTheme\n onPatch: (update: NodeUpdate) => void\n}\n\nfunction MenuGroup({ group, actions, node, theme, onPatch }: MenuGroupProps) {\n const [open, setOpen] = useState(false)\n const wrapRef = useRef<HTMLDivElement | null>(null)\n\n // Click-outside to close\n useEffect(() => {\n if (!open) return\n const onDown = (e: MouseEvent) => {\n if (!wrapRef.current?.contains(e.target as Node)) setOpen(false)\n }\n window.addEventListener('mousedown', onDown)\n return () => window.removeEventListener('mousedown', onDown)\n }, [open])\n\n const active = actions.find((a) => a.isActive?.(node))\n const triggerLabel = active?.label ?? group.label ?? 'Menu'\n const triggerIcon = active?.icon ?? undefined\n\n return (\n <div ref={wrapRef} style={{ position: 'relative' }}>\n <button\n type=\"button\"\n title={group.label}\n onClick={() => setOpen((v) => !v)}\n style={{\n height: BUTTON_SIZE,\n display: 'inline-flex',\n alignItems: 'center',\n gap: 6,\n padding: '0 10px',\n background: 'transparent',\n border: `1px solid ${theme.breadcrumbs.separatorColor}`,\n borderRadius: 6,\n color: theme.breadcrumbs.textColor,\n cursor: 'pointer',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n outline: 'none',\n }}\n onMouseDown={(e) => e.preventDefault()}\n >\n {triggerIcon && (\n <svg width={14} height={14} viewBox=\"0 0 16 16\">\n <NodeIcon\n icon={triggerIcon}\n x={0}\n y={0}\n size={14}\n color={theme.breadcrumbs.textColor}\n opacity={1}\n customIcons={theme.icons}\n />\n </svg>\n )}\n <span>{triggerLabel}</span>\n <span style={{ opacity: 0.6, fontSize: 8 }}>▾</span>\n </button>\n\n {open && (\n <div\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n marginTop: 4,\n minWidth: 160,\n padding: 4,\n background: theme.breadcrumbs.background,\n border: `1px solid ${theme.breadcrumbs.separatorColor}`,\n borderRadius: 6,\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.25)',\n backdropFilter: 'blur(8px)',\n zIndex: 1,\n }}\n >\n {actions.map((action) => {\n const isActive = action.isActive?.(node) ?? false\n return (\n <button\n key={action.id}\n type=\"button\"\n onClick={() => {\n onPatch(resolveActionPatch(action, node))\n setOpen(false)\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n padding: '6px 8px',\n background: isActive\n ? theme.breadcrumbs.separatorColor\n : 'transparent',\n border: 'none',\n borderRadius: 4,\n color: isActive\n ? theme.breadcrumbs.activeColor\n : theme.breadcrumbs.textColor,\n cursor: 'pointer',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n textAlign: 'left',\n }}\n onMouseDown={(e) => e.preventDefault()}\n >\n {action.icon && (\n <svg width={14} height={14} viewBox=\"0 0 16 16\">\n <NodeIcon\n icon={action.icon}\n x={0}\n y={0}\n size={14}\n color={\n isActive\n ? theme.breadcrumbs.activeColor\n : theme.breadcrumbs.textColor\n }\n opacity={1}\n customIcons={theme.icons}\n />\n </svg>\n )}\n {action.swatch && (\n <span\n style={{\n width: 10,\n height: 10,\n borderRadius: '50%',\n background: action.swatch,\n flexShrink: 0,\n }}\n />\n )}\n <span>{action.label}</span>\n </button>\n )\n })}\n </div>\n )}\n </div>\n )\n}\n\nfunction DeleteButton({\n theme,\n onDelete,\n}: {\n theme: CanvasTheme\n onDelete: () => void\n}) {\n return (\n <button\n type=\"button\"\n title=\"Delete\"\n onClick={onDelete}\n onMouseDown={(e) => e.preventDefault()}\n style={{\n width: BUTTON_SIZE,\n height: BUTTON_SIZE,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'transparent',\n border: `1px solid ${theme.breadcrumbs.separatorColor}`,\n borderRadius: 6,\n color: theme.breadcrumbs.textColor,\n cursor: 'pointer',\n padding: 0,\n outline: 'none',\n }}\n >\n <svg width={DELETE_SIZE} height={DELETE_SIZE} viewBox=\"0 0 16 16\">\n <path\n d=\"M 3 5 L 13 5 M 6 5 L 6 3 L 10 3 L 10 5 M 5 5 L 5.5 14 L 10.5 14 L 11 5 M 7 7 L 7 12 M 9 7 L 9 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n )\n}\n"],"mappings":"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","names":["noop","children","array","render","create","init","timer","timeout","React","noop","children","React","frame","workInProgress","now","root","renderLanes","get","set","isHydrating","children","style","start","index","transition","thenableState","init","array","dispatch","create","noop","treeForkCount","selection","id","dispatchEvent","options","import_react","import_react","color","best","bestDist","id","import_react","import_react","id","start","children","import_react","import_react","import_react","transform","import_react","import_react","document","datum","selection","create","create","parseTypenames","window","dispatch_default","dispatch_default","select_default","root","selection","select_default","constant_default","constant_default","color","rgb","start","i","now","id","get","set","start","empty","interrupt_default","id","set","get","transition","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","attr_default","id","get","id","set","get","id","set","get","id","set","filter_default","merge_default","transition","id","set","on_default","get","id","remove_default","select_default","id","get","selectAll_default","id","children","inherit","get","Selection","selection_default","styleRemove","styleConstant","styleFunction","id","remove","set","style_default","textConstant","textFunction","text_default","inherit","get","id","set","id","select_default","selectAll_default","filter_default","merge_default","selection_default","on_default","attr_default","style_default","text_default","remove_default","id","transition_default","interrupt_default","transition_default","constant_default","transform","dispatch","identity","noevent_default","identity","transform","zoom_default","filter","selection","extent","transition","select_default","noevent_default","event","constant_default","zoom_default","selection","select_default","identity","transform","options","color","_jsx","import_react","_jsxs","_jsx","color","_jsxs","_jsx","_jsxs","_jsx","_jsxs","_jsx","_jsxs","_jsx","import_react","_jsx","_jsxs","_Fragment","_jsx","_jsxs","_Fragment","_jsx","import_react","_jsx","import_react","_jsx","import_react","_jsx","_jsxs","_jsxs","_jsx","_jsxs","_jsx","Viewport","next","_jsxs","_jsx","import_react","_jsx","_jsxs","React","import_react","addNode","_jsxs","_Fragment","_jsx","children","import_react","_jsxs","_jsx","import_react","render","_jsx","_jsxs","_Fragment","React","Divider","color","SystemCanvas","id","frame","addNode","now","_jsxs","_jsx","root","React"]}