@blinq_ai/widget 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","../../node_modules/secure-json-parse/index.js","../src/browser.ts","../src/widget-core.ts","../src/page-capabilities.ts","../src/page-tools.ts","../src/embed-shell.tsx","../../node_modules/@assistant-ui/tap/src/react/use-resource.ts","../../node_modules/@assistant-ui/tap/src/core/helpers/commit.ts","../../node_modules/@assistant-ui/tap/src/core/helpers/env.ts","../../node_modules/@assistant-ui/tap/src/core/helpers/execution-context.ts","../../node_modules/@assistant-ui/tap/src/core/helpers/callResourceFn.ts","../../node_modules/@assistant-ui/tap/src/core/ResourceFiber.ts","../../node_modules/@assistant-ui/tap/src/core/helpers/root.ts","../../node_modules/@assistant-ui/tap/src/core/resource.ts","../../node_modules/@assistant-ui/tap/src/core/withKey.ts","../../node_modules/@assistant-ui/tap/src/hooks/utils/tapHook.ts","../../node_modules/@assistant-ui/tap/src/hooks/tap-reducer.ts","../../node_modules/@assistant-ui/tap/src/hooks/tap-state.ts","../../node_modules/@assistant-ui/tap/src/hooks/utils/depsShallowEqual.ts","../../node_modules/@assistant-ui/tap/src/hooks/tap-effect.ts","../../node_modules/@assistant-ui/tap/src/hooks/tap-ref.ts","../../node_modules/@assistant-ui/tap/src/hooks/tap-const.ts","../../node_modules/@assistant-ui/tap/src/hooks/tap-memo.ts","../../node_modules/@assistant-ui/tap/src/hooks/tap-callback.ts","../../node_modules/@assistant-ui/tap/src/hooks/tap-effect-event.ts","../../node_modules/@assistant-ui/tap/src/hooks/tap-resource.ts","../../node_modules/@assistant-ui/tap/src/hooks/tap-resources.ts","../../node_modules/@assistant-ui/tap/src/core/scheduler.ts","../../node_modules/@assistant-ui/tap/src/tapResourceRoot.ts","../../node_modules/@assistant-ui/tap/src/core/context.ts","../../node_modules/@assistant-ui/store/src/utils/react-assistant-context.tsx","../../node_modules/@assistant-ui/store/src/utils/tap-client-stack-context.ts","../../node_modules/@assistant-ui/store/src/utils/BaseProxyHandler.ts","../../node_modules/@assistant-ui/store/src/wrapperResource.ts","../../node_modules/@assistant-ui/store/src/tapClientResource.ts","../../node_modules/@assistant-ui/store/src/utils/proxied-assistant-state.ts","../../node_modules/@assistant-ui/store/src/Derived.ts","../../node_modules/@assistant-ui/store/src/attachTransformScopes.ts","../../node_modules/@assistant-ui/store/src/utils/splitClients.ts","../../node_modules/@assistant-ui/store/src/types/events.ts","../../node_modules/@assistant-ui/store/src/utils/NotificationManager.ts","../../node_modules/@assistant-ui/store/src/utils/tap-assistant-context.ts","../../node_modules/@assistant-ui/store/src/useAui.ts","../../node_modules/@assistant-ui/store/src/useAuiState.ts","../../node_modules/@assistant-ui/store/src/useAuiEvent.ts","../../node_modules/use-effect-event/src/useEffectEvent.ts","../../node_modules/@assistant-ui/store/src/RenderChildrenWithAccessor.tsx","../../node_modules/@assistant-ui/store/src/tapClientLookup.ts","../../node_modules/zustand/esm/vanilla.mjs","../../node_modules/zustand/esm/react.mjs","../../node_modules/assistant-stream/src/utils/json/parse-partial-json-object.ts","../../node_modules/assistant-stream/src/utils/json/fix-json.ts","../../node_modules/nanoid/non-secure/index.js","../../node_modules/@assistant-ui/core/src/store/clients/suggestions.ts","../../node_modules/@assistant-ui/core/src/store/clients/chain-of-thought-client.ts","../../node_modules/@assistant-ui/core/src/model-context/types.ts","../../node_modules/@assistant-ui/core/src/utils/composite-context-provider.ts","../../node_modules/@assistant-ui/core/src/store/clients/model-context-client.ts","../../node_modules/@assistant-ui/core/src/react/client/Tools.ts","../../node_modules/@assistant-ui/core/src/react/client/DataRenderers.ts","../../node_modules/assistant-stream/src/core/tool/ToolResponse.ts","../../node_modules/@assistant-ui/core/src/react/providers/AttachmentByIndexProvider.tsx","../../node_modules/@assistant-ui/core/src/store/runtime-clients/tap-subscribable.ts","../../node_modules/@assistant-ui/core/src/store/runtime-clients/attachment-runtime-client.ts","../../node_modules/@assistant-ui/core/src/store/runtime-clients/message-part-runtime-client.ts","../../node_modules/@assistant-ui/core/src/store/runtime-clients/composer-runtime-client.ts","../../node_modules/@assistant-ui/core/src/store/runtime-clients/message-runtime-client.ts","../../node_modules/@assistant-ui/core/src/store/runtime-clients/thread-runtime-client.ts","../../node_modules/@assistant-ui/core/src/store/runtime-clients/thread-list-item-runtime-client.ts","../../node_modules/@assistant-ui/core/src/store/runtime-clients/thread-list-runtime-client.ts","../../node_modules/@assistant-ui/core/src/store/clients/runtime-adapter.ts","../../node_modules/@assistant-ui/core/src/react/providers/MessageByIndexProvider.tsx","../../node_modules/@assistant-ui/core/src/react/providers/PartByIndexProvider.tsx","../../node_modules/@assistant-ui/core/src/react/providers/TextMessagePartProvider.tsx","../../node_modules/@assistant-ui/core/src/react/providers/ChainOfThoughtByIndicesProvider.tsx","../../node_modules/@assistant-ui/core/src/react/providers/SuggestionByIndexProvider.tsx","../../node_modules/@assistant-ui/core/src/subscribable/subscribable.ts","../../node_modules/@assistant-ui/core/src/runtime/base/base-assistant-runtime-core.ts","../../node_modules/@assistant-ui/core/src/utils/text.ts","../../node_modules/@assistant-ui/core/src/utils/id.ts","../../node_modules/@assistant-ui/core/src/runtime/utils/auto-status.ts","../../node_modules/@assistant-ui/core/src/runtime/utils/thread-message-like.ts","../../node_modules/@assistant-ui/core/src/runtime/utils/message-repository.ts","../../node_modules/@assistant-ui/core/src/adapters/attachment.ts","../../node_modules/@assistant-ui/core/src/runtime/base/base-composer-runtime-core.ts","../../node_modules/@assistant-ui/core/src/runtime/base/default-thread-composer-runtime-core.ts","../../node_modules/@assistant-ui/core/src/runtime/base/default-edit-composer-runtime-core.ts","../../node_modules/@assistant-ui/core/src/runtime/base/base-thread-runtime-core.ts","../../node_modules/@assistant-ui/core/src/runtime/api/thread-list-item-runtime.ts","../../node_modules/@assistant-ui/core/src/runtime/utils/external-store-message.ts","../../node_modules/@assistant-ui/core/src/runtime/api/attachment-runtime.ts","../../node_modules/@assistant-ui/core/src/runtime/api/composer-runtime.ts","../../node_modules/@assistant-ui/core/src/runtime/api/message-part-runtime.ts","../../node_modules/@assistant-ui/core/src/runtime/api/message-runtime.ts","../../node_modules/@assistant-ui/core/src/runtime/api/thread-runtime.ts","../../node_modules/@assistant-ui/core/src/runtime/api/thread-list-runtime.ts","../../node_modules/@assistant-ui/core/src/runtime/api/assistant-runtime.ts","../../node_modules/@assistant-ui/core/src/react/RuntimeAdapter.ts","../../node_modules/@assistant-ui/core/src/react/runtimes/RuntimeAdapterProvider.tsx","../../node_modules/@assistant-ui/core/src/react/runtimes/useExternalStoreRuntime.ts","../../node_modules/@assistant-ui/core/src/runtimes/external-store/external-store-thread-list-runtime-core.ts","../../node_modules/@assistant-ui/core/src/runtimes/external-store/thread-message-converter.ts","../../node_modules/@assistant-ui/core/src/runtimes/external-store/external-store-thread-runtime-core.ts","../../node_modules/@assistant-ui/core/src/runtimes/external-store/external-store-runtime-core.ts","../../node_modules/@assistant-ui/core/src/react/AssistantProvider.tsx","../../node_modules/@assistant-ui/core/src/react/primitives/thread/ThreadMessages.tsx","../../node_modules/@assistant-ui/core/src/react/primitives/message/MessageParts.tsx","../../node_modules/@assistant-ui/core/src/react/utils/getMessageQuote.ts","../../node_modules/zustand/esm/vanilla/shallow.mjs","../../node_modules/zustand/esm/react/shallow.mjs","../../node_modules/@assistant-ui/core/src/react/primitives/message/MessageQuote.tsx","../../node_modules/@assistant-ui/core/src/react/primitives/message/MessageAttachments.tsx","../../node_modules/@assistant-ui/core/src/react/primitives/thread/ThreadSuggestions.tsx","../../node_modules/@assistant-ui/core/src/react/primitive-hooks/useSuggestionTrigger.ts","../../node_modules/@assistant-ui/core/src/react/primitive-hooks/useMessageError.ts","../../node_modules/@assistant-ui/react/src/legacy-runtime/AssistantRuntimeProvider.tsx","../../node_modules/@assistant-ui/react/src/context/providers/ThreadViewportProvider.tsx","../../node_modules/@assistant-ui/react/src/context/stores/ThreadViewport.ts","../../node_modules/@assistant-ui/react/src/context/react/ThreadViewportContext.ts","../../node_modules/@assistant-ui/react/src/context/react/utils/createContextHook.ts","../../node_modules/@assistant-ui/react/src/context/react/utils/createContextStoreHook.ts","../../node_modules/@assistant-ui/react/src/context/ReadonlyStore.ts","../../node_modules/@assistant-ui/react/src/devtools/DevToolsHooks.ts","../../node_modules/@assistant-ui/react/src/context/react/utils/useRuntimeState.ts","../../node_modules/@assistant-ui/react/src/context/react/utils/ensureBinding.ts","../../node_modules/@assistant-ui/react/src/context/react/utils/createStateHookForRuntime.ts","../../node_modules/@assistant-ui/react/src/legacy-runtime/hooks/MessageContext.ts","../../node_modules/@radix-ui/react-compose-refs/src/compose-refs.tsx","../../node_modules/@assistant-ui/react/src/utils/Primitive.tsx","../../node_modules/@radix-ui/react-primitive/src/primitive.tsx","../../node_modules/@radix-ui/react-slot/src/slot.tsx","../../node_modules/@radix-ui/primitive/src/primitive.tsx","../../node_modules/@assistant-ui/react/src/utils/createActionButton.tsx","../../node_modules/@radix-ui/react-use-callback-ref/src/use-callback-ref.tsx","../../node_modules/radix-ui/node_modules/@radix-ui/react-slot/src/slot.tsx","../../node_modules/@assistant-ui/react/src/primitives/message/MessageIf.ts","../../node_modules/@assistant-ui/react/src/utils/hooks/useOnScrollToBottom.ts","../../node_modules/@assistant-ui/react/src/primitives/messagePart/MessagePartText.tsx","../../node_modules/@assistant-ui/react/src/primitives/messagePart/useMessagePartText.ts","../../node_modules/@assistant-ui/react/src/utils/smooth/useSmooth.ts","../../node_modules/@assistant-ui/react/src/utils/smooth/SmoothContext.tsx","../../node_modules/@assistant-ui/react/src/primitives/messagePart/MessagePartImage.tsx","../../node_modules/@assistant-ui/react/src/primitives/messagePart/useMessagePartImage.ts","../../node_modules/@assistant-ui/react/src/primitives/messagePart/MessagePartInProgress.ts","../../node_modules/@assistant-ui/react/src/primitives/message.ts","../../node_modules/@assistant-ui/react/src/primitives/message/MessageRoot.tsx","../../node_modules/@assistant-ui/react/src/utils/hooks/useManagedRef.ts","../../node_modules/@assistant-ui/react/src/utils/hooks/useSizeHandle.ts","../../node_modules/@assistant-ui/react/src/primitives/thread/ThreadViewportSlack.tsx","../../node_modules/@assistant-ui/react/src/primitives/message/MessageParts.tsx","../../node_modules/@assistant-ui/react/src/primitives/message/MessageError.ts","../../node_modules/@assistant-ui/react/src/primitives/message/MessagePartsGrouped.tsx","../../node_modules/@assistant-ui/react/src/primitives/thread.ts","../../node_modules/@assistant-ui/react/src/primitives/thread/ThreadRoot.tsx","../../node_modules/@assistant-ui/react/src/primitives/thread/ThreadEmpty.ts","../../node_modules/@assistant-ui/react/src/primitives/thread/ThreadIf.ts","../../node_modules/@assistant-ui/react/src/primitives/thread/ThreadViewport.tsx","../../node_modules/@assistant-ui/react/src/primitives/thread/useThreadViewportAutoScroll.ts","../../node_modules/@assistant-ui/react/src/utils/hooks/useOnResizeContent.ts","../../node_modules/@assistant-ui/react/src/primitives/thread/ThreadViewportFooter.tsx","../../node_modules/@assistant-ui/react/src/primitives/thread/ThreadScrollToBottom.ts","../../node_modules/@assistant-ui/react/src/primitives/thread/ThreadSuggestion.ts","../src/voice-input.ts","../src/embed-styles.ts"],"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.4\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * 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.4\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$140) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$140);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n if (\n 0 !== (root & 4) &&\n ((root = firstChild.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$139) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$139\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$141 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$141, \"\"), (hostParentFiber.flags &= -33));\n var before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$142, parent$141);\n break;\n case 3:\n case 4:\n var parent$143 = hostParentFiber.stateNode.containerInfo,\n before$144 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$144,\n parent$143\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n ) {\n suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n };\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n );\n var timeoutOffset =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0;\n timeoutOffset = waitForCommitToBeReady(\n suspendedCommitReason,\n timeoutOffset\n );\n if (null !== timeoutOffset) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = timeoutOffset(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$167) {\n handleThrow(root, thrownValue$167);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$170 = firstScheduledRoot; null !== root$170; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$170.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$170.suspendedLanes,\n pingedLanes = root$170.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$170,\n root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$170.cancelPendingCommit ||\n -1 !== root$170.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n root$170 = root$170.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1577 = 0;\n i$jscomp$inline_1577 < simpleEventPluginEvents.length;\n i$jscomp$inline_1577++\n) {\n var eventName$jscomp$inline_1578 =\n simpleEventPluginEvents[i$jscomp$inline_1577],\n domEventName$jscomp$inline_1579 =\n eventName$jscomp$inline_1578.toLowerCase(),\n capitalizedEvent$jscomp$inline_1580 =\n eventName$jscomp$inline_1578[0].toUpperCase() +\n eventName$jscomp$inline_1578.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1579,\n \"on\" + capitalizedEvent$jscomp$inline_1580\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$184 = props[hasSrc];\n if (null != propValue$184)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$184;\n break;\n case \"type\":\n propValue = propValue$184;\n break;\n case \"checked\":\n checked = propValue$184;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$184;\n break;\n case \"value\":\n propKey = propValue$184;\n break;\n case \"defaultValue\":\n defaultValue = propValue$184;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$184)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$184, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$184 in props)\n props.hasOwnProperty(propValue$184) &&\n ((hasSrc = props[propValue$184]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$184,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$201 in nextProps) {\n var propKey = nextProps[propKey$201];\n lastProp = lastProps[propKey$201];\n if (\n nextProps.hasOwnProperty(propKey$201) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$201) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$201,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$201 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$201 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$201\n ? updateOptions(domElement, !!lastProps, propKey$201, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$201 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$201 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$201, propKey);\n return;\n case \"option\":\n for (var propKey$217 in lastProps)\n if (\n ((propKey$201 = lastProps[propKey$217]),\n lastProps.hasOwnProperty(propKey$217) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$217))\n )\n switch (propKey$217) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$217,\n null,\n nextProps,\n propKey$201\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$201 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$201 &&\n \"function\" !== typeof propKey$201 &&\n \"symbol\" !== typeof propKey$201;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$222 in lastProps)\n (propKey$201 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$222) &&\n setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);\n for (checked in nextProps)\n if (\n ((propKey$201 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$201)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$227 in lastProps)\n (propKey$201 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n void 0 !== propKey$201 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$227,\n void 0,\n nextProps,\n propKey$201\n );\n for (defaultChecked in nextProps)\n (propKey$201 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$201 === propKey ||\n (void 0 === propKey$201 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$201,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$232 in lastProps)\n (propKey$201 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);\n for (lastProp in nextProps)\n (propKey$201 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$201 === propKey ||\n (null == propKey$201 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$243 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$244 = styles$243.get(type);\n resource$244 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$244 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$243.set(type, resource$244),\n (styles$243 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$243._p &&\n ((resource$244.instance = styles$243),\n (resource$244.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$243 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$244.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$244;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$249 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$249)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$249),\n markNodeAsHoistable(instance$249),\n instance$249\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$249 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$249);\n var linkInstance = instance$249;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$249, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$249, props.precedence, hoistableRoot);\n return (resource.instance = instance$249);\n case \"script\":\n instance$249 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$249)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$249)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;\nif (\n \"19.2.4\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.4\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2347 = {\n bundleType: 0,\n version: \"19.2.4\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.4\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2348.isDisabled &&\n hook$jscomp$inline_2348.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2348.inject(\n internals$jscomp$inline_2347\n )),\n (injectedHook = hook$jscomp$inline_2348);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.4\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","/**\n * @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","'use strict'\n\nconst hasBuffer = typeof Buffer !== 'undefined'\nconst suspectProtoRx = /\"(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])\"\\s*:/\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/\n\n/**\n * @description Internal parse function that parses JSON text with security checks.\n * @private\n * @param {string|Buffer} text - The JSON text string or Buffer to parse.\n * @param {Function} [reviver] - The JSON.parse() optional reviver argument.\n * @param {import('./types').ParseOptions} [options] - Optional configuration object.\n * @returns {*} The parsed object.\n * @throws {SyntaxError} If a forbidden prototype property is found and `options.protoAction` or\n * `options.constructorAction` is `'error'`.\n */\nfunction _parse (text, reviver, options) {\n // Normalize arguments\n if (options == null) {\n if (reviver !== null && typeof reviver === 'object') {\n options = reviver\n reviver = undefined\n }\n }\n\n if (hasBuffer && Buffer.isBuffer(text)) {\n text = text.toString()\n }\n\n // BOM checker\n if (text && text.charCodeAt(0) === 0xFEFF) {\n text = text.slice(1)\n }\n\n // Parse normally, allowing exceptions\n const obj = JSON.parse(text, reviver)\n\n // Ignore null and non-objects\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n const protoAction = (options && options.protoAction) || 'error'\n const constructorAction = (options && options.constructorAction) || 'error'\n\n // options: 'error' (default) / 'remove' / 'ignore'\n if (protoAction === 'ignore' && constructorAction === 'ignore') {\n return obj\n }\n\n if (protoAction !== 'ignore' && constructorAction !== 'ignore') {\n if (suspectProtoRx.test(text) === false && suspectConstructorRx.test(text) === false) {\n return obj\n }\n } else if (protoAction !== 'ignore' && constructorAction === 'ignore') {\n if (suspectProtoRx.test(text) === false) {\n return obj\n }\n } else {\n if (suspectConstructorRx.test(text) === false) {\n return obj\n }\n }\n\n // Scan result for proto keys\n return filter(obj, { protoAction, constructorAction, safe: options && options.safe })\n}\n\n/**\n * @description Scans and filters an object for forbidden prototype properties.\n * @param {Object} obj - The object being scanned.\n * @param {import('./types').ParseOptions} [options] - Optional configuration object.\n * @returns {Object|null} The filtered object, or `null` if safe mode is enabled and issues are found.\n * @throws {SyntaxError} If a forbidden prototype property is found and `options.protoAction` or\n * `options.constructorAction` is `'error'`.\n */\nfunction filter (obj, { protoAction = 'error', constructorAction = 'error', safe } = {}) {\n let next = [obj]\n\n while (next.length) {\n const nodes = next\n next = []\n\n for (const node of nodes) {\n if (protoAction !== 'ignore' && Object.prototype.hasOwnProperty.call(node, '__proto__')) { // Avoid calling node.hasOwnProperty directly\n if (safe === true) {\n return null\n } else if (protoAction === 'error') {\n throw new SyntaxError('Object contains forbidden prototype property')\n }\n\n delete node.__proto__ // eslint-disable-line no-proto\n }\n\n if (constructorAction !== 'ignore' &&\n Object.prototype.hasOwnProperty.call(node, 'constructor') &&\n node.constructor !== null &&\n typeof node.constructor === 'object' &&\n Object.prototype.hasOwnProperty.call(node.constructor, 'prototype')) { // Avoid calling node.hasOwnProperty directly\n if (safe === true) {\n return null\n } else if (constructorAction === 'error') {\n throw new SyntaxError('Object contains forbidden prototype property')\n }\n\n delete node.constructor\n }\n\n for (const key in node) {\n const value = node[key]\n if (value && typeof value === 'object') {\n next.push(value)\n }\n }\n }\n }\n return obj\n}\n\n/**\n * @description Parses a given JSON-formatted text into an object.\n * @param {string|Buffer} text - The JSON text string or Buffer to parse.\n * @param {Function} [reviver] - The `JSON.parse()` optional reviver argument, or options object.\n * @param {import('./types').ParseOptions} [options] - Optional configuration object.\n * @returns {*} The parsed object.\n * @throws {SyntaxError} If the JSON text is malformed or contains forbidden prototype properties\n * when `options.protoAction` or `options.constructorAction` is `'error'`.\n */\nfunction parse (text, reviver, options) {\n const { stackTraceLimit } = Error\n Error.stackTraceLimit = 0\n try {\n return _parse(text, reviver, options)\n } finally {\n Error.stackTraceLimit = stackTraceLimit\n }\n}\n\n/**\n * @description Safely parses a given JSON-formatted text into an object.\n * @param {string|Buffer} text - The JSON text string or Buffer to parse.\n * @param {Function} [reviver] - The `JSON.parse()` optional reviver argument.\n * @returns {*|null|undefined} The parsed object, `null` if security issues found, or `undefined` on parse error.\n */\nfunction safeParse (text, reviver) {\n const { stackTraceLimit } = Error\n Error.stackTraceLimit = 0\n try {\n return _parse(text, reviver, { safe: true })\n } catch {\n return undefined\n } finally {\n Error.stackTraceLimit = stackTraceLimit\n }\n}\n\nmodule.exports = parse\nmodule.exports.default = parse\nmodule.exports.parse = parse\nmodule.exports.safeParse = safeParse\nmodule.exports.scan = filter\n","import {\n type BlinqWidgetInitOptions,\n type BlinqWidgetConfigFile,\n BlinqWidget,\n init,\n initFromConfig,\n} from \"./index\"\nimport { EMBED_WIDGET_STYLES } from \"./embed-styles\"\n\ndeclare global {\n interface Window {\n BlinqWidget?: {\n init: typeof init\n initFromConfig: typeof initFromConfig\n }\n }\n}\n\nconst EMBED_TAG_NAME = \"blinq-widget\"\n\nfunction shadowRootStyles() {\n return EMBED_WIDGET_STYLES\n}\n\nclass BlinqWidgetElement extends HTMLElement {\n private widget: BlinqWidget | null = null\n private widgetPromise: Promise<BlinqWidget> | null = null\n private mountEl: HTMLDivElement | null = null\n\n connectedCallback() {\n if (this.widget || this.widgetPromise) {\n return\n }\n\n const publicToken = this.getAttribute(\"public-token\")?.trim()\n if (!publicToken) {\n console.error(\"Blinq widget: missing required public-token attribute.\")\n return\n }\n\n const root = this.shadowRoot ?? this.attachShadow({ mode: \"open\" })\n root.replaceChildren()\n\n const style = document.createElement(\"style\")\n style.textContent = shadowRootStyles()\n\n const mount = document.createElement(\"div\")\n mount.dataset.blinqMount = \"true\"\n root.append(style, mount)\n this.mountEl = mount\n\n const options: BlinqWidgetInitOptions = {\n publicToken,\n apiBaseUrl: this.getAttribute(\"api-base-url\")?.trim() || undefined,\n mcpEndpoint: this.getAttribute(\"mcp-endpoint\")?.trim() || undefined,\n mount,\n }\n\n this.widgetPromise = init(options)\n .then((widget) => {\n this.widget = widget\n return widget\n })\n .catch((error) => {\n console.error(\"Blinq widget failed to initialize.\", error)\n throw error\n })\n .finally(() => {\n this.widgetPromise = null\n })\n }\n\n disconnectedCallback() {\n this.widget?.destroy()\n void this.widget?.endSession()\n this.widget = null\n this.widgetPromise = null\n this.mountEl = null\n }\n}\n\nfunction defineBlinqWidgetElement() {\n if (typeof window === \"undefined\" || typeof customElements === \"undefined\") {\n return\n }\n\n if (!customElements.get(EMBED_TAG_NAME)) {\n customElements.define(EMBED_TAG_NAME, BlinqWidgetElement)\n }\n}\n\nif (typeof window !== \"undefined\") {\n defineBlinqWidgetElement()\n window.BlinqWidget = {\n init,\n initFromConfig,\n }\n}\n\nexport { init, initFromConfig, BlinqWidgetElement }\nexport type { BlinqWidgetConfigFile, BlinqWidgetInitOptions }\n","import * as React from \"react\"\nimport { createRoot, type Root } from \"react-dom/client\"\n\nimport {\n PageToolRegistry,\n collectNormalizedPageContext,\n detectNativeWebMcpSupport,\n type PageHighlightTarget,\n type RuntimeCapability,\n type RuntimeMode,\n type ToolExecutionOutcome,\n} from \"./page-tools\"\nimport {\n WidgetEmbedShell,\n type WidgetActionConversationItem,\n type WidgetConversationItem,\n type WidgetPlanConversationItem,\n type WidgetShellState,\n} from \"./embed-shell\"\nimport { VoiceInputController } from \"./voice-input\"\n\nexport interface BlinqWidgetInitOptions {\n publicToken: string\n apiBaseUrl?: string\n mcpEndpoint?: string\n mount?: string | HTMLElement\n}\n\nexport type BlinqWidgetConfigFile = BlinqWidgetInitOptions\n\ninterface WidgetConfig {\n widget_id: string\n name: string\n ai_persona_name: string\n ai_persona_prompt: string\n theme_color: string\n position: \"bottom-right\" | \"bottom-left\"\n is_active: boolean\n allowed_domain: string\n}\n\ninterface InitResponse {\n session_id: string\n session_token: string\n widget_config: WidgetConfig\n runtime: RuntimeCapability\n resumed?: boolean\n active_run?: GoalRunPreview | null\n}\n\ninterface SseEnvelope {\n event: string\n data: string\n}\n\ninterface PublicToolRequestPayload {\n tool_call_id: string\n goal_run_id: string\n step_id: string\n step_index: number\n tool_name: string\n display_name: string\n arguments: Record<string, unknown>\n requires_confirmation: boolean\n target_summary: string\n}\n\ninterface GoalStepPreview {\n id: string\n index: number\n kind: string\n title: string\n status: string\n target_summary?: string | null\n}\n\ninterface GoalRunPreview {\n id: string\n goal: string\n goal_kind: string\n language: string\n status: string\n current_step_index: number\n total_steps: number\n summary?: string | null\n progress_label?: string | null\n status_reason?: string | null\n expected_route?: string | null\n loop_guarded?: boolean\n requires_approval?: boolean\n steps: GoalStepPreview[]\n}\n\ninterface GoalProgressPayload {\n run: GoalRunPreview\n label: string\n}\n\ninterface PublicStatusPayload {\n phase:\n | \"thinking\"\n | \"searching_knowledge\"\n | \"searching_site\"\n | \"planning\"\n | \"awaiting_approval\"\n | \"executing_plan\"\n label: string\n}\n\ninterface HighlightEventPayload {\n targets: PageHighlightTarget[]\n reason?: string\n}\n\ninterface ChatHistoryEntry {\n role: \"user\" | \"assistant\"\n text: string\n}\n\nexport interface BlinqWidgetRuntimeStatus extends RuntimeCapability {\n message: string\n}\n\nconst DEFAULT_API_BASE_URL = \"http://localhost:8000\"\nconst STORAGE_KEY = \"blinq-widget-fingerprint\"\nconst HISTORY_STORAGE_PREFIX = \"blinq-widget-history\"\nconst MINIMIZED_STORAGE_PREFIX = \"blinq-widget-minimized\"\nconst SESSION_STORAGE_PREFIX = \"blinq-widget-session\"\nconst MAX_STORED_HISTORY = 30\nconst MAX_HISTORY_FOR_REQUEST = 12\nconst DEFAULT_GREETING =\n \"Blinq подключен. Спросите про текущую страницу, настройку платформы или следующий шаг.\"\n\nfunction isBrowser() {\n return typeof window !== \"undefined\" && typeof document !== \"undefined\"\n}\n\nfunction resolveMount(mount?: string | HTMLElement): HTMLElement {\n if (!isBrowser()) {\n throw new Error(\"Blinq можно подключить только в браузере\")\n }\n if (mount instanceof HTMLElement) {\n return mount\n }\n if (typeof mount === \"string\") {\n const target = document.querySelector<HTMLElement>(mount)\n if (!target) {\n throw new Error(`Не найден mount-элемент: ${mount}`)\n }\n return target\n }\n return document.body\n}\n\nfunction getOrCreateFingerprint() {\n if (!isBrowser()) {\n return \"server-widget-user\"\n }\n const existing = window.localStorage.getItem(STORAGE_KEY)\n if (existing) {\n return existing\n }\n const next = `fingerprint_${crypto.randomUUID()}`\n window.localStorage.setItem(STORAGE_KEY, next)\n return next\n}\n\nfunction runtimeMessage(mode: RuntimeMode) {\n if (mode === \"read-only-fallback\") {\n return \"Готов объяснить текущую страницу и подсказать следующий шаг.\"\n }\n return \"Готов помочь с онбордингом и вопросами по платформе.\"\n}\n\nfunction normalizedRouteFromUrl(value: string) {\n try {\n const url = new URL(value, window.location.origin)\n const path = url.pathname || \"/\"\n return path === \"\" ? \"/\" : path\n } catch {\n return \"/\"\n }\n}\n\nasync function parseSseStream(\n stream: ReadableStream<Uint8Array>,\n onEvent: (event: SseEnvelope) => void\n) {\n const reader = stream.getReader()\n const decoder = new TextDecoder()\n let buffer = \"\"\n let currentEvent = \"message\"\n let currentData = \"\"\n\n while (true) {\n const { done, value } = await reader.read()\n if (done) {\n break\n }\n buffer += decoder.decode(value, { stream: true })\n const chunks = buffer.split(\"\\n\")\n buffer = chunks.pop() ?? \"\"\n\n for (const line of chunks) {\n if (line.startsWith(\"event:\")) {\n currentEvent = line.slice(6).trim()\n } else if (line.startsWith(\"data:\")) {\n currentData += line.slice(5).trim()\n } else if (line.trim() === \"\") {\n if (currentData) {\n onEvent({ event: currentEvent, data: currentData })\n }\n currentEvent = \"message\"\n currentData = \"\"\n }\n }\n }\n\n if (currentData) {\n onEvent({ event: currentEvent, data: currentData })\n }\n}\n\nfunction normalizedConfig(\n config: BlinqWidgetConfigFile | { default: BlinqWidgetConfigFile }\n): BlinqWidgetConfigFile {\n if (\"default\" in config) {\n return config.default\n }\n return config as BlinqWidgetConfigFile\n}\n\nfunction createConversationId(prefix: string) {\n return `${prefix}_${crypto.randomUUID()}`\n}\n\nfunction normalizeAssistantStreamChunk(currentText: string, nextChunk: string) {\n if (!currentText) {\n return nextChunk.replace(/^\\s+/, \"\")\n }\n return nextChunk\n}\n\nfunction normalizeAssistantFinalText(text: string) {\n return text.replace(/^\\s+/, \"\")\n}\n\nexport class BlinqWidget {\n private readonly options: BlinqWidgetInitOptions\n private readonly apiBaseUrl: string\n private sessionId: string | null = null\n private sessionToken: string | null = null\n private widgetConfig: WidgetConfig | null = null\n private runtimeStatus: BlinqWidgetRuntimeStatus | null = null\n private registry: PageToolRegistry | null = null\n private root: HTMLElement | null = null\n private reactRoot: Root | null = null\n private voiceController: VoiceInputController | null = null\n private history: ChatHistoryEntry[] = []\n private items: WidgetConversationItem[] = []\n private minimized = false\n private isSending = false\n private inputValue = \"\"\n private statusText = \"Проверяем доступные действия страницы.\"\n private voiceSupported = false\n private voiceListening = false\n private voiceWaveform: number[] = []\n private voiceDurationMs = 0\n private voiceStartedAt: number | null = null\n private lastVoiceSampleAt = 0\n private confirmResolve: ((value: boolean) => void) | null = null\n private confirmItemId: string | null = null\n private activeRun: GoalRunPreview | null = null\n private pendingAssistantIndicator = false\n private executedToolCounts = new Map<string, number>()\n private lastAutoResumeKey: string | null = null\n private readonly shellHandlers = {\n onOpen: () => this.setMinimized(false),\n onCollapse: () => this.setMinimized(true),\n onInputChange: (value: string) => {\n this.inputValue = value\n this.renderReactApp()\n },\n onSubmit: () => {\n void this.submitComposerMessage()\n },\n onToggleVoice: () => this.toggleVoiceInput(),\n onApproveAction: (id: string) => {\n if (this.confirmItemId === id) {\n this.resolveConfirmation(true)\n }\n },\n onDeclineAction: (id: string) => {\n if (this.confirmItemId === id) {\n this.resolveConfirmation(false)\n }\n },\n onApprovePlan: () => {\n void this.respondToPlan(true)\n },\n onDeclinePlan: () => {\n void this.respondToPlan(false)\n },\n }\n\n constructor(options: BlinqWidgetInitOptions) {\n this.options = options\n this.apiBaseUrl = options.apiBaseUrl ?? DEFAULT_API_BASE_URL\n }\n\n async init() {\n await this.startSession()\n if (isBrowser()) {\n this.restoreHistory()\n this.restoreMinimizedState()\n this.restoreConversationView()\n this.render()\n this.setupVoiceInput()\n this.registry = new PageToolRegistry(this.confirmToolExecution.bind(this))\n const nativeRegistered = await this.registry.registerNativeTools()\n this.syncRuntimeStatus(nativeRegistered)\n if (this.shouldAutoResumeActiveRun()) {\n window.setTimeout(() => {\n void this.continueActiveRun()\n }, 60)\n }\n }\n return this\n }\n\n getRuntimeStatus() {\n return this.runtimeStatus\n }\n\n destroy() {\n this.voiceController?.destroy()\n this.registry?.destroy()\n this.voiceController = null\n this.registry = null\n this.reactRoot?.unmount()\n this.reactRoot = null\n this.root?.remove()\n this.root = null\n }\n\n private currentState(): WidgetShellState {\n return {\n minimized: this.minimized,\n assistantName: this.widgetConfig?.ai_persona_name ?? \"Blinq Ассистент\",\n runtimeLabel: \"webmcp://embedded\",\n statusText: this.statusText,\n showThinkingIndicator: this.pendingAssistantIndicator,\n inputValue: this.inputValue,\n accentColor: \"#111111\",\n side: this.widgetConfig?.position === \"bottom-left\" ? \"left\" : \"right\",\n isSending: this.isSending,\n voiceSupported: this.voiceSupported,\n voiceListening: this.voiceListening,\n voiceWaveform: this.voiceWaveform,\n voiceDurationMs: this.voiceDurationMs,\n items: this.items,\n }\n }\n\n private renderReactApp() {\n if (!this.reactRoot) {\n return\n }\n\n this.reactRoot.render(\n React.createElement(WidgetEmbedShell, {\n state: this.currentState(),\n ...this.shellHandlers,\n })\n )\n }\n\n private async startSession() {\n const response = await fetch(`${this.apiBaseUrl}/pub/init`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n public_token: this.options.publicToken,\n domain: window.location.hostname,\n page_url: window.location.href,\n user_fingerprint: getOrCreateFingerprint(),\n previous_session_id: this.restoreStoredSessionId(),\n client_capabilities: {\n secure_context: window.isSecureContext,\n native_webmcp_supported: detectNativeWebMcpSupport(),\n page_actions_supported: true,\n },\n }),\n })\n\n if (!response.ok) {\n const payload = (await response.json().catch(() => ({}))) as { detail?: string }\n throw new Error(payload.detail ?? \"Не удалось инициализировать виджет Blinq\")\n }\n\n const payload = (await response.json()) as InitResponse\n this.sessionId = payload.session_id\n this.sessionToken = payload.session_token\n this.widgetConfig = payload.widget_config\n this.activeRun = payload.active_run ?? null\n this.runtimeStatus = {\n ...payload.runtime,\n message: runtimeMessage(payload.runtime.mode),\n }\n this.persistSessionId()\n this.statusText = this.runtimeStatus.message\n }\n\n private render() {\n const mount = resolveMount(this.options.mount)\n if (!this.root) {\n this.root = document.createElement(\"div\")\n mount.appendChild(this.root)\n this.reactRoot = createRoot(this.root)\n }\n\n this.renderReactApp()\n }\n\n private preferredSpeechLanguage() {\n const htmlLang = document.documentElement.lang.trim()\n if (htmlLang) {\n return htmlLang\n }\n return navigator.language || \"ru-RU\"\n }\n\n private setupVoiceInput() {\n this.voiceController = new VoiceInputController({\n getLanguage: () => this.preferredSpeechLanguage(),\n onInterimTranscript: () => {},\n onFinalTranscript: (text) => {\n this.inputValue = text\n this.setStatus(\"Голос распознан. Проверьте текст и нажмите отправить.\")\n this.renderReactApp()\n },\n onListeningChange: (isListening) => {\n if (isListening) {\n this.startVoiceVisualization()\n } else {\n this.resetVoiceVisualization()\n }\n this.syncVoiceState()\n },\n onLevelChange: (level) => {\n this.updateVoiceVisualization(level)\n },\n onStatusChange: (status) => {\n this.setStatus(status)\n },\n onError: (message) => {\n this.setStatus(message)\n this.syncVoiceState()\n },\n })\n\n this.syncVoiceState()\n }\n\n private syncVoiceState() {\n this.voiceSupported = this.voiceController?.supported ?? false\n this.voiceListening = this.voiceController?.isListening ?? false\n if (!this.voiceListening) {\n this.resetVoiceVisualization()\n }\n this.renderReactApp()\n }\n\n private startVoiceVisualization() {\n this.voiceStartedAt = Date.now()\n this.voiceDurationMs = 0\n this.voiceWaveform = []\n this.lastVoiceSampleAt = 0\n }\n\n private resetVoiceVisualization() {\n this.voiceStartedAt = null\n this.voiceDurationMs = 0\n this.voiceWaveform = []\n this.lastVoiceSampleAt = 0\n }\n\n private updateVoiceVisualization(level: number) {\n if (!this.voiceListening) {\n return\n }\n\n const now = Date.now()\n if (this.voiceStartedAt === null) {\n this.startVoiceVisualization()\n this.voiceStartedAt = now\n }\n\n this.voiceDurationMs = Math.max(0, now - (this.voiceStartedAt ?? now))\n const nextLevel = Math.max(0.1, Math.min(1, level))\n\n if (this.voiceWaveform.length === 0 || now - this.lastVoiceSampleAt >= 90) {\n this.voiceWaveform = [...this.voiceWaveform, nextLevel].slice(-40)\n this.lastVoiceSampleAt = now\n } else {\n this.voiceWaveform = [\n ...this.voiceWaveform.slice(0, -1),\n nextLevel,\n ]\n }\n\n this.renderReactApp()\n }\n\n private async submitComposerMessage(message = this.inputValue) {\n const nextMessage = message.trim()\n if (!nextMessage) {\n return \"\"\n }\n if (this.isSending) {\n this.setStatus(\"Дождитесь завершения текущего ответа.\")\n this.inputValue = nextMessage\n this.renderReactApp()\n return \"\"\n }\n\n this.inputValue = \"\"\n this.renderReactApp()\n\n try {\n return await this.sendMessage(nextMessage)\n } catch {\n return \"\"\n }\n }\n\n private toggleVoiceInput() {\n if (!this.voiceController) {\n this.setStatus(\"Голосовой ввод недоступен.\")\n return\n }\n\n if (this.voiceController.isListening) {\n this.voiceController.stop()\n return\n }\n\n this.voiceController.start()\n this.syncVoiceState()\n }\n\n private minimizedStorageKey() {\n return `${MINIMIZED_STORAGE_PREFIX}:${window.location.hostname}:${this.options.publicToken.slice(0, 18)}`\n }\n\n private sessionStorageKey() {\n return `${SESSION_STORAGE_PREFIX}:${window.location.hostname}:${this.options.publicToken.slice(0, 18)}`\n }\n\n private restoreStoredSessionId() {\n if (!isBrowser()) {\n return null\n }\n return window.localStorage.getItem(this.sessionStorageKey())\n }\n\n private persistSessionId() {\n if (!isBrowser() || !this.sessionId) {\n return\n }\n window.localStorage.setItem(this.sessionStorageKey(), this.sessionId)\n }\n\n private restoreMinimizedState() {\n if (!isBrowser()) {\n return\n }\n this.minimized = window.localStorage.getItem(this.minimizedStorageKey()) === \"1\"\n }\n\n private persistMinimizedState() {\n if (!isBrowser()) {\n return\n }\n window.localStorage.setItem(this.minimizedStorageKey(), this.minimized ? \"1\" : \"0\")\n }\n\n private setMinimized(nextValue: boolean) {\n this.minimized = nextValue\n this.persistMinimizedState()\n this.renderReactApp()\n }\n\n private historyStorageKey() {\n return `${HISTORY_STORAGE_PREFIX}:${window.location.hostname}:${this.options.publicToken.slice(0, 18)}`\n }\n\n private restoreHistory() {\n if (!isBrowser()) {\n return\n }\n\n try {\n const raw = window.localStorage.getItem(this.historyStorageKey())\n if (!raw) {\n this.history = []\n return\n }\n\n const parsed = JSON.parse(raw) as unknown\n if (!Array.isArray(parsed)) {\n this.history = []\n return\n }\n\n this.history = parsed\n .filter((entry): entry is ChatHistoryEntry => {\n if (!entry || typeof entry !== \"object\") {\n return false\n }\n const role = (entry as { role?: unknown }).role\n const text = (entry as { text?: unknown }).text\n return (role === \"user\" || role === \"assistant\") && typeof text === \"string\"\n })\n .slice(-MAX_STORED_HISTORY)\n } catch {\n this.history = []\n }\n }\n\n private persistHistory() {\n if (!isBrowser()) {\n return\n }\n\n try {\n window.localStorage.setItem(\n this.historyStorageKey(),\n JSON.stringify(this.history.slice(-MAX_STORED_HISTORY))\n )\n } catch {\n // Ignore storage quota or privacy-mode failures and keep the widget usable.\n }\n }\n\n private rememberMessage(entry: ChatHistoryEntry) {\n const text = entry.text.trim()\n if (!text) {\n return\n }\n this.history.push({ role: entry.role, text })\n this.history = this.history.slice(-MAX_STORED_HISTORY)\n this.persistHistory()\n }\n\n private recentHistoryForRequest() {\n return this.history.slice(-MAX_HISTORY_FOR_REQUEST).map((entry) => ({\n role: entry.role,\n text: entry.text,\n }))\n }\n\n private restoreConversationView() {\n if (this.history.length === 0) {\n this.items = [\n {\n id: createConversationId(\"message\"),\n type: \"message\",\n role: \"assistant\",\n text: DEFAULT_GREETING,\n status: \"done\",\n },\n ]\n } else {\n this.items = this.history.map((entry) => ({\n id: createConversationId(\"message\"),\n type: \"message\",\n role: entry.role,\n text: entry.text,\n status: \"done\",\n }))\n }\n\n if (this.activeRun) {\n this.upsertPlanItem(this.activeRun)\n }\n }\n\n private updateActionState(id: string, state: WidgetActionConversationItem[\"state\"]) {\n this.items = this.items.map((item) =>\n item.type === \"action\" && item.id === id ? { ...item, state } : item\n )\n this.renderReactApp()\n }\n\n private planItemId(runId: string) {\n return `plan_${runId}`\n }\n\n private upsertPlanItem(run: GoalRunPreview, progressLabel?: string | null) {\n const existingPlanItem = this.items.find(\n (item) => item.type === \"plan\" && item.id === this.planItemId(run.id)\n )\n if (this.activeRun?.id && this.activeRun.id !== run.id) {\n this.executedToolCounts.clear()\n }\n this.activeRun = {\n ...run,\n progress_label: progressLabel ?? run.progress_label ?? null,\n }\n\n const nextPlanItem: WidgetPlanConversationItem = {\n id: this.planItemId(run.id),\n type: \"plan\",\n goal: run.goal,\n status: run.status,\n progressLabel: progressLabel ?? run.progress_label ?? null,\n statusReason: run.status_reason ?? null,\n expectedRoute: run.expected_route ?? null,\n loopGuarded: run.loop_guarded ?? false,\n currentStepIndex:\n run.status === \"completed\"\n ? run.total_steps\n : Math.min(run.total_steps, run.current_step_index + 1),\n totalSteps: run.total_steps,\n approvalState: run.requires_approval\n ? \"pending\"\n : run.status === \"abandoned\"\n ? \"declined\"\n : existingPlanItem && existingPlanItem.type === \"plan\" && existingPlanItem.approvalState === \"declined\"\n ? \"declined\"\n : \"approved\",\n steps: run.steps.map((step) => ({\n id: step.id,\n title: step.title,\n status: step.status,\n kind: step.kind,\n })),\n }\n\n const existingIndex = this.items.findIndex(\n (item) => item.type === \"plan\" && item.id === nextPlanItem.id\n )\n\n if (existingIndex >= 0) {\n this.items = this.items.map((item, index) => (index === existingIndex ? nextPlanItem : item))\n } else {\n this.items = [...this.items, nextPlanItem]\n }\n\n this.renderReactApp()\n }\n\n private removeEmptyMessage(id: string | null) {\n if (!id) {\n return\n }\n this.items = this.items.filter(\n (item) => !(item.type === \"message\" && item.id === id && item.text.trim().length === 0)\n )\n }\n\n private resolveConfirmation(value: boolean) {\n if (this.confirmItemId) {\n this.updateActionState(this.confirmItemId, value ? \"approved\" : \"declined\")\n }\n\n if (this.confirmResolve) {\n const resolve = this.confirmResolve\n this.confirmResolve = null\n this.confirmItemId = null\n resolve(value)\n }\n }\n\n private async confirmToolExecution(request: {\n displayName: string\n targetSummary: string\n arguments: Record<string, unknown>\n }) {\n if (this.minimized) {\n this.setMinimized(false)\n }\n\n if (this.confirmResolve) {\n this.resolveConfirmation(false)\n }\n\n const itemId = createConversationId(\"action\")\n this.items = [\n ...this.items,\n {\n id: itemId,\n type: \"action\",\n displayName: request.displayName,\n targetSummary: request.targetSummary,\n arguments: request.arguments,\n state: \"pending\",\n },\n ]\n this.confirmItemId = itemId\n this.setStatus(`Нужно подтверждение: ${request.displayName}`)\n this.renderReactApp()\n\n return await new Promise<boolean>((resolve) => {\n this.confirmResolve = resolve\n })\n }\n\n private syncRuntimeStatus(nativeRegistered: boolean) {\n if (!this.runtimeStatus) {\n return\n }\n\n const mode: RuntimeMode = nativeRegistered\n ? \"native-webmcp-active\"\n : this.registry?.canExecuteWriteTools()\n ? \"blinq-page-tools-active\"\n : \"read-only-fallback\"\n\n this.runtimeStatus = {\n ...this.runtimeStatus,\n mode,\n native_webmcp_supported: nativeRegistered,\n embedded_page_tools_supported: true,\n message: runtimeMessage(mode),\n }\n this.setStatus(this.runtimeStatus.message)\n }\n\n private setStatus(text: string) {\n this.statusText = text\n this.renderReactApp()\n }\n\n private appendMessage(\n text: string,\n role: \"user\" | \"assistant\",\n options?: {\n persist?: boolean\n status?: \"thinking\" | \"streaming\" | \"done\"\n }\n ) {\n const id = createConversationId(\"message\")\n this.items = [\n ...this.items,\n {\n id,\n type: \"message\",\n role,\n text,\n status: options?.status ?? \"done\",\n },\n ]\n this.renderReactApp()\n if (options?.persist !== false) {\n this.rememberMessage({ role, text })\n }\n return id\n }\n\n private updateMessage(id: string, text: string, status?: \"thinking\" | \"streaming\" | \"done\") {\n this.items = this.items.map((item) =>\n item.type === \"message\" && item.id === id\n ? { ...item, text, status: status ?? item.status }\n : item\n )\n this.renderReactApp()\n }\n\n private latestAssistantMessage() {\n const candidate = [...this.items]\n .reverse()\n .find((item) => item.type === \"message\" && item.role === \"assistant\")\n return candidate && candidate.type === \"message\" ? candidate : null\n }\n\n private finalizeAssistantMessage(text: string, options?: { persist?: boolean }) {\n if (!text.trim()) {\n return\n }\n\n const latestAssistant = this.latestAssistantMessage()\n if (latestAssistant) {\n this.updateMessage(latestAssistant.id, text, \"done\")\n return\n }\n\n this.appendMessage(text, \"assistant\", {\n persist: options?.persist ?? false,\n status: \"done\",\n })\n }\n\n private showThinkingIndicator() {\n if (!this.pendingAssistantIndicator) {\n this.pendingAssistantIndicator = true\n this.renderReactApp()\n }\n }\n\n private hideThinkingIndicator() {\n if (this.pendingAssistantIndicator) {\n this.pendingAssistantIndicator = false\n this.renderReactApp()\n }\n }\n\n private currentPageContext() {\n return this.registry?.collectPageContext() ?? collectNormalizedPageContext()\n }\n\n private currentRoute() {\n return normalizedRouteFromUrl(window.location.href)\n }\n\n private shouldAutoResumeActiveRun() {\n if (!this.activeRun || this.activeRun.status !== \"awaiting_navigation\") {\n return false\n }\n\n const currentRoute = this.currentRoute()\n if (!this.activeRun.expected_route || currentRoute !== this.activeRun.expected_route) {\n if (this.activeRun.status_reason) {\n this.setStatus(this.activeRun.status_reason)\n }\n return false\n }\n\n const nextKey = `${this.activeRun.id}:${currentRoute}`\n if (this.lastAutoResumeKey === nextKey) {\n return false\n }\n this.lastAutoResumeKey = nextKey\n return true\n }\n\n private async handleToolRequest(request: PublicToolRequestPayload): Promise<ToolExecutionOutcome> {\n if (!this.registry) {\n return {\n status: \"error\",\n error: \"Реестр действий страницы недоступен\",\n }\n }\n\n const executionKey = JSON.stringify({\n stepId: request.step_id,\n toolName: request.tool_name,\n arguments: request.arguments,\n route: this.currentRoute(),\n })\n const executionCount = (this.executedToolCounts.get(executionKey) ?? 0) + 1\n this.executedToolCounts.set(executionKey, executionCount)\n if (executionCount > 2) {\n const error = \"Повторяющееся действие на этой странице было остановлено.\"\n this.setStatus(error)\n return {\n status: \"error\",\n error,\n }\n }\n\n this.setStatus(`Ожидается локальное действие: ${request.display_name}`)\n const outcome = await this.registry.executeTool({\n tool_name: request.tool_name,\n display_name: request.display_name,\n target_summary: request.target_summary,\n requires_confirmation: request.requires_confirmation,\n arguments: request.arguments,\n })\n if (outcome.status === \"success\") {\n this.setStatus(`Действие выполнено: ${request.display_name}`)\n } else if (outcome.status === \"cancelled\") {\n this.setStatus(`Действие отменено: ${request.display_name}`)\n } else {\n this.setStatus(outcome.error ?? \"Не удалось выполнить действие на странице.\")\n }\n return outcome\n }\n\n private async streamChatStep(\n path: string,\n body: Record<string, unknown>,\n responseMessageId: string | null,\n accumulatedText = \"\"\n ): Promise<string> {\n if (!this.sessionToken) {\n throw new Error(\"Сессия виджета ещё не инициализирована\")\n }\n\n const response = await fetch(`${this.apiBaseUrl}${path}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.sessionToken}`,\n },\n body: JSON.stringify(body),\n })\n\n if (!response.ok || !response.body) {\n const payload = (await response.json().catch(() => ({}))) as { detail?: string }\n throw new Error(payload.detail ?? \"Не удалось получить потоковый ответ\")\n }\n\n let nextToolRequest: PublicToolRequestPayload | null = null\n let finalText = accumulatedText\n let deferredNavigationHref: string | null = null\n\n await parseSseStream(response.body, ({ event, data }) => {\n const payload = JSON.parse(data) as {\n text?: string\n message?: string\n }\n\n if (event === \"metadata\") {\n return\n }\n if (event === \"status\") {\n const statusPayload = JSON.parse(data) as PublicStatusPayload\n this.setStatus(statusPayload.label)\n }\n if (event === \"plan\") {\n this.hideThinkingIndicator()\n this.upsertPlanItem(JSON.parse(data) as GoalRunPreview)\n }\n if (event === \"progress\") {\n this.hideThinkingIndicator()\n const progress = JSON.parse(data) as GoalProgressPayload\n this.upsertPlanItem(progress.run, progress.label)\n this.setStatus(progress.label)\n }\n if (event === \"highlight\") {\n const highlight = JSON.parse(data) as HighlightEventPayload\n this.registry?.highlightTargets(highlight.targets ?? [])\n }\n if (event === \"delta\" && payload.text) {\n const normalizedChunk = normalizeAssistantStreamChunk(finalText, payload.text)\n if (!normalizedChunk && !finalText.trim()) {\n return\n }\n this.hideThinkingIndicator()\n if (!responseMessageId) {\n responseMessageId = this.appendMessage(\"\", \"assistant\", {\n persist: false,\n status: \"thinking\",\n })\n }\n finalText += normalizedChunk\n if (responseMessageId) {\n this.updateMessage(responseMessageId, finalText, \"streaming\")\n }\n }\n if (event === \"tool_request\") {\n this.hideThinkingIndicator()\n nextToolRequest = JSON.parse(data) as PublicToolRequestPayload\n }\n if (event === \"error\") {\n this.hideThinkingIndicator()\n this.setStatus(payload.message ?? \"Ошибка потока виджета.\")\n }\n if (event === \"done\") {\n this.hideThinkingIndicator()\n if (payload.text && !finalText.trim()) {\n finalText = normalizeAssistantFinalText(payload.text)\n if (responseMessageId) {\n this.updateMessage(responseMessageId, finalText, \"done\")\n }\n }\n this.setStatus(\"Готов к следующему сообщению.\")\n }\n })\n\n if (!nextToolRequest) {\n return finalText\n }\n\n const toolRequest = nextToolRequest as PublicToolRequestPayload\n const outcome = await this.handleToolRequest(toolRequest)\n const possibleNavigationHref =\n outcome.status === \"success\" &&\n outcome.result &&\n typeof outcome.result.href === \"string\" &&\n outcome.result.deferred_navigation\n ? outcome.result.href\n : null\n if (possibleNavigationHref) {\n deferredNavigationHref = possibleNavigationHref\n }\n const nextText = await this.streamChatStep(\n \"/pub/chat/tool-result\",\n {\n session_id: this.sessionId,\n tool_call_id: toolRequest.tool_call_id,\n step_id: toolRequest.step_id,\n status: outcome.status,\n result: outcome.result ?? null,\n error: outcome.error ?? null,\n page_context: this.currentPageContext(),\n },\n responseMessageId,\n finalText\n )\n if (deferredNavigationHref) {\n window.location.assign(deferredNavigationHref)\n }\n return nextText\n }\n\n async sendMessage(message: string) {\n if (!this.sessionId || !this.sessionToken) {\n throw new Error(\"Сессия виджета ещё не инициализирована\")\n }\n if (this.isSending) {\n this.setStatus(\"Дождитесь завершения текущего ответа.\")\n return \"\"\n }\n\n this.isSending = true\n this.showThinkingIndicator()\n this.syncVoiceState()\n this.renderReactApp()\n\n const requestHistory = this.recentHistoryForRequest()\n let responseMessageId: string | null = null\n\n try {\n this.appendMessage(message, \"user\")\n const finalText = await this.streamChatStep(\n \"/pub/chat\",\n {\n session_id: this.sessionId,\n message,\n history: requestHistory,\n page_context: this.currentPageContext(),\n },\n responseMessageId\n )\n this.finalizeAssistantMessage(finalText, { persist: false })\n if (finalText.trim()) {\n this.rememberMessage({ role: \"assistant\", text: finalText })\n }\n return finalText\n } catch (error) {\n const messageText = error instanceof Error ? error.message : \"Blinq не смог ответить.\"\n this.finalizeAssistantMessage(messageText, { persist: false })\n this.rememberMessage({ role: \"assistant\", text: messageText })\n throw error\n } finally {\n this.hideThinkingIndicator()\n this.isSending = false\n this.syncVoiceState()\n this.renderReactApp()\n }\n }\n\n private async continueActiveRun() {\n if (!this.sessionId || !this.sessionToken || !this.activeRun || this.isSending) {\n return\n }\n if (this.activeRun.status !== \"awaiting_navigation\") {\n return\n }\n if (this.activeRun.expected_route && this.currentRoute() !== this.activeRun.expected_route) {\n this.setStatus(this.activeRun.status_reason ?? \"Жду переход на нужную страницу.\")\n return\n }\n\n this.isSending = true\n this.showThinkingIndicator()\n this.renderReactApp()\n\n try {\n const finalText = await this.streamChatStep(\n \"/pub/chat\",\n {\n session_id: this.sessionId,\n message: \"\",\n continue_active_run: true,\n history: this.recentHistoryForRequest(),\n page_context: this.currentPageContext(),\n },\n null\n )\n this.finalizeAssistantMessage(finalText)\n } finally {\n this.hideThinkingIndicator()\n this.isSending = false\n this.renderReactApp()\n }\n }\n\n async respondToPlan(approved: boolean) {\n if (!this.sessionId || !this.sessionToken || !this.activeRun) {\n return\n }\n if (this.isSending) {\n return\n }\n\n this.isSending = true\n this.showThinkingIndicator()\n this.renderReactApp()\n\n try {\n const finalText = await this.streamChatStep(\n \"/pub/plan/approve\",\n {\n session_id: this.sessionId,\n goal_run_id: this.activeRun.id,\n approved,\n page_context: this.currentPageContext(),\n },\n null\n )\n\n if (finalText.trim()) {\n this.finalizeAssistantMessage(finalText, { persist: false })\n this.rememberMessage({ role: \"assistant\", text: finalText })\n }\n } finally {\n this.hideThinkingIndicator()\n this.isSending = false\n this.renderReactApp()\n }\n }\n\n async endSession() {\n if (!this.sessionId || !this.sessionToken) {\n return\n }\n await fetch(`${this.apiBaseUrl}/pub/session/end`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.sessionToken}`,\n },\n body: JSON.stringify({ session_id: this.sessionId }),\n keepalive: true,\n }).catch(() => undefined)\n if (isBrowser()) {\n window.localStorage.removeItem(this.sessionStorageKey())\n }\n }\n}\n\nexport async function init(options: BlinqWidgetInitOptions) {\n const widget = new BlinqWidget(options)\n return widget.init()\n}\n\nexport async function initFromConfig(\n config: BlinqWidgetConfigFile | { default: BlinqWidgetConfigFile }\n) {\n return init(normalizedConfig(config))\n}\n\nexport async function createBlinqWidget(options: BlinqWidgetInitOptions) {\n return init(options)\n}\n","export interface ActionableElementHint {\n type: \"button\" | \"link\" | \"input\" | \"textarea\" | \"submit\"\n label?: string\n selector: string\n placeholder?: string\n href?: string\n form_selector?: string\n context_text?: string\n input_type?: string\n}\n\nexport type SemanticToolKind =\n | \"add-item\"\n | \"delete-item\"\n | \"toggle-item\"\n | \"clear-completed\"\n | \"open-link\"\n | \"submit-form\"\n | \"activate-element\"\n\nexport interface SemanticToolDescriptor {\n name: string\n kind: SemanticToolKind\n title: string\n description: string\n target_summary: string\n keywords: string[]\n input_schema?: Record<string, unknown>\n default_arguments?: Record<string, unknown>\n metadata?: Record<string, unknown>\n}\n\nexport interface PageFormDescriptor {\n selector: string\n title: string\n context_text?: string\n field_selector?: string\n field_label?: string\n submit_selector?: string\n submit_label?: string\n}\n\nexport interface PageListItemActionDescriptor {\n kind: \"delete-item\" | \"toggle-item\" | \"open-link\"\n selector?: string\n href?: string\n label: string\n target_summary: string\n}\n\nexport interface PageListItemDescriptor {\n selector: string\n title: string\n context_text: string\n actions: PageListItemActionDescriptor[]\n}\n\nexport interface PageGraph {\n forms: PageFormDescriptor[]\n list_items: PageListItemDescriptor[]\n standalone_actions: ActionableElementHint[]\n}\n\nexport interface NormalizedPageContext {\n url: string\n title: string\n selection: string\n visible_text: string\n actionable_elements: ActionableElementHint[]\n page_graph: PageGraph\n semantic_tools: SemanticToolDescriptor[]\n}\n\nconst MAX_VISIBLE_TEXT_LENGTH = 2500\nconst MAX_ACTIONABLE_HINTS = 30\nconst MAX_SEMANTIC_TOOLS = 40\n\nfunction isBrowser() {\n return typeof window !== \"undefined\" && typeof document !== \"undefined\"\n}\n\nfunction selectedText() {\n if (!isBrowser()) {\n return \"\"\n }\n return window.getSelection()?.toString().trim() ?? \"\"\n}\n\nfunction visibleText() {\n if (!isBrowser()) {\n return \"\"\n }\n return document.body.innerText.replace(/\\s+/g, \" \").trim().slice(0, MAX_VISIBLE_TEXT_LENGTH)\n}\n\nfunction normalizedText(value: string | null | undefined) {\n return (value ?? \"\").replace(/\\s+/g, \" \").trim()\n}\n\nfunction normalizedWords(...values: Array<string | null | undefined>) {\n return Array.from(\n new Set(\n values\n .flatMap((value) => normalizedText(value).toLowerCase().split(/[^a-zа-я0-9]+/i))\n .filter((part) => part.length >= 2)\n )\n )\n}\n\nfunction escapeSelectorValue(value: string) {\n if (typeof CSS !== \"undefined\" && typeof CSS.escape === \"function\") {\n return CSS.escape(value)\n }\n return value.replace(/[\"\\\\]/g, \"\\\\$&\")\n}\n\nfunction nthOfType(element: Element) {\n let index = 1\n let sibling = element.previousElementSibling\n while (sibling) {\n if (sibling.tagName === element.tagName) {\n index += 1\n }\n sibling = sibling.previousElementSibling\n }\n return index\n}\n\nfunction buildPathSelector(element: Element) {\n const segments: string[] = []\n let current: Element | null = element\n\n while (current && segments.length < 4 && current !== document.body) {\n const tag = current.tagName.toLowerCase()\n segments.unshift(`${tag}:nth-of-type(${nthOfType(current)})`)\n current = current.parentElement\n }\n\n return segments.length > 0 ? `body > ${segments.join(\" > \")}` : null\n}\n\nfunction selectorForElement(element: Element | null): string | null {\n if (!element || !(element instanceof Element)) {\n return null\n }\n\n if (element.id) {\n return `#${escapeSelectorValue(element.id)}`\n }\n\n const dataTestId = element.getAttribute(\"data-testid\")\n if (dataTestId) {\n return `[data-testid=\"${escapeSelectorValue(dataTestId)}\"]`\n }\n\n const name = element.getAttribute(\"name\")\n if (name) {\n return `${element.tagName.toLowerCase()}[name=\"${escapeSelectorValue(name)}\"]`\n }\n\n const ariaLabel = element.getAttribute(\"aria-label\")\n if (ariaLabel) {\n return `${element.tagName.toLowerCase()}[aria-label=\"${escapeSelectorValue(ariaLabel)}\"]`\n }\n\n if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLButtonElement\n ) {\n const placeholder = element.getAttribute(\"placeholder\")\n if (placeholder) {\n return `${element.tagName.toLowerCase()}[placeholder=\"${escapeSelectorValue(placeholder)}\"]`\n }\n }\n\n return buildPathSelector(element)\n}\n\nfunction contextTextForElement(element: Element) {\n const contextualContainer =\n element.closest(\"li, tr, [role='listitem'], [data-testid], article, section, form\") ??\n element.parentElement\n\n if (!contextualContainer) {\n return undefined\n }\n\n const text = normalizedText(contextualContainer.textContent)\n if (!text) {\n return undefined\n }\n\n return text.slice(0, 240)\n}\n\nfunction hintFromElement(element: Element): ActionableElementHint | null {\n const selector = selectorForElement(element)\n if (!selector) {\n return null\n }\n\n const formSelector = selectorForElement(element.closest(\"form\"))\n const textContent = normalizedText(element.textContent)\n const contextText = contextTextForElement(element)\n\n if (element instanceof HTMLAnchorElement && element.href) {\n return {\n type: \"link\",\n label: textContent || element.getAttribute(\"aria-label\") || element.href,\n selector,\n href: element.href,\n form_selector: formSelector ?? undefined,\n context_text: contextText,\n }\n }\n\n if (element instanceof HTMLTextAreaElement) {\n return {\n type: \"textarea\",\n label: textContent || element.getAttribute(\"aria-label\") || undefined,\n selector,\n placeholder: element.placeholder || undefined,\n form_selector: formSelector ?? undefined,\n context_text: contextText,\n }\n }\n\n if (element instanceof HTMLInputElement) {\n const type = element.type === \"submit\" ? \"submit\" : \"input\"\n return {\n type,\n label: textContent || element.value || element.getAttribute(\"aria-label\") || undefined,\n selector,\n placeholder: element.placeholder || undefined,\n form_selector: formSelector ?? undefined,\n context_text: contextText,\n input_type: element.type || undefined,\n }\n }\n\n if (element instanceof HTMLButtonElement || element.getAttribute(\"role\") === \"button\") {\n return {\n type: element instanceof HTMLButtonElement && element.type === \"submit\" ? \"submit\" : \"button\",\n label: textContent || element.getAttribute(\"aria-label\") || undefined,\n selector,\n form_selector: formSelector ?? undefined,\n context_text: contextText,\n }\n }\n\n return null\n}\n\nfunction collectActionableElements() {\n if (!isBrowser()) {\n return []\n }\n\n const elements = Array.from(\n document.querySelectorAll(\"button, a[href], input:not([type='hidden']), textarea, [role='button']\")\n )\n\n const hints: ActionableElementHint[] = []\n for (const element of elements) {\n const hint = hintFromElement(element)\n if (!hint) {\n continue\n }\n hints.push(hint)\n if (hints.length >= MAX_ACTIONABLE_HINTS) {\n break\n }\n }\n return hints\n}\n\nfunction slugPart(value: string) {\n return normalizedText(value)\n .toLowerCase()\n .replace(/[^a-zа-я0-9]+/gi, \"-\")\n .replace(/^-+|-+$/g, \"\")\n .slice(0, 48)\n}\n\nfunction hashValue(value: string) {\n let hash = 0\n for (let index = 0; index < value.length; index += 1) {\n hash = (hash * 31 + value.charCodeAt(index)) >>> 0\n }\n return hash.toString(36)\n}\n\nfunction makeToolName(kind: SemanticToolKind, seed: string) {\n const slug = slugPart(seed) || \"target\"\n return `blinq.semantic.${kind}.${slug}.${hashValue(`${kind}:${seed}`)}`\n}\n\nfunction looksLikeAddLabel(value: string) {\n const text = value.toLowerCase()\n return /(добав|add|create|new|созда|қос|енгіз)/.test(text)\n}\n\nfunction looksLikeDeleteLabel(value: string) {\n const text = value.toLowerCase()\n return /(удал|delete|remove|өшір|жой)/.test(text)\n}\n\nfunction looksLikeClearCompletedLabel(value: string) {\n const text = value.toLowerCase()\n return /(очист|clear|тазала).*(выполн|completed|аяқталған)|(completed).*(clear|remove)/.test(text)\n}\n\nfunction looksLikeGenericActionLabel(value: string) {\n const text = value.toLowerCase()\n return /(open|view|edit|archive|start|run|save|send|submit|launch|continue|next|apply|confirm|перейд|открой|посмотр|измен|архив|запуст|сохран|отправ|продолж|далее|примен|подтверд|аш|өт|сақта|жібер|жалғастыр|таңда)/.test(\n text\n )\n}\n\nfunction buttonLikeText(element: Element) {\n if (element instanceof HTMLInputElement) {\n return normalizedText(element.value || element.getAttribute(\"aria-label\"))\n }\n return normalizedText(element.textContent || element.getAttribute(\"aria-label\"))\n}\n\nfunction deriveItemTitle(container: Element) {\n const cloned = container.cloneNode(true) as Element\n cloned.querySelectorAll(\"button, a, [role='button']\").forEach((node) => node.remove())\n const text = normalizedText(cloned.textContent)\n if (text) {\n return text.slice(0, 120)\n }\n return normalizedText(container.textContent).slice(0, 120)\n}\n\nfunction collectForms(): PageFormDescriptor[] {\n if (!isBrowser()) {\n return []\n }\n\n const forms = Array.from(document.querySelectorAll(\"form\")).slice(0, 8)\n const collected: PageFormDescriptor[] = []\n\n for (const form of forms) {\n const selector = selectorForElement(form)\n if (!selector) {\n continue\n }\n const field = form.querySelector<HTMLInputElement | HTMLTextAreaElement>(\n \"input:not([type='hidden']):not([type='checkbox']):not([type='radio']):not([type='submit']), textarea\"\n )\n const submit = form.querySelector<HTMLButtonElement | HTMLInputElement>(\n \"button[type='submit'], input[type='submit'], button:not([type])\"\n )\n const fieldSelector = selectorForElement(field)\n const submitSelector = selectorForElement(submit)\n const fieldLabel =\n normalizedText(field?.getAttribute(\"aria-label\")) ||\n normalizedText(field?.getAttribute(\"placeholder\")) ||\n normalizedText(field?.getAttribute(\"name\"))\n const submitLabel = submit ? buttonLikeText(submit) : \"\"\n const title = submitLabel || fieldLabel || normalizedText(form.getAttribute(\"aria-label\")) || selector\n\n collected.push({\n selector,\n title,\n context_text: contextTextForElement(form),\n field_selector: fieldSelector ?? undefined,\n field_label: fieldLabel || undefined,\n submit_selector: submitSelector ?? undefined,\n submit_label: submitLabel || undefined,\n })\n }\n\n return collected\n}\n\nfunction collectListItems(): PageListItemDescriptor[] {\n if (!isBrowser()) {\n return []\n }\n\n const candidates = Array.from(\n document.querySelectorAll(\"li, [role='listitem'], tr, [data-testid='todo-item']\")\n ).slice(0, 20)\n\n const items: PageListItemDescriptor[] = []\n for (const container of candidates) {\n const selector = selectorForElement(container)\n if (!selector) {\n continue\n }\n\n const contextText = normalizedText(container.textContent)\n if (!contextText) {\n continue\n }\n\n const actions: PageListItemActionDescriptor[] = []\n\n const toggleControl = container.querySelector<HTMLInputElement>(\"input[type='checkbox']\")\n const toggleSelector = selectorForElement(toggleControl)\n if (toggleSelector) {\n actions.push({\n kind: \"toggle-item\",\n selector: toggleSelector,\n label: \"Отметить задачу\",\n target_summary: contextText.slice(0, 160),\n })\n }\n\n const deleteButton = Array.from(\n container.querySelectorAll<HTMLButtonElement | HTMLAnchorElement | HTMLInputElement>(\n \"button, a, input[type='button'], input[type='submit']\"\n )\n ).find((element) => looksLikeDeleteLabel(buttonLikeText(element)))\n const deleteSelector = selectorForElement(deleteButton ?? null)\n if (deleteSelector) {\n actions.push({\n kind: \"delete-item\",\n selector: deleteSelector,\n label: buttonLikeText(deleteButton ?? container) || \"Удалить элемент\",\n target_summary: contextText.slice(0, 160),\n })\n }\n\n const openLink = Array.from(container.querySelectorAll<HTMLAnchorElement>(\"a[href]\"))[0]\n const openSelector = selectorForElement(openLink)\n if (openSelector && openLink?.href) {\n actions.push({\n kind: \"open-link\",\n selector: openSelector,\n href: openLink.href,\n label: buttonLikeText(openLink) || openLink.href,\n target_summary: contextText.slice(0, 160),\n })\n }\n\n if (actions.length === 0) {\n continue\n }\n\n items.push({\n selector,\n title: deriveItemTitle(container),\n context_text: contextText.slice(0, 160),\n actions,\n })\n }\n\n return items\n}\n\nfunction collectSemanticTools(\n actionableElements: ActionableElementHint[],\n pageGraph: PageGraph\n): SemanticToolDescriptor[] {\n const tools: SemanticToolDescriptor[] = []\n const usedSelectors = new Set<string>()\n const usedHrefs = new Set<string>()\n\n for (const form of pageGraph.forms) {\n if (form.field_selector && (form.submit_selector || form.selector)) {\n const submitSeed = `${form.selector}:${form.submit_selector ?? form.title}`\n if (looksLikeAddLabel(form.submit_label || form.title)) {\n tools.push({\n name: makeToolName(\"add-item\", submitSeed),\n kind: \"add-item\",\n title: \"Добавить элемент\",\n description: `Добавить новый элемент через ${form.title}.`,\n target_summary: form.context_text || form.title,\n keywords: normalizedWords(form.title, form.field_label, form.submit_label, \"add create new добавить создать қос енгіз\"),\n input_schema: {\n type: \"object\",\n properties: {\n value: { type: \"string\" },\n },\n required: [\"value\"],\n },\n metadata: {\n field_selector: form.field_selector,\n submit_selector: form.submit_selector,\n form_selector: form.selector,\n field_label: form.field_label,\n },\n })\n }\n\n if (form.submit_selector) {\n usedSelectors.add(form.submit_selector)\n tools.push({\n name: makeToolName(\"submit-form\", submitSeed),\n kind: \"submit-form\",\n title: form.submit_label ? `Отправить: ${form.submit_label}` : \"Отправить форму\",\n description: `Отправить форму ${form.title}.`,\n target_summary: form.context_text || form.title,\n keywords: normalizedWords(form.title, form.submit_label, \"submit send save отправить сохранить сақта жібер\"),\n metadata: {\n selector: form.selector,\n submit_selector: form.submit_selector,\n form_selector: form.selector,\n },\n })\n }\n\n usedSelectors.add(form.selector)\n if (form.field_selector) {\n usedSelectors.add(form.field_selector)\n }\n }\n }\n\n for (const item of pageGraph.list_items) {\n for (const action of item.actions) {\n const seed = `${item.selector}:${action.kind}:${action.selector ?? action.href ?? item.title}`\n if (action.kind === \"delete-item\" && action.selector) {\n usedSelectors.add(action.selector)\n tools.push({\n name: makeToolName(\"delete-item\", seed),\n kind: \"delete-item\",\n title: `Удалить: ${item.title}`,\n description: `Удалить элемент ${item.title}.`,\n target_summary: item.context_text,\n keywords: normalizedWords(item.title, item.context_text, action.label, \"delete remove удалить өшір жой\"),\n metadata: {\n selector: action.selector,\n item_title: item.title,\n item_context: item.context_text,\n },\n })\n }\n\n if (action.kind === \"toggle-item\" && action.selector) {\n usedSelectors.add(action.selector)\n tools.push({\n name: makeToolName(\"toggle-item\", seed),\n kind: \"toggle-item\",\n title: `Изменить статус: ${item.title}`,\n description: `Переключить состояние выполнения для ${item.title}.`,\n target_summary: item.context_text,\n keywords: normalizedWords(item.title, item.context_text, \"toggle complete check uncheck отметить выполнить белгіле аяқта\"),\n metadata: {\n selector: action.selector,\n item_title: item.title,\n item_context: item.context_text,\n },\n })\n }\n\n if (action.kind === \"open-link\" && action.href) {\n if (action.selector) {\n usedSelectors.add(action.selector)\n }\n usedHrefs.add(action.href)\n tools.push({\n name: makeToolName(\"open-link\", seed),\n kind: \"open-link\",\n title: `Открыть: ${item.title}`,\n description: `Открыть ссылку для ${item.title}.`,\n target_summary: item.context_text,\n keywords: normalizedWords(item.title, item.context_text, action.label, action.href, \"open link перейти открыть аш өту\"),\n metadata: {\n href: action.href,\n selector: action.selector,\n },\n })\n }\n }\n }\n\n for (const hint of actionableElements) {\n const label = normalizedText(hint.label)\n const contextText = normalizedText(hint.context_text)\n const selector = hint.selector\n\n if (usedSelectors.has(selector)) {\n continue\n }\n\n if (hint.type === \"button\" && label && looksLikeClearCompletedLabel(`${label} ${hint.context_text ?? \"\"}`)) {\n usedSelectors.add(selector)\n tools.push({\n name: makeToolName(\"clear-completed\", `${selector}:${label}`),\n kind: \"clear-completed\",\n title: label,\n description: `Очистить выполненные элементы через ${label}.`,\n target_summary: hint.context_text || label,\n keywords: normalizedWords(label, hint.context_text, \"clear completed очистить выполненные тазалау аяқталған\"),\n metadata: {\n selector,\n },\n })\n }\n\n if (hint.type === \"link\" && hint.href) {\n if (usedHrefs.has(hint.href)) {\n continue\n }\n usedSelectors.add(selector)\n usedHrefs.add(hint.href)\n tools.push({\n name: makeToolName(\"open-link\", `${selector}:${hint.href}`),\n kind: \"open-link\",\n title: label || hint.href,\n description: `Открыть ссылку ${label || hint.href}.`,\n target_summary: hint.context_text || label || hint.href,\n keywords: normalizedWords(label, hint.href, hint.context_text, \"open link перейти открыть аш өту\"),\n metadata: {\n href: hint.href,\n selector,\n },\n })\n }\n\n if (hint.type === \"input\" && hint.input_type === \"checkbox\") {\n usedSelectors.add(selector)\n tools.push({\n name: makeToolName(\"toggle-item\", `${selector}:${label}:${contextText}`),\n kind: \"toggle-item\",\n title: label || \"Переключить флажок\",\n description: `Переключить чекбокс или переключатель ${label || selector}.`,\n target_summary: contextText || label || selector,\n keywords: normalizedWords(label, contextText, \"toggle complete check uncheck enable disable включи выключи отметь сними\"),\n metadata: {\n selector,\n item_title: label || contextText || selector,\n item_context: contextText || label || selector,\n },\n })\n }\n\n if (hint.type === \"submit\" && (hint.form_selector || selector)) {\n usedSelectors.add(selector)\n if (hint.form_selector) {\n usedSelectors.add(hint.form_selector)\n }\n tools.push({\n name: makeToolName(\"submit-form\", `${hint.form_selector ?? selector}:${label || contextText}`),\n kind: \"submit-form\",\n title: label || \"Отправить форму\",\n description: `Отправить форму через ${label || selector}.`,\n target_summary: contextText || label || selector,\n keywords: normalizedWords(label, contextText, \"submit send save отправить сохранить сақта жібер\"),\n metadata: {\n selector: hint.form_selector || selector,\n submit_selector: selector,\n form_selector: hint.form_selector || selector,\n },\n })\n }\n\n if (\n hint.type === \"button\" &&\n label &&\n !looksLikeDeleteLabel(`${label} ${contextText}`) &&\n !looksLikeClearCompletedLabel(`${label} ${contextText}`) &&\n looksLikeGenericActionLabel(`${label} ${contextText}`)\n ) {\n usedSelectors.add(selector)\n tools.push({\n name: makeToolName(\"activate-element\", `${selector}:${label}:${contextText}`),\n kind: \"activate-element\",\n title: label,\n description: `Выполнить действие страницы: ${label}.`,\n target_summary: contextText || label,\n keywords: normalizedWords(label, contextText, \"click press activate нажми кликни бас таңда\"),\n metadata: {\n selector,\n label,\n },\n })\n }\n }\n\n return tools.slice(0, MAX_SEMANTIC_TOOLS)\n}\n\nexport function collectNormalizedPageContext(): NormalizedPageContext {\n const actionableElements = collectActionableElements()\n const pageGraph: PageGraph = {\n forms: collectForms(),\n list_items: collectListItems(),\n standalone_actions: actionableElements.filter(\n (hint) =>\n hint.type === \"button\" ||\n hint.type === \"submit\" ||\n (hint.type === \"input\" && hint.input_type === \"checkbox\")\n ),\n }\n const semanticTools = collectSemanticTools(actionableElements, pageGraph)\n\n return {\n url: isBrowser() ? window.location.href : \"\",\n title: isBrowser() ? document.title : \"\",\n selection: selectedText(),\n visible_text: visibleText(),\n actionable_elements: actionableElements,\n page_graph: pageGraph,\n semantic_tools: semanticTools,\n }\n}\n","import {\n collectNormalizedPageContext,\n type NormalizedPageContext,\n type SemanticToolDescriptor,\n} from \"./page-capabilities\"\n\nexport type RuntimeMode =\n | \"native-webmcp-active\"\n | \"blinq-page-tools-active\"\n | \"read-only-fallback\"\n\nexport interface ToolCapability {\n name: string\n description: string\n read_only: boolean\n}\n\nexport interface RuntimeCapability {\n mode: RuntimeMode\n native_webmcp_supported: boolean\n embedded_page_tools_supported: boolean\n write_requires_confirmation: boolean\n tool_capabilities: ToolCapability[]\n}\n\nexport type {\n ActionableElementHint,\n NormalizedPageContext,\n PageGraph,\n PageFormDescriptor,\n PageListItemDescriptor,\n SemanticToolDescriptor,\n} from \"./page-capabilities\"\nexport { collectNormalizedPageContext } from \"./page-capabilities\"\n\nexport interface ToolExecutionRequest {\n tool_name: string\n display_name?: string\n target_summary?: string\n requires_confirmation?: boolean\n arguments: Record<string, unknown>\n}\n\nexport interface ToolExecutionOutcome {\n status: \"success\" | \"cancelled\" | \"error\"\n result?: Record<string, unknown>\n error?: string\n}\n\nexport interface PageHighlightTarget {\n selector: string\n label?: string\n}\n\ninterface NativeModelContextTool {\n name: string\n description: string\n inputSchema?: Record<string, unknown>\n annotations?: {\n readOnlyHint?: boolean\n }\n execute: (input: Record<string, unknown>) => Promise<unknown>\n}\n\ninterface NativeModelContext {\n registerTool: (\n tool: NativeModelContextTool,\n options?: {\n signal?: AbortSignal\n }\n ) => void\n}\n\ntype NavigatorWithModelContext = Navigator & {\n modelContext?: NativeModelContext\n}\n\ntype ToolDefinition = {\n capability: ToolCapability\n inputSchema?: Record<string, unknown>\n describeTarget?: (input: Record<string, unknown>) => string\n execute: (input: Record<string, unknown>) => Promise<Record<string, unknown>>\n}\n\ntype ConfirmationHandler = (request: {\n displayName: string\n targetSummary: string\n arguments: Record<string, unknown>\n}) => Promise<boolean>\n\nfunction isBrowser() {\n return typeof window !== \"undefined\" && typeof document !== \"undefined\"\n}\n\nfunction selectedText() {\n if (!isBrowser()) {\n return \"\"\n }\n return window.getSelection()?.toString().trim() ?? \"\"\n}\n\nfunction normalizedText(value: string | null | undefined) {\n return (value ?? \"\").replace(/\\s+/g, \" \").trim()\n}\n\nfunction setFormFieldValue(\n target: HTMLInputElement | HTMLTextAreaElement,\n value: string\n) {\n const prototype =\n target instanceof HTMLTextAreaElement\n ? HTMLTextAreaElement.prototype\n : HTMLInputElement.prototype\n const descriptor = Object.getOwnPropertyDescriptor(prototype, \"value\")\n\n if (descriptor?.set) {\n descriptor.set.call(target, value)\n return\n }\n\n target.value = value\n}\n\nfunction associatedForm(target: HTMLElement) {\n return target instanceof HTMLFormElement ? target : (target.closest(\"form\") as HTMLFormElement | null)\n}\n\nfunction submitAssociatedForm(target: HTMLElement) {\n const form = associatedForm(target)\n\n if (!form) {\n throw new Error(\"Не найдена форма для выбранного элемента\")\n }\n\n const isSubmitter =\n target instanceof HTMLButtonElement ||\n (target instanceof HTMLInputElement && target.type === \"submit\")\n\n if (typeof form.requestSubmit === \"function\") {\n if (isSubmitter) {\n form.requestSubmit(target as HTMLButtonElement | HTMLInputElement)\n } else {\n form.requestSubmit()\n }\n return\n }\n\n const submitEvent = new Event(\"submit\", { bubbles: true, cancelable: true })\n const shouldContinue = form.dispatchEvent(submitEvent)\n if (shouldContinue) {\n form.submit()\n }\n}\n\nasync function waitForDomSettle() {\n await new Promise((resolve) => window.setTimeout(resolve, 80))\n}\n\nfunction bodyTextIncludes(query: string) {\n if (!isBrowser()) {\n return false\n }\n const haystack = normalizedText(document.body.innerText).toLowerCase()\n return haystack.includes(normalizedText(query).toLowerCase())\n}\n\nasync function verifyFormSubmission(target: HTMLElement) {\n const form = associatedForm(target)\n if (!form) {\n throw new Error(\"Не найдена форма для проверки результата\")\n }\n\n const successSelector = normalizedText(form.dataset.blinqSuccessSelector)\n const successText = normalizedText(form.dataset.blinqSuccessText)\n\n if (successSelector) {\n const successTarget = document.querySelector<HTMLElement>(successSelector)\n if (!successTarget) {\n throw new Error(`Не найден элемент подтверждения: ${successSelector}`)\n }\n\n const content = normalizedText(successTarget.textContent || successTarget.innerText)\n if (successText && !content.toLowerCase().includes(successText.toLowerCase())) {\n throw new Error(\"Форма отправлена, но подтверждение сохранения не появилось\")\n }\n\n return {\n submitted: true,\n verified: true,\n success_selector: successSelector,\n success_text: content,\n }\n }\n\n if (successText) {\n if (!bodyTextIncludes(successText)) {\n throw new Error(\"Форма отправлена, но ожидаемый текст подтверждения не найден\")\n }\n\n return {\n submitted: true,\n verified: true,\n success_text: successText,\n }\n }\n\n return { submitted: true }\n}\n\nfunction findTarget(selector: string) {\n const target = document.querySelector<HTMLElement>(selector)\n if (!target) {\n throw new Error(`Элемент не найден: ${selector}`)\n }\n return target\n}\n\nfunction isDuplicateNativeToolError(error: unknown) {\n if (!(error instanceof Error)) {\n return false\n }\n const message = error.message.toLowerCase()\n return (\n message.includes(\"duplicate tool name\") ||\n message.includes(\"already registered\") ||\n message.includes(\"already exists\")\n )\n}\n\nfunction metadataString(\n descriptor: SemanticToolDescriptor,\n key: string\n) {\n const value = descriptor.metadata?.[key]\n return typeof value === \"string\" ? value : \"\"\n}\n\nfunction buildSemanticToolDefinition(\n descriptor: SemanticToolDescriptor\n): ToolDefinition | null {\n const summary = descriptor.target_summary || descriptor.description\n\n if (descriptor.kind === \"add-item\") {\n return {\n capability: {\n name: descriptor.name,\n description: descriptor.description,\n read_only: false,\n },\n inputSchema: descriptor.input_schema,\n describeTarget: () => summary,\n execute: async (input) => {\n const fieldSelector = metadataString(descriptor, \"field_selector\")\n const submitSelector = metadataString(descriptor, \"submit_selector\")\n const formSelector = metadataString(descriptor, \"form_selector\")\n const value = String(input.value ?? \"\").trim()\n\n if (!fieldSelector || !value) {\n throw new Error(\"Для добавления нужен селектор поля и значение\")\n }\n\n const fieldTarget = findTarget(fieldSelector) as HTMLInputElement | HTMLTextAreaElement\n fieldTarget.focus()\n setFormFieldValue(fieldTarget, value)\n fieldTarget.dispatchEvent(new Event(\"input\", { bubbles: true }))\n fieldTarget.dispatchEvent(new Event(\"change\", { bubbles: true }))\n\n const submitTarget = submitSelector\n ? findTarget(submitSelector)\n : formSelector\n ? findTarget(formSelector)\n : fieldTarget\n submitAssociatedForm(submitTarget)\n await waitForDomSettle()\n\n if (!bodyTextIncludes(value)) {\n throw new Error(`Не удалось подтвердить, что элемент \"${value}\" появился на странице`)\n }\n\n return { success: true, value, verified: true }\n },\n }\n }\n\n if (descriptor.kind === \"delete-item\") {\n return {\n capability: {\n name: descriptor.name,\n description: descriptor.description,\n read_only: false,\n },\n describeTarget: () => summary,\n execute: async () => {\n const selector = metadataString(descriptor, \"selector\")\n const itemTitle = metadataString(descriptor, \"item_title\") || summary\n findTarget(selector).click()\n await waitForDomSettle()\n\n if (itemTitle && bodyTextIncludes(itemTitle)) {\n throw new Error(`Элемент \"${itemTitle}\" всё ещё виден после удаления`)\n }\n\n return { success: true, verified: true }\n },\n }\n }\n\n if (descriptor.kind === \"toggle-item\") {\n return {\n capability: {\n name: descriptor.name,\n description: descriptor.description,\n read_only: false,\n },\n describeTarget: () => summary,\n execute: async () => {\n const selector = metadataString(descriptor, \"selector\")\n const target = findTarget(selector)\n if (!(target instanceof HTMLInputElement) || target.type !== \"checkbox\") {\n throw new Error(\"Для переключения нужен селектор чекбокса\")\n }\n\n const before = target.checked\n target.click()\n await waitForDomSettle()\n\n if (target.checked === before) {\n throw new Error(\"Состояние чекбокса не изменилось\")\n }\n\n return { success: true, checked: target.checked, verified: true }\n },\n }\n }\n\n if (descriptor.kind === \"clear-completed\") {\n return {\n capability: {\n name: descriptor.name,\n description: descriptor.description,\n read_only: false,\n },\n describeTarget: () => summary,\n execute: async () => {\n const selector = metadataString(descriptor, \"selector\")\n const checkedBefore = document.querySelectorAll<HTMLInputElement>(\"input[type='checkbox']:checked\").length\n findTarget(selector).click()\n await waitForDomSettle()\n const checkedAfter = document.querySelectorAll<HTMLInputElement>(\"input[type='checkbox']:checked\").length\n\n if (checkedAfter >= checkedBefore && checkedBefore > 0) {\n throw new Error(\"Выполненные элементы не были очищены\")\n }\n\n return { success: true, checked_before: checkedBefore, checked_after: checkedAfter, verified: true }\n },\n }\n }\n\n if (descriptor.kind === \"open-link\") {\n return {\n capability: {\n name: descriptor.name,\n description: descriptor.description,\n read_only: false,\n },\n describeTarget: () => summary,\n execute: async () => {\n const href = metadataString(descriptor, \"href\")\n if (!href) {\n throw new Error(\"Для открытия ссылки нужен адрес href\")\n }\n return { success: true, href, deferred_navigation: true }\n },\n }\n }\n\n if (descriptor.kind === \"submit-form\") {\n return {\n capability: {\n name: descriptor.name,\n description: descriptor.description,\n read_only: false,\n },\n describeTarget: () => summary,\n execute: async () => {\n const selector = metadataString(descriptor, \"form_selector\") || metadataString(descriptor, \"selector\")\n const target = findTarget(selector)\n submitAssociatedForm(target)\n await waitForDomSettle()\n return { success: true, selector, ...(await verifyFormSubmission(target)) }\n },\n }\n }\n\n if (descriptor.kind === \"activate-element\") {\n return {\n capability: {\n name: descriptor.name,\n description: descriptor.description,\n read_only: false,\n },\n describeTarget: () => summary,\n execute: async () => {\n const selector = metadataString(descriptor, \"selector\")\n findTarget(selector).click()\n return { success: true, selector }\n },\n }\n }\n\n return null\n}\n\nexport function detectNativeWebMcpSupport() {\n if (!isBrowser() || !window.isSecureContext) {\n return false\n }\n const navigatorWithModelContext = navigator as NavigatorWithModelContext\n return typeof navigatorWithModelContext.modelContext?.registerTool === \"function\"\n}\n\nexport class PageToolRegistry {\n private readonly confirmationHandler: ConfirmationHandler\n private readonly tools = new Map<string, ToolDefinition>()\n private readonly nativeRegistrations: AbortController[] = []\n private latestPageContext: NormalizedPageContext | null = null\n private nativeToolsActive = false\n private highlightLayer: HTMLDivElement | null = null\n private highlightTimer: number | null = null\n\n constructor(confirmationHandler: ConfirmationHandler) {\n this.confirmationHandler = confirmationHandler\n this.refreshToolCatalog()\n }\n\n private buildBaseTools() {\n const tools = new Map<string, ToolDefinition>()\n\n tools.set(\"blinq.read_visible_page_context\", {\n capability: {\n name: \"blinq.read_visible_page_context\",\n description: \"Прочитать текущий URL, заголовок страницы, видимый текст и каталог действий.\",\n read_only: true,\n },\n execute: async () => ({ page_context: this.collectPageContext() }),\n })\n\n tools.set(\"blinq.read_selection\", {\n capability: {\n name: \"blinq.read_selection\",\n description: \"Прочитать текст, который сейчас выделен на странице.\",\n read_only: true,\n },\n execute: async () => ({ selection: selectedText() }),\n })\n\n tools.set(\"blinq.highlight_element\", {\n capability: {\n name: \"blinq.highlight_element\",\n description: \"Подсветить элемент страницы по CSS-селектору, чтобы показать пользователю, о чём идёт речь.\",\n read_only: true,\n },\n inputSchema: {\n type: \"object\",\n properties: {\n selector: { type: \"string\" },\n label: { type: \"string\" },\n },\n required: [\"selector\"],\n },\n describeTarget: (input) => `Подсветить элемент: ${String(input.selector ?? \"\")}`,\n execute: async (input) => {\n const selector = String(input.selector ?? \"\")\n const label = String(input.label ?? \"\").trim() || undefined\n const highlighted = this.highlightTargets([{ selector, label }])\n if (!highlighted) {\n throw new Error(`Не удалось подсветить элемент: ${selector}`)\n }\n return { success: true, selector, label: label ?? null }\n },\n })\n\n tools.set(\"blinq.scroll_to_element\", {\n capability: {\n name: \"blinq.scroll_to_element\",\n description: \"Прокрутить страницу к первому элементу по CSS-селектору.\",\n read_only: false,\n },\n inputSchema: { type: \"object\", properties: { selector: { type: \"string\" } }, required: [\"selector\"] },\n describeTarget: (input) => `Прокрутка к элементу: ${String(input.selector ?? \"\")}`,\n execute: async (input) => {\n const selector = String(input.selector ?? \"\")\n const target = findTarget(selector)\n target.scrollIntoView({ behavior: \"smooth\", block: \"center\" })\n return { success: true, selector }\n },\n })\n\n tools.set(\"blinq.click_element\", {\n capability: {\n name: \"blinq.click_element\",\n description: \"Нажать первую подходящую кнопку, ссылку или интерактивный элемент.\",\n read_only: false,\n },\n inputSchema: { type: \"object\", properties: { selector: { type: \"string\" } }, required: [\"selector\"] },\n describeTarget: (input) => `Нажать элемент: ${String(input.selector ?? \"\")}`,\n execute: async (input) => {\n const selector = String(input.selector ?? \"\")\n const target = findTarget(selector)\n const isSubmitButton = target instanceof HTMLButtonElement && target.type === \"submit\"\n const isSubmitInput = target instanceof HTMLInputElement && target.type === \"submit\"\n if (isSubmitButton || isSubmitInput) {\n submitAssociatedForm(target)\n await waitForDomSettle()\n return { success: true, selector, ...(await verifyFormSubmission(target)) }\n }\n target.click()\n await waitForDomSettle()\n return { success: true, selector }\n },\n })\n\n tools.set(\"blinq.fill_field\", {\n capability: {\n name: \"blinq.fill_field\",\n description: \"Заполнить поле ввода или textarea по CSS-селектору.\",\n read_only: false,\n },\n inputSchema: {\n type: \"object\",\n properties: {\n selector: { type: \"string\" },\n value: { type: \"string\" },\n },\n required: [\"selector\", \"value\"],\n },\n describeTarget: (input) =>\n `Заполнить ${String(input.selector ?? \"\")} значением \"${String(input.value ?? \"\")}\"`,\n execute: async (input) => {\n const selector = String(input.selector ?? \"\")\n const value = String(input.value ?? \"\")\n const target = findTarget(selector) as HTMLInputElement | HTMLTextAreaElement\n target.focus()\n setFormFieldValue(target, value)\n target.dispatchEvent(new Event(\"input\", { bubbles: true }))\n target.dispatchEvent(new Event(\"change\", { bubbles: true }))\n await waitForDomSettle()\n return { success: true, selector, value, verified: target.value === value }\n },\n })\n\n tools.set(\"blinq.submit_form\", {\n capability: {\n name: \"blinq.submit_form\",\n description: \"Отправить ближайшую форму для выбранного селектора.\",\n read_only: false,\n },\n inputSchema: { type: \"object\", properties: { selector: { type: \"string\" } }, required: [\"selector\"] },\n describeTarget: (input) => `Отправить форму рядом с ${String(input.selector ?? \"\")}`,\n execute: async (input) => {\n const selector = String(input.selector ?? \"\")\n const target = findTarget(selector)\n submitAssociatedForm(target)\n await waitForDomSettle()\n return { success: true, selector, ...(await verifyFormSubmission(target)) }\n },\n })\n\n tools.set(\"blinq.open_link\", {\n capability: {\n name: \"blinq.open_link\",\n description: \"Открыть URL в текущей вкладке.\",\n read_only: false,\n },\n inputSchema: { type: \"object\", properties: { href: { type: \"string\" } }, required: [\"href\"] },\n describeTarget: (input) => `Открыть ${String(input.href ?? \"\")}`,\n execute: async (input) => {\n const href = String(input.href ?? \"\")\n if (!href) {\n throw new Error(\"Нужен адрес ссылки\")\n }\n return { success: true, href, deferred_navigation: true }\n },\n })\n\n return tools\n }\n\n private refreshToolCatalog() {\n const pageContext = collectNormalizedPageContext()\n const tools = this.buildBaseTools()\n\n for (const descriptor of pageContext.semantic_tools) {\n const tool = buildSemanticToolDefinition(descriptor)\n if (tool) {\n tools.set(descriptor.name, tool)\n }\n }\n\n this.tools.clear()\n for (const [name, tool] of tools) {\n this.tools.set(name, tool)\n }\n\n this.latestPageContext = pageContext\n return pageContext\n }\n\n private async onMutatingToolSuccess() {\n this.refreshToolCatalog()\n // A successful page action should stay successful even if native tool\n // re-registration is flaky in the current browser preview.\n if (this.nativeToolsActive) {\n try {\n await this.registerNativeTools()\n } catch {\n this.nativeToolsActive = false\n }\n }\n }\n\n collectPageContext() {\n return this.refreshToolCatalog()\n }\n\n getToolCapabilities() {\n this.refreshToolCatalog()\n return Array.from(this.tools.values()).map((tool) => tool.capability)\n }\n\n clearHighlights() {\n if (this.highlightTimer !== null) {\n window.clearTimeout(this.highlightTimer)\n this.highlightTimer = null\n }\n this.highlightLayer?.remove()\n this.highlightLayer = null\n }\n\n private ensureHighlightLayer() {\n if (this.highlightLayer) {\n return this.highlightLayer\n }\n const layer = document.createElement(\"div\")\n layer.setAttribute(\"data-blinq-highlight-layer\", \"true\")\n Object.assign(layer.style, {\n position: \"fixed\",\n inset: \"0\",\n pointerEvents: \"none\",\n zIndex: \"2147483646\",\n })\n document.body.appendChild(layer)\n this.highlightLayer = layer\n return layer\n }\n\n highlightTargets(\n targets: PageHighlightTarget[],\n options?: {\n durationMs?: number\n }\n ) {\n if (!isBrowser() || targets.length === 0) {\n return false\n }\n\n this.clearHighlights()\n const layer = this.ensureHighlightLayer()\n let highlightedCount = 0\n\n for (const target of targets) {\n if (!target.selector) {\n continue\n }\n\n let element: HTMLElement | null = null\n try {\n element = document.querySelector<HTMLElement>(target.selector)\n } catch {\n element = null\n }\n\n if (!element) {\n continue\n }\n\n const rect = element.getBoundingClientRect()\n if (rect.width <= 0 || rect.height <= 0) {\n continue\n }\n\n const frame = document.createElement(\"div\")\n Object.assign(frame.style, {\n position: \"fixed\",\n left: `${Math.max(rect.left - 6, 4)}px`,\n top: `${Math.max(rect.top - 6, 4)}px`,\n width: `${Math.max(rect.width + 12, 18)}px`,\n height: `${Math.max(rect.height + 12, 18)}px`,\n border: \"2px solid rgba(17, 17, 17, 0.92)\",\n borderRadius: \"16px\",\n background: \"rgba(17, 17, 17, 0.05)\",\n boxShadow: \"0 0 0 1px rgba(255, 255, 255, 0.85), 0 18px 38px rgba(17, 17, 17, 0.14)\",\n opacity: \"0\",\n transform: \"scale(0.985)\",\n transition: \"opacity 180ms ease, transform 180ms ease\",\n })\n\n const glow = document.createElement(\"div\")\n Object.assign(glow.style, {\n position: \"absolute\",\n inset: \"-8px\",\n borderRadius: \"20px\",\n border: \"1px solid rgba(17, 17, 17, 0.14)\",\n animation: \"blinq-highlight-pulse 1.2s ease-in-out infinite\",\n })\n frame.appendChild(glow)\n\n if (target.label) {\n const badge = document.createElement(\"div\")\n badge.textContent = target.label\n Object.assign(badge.style, {\n position: \"absolute\",\n top: \"-14px\",\n left: \"10px\",\n maxWidth: \"min(220px, 70vw)\",\n padding: \"4px 10px\",\n borderRadius: \"999px\",\n background: \"#111111\",\n color: \"#ffffff\",\n fontFamily:\n \"\\\"Inter\\\", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", sans-serif\",\n fontSize: \"11px\",\n fontWeight: \"600\",\n lineHeight: \"1.3\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n boxShadow: \"0 8px 18px rgba(17, 17, 17, 0.16)\",\n })\n frame.appendChild(badge)\n }\n\n layer.appendChild(frame)\n window.requestAnimationFrame(() => {\n frame.style.opacity = \"1\"\n frame.style.transform = \"scale(1)\"\n })\n highlightedCount += 1\n }\n\n if (!document.getElementById(\"blinq-highlight-style\")) {\n const style = document.createElement(\"style\")\n style.id = \"blinq-highlight-style\"\n style.textContent = `\n @keyframes blinq-highlight-pulse {\n 0%, 100% { opacity: 0.55; transform: scale(1); }\n 50% { opacity: 1; transform: scale(1.02); }\n }\n `\n document.head.appendChild(style)\n }\n\n if (highlightedCount === 0) {\n this.clearHighlights()\n return false\n }\n\n this.highlightTimer = window.setTimeout(() => {\n this.clearHighlights()\n }, options?.durationMs ?? 2200)\n\n return true\n }\n\n canExecuteWriteTools() {\n return isBrowser()\n }\n\n async executeTool(request: ToolExecutionRequest): Promise<ToolExecutionOutcome> {\n let tool = this.tools.get(request.tool_name)\n if (!tool) {\n this.refreshToolCatalog()\n tool = this.tools.get(request.tool_name)\n }\n\n if (!tool) {\n return {\n status: \"error\",\n error: `Неизвестный инструмент: ${request.tool_name}`,\n }\n }\n\n const displayName = request.display_name ?? tool.capability.name\n const targetSummary =\n request.target_summary ??\n tool.describeTarget?.(request.arguments) ??\n tool.capability.description\n\n const requiresConfirmation = request.requires_confirmation ?? !tool.capability.read_only\n\n if (!tool.capability.read_only && requiresConfirmation) {\n const confirmed = await this.confirmationHandler({\n displayName,\n targetSummary,\n arguments: request.arguments,\n })\n if (!confirmed) {\n return {\n status: \"cancelled\",\n error: \"Пользователь отклонил действие\",\n }\n }\n }\n\n try {\n const result = await tool.execute(request.arguments)\n if (!tool.capability.read_only) {\n await this.onMutatingToolSuccess()\n }\n return { status: \"success\", result }\n } catch (error) {\n return {\n status: \"error\",\n error: error instanceof Error ? error.message : \"Неизвестная ошибка действия на странице\",\n }\n }\n }\n\n unregisterNativeTools() {\n while (this.nativeRegistrations.length > 0) {\n this.nativeRegistrations.pop()?.abort()\n }\n this.nativeToolsActive = false\n }\n\n async registerNativeTools() {\n const navigatorWithModelContext = navigator as NavigatorWithModelContext\n const modelContext = navigatorWithModelContext.modelContext\n if (!window.isSecureContext || !modelContext?.registerTool) {\n return false\n }\n\n this.refreshToolCatalog()\n this.unregisterNativeTools()\n\n for (const [toolName, tool] of this.tools) {\n const controller = new AbortController()\n try {\n modelContext.registerTool(\n {\n name: toolName,\n description: tool.capability.description,\n inputSchema: tool.inputSchema,\n annotations: {\n readOnlyHint: tool.capability.read_only,\n },\n execute: async (input) => {\n const outcome = await this.executeTool({\n tool_name: toolName,\n display_name: tool.capability.name,\n arguments: input,\n })\n return outcome\n },\n },\n { signal: controller.signal }\n )\n this.nativeRegistrations.push(controller)\n } catch (error) {\n controller.abort()\n if (isDuplicateNativeToolError(error)) {\n this.nativeToolsActive = true\n continue\n }\n throw error\n }\n }\n\n this.nativeToolsActive = true\n return true\n }\n\n destroy() {\n this.clearHighlights()\n this.unregisterNativeTools()\n }\n}\n","import * as React from \"react\"\nimport {\n AssistantRuntimeProvider,\n MessagePrimitive,\n ThreadPrimitive,\n useExternalStoreRuntime,\n useMessage,\n type MessageStatus as AssistantMessageStatus,\n type ThreadMessageLike,\n} from \"@assistant-ui/react\"\n\ntype ClassValue = string | false | null | undefined\n\nfunction cn(...values: ClassValue[]) {\n return values.filter(Boolean).join(\" \")\n}\n\ntype ButtonVariant = \"default\" | \"outline\" | \"ghost\" | \"destructive\"\ntype ButtonSize = \"default\" | \"sm\" | \"icon\" | \"icon-sm\"\ntype BadgeVariant = \"default\" | \"outline\" | \"soft\" | \"accent\"\n\nfunction buttonClassName(variant: ButtonVariant = \"default\", size: ButtonSize = \"default\") {\n const variantClass =\n variant === \"outline\"\n ? \"blinq-button-outline\"\n : variant === \"ghost\"\n ? \"blinq-button-ghost\"\n : variant === \"destructive\"\n ? \"blinq-button-destructive\"\n : \"blinq-button-default\"\n\n const sizeClass =\n size === \"sm\"\n ? \"blinq-button-sm\"\n : size === \"icon\"\n ? \"blinq-button-icon\"\n : size === \"icon-sm\"\n ? \"blinq-button-icon-sm\"\n : \"blinq-button-md\"\n\n return cn(\"blinq-button\", variantClass, sizeClass)\n}\n\nfunction badgeClassName(variant: BadgeVariant = \"default\") {\n if (variant === \"outline\") {\n return \"blinq-badge-pill blinq-badge-pill-outline\"\n }\n if (variant === \"soft\") {\n return \"blinq-badge-pill blinq-badge-pill-soft\"\n }\n if (variant === \"accent\") {\n return \"blinq-badge-pill blinq-badge-pill-accent\"\n }\n return \"blinq-badge-pill blinq-badge-pill-default\"\n}\n\nfunction Button({\n className,\n variant,\n size,\n ...props\n}: React.ButtonHTMLAttributes<HTMLButtonElement> & {\n variant?: ButtonVariant\n size?: ButtonSize\n}) {\n return <button className={cn(buttonClassName(variant, size), className)} {...props} />\n}\n\nfunction Input({ className, ...props }: React.InputHTMLAttributes<HTMLInputElement>) {\n return <input className={cn(\"blinq-input\", className)} {...props} />\n}\n\nfunction Card({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"blinq-card\", className)} {...props} />\n}\n\nfunction CardHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"blinq-card-header\", className)} {...props} />\n}\n\nfunction CardTitle({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"blinq-card-title\", className)} {...props} />\n}\n\nfunction CardDescription({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"blinq-card-description\", className)} {...props} />\n}\n\nfunction CardContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"blinq-card-content\", className)} {...props} />\n}\n\nfunction Badge({\n className,\n variant,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & {\n variant?: BadgeVariant\n}) {\n return <div className={cn(badgeClassName(variant), className)} {...props} />\n}\n\nfunction Separator({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"blinq-separator\", className)} {...props} />\n}\n\nfunction LauncherIcon() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n aria-hidden=\"true\"\n className=\"blinq-launcher-agent\"\n >\n <circle className=\"blinq-agent-orbit\" cx=\"12\" cy=\"12\" r=\"9\" />\n <circle className=\"blinq-agent-spark\" cx=\"18.6\" cy=\"8.2\" r=\"1.2\" />\n <path\n className=\"blinq-agent-antenna\"\n d=\"M12 4.8V6.8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.6\"\n strokeLinecap=\"round\"\n />\n <circle className=\"blinq-agent-antenna-dot\" cx=\"12\" cy=\"4.1\" r=\"1.1\" fill=\"currentColor\" />\n <rect\n className=\"blinq-agent-head\"\n x=\"7\"\n y=\"7.4\"\n width=\"10\"\n height=\"9.2\"\n rx=\"3.2\"\n fill=\"currentColor\"\n />\n <circle className=\"blinq-agent-eye\" cx=\"10.2\" cy=\"11.3\" r=\"0.9\" fill=\"#111111\" />\n <circle className=\"blinq-agent-eye\" cx=\"13.8\" cy=\"11.3\" r=\"0.9\" fill=\"#111111\" />\n <path\n className=\"blinq-agent-mouth\"\n d=\"M10 14.2c.7.55 1.38.82 2 .82s1.3-.27 2-.82\"\n stroke=\"#111111\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n />\n <path\n className=\"blinq-agent-neck\"\n d=\"M10.2 17.1h3.6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n />\n </svg>\n )\n}\n\nfunction CollapseIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M6 12h12\" stroke=\"currentColor\" strokeWidth=\"1.8\" strokeLinecap=\"round\" />\n </svg>\n )\n}\n\nfunction MicrophoneIcon({ listening }: { listening: boolean }) {\n if (listening) {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"7\" y=\"7\" width=\"10\" height=\"10\" rx=\"2.5\" fill=\"currentColor\" />\n </svg>\n )\n }\n\n return (\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M12 3.75a2.75 2.75 0 0 1 2.75 2.75v5.25a2.75 2.75 0 1 1-5.5 0V6.5A2.75 2.75 0 0 1 12 3.75Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M7.5 10.5a.75.75 0 0 1 .75.75a3.75 3.75 0 1 0 7.5 0a.75.75 0 0 1 1.5 0A5.25 5.25 0 0 1 12.75 16.4V18.5H15a.75.75 0 0 1 0 1.5H9a.75.75 0 0 1 0-1.5h2.25v-2.1A5.25 5.25 0 0 1 6.75 11.25a.75.75 0 0 1 .75-.75Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nfunction SendIcon() {\n return (\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M5.5 12h11M12.5 5l6.5 7-6.5 7\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nfunction ThinkingSparkIcon() {\n return (\n <span className=\"blinq-thinking-dots\" aria-hidden=\"true\">\n <span />\n <span />\n <span />\n </span>\n )\n}\n\nexport interface WidgetMessageConversationItem {\n id: string\n type: \"message\"\n role: \"user\" | \"assistant\"\n text: string\n status: \"thinking\" | \"streaming\" | \"done\"\n}\n\nexport interface WidgetActionConversationItem {\n id: string\n type: \"action\"\n displayName: string\n targetSummary: string\n arguments: Record<string, unknown>\n state: \"pending\" | \"approved\" | \"declined\"\n}\n\nexport interface WidgetPlanStepItem {\n id: string\n title: string\n status: string\n kind: string\n}\n\nexport interface WidgetPlanConversationItem {\n id: string\n type: \"plan\"\n goal: string\n status: string\n progressLabel: string | null\n statusReason?: string | null\n expectedRoute?: string | null\n loopGuarded?: boolean\n currentStepIndex: number\n totalSteps: number\n approvalState: \"pending\" | \"approved\" | \"declined\"\n steps: WidgetPlanStepItem[]\n}\n\nexport type WidgetConversationItem =\n | WidgetMessageConversationItem\n | WidgetActionConversationItem\n | WidgetPlanConversationItem\n\nexport interface WidgetShellState {\n minimized: boolean\n assistantName: string\n runtimeLabel: string\n statusText: string\n showThinkingIndicator: boolean\n inputValue: string\n accentColor: string\n side: \"left\" | \"right\"\n isSending: boolean\n voiceSupported: boolean\n voiceListening: boolean\n voiceWaveform: number[]\n voiceDurationMs: number\n items: WidgetConversationItem[]\n}\n\ninterface WidgetEmbedShellProps {\n state: WidgetShellState\n onOpen(): void\n onCollapse(): void\n onInputChange(value: string): void\n onSubmit(): void\n onToggleVoice(): void\n onApproveAction(id: string): void\n onDeclineAction(id: string): void\n onApprovePlan(): void\n onDeclinePlan(): void\n}\n\nfunction isAssistantMessageRunning(status?: AssistantMessageStatus) {\n return status?.type === \"running\"\n}\n\nfunction itemToThreadMessage(item: WidgetConversationItem): ThreadMessageLike {\n if (item.type === \"message\") {\n return {\n id: item.id,\n role: item.role,\n status:\n item.role === \"assistant\"\n ? item.status === \"done\"\n ? { type: \"complete\", reason: \"stop\" }\n : { type: \"running\" }\n : undefined,\n content: item.text ? [{ type: \"text\", text: item.text }] : [],\n metadata: {\n custom: {\n blinqKind: \"message\",\n },\n },\n }\n }\n\n if (item.type === \"plan\") {\n return {\n id: item.id,\n role: \"assistant\",\n status:\n item.status === \"completed\"\n ? { type: \"complete\", reason: \"stop\" }\n : item.status === \"failed\"\n ? { type: \"incomplete\", reason: \"error\" }\n : { type: \"running\" },\n content: [{ type: \"data\", name: \"blinq-plan\", data: item }],\n metadata: {\n custom: {\n blinqKind: \"plan\",\n },\n },\n }\n }\n\n return {\n id: item.id,\n role: \"assistant\",\n status:\n item.state === \"approved\"\n ? { type: \"running\" }\n : { type: \"complete\", reason: \"stop\" },\n content: [{ type: \"data\", name: \"blinq-action\", data: item }],\n metadata: {\n custom: {\n blinqKind: \"action\",\n },\n },\n }\n}\n\nfunction conversationToThreadMessages(items: WidgetConversationItem[]) {\n return items.map(itemToThreadMessage)\n}\n\nfunction ThreadMessageBubble({\n accentColor,\n onApproveAction,\n onDeclineAction,\n onApprovePlan,\n onDeclinePlan,\n}: {\n accentColor: string\n onApproveAction(id: string): void\n onDeclineAction(id: string): void\n onApprovePlan(): void\n onDeclinePlan(): void\n}) {\n const role = useMessage((state) => state.role)\n const messageId = useMessage((state) => state.id)\n const status = useMessage((state) => state.status)\n const content = useMessage((state) => state.content)\n const isDataOnly =\n Array.isArray(content) &&\n content.length === 1 &&\n typeof content[0] !== \"string\" &&\n content[0]?.type === \"data\"\n const messageText = React.useMemo(\n () =>\n content\n .filter((part): part is Extract<typeof part, { type: \"text\" }> => typeof part !== \"string\" && part.type === \"text\")\n .map((part) => part.text)\n .join(\"\"),\n [content]\n )\n const [animateFreshText, setAnimateFreshText] = React.useState(false)\n const [hasAnimatedStreamingReveal, setHasAnimatedStreamingReveal] = React.useState(false)\n\n React.useEffect(() => {\n setAnimateFreshText(false)\n setHasAnimatedStreamingReveal(false)\n }, [messageId])\n\n React.useEffect(() => {\n if (\n role !== \"assistant\" ||\n isDataOnly ||\n !isAssistantMessageRunning(status) ||\n !messageText.trim() ||\n hasAnimatedStreamingReveal\n ) {\n return\n }\n\n setAnimateFreshText(true)\n setHasAnimatedStreamingReveal(true)\n const timeoutId = window.setTimeout(() => {\n setAnimateFreshText(false)\n }, 220)\n\n return () => window.clearTimeout(timeoutId)\n }, [role, isDataOnly, messageText, hasAnimatedStreamingReveal])\n\n return (\n <MessagePrimitive.Root\n className=\"blinq-message\"\n data-role={role}\n data-kind={isDataOnly ? \"artifact\" : \"bubble\"}\n data-status={status?.type ?? \"complete\"}\n >\n <MessagePrimitive.Parts>\n {({ part }) => {\n if (part.type === \"text\") {\n if (!part.text) {\n return null\n }\n\n return (\n <div\n className={cn(\n \"blinq-message-copy\",\n role === \"assistant\" && animateFreshText && \"blinq-message-copy-reveal\"\n )}\n >\n {part.text}\n </div>\n )\n }\n\n if (part.type === \"data\" && part.name === \"blinq-action\") {\n const actionItem = part.data as WidgetActionConversationItem\n return (\n <ActionCard\n item={actionItem}\n accentColor={accentColor}\n onApprove={() => onApproveAction(actionItem.id)}\n onDecline={() => onDeclineAction(actionItem.id)}\n />\n )\n }\n\n if (part.type === \"data\" && part.name === \"blinq-plan\") {\n return (\n <PlanCard\n item={part.data as WidgetPlanConversationItem}\n onApprove={onApprovePlan}\n onDecline={onDeclinePlan}\n />\n )\n }\n\n return null\n }}\n </MessagePrimitive.Parts>\n </MessagePrimitive.Root>\n )\n}\n\nfunction ThinkingPlaceholder() {\n return (\n <div className=\"blinq-message blinq-thinking-card\" data-role=\"assistant\" data-kind=\"bubble\">\n <div className=\"blinq-thinking\">\n <ThinkingSparkIcon />\n <span>Думаю над ответом</span>\n </div>\n </div>\n )\n}\n\nfunction formatRecordingDuration(durationMs: number) {\n const totalSeconds = Math.max(0, Math.floor(durationMs / 1000))\n const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, \"0\")\n const seconds = String(totalSeconds % 60).padStart(2, \"0\")\n return `${minutes}:${seconds}`\n}\n\nfunction VoiceWaveform({\n durationMs,\n samples,\n}: {\n durationMs: number\n samples: number[]\n}) {\n const waveform = samples.length > 0 ? samples : [0.18]\n\n return (\n <div className=\"blinq-recording-input\" role=\"status\" aria-live=\"polite\">\n <div className=\"blinq-recording-time\">{formatRecordingDuration(durationMs)}</div>\n <div className=\"blinq-recording-waveform\" aria-hidden=\"true\">\n {waveform.map((sample, index) => {\n const scale = Math.max(0.16, Math.min(1, sample))\n return (\n <span\n key={`voice-wave-${index}`}\n className=\"blinq-recording-waveform-bar\"\n style={{ transform: `scaleY(${scale})` }}\n />\n )\n })}\n </div>\n </div>\n )\n}\n\nfunction ActionCard({\n item,\n accentColor,\n onApprove,\n onDecline,\n}: {\n item: WidgetActionConversationItem\n accentColor: string\n onApprove(): void\n onDecline(): void\n}) {\n return (\n <Card\n className=\"blinq-action-card\"\n style={\n item.state === \"approved\"\n ? { borderColor: \"rgba(17, 17, 17, 0.22)\" }\n : item.state === \"declined\"\n ? { borderColor: \"rgba(17, 17, 17, 0.12)\" }\n : undefined\n }\n >\n <CardHeader>\n <CardTitle>{item.displayName}</CardTitle>\n <CardDescription>{item.targetSummary}</CardDescription>\n </CardHeader>\n <CardContent>\n <details className=\"blinq-action-details\">\n <summary>Показать детали действия</summary>\n <pre className=\"blinq-code\">{JSON.stringify(item.arguments, null, 2)}</pre>\n </details>\n {item.state !== \"pending\" ? (\n <div className=\"blinq-action-state\" data-state={item.state}>\n {item.state === \"approved\" ? \"Выполняю действие\" : \"Действие отклонено\"}\n </div>\n ) : null}\n {item.state === \"pending\" ? (\n <div className=\"blinq-actions\">\n <Button type=\"button\" variant=\"outline\" onClick={onDecline}>\n Отклонить\n </Button>\n <Button\n type=\"button\"\n onClick={onApprove}\n style={{\n background: accentColor,\n }}\n >\n Выполнить\n </Button>\n </div>\n ) : null}\n </CardContent>\n </Card>\n )\n}\n\nfunction PlanCard({\n item,\n onApprove,\n onDecline,\n}: {\n item: WidgetPlanConversationItem\n onApprove(): void\n onDecline(): void\n}) {\n return (\n <Card className=\"blinq-action-card blinq-plan-card\">\n <CardHeader>\n <div className=\"flex items-center justify-between gap-3\">\n <div>\n <CardTitle>План</CardTitle>\n <CardDescription>{item.goal}</CardDescription>\n </div>\n <Badge variant={item.status === \"completed\" ? \"default\" : item.status === \"failed\" ? \"outline\" : \"soft\"}>\n {item.status === \"completed\"\n ? \"Готово\"\n : item.status === \"failed\"\n ? \"Ошибка\"\n : item.status === \"awaiting_navigation\"\n ? \"Переход\"\n : \"В работе\"}\n </Badge>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {item.progressLabel ? <div className=\"blinq-action-state\">{item.progressLabel}</div> : null}\n {item.statusReason ? <div className=\"blinq-card-description\">{item.statusReason}</div> : null}\n <div className=\"space-y-2\">\n {item.steps.map((step, index) => (\n <div\n key={step.id}\n className=\"blinq-plan-step\"\n data-current={index === item.currentStepIndex ? \"true\" : \"false\"}\n data-status={step.status}\n >\n <span className=\"blinq-plan-step-index\">{index + 1}</span>\n <div className=\"blinq-plan-step-copy\">\n <div>{step.title}</div>\n <div className=\"blinq-plan-step-meta\">\n {step.status === \"completed\"\n ? \"Выполнено\"\n : step.status === \"failed\"\n ? \"Ошибка\"\n : step.status === \"cancelled\"\n ? \"Отменено\"\n : index === item.currentStepIndex\n ? \"Текущий шаг\"\n : \"Ожидает\"}\n </div>\n </div>\n </div>\n ))}\n </div>\n {item.approvalState === \"pending\" ? (\n <div className=\"blinq-actions\">\n <Button type=\"button\" variant=\"outline\" onClick={onDecline}>\n Отклонить\n </Button>\n <Button type=\"button\" onClick={onApprove}>\n Выполнить\n </Button>\n </div>\n ) : null}\n </CardContent>\n </Card>\n )\n}\n\nfunction AssistantConversationThread({\n items,\n showThinkingIndicator,\n accentColor,\n onApproveAction,\n onDeclineAction,\n onApprovePlan,\n onDeclinePlan,\n}: {\n items: WidgetConversationItem[]\n showThinkingIndicator: boolean\n accentColor: string\n onApproveAction(id: string): void\n onDeclineAction(id: string): void\n onApprovePlan(): void\n onDeclinePlan(): void\n}) {\n const messages = React.useMemo(() => conversationToThreadMessages(items), [items])\n const runtime = useExternalStoreRuntime({\n messages,\n isRunning: messages.some((message) => message.role === \"assistant\" && message.status?.type === \"running\"),\n convertMessage: (message) => message,\n onNew: async () => undefined,\n })\n const scrollRef = React.useRef<HTMLDivElement | null>(null)\n\n React.useEffect(() => {\n if (!scrollRef.current) {\n return\n }\n scrollRef.current.scrollTop = scrollRef.current.scrollHeight\n }, [items])\n\n const assistantMessageComponent = React.useMemo(\n () =>\n function AssistantMessageComponent() {\n return (\n <ThreadMessageBubble\n accentColor={accentColor}\n onApproveAction={onApproveAction}\n onDeclineAction={onDeclineAction}\n onApprovePlan={onApprovePlan}\n onDeclinePlan={onDeclinePlan}\n />\n )\n },\n [accentColor, onApproveAction, onDeclineAction, onApprovePlan, onDeclinePlan]\n )\n\n const userMessageComponent = React.useMemo(\n () =>\n function UserMessageComponent() {\n return (\n <ThreadMessageBubble\n accentColor={accentColor}\n onApproveAction={onApproveAction}\n onDeclineAction={onDeclineAction}\n onApprovePlan={onApprovePlan}\n onDeclinePlan={onDeclinePlan}\n />\n )\n },\n [accentColor, onApproveAction, onDeclineAction, onApprovePlan, onDeclinePlan]\n )\n\n return (\n <AssistantRuntimeProvider runtime={runtime}>\n <ThreadPrimitive.Root className=\"blinq-thread\">\n <ThreadPrimitive.Viewport ref={scrollRef} className=\"blinq-scroll blinq-thread-viewport\">\n <ThreadPrimitive.Messages\n components={{\n UserMessage: userMessageComponent,\n AssistantMessage: assistantMessageComponent,\n }}\n />\n {showThinkingIndicator ? <ThinkingPlaceholder /> : null}\n </ThreadPrimitive.Viewport>\n </ThreadPrimitive.Root>\n </AssistantRuntimeProvider>\n )\n}\n\nexport function WidgetEmbedShell({\n state,\n onOpen,\n onCollapse,\n onInputChange,\n onSubmit,\n onToggleVoice,\n onApproveAction,\n onDeclineAction,\n onApprovePlan,\n onDeclinePlan,\n}: WidgetEmbedShellProps) {\n return (\n <div\n className=\"blinq-shell\"\n data-side={state.side}\n style={{ [\"--blinq-accent\" as string]: state.accentColor }}\n >\n {!state.minimized ? (\n <div className=\"blinq-panel\">\n <div className=\"blinq-header\">\n <div className=\"blinq-header-row\">\n <div className=\"blinq-header-copy\">\n <div className=\"blinq-heading\">{state.assistantName}</div>\n </div>\n <Button\n type=\"button\"\n size=\"icon-sm\"\n variant=\"ghost\"\n aria-label=\"Свернуть виджет\"\n title=\"Свернуть виджет\"\n onClick={onCollapse}\n >\n <CollapseIcon />\n </Button>\n </div>\n {state.statusText ? <div className=\"blinq-status-line\">{state.statusText}</div> : null}\n </div>\n <AssistantConversationThread\n items={state.items}\n showThinkingIndicator={state.showThinkingIndicator}\n accentColor={state.accentColor}\n onApproveAction={onApproveAction}\n onDeclineAction={onDeclineAction}\n onApprovePlan={onApprovePlan}\n onDeclinePlan={onDeclinePlan}\n />\n\n <form\n className=\"blinq-composer\"\n onSubmit={(event) => {\n event.preventDefault()\n onSubmit()\n }}\n >\n <div className=\"blinq-composer-controls\">\n <div className=\"blinq-input-shell\">\n <Button\n type=\"button\"\n size=\"icon-sm\"\n variant={state.voiceListening ? \"destructive\" : \"ghost\"}\n className=\"blinq-input-mic\"\n aria-label={state.voiceListening ? \"Остановить голосовой ввод\" : \"Начать голосовой ввод\"}\n title={\n !state.voiceSupported\n ? \"Голосовой ввод не поддерживается в этом браузере\"\n : state.voiceListening\n ? \"Остановить запись\"\n : \"Начать голосовой ввод\"\n }\n disabled={!state.voiceSupported || state.isSending}\n onClick={onToggleVoice}\n >\n <MicrophoneIcon listening={state.voiceListening} />\n </Button>\n\n {state.voiceListening ? (\n <VoiceWaveform\n durationMs={state.voiceDurationMs}\n samples={state.voiceWaveform}\n />\n ) : (\n <Input\n value={state.inputValue}\n placeholder=\"Например: найди нужную кнопку или заполни форму\"\n onChange={(event) => onInputChange(event.currentTarget.value)}\n disabled={state.isSending}\n />\n )}\n\n <Button\n type=\"submit\"\n size=\"icon-sm\"\n className=\"blinq-input-send\"\n aria-label=\"Отправить сообщение\"\n title=\"Отправить сообщение\"\n disabled={state.isSending || state.voiceListening}\n >\n <SendIcon />\n </Button>\n </div>\n </div>\n </form>\n </div>\n ) : null}\n\n {state.minimized ? (\n <Button\n type=\"button\"\n size=\"icon\"\n className=\"blinq-launcher blinq-launcher-icon-only\"\n aria-label={`Открыть ${state.assistantName}`}\n title={`Открыть ${state.assistantName}`}\n onClick={onOpen}\n >\n <span className=\"blinq-launcher-badge\">\n <LauncherIcon />\n </span>\n </Button>\n ) : null}\n </div>\n )\n}\n","import { useLayoutEffect, useMemo, useReducer, useRef, useState } from \"react\";\nimport {\n ResourceFiberRoot,\n type ExtractResourceReturnType,\n type ResourceElement,\n} from \"../core/types\";\nimport {\n createResourceFiber,\n unmountResourceFiber,\n renderResourceFiber,\n commitResourceFiber,\n} from \"../core/ResourceFiber\";\nimport { isDevelopment } from \"../core/helpers/env\";\nimport {\n commitRoot,\n createResourceFiberRoot,\n setRootVersion,\n} from \"../core/helpers/root\";\n\nconst useDevStrictMode = () => {\n if (!isDevelopment) return null;\n\n const count = useRef(0);\n const isFirstRender = count.current === 0;\n useState(() => count.current++);\n if (count.current !== 2) return null;\n return isFirstRender ? (\"child\" as const) : (\"root\" as const);\n};\n\nexport function useResource<E extends ResourceElement<any, any>>(\n element: E,\n): ExtractResourceReturnType<E> {\n const root = useMemo<ResourceFiberRoot>(() => {\n return createResourceFiberRoot((cb) => dispatch(cb));\n }, []);\n\n const [version, dispatch] = useReducer((v: number, cb: () => boolean) => {\n setRootVersion(root, v);\n return v + (cb() ? 1 : 0);\n }, 0);\n setRootVersion(root, version);\n\n const devStrictMode = useDevStrictMode();\n const fiber = useMemo(() => {\n void element.key;\n return createResourceFiber(element.type, root, undefined, devStrictMode);\n }, [element.type, element.key, root, devStrictMode]);\n\n const result = renderResourceFiber(fiber, element.props);\n useLayoutEffect(() => {\n return () => unmountResourceFiber(fiber);\n }, [fiber]);\n useLayoutEffect(() => {\n commitRoot(root);\n commitResourceFiber(fiber, result);\n });\n\n return result.output;\n}\n","import { ResourceFiber, RenderResult } from \"../types\";\n\nexport function commitAllEffects(renderResult: RenderResult): void {\n const errors: unknown[] = [];\n\n for (const task of renderResult.effectTasks) {\n try {\n task();\n } catch (error) {\n errors.push(error);\n }\n }\n\n if (errors.length > 0) {\n if (errors.length === 1) {\n throw errors[0];\n } else {\n for (const error of errors) {\n console.error(error);\n }\n throw new AggregateError(errors, \"Errors during commit\");\n }\n }\n}\n\nexport function cleanupAllEffects<R, P>(executionContext: ResourceFiber<R, P>) {\n const errors: unknown[] = [];\n for (const cell of executionContext.cells) {\n if (cell?.type === \"effect\") {\n cell.deps = null; // Reset deps so effect runs again on next mount\n\n if (cell.cleanup) {\n try {\n cell.cleanup?.();\n } catch (e) {\n errors.push(e);\n } finally {\n cell.cleanup = undefined;\n }\n }\n }\n }\n if (errors.length > 0) {\n if (errors.length === 1) {\n throw errors[0];\n } else {\n for (const error of errors) {\n console.error(error);\n }\n throw new AggregateError(errors, \"Errors during cleanup\");\n }\n }\n}\n","export const isDevelopment =\n typeof process !== \"undefined\" &&\n (process.env.NODE_ENV === \"development\" || process.env.NODE_ENV === \"test\");\n","import { isDevelopment } from \"./env\";\nimport { ResourceFiber } from \"../types\";\n\nlet currentResourceFiber: ResourceFiber<any, any> | null = null;\n\nexport function withResourceFiber<R, P>(\n fiber: ResourceFiber<R, P>,\n fn: () => void,\n): void {\n fiber.currentIndex = 0;\n\n const previousContext = currentResourceFiber;\n currentResourceFiber = fiber;\n try {\n fn();\n\n fiber.isFirstRender = false;\n\n // ensure hook count matches\n if (fiber.cells.length !== fiber.currentIndex) {\n throw new Error(\n `Rendered ${fiber.currentIndex} hooks but expected ${fiber.cells.length}. ` +\n \"Hooks must be called in the exact same order in every render.\",\n );\n }\n } finally {\n currentResourceFiber = previousContext;\n }\n}\nexport function getCurrentResourceFiber(): ResourceFiber<unknown, unknown> {\n if (!currentResourceFiber) {\n throw new Error(\"No resource fiber available\");\n }\n return currentResourceFiber;\n}\n\nexport function getDevStrictMode(enable: boolean) {\n if (!isDevelopment) return null;\n if (currentResourceFiber?.devStrictMode)\n return currentResourceFiber.isFirstRender ? \"child\" : \"root\";\n\n return enable ? \"root\" : null;\n}\n","import { Resource } from \"../types\";\n\n/**\n * Renders a resource with the given props.\n * @internal This is for internal use only.\n */\nexport function callResourceFn<R, P>(resource: Resource<R, P>, props: P): R {\n const fn = (resource as unknown as { [fnSymbol]?: (props: P) => R })[\n fnSymbol\n ];\n if (!fn) {\n throw new Error(\"ResourceElement.type is not a valid Resource\");\n }\n return fn(props);\n}\n\n/**\n * Symbol used to store the ResourceFn in the Resource constructor.\n * @internal This is for internal use only.\n */\nexport const fnSymbol = Symbol(\"fnSymbol\");\n","import {\n ResourceFiber,\n RenderResult,\n Resource,\n ResourceFiberRoot,\n} from \"./types\";\nimport { commitAllEffects, cleanupAllEffects } from \"./helpers/commit\";\nimport {\n getDevStrictMode,\n withResourceFiber,\n} from \"./helpers/execution-context\";\nimport { callResourceFn } from \"./helpers/callResourceFn\";\nimport { isDevelopment } from \"./helpers/env\";\n\nexport function createResourceFiber<R, P>(\n type: Resource<R, P>,\n root: ResourceFiberRoot,\n markDirty: (() => void) | undefined = undefined,\n strictMode: \"root\" | \"child\" | null = getDevStrictMode(false),\n): ResourceFiber<R, P> {\n return {\n type,\n root,\n markDirty,\n devStrictMode: strictMode,\n cells: [],\n currentIndex: 0,\n renderContext: undefined,\n isFirstRender: true,\n isMounted: false,\n isNeverMounted: true,\n };\n}\n\nexport function unmountResourceFiber<R, P>(fiber: ResourceFiber<R, P>): void {\n if (!fiber.isMounted)\n throw new Error(\"Tried to unmount a fiber that is already unmounted\");\n\n fiber.isMounted = false;\n cleanupAllEffects(fiber);\n}\n\nexport function renderResourceFiber<R, P>(\n fiber: ResourceFiber<R, P>,\n props: P,\n): RenderResult {\n const result = {\n effectTasks: [],\n props,\n output: undefined as R | undefined,\n };\n\n withResourceFiber(fiber, () => {\n fiber.renderContext = result;\n try {\n result.output = callResourceFn(fiber.type, props);\n } finally {\n fiber.renderContext = undefined;\n }\n });\n\n return result;\n}\n\nexport function commitResourceFiber<R, P>(\n fiber: ResourceFiber<R, P>,\n result: RenderResult,\n): void {\n fiber.isMounted = true;\n\n if (isDevelopment && fiber.isNeverMounted && fiber.devStrictMode === \"root\") {\n fiber.isNeverMounted = false;\n\n commitAllEffects(result);\n cleanupAllEffects(fiber);\n }\n\n fiber.isNeverMounted = false;\n commitAllEffects(result);\n}\n","import { Cell, ResourceFiber, ResourceFiberRoot } from \"../types\";\n\nexport const createResourceFiberRoot = (\n dispatchUpdate: (cb: () => boolean) => void,\n): ResourceFiberRoot => {\n return {\n version: 0,\n committedVersion: 0,\n dispatchUpdate,\n changelog: [],\n dirtyCells: [],\n };\n};\n\nexport const commitRoot = (root: ResourceFiberRoot): void => {\n for (const cell of root.dirtyCells) {\n cell.dirty = false;\n cell.queue.clear();\n cell.current = cell.workInProgress;\n }\n root.committedVersion = root.version;\n root.changelog.length = 0;\n root.dirtyCells.length = 0;\n};\n\nexport const setRootVersion = (\n root: ResourceFiberRoot,\n version: number,\n): void => {\n const rollback = root.version > version;\n root.version = version;\n if (rollback) {\n for (const cell of root.dirtyCells) {\n cell.dirty = false;\n cell.queue.clear();\n cell.workInProgress = cell.current;\n }\n root.dirtyCells.length = 0;\n\n if (version === root.committedVersion) {\n root.changelog.length = 0;\n } else {\n // commit happened without a useEffect update (offscreen API)\n\n if (root.committedVersion > version)\n throw new Error(\"Version is less than committed version\");\n\n while (root.committedVersion + root.changelog.length > version) {\n root.changelog.pop();\n }\n\n root.changelog.forEach((apply) => apply());\n commitRoot(root);\n }\n }\n};\n\nexport const markCellDirty = (\n fiber: ResourceFiber<any, any>,\n cell: Cell & { type: \"reducer\" },\n): void => {\n if (!cell.dirty) {\n cell.dirty = true;\n fiber.markDirty?.();\n fiber.root.dirtyCells.push(cell);\n }\n};\n","import { ResourceElement } from \"./types\";\nimport { fnSymbol } from \"./helpers/callResourceFn\";\n\nexport function resource<R>(fn: () => R): () => ResourceElement<R, undefined>;\nexport function resource<R, P>(\n fn: (props: P) => R,\n): (props: P) => ResourceElement<R, P>;\nexport function resource<R, P>(\n fn: (props?: P) => R,\n): (props?: P) => ResourceElement<R, P | undefined>;\nexport function resource<R, P = undefined>(fn: (props: P) => R) {\n const type = (props?: P) => {\n return {\n type,\n props: props!,\n } satisfies ResourceElement<R, P>;\n };\n\n type[fnSymbol] = fn;\n\n return type;\n}\n","import { ResourceElement } from \"./types\";\n\nexport function withKey<E extends ResourceElement<any, any>>(\n key: string | number,\n element: E,\n): E {\n return { ...element, key };\n}\n","import { getCurrentResourceFiber } from \"../../core/helpers/execution-context\";\nimport { Cell } from \"../../core/types\";\n\nexport const tapHook = <T extends Cell[\"type\"]>(\n type: T,\n init: () => Cell,\n): Cell & { type: T } => {\n const fiber = getCurrentResourceFiber();\n const index = fiber.currentIndex++;\n\n if (!fiber.isFirstRender && index >= fiber.cells.length) {\n // Check if we're trying to use more hooks than in previous renders\n throw new Error(\n \"Rendered more hooks than during the previous render. \" +\n \"Hooks must be called in the exact same order in every render.\",\n );\n }\n\n let cell = fiber.cells[index];\n if (!cell) {\n cell = init();\n fiber.cells[index] = cell;\n }\n\n if (cell.type !== type) {\n throw new Error(\"Hook order changed between renders\");\n }\n\n return cell as Cell & { type: T };\n};\n\nexport const registerRenderMountTask = (task: () => void) => {\n const fiber = getCurrentResourceFiber();\n fiber.renderContext!.effectTasks.push(task);\n};\n","import { isDevelopment } from \"../core/helpers/env\";\nimport { getCurrentResourceFiber } from \"../core/helpers/execution-context\";\nimport { ReducerQueueEntry, ResourceFiber } from \"../core/types\";\nimport { markCellDirty } from \"../core/helpers/root\";\nimport { tapHook } from \"./utils/tapHook\";\n\ntype Dispatch<A> = (action: A) => void;\n\nconst dispatchOnFiber = (\n fiber: ResourceFiber<any, any>,\n callback: () => (() => void) | null,\n): void => {\n if (fiber.renderContext) {\n throw new Error(\"Resource updated during render\");\n }\n if (fiber.isNeverMounted) {\n throw new Error(\"Resource updated before mount\");\n }\n\n fiber.root.dispatchUpdate(() => {\n const result = callback();\n if (result) {\n result();\n fiber.root.changelog.push(result);\n return true;\n }\n return false;\n });\n};\n\nfunction tapReducerImpl<S, A, I, R extends S>(\n reducer: (state: S, action: A) => S,\n getDerivedState: ((state: S) => R) | undefined,\n initialArg: S | I,\n initFn: ((arg: I) => S) | undefined,\n): [R, Dispatch<A>] {\n const cell = tapHook(\"reducer\", () => {\n const fiber = getCurrentResourceFiber();\n\n // First render: compute initial state\n const initialState = initFn ? initFn(initialArg as I) : initialArg;\n\n if (isDevelopment && fiber.devStrictMode && initFn) {\n void initFn(initialArg as I);\n }\n\n return {\n type: \"reducer\",\n queue: new Set(),\n dirty: false,\n workInProgress: initialState,\n current: initialState,\n reducer,\n dispatch: (action: A) => {\n const entry: ReducerQueueEntry = {\n action,\n hasEagerState: false,\n eagerState: undefined,\n };\n\n dispatchOnFiber(fiber, () => {\n if (fiber.root.dirtyCells.length === 0 && !entry.hasEagerState) {\n entry.eagerState = reducer(cell.workInProgress, action);\n entry.hasEagerState = true;\n\n if (Object.is(cell.current, entry.eagerState)) return null;\n }\n\n return () => {\n markCellDirty(fiber, cell);\n cell.queue.add(entry);\n };\n });\n },\n };\n });\n\n const fiber = getCurrentResourceFiber();\n const sameReducer = reducer === cell.reducer;\n cell.reducer = reducer;\n\n for (const item of cell.queue) {\n if (!item.hasEagerState || !sameReducer) {\n item.eagerState = reducer(cell.workInProgress, item.action);\n item.hasEagerState = true;\n }\n\n if (isDevelopment && fiber.devStrictMode) {\n void reducer(cell.workInProgress, item.action);\n }\n\n cell.workInProgress = item.eagerState;\n }\n cell.queue.clear();\n\n if (getDerivedState) {\n const derived = getDerivedState(cell.workInProgress);\n\n if (!Object.is(derived, cell.workInProgress)) {\n markCellDirty(fiber, cell);\n cell.workInProgress = derived;\n }\n }\n\n return [cell.workInProgress, cell.dispatch];\n}\n\nexport function tapReducer<S, A>(\n reducer: (state: S, action: A) => S,\n initialState: S,\n): [S, Dispatch<A>];\nexport function tapReducer<S, A, I>(\n reducer: (state: S, action: A) => S,\n initialArg: I,\n init: (arg: I) => S,\n): [S, Dispatch<A>];\nexport function tapReducer<S, A, I>(\n reducer: (state: S, action: A) => S,\n initialArg: S | I,\n init?: (arg: I) => S,\n): [S, Dispatch<A>] {\n return tapReducerImpl(\n reducer,\n undefined,\n initialArg as S,\n init as ((arg: S) => S) | undefined,\n );\n}\n\nexport function tapReducerWithDerivedState<S, A, R extends S>(\n reducer: (state: S, action: A) => S,\n getDerivedState: (state: S) => R,\n initialState: S,\n): [R, Dispatch<A>];\nexport function tapReducerWithDerivedState<S, A, I, R extends S>(\n reducer: (state: S, action: A) => S,\n getDerivedState: (state: S) => R,\n initialArg: I,\n init: (arg: I) => S,\n): [R, Dispatch<A>];\nexport function tapReducerWithDerivedState<S, A, I, R extends S>(\n reducer: (state: S, action: A) => S,\n getDerivedState: (state: S) => R,\n initialArg: I,\n init?: (arg: I) => S,\n): [R, Dispatch<A>] {\n return tapReducerImpl(reducer, getDerivedState, initialArg, init);\n}\n","import { tapReducer } from \"./tap-reducer\";\n\nexport namespace tapState {\n export type StateUpdater<S> = S | ((prev: S) => S);\n}\n\nconst stateReducer = <S>(\n state: S | undefined,\n action: tapState.StateUpdater<S>,\n): S =>\n typeof action === \"function\"\n ? (action as (prev: S | undefined) => S)(state)\n : action;\n\nconst stateInit = <S>(initial: S | (() => S)): S =>\n typeof initial === \"function\" ? (initial as () => S)() : initial;\n\nexport function tapState<S = undefined>(): [\n S | undefined,\n (updater: tapState.StateUpdater<S>) => void,\n];\nexport function tapState<S>(\n initial: S | (() => S),\n): [S, (updater: tapState.StateUpdater<S>) => void];\nexport function tapState<S>(\n initial?: S | (() => S),\n): [S | undefined, (updater: tapState.StateUpdater<S>) => void] {\n return tapReducer(stateReducer, initial, stateInit);\n}\n","export const depsShallowEqual = (\n a: readonly unknown[],\n b: readonly unknown[],\n) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!Object.is(a[i], b[i])) return false;\n }\n return true;\n};\n","import { Cell } from \"../core/types\";\nimport { depsShallowEqual } from \"./utils/depsShallowEqual\";\nimport { tapHook, registerRenderMountTask } from \"./utils/tapHook\";\n\nconst newEffect = (): Cell & { type: \"effect\" } => ({\n type: \"effect\",\n cleanup: undefined,\n deps: null, // null means the effect has never been run\n});\n\nexport namespace tapEffect {\n export type Destructor = () => void;\n export type EffectCallback = () => void | Destructor;\n}\n\nexport function tapEffect(effect: tapEffect.EffectCallback): void;\nexport function tapEffect(\n effect: tapEffect.EffectCallback,\n deps: readonly unknown[],\n): void;\nexport function tapEffect(\n effect: tapEffect.EffectCallback,\n deps?: readonly unknown[],\n): void {\n const cell = tapHook(\"effect\", newEffect);\n\n if (deps && cell.deps && depsShallowEqual(cell.deps, deps)) return;\n if (cell.deps !== null && !!deps !== !!cell.deps)\n throw new Error(\n \"tapEffect called with and without dependencies across re-renders\",\n );\n\n registerRenderMountTask(() => {\n const errors: unknown[] = [];\n\n try {\n cell.cleanup?.();\n } catch (error) {\n errors.push(error);\n } finally {\n cell.cleanup = undefined;\n }\n\n try {\n const cleanup = effect();\n\n if (cleanup !== undefined && typeof cleanup !== \"function\") {\n throw new Error(\n \"An effect function must either return a cleanup function or nothing. \" +\n `Received: ${typeof cleanup}`,\n );\n }\n\n cell.cleanup = cleanup;\n } catch (error) {\n errors.push(error);\n }\n\n cell.deps = deps;\n\n if (errors.length > 0) {\n if (errors.length === 1) {\n throw errors[0];\n } else {\n for (const error of errors) {\n console.error(error);\n }\n throw new AggregateError(errors, \"Errors during commit\");\n }\n }\n });\n}\n","import { tapState } from \"./tap-state\";\n\nexport namespace tapRef {\n export interface RefObject<T> {\n current: T;\n }\n}\n\nexport function tapRef<T>(initialValue: T): tapRef.RefObject<T>;\nexport function tapRef<T = undefined>(): tapRef.RefObject<T | undefined>;\nexport function tapRef<T>(initialValue?: T): tapRef.RefObject<T | undefined> {\n const [state] = tapState(() => ({\n current: initialValue,\n }));\n return state;\n}\n","import { tapState } from \"./tap-state\";\n\nexport function tapConst<T>(getValue: () => T, _deps: readonly never[]): T {\n const [state] = tapState(getValue);\n return state;\n}\n","import { isDevelopment } from \"../core/helpers/env\";\nimport { getCurrentResourceFiber } from \"../core/helpers/execution-context\";\nimport { tapReducerWithDerivedState } from \"./tap-reducer\";\nimport { depsShallowEqual } from \"./utils/depsShallowEqual\";\n\nconst memoReducer = () => {\n throw new Error(\"Memo reducer should not be called\");\n};\n\ntype MemoState<T> = { value: T; deps: readonly unknown[] };\n\nexport const tapMemo = <T>(fn: () => T, deps: readonly unknown[]): T => {\n const fiber = getCurrentResourceFiber();\n const [state] = tapReducerWithDerivedState(\n memoReducer,\n (state: MemoState<T> | null): MemoState<T> => {\n if (state && depsShallowEqual(state.deps, deps)) return state;\n\n const value = fn();\n\n if (isDevelopment && fiber.devStrictMode) {\n void fn();\n }\n\n return { value, deps };\n },\n null,\n );\n return state.value;\n};\n","import { tapMemo } from \"./tap-memo\";\n\nexport const tapCallback = <T extends (...args: any[]) => any>(\n fn: T,\n deps: readonly unknown[],\n): T => {\n // biome-ignore lint/correctness/useExhaustiveDependencies: user provided deps instead of callback identity\n return tapMemo(() => fn, deps);\n};\n","import { tapRef } from \"./tap-ref\";\nimport { tapEffect } from \"./tap-effect\";\nimport { isDevelopment } from \"../core/helpers/env\";\nimport { tapCallback } from \"./tap-callback\";\nimport { getCurrentResourceFiber } from \"../core/helpers/execution-context\";\n\n/**\n * Creates a stable function reference that always calls the most recent version of the callback.\n * Similar to React's useEffectEvent hook.\n *\n * @param callback - The callback function to wrap\n * @returns A stable function reference that always calls the latest callback\n *\n * @example\n * ```typescript\n * const handleClick = tapEffectEvent((value: string) => {\n * console.log(value);\n * });\n * // handleClick reference is stable, but always calls the latest version\n * ```\n */\nexport function tapEffectEvent<T extends (...args: any[]) => any>(\n callback: T,\n): T {\n const callbackRef = tapRef(callback);\n\n // TODO this effect needs to run before all userland effects\n tapEffect(() => {\n callbackRef.current = callback;\n });\n\n if (isDevelopment) {\n const fiber = getCurrentResourceFiber();\n return tapCallback(\n ((...args: Parameters<T>) => {\n if (fiber.renderContext)\n throw new Error(\"tapEffectEvent cannot be called during render\");\n return callbackRef.current(...args);\n }) as T,\n [fiber],\n );\n }\n\n return callbackRef.current;\n}\n","import { ExtractResourceReturnType, ResourceElement } from \"../core/types\";\nimport { tapEffect } from \"./tap-effect\";\nimport {\n createResourceFiber,\n unmountResourceFiber,\n renderResourceFiber,\n commitResourceFiber,\n} from \"../core/ResourceFiber\";\nimport { tapMemo } from \"./tap-memo\";\nimport { tapRef } from \"./tap-ref\";\nimport { getCurrentResourceFiber } from \"../core/helpers/execution-context\";\n\nexport function tapResource<E extends ResourceElement<any, any>>(\n element: E,\n): ExtractResourceReturnType<E>;\nexport function tapResource<E extends ResourceElement<any, any>>(\n element: E,\n propsDeps: readonly unknown[],\n): ExtractResourceReturnType<E>;\nexport function tapResource<E extends ResourceElement<any, any>>(\n element: E,\n propsDeps?: readonly unknown[],\n): ExtractResourceReturnType<E> {\n const parentFiber = getCurrentResourceFiber();\n const versionRef = tapRef(0);\n const fiber = tapMemo(() => {\n void element.key;\n return createResourceFiber(element.type, parentFiber.root, () => {\n versionRef.current++;\n parentFiber.markDirty?.();\n });\n }, [element.type, element.key, parentFiber]);\n\n const result = propsDeps\n ? // biome-ignore lint/correctness/useExhaustiveDependencies: user provided deps instead of prop identity\n tapMemo(\n () => renderResourceFiber(fiber, element.props),\n [fiber, ...propsDeps, versionRef.current],\n )\n : renderResourceFiber(fiber, element.props);\n\n tapEffect(() => () => unmountResourceFiber(fiber), [fiber]);\n tapEffect(() => {\n commitResourceFiber(fiber, result);\n }, [fiber, result]);\n\n return result.output;\n}\n","import {\n ExtractResourceReturnType,\n RenderResult,\n ResourceElement,\n ResourceFiber,\n} from \"../core/types\";\nimport { tapEffect } from \"./tap-effect\";\nimport { tapMemo } from \"./tap-memo\";\nimport { tapCallback } from \"./tap-callback\";\nimport {\n createResourceFiber,\n unmountResourceFiber,\n renderResourceFiber,\n commitResourceFiber,\n} from \"../core/ResourceFiber\";\nimport { tapConst } from \"./tap-const\";\nimport { tapRef } from \"./tap-ref\";\nimport { getCurrentResourceFiber } from \"../core/helpers/execution-context\";\n\ntype FiberState = {\n fiber: ResourceFiber<unknown, unknown>;\n next:\n | RenderResult\n | [ResourceFiber<unknown, unknown>, RenderResult]\n | \"delete\";\n};\n\nexport function tapResources<E extends ResourceElement<any, any>>(\n getElements: () => readonly E[],\n getElementsDeps?: readonly unknown[],\n): ExtractResourceReturnType<E>[] {\n const versionRef = tapRef(0);\n const version = versionRef.current;\n\n const parentFiber = tapConst(getCurrentResourceFiber, []);\n const markDirty = tapConst(\n () => () => {\n versionRef.current++;\n parentFiber.markDirty?.();\n },\n [],\n );\n const fibers = tapConst(() => new Map<string | number, FiberState>(), []);\n\n const getElementsMemo = getElementsDeps\n ? // biome-ignore lint/correctness/useExhaustiveDependencies: library code\n tapCallback(getElements, getElementsDeps)\n : getElements;\n\n // Process each element\n\n const res = tapMemo(() => {\n void version;\n\n const elementsArray = getElementsMemo();\n const seenKeys = new Set<string | number>();\n const results: any[] = [];\n let newCount = 0;\n\n // Create/update fibers and render\n for (let i = 0; i < elementsArray.length; i++) {\n const element = elementsArray[i]!;\n\n const elementKey = element.key;\n if (elementKey === undefined) {\n throw new Error(\n `tapResources did not provide a key for array at index ${i}`,\n );\n }\n\n if (seenKeys.has(elementKey))\n throw new Error(`Duplicate key ${elementKey} in tapResources`);\n seenKeys.add(elementKey);\n\n let state = fibers.get(elementKey);\n if (!state) {\n const fiber = createResourceFiber(\n element.type,\n parentFiber.root,\n markDirty,\n );\n const result = renderResourceFiber(fiber, element.props);\n state = {\n fiber,\n next: result,\n };\n newCount++;\n fibers.set(elementKey, state);\n results.push(result.output);\n } else if (state.fiber.type !== element.type) {\n const fiber = createResourceFiber(\n element.type,\n parentFiber.root,\n markDirty,\n );\n const result = renderResourceFiber(fiber, element.props);\n state.next = [fiber, result];\n results.push(result.output);\n } else {\n state.next = renderResourceFiber(state.fiber, element.props);\n results.push(state.next.output);\n }\n }\n\n // Clean up removed fibers (only if there might be stale ones)\n if (fibers.size > results.length - newCount) {\n for (const key of fibers.keys()) {\n if (!seenKeys.has(key)) {\n fibers.get(key)!.next = \"delete\";\n }\n }\n }\n\n return results;\n }, [getElementsMemo, version]);\n\n // Cleanup on unmount\n tapEffect(() => {\n return () => {\n for (const key of fibers.keys()) {\n const fiber = fibers.get(key)!.fiber;\n unmountResourceFiber(fiber);\n }\n };\n }, []);\n\n tapEffect(() => {\n res; // as a performance optimization, we only run if the results have changed\n\n for (const [key, state] of fibers.entries()) {\n if (state.next === \"delete\") {\n if (state.fiber.isMounted) {\n unmountResourceFiber(state.fiber);\n }\n\n fibers.delete(key);\n } else if (Array.isArray(state.next)) {\n unmountResourceFiber(state.fiber);\n state.fiber = state.next[0];\n commitResourceFiber(state.fiber, state.next[1]);\n } else {\n commitResourceFiber(state.fiber, state.next);\n }\n }\n }, [res]);\n\n return res;\n}\n","type Task = () => void;\n\ntype GlobalFlushState = {\n schedulers: Set<UpdateScheduler>;\n isScheduled: boolean;\n};\n\nconst MAX_FLUSH_LIMIT = 50;\nlet flushState: GlobalFlushState = {\n schedulers: new Set([]),\n isScheduled: false,\n};\n\nexport class UpdateScheduler {\n private _isDirty = false;\n\n constructor(private readonly _task: Task) {}\n\n get isDirty() {\n return this._isDirty;\n }\n\n markDirty() {\n this._isDirty = true;\n\n flushState.schedulers.add(this);\n scheduleFlush();\n }\n\n runTask() {\n this._isDirty = false;\n this._task();\n }\n}\n\nconst scheduleFlush = () => {\n if (flushState.isScheduled) return;\n flushState.isScheduled = true;\n scheduleMacrotask();\n};\n\nconst flushScheduled = () => {\n try {\n const errors = [];\n let flushDepth = 0;\n\n for (const scheduler of flushState.schedulers) {\n flushState.schedulers.delete(scheduler);\n if (!scheduler.isDirty) continue;\n\n flushDepth++;\n\n if (flushDepth > MAX_FLUSH_LIMIT) {\n throw new Error(\n `Maximum update depth exceeded. This can happen when a resource ` +\n `repeatedly calls setState inside tapEffect.`,\n );\n }\n\n try {\n scheduler.runTask();\n } catch (error) {\n errors.push(error);\n }\n }\n\n if (errors.length > 0) {\n if (errors.length === 1) {\n throw errors[0];\n } else {\n for (const error of errors) {\n console.error(error);\n }\n throw new AggregateError(errors, \"Errors occurred during flushSync\");\n }\n }\n } finally {\n flushState.schedulers.clear();\n flushState.isScheduled = false;\n }\n};\n\n// Use MessageChannel to schedule flushes as macrotasks (like React's scheduler).\n// This allows more state updates to batch into a single re-render.\nconst scheduleMacrotask = (() => {\n if (typeof MessageChannel !== \"undefined\") {\n const channel = new MessageChannel();\n channel.port1.onmessage = flushScheduled;\n return () => channel.port2.postMessage(null);\n }\n // Fallback for environments without MessageChannel\n return () => setTimeout(flushScheduled, 0);\n})();\n\nexport const flushResourcesSync = <T>(callback: () => T): T => {\n const prev = flushState;\n flushState = {\n schedulers: new Set([]),\n isScheduled: true,\n };\n\n try {\n const result = callback();\n flushScheduled();\n\n return result;\n } finally {\n flushState = prev;\n }\n};\n","import {\n commitResourceFiber,\n createResourceFiber,\n renderResourceFiber,\n unmountResourceFiber,\n} from \"./core/ResourceFiber\";\nimport { UpdateScheduler } from \"./core/scheduler\";\nimport { tapConst } from \"./hooks/tap-const\";\nimport { tapMemo } from \"./hooks/tap-memo\";\nimport { tapEffect } from \"./hooks/tap-effect\";\nimport { tapEffectEvent } from \"./hooks/tap-effect-event\";\nimport { tapRef } from \"./hooks/tap-ref\";\nimport { RenderResult, ResourceElement } from \"./core/types\";\nimport { isDevelopment } from \"./core/helpers/env\";\nimport {\n commitRoot,\n createResourceFiberRoot,\n setRootVersion,\n} from \"./core/helpers/root\";\n\nexport namespace tapResourceRoot {\n export type Unsubscribe = () => void;\n\n export interface SubscribableResource<TState> {\n /**\n * Get the current state of the store.\n */\n getValue(): TState;\n\n /**\n * Subscribe to the store.\n */\n subscribe(listener: () => void): Unsubscribe;\n }\n}\n\n// currently we never reset the root, because rollbakcs are not supported in tapResourceRoot\n\nexport const tapResourceRoot = <TState>(\n element: ResourceElement<TState>,\n): tapResourceRoot.SubscribableResource<TState> => {\n const scheduler = tapConst(\n () => new UpdateScheduler(() => handleUpdate(null)),\n [],\n );\n const queue = tapConst(() => [] as (() => void)[], []);\n\n const fiber = tapMemo(() => {\n void element.key;\n\n return createResourceFiber(\n element.type,\n createResourceFiberRoot((callback) => {\n if (!scheduler.isDirty && !callback()) return;\n queue.push(callback);\n scheduler.markDirty();\n }),\n );\n }, [element.type, element.key]);\n\n setRootVersion(fiber.root, fiber.root.committedVersion);\n const render = renderResourceFiber(fiber, element.props);\n\n const isMountedRef = tapRef(false);\n const committedPropsRef = tapRef(element.props);\n const valueRef = tapRef<TState>(render.output);\n const subscribers = tapConst(() => new Set<() => void>(), []);\n const handleUpdate = tapEffectEvent((render: RenderResult | null) => {\n if (render === null) {\n setRootVersion(fiber.root, 2);\n setRootVersion(fiber.root, 1);\n\n queue.forEach((callback) => {\n if (isDevelopment && fiber.devStrictMode) {\n callback();\n }\n\n callback();\n });\n\n if (isDevelopment && fiber.devStrictMode) {\n void renderResourceFiber(fiber, committedPropsRef.current);\n }\n\n render = renderResourceFiber(fiber, committedPropsRef.current);\n }\n\n if (scheduler.isDirty)\n throw new Error(\"Scheduler is dirty, this should never happen\");\n\n commitRoot(fiber.root);\n queue.length = 0;\n\n if (isMountedRef.current) {\n commitResourceFiber(fiber, render);\n }\n\n if (scheduler.isDirty || valueRef.current === render.output) return;\n valueRef.current = render.output;\n subscribers.forEach((callback) => callback());\n });\n\n tapEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n unmountResourceFiber(fiber);\n };\n }, [fiber]);\n\n tapEffect(() => {\n committedPropsRef.current = render.props;\n commitRoot(fiber.root);\n commitResourceFiber(fiber, render);\n\n if (scheduler.isDirty || valueRef.current === render.output) return;\n valueRef.current = render.output;\n subscribers.forEach((callback) => callback());\n });\n\n return tapMemo(\n () => ({\n getValue: () => valueRef.current,\n subscribe: (listener: () => void) => {\n subscribers.add(listener);\n return () => subscribers.delete(listener);\n },\n }),\n [],\n );\n};\n","const contextValue: unique symbol = Symbol(\"tap.Context\");\ntype Context<T> = {\n [contextValue]: T;\n};\n\nexport const createResourceContext = <T>(defaultValue: T): Context<T> => {\n return {\n [contextValue]: defaultValue,\n };\n};\n\nexport const withContextProvider = <T, TResult>(\n context: Context<T>,\n value: T,\n fn: () => TResult,\n) => {\n const previousValue = context[contextValue];\n context[contextValue] = value;\n try {\n return fn();\n } finally {\n context[contextValue] = previousValue;\n }\n};\n\nexport const tap = <T>(context: Context<T>) => {\n return context[contextValue];\n};\n","import React, { createContext, useContext } from \"react\";\nimport type { AssistantClient, AssistantClientAccessor } from \"../types/client\";\nimport {\n createProxiedAssistantState,\n PROXIED_ASSISTANT_STATE_SYMBOL,\n} from \"./proxied-assistant-state\";\nimport { BaseProxyHandler, handleIntrospectionProp } from \"./BaseProxyHandler\";\n\nconst NO_OP_SUBSCRIBE = () => () => {};\n\nconst createErrorClientField = (\n message: string,\n): AssistantClientAccessor<never> => {\n const fn = (() => {\n throw new Error(message);\n }) as AssistantClientAccessor<never>;\n fn.source = null;\n fn.query = null;\n return fn;\n};\n\nclass DefaultAssistantClientProxyHandler\n extends BaseProxyHandler\n implements ProxyHandler<AssistantClient>\n{\n get(_: unknown, prop: string | symbol) {\n if (prop === \"subscribe\") return NO_OP_SUBSCRIBE;\n if (prop === \"on\") return NO_OP_SUBSCRIBE;\n if (prop === PROXIED_ASSISTANT_STATE_SYMBOL)\n return DefaultAssistantClientProxiedAssistantState;\n const introspection = handleIntrospectionProp(\n prop,\n \"DefaultAssistantClient\",\n );\n if (introspection !== false) return introspection;\n return createErrorClientField(\n \"You are using a component or hook that requires an AuiProvider. Wrap your component in an <AuiProvider> component.\",\n );\n }\n\n ownKeys(): ArrayLike<string | symbol> {\n return [\"subscribe\", \"on\", PROXIED_ASSISTANT_STATE_SYMBOL];\n }\n\n has(_: unknown, prop: string | symbol): boolean {\n return (\n prop === \"subscribe\" ||\n prop === \"on\" ||\n prop === PROXIED_ASSISTANT_STATE_SYMBOL\n );\n }\n}\n/** Default context value - throws \"wrap in AuiProvider\" error */\nexport const DefaultAssistantClient: AssistantClient =\n new Proxy<AssistantClient>(\n {} as AssistantClient,\n new DefaultAssistantClientProxyHandler(),\n );\n\nconst DefaultAssistantClientProxiedAssistantState = createProxiedAssistantState(\n DefaultAssistantClient,\n);\n\n/** Root prototype for created clients - throws \"scope not defined\" error */\nexport const createRootAssistantClient = (): AssistantClient =>\n new Proxy<AssistantClient>({} as AssistantClient, {\n get(_: AssistantClient, prop: string | symbol) {\n const introspection = handleIntrospectionProp(prop, \"AssistantClient\");\n if (introspection !== false) return introspection;\n\n return createErrorClientField(\n `The current scope does not have a \"${String(prop)}\" property.`,\n );\n },\n });\n\n/**\n * React Context for the AssistantClient\n */\nconst AssistantContext = createContext<AssistantClient>(DefaultAssistantClient);\n\nexport const useAssistantContextValue = (): AssistantClient => {\n return useContext(AssistantContext);\n};\n\n/**\n * Provider component for AssistantClient\n *\n * @example\n * ```typescript\n * <AuiProvider value={aui}>\n * <YourApp />\n * </AuiProvider>\n * ```\n */\nexport const AuiProvider = ({\n value,\n children,\n}: {\n value: AssistantClient;\n children: React.ReactNode;\n}): React.ReactElement => {\n return (\n <AssistantContext.Provider value={value}>\n {children}\n </AssistantContext.Provider>\n );\n};\n","import {\n createResourceContext,\n tap,\n withContextProvider,\n tapMemo,\n} from \"@assistant-ui/tap\";\nimport type { ClientMethods } from \"../types/client\";\n\n/**\n * Symbol used to get the client index from a ClientProxy.\n */\nexport const SYMBOL_CLIENT_INDEX = Symbol(\"assistant-ui.store.clientIndex\");\n\n/**\n * Get the index of a client (its position in the client stack when created).\n */\nexport const getClientIndex = (client: ClientMethods): number => {\n return (client as unknown as { [SYMBOL_CLIENT_INDEX]: number })[\n SYMBOL_CLIENT_INDEX\n ];\n};\n\n/**\n * The client stack - an array of clients representing the current hierarchy.\n */\nexport type ClientStack = readonly ClientMethods[];\n\nconst ClientStackContext = createResourceContext<ClientStack>([]);\n\n/**\n * Get the current client stack inside a tap resource.\n */\nexport const tapClientStack = (): ClientStack => {\n return tap(ClientStackContext);\n};\n\n/**\n * Execute a callback with a client pushed onto the stack.\n * The stack is duplicated, not mutated.\n */\nexport const tapWithClientStack = <T>(\n client: ClientMethods,\n callback: () => T,\n): T => {\n const currentStack = tapClientStack();\n const newStack = tapMemo(\n () => [...currentStack, client],\n [currentStack, client],\n );\n return withContextProvider(ClientStackContext, newStack, callback);\n};\n","const INTROSPECTION_PROPS = new Set([\"$$typeof\", \"nodeType\", \"then\"]);\n\n/**\n * Handles common proxy introspection properties.\n * Returns the appropriate value for toStringTag, toJSON, and props that should return undefined.\n * Returns `false` if the prop should be handled by the subclass.\n */\nexport const handleIntrospectionProp = (\n prop: string | symbol,\n name: string,\n): unknown | false => {\n if (prop === Symbol.toStringTag) return name;\n if (typeof prop === \"symbol\") return undefined;\n if (prop === \"toJSON\") return () => name;\n if (INTROSPECTION_PROPS.has(prop)) return undefined;\n return false;\n};\n\nexport abstract class BaseProxyHandler implements ProxyHandler<object> {\n abstract get(_: unknown, prop: string | symbol, receiver?: unknown): unknown;\n abstract ownKeys(): ArrayLike<string | symbol>;\n abstract has(_: unknown, prop: string | symbol): boolean;\n\n getOwnPropertyDescriptor(_: unknown, prop: string | symbol) {\n const value = this.get(_, prop);\n if (value === undefined) return undefined;\n return {\n value,\n writable: false,\n enumerable: true,\n configurable: false,\n };\n }\n\n set() {\n return false;\n }\n setPrototypeOf() {\n return false;\n }\n defineProperty() {\n return false;\n }\n deleteProperty() {\n return false;\n }\n preventExtensions(): boolean {\n return false;\n }\n}\n","import {\n type ResourceElement,\n Resource,\n resource,\n withKey,\n} from \"@assistant-ui/tap\";\n\nexport const wrapperResource = <R, P>(\n fn: (props: ResourceElement<P>) => R,\n): Resource<R, ResourceElement<P>> => {\n const res = resource(fn);\n return (props: ResourceElement<P>) => {\n const el = res(props);\n if (props.key === undefined) return el;\n return withKey(props.key, el);\n };\n};\n","import {\n tapEffect,\n tapMemo,\n tapRef,\n type ResourceElement,\n tapResource,\n} from \"@assistant-ui/tap\";\nimport type { ClientMethods } from \"./types/client\";\nimport {\n tapClientStack,\n tapWithClientStack,\n SYMBOL_CLIENT_INDEX,\n} from \"./utils/tap-client-stack-context\";\nimport {\n BaseProxyHandler,\n handleIntrospectionProp,\n} from \"./utils/BaseProxyHandler\";\nimport { wrapperResource } from \"./wrapperResource\";\n\n/**\n * Symbol used internally to get state from ClientProxy.\n * This allows getState() to be optional in the user-facing client.\n */\nconst SYMBOL_GET_OUTPUT = Symbol(\"assistant-ui.store.getValue\");\n\ntype ClientInternal = {\n [SYMBOL_GET_OUTPUT]: ClientMethods;\n};\n\nexport const getClientState = (client: ClientMethods) => {\n const output = (client as unknown as ClientInternal)[SYMBOL_GET_OUTPUT];\n if (!output) {\n throw new Error(\n \"Client scope contains a non-client resource. \" +\n \"Ensure your Derived get() returns a client created with tapClientResource(), not a plain resource.\",\n );\n }\n return (output as any).getState?.();\n};\n\n// Global cache for function templates by field name\nconst fieldAccessFns = new Map<\n string | symbol,\n (this: unknown, ...args: unknown[]) => unknown\n>();\n\nfunction getOrCreateProxyFn(prop: string | symbol) {\n let template = fieldAccessFns.get(prop);\n if (!template) {\n template = function (this: unknown, ...args: unknown[]) {\n if (!this || typeof this !== \"object\") {\n throw new Error(\n `Method \"${String(prop)}\" called without proper context. ` +\n `This may indicate the function was called incorrectly.`,\n );\n }\n\n const output = (this as ClientInternal)[SYMBOL_GET_OUTPUT];\n if (!output) {\n throw new Error(\n `Method \"${String(prop)}\" called on invalid client proxy. ` +\n `Ensure you are calling this method on a valid client instance.`,\n );\n }\n\n const method = output[prop];\n if (!method)\n throw new Error(`Method \"${String(prop)}\" is not implemented.`);\n if (typeof method !== \"function\")\n throw new Error(`\"${String(prop)}\" is not a function.`);\n return method(...args);\n };\n fieldAccessFns.set(prop, template);\n }\n return template;\n}\n\nclass ClientProxyHandler\n extends BaseProxyHandler\n implements ProxyHandler<object>\n{\n private boundFns: Map<string | symbol, Function> | undefined;\n private cachedReceiver: unknown;\n\n constructor(\n private readonly outputRef: {\n current: ClientMethods;\n },\n private readonly index: number,\n ) {\n super();\n }\n\n get(_: unknown, prop: string | symbol, receiver: unknown) {\n if (prop === SYMBOL_GET_OUTPUT) return this.outputRef.current;\n if (prop === SYMBOL_CLIENT_INDEX) return this.index;\n const introspection = handleIntrospectionProp(prop, \"ClientProxy\");\n if (introspection !== false) return introspection;\n const value = this.outputRef.current[prop];\n if (typeof value === \"function\") {\n if (this.cachedReceiver !== receiver) {\n this.boundFns = new Map();\n this.cachedReceiver = receiver;\n }\n let bound = this.boundFns!.get(prop);\n if (!bound) {\n bound = getOrCreateProxyFn(prop).bind(receiver);\n this.boundFns!.set(prop, bound);\n }\n return bound;\n }\n return value;\n }\n\n ownKeys(): ArrayLike<string | symbol> {\n return Object.keys(this.outputRef.current);\n }\n\n has(_: unknown, prop: string | symbol) {\n if (prop === SYMBOL_GET_OUTPUT) return true;\n if (prop === SYMBOL_CLIENT_INDEX) return true;\n return prop in this.outputRef.current;\n }\n}\n\n/**\n * Resource that wraps a plain resource element to create a stable client proxy.\n *\n * Takes a ResourceElement that returns methods (with optional getState()) and\n * wraps it to produce a stable client proxy. This adds the client to the\n * client stack, enabling event scoping.\n *\n * @internal\n */\nexport const ClientResource = wrapperResource(\n <TMethods extends ClientMethods>(\n element: ResourceElement<TMethods>,\n ): {\n methods: TMethods;\n state: unknown;\n key: string | number | undefined;\n } => {\n const valueRef = tapRef(null as unknown as TMethods);\n\n const index = tapClientStack().length;\n const methods = tapMemo(\n () =>\n new Proxy<TMethods>(\n {} as TMethods,\n new ClientProxyHandler(valueRef, index),\n ),\n [index],\n );\n\n const value = tapWithClientStack(methods, () => tapResource(element));\n if (!valueRef.current) {\n valueRef.current = value;\n }\n\n tapEffect(() => {\n valueRef.current = value;\n });\n\n const state = (value as any).getState?.();\n return { methods, state, key: element.key };\n },\n);\n\ntype InferClientState<TMethods> = TMethods extends {\n getState: () => infer S;\n}\n ? S\n : undefined;\n\nexport const tapClientResource = <TMethods extends ClientMethods>(\n element: ResourceElement<TMethods>,\n): {\n state: InferClientState<TMethods>;\n methods: TMethods;\n key: string | number | undefined;\n} => {\n return tapResource(ClientResource(element)) as {\n state: InferClientState<TMethods>;\n methods: TMethods;\n key: string | number | undefined;\n };\n};\n","\"use client\";\nimport { getClientState } from \"../tapClientResource\";\nimport type { AssistantClient, AssistantState } from \"../types/client\";\nimport { BaseProxyHandler, handleIntrospectionProp } from \"./BaseProxyHandler\";\n\nexport const PROXIED_ASSISTANT_STATE_SYMBOL = Symbol(\n \"assistant-ui.store.proxiedAssistantState\",\n);\n\nconst isIgnoredKey = (key: string | symbol): key is \"on\" | \"subscribe\" => {\n return key === \"on\" || key === \"subscribe\" || typeof key === \"symbol\";\n};\n\n/**\n * Proxied state that lazily accesses scope states\n */\nexport const createProxiedAssistantState = (\n client: AssistantClient,\n): AssistantState => {\n class ProxiedAssistantStateProxyHandler\n extends BaseProxyHandler\n implements ProxyHandler<AssistantState>\n {\n get(_: unknown, prop: string | symbol) {\n const introspection = handleIntrospectionProp(prop, \"AssistantState\");\n if (introspection !== false) return introspection;\n const scope = prop as keyof AssistantClient;\n if (isIgnoredKey(scope)) return undefined;\n return getClientState(client[scope]());\n }\n\n ownKeys(): ArrayLike<string | symbol> {\n return Object.keys(client).filter((key) => !isIgnoredKey(key));\n }\n\n has(_: unknown, prop: string | symbol): boolean {\n return !isIgnoredKey(prop) && prop in client;\n }\n }\n\n return new Proxy<AssistantState>(\n {} as AssistantState,\n new ProxiedAssistantStateProxyHandler(),\n );\n};\n\nexport const getProxiedAssistantState = (\n client: AssistantClient,\n): AssistantState => {\n return (\n client as unknown as { [PROXIED_ASSISTANT_STATE_SYMBOL]: AssistantState }\n )[PROXIED_ASSISTANT_STATE_SYMBOL];\n};\n","import { resource, ResourceElement } from \"@assistant-ui/tap\";\nimport type {\n AssistantClient,\n ClientNames,\n AssistantClientAccessor,\n ClientMeta,\n} from \"./types/client\";\n\n/**\n * Creates a derived client field that references a client from a parent scope.\n * The get callback always calls the most recent version (useEffectEvent pattern).\n *\n * IMPORTANT: The `get` callback must return a client that was created via\n * `tapClientResource` (or `tapClientLookup`/`tapClientList` which use it internally).\n * This is required for event scoping to work correctly.\n *\n * @example\n * ```typescript\n * const aui = useAui({\n * message: Derived({\n * source: \"thread\",\n * query: { index: 0 },\n * get: (aui) => aui.thread().message({ index: 0 }),\n * }),\n * });\n * ```\n */\nexport const Derived = resource(\n <K extends ClientNames>(_config: Derived.Props<K>): null => {\n return null;\n },\n);\n\nexport type DerivedElement<K extends ClientNames> = ResourceElement<\n null,\n Derived.Props<K>\n>;\n\nexport namespace Derived {\n /**\n * Props passed to a derived client resource element.\n */\n export type Props<K extends ClientNames> = {\n get: (client: AssistantClient) => ReturnType<AssistantClientAccessor<K>>;\n } & (ClientMeta<K> | { getMeta: (client: AssistantClient) => ClientMeta<K> });\n}\n","import type { ResourceElement } from \"@assistant-ui/tap\";\nimport type {\n AssistantClient,\n ClientElement,\n ClientNames,\n} from \"./types/client\";\nimport type { DerivedElement } from \"./Derived\";\n\nconst TRANSFORM_SCOPES = Symbol(\"assistant-ui.transform-scopes\");\n\nexport type ScopesConfig = {\n [K in ClientNames]?: ClientElement<K> | DerivedElement<K>;\n};\n\ntype TransformScopesFn = (\n scopes: ScopesConfig,\n parent: AssistantClient,\n) => void;\n\ntype ResourceWithTransformScopes = {\n [TRANSFORM_SCOPES]?: TransformScopesFn;\n};\n\nexport function attachTransformScopes<\n T extends (...args: any[]) => ResourceElement<any>,\n>(resource: T, transform: TransformScopesFn): void {\n const r = resource as T & ResourceWithTransformScopes;\n if (r[TRANSFORM_SCOPES]) {\n throw new Error(\"transformScopes is already attached to this resource\");\n }\n r[TRANSFORM_SCOPES] = transform;\n}\n\nexport function forwardTransformScopes<\n T extends (...args: any[]) => ResourceElement<any>,\n S extends (...args: any[]) => ResourceElement<any>,\n>(target: T, source: S): void {\n const sourceTransform = getTransformScopes(source);\n if (!sourceTransform) return;\n\n const r = target as T & ResourceWithTransformScopes;\n const existingTransform = r[TRANSFORM_SCOPES];\n if (existingTransform) {\n r[TRANSFORM_SCOPES] = (scopes, parent) => {\n sourceTransform(scopes, parent);\n existingTransform(scopes, parent);\n };\n } else {\n r[TRANSFORM_SCOPES] = sourceTransform;\n }\n}\n\nexport function getTransformScopes<\n T extends (...args: any[]) => ResourceElement<any>,\n>(resource: T): TransformScopesFn | undefined {\n return (resource as T & ResourceWithTransformScopes)[TRANSFORM_SCOPES];\n}\n","import { Derived, DerivedElement } from \"../Derived\";\nimport type {\n AssistantClient,\n ClientElement,\n ClientNames,\n} from \"../types/client\";\nimport { getTransformScopes } from \"../attachTransformScopes\";\nimport type { useAui } from \"../useAui\";\nimport { tapMemo } from \"@assistant-ui/tap\";\n\nexport type RootClients = Partial<\n Record<ClientNames, ClientElement<ClientNames>>\n>;\nexport type DerivedClients = Partial<\n Record<ClientNames, DerivedElement<ClientNames>>\n>;\n\n/**\n * Splits a clients object into root clients and derived clients,\n * applying transformScopes from root client elements.\n */\nfunction splitClients(clients: useAui.Props, baseClient: AssistantClient) {\n // 1. Collect transforms from root elements and run them iteratively\n const scopes = { ...clients } as Record<\n string,\n ClientElement<ClientNames> | DerivedElement<ClientNames>\n >;\n const visited = new Set<(...args: any[]) => any>();\n\n let changed = true;\n while (changed) {\n changed = false;\n for (const clientElement of Object.values(scopes)) {\n if (clientElement.type === (Derived as unknown)) continue;\n if (visited.has(clientElement.type)) continue;\n visited.add(clientElement.type);\n\n const transform = getTransformScopes(clientElement.type);\n if (transform) {\n transform(scopes, baseClient);\n changed = true;\n break; // restart iteration since scopes may have new root elements\n }\n }\n }\n\n // 2. Split result into root/derived\n const rootClients: RootClients = {};\n const derivedClients: DerivedClients = {};\n\n for (const [key, clientElement] of Object.entries(scopes) as [\n ClientNames,\n ClientElement<ClientNames> | DerivedElement<ClientNames>,\n ][]) {\n if (clientElement.type === (Derived as unknown)) {\n derivedClients[key] = clientElement as DerivedElement<ClientNames>;\n } else {\n rootClients[key] = clientElement as ClientElement<ClientNames>;\n }\n }\n\n return { rootClients, derivedClients };\n}\n\nconst tapShallowMemoObject = <T extends object>(object: T) => {\n // biome-ignore lint/correctness/useExhaustiveDependencies: shallow memo\n return tapMemo(() => object, [...Object.entries(object).flat()]);\n};\n\nexport const tapSplitClients = (\n clients: useAui.Props,\n baseClient: AssistantClient,\n) => {\n const { rootClients, derivedClients } = splitClients(clients, baseClient);\n\n return {\n rootClients: tapShallowMemoObject(rootClients),\n derivedClients: tapShallowMemoObject(derivedClients),\n };\n};\n","import type {\n AssistantClientAccessor,\n ClientEvents,\n ClientNames,\n} from \"./client\";\n\n// --- Event Map Construction ---\ntype UnionToIntersection<U> = (\n U extends unknown\n ? (x: U) => void\n : never\n) extends (x: infer I) => void\n ? I\n : never;\n\ntype ClientEventMap = UnionToIntersection<\n { [K in ClientNames]: ClientEvents<K> }[ClientNames]\n>;\n\n// --- Core Types ---\n\ntype WildcardPayload = {\n [K in keyof ClientEventMap]: { event: K; payload: ClientEventMap[K] };\n}[keyof ClientEventMap];\n\nexport type AssistantEventPayload = ClientEventMap & { \"*\": WildcardPayload };\n\nexport type AssistantEventName = keyof AssistantEventPayload;\n\ntype EventSource<T extends AssistantEventName> =\n T extends `${infer Source}.${string}` ? Source : never;\n\n// --- Scoping ---\n\ntype ParentOf<K extends ClientNames> =\n AssistantClientAccessor<K> extends { source: infer S }\n ? S extends ClientNames\n ? S\n : never\n : never;\n\ntype AncestorsOf<\n K extends ClientNames,\n Seen extends ClientNames = never,\n> = K extends Seen\n ? never\n : ParentOf<K> extends never\n ? never\n : ParentOf<K> | AncestorsOf<ParentOf<K>, Seen | K>;\n\n/** Valid scopes: `\"*\"` | event source | ancestors of event source */\nexport type AssistantEventScope<TEvent extends AssistantEventName> =\n | \"*\"\n | EventSource<TEvent>\n | (EventSource<TEvent> extends ClientNames\n ? AncestorsOf<EventSource<TEvent>>\n : never);\n\n// --- Selection & Callbacks ---\n\nexport type AssistantEventSelector<TEvent extends AssistantEventName> =\n | TEvent\n | { scope: AssistantEventScope<TEvent>; event: TEvent };\n\nexport const normalizeEventSelector = <TEvent extends AssistantEventName>(\n selector: AssistantEventSelector<TEvent>,\n) => {\n if (typeof selector === \"string\") {\n const source = selector.split(\".\")[0] as AssistantEventScope<TEvent>;\n return { scope: source, event: selector };\n }\n return { scope: selector.scope, event: selector.event };\n};\n\nexport type AssistantEventCallback<TEvent extends AssistantEventName> = (\n payload: AssistantEventPayload[TEvent],\n) => void;\n","import { resource } from \"@assistant-ui/tap\";\nimport type { ClientStack } from \"./tap-client-stack-context\";\nimport type {\n AssistantEventName,\n AssistantEventPayload,\n} from \"../types/events\";\nimport { Unsubscribe } from \"../types/client\";\nimport { tapConst } from \"@assistant-ui/tap\";\n\ntype InternalCallback = (payload: unknown, clientStack: ClientStack) => void;\n\nexport type NotificationManager = {\n on<TEvent extends AssistantEventName>(\n event: TEvent,\n callback: (\n payload: AssistantEventPayload[TEvent],\n clientStack: ClientStack,\n ) => void,\n ): Unsubscribe;\n emit<TEvent extends Exclude<AssistantEventName, \"*\">>(\n event: TEvent,\n payload: AssistantEventPayload[TEvent],\n clientStack: ClientStack,\n ): void;\n subscribe(callback: () => void): Unsubscribe;\n notifySubscribers(): void;\n};\n\nexport const NotificationManager = resource((): NotificationManager => {\n return tapConst(() => {\n const listeners = new Map<string, Set<InternalCallback>>();\n const wildcardListeners = new Set<InternalCallback>();\n const subscribers = new Set<() => void>();\n\n return {\n on(event, callback) {\n const cb = callback as InternalCallback;\n if (event === \"*\") {\n wildcardListeners.add(cb);\n return () => wildcardListeners.delete(cb);\n }\n\n let set = listeners.get(event);\n if (!set) {\n set = new Set();\n listeners.set(event, set);\n }\n set.add(cb);\n\n return () => {\n set!.delete(cb);\n if (set!.size === 0) listeners.delete(event);\n };\n },\n\n emit(event, payload, clientStack) {\n const eventListeners = listeners.get(event);\n if (!eventListeners && wildcardListeners.size === 0) return;\n\n queueMicrotask(() => {\n const errors = [];\n if (eventListeners) {\n for (const cb of eventListeners) {\n try {\n cb(payload, clientStack);\n } catch (e) {\n errors.push(e);\n }\n }\n }\n if (wildcardListeners.size > 0) {\n const wrapped = { event, payload };\n for (const cb of wildcardListeners) {\n try {\n cb(wrapped, clientStack);\n } catch (e) {\n errors.push(e);\n }\n }\n }\n\n if (errors.length > 0) {\n if (errors.length === 1) {\n throw errors[0];\n } else {\n for (const error of errors) {\n console.error(error);\n }\n throw new AggregateError(\n errors,\n \"Errors occurred during event emission\",\n );\n }\n }\n });\n },\n\n subscribe(callback) {\n subscribers.add(callback);\n return () => subscribers.delete(callback);\n },\n\n notifySubscribers() {\n for (const cb of subscribers) {\n try {\n cb();\n } catch (e) {\n console.error(\"NotificationManager: subscriber callback error\", e);\n }\n }\n },\n };\n }, []);\n});\n","import {\n createResourceContext,\n tap,\n withContextProvider,\n tapEffectEvent,\n} from \"@assistant-ui/tap\";\nimport type {\n AssistantEventName,\n AssistantEventPayload,\n} from \"../types/events\";\nimport type { AssistantClient } from \"../types/client\";\nimport { tapClientStack, type ClientStack } from \"./tap-client-stack-context\";\n\ntype EmitFn = <TEvent extends Exclude<AssistantEventName, \"*\">>(\n event: TEvent,\n payload: AssistantEventPayload[TEvent],\n clientStack: ClientStack,\n) => void;\n\nexport type AssistantTapContextValue = {\n clientRef: { parent: AssistantClient; current: AssistantClient | null };\n emit: EmitFn;\n};\n\nconst AssistantTapContext =\n createResourceContext<AssistantTapContextValue | null>(null);\n\nexport const withAssistantTapContextProvider = <TResult>(\n value: AssistantTapContextValue,\n fn: () => TResult,\n) => {\n return withContextProvider(AssistantTapContext, value, fn);\n};\n\nconst tapAssistantTapContext = () => {\n const ctx = tap(AssistantTapContext);\n if (!ctx) throw new Error(\"AssistantTapContext is not available\");\n\n return ctx;\n};\n\nexport const tapAssistantClientRef = () => {\n return tapAssistantTapContext().clientRef;\n};\n\nexport const tapAssistantEmit = () => {\n const { emit } = tapAssistantTapContext();\n const clientStack = tapClientStack();\n\n return tapEffectEvent(\n <TEvent extends Exclude<AssistantEventName, \"*\">>(\n event: TEvent,\n payload: AssistantEventPayload[TEvent],\n ) => {\n emit(event, payload, clientStack);\n },\n );\n};\n","\"use client\";\n\nimport { useResource } from \"@assistant-ui/tap/react\";\nimport {\n resource,\n tapMemo,\n tapResources,\n tapEffectEvent,\n tapEffect,\n tapRef,\n tapResource,\n withKey,\n tapResourceRoot,\n} from \"@assistant-ui/tap\";\nimport type {\n AssistantClient,\n AssistantClientAccessor,\n ClientNames,\n ClientElement,\n ClientMeta,\n} from \"./types/client\";\nimport { Derived, DerivedElement } from \"./Derived\";\nimport {\n useAssistantContextValue,\n DefaultAssistantClient,\n createRootAssistantClient,\n} from \"./utils/react-assistant-context\";\nimport {\n DerivedClients,\n RootClients,\n tapSplitClients,\n} from \"./utils/splitClients\";\nimport {\n normalizeEventSelector,\n type AssistantEventName,\n type AssistantEventCallback,\n type AssistantEventSelector,\n} from \"./types/events\";\nimport { NotificationManager } from \"./utils/NotificationManager\";\nimport { withAssistantTapContextProvider } from \"./utils/tap-assistant-context\";\nimport { tapClientResource } from \"./tapClientResource\";\nimport { getClientIndex } from \"./utils/tap-client-stack-context\";\nimport {\n PROXIED_ASSISTANT_STATE_SYMBOL,\n createProxiedAssistantState,\n} from \"./utils/proxied-assistant-state\";\n\nconst tapShallowMemoArray = <T>(array: readonly T[]) => {\n // biome-ignore lint/correctness/useExhaustiveDependencies: shallow memo\n return tapMemo(() => array, array);\n};\n\nconst RootClientResource = resource(\n <K extends ClientNames>({\n element,\n emit,\n clientRef,\n }: {\n element: ClientElement<K>;\n emit: NotificationManager[\"emit\"];\n clientRef: { parent: AssistantClient; current: AssistantClient | null };\n }) => {\n const { methods, state } = withAssistantTapContextProvider(\n { clientRef, emit },\n () => tapClientResource(element),\n );\n return tapMemo(() => ({ state, methods }), [methods, state]);\n },\n);\n\nconst RootClientAccessorResource = resource(\n <K extends ClientNames>({\n element,\n notifications,\n clientRef,\n name,\n }: {\n element: ClientElement<K>;\n notifications: NotificationManager;\n clientRef: { parent: AssistantClient; current: AssistantClient | null };\n name: K;\n }): AssistantClientAccessor<K> => {\n const store = tapResourceRoot(\n RootClientResource({ element, emit: notifications.emit, clientRef }),\n );\n\n tapEffect(() => {\n return store.subscribe(notifications.notifySubscribers);\n }, [store, notifications]);\n\n return tapMemo(() => {\n const clientFunction = () => store.getValue().methods;\n Object.defineProperties(clientFunction, {\n source: {\n value: \"root\" as const,\n writable: false,\n },\n query: {\n value: {} as Record<string, never>,\n writable: false,\n },\n name: {\n value: name,\n configurable: true,\n },\n });\n return clientFunction as AssistantClientAccessor<K>;\n }, [store, name]);\n },\n);\n\nconst NoOpRootClientsAccessorsResource = resource(() => {\n return tapMemo(\n () => ({\n clients: [] as AssistantClientAccessor<ClientNames>[],\n subscribe: undefined,\n on: undefined,\n }),\n [],\n );\n});\n\nconst RootClientsAccessorsResource = resource(\n ({\n clients: inputClients,\n clientRef,\n }: {\n clients: RootClients;\n clientRef: { parent: AssistantClient; current: AssistantClient | null };\n }) => {\n const notifications = tapResource(NotificationManager());\n\n tapEffect(\n () => clientRef.parent.subscribe(notifications.notifySubscribers),\n [clientRef, notifications],\n );\n\n const results = tapShallowMemoArray(\n tapResources(\n () =>\n Object.keys(inputClients).map((key) =>\n withKey(\n key,\n RootClientAccessorResource({\n element: inputClients[key as keyof typeof inputClients]!,\n notifications,\n clientRef,\n name: key as keyof typeof inputClients,\n }),\n ),\n ),\n [inputClients, notifications, clientRef],\n ),\n );\n\n return tapMemo(() => {\n return {\n clients: results,\n subscribe: notifications.subscribe,\n on: function <TEvent extends AssistantEventName>(\n this: AssistantClient,\n selector: AssistantEventSelector<TEvent>,\n callback: AssistantEventCallback<TEvent>,\n ) {\n if (!this) {\n throw new Error(\n \"const { on } = useAui() is not supported. Use aui.on() instead.\",\n );\n }\n\n const { scope, event } = normalizeEventSelector(selector);\n\n if (scope !== \"*\") {\n const source = this[scope as ClientNames].source;\n if (source === null) {\n throw new Error(\n `Scope \"${scope}\" is not available. Use { scope: \"*\", event: \"${event}\" } to listen globally.`,\n );\n }\n }\n\n const localUnsub = notifications.on(event, (payload, clientStack) => {\n if (scope === \"*\") {\n callback(payload);\n return;\n }\n\n const scopeClient = this[scope as ClientNames]();\n const index = getClientIndex(scopeClient);\n if (scopeClient === clientStack[index]) {\n callback(payload);\n }\n });\n if (\n scope !== \"*\" &&\n clientRef.parent[scope as ClientNames].source === null\n )\n return localUnsub;\n\n const parentUnsub = clientRef.parent.on(selector, callback);\n\n return () => {\n localUnsub();\n parentUnsub();\n };\n },\n };\n }, [results, notifications, clientRef]);\n },\n);\n\ntype MetaMemo<K extends ClientNames> = {\n meta?: ClientMeta<K>;\n dep?: unknown;\n};\n\nconst getMeta = <K extends ClientNames>(\n props: Derived.Props<K>,\n clientRef: { parent: AssistantClient; current: AssistantClient | null },\n memo: MetaMemo<K>,\n): ClientMeta<K> => {\n if (\"source\" in props && \"query\" in props) return props;\n if (memo.dep === props) return memo.meta!;\n const meta = props.getMeta(clientRef.current!);\n memo.meta = meta;\n memo.dep = props;\n return meta;\n};\n\nconst DerivedClientAccessorResource = resource(\n <K extends ClientNames>({\n element,\n clientRef,\n name,\n }: {\n element: DerivedElement<K>;\n clientRef: { parent: AssistantClient; current: AssistantClient | null };\n name: K;\n }) => {\n const get = tapEffectEvent(() => element.props);\n\n return tapMemo(() => {\n const clientFunction = () => get().get(clientRef.current!);\n const metaMemo = {};\n Object.defineProperties(clientFunction, {\n source: {\n get: () => getMeta(get(), clientRef, metaMemo).source,\n },\n query: {\n get: () => getMeta(get(), clientRef, metaMemo).query,\n },\n name: {\n value: name,\n configurable: true,\n },\n });\n return clientFunction as AssistantClientAccessor<K>;\n }, [clientRef, name]);\n },\n);\n\nconst DerivedClientsAccessorsResource = resource(\n ({\n clients,\n clientRef,\n }: {\n clients: DerivedClients;\n clientRef: { parent: AssistantClient; current: AssistantClient | null };\n }) => {\n return tapShallowMemoArray(\n tapResources(\n () =>\n Object.keys(clients).map((key) =>\n withKey(\n key,\n DerivedClientAccessorResource({\n element: clients[key as keyof typeof clients]!,\n clientRef,\n name: key as keyof typeof clients,\n }),\n ),\n ),\n [clients, clientRef],\n ),\n );\n },\n);\n\n/**\n * Resource that creates an extended AssistantClient.\n */\nexport const AssistantClientResource = resource(\n ({\n parent,\n clients,\n }: {\n parent: AssistantClient;\n clients: useAui.Props;\n }): AssistantClient => {\n const { rootClients, derivedClients } = tapSplitClients(clients, parent);\n\n const clientRef = tapRef({\n parent: parent,\n current: null as AssistantClient | null,\n }).current;\n\n tapEffect(() => {\n // if (clientRef.current && clientRef.current !== client)\n // throw new Error(\"clientRef.current !== client\");\n\n clientRef.current = client;\n });\n\n const rootFields = tapResource(\n Object.keys(rootClients).length > 0\n ? RootClientsAccessorsResource({ clients: rootClients, clientRef })\n : NoOpRootClientsAccessorsResource(),\n );\n\n const derivedFields = tapResource(\n DerivedClientsAccessorsResource({ clients: derivedClients, clientRef }),\n );\n\n const client = tapMemo(() => {\n // Swap DefaultAssistantClient -> createRootAssistantClient at root to change error message\n const proto =\n parent === DefaultAssistantClient\n ? createRootAssistantClient()\n : parent;\n\n const client = Object.create(proto) as AssistantClient;\n Object.assign(client, {\n subscribe: rootFields.subscribe ?? parent.subscribe,\n on: rootFields.on ?? parent.on,\n [PROXIED_ASSISTANT_STATE_SYMBOL]: createProxiedAssistantState(client),\n });\n\n for (const field of rootFields.clients) {\n (client as any)[field.name] = field;\n }\n for (const field of derivedFields) {\n (client as any)[field.name] = field;\n }\n\n return client;\n }, [parent, rootFields, derivedFields]);\n\n if (clientRef.current === null) {\n clientRef.current = client;\n }\n\n return client;\n },\n);\n\nexport namespace useAui {\n export type Props = {\n [K in ClientNames]?: ClientElement<K> | DerivedElement<K>;\n };\n}\n\nexport function useAui(): AssistantClient;\nexport function useAui(clients: useAui.Props): AssistantClient;\nexport function useAui(\n clients: useAui.Props,\n config: { parent: null | AssistantClient },\n): AssistantClient;\n/** @deprecated This API is highly experimental and may be changed in a minor release */\nexport function useAui(\n clients?: useAui.Props,\n { parent }: { parent: null | AssistantClient } = {\n parent: useAssistantContextValue(),\n },\n): AssistantClient {\n if (clients) {\n return useResource(\n AssistantClientResource({\n parent: parent ?? DefaultAssistantClient,\n clients,\n }),\n );\n }\n if (parent === null)\n throw new Error(\"received null parent, this usage is not allowed\");\n return parent;\n}\n","import { useSyncExternalStore, useDebugValue } from \"react\";\nimport type { AssistantState } from \"./types/client\";\nimport { useAui } from \"./useAui\";\nimport { getProxiedAssistantState } from \"./utils/proxied-assistant-state\";\n\n/**\n * Hook to access a slice of the assistant state with automatic subscription\n *\n * @param selector - Function to select a slice of the state\n * @returns The selected state slice\n *\n * @example\n * ```typescript\n * const aui = useAui({\n * foo: RootScope({ ... }),\n * });\n *\n * const bar = useAuiState((s) => s.foo.bar);\n * ```\n */\nexport const useAuiState = <T>(selector: (state: AssistantState) => T): T => {\n const aui = useAui();\n const proxiedState = getProxiedAssistantState(aui);\n\n const slice = useSyncExternalStore(\n aui.subscribe,\n () => selector(proxiedState),\n () => selector(proxiedState),\n );\n\n if (slice === proxiedState) {\n throw new Error(\n \"You tried to return the entire AssistantState. This is not supported due to technical limitations.\",\n );\n }\n\n useDebugValue(slice);\n\n return slice;\n};\n","import { useEffect } from \"react\";\nimport { useEffectEvent } from \"use-effect-event\";\nimport { useAui } from \"./useAui\";\nimport type {\n AssistantEventName,\n AssistantEventCallback,\n AssistantEventSelector,\n} from \"./types/events\";\nimport { normalizeEventSelector } from \"./types/events\";\n\nexport const useAuiEvent = <TEvent extends AssistantEventName>(\n selector: AssistantEventSelector<TEvent>,\n callback: AssistantEventCallback<TEvent>,\n) => {\n const aui = useAui();\n const callbackRef = useEffectEvent(callback);\n\n const { scope, event } = normalizeEventSelector(selector);\n useEffect(\n () => aui.on({ scope, event }, callbackRef),\n [aui, scope, event, callbackRef],\n );\n};\n","import React from 'react'\n\nconst context = React.createContext(true)\n\nfunction forbiddenInRender() {\n throw new Error(\"A function wrapped in useEffectEvent can't be called during rendering.\")\n}\n\n// We can only check if we're in a render phase, beyond initial render, in React 19, with its `React.use` hook.\nconst isInvalidExecutionContextForEventFunction =\n 'use' in React\n ? () => {\n // There's no way to check if we're in a render phase from outside of React, the API used by useEffectEvent is private: https://github.com/facebook/react/blob/a00ca6f6b51e46a0ccec54a2231bfe7a1ed9ae1d/packages/react-reconciler/src/ReactFiberWorkLoop.js#L1785-L1788\n // So to emulate the same behavior, we call the use hook and if it doesn't throw, we're in a render phase.\n try {\n return React.use(context)\n } catch {\n return false\n }\n }\n : () => false\n\n/**\n * This is a ponyfill of the upcoming `useEffectEvent` hook that'll arrive in React 19.\n * https://19.react.dev/learn/separating-events-from-effects#declaring-an-effect-event\n * To learn more about the ponyfill itself, see: https://blog.bitsrc.io/a-look-inside-the-useevent-polyfill-from-the-new-react-docs-d1c4739e8072\n * @public\n */\nexport function useEffectEvent<const T extends (...args: any[]) => void>(fn: T): T {\n /**\n * For both React 18 and 19 we set the ref to the forbiddenInRender function, to catch illegal calls to the function during render.\n * Once the insertion effect runs, we set the ref to the actual function.\n */\n const ref = React.useRef(forbiddenInRender as T)\n\n React.useInsertionEffect(() => {\n ref.current = fn\n }, [fn])\n\n return ((...args: any) => {\n // Performs a similar check to what React does for `useEffectEvent`:\n // 1. https://github.com/facebook/react/blob/b7e2de632b2a160bc09edda1fbb9b8f85a6914e8/packages/react-reconciler/src/ReactFiberHooks.js#L2729-L2733\n // 2. https://github.com/facebook/react/blob/b7e2de632b2a160bc09edda1fbb9b8f85a6914e8/packages/react-reconciler/src/ReactFiberHooks.js#L2746C9-L2750\n if (isInvalidExecutionContextForEventFunction()) {\n forbiddenInRender()\n }\n\n const latestFn = ref.current!\n return latestFn(...args)\n }) as T\n}\n","\"use client\";\n\nimport { type ReactNode, useMemo, useRef } from \"react\";\nimport type { AssistantClient } from \"./types/client\";\nimport { useAuiState } from \"./useAuiState\";\nimport { useAui } from \"./useAui\";\n\nexport const useGetItemAccessor = <T,>(\n getItemState: (aui: AssistantClient) => T,\n) => {\n const aui = useAui();\n\n // if the consumer never accesses the item, do not trigger rerenders\n const cacheRef = useRef<T | undefined>(undefined);\n useAuiState(() => {\n if (cacheRef.current === undefined) {\n cacheRef.current = getItemState(aui);\n }\n return cacheRef.current;\n });\n\n return () => {\n cacheRef.current = undefined; // clear the cache (rerender on next state change)\n\n return getItemState(aui);\n };\n};\n\nconst EMPTY_OBJECT = Object.freeze({});\n\n/**\n * Component that sets up a lazy item accessor and memoizes propless children.\n *\n * For the common pattern where children returns a component without props\n * (e.g. `<Foo />`), the output is memoized and not re-created on parent re-renders.\n *\n * @example\n * ```tsx\n * <RenderChildrenWithAccessor\n * getItemState={(aui) => aui.fooList().foo({ index }).getState()}\n * >\n * {() => <Foo />}\n * </RenderChildrenWithAccessor>\n * ```\n */\nexport function RenderChildrenWithAccessor<T>({\n getItemState,\n children,\n}: {\n getItemState: (aui: AssistantClient) => T;\n children: (getItem: () => T) => ReactNode;\n}): ReactNode {\n const getItem = useGetItemAccessor(getItemState);\n return useMemoizedProplessComponent(children(getItem));\n}\n\nconst useMemoizedProplessComponent = (node: ReactNode) => {\n const el =\n typeof node === \"object\" && node != null && \"type\" in node ? node : null;\n const resultType = el?.type;\n const resultKey = el?.key;\n const resultProps =\n typeof el?.props === \"object\" &&\n el.props != null &&\n Object.entries(el.props).length === 0\n ? EMPTY_OBJECT\n : el?.props;\n\n return (\n // biome-ignore lint/correctness/useExhaustiveDependencies: optimization\n useMemo(() => el, [resultType, resultKey, resultProps]) ?? node\n );\n};\n","import {\n tapMemo,\n tapResource,\n tapResources,\n type ResourceElement,\n} from \"@assistant-ui/tap\";\nimport type { ClientMethods } from \"./types/client\";\nimport { ClientResource } from \"./tapClientResource\";\nimport { wrapperResource } from \"./wrapperResource\";\n\ntype InferClientState<TMethods> = TMethods extends {\n getState: () => infer S;\n}\n ? S\n : unknown;\n\nconst ClientResourceWithKey = wrapperResource(\n <TMethods extends ClientMethods>(el: ResourceElement<TMethods>) => {\n if (el.key === undefined) {\n throw new Error(\"tapClientResource: Element has no key\");\n }\n return tapResource(ClientResource(el)) as {\n methods: TMethods;\n state: InferClientState<TMethods>;\n key: string | number;\n };\n },\n);\n\nexport function tapClientLookup<TMethods extends ClientMethods>(\n getElements: () => readonly ResourceElement<TMethods>[],\n getElementsDeps: readonly unknown[],\n): {\n state: InferClientState<TMethods>[];\n get: (lookup: { index: number } | { key: string }) => TMethods;\n} {\n const resources = tapResources(\n () => getElements().map((el) => ClientResourceWithKey(el)),\n // biome-ignore lint/correctness/useExhaustiveDependencies: getElementsDeps is passed through from caller\n getElementsDeps,\n );\n\n const keys = tapMemo(() => Object.keys(resources), [resources]);\n\n // For arrays, track element key -> index mapping\n const keyToIndex = tapMemo(() => {\n return resources.reduce(\n (acc, resource, index) => {\n acc[resource.key] = index;\n return acc;\n },\n {} as Record<string, number>,\n );\n }, [resources]);\n\n const state = tapMemo(() => {\n return resources.map((r) => r.state);\n }, [resources]);\n\n return {\n state,\n get: (lookup: { index: number } | { key: string }) => {\n if (\"index\" in lookup) {\n if (lookup.index < 0 || lookup.index >= keys.length) {\n throw new Error(\n `tapClientLookup: Index ${lookup.index} out of bounds (length: ${keys.length})`,\n );\n }\n return resources[lookup.index]!.methods;\n }\n\n const index = keyToIndex[lookup.key];\n if (index === undefined) {\n throw new Error(`tapClientLookup: Key \"${lookup.key}\" not found`);\n }\n return resources[index]!.methods;\n },\n };\n}\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n React.useCallback(() => selector(api.getState()), [api, selector]),\n React.useCallback(() => selector(api.getInitialState()), [api, selector])\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = ((createState) => createState ? createImpl(createState) : createImpl);\n\nexport { create, useStore };\n","import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\nimport { ReadonlyJSONObject } from \"./json-value\";\n\nconst PARTIAL_JSON_OBJECT_META_SYMBOL = Symbol(\n \"aui.parse-partial-json-object.meta\",\n);\n\ntype FieldState = \"complete\" | \"partial\";\n\ntype PartialJsonObjectMeta = {\n state: \"complete\" | \"partial\";\n partialPath: string[];\n};\n\nexport const getPartialJsonObjectMeta = (\n obj: Record<symbol, unknown>,\n): PartialJsonObjectMeta | undefined => {\n return obj?.[PARTIAL_JSON_OBJECT_META_SYMBOL] as PartialJsonObjectMeta;\n};\n\nexport const parsePartialJsonObject = (\n json: string,\n):\n | (ReadonlyJSONObject & {\n [PARTIAL_JSON_OBJECT_META_SYMBOL]: PartialJsonObjectMeta;\n })\n | undefined => {\n if (json.length === 0)\n return {\n [PARTIAL_JSON_OBJECT_META_SYMBOL]: { state: \"partial\", partialPath: [] },\n };\n\n try {\n const res = sjson.parse(json);\n if (typeof res !== \"object\" || res === null)\n throw new Error(\"argsText is expected to be an object\");\n\n res[PARTIAL_JSON_OBJECT_META_SYMBOL] = {\n state: \"complete\",\n partialPath: [],\n };\n return res;\n } catch {\n try {\n const [fixedJson, partialPath] = fixJson(json);\n const res = sjson.parse(fixedJson);\n if (typeof res !== \"object\" || res === null)\n throw new Error(\"argsText is expected to be an object\");\n\n res[PARTIAL_JSON_OBJECT_META_SYMBOL] = {\n state: \"partial\",\n partialPath,\n };\n return res;\n } catch {\n return undefined;\n }\n }\n};\n\nconst getFieldState = (\n parent: unknown,\n parentMeta: PartialJsonObjectMeta,\n fieldPath: string[],\n): FieldState => {\n if (typeof parent !== \"object\" || parent === null) return parentMeta.state;\n\n // 1) parent is complete: return \"complete\"\n if (parentMeta.state === \"complete\") return \"complete\";\n\n // 2) we finished traversing: return parent state\n if (fieldPath.length === 0) return parentMeta.state;\n\n const [field, ...restPath] = fieldPath as [string, ...string[]];\n\n // 3) field doesn't yet exist in parent: return \"partial\"\n if (!Object.prototype.hasOwnProperty.call(parent, field)) return \"partial\";\n\n const [partialField, ...restPartialPath] = parentMeta.partialPath;\n\n // 4) field exists but is not partial: return \"complete\"\n if (field !== partialField) return \"complete\";\n\n // 5) field exists and is partial: return child state\n const child = (parent as Record<string, unknown>)[field];\n const childMeta: PartialJsonObjectMeta = {\n state: \"partial\",\n partialPath: restPartialPath,\n };\n\n return getFieldState(child, childMeta, restPath);\n};\n\nexport const getPartialJsonObjectFieldState = (\n obj: Record<string, unknown>,\n fieldPath: (string | number)[],\n): FieldState => {\n const meta = getPartialJsonObjectMeta(obj);\n if (!meta) throw new Error(\"unable to determine object state\");\n\n return getFieldState(obj, meta, fieldPath.map(String));\n};\n","// LICENSE for this file only\n\n// MIT License\n\n// Copyright (c) 2025 AgentbaseAI Inc.\n// Copyright (c) 2023 Lars Grammel\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\ntype State =\n | \"ROOT\"\n | \"FINISH\"\n | \"INSIDE_STRING\"\n | \"INSIDE_STRING_ESCAPE\"\n | \"INSIDE_LITERAL\"\n | \"INSIDE_NUMBER\"\n | \"INSIDE_OBJECT_START\"\n | \"INSIDE_OBJECT_KEY\"\n | \"INSIDE_OBJECT_AFTER_KEY\"\n | \"INSIDE_OBJECT_BEFORE_VALUE\"\n | \"INSIDE_OBJECT_AFTER_VALUE\"\n | \"INSIDE_OBJECT_AFTER_COMMA\"\n | \"INSIDE_ARRAY_START\"\n | \"INSIDE_ARRAY_AFTER_VALUE\"\n | \"INSIDE_ARRAY_AFTER_COMMA\";\n\n// Implemented as a scanner with additional fixing\n// that performs a single linear time scan pass over the partial JSON.\n//\n// The states should ideally match relevant states from the JSON spec:\n// https://www.json.org/json-en.html\n//\n// Please note that invalid JSON is not considered/covered, because it\n// is assumed that the resulting JSON will be processed by a standard\n// JSON parser that will detect any invalid JSON.\n\n// Returns a tuple of [fixedJson, partialPath]\n// partialPath is an array of object/array keys that represent\n// the currently partial values. An object is considered partial\n// if through appending extra characters to the JSON string, its\n// value could change.\n\n// Example input: '{\"foo\":[{\"a\":f'\n// Example output: ['{\"foo\":[{\"a\":false}]}', ['foo', '0']]\n// Example input: '{\"foo\":'\n// Example output: ['{}', []]\n\nexport function fixJson(input: string): [string, string[]] {\n const stack: State[] = [\"ROOT\"];\n let lastValidIndex = -1;\n let literalStart: number | null = null;\n const path: string[] = [];\n let currentKey: string | undefined;\n\n function pushCurrentKeyToPath(): void {\n if (currentKey !== undefined) {\n path.push(JSON.parse(`\"${currentKey}\"`));\n currentKey = undefined;\n }\n }\n\n function processValueStart(char: string, i: number, swapState: State) {\n switch (char) {\n case '\"': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_STRING\");\n\n pushCurrentKeyToPath();\n break;\n }\n\n case \"f\":\n case \"t\":\n case \"n\": {\n lastValidIndex = i;\n literalStart = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_LITERAL\");\n break;\n }\n\n case \"-\": {\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n\n pushCurrentKeyToPath();\n break;\n }\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n\n pushCurrentKeyToPath();\n break;\n }\n\n case \"{\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_OBJECT_START\");\n\n pushCurrentKeyToPath();\n break;\n }\n\n case \"[\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_ARRAY_START\");\n\n pushCurrentKeyToPath();\n break;\n }\n }\n }\n\n function processAfterObjectValue(char: string, i: number) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_COMMA\");\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n currentKey = path.pop();\n break;\n }\n }\n }\n\n function processAfterArrayValue(char: string, i: number) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n currentKey = (Number(currentKey) + 1).toString();\n break;\n }\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n currentKey = path.pop();\n break;\n }\n }\n }\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i]!;\n const currentState = stack[stack.length - 1];\n\n switch (currentState) {\n case \"ROOT\":\n processValueStart(char, i, \"FINISH\");\n break;\n\n case \"INSIDE_OBJECT_START\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n currentKey = \"\";\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n currentKey = path.pop();\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_COMMA\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n currentKey = \"\";\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_KEY\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_KEY\");\n break;\n }\n case \"\\\\\": {\n stack.push(\"INSIDE_STRING_ESCAPE\");\n currentKey += char;\n break;\n }\n default: {\n currentKey += char;\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_KEY\": {\n switch (char) {\n case \":\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_BEFORE_VALUE\");\n\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_BEFORE_VALUE\": {\n processValueStart(char, i, \"INSIDE_OBJECT_AFTER_VALUE\");\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n processAfterObjectValue(char, i);\n break;\n }\n\n case \"INSIDE_STRING\": {\n switch (char) {\n case '\"': {\n stack.pop();\n lastValidIndex = i;\n\n currentKey = path.pop();\n break;\n }\n\n case \"\\\\\": {\n stack.push(\"INSIDE_STRING_ESCAPE\");\n break;\n }\n\n default: {\n lastValidIndex = i;\n }\n }\n\n break;\n }\n\n case \"INSIDE_ARRAY_START\": {\n switch (char) {\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n currentKey = path.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n currentKey = \"0\";\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n\n currentKey = (Number(currentKey) + 1).toString();\n break;\n }\n\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n currentKey = path.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n break;\n }\n }\n\n break;\n }\n\n case \"INSIDE_ARRAY_AFTER_COMMA\": {\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n\n case \"INSIDE_STRING_ESCAPE\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_STRING\") {\n lastValidIndex = i;\n } else if (stack[stack.length - 1] === \"INSIDE_OBJECT_KEY\") {\n currentKey += char;\n }\n\n break;\n }\n\n case \"INSIDE_NUMBER\": {\n switch (char) {\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n break;\n }\n\n case \"e\":\n case \"E\":\n case \"-\":\n case \".\": {\n break;\n }\n\n case \",\": {\n stack.pop();\n currentKey = path.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case \"}\": {\n stack.pop();\n currentKey = path.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case \"]\": {\n stack.pop();\n currentKey = path.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n\n break;\n }\n\n default: {\n stack.pop();\n currentKey = path.pop();\n break;\n }\n }\n\n break;\n }\n\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart!, i + 1);\n\n if (\n !\"false\".startsWith(partialLiteral) &&\n !\"true\".startsWith(partialLiteral) &&\n !\"null\".startsWith(partialLiteral)\n ) {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n } else if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n } else {\n lastValidIndex = i;\n }\n\n break;\n }\n }\n }\n\n let result = input.slice(0, lastValidIndex + 1);\n\n for (let i = stack.length - 1; i >= 0; i--) {\n const state = stack[i];\n\n switch (state) {\n case \"INSIDE_STRING\": {\n result += '\"';\n break;\n }\n\n case \"INSIDE_OBJECT_KEY\":\n case \"INSIDE_OBJECT_AFTER_KEY\":\n case \"INSIDE_OBJECT_AFTER_COMMA\":\n case \"INSIDE_OBJECT_START\":\n case \"INSIDE_OBJECT_BEFORE_VALUE\":\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n result += \"}\";\n break;\n }\n\n case \"INSIDE_ARRAY_START\":\n case \"INSIDE_ARRAY_AFTER_COMMA\":\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n result += \"]\";\n break;\n }\n\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart!, input.length);\n\n if (\"true\".startsWith(partialLiteral)) {\n result += \"true\".slice(partialLiteral.length);\n } else if (\"false\".startsWith(partialLiteral)) {\n result += \"false\".slice(partialLiteral.length);\n } else if (\"null\".startsWith(partialLiteral)) {\n result += \"null\".slice(partialLiteral.length);\n }\n }\n }\n }\n\n return [result, path];\n}\n","/* @ts-self-types=\"./index.d.ts\" */\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nexport let nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n","import { resource, tapState, withKey } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport { tapClientLookup } from \"@assistant-ui/store\";\nimport type { SuggestionsState } from \"../scopes/suggestions\";\nimport type { SuggestionState } from \"../scopes/suggestion\";\n\nexport type SuggestionConfig =\n | string\n | { title: string; label: string; prompt: string };\n\nconst SuggestionClient = resource(\n (state: SuggestionState): ClientOutput<\"suggestion\"> => {\n return {\n getState: () => state,\n };\n },\n);\n\nconst SuggestionsResource = resource(\n (suggestions?: SuggestionConfig[]): ClientOutput<\"suggestions\"> => {\n const [state] = tapState<SuggestionsState>(() => {\n const normalizedSuggestions = (suggestions ?? []).map((s) => {\n if (typeof s === \"string\") {\n return {\n title: s,\n label: \"\",\n prompt: s,\n };\n }\n return {\n title: s.title,\n label: s.label,\n prompt: s.prompt,\n };\n });\n\n return {\n suggestions: normalizedSuggestions,\n };\n });\n\n const suggestionClients = tapClientLookup(\n () =>\n state.suggestions.map((suggestion, index) =>\n withKey(index, SuggestionClient(suggestion)),\n ),\n [state.suggestions],\n );\n\n return {\n getState: () => state,\n suggestion: ({ index }: { index: number }) => {\n return suggestionClients.get({ index });\n },\n };\n },\n);\n\nexport const Suggestions: {\n (): import(\"@assistant-ui/tap\").ResourceElement<\n ClientOutput<\"suggestions\">,\n undefined\n >;\n (\n suggestions: SuggestionConfig[],\n ): import(\"@assistant-ui/tap\").ResourceElement<\n ClientOutput<\"suggestions\">,\n SuggestionConfig[]\n >;\n} = SuggestionsResource as any;\n","import { resource, tapMemo, tapState } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport type {\n ChainOfThoughtState,\n ChainOfThoughtPart,\n} from \"../scopes/chain-of-thought\";\nimport type { MessagePartStatus } from \"../../types/message\";\nimport type { PartMethods } from \"../scopes/part\";\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nexport const ChainOfThoughtClient = resource(\n ({\n parts,\n getMessagePart,\n }: {\n parts: readonly ChainOfThoughtPart[];\n getMessagePart: (selector: { index: number }) => PartMethods;\n }): ClientOutput<\"chainOfThought\"> => {\n const [collapsed, setCollapsed] = tapState(true);\n\n const status = tapMemo(() => {\n const lastPart = parts[parts.length - 1];\n return lastPart?.status ?? COMPLETE_STATUS;\n }, [parts]);\n\n const state = tapMemo<ChainOfThoughtState>(\n () => ({ parts, collapsed, status }),\n [parts, collapsed, status],\n );\n\n return {\n getState: () => state,\n setCollapsed,\n part: getMessagePart,\n };\n },\n);\n","import type { Unsubscribe } from \"../types/unsubscribe\";\nimport { Tool } from \"assistant-stream\";\n\n// =============================================================================\n// Language Model Settings\n// =============================================================================\n\nexport type LanguageModelV1CallSettings = {\n maxTokens?: number;\n temperature?: number;\n topP?: number;\n presencePenalty?: number;\n frequencyPenalty?: number;\n seed?: number;\n headers?: Record<string, string | undefined>;\n};\n\nexport type LanguageModelConfig = {\n apiKey?: string;\n baseUrl?: string;\n modelName?: string;\n};\n\n// =============================================================================\n// Model Context\n// =============================================================================\n\nexport type ModelContext = {\n priority?: number | undefined;\n system?: string | undefined;\n tools?: Record<string, Tool<any, any>> | undefined;\n callSettings?: LanguageModelV1CallSettings | undefined;\n config?: LanguageModelConfig | undefined;\n};\n\nexport type ModelContextProvider = {\n getModelContext: () => ModelContext;\n subscribe?: (callback: () => void) => Unsubscribe;\n};\n\n// =============================================================================\n// Tool & Instruction Config\n// =============================================================================\n\nexport type AssistantToolProps<\n TArgs extends Record<string, unknown>,\n TResult,\n> = Tool<TArgs, TResult> & {\n toolName: string;\n render?: unknown;\n};\n\nexport type AssistantInstructionsConfig = {\n disabled?: boolean | undefined;\n instruction: string;\n};\n\nexport type AssistantContextConfig = {\n getContext: () => string;\n disabled?: boolean | undefined;\n};\n\n// =============================================================================\n// Merging\n// =============================================================================\n\nexport const mergeModelContexts = (\n configSet: Set<ModelContextProvider>,\n): ModelContext => {\n const configs = Array.from(configSet)\n .map((c) => c.getModelContext())\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n\n return configs.reduce((acc, config) => {\n if (config.system) {\n if (acc.system) {\n acc.system += `\\n\\n${config.system}`;\n } else {\n acc.system = config.system;\n }\n }\n if (config.tools) {\n for (const [name, tool] of Object.entries(config.tools)) {\n const existing = acc.tools?.[name];\n if (existing && existing !== tool) {\n throw new Error(\n `You tried to define a tool with the name ${name}, but it already exists.`,\n );\n }\n\n if (!acc.tools) acc.tools = {};\n acc.tools[name] = tool;\n }\n }\n if (config.config) {\n acc.config = {\n ...acc.config,\n ...config.config,\n };\n }\n if (config.callSettings) {\n acc.callSettings = {\n ...acc.callSettings,\n ...config.callSettings,\n };\n }\n return acc;\n }, {} as ModelContext);\n};\n","import {\n type ModelContextProvider,\n mergeModelContexts,\n} from \"../model-context/types\";\n\nexport class CompositeContextProvider implements ModelContextProvider {\n private _providers = new Set<ModelContextProvider>();\n\n getModelContext() {\n return mergeModelContexts(this._providers);\n }\n\n registerModelContextProvider(provider: ModelContextProvider) {\n this._providers.add(provider);\n const unsubscribe = provider.subscribe?.(() => {\n this.notifySubscribers();\n });\n this.notifySubscribers();\n return () => {\n this._providers.delete(provider);\n unsubscribe?.();\n this.notifySubscribers();\n };\n }\n\n private _subscribers = new Set<() => void>();\n\n notifySubscribers() {\n for (const callback of this._subscribers) callback();\n }\n\n subscribe(callback: () => void) {\n this._subscribers.add(callback);\n return () => this._subscribers.delete(callback);\n }\n}\n","import { resource, tapMemo, tapState } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport { CompositeContextProvider } from \"../../utils/composite-context-provider\";\nimport type { ModelContextState } from \"../scopes/model-context\";\n\nconst version = 1;\n\nexport const ModelContext = resource((): ClientOutput<\"modelContext\"> => {\n const [state] = tapState<ModelContextState>(\n () => ({ version: version + 1 }) as unknown as ModelContextState,\n );\n const composite = tapMemo(() => new CompositeContextProvider(), []);\n\n return {\n getState: () => state,\n getModelContext: () => composite.getModelContext(),\n subscribe: (callback) => composite.subscribe(callback),\n register: (provider) => composite.registerModelContextProvider(provider),\n };\n});\n","import { resource, tapState, tapEffect, tapCallback } from \"@assistant-ui/tap\";\nimport {\n tapAssistantClientRef,\n type ClientOutput,\n attachTransformScopes,\n} from \"@assistant-ui/store\";\nimport { ToolsState } from \"../types/scopes/tools\";\nimport type { Tool } from \"assistant-stream\";\nimport { type Toolkit } from \"../model-context/toolbox\";\nimport { ToolCallMessagePartComponent } from \"../types/MessagePartComponentTypes\";\nimport { ModelContext } from \"../../store\";\n\nexport const Tools = resource(\n ({ toolkit }: { toolkit?: Toolkit }): ClientOutput<\"tools\"> => {\n const [state, setState] = tapState<ToolsState>(() => ({\n tools: {},\n }));\n\n const clientRef = tapAssistantClientRef();\n\n const setToolUI = tapCallback(\n (toolName: string, render: ToolCallMessagePartComponent) => {\n setState((prev) => {\n return {\n ...prev,\n tools: {\n ...prev.tools,\n [toolName]: [...(prev.tools[toolName] ?? []), render],\n },\n };\n });\n\n return () => {\n setState((prev) => {\n return {\n ...prev,\n tools: {\n ...prev.tools,\n [toolName]:\n prev.tools[toolName]?.filter((r) => r !== render) ?? [],\n },\n };\n });\n };\n },\n [],\n );\n\n tapEffect(() => {\n if (!toolkit) return;\n const unsubscribes: (() => void)[] = [];\n\n // Register tool UIs (exclude symbols)\n for (const [toolName, tool] of Object.entries(toolkit)) {\n if (tool.render) {\n unsubscribes.push(setToolUI(toolName, tool.render));\n }\n }\n\n // Register tools with model context (exclude symbols)\n const toolsWithoutRender = Object.entries(toolkit).reduce(\n (acc, [name, tool]) => {\n const { render, ...rest } = tool;\n acc[name] = rest;\n return acc;\n },\n {} as Record<string, Tool<any, any>>,\n );\n\n const modelContextProvider = {\n getModelContext: () => ({\n tools: toolsWithoutRender,\n }),\n };\n\n unsubscribes.push(\n clientRef.current!.modelContext().register(modelContextProvider),\n );\n\n return () => {\n unsubscribes.forEach((fn) => fn());\n };\n }, [toolkit, setToolUI, clientRef]);\n\n return {\n getState: () => state,\n setToolUI,\n };\n },\n);\n\nattachTransformScopes(Tools, (scopes, parent) => {\n if (!scopes.modelContext && parent.modelContext.source === null) {\n scopes.modelContext = ModelContext();\n }\n});\n","import { resource, tapState, tapCallback } from \"@assistant-ui/tap\";\nimport { type ClientOutput } from \"@assistant-ui/store\";\nimport { DataRenderersState } from \"../types/scopes/dataRenderers\";\nimport { DataMessagePartComponent } from \"../types/MessagePartComponentTypes\";\n\nexport const DataRenderers = resource((): ClientOutput<\"dataRenderers\"> => {\n const [state, setState] = tapState<DataRenderersState>(() => ({\n renderers: {},\n }));\n\n const setDataUI = tapCallback(\n (name: string, render: DataMessagePartComponent) => {\n setState((prev) => {\n return {\n ...prev,\n renderers: {\n ...prev.renderers,\n [name]: [...(prev.renderers[name] ?? []), render],\n },\n };\n });\n\n return () => {\n setState((prev) => {\n return {\n ...prev,\n renderers: {\n ...prev.renderers,\n [name]: prev.renderers[name]?.filter((r) => r !== render) ?? [],\n },\n };\n });\n };\n },\n [],\n );\n\n return {\n getState: () => state,\n setDataUI,\n };\n});\n","import { ReadonlyJSONValue } from \"../../utils/json/json-value\";\n\nconst TOOL_RESPONSE_SYMBOL = Symbol.for(\"aui.tool-response\");\n\nexport type ToolResponseLike<TResult> = {\n result: TResult;\n artifact?: ReadonlyJSONValue | undefined;\n isError?: boolean | undefined;\n messages?: ReadonlyJSONValue | undefined;\n};\n\nexport class ToolResponse<TResult> {\n get [TOOL_RESPONSE_SYMBOL]() {\n return true;\n }\n\n readonly artifact?: ReadonlyJSONValue;\n readonly result: TResult;\n readonly isError: boolean;\n readonly messages?: ReadonlyJSONValue;\n\n constructor(options: ToolResponseLike<TResult>) {\n if (options.artifact !== undefined) {\n this.artifact = options.artifact;\n }\n this.result = options.result;\n this.isError = options.isError ?? false;\n if (options.messages !== undefined) {\n this.messages = options.messages;\n }\n }\n\n static [Symbol.hasInstance](\n obj: unknown,\n ): obj is ToolResponse<ReadonlyJSONValue> {\n return (\n typeof obj === \"object\" && obj !== null && TOOL_RESPONSE_SYMBOL in obj\n );\n }\n\n static toResponse(result: any | ToolResponse<any>): ToolResponse<any> {\n if (result instanceof ToolResponse) {\n return result;\n }\n return new ToolResponse({\n result: result === undefined ? \"<no result>\" : result,\n });\n }\n}\n","import { type FC, type PropsWithChildren } from \"react\";\nimport { useAui, AuiProvider, Derived } from \"@assistant-ui/store\";\n\nexport const MessageAttachmentByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const aui = useAui({\n attachment: Derived({\n source: \"message\",\n query: { type: \"index\", index },\n get: (aui) => aui.message().attachment({ index }),\n }),\n });\n\n return <AuiProvider value={aui}>{children}</AuiProvider>;\n};\n\nexport const ComposerAttachmentByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const aui = useAui({\n attachment: Derived({\n source: \"composer\",\n query: { type: \"index\", index },\n get: (aui) => aui.composer().attachment({ index }),\n }),\n });\n\n return <AuiProvider value={aui}>{children}</AuiProvider>;\n};\n","import { tapState, tapEffect } from \"@assistant-ui/tap\";\nimport type { SubscribableWithState } from \"../../subscribable/subscribable\";\n\nexport const tapSubscribable = <T>(\n subscribable: Omit<SubscribableWithState<T, any>, \"path\">,\n) => {\n const [, setState] = tapState(subscribable.getState);\n tapEffect(() => {\n setState(subscribable.getState());\n return subscribable.subscribe(() => {\n setState(subscribable.getState());\n });\n }, [subscribable]);\n\n return subscribable.getState();\n};\n","import { resource } from \"@assistant-ui/tap\";\nimport { type ClientOutput } from \"@assistant-ui/store\";\nimport { AttachmentRuntime } from \"../../runtime/api/attachment-runtime\";\nimport { tapSubscribable } from \"./tap-subscribable\";\n\nexport const AttachmentRuntimeClient = resource(\n ({ runtime }: { runtime: AttachmentRuntime }): ClientOutput<\"attachment\"> => {\n const state = tapSubscribable(runtime);\n\n return {\n getState: () => state,\n remove: runtime.remove,\n __internal_getRuntime: () => runtime,\n };\n },\n);\n","import { resource } from \"@assistant-ui/tap\";\nimport { type ClientOutput } from \"@assistant-ui/store\";\nimport { MessagePartRuntime } from \"../../runtime/api/message-part-runtime\";\nimport { tapSubscribable } from \"./tap-subscribable\";\n\nexport const MessagePartClient = resource(\n ({ runtime }: { runtime: MessagePartRuntime }): ClientOutput<\"part\"> => {\n const state = tapSubscribable(runtime);\n\n return {\n getState: () => state,\n addToolResult: (result) => runtime.addToolResult(result),\n resumeToolCall: (payload) => runtime.resumeToolCall(payload),\n __internal_getRuntime: () => runtime,\n };\n },\n);\n","import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport {\n resource,\n tapMemo,\n tapEffect,\n tapResource,\n type tapRef,\n withKey,\n} from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n tapAssistantEmit,\n tapClientLookup,\n} from \"@assistant-ui/store\";\nimport {\n ComposerRuntime,\n EditComposerRuntime,\n} from \"../../runtime/api/composer-runtime\";\nimport { ComposerState } from \"../scopes/composer\";\nimport { AttachmentRuntimeClient } from \"./attachment-runtime-client\";\nimport { tapSubscribable } from \"./tap-subscribable\";\n\nconst ComposerAttachmentClientByIndex = resource(\n ({ runtime, index }: { runtime: ComposerRuntime; index: number }) => {\n const attachmentRuntime = tapMemo(\n () => runtime.getAttachmentByIndex(index),\n [runtime, index],\n );\n\n return tapResource(\n AttachmentRuntimeClient({\n runtime: attachmentRuntime,\n }),\n );\n },\n);\n\nexport const ComposerClient = resource(\n ({\n threadIdRef,\n messageIdRef,\n runtime,\n }: {\n threadIdRef: tapRef.RefObject<string>;\n messageIdRef?: tapRef.RefObject<string>;\n runtime: ComposerRuntime;\n }): ClientOutput<\"composer\"> => {\n const runtimeState = tapSubscribable(runtime);\n const emit = tapAssistantEmit();\n\n // Bind composer events to event manager\n tapEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n // Subscribe to composer events\n for (const event of [\"send\", \"attachmentAdd\"] as const) {\n const unsubscribe = runtime.unstable_on(event, () => {\n emit(`composer.${event}`, {\n threadId: threadIdRef.current,\n ...(messageIdRef && { messageId: messageIdRef.current }),\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n // attachmentAddError carries the failed attachment ID\n unsubscribers.push(\n runtime.unstable_on(\"attachmentAddError\", () => {\n const errorAttachment = runtime\n .getState()\n .attachments.findLast(\n (a) =>\n a.status.type === \"incomplete\" && a.status.reason === \"error\",\n );\n emit(\"composer.attachmentAddError\", {\n threadId: threadIdRef.current,\n ...(messageIdRef && { messageId: messageIdRef.current }),\n ...(errorAttachment && { attachmentId: errorAttachment.id }),\n });\n }),\n );\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit, threadIdRef, messageIdRef]);\n\n const attachments = tapClientLookup(\n () =>\n runtimeState.attachments.map((attachment, idx) =>\n withKey(\n attachment.id,\n ComposerAttachmentClientByIndex({\n runtime,\n index: idx,\n }),\n ),\n ),\n [runtimeState.attachments, runtime],\n );\n\n const state = tapMemo<ComposerState>(() => {\n return {\n text: runtimeState.text,\n role: runtimeState.role,\n attachments: attachments.state,\n runConfig: runtimeState.runConfig,\n isEditing: runtimeState.isEditing,\n canCancel: runtimeState.canCancel,\n attachmentAccept: runtimeState.attachmentAccept,\n isEmpty: runtimeState.isEmpty,\n type: runtimeState.type ?? \"thread\",\n dictation: runtimeState.dictation,\n quote: runtimeState.quote,\n queue: [],\n };\n }, [runtimeState, attachments.state]);\n\n return {\n getState: () => state,\n setText: runtime.setText,\n setRole: runtime.setRole,\n setRunConfig: runtime.setRunConfig,\n addAttachment: runtime.addAttachment,\n reset: runtime.reset,\n clearAttachments: runtime.clearAttachments,\n send: runtime.send,\n cancel: runtime.cancel,\n beginEdit:\n (runtime as EditComposerRuntime).beginEdit ??\n (() => {\n throw new Error(\"beginEdit is not supported in this runtime\");\n }),\n startDictation: runtime.startDictation,\n stopDictation: runtime.stopDictation,\n setQuote: runtime.setQuote,\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachments.get({ key: selector.id });\n } else {\n return attachments.get(selector);\n }\n },\n queueItem: () => {\n throw new Error(\"Queue is not supported in this runtime\");\n },\n __internal_getRuntime: () => runtime,\n };\n },\n);\n","import {\n withKey,\n resource,\n tapResource,\n tapMemo,\n tapState,\n type tapRef,\n} from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n tapClientLookup,\n tapClientResource,\n} from \"@assistant-ui/store\";\nimport { MessageRuntime } from \"../../runtime/api/message-runtime\";\nimport { tapSubscribable } from \"./tap-subscribable\";\nimport { ComposerClient } from \"./composer-runtime-client\";\nimport { MessagePartClient } from \"./message-part-runtime-client\";\nimport { MessageState } from \"../scopes/message\";\nimport { AttachmentRuntimeClient } from \"./attachment-runtime-client\";\n\nconst MessageAttachmentClientByIndex = resource(\n ({ runtime, index }: { runtime: MessageRuntime; index: number }) => {\n const attachmentRuntime = tapMemo(\n () => runtime.getAttachmentByIndex(index),\n [runtime, index],\n );\n return tapResource(AttachmentRuntimeClient({ runtime: attachmentRuntime }));\n },\n);\n\nconst MessagePartByIndex = resource(\n ({ runtime, index }: { runtime: MessageRuntime; index: number }) => {\n const partRuntime = tapMemo(\n () => runtime.getMessagePartByIndex(index),\n [runtime, index],\n );\n return tapResource(MessagePartClient({ runtime: partRuntime }));\n },\n);\n\nexport const MessageClient = resource(\n ({\n runtime,\n threadIdRef,\n }: {\n runtime: MessageRuntime;\n threadIdRef: tapRef.RefObject<string>;\n }): ClientOutput<\"message\"> => {\n const runtimeState = tapSubscribable(runtime);\n\n const [isCopiedState, setIsCopied] = tapState(false);\n const [isHoveringState, setIsHovering] = tapState(false);\n\n const messageIdRef = tapMemo(\n () => ({\n get current() {\n return runtime.getState().id;\n },\n }),\n [runtime],\n );\n\n const composer = tapClientResource(\n ComposerClient({\n runtime: runtime.composer,\n threadIdRef,\n messageIdRef,\n }),\n );\n const parts = tapClientLookup(\n () =>\n runtimeState.content.map((part, idx) =>\n withKey(\n \"toolCallId\" in part && part.toolCallId != null\n ? `toolCallId-${part.toolCallId}`\n : `index-${idx}`,\n MessagePartByIndex({ runtime, index: idx }),\n ),\n ),\n [runtimeState.content, runtime],\n );\n\n const attachments = tapClientLookup(\n () =>\n (runtimeState.attachments ?? []).map((attachment, idx) =>\n withKey(\n attachment.id,\n MessageAttachmentClientByIndex({ runtime, index: idx }),\n ),\n ),\n [runtimeState.attachments, runtime],\n );\n\n const state = tapMemo<MessageState>(() => {\n return {\n ...(runtimeState as MessageState),\n\n parts: parts.state,\n composer: composer.state,\n\n isCopied: isCopiedState,\n isHovering: isHoveringState,\n };\n }, [\n runtimeState,\n parts.state,\n composer.state,\n isCopiedState,\n isHoveringState,\n ]);\n\n return {\n getState: () => state,\n\n composer: () => composer.methods,\n\n reload: (config) => runtime.reload(config),\n speak: () => runtime.speak(),\n stopSpeaking: () => runtime.stopSpeaking(),\n submitFeedback: (feedback) => runtime.submitFeedback(feedback),\n switchToBranch: (options) => runtime.switchToBranch(options),\n getCopyText: () => runtime.unstable_getCopyText(),\n part: (selector) => {\n if (\"index\" in selector) {\n return parts.get({ index: selector.index });\n } else {\n return parts.get({ key: `toolCallId-${selector.toolCallId}` });\n }\n },\n\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachments.get({ key: selector.id });\n } else {\n return attachments.get(selector);\n }\n },\n\n setIsCopied,\n setIsHovering,\n\n __internal_getRuntime: () => runtime,\n };\n },\n);\n","import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport { ThreadRuntimeEventType } from \"../../runtime/interfaces/thread-runtime-core\";\nimport { ThreadRuntime } from \"../../runtime/api/thread-runtime\";\nimport {\n resource,\n tapResource,\n tapMemo,\n tapEffect,\n type tapRef,\n withKey,\n} from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n tapAssistantEmit,\n tapClientLookup,\n tapClientResource,\n} from \"@assistant-ui/store\";\nimport { ComposerClient } from \"./composer-runtime-client\";\nimport { MessageClient } from \"./message-runtime-client\";\nimport { tapSubscribable } from \"./tap-subscribable\";\nimport { ThreadState } from \"../scopes/thread\";\n\nconst MessageClientById = resource(\n ({\n runtime,\n id,\n threadIdRef,\n }: {\n runtime: ThreadRuntime;\n id: string;\n threadIdRef: tapRef.RefObject<string>;\n }) => {\n const messageRuntime = tapMemo(\n () => runtime.getMessageById(id),\n [runtime, id],\n );\n\n return tapResource(MessageClient({ runtime: messageRuntime, threadIdRef }));\n },\n);\n\nexport const ThreadClient = resource(\n ({ runtime }: { runtime: ThreadRuntime }): ClientOutput<\"thread\"> => {\n const runtimeState = tapSubscribable(runtime);\n const emit = tapAssistantEmit();\n\n tapEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n const threadEvents: ThreadRuntimeEventType[] = [\n \"runStart\",\n \"runEnd\",\n \"initialize\",\n \"modelContextUpdate\",\n ];\n\n for (const event of threadEvents) {\n const unsubscribe = runtime.unstable_on(event, () => {\n const threadId = runtime.getState()?.threadId || \"unknown\";\n emit(`thread.${event}`, {\n threadId,\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit]);\n\n const threadIdRef = tapMemo(\n () => ({\n get current() {\n return runtime.getState()!.threadId;\n },\n }),\n [runtime],\n );\n\n const composer = tapClientResource(\n ComposerClient({\n runtime: runtime.composer,\n threadIdRef,\n }),\n );\n const messages = tapClientLookup(\n () =>\n runtimeState.messages.map((m) =>\n withKey(m.id, MessageClientById({ runtime, id: m.id, threadIdRef })),\n ),\n [runtimeState.messages, runtime, threadIdRef],\n );\n\n const state = tapMemo<ThreadState>(() => {\n return {\n isEmpty: messages.state.length === 0 && !runtimeState.isLoading,\n isDisabled: runtimeState.isDisabled,\n isLoading: runtimeState.isLoading,\n isRunning: runtimeState.isRunning,\n capabilities: runtimeState.capabilities,\n state: runtimeState.state,\n suggestions: runtimeState.suggestions,\n extras: runtimeState.extras,\n speech: runtimeState.speech,\n voice: runtimeState.voice,\n\n composer: composer.state,\n messages: messages.state,\n };\n }, [runtimeState, messages, composer.state]);\n\n return {\n getState: () => state,\n composer: () => composer.methods,\n append: runtime.append,\n startRun: runtime.startRun,\n resumeRun: runtime.resumeRun,\n unstable_resumeRun: runtime.resumeRun,\n cancelRun: runtime.cancelRun,\n getModelContext: runtime.getModelContext,\n export: runtime.export,\n import: runtime.import,\n reset: runtime.reset,\n stopSpeaking: runtime.stopSpeaking,\n connectVoice: runtime.connectVoice,\n disconnectVoice: runtime.disconnectVoice,\n getVoiceVolume: runtime.getVoiceVolume,\n subscribeVoiceVolume: runtime.subscribeVoiceVolume,\n muteVoice: runtime.muteVoice,\n unmuteVoice: runtime.unmuteVoice,\n message: (selector) => {\n if (\"id\" in selector) {\n return messages.get({ key: selector.id });\n } else {\n return messages.get(selector);\n }\n },\n __internal_getRuntime: () => runtime,\n };\n },\n);\n","import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport { resource, tapEffect } from \"@assistant-ui/tap\";\nimport { type ClientOutput, tapAssistantEmit } from \"@assistant-ui/store\";\nimport {\n ThreadListItemEventType,\n ThreadListItemRuntime,\n} from \"../../runtime/api/thread-list-item-runtime\";\nimport { tapSubscribable } from \"./tap-subscribable\";\n\nexport const ThreadListItemClient = resource(\n ({\n runtime,\n }: {\n runtime: ThreadListItemRuntime;\n }): ClientOutput<\"threadListItem\"> => {\n const state = tapSubscribable(runtime);\n const emit = tapAssistantEmit();\n\n // Bind thread list item events to event manager\n tapEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n // Subscribe to thread list item events\n const threadListItemEvents: ThreadListItemEventType[] = [\n \"switchedTo\",\n \"switchedAway\",\n ];\n\n for (const event of threadListItemEvents) {\n const unsubscribe = runtime.unstable_on(event, () => {\n emit(`threadListItem.${event}`, {\n threadId: runtime.getState()!.id,\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit]);\n\n return {\n getState: () => state,\n switchTo: runtime.switchTo,\n rename: runtime.rename,\n archive: runtime.archive,\n unarchive: runtime.unarchive,\n delete: runtime.delete,\n generateTitle: runtime.generateTitle,\n initialize: runtime.initialize,\n detach: runtime.detach,\n __internal_getRuntime: () => runtime,\n };\n },\n);\n","import { withKey, resource, tapResource, tapMemo } from \"@assistant-ui/tap\";\nimport {\n type ClientOutput,\n tapClientLookup,\n tapClientResource,\n} from \"@assistant-ui/store\";\nimport { ThreadListRuntime } from \"../../runtime/api/thread-list-runtime\";\nimport { AssistantRuntime } from \"../../runtime/api/assistant-runtime\";\nimport { tapSubscribable } from \"./tap-subscribable\";\nimport { ThreadListItemClient } from \"./thread-list-item-runtime-client\";\nimport { ThreadClient } from \"./thread-runtime-client\";\nimport { ThreadsState } from \"../scopes/threads\";\n\nconst ThreadListItemClientById = resource(\n ({ runtime, id }: { runtime: ThreadListRuntime; id: string }) => {\n const threadListItemRuntime = tapMemo(\n () => runtime.getItemById(id),\n [runtime, id],\n );\n return tapResource(\n ThreadListItemClient({\n runtime: threadListItemRuntime,\n }),\n );\n },\n);\n\nexport const ThreadListClient = resource(\n ({\n runtime,\n __internal_assistantRuntime,\n }: {\n runtime: ThreadListRuntime;\n __internal_assistantRuntime: AssistantRuntime;\n }): ClientOutput<\"threads\"> => {\n const runtimeState = tapSubscribable(runtime);\n\n const main = tapClientResource(\n ThreadClient({\n runtime: runtime.main,\n }),\n );\n const threadItems = tapClientLookup(\n () =>\n Object.keys(runtimeState.threadItems).map((id) =>\n withKey(id, ThreadListItemClientById({ runtime, id })),\n ),\n [runtimeState.threadItems, runtime],\n );\n\n const state = tapMemo<ThreadsState>(() => {\n return {\n mainThreadId: runtimeState.mainThreadId,\n newThreadId: runtimeState.newThreadId ?? null,\n isLoading: runtimeState.isLoading,\n threadIds: runtimeState.threadIds,\n archivedThreadIds: runtimeState.archivedThreadIds,\n threadItems: threadItems.state,\n\n main: main.state,\n };\n }, [runtimeState, threadItems.state, main.state]);\n\n return {\n getState: () => state,\n thread: () => main.methods,\n item: (threadIdOrOptions) => {\n if (threadIdOrOptions === \"main\") {\n return threadItems.get({ key: state.mainThreadId });\n }\n\n if (\"id\" in threadIdOrOptions) {\n return threadItems.get({ key: threadIdOrOptions.id });\n }\n\n const { index, archived = false } = threadIdOrOptions;\n const id = archived\n ? state.archivedThreadIds[index]!\n : state.threadIds[index]!;\n return threadItems.get({ key: id });\n },\n switchToThread: async (threadId) => {\n await runtime.switchToThread(threadId);\n },\n switchToNewThread: async () => {\n await runtime.switchToNewThread();\n },\n getLoadThreadsPromise: () => runtime.getLoadThreadsPromise(),\n __internal_getAssistantRuntime: () => __internal_assistantRuntime,\n };\n },\n);\n","import { resource, tapEffect, tapResource } from \"@assistant-ui/tap\";\nimport type { AssistantRuntime } from \"../../runtime/api/assistant-runtime\";\nimport { ThreadListClient } from \"../runtime-clients/thread-list-runtime-client\";\nimport {\n tapAssistantClientRef,\n Derived,\n type ScopesConfig,\n type AssistantClient,\n} from \"@assistant-ui/store\";\nimport { ModelContext } from \"./model-context-client\";\nimport { Suggestions } from \"./suggestions\";\n\nexport const RuntimeAdapterResource = resource((runtime: AssistantRuntime) => {\n const clientRef = tapAssistantClientRef();\n\n tapEffect(() => {\n return runtime.registerModelContextProvider(\n clientRef.current!.modelContext(),\n );\n }, [runtime, clientRef]);\n\n return tapResource(\n ThreadListClient({\n runtime: runtime.threads,\n __internal_assistantRuntime: runtime,\n }),\n );\n});\n\nexport const baseRuntimeAdapterTransformScopes = (\n scopes: ScopesConfig,\n parent: AssistantClient,\n): void => {\n scopes.thread ??= Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads().thread(\"main\"),\n });\n scopes.threadListItem ??= Derived({\n source: \"threads\",\n query: { type: \"main\" },\n get: (aui) => aui.threads().item(\"main\"),\n });\n scopes.composer ??= Derived({\n source: \"thread\",\n query: {},\n get: (aui) => aui.threads().thread(\"main\").composer(),\n });\n\n if (!scopes.modelContext && parent.modelContext.source === null) {\n scopes.modelContext = ModelContext();\n }\n if (!scopes.suggestions && parent.suggestions.source === null) {\n scopes.suggestions = Suggestions();\n }\n};\n","import { type FC, type PropsWithChildren } from \"react\";\nimport { useAui, AuiProvider, Derived } from \"@assistant-ui/store\";\n\nexport const MessageByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const aui = useAui({\n message: Derived({\n source: \"thread\",\n query: { type: \"index\", index },\n get: (aui) => aui.thread().message({ index }),\n }),\n composer: Derived({\n source: \"message\",\n query: {},\n get: (aui) => aui.thread().message({ index }).composer(),\n }),\n });\n\n return <AuiProvider value={aui}>{children}</AuiProvider>;\n};\n","import { type FC, type PropsWithChildren } from \"react\";\nimport { useAui, AuiProvider, Derived } from \"@assistant-ui/store\";\n\nexport const PartByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const aui = useAui({\n part: Derived({\n source: \"message\",\n query: { type: \"index\", index },\n get: (aui) => aui.message().part({ index }),\n }),\n });\n\n return <AuiProvider value={aui}>{children}</AuiProvider>;\n};\n","import { type FC, type PropsWithChildren } from \"react\";\nimport { useAui, AuiProvider, type ClientOutput } from \"@assistant-ui/store\";\nimport type { PartState } from \"../../store/scopes/part\";\nimport { resource, tapMemo } from \"@assistant-ui/tap\";\n\nconst TextMessagePartClient = resource(\n ({\n text,\n isRunning,\n }: {\n text: string;\n isRunning: boolean;\n }): ClientOutput<\"part\"> => {\n const state = tapMemo<PartState>(\n () => ({\n type: \"text\",\n text,\n status: isRunning ? { type: \"running\" } : { type: \"complete\" },\n }),\n [text, isRunning],\n );\n\n return {\n getState: () => state,\n addToolResult: () => {\n throw new Error(\"Not supported\");\n },\n resumeToolCall: () => {\n throw new Error(\"Not supported\");\n },\n };\n },\n);\n\nexport const TextMessagePartProvider: FC<\n PropsWithChildren<{\n text: string;\n isRunning?: boolean;\n }>\n> = ({ text, isRunning = false, children }) => {\n const aui = useAui({\n part: TextMessagePartClient({ text, isRunning }),\n });\n\n return <AuiProvider value={aui}>{children}</AuiProvider>;\n};\n","import { type FC, type PropsWithChildren } from \"react\";\nimport { useAui, useAuiState, AuiProvider } from \"@assistant-ui/store\";\nimport { ChainOfThoughtClient } from \"../../store/clients/chain-of-thought-client\";\nimport type { ChainOfThoughtPart } from \"../../store/scopes/chain-of-thought\";\n\nexport const ChainOfThoughtByIndicesProvider: FC<\n PropsWithChildren<{\n startIndex: number;\n endIndex: number;\n }>\n> = ({ startIndex, endIndex, children }) => {\n const parts = useAuiState((s) => s.message.parts).slice(\n startIndex,\n endIndex + 1,\n ) as ChainOfThoughtPart[];\n\n const parentAui = useAui();\n\n const aui = useAui({\n chainOfThought: ChainOfThoughtClient({\n parts,\n getMessagePart: ({ index }) => {\n if (index < 0 || index >= parts.length) {\n throw new Error(\n `ChainOfThought part index ${index} is out of bounds (0..${parts.length - 1})`,\n );\n }\n return parentAui.message().part({ index: startIndex + index });\n },\n }),\n });\n\n return <AuiProvider value={aui}>{children}</AuiProvider>;\n};\n","import { type FC, type PropsWithChildren } from \"react\";\nimport { AuiProvider, Derived, useAui } from \"@assistant-ui/store\";\n\nexport type SuggestionByIndexProviderProps = PropsWithChildren<{\n index: number;\n}>;\n\nexport const SuggestionByIndexProvider: FC<SuggestionByIndexProviderProps> = ({\n index,\n children,\n}) => {\n const aui = useAui({\n suggestion: Derived({\n source: \"suggestions\",\n query: { index },\n get: (aui) => aui.suggestions().suggestion({ index }),\n }),\n });\n\n return <AuiProvider value={aui}>{children}</AuiProvider>;\n};\n","import type { Unsubscribe } from \"../types/unsubscribe\";\n\n// =============================================================================\n// Sentinel\n// =============================================================================\n\nexport const SKIP_UPDATE = Symbol(\"skip-update\");\nexport type SKIP_UPDATE = typeof SKIP_UPDATE;\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type Subscribable = {\n subscribe: (callback: () => void) => Unsubscribe;\n};\n\nexport type SubscribableWithState<TState, TPath> = Subscribable & {\n path: TPath;\n getState: () => TState;\n};\n\nexport type NestedSubscribable<\n TState extends Subscribable | undefined,\n TPath,\n> = SubscribableWithState<TState, TPath>;\n\nexport type EventSubscribable<TEvent extends string> = {\n event: TEvent;\n binding: SubscribableWithState<\n | {\n unstable_on: (event: TEvent, callback: () => void) => Unsubscribe;\n }\n | undefined,\n unknown\n >;\n};\n\n// =============================================================================\n// Utilities\n// =============================================================================\n\nfunction shallowEqual<T extends object>(\n objA: T | undefined,\n objB: T | undefined,\n) {\n if (objA === undefined && objB === undefined) return true;\n if (objA === undefined) return false;\n if (objB === undefined) return false;\n\n for (const key of Object.keys(objA)) {\n const valueA = objA[key as keyof T];\n const valueB = objB[key as keyof T];\n if (!Object.is(valueA, valueB)) return false;\n }\n\n return true;\n}\n\n// =============================================================================\n// Base Subscribable (simple pub-sub)\n// =============================================================================\n\nexport class BaseSubscribable {\n private _subscribers = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscribers.add(callback);\n return () => this._subscribers.delete(callback);\n }\n\n public waitForUpdate() {\n return new Promise<void>((resolve) => {\n const unsubscribe = this.subscribe(() => {\n unsubscribe();\n resolve();\n });\n });\n }\n\n protected _notifySubscribers() {\n const errors = [];\n for (const callback of this._subscribers) {\n try {\n callback();\n } catch (error) {\n errors.push(error);\n }\n }\n\n if (errors.length > 0) {\n if (errors.length === 1) {\n throw errors[0];\n } else {\n for (const error of errors) {\n console.error(error);\n }\n throw new AggregateError(errors);\n }\n }\n }\n}\n\n// =============================================================================\n// Base Subject (lazy connect/disconnect)\n// =============================================================================\n\nexport abstract class BaseSubject {\n private _subscriptions = new Set<() => void>();\n private _connection: Unsubscribe | undefined;\n\n protected get isConnected() {\n return !!this._connection;\n }\n\n protected abstract _connect(): Unsubscribe;\n\n protected notifySubscribers() {\n for (const callback of this._subscriptions) callback();\n }\n\n private _updateConnection() {\n if (this._subscriptions.size > 0) {\n if (this._connection) return;\n this._connection = this._connect();\n } else {\n this._connection?.();\n this._connection = undefined;\n }\n }\n\n public subscribe(callback: () => void) {\n this._subscriptions.add(callback);\n this._updateConnection();\n\n return () => {\n this._subscriptions.delete(callback);\n this._updateConnection();\n };\n }\n}\n\n// =============================================================================\n// Subject Implementations\n// =============================================================================\n\nexport class ShallowMemoizeSubject<TState extends object, TPath>\n extends BaseSubject\n implements SubscribableWithState<TState, TPath>\n{\n public get path() {\n return this.binding.path;\n }\n\n constructor(\n private binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>,\n ) {\n super();\n const state = binding.getState();\n if (state === SKIP_UPDATE)\n throw new Error(\"Entry not available in the store\");\n this._previousState = state;\n }\n\n private _previousState: TState;\n public getState = () => {\n if (!this.isConnected) this._syncState();\n return this._previousState;\n };\n\n private _syncState() {\n const state = this.binding.getState();\n if (state === SKIP_UPDATE) return false;\n if (shallowEqual(state, this._previousState)) return false;\n this._previousState = state;\n return true;\n }\n\n protected _connect() {\n const callback = () => {\n if (this._syncState()) {\n this.notifySubscribers();\n }\n };\n\n return this.binding.subscribe(callback);\n }\n}\n\nexport class LazyMemoizeSubject<TState extends object, TPath>\n extends BaseSubject\n implements SubscribableWithState<TState, TPath>\n{\n public get path() {\n return this.binding.path;\n }\n\n constructor(\n private binding: SubscribableWithState<TState | SKIP_UPDATE, TPath>,\n ) {\n super();\n }\n\n private _previousStateDirty = true;\n private _previousState: TState | undefined;\n public getState = () => {\n if (!this.isConnected || this._previousStateDirty) {\n const newState = this.binding.getState();\n if (newState !== SKIP_UPDATE) {\n this._previousState = newState;\n }\n this._previousStateDirty = false;\n }\n if (this._previousState === undefined)\n throw new Error(\"Entry not available in the store\");\n return this._previousState;\n };\n\n protected _connect() {\n const callback = () => {\n this._previousStateDirty = true;\n this.notifySubscribers();\n };\n\n return this.binding.subscribe(callback);\n }\n}\n\nexport class NestedSubscriptionSubject<\n TState extends Subscribable | undefined,\n TPath,\n >\n extends BaseSubject\n implements\n SubscribableWithState<TState, TPath>,\n NestedSubscribable<TState, TPath>\n{\n public get path() {\n return this.binding.path;\n }\n\n constructor(private binding: NestedSubscribable<TState, TPath>) {\n super();\n }\n\n public getState() {\n return this.binding.getState();\n }\n\n public outerSubscribe(callback: () => void) {\n return this.binding.subscribe(callback);\n }\n\n protected _connect(): Unsubscribe {\n const callback = () => {\n this.notifySubscribers();\n };\n\n let lastState = this.binding.getState();\n let innerUnsubscribe = lastState?.subscribe(callback);\n const onRuntimeUpdate = () => {\n const newState = this.binding.getState();\n if (newState === lastState) return;\n lastState = newState;\n\n innerUnsubscribe?.();\n innerUnsubscribe = newState?.subscribe(callback);\n\n callback();\n };\n\n const outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);\n return () => {\n outerUnsubscribe?.();\n innerUnsubscribe?.();\n };\n }\n}\n\nexport class EventSubscriptionSubject<\n TEvent extends string,\n> extends BaseSubject {\n constructor(private config: EventSubscribable<TEvent>) {\n super();\n }\n\n public getState() {\n return this.config.binding.getState();\n }\n\n public outerSubscribe(callback: () => void) {\n return this.config.binding.subscribe(callback);\n }\n\n protected _connect(): Unsubscribe {\n const callback = () => {\n this.notifySubscribers();\n };\n\n let lastState = this.config.binding.getState();\n let innerUnsubscribe = lastState?.unstable_on(this.config.event, callback);\n const onRuntimeUpdate = () => {\n const newState = this.config.binding.getState();\n if (newState === lastState) return;\n lastState = newState;\n\n innerUnsubscribe?.();\n innerUnsubscribe = newState?.unstable_on(this.config.event, callback);\n };\n\n const outerUnsubscribe = this.outerSubscribe(onRuntimeUpdate);\n return () => {\n outerUnsubscribe?.();\n innerUnsubscribe?.();\n };\n }\n}\n","import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { ModelContextProvider } from \"../../model-context/types\";\nimport { CompositeContextProvider } from \"../../utils/composite-context-provider\";\nimport type { AssistantRuntimeCore } from \"../interfaces/assistant-runtime-core\";\nimport type { ThreadListRuntimeCore } from \"../interfaces/thread-list-runtime-core\";\n\nexport abstract class BaseAssistantRuntimeCore implements AssistantRuntimeCore {\n protected readonly _contextProvider = new CompositeContextProvider();\n public abstract get threads(): ThreadListRuntimeCore;\n\n public registerModelContextProvider(\n provider: ModelContextProvider,\n ): Unsubscribe {\n return this._contextProvider.registerModelContextProvider(provider);\n }\n\n public getModelContextProvider(): ModelContextProvider {\n return this._contextProvider;\n }\n}\n","import type { AppendMessage, ThreadMessage } from \"../types/message\";\nimport type { TextMessagePart } from \"../types/message\";\n\nexport const getThreadMessageText = (\n message: ThreadMessage | AppendMessage,\n) => {\n const textParts = message.content.filter(\n (part) => part.type === \"text\",\n ) as TextMessagePart[];\n\n return textParts.map((part) => part.text).join(\"\\n\\n\");\n};\n","import { customAlphabet } from \"nanoid/non-secure\";\n\nexport const generateId = customAlphabet(\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n 7,\n);\n\nconst optimisticPrefix = \"__optimistic__\";\nexport const generateOptimisticId = () => `${optimisticPrefix}${generateId()}`;\nexport const isOptimisticId = (id: string) => id.startsWith(optimisticPrefix);\n\nconst errorPrefix = \"__error__\";\nexport const generateErrorMessageId = () => `${errorPrefix}${generateId()}`;\nexport const isErrorMessageId = (id: string) => id.startsWith(errorPrefix);\n","import type { MessageStatus } from \"../../types/message\";\nimport { ReadonlyJSONValue } from \"assistant-stream/utils\";\n\nconst symbolAutoStatus = Symbol(\"autoStatus\");\n\nconst AUTO_STATUS_RUNNING = Object.freeze(\n Object.assign({ type: \"running\" as const }, { [symbolAutoStatus]: true }),\n);\nconst AUTO_STATUS_COMPLETE = Object.freeze(\n Object.assign(\n {\n type: \"complete\" as const,\n reason: \"unknown\" as const,\n },\n { [symbolAutoStatus]: true },\n ),\n);\n\nconst AUTO_STATUS_PENDING = Object.freeze(\n Object.assign(\n {\n type: \"requires-action\" as const,\n reason: \"tool-calls\" as const,\n },\n { [symbolAutoStatus]: true },\n ),\n);\n\nconst AUTO_STATUS_INTERRUPT = Object.freeze(\n Object.assign(\n {\n type: \"requires-action\" as const,\n reason: \"interrupt\" as const,\n },\n { [symbolAutoStatus]: true },\n ),\n);\n\nexport const isAutoStatus = (status: MessageStatus) =>\n (status as any)[symbolAutoStatus] === true;\n\nexport const getAutoStatus = (\n isLast: boolean,\n isRunning: boolean,\n hasInterruptedToolCalls: boolean,\n hasPendingToolCalls: boolean,\n error?: ReadonlyJSONValue,\n): MessageStatus => {\n if (isLast && error) {\n return Object.assign(\n {\n type: \"incomplete\" as const,\n reason: \"error\" as const,\n error: error,\n },\n { [symbolAutoStatus]: true },\n );\n }\n\n return isLast && isRunning\n ? AUTO_STATUS_RUNNING\n : hasInterruptedToolCalls\n ? AUTO_STATUS_INTERRUPT\n : hasPendingToolCalls\n ? AUTO_STATUS_PENDING\n : AUTO_STATUS_COMPLETE;\n};\n","import { parsePartialJsonObject } from \"assistant-stream/utils\";\nimport { generateId } from \"../../utils/id\";\nimport type {\n ReasoningMessagePart,\n SourceMessagePart,\n ThreadStep,\n MessageStatus,\n ImageMessagePart,\n ThreadMessage,\n ThreadAssistantMessagePart,\n ThreadAssistantMessage,\n ThreadUserMessagePart,\n ThreadUserMessage,\n ThreadSystemMessage,\n FileMessagePart,\n DataMessagePart,\n Unstable_AudioMessagePart,\n} from \"../../types/message\";\nimport type { CompleteAttachment } from \"../../types/attachment\";\nimport type { MessageTiming, TextMessagePart } from \"../../types/message\";\nimport { ReadonlyJSONObject, ReadonlyJSONValue } from \"assistant-stream/utils\";\n\ntype DataPrefixedPart = {\n readonly type: `data-${string}`;\n readonly data: any;\n};\n\nexport type ThreadMessageLike = {\n readonly role: \"assistant\" | \"user\" | \"system\";\n readonly content:\n | string\n | readonly (\n | TextMessagePart\n | ReasoningMessagePart\n | SourceMessagePart\n | ImageMessagePart\n | FileMessagePart\n | DataMessagePart\n | Unstable_AudioMessagePart\n | DataPrefixedPart\n | {\n readonly type: \"tool-call\";\n readonly toolCallId?: string;\n readonly toolName: string;\n readonly args?: ReadonlyJSONObject;\n readonly argsText?: string;\n readonly artifact?: any;\n readonly result?: any | undefined;\n readonly isError?: boolean | undefined;\n readonly parentId?: string | undefined;\n readonly messages?: readonly ThreadMessage[] | undefined;\n }\n )[];\n readonly id?: string | undefined;\n readonly createdAt?: Date | undefined;\n readonly status?: MessageStatus | undefined;\n readonly attachments?:\n | readonly (Omit<CompleteAttachment, \"content\"> & {\n readonly content: readonly (ThreadUserMessagePart | DataPrefixedPart)[];\n })[]\n | undefined;\n readonly metadata?:\n | {\n readonly unstable_state?: ReadonlyJSONValue;\n readonly unstable_annotations?:\n | readonly ReadonlyJSONValue[]\n | undefined;\n readonly unstable_data?: readonly ReadonlyJSONValue[] | undefined;\n readonly steps?: readonly ThreadStep[] | undefined;\n readonly timing?: MessageTiming | undefined;\n readonly submittedFeedback?: { readonly type: \"positive\" | \"negative\" };\n readonly custom?: Record<string, unknown> | undefined;\n }\n | undefined;\n};\n\nconst convertDataPrefixedPart = (\n type: string,\n data: unknown,\n): DataMessagePart | undefined => {\n if (!type.startsWith(\"data-\")) return undefined;\n return { type: \"data\", name: type.substring(5), data };\n};\n\nexport const fromThreadMessageLike = (\n like: ThreadMessageLike,\n fallbackId: string,\n fallbackStatus: MessageStatus,\n): ThreadMessage => {\n const { role, id, createdAt, attachments, status, metadata } = like;\n const common = {\n id: id ?? fallbackId,\n createdAt: createdAt ?? new Date(),\n };\n\n const content =\n typeof like.content === \"string\"\n ? [{ type: \"text\" as const, text: like.content }]\n : like.content;\n\n const sanitizeImageContent = ({\n image,\n ...rest\n }: ImageMessagePart): ImageMessagePart | null => {\n const match = image.match(\n /^data:image\\/(png|jpeg|jpg|gif|webp);base64,(.*)$/,\n );\n if (match) {\n return { ...rest, image };\n }\n console.warn(`Invalid image data format detected`);\n return null;\n };\n\n if (role !== \"user\" && attachments?.length)\n throw new Error(\"attachments are only supported for user messages\");\n\n if (role !== \"assistant\" && status)\n throw new Error(\"status is only supported for assistant messages\");\n\n if (role !== \"assistant\" && metadata?.steps)\n throw new Error(\"metadata.steps is only supported for assistant messages\");\n\n switch (role) {\n case \"assistant\":\n return {\n ...common,\n role,\n content: content\n .map((part): ThreadAssistantMessagePart | null => {\n const type = part.type;\n switch (type) {\n case \"text\":\n case \"reasoning\":\n if (part.text.trim().length === 0) return null;\n return part;\n\n case \"file\":\n case \"source\":\n return part;\n\n case \"image\":\n return sanitizeImageContent(part);\n\n case \"data\":\n return part;\n\n case \"tool-call\": {\n const { parentId, messages, ...basePart } = part;\n const commonProps = {\n ...basePart,\n toolCallId: part.toolCallId ?? `tool-${generateId()}`,\n ...(parentId !== undefined && { parentId }),\n ...(messages !== undefined && { messages }),\n };\n\n if (part.args) {\n return {\n ...commonProps,\n args: part.args,\n argsText: part.argsText ?? JSON.stringify(part.args),\n };\n }\n return {\n ...commonProps,\n args: parsePartialJsonObject(part.argsText ?? \"\") ?? {},\n argsText: part.argsText ?? \"\",\n };\n }\n\n default: {\n const converted = convertDataPrefixedPart(\n type,\n (part as DataPrefixedPart).data,\n );\n if (converted) return converted;\n throw new Error(\n `Unsupported assistant message part type: ${type}`,\n );\n }\n }\n })\n .filter((c) => !!c),\n status: status ?? fallbackStatus,\n metadata: {\n unstable_state: metadata?.unstable_state ?? null,\n unstable_annotations: metadata?.unstable_annotations ?? [],\n unstable_data: metadata?.unstable_data ?? [],\n custom: metadata?.custom ?? {},\n steps: metadata?.steps ?? [],\n ...(metadata?.timing && { timing: metadata.timing }),\n ...(metadata?.submittedFeedback && {\n submittedFeedback: metadata.submittedFeedback,\n }),\n },\n } satisfies ThreadAssistantMessage;\n\n case \"user\":\n return {\n ...common,\n role,\n content: content.map((part): ThreadUserMessagePart => {\n const type = part.type;\n switch (type) {\n case \"text\":\n case \"image\":\n case \"audio\":\n case \"file\":\n case \"data\":\n return part;\n\n default: {\n const converted = convertDataPrefixedPart(\n type,\n (part as DataPrefixedPart).data,\n );\n if (converted) return converted;\n throw new Error(`Unsupported user message part type: ${type}`);\n }\n }\n }),\n attachments: (attachments ?? []).map((att) => ({\n ...att,\n content: att.content.map((part): ThreadUserMessagePart => {\n const converted = convertDataPrefixedPart(\n part.type,\n (part as DataPrefixedPart).data,\n );\n return converted ?? (part as ThreadUserMessagePart);\n }),\n })),\n metadata: {\n custom: metadata?.custom ?? {},\n },\n } satisfies ThreadUserMessage;\n\n case \"system\":\n if (content.length !== 1 || content[0]!.type !== \"text\")\n throw new Error(\n \"System messages must have exactly one text message part.\",\n );\n\n return {\n ...common,\n role,\n content: content as [TextMessagePart],\n metadata: {\n custom: metadata?.custom ?? {},\n },\n } satisfies ThreadSystemMessage;\n\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n};\n","import type { ThreadMessage } from \"../../types/message\";\nimport type { RunConfig } from \"../../types/message\";\nimport { generateId, generateOptimisticId } from \"../../utils/id\";\nimport type { ThreadMessageLike } from \"./thread-message-like\";\nimport { getAutoStatus } from \"./auto-status\";\nimport { fromThreadMessageLike } from \"./thread-message-like\";\n\nexport type ExportedMessageRepositoryItem = {\n message: ThreadMessage;\n parentId: string | null;\n runConfig?: RunConfig;\n};\n\nexport type ExportedMessageRepository = {\n headId?: string | null;\n messages: Array<{\n message: ThreadMessage;\n parentId: string | null;\n runConfig?: RunConfig;\n }>;\n};\n\nexport const ExportedMessageRepository = {\n fromArray: (\n messages: readonly ThreadMessageLike[],\n ): ExportedMessageRepository => {\n const conv = messages.map((m) =>\n fromThreadMessageLike(\n m,\n generateId(),\n getAutoStatus(false, false, false, false, undefined),\n ),\n );\n\n return {\n messages: conv.map((m, idx) => ({\n parentId: idx > 0 ? conv[idx - 1]!.id : null,\n message: m,\n })),\n };\n },\n};\n\ntype RepositoryParent = {\n children: string[];\n next: RepositoryMessage | null;\n};\n\ntype RepositoryMessage = RepositoryParent & {\n prev: RepositoryMessage | null;\n current: ThreadMessage;\n level: number;\n};\n\nconst findHead = (\n message: RepositoryMessage | RepositoryParent,\n): RepositoryMessage | null => {\n if (message.next) return findHead(message.next);\n if (\"current\" in message) return message;\n return null;\n};\n\nclass CachedValue<T> {\n private _value: T | null = null;\n\n constructor(private func: () => T) {}\n\n get value() {\n if (this._value === null) {\n this._value = this.func();\n }\n return this._value;\n }\n\n dirty() {\n this._value = null;\n }\n}\n\nexport class MessageRepository {\n private messages = new Map<string, RepositoryMessage>();\n private head: RepositoryMessage | null = null;\n private root: RepositoryParent = {\n children: [],\n next: null,\n };\n\n private updateLevels(message: RepositoryMessage, newLevel: number) {\n message.level = newLevel;\n for (const childId of message.children) {\n const childMessage = this.messages.get(childId);\n if (childMessage) {\n this.updateLevels(childMessage, newLevel + 1);\n }\n }\n }\n\n private performOp(\n newParent: RepositoryMessage | null,\n child: RepositoryMessage,\n operation: \"cut\" | \"link\" | \"relink\",\n ) {\n const parentOrRoot = child.prev ?? this.root;\n const newParentOrRoot = newParent ?? this.root;\n\n if (operation === \"relink\" && parentOrRoot === newParentOrRoot) return;\n\n if (operation !== \"link\") {\n parentOrRoot.children = parentOrRoot.children.filter(\n (m) => m !== child.current.id,\n );\n\n if (parentOrRoot.next === child) {\n const fallbackId = parentOrRoot.children.at(-1);\n const fallback = fallbackId ? this.messages.get(fallbackId) : null;\n if (fallback === undefined) {\n throw new Error(\n \"MessageRepository(performOp/cut): Fallback sibling message not found. This is likely an internal bug in assistant-ui.\",\n );\n }\n parentOrRoot.next = fallback;\n }\n }\n\n if (operation !== \"cut\") {\n for (\n let current: RepositoryMessage | null = newParent;\n current;\n current = current.prev\n ) {\n if (current.current.id === child.current.id) {\n throw new Error(\n \"MessageRepository(performOp/link): A message with the same id already exists in the parent tree. This error occurs if the same message id is found multiple times. This is likely an internal bug in assistant-ui.\",\n );\n }\n }\n\n newParentOrRoot.children = [\n ...newParentOrRoot.children,\n child.current.id,\n ];\n\n if (findHead(child) === this.head || newParentOrRoot.next === null) {\n newParentOrRoot.next = child;\n }\n\n child.prev = newParent;\n\n const newLevel = newParent ? newParent.level + 1 : 0;\n this.updateLevels(child, newLevel);\n }\n }\n\n private _messages = new CachedValue<readonly ThreadMessage[]>(() => {\n const messages = new Array<ThreadMessage>((this.head?.level ?? -1) + 1);\n for (let current = this.head; current; current = current.prev) {\n messages[current.level] = current.current;\n }\n return messages;\n });\n\n get headId() {\n return this.head?.current.id ?? null;\n }\n\n getMessages(headId?: string) {\n if (headId === undefined || headId === this.head?.current.id) {\n return this._messages.value;\n }\n\n const headMessage = this.messages.get(headId);\n if (!headMessage) {\n throw new Error(\n \"MessageRepository(getMessages): Head message not found. This is likely an internal bug in assistant-ui.\",\n );\n }\n\n const messages = new Array<ThreadMessage>(headMessage.level + 1);\n for (\n let current: RepositoryMessage | null = headMessage;\n current;\n current = current.prev\n ) {\n messages[current.level] = current.current;\n }\n return messages;\n }\n\n addOrUpdateMessage(parentId: string | null, message: ThreadMessage) {\n const existingItem = this.messages.get(message.id);\n const prev = parentId ? this.messages.get(parentId) : null;\n if (prev === undefined)\n throw new Error(\n \"MessageRepository(addOrUpdateMessage): Parent message not found. This is likely an internal bug in assistant-ui.\",\n );\n\n if (existingItem) {\n existingItem.current = message;\n this.performOp(prev, existingItem, \"relink\");\n this._messages.dirty();\n return;\n }\n\n const newItem: RepositoryMessage = {\n prev,\n current: message,\n next: null,\n children: [],\n level: prev ? prev.level + 1 : 0,\n };\n\n this.messages.set(message.id, newItem);\n this.performOp(prev, newItem, \"link\");\n\n if (this.head === prev) {\n this.head = newItem;\n }\n\n this._messages.dirty();\n }\n\n getMessage(messageId: string) {\n const message = this.messages.get(messageId);\n if (!message)\n throw new Error(\n \"MessageRepository(updateMessage): Message not found. This is likely an internal bug in assistant-ui.\",\n );\n\n return {\n parentId: message.prev?.current.id ?? null,\n message: message.current,\n index: message.level,\n };\n }\n\n appendOptimisticMessage(parentId: string | null, message: ThreadMessageLike) {\n let optimisticId: string;\n do {\n optimisticId = generateOptimisticId();\n } while (this.messages.has(optimisticId));\n\n this.addOrUpdateMessage(\n parentId,\n fromThreadMessageLike(message, optimisticId, { type: \"running\" }),\n );\n\n return optimisticId;\n }\n\n deleteMessage(messageId: string, replacementId?: string | null | undefined) {\n const message = this.messages.get(messageId);\n\n if (!message)\n throw new Error(\n \"MessageRepository(deleteMessage): Message not found. This is likely an internal bug in assistant-ui.\",\n );\n\n const replacement =\n replacementId === undefined\n ? message.prev\n : replacementId === null\n ? null\n : this.messages.get(replacementId);\n if (replacement === undefined)\n throw new Error(\n \"MessageRepository(deleteMessage): Replacement not found. This is likely an internal bug in assistant-ui.\",\n );\n\n for (const child of message.children) {\n const childMessage = this.messages.get(child);\n if (!childMessage)\n throw new Error(\n \"MessageRepository(deleteMessage): Child message not found. This is likely an internal bug in assistant-ui.\",\n );\n this.performOp(replacement, childMessage, \"relink\");\n }\n\n this.performOp(null, message, \"cut\");\n this.messages.delete(messageId);\n\n if (this.head === message) {\n this.head = findHead(replacement ?? this.root);\n }\n\n this._messages.dirty();\n }\n\n getBranches(messageId: string) {\n const message = this.messages.get(messageId);\n if (!message)\n throw new Error(\n \"MessageRepository(getBranches): Message not found. This is likely an internal bug in assistant-ui.\",\n );\n\n const { children } = message.prev ?? this.root;\n return children;\n }\n\n switchToBranch(messageId: string) {\n const message = this.messages.get(messageId);\n if (!message)\n throw new Error(\n \"MessageRepository(switchToBranch): Branch not found. This is likely an internal bug in assistant-ui.\",\n );\n\n const prevOrRoot = message.prev ?? this.root;\n prevOrRoot.next = message;\n\n this.head = findHead(message);\n\n this._messages.dirty();\n }\n\n resetHead(messageId: string | null) {\n if (messageId === null) {\n this.clear();\n return;\n }\n\n const message = this.messages.get(messageId);\n if (!message)\n throw new Error(\n \"MessageRepository(resetHead): Branch not found. This is likely an internal bug in assistant-ui.\",\n );\n\n if (message.children.length > 0) {\n const deleteDescendants = (msg: RepositoryMessage) => {\n for (const childId of msg.children) {\n const childMessage = this.messages.get(childId);\n if (childMessage) {\n deleteDescendants(childMessage);\n this.messages.delete(childId);\n }\n }\n };\n deleteDescendants(message);\n\n message.children = [];\n message.next = null;\n }\n\n this.head = message;\n for (\n let current: RepositoryMessage | null = message;\n current;\n current = current.prev\n ) {\n if (current.prev) {\n current.prev.next = current;\n } else {\n this.root.next = current;\n }\n }\n\n this._messages.dirty();\n }\n\n clear(): void {\n this.messages.clear();\n this.head = null;\n this.root = {\n children: [],\n next: null,\n };\n this._messages.dirty();\n }\n\n export(): ExportedMessageRepository {\n const exportItems: ExportedMessageRepository[\"messages\"] = [];\n\n for (const [, message] of this.messages) {\n exportItems.push({\n message: message.current,\n parentId: message.prev?.current.id ?? null,\n });\n }\n\n return {\n headId: this.head?.current.id ?? null,\n messages: exportItems,\n };\n }\n\n import({ headId, messages }: ExportedMessageRepository) {\n for (const { message, parentId } of messages) {\n this.addOrUpdateMessage(parentId, message);\n }\n\n this.resetHead(headId ?? messages.at(-1)?.message.id ?? null);\n }\n}\n","import type {\n Attachment,\n PendingAttachment,\n CompleteAttachment,\n} from \"../types/attachment\";\n\n// =============================================================================\n// Adapter Type\n// =============================================================================\n\nexport type AttachmentAdapter = {\n accept: string;\n add(state: {\n file: File;\n }): Promise<PendingAttachment> | AsyncGenerator<PendingAttachment, void>;\n remove(attachment: Attachment): Promise<void>;\n send(attachment: PendingAttachment): Promise<CompleteAttachment>;\n};\n\n// =============================================================================\n// Simple Image Attachment Adapter\n// =============================================================================\n\nexport class SimpleImageAttachmentAdapter implements AttachmentAdapter {\n public accept = \"image/*\";\n\n public async add(state: { file: File }): Promise<PendingAttachment> {\n return {\n id: state.file.name,\n type: \"image\",\n name: state.file.name,\n contentType: state.file.type,\n file: state.file,\n status: { type: \"requires-action\", reason: \"composer-send\" },\n };\n }\n\n public async send(\n attachment: PendingAttachment,\n ): Promise<CompleteAttachment> {\n return {\n ...attachment,\n status: { type: \"complete\" },\n content: [\n {\n type: \"image\",\n image: await getFileDataURL(attachment.file),\n },\n ],\n };\n }\n\n public async remove() {\n // noop\n }\n}\n\nconst getFileDataURL = (file: File) =>\n new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = (error) => reject(error);\n reader.readAsDataURL(file);\n });\n\n// =============================================================================\n// Simple Text Attachment Adapter\n// =============================================================================\n\nexport class SimpleTextAttachmentAdapter implements AttachmentAdapter {\n public accept =\n \"text/plain,text/html,text/markdown,text/csv,text/xml,text/json,text/css\";\n\n public async add(state: { file: File }): Promise<PendingAttachment> {\n return {\n id: state.file.name,\n type: \"document\",\n name: state.file.name,\n contentType: state.file.type,\n file: state.file,\n status: { type: \"requires-action\", reason: \"composer-send\" },\n };\n }\n\n public async send(\n attachment: PendingAttachment,\n ): Promise<CompleteAttachment> {\n return {\n ...attachment,\n status: { type: \"complete\" },\n content: [\n {\n type: \"text\",\n text: `<attachment name=${attachment.name}>\\n${await getFileText(attachment.file)}\\n</attachment>`,\n },\n ],\n };\n }\n\n public async remove() {\n // noop\n }\n}\n\nconst getFileText = (file: File) =>\n new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = (error) => reject(error);\n reader.readAsText(file);\n });\n\n// =============================================================================\n// Composite Attachment Adapter\n// =============================================================================\n\nexport function fileMatchesAccept(\n file: { name: string; type: string },\n acceptString: string,\n) {\n if (acceptString === \"*\") {\n return true;\n }\n\n const allowedTypes = acceptString\n .split(\",\")\n .map((type) => type.trim().toLowerCase());\n\n const fileExtension = `.${file.name.split(\".\").pop()!.toLowerCase()}`;\n const fileMimeType = file.type.toLowerCase();\n\n for (const type of allowedTypes) {\n if (type.startsWith(\".\") && type === fileExtension) {\n return true;\n }\n\n if (type.includes(\"/\") && type === fileMimeType) {\n return true;\n }\n\n if (type.endsWith(\"/*\")) {\n const generalType = type.split(\"/\")[0]!;\n if (fileMimeType.startsWith(`${generalType}/`)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport class CompositeAttachmentAdapter implements AttachmentAdapter {\n private _adapters: AttachmentAdapter[];\n\n public accept: string;\n\n constructor(adapters: AttachmentAdapter[]) {\n this._adapters = adapters;\n\n const wildcardIdx = adapters.findIndex((a) => a.accept === \"*\");\n if (wildcardIdx !== -1) {\n if (wildcardIdx !== adapters.length - 1)\n throw new Error(\n \"A wildcard adapter (handling all files) can only be specified as the last adapter.\",\n );\n\n this.accept = \"*\";\n } else {\n this.accept = adapters.map((a) => a.accept).join(\",\");\n }\n }\n\n public add(state: { file: File }) {\n for (const adapter of this._adapters) {\n if (fileMatchesAccept(state.file, adapter.accept)) {\n return adapter.add(state);\n }\n }\n throw new Error(\"No matching adapter found for file\");\n }\n\n public async send(attachment: PendingAttachment) {\n const adapters = this._adapters.slice();\n for (const adapter of adapters) {\n if (fileMatchesAccept(attachment.file, adapter.accept)) {\n return adapter.send(attachment);\n }\n }\n throw new Error(\"No matching adapter found for attachment\");\n }\n\n public async remove(attachment: Attachment) {\n const adapters = this._adapters.slice();\n for (const adapter of adapters) {\n if (\n fileMatchesAccept(\n {\n name: attachment.name,\n type: attachment.contentType ?? \"\",\n },\n adapter.accept,\n )\n ) {\n return adapter.remove(attachment);\n }\n }\n throw new Error(\"No matching adapter found for attachment\");\n }\n}\n","import type {\n Attachment,\n CompleteAttachment,\n CreateAttachment,\n PendingAttachment,\n} from \"../../types/attachment\";\nimport type { MessageRole, AppendMessage } from \"../../types/message\";\nimport type { QuoteInfo } from \"../../types/quote\";\nimport type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { RunConfig } from \"../../types/message\";\nimport { BaseSubscribable } from \"../../subscribable/subscribable\";\nimport {\n type AttachmentAdapter,\n fileMatchesAccept,\n} from \"../../adapters/attachment\";\nimport type {\n ComposerRuntimeCore,\n ComposerRuntimeEventType,\n DictationState,\n} from \"../interfaces/composer-runtime-core\";\nimport type { DictationAdapter } from \"../../adapters/speech\";\nimport { generateId } from \"../../utils/id\";\n\nconst isAttachmentComplete = (a: Attachment): a is CompleteAttachment =>\n a.status.type === \"complete\";\n\nexport abstract class BaseComposerRuntimeCore\n extends BaseSubscribable\n implements ComposerRuntimeCore\n{\n public readonly isEditing = true;\n\n protected abstract getAttachmentAdapter(): AttachmentAdapter | undefined;\n protected abstract getDictationAdapter(): DictationAdapter | undefined;\n\n public get attachmentAccept(): string {\n return this.getAttachmentAdapter()?.accept ?? \"*\";\n }\n\n private _attachments: readonly Attachment[] = [];\n public get attachments() {\n return this._attachments;\n }\n\n protected setAttachments(value: readonly Attachment[]) {\n this._attachments = value;\n this._notifySubscribers();\n }\n\n public abstract get canCancel(): boolean;\n\n public get isEmpty() {\n return !this.text.trim() && !this.attachments.length;\n }\n\n private _text = \"\";\n\n get text() {\n return this._text;\n }\n\n private _role: MessageRole = \"user\";\n\n get role() {\n return this._role;\n }\n\n private _runConfig: RunConfig = {};\n\n get runConfig() {\n return this._runConfig;\n }\n\n private _quote: QuoteInfo | undefined = undefined;\n\n get quote() {\n return this._quote;\n }\n\n public setQuote(quote: QuoteInfo | undefined) {\n if (this._quote === quote) return;\n\n this._quote = quote;\n this._notifySubscribers();\n }\n\n public setText(value: string) {\n if (this._text === value) return;\n\n this._text = value;\n if (this._dictation) {\n this._dictationBaseText = value;\n this._currentInterimText = \"\";\n const { status, inputDisabled } = this._dictation;\n this._dictation = inputDisabled ? { status, inputDisabled } : { status };\n }\n this._notifySubscribers();\n }\n\n public setRole(role: MessageRole) {\n if (this._role === role) return;\n\n this._role = role;\n this._notifySubscribers();\n }\n\n public setRunConfig(runConfig: RunConfig) {\n if (this._runConfig === runConfig) return;\n\n this._runConfig = runConfig;\n this._notifySubscribers();\n }\n\n private _emptyTextAndAttachments() {\n this._attachments = [];\n this._text = \"\";\n this._notifySubscribers();\n }\n\n private async _onClearAttachments() {\n const adapter = this.getAttachmentAdapter();\n if (adapter) {\n const pending = this._attachments.filter((a) => !isAttachmentComplete(a));\n await Promise.all(pending.map((a) => adapter.remove(a)));\n }\n }\n\n public async reset() {\n if (\n this._attachments.length === 0 &&\n this._text === \"\" &&\n this._role === \"user\" &&\n Object.keys(this._runConfig).length === 0 &&\n this._quote === undefined\n ) {\n return;\n }\n\n this._role = \"user\";\n this._runConfig = {};\n this._quote = undefined;\n\n const task = this._onClearAttachments();\n this._emptyTextAndAttachments();\n await task;\n }\n\n public async clearAttachments() {\n const task = this._onClearAttachments();\n this.setAttachments([]);\n\n await task;\n }\n\n public async send() {\n if (this.isEmpty) return;\n\n if (this._dictationSession) {\n this._dictationSession.cancel();\n this._cleanupDictation();\n }\n\n const adapter = this.getAttachmentAdapter();\n const attachments =\n this.attachments.length > 0\n ? Promise.all(\n this.attachments.map(async (a) => {\n if (isAttachmentComplete(a)) return a;\n if (!adapter) throw new Error(\"Attachments are not supported\");\n const result = await adapter.send(a);\n return result as CompleteAttachment;\n }),\n )\n : [];\n\n const text = this.text;\n const quote = this._quote;\n this._quote = undefined;\n this._emptyTextAndAttachments();\n\n const message: Omit<AppendMessage, \"parentId\" | \"sourceId\"> = {\n createdAt: new Date(),\n role: this.role,\n content: text ? [{ type: \"text\", text }] : [],\n attachments: await attachments,\n runConfig: this.runConfig,\n metadata: { custom: { ...(quote ? { quote } : {}) } },\n };\n\n this.handleSend(message);\n this._notifyEventSubscribers(\"send\");\n }\n\n public cancel() {\n this.handleCancel();\n }\n\n protected abstract handleSend(\n message: Omit<AppendMessage, \"parentId\" | \"sourceId\">,\n ): void;\n protected abstract handleCancel(): void;\n\n async addAttachment(fileOrAttachment: File | CreateAttachment) {\n if (!(fileOrAttachment instanceof File)) {\n const a: CompleteAttachment = {\n id: fileOrAttachment.id ?? generateId(),\n type: fileOrAttachment.type ?? \"document\",\n name: fileOrAttachment.name,\n contentType: fileOrAttachment.contentType,\n content: fileOrAttachment.content,\n status: { type: \"complete\" },\n };\n this._attachments = [...this._attachments, a];\n this._notifyEventSubscribers(\"attachmentAdd\");\n this._notifySubscribers();\n return;\n }\n\n const adapter = this.getAttachmentAdapter();\n if (!adapter) throw new Error(\"Attachments are not supported\");\n\n if (\n !fileMatchesAccept(\n { name: fileOrAttachment.name, type: fileOrAttachment.type },\n adapter.accept,\n )\n ) {\n throw new Error(\n `File type ${fileOrAttachment.type || \"unknown\"} is not accepted. Accepted types: ${adapter.accept}`,\n );\n }\n\n const upsertAttachment = (a: PendingAttachment) => {\n const idx = this._attachments.findIndex(\n (attachment) => attachment.id === a.id,\n );\n if (idx !== -1)\n this._attachments = [\n ...this._attachments.slice(0, idx),\n a,\n ...this._attachments.slice(idx + 1),\n ];\n else {\n this._attachments = [...this._attachments, a];\n }\n\n this._notifySubscribers();\n };\n\n let lastAttachment: PendingAttachment | undefined;\n try {\n const promiseOrGenerator = adapter.add({ file: fileOrAttachment });\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n lastAttachment = r;\n upsertAttachment(r);\n }\n } else {\n lastAttachment = await promiseOrGenerator;\n upsertAttachment(lastAttachment);\n }\n } catch (e) {\n if (lastAttachment) {\n upsertAttachment({\n ...lastAttachment,\n status: { type: \"incomplete\", reason: \"error\" },\n });\n }\n try {\n this._notifyEventSubscribers(\"attachmentAddError\");\n } catch {\n // prevent subscriber errors from masking the adapter error\n }\n throw e;\n }\n\n const hasError =\n lastAttachment?.status.type === \"incomplete\" &&\n lastAttachment.status.reason === \"error\";\n this._notifyEventSubscribers(\n hasError ? \"attachmentAddError\" : \"attachmentAdd\",\n );\n }\n\n async removeAttachment(attachmentId: string) {\n const index = this._attachments.findIndex((a) => a.id === attachmentId);\n if (index === -1) throw new Error(\"Attachment not found\");\n const attachment = this._attachments[index]!;\n\n if (!isAttachmentComplete(attachment)) {\n const adapter = this.getAttachmentAdapter();\n if (!adapter) throw new Error(\"Attachments are not supported\");\n await adapter.remove(attachment);\n }\n\n this._attachments = this._attachments.filter((a) => a.id !== attachmentId);\n this._notifySubscribers();\n }\n\n private _dictation: DictationState | undefined;\n private _dictationSession: DictationAdapter.Session | undefined;\n private _dictationUnsubscribes: Unsubscribe[] = [];\n private _dictationBaseText = \"\";\n private _currentInterimText = \"\";\n private _dictationSessionIdCounter = 0;\n private _activeDictationSessionId: number | undefined;\n private _isCleaningDictation = false;\n\n public get dictation(): DictationState | undefined {\n return this._dictation;\n }\n\n private _isActiveSession(\n sessionId: number,\n session: DictationAdapter.Session,\n ): boolean {\n return (\n this._activeDictationSessionId === sessionId &&\n this._dictationSession === session\n );\n }\n\n public startDictation(): void {\n const adapter = this.getDictationAdapter();\n if (!adapter) {\n throw new Error(\"Dictation adapter not configured\");\n }\n\n if (this._dictationSession) {\n for (const unsub of this._dictationUnsubscribes) {\n unsub();\n }\n this._dictationUnsubscribes = [];\n const oldSession = this._dictationSession;\n oldSession.stop().catch(() => {});\n this._dictationSession = undefined;\n }\n\n const inputDisabled = adapter.disableInputDuringDictation ?? false;\n\n this._dictationBaseText = this._text;\n this._currentInterimText = \"\";\n\n const session = adapter.listen();\n this._dictationSession = session;\n const sessionId = ++this._dictationSessionIdCounter;\n this._activeDictationSessionId = sessionId;\n this._dictation = { status: session.status, inputDisabled };\n this._notifySubscribers();\n\n const unsubSpeech = session.onSpeech((result) => {\n if (!this._isActiveSession(sessionId, session)) return;\n const isFinal = result.isFinal !== false;\n\n const needsSeparator =\n this._dictationBaseText &&\n !this._dictationBaseText.endsWith(\" \") &&\n result.transcript;\n const separator = needsSeparator ? \" \" : \"\";\n\n if (isFinal) {\n this._dictationBaseText =\n this._dictationBaseText + separator + result.transcript;\n this._currentInterimText = \"\";\n this._text = this._dictationBaseText;\n\n if (this._dictation) {\n const { transcript: _, ...rest } = this._dictation;\n this._dictation = rest;\n }\n this._notifySubscribers();\n } else {\n this._currentInterimText = separator + result.transcript;\n this._text = this._dictationBaseText + this._currentInterimText;\n\n if (this._dictation) {\n this._dictation = {\n ...this._dictation,\n transcript: result.transcript,\n };\n }\n this._notifySubscribers();\n }\n });\n this._dictationUnsubscribes.push(unsubSpeech);\n\n const unsubStart = session.onSpeechStart(() => {\n if (!this._isActiveSession(sessionId, session)) return;\n\n this._dictation = {\n status: { type: \"running\" },\n inputDisabled,\n ...(this._dictation?.transcript && {\n transcript: this._dictation.transcript,\n }),\n };\n this._notifySubscribers();\n });\n this._dictationUnsubscribes.push(unsubStart);\n\n const unsubEnd = session.onSpeechEnd(() => {\n this._cleanupDictation({ sessionId });\n });\n this._dictationUnsubscribes.push(unsubEnd);\n\n const statusInterval = setInterval(() => {\n if (!this._isActiveSession(sessionId, session)) return;\n\n if (session.status.type === \"ended\") {\n this._cleanupDictation({ sessionId });\n }\n }, 100);\n this._dictationUnsubscribes.push(() => clearInterval(statusInterval));\n }\n\n public stopDictation(): void {\n if (!this._dictationSession) return;\n\n const session = this._dictationSession;\n const sessionId = this._activeDictationSessionId;\n session.stop().finally(() => {\n this._cleanupDictation({ sessionId });\n });\n }\n\n private _cleanupDictation(options?: { sessionId: number | undefined }): void {\n const isStaleSession =\n options?.sessionId !== undefined &&\n options.sessionId !== this._activeDictationSessionId;\n if (isStaleSession || this._isCleaningDictation) return;\n\n this._isCleaningDictation = true;\n try {\n for (const unsub of this._dictationUnsubscribes) {\n unsub();\n }\n this._dictationUnsubscribes = [];\n this._dictationSession = undefined;\n this._activeDictationSessionId = undefined;\n this._dictation = undefined;\n this._dictationBaseText = \"\";\n this._currentInterimText = \"\";\n this._notifySubscribers();\n } finally {\n this._isCleaningDictation = false;\n }\n }\n\n private _eventSubscribers = new Map<\n ComposerRuntimeEventType,\n Set<() => void>\n >();\n\n protected _notifyEventSubscribers(event: ComposerRuntimeEventType) {\n const subscribers = this._eventSubscribers.get(event);\n if (!subscribers) return;\n\n for (const callback of subscribers) callback();\n }\n\n public unstable_on(event: ComposerRuntimeEventType, callback: () => void) {\n const subscribers = this._eventSubscribers.get(event);\n if (!subscribers) {\n this._eventSubscribers.set(event, new Set([callback]));\n } else {\n subscribers.add(callback);\n }\n\n return () => {\n const subscribers = this._eventSubscribers.get(event);\n if (!subscribers) return;\n subscribers.delete(callback);\n };\n }\n}\n","import type { AppendMessage } from \"../../types/message\";\nimport type { AttachmentAdapter } from \"../../adapters/attachment\";\nimport type { DictationAdapter } from \"../../adapters/speech\";\nimport type { ThreadComposerRuntimeCore } from \"../interfaces/composer-runtime-core\";\nimport type { ThreadRuntimeCore } from \"../interfaces/thread-runtime-core\";\nimport { BaseComposerRuntimeCore } from \"./base-composer-runtime-core\";\n\nexport class DefaultThreadComposerRuntimeCore\n extends BaseComposerRuntimeCore\n implements ThreadComposerRuntimeCore\n{\n private _canCancel = false;\n public get canCancel() {\n return this._canCancel;\n }\n\n protected getAttachmentAdapter() {\n return this.runtime.adapters?.attachments;\n }\n\n protected getDictationAdapter() {\n return this.runtime.adapters?.dictation;\n }\n\n constructor(\n private runtime: Omit<ThreadRuntimeCore, \"composer\"> & {\n adapters?:\n | {\n attachments?: AttachmentAdapter | undefined;\n dictation?: DictationAdapter | undefined;\n }\n | undefined;\n },\n ) {\n super();\n this.connect();\n }\n\n public connect() {\n return this.runtime.subscribe(() => {\n if (this.canCancel !== this.runtime.capabilities.cancel) {\n this._canCancel = this.runtime.capabilities.cancel;\n this._notifySubscribers();\n }\n });\n }\n\n public async handleSend(\n message: Omit<AppendMessage, \"parentId\" | \"sourceId\">,\n ) {\n this.runtime.append({\n ...(message as AppendMessage),\n parentId: this.runtime.messages.at(-1)?.id ?? null,\n sourceId: null,\n });\n }\n\n public async handleCancel() {\n this.runtime.cancelRun();\n }\n}\n","import type { AppendMessage, ThreadMessage } from \"../../types/message\";\nimport { getThreadMessageText } from \"../../utils/text\";\nimport type { AttachmentAdapter } from \"../../adapters/attachment\";\nimport type { DictationAdapter } from \"../../adapters/speech\";\nimport type { ThreadRuntimeCore } from \"../interfaces/thread-runtime-core\";\nimport { BaseComposerRuntimeCore } from \"./base-composer-runtime-core\";\n\nexport class DefaultEditComposerRuntimeCore extends BaseComposerRuntimeCore {\n public get canCancel() {\n return true;\n }\n\n protected getAttachmentAdapter() {\n return this.runtime.adapters?.attachments;\n }\n\n protected getDictationAdapter() {\n return this.runtime.adapters?.dictation;\n }\n\n private _nonTextParts;\n private _previousText;\n private _parentId;\n private _sourceId;\n constructor(\n private runtime: ThreadRuntimeCore & {\n adapters?:\n | {\n attachments?: AttachmentAdapter | undefined;\n dictation?: DictationAdapter | undefined;\n }\n | undefined;\n },\n private endEditCallback: () => void,\n { parentId, message }: { parentId: string | null; message: ThreadMessage },\n ) {\n super();\n this._parentId = parentId;\n this._sourceId = message.id;\n this._previousText = getThreadMessageText(message);\n this.setText(this._previousText);\n\n this.setRole(message.role);\n this.setAttachments(message.attachments ?? []);\n\n this._nonTextParts = message.content.filter((part) => part.type !== \"text\");\n\n this.setRunConfig({ ...runtime.composer.runConfig });\n }\n\n public async handleSend(\n message: Omit<AppendMessage, \"parentId\" | \"sourceId\">,\n ) {\n const text = getThreadMessageText(message as AppendMessage);\n if (text !== this._previousText) {\n this.runtime.append({\n ...message,\n content: [...message.content, ...this._nonTextParts] as any,\n parentId: this._parentId,\n sourceId: this._sourceId,\n });\n }\n\n this.handleCancel();\n }\n\n public handleCancel() {\n this.endEditCallback();\n this._notifySubscribers();\n }\n}\n","import type {\n AppendMessage,\n ThreadAssistantMessage,\n ThreadMessage,\n} from \"../../types/message\";\nimport type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { ModelContextProvider } from \"../../model-context/types\";\nimport { getThreadMessageText } from \"../../utils/text\";\nimport { generateId } from \"../../utils/id\";\nimport {\n ExportedMessageRepository,\n MessageRepository,\n} from \"../utils/message-repository\";\nimport { DefaultThreadComposerRuntimeCore } from \"./default-thread-composer-runtime-core\";\nimport type {\n AddToolResultOptions,\n ResumeToolCallOptions,\n ThreadSuggestion,\n SubmitFeedbackOptions,\n ThreadRuntimeCore,\n SpeechState,\n VoiceSessionState,\n RuntimeCapabilities,\n ThreadRuntimeEventType,\n StartRunConfig,\n ResumeRunConfig,\n} from \"../interfaces/thread-runtime-core\";\nimport { DefaultEditComposerRuntimeCore } from \"./default-edit-composer-runtime-core\";\nimport type { SpeechSynthesisAdapter } from \"../../adapters/speech\";\nimport type { FeedbackAdapter } from \"../../adapters/feedback\";\nimport type { AttachmentAdapter } from \"../../adapters/attachment\";\nimport type { RealtimeVoiceAdapter } from \"../../adapters/voice\";\nimport type { ThreadMessageLike } from \"../utils/thread-message-like\";\n\ntype BaseThreadAdapters = {\n speech?: SpeechSynthesisAdapter | undefined;\n feedback?: FeedbackAdapter | undefined;\n attachments?: AttachmentAdapter | undefined;\n voice?: RealtimeVoiceAdapter | undefined;\n};\n\nexport abstract class BaseThreadRuntimeCore implements ThreadRuntimeCore {\n private _subscriptions = new Set<() => void>();\n private _isInitialized = false;\n\n protected readonly repository = new MessageRepository();\n public abstract get adapters(): BaseThreadAdapters | undefined;\n public abstract get isDisabled(): boolean;\n public abstract get isLoading(): boolean;\n public abstract get suggestions(): readonly ThreadSuggestion[];\n public abstract get extras(): unknown;\n\n public abstract get capabilities(): RuntimeCapabilities;\n public abstract append(message: AppendMessage): void;\n public abstract startRun(config: StartRunConfig): void;\n public abstract resumeRun(config: ResumeRunConfig): void;\n public abstract addToolResult(options: AddToolResultOptions): void;\n public abstract resumeToolCall(options: ResumeToolCallOptions): void;\n public abstract cancelRun(): void;\n public abstract exportExternalState(): any;\n public abstract importExternalState(state: any): void;\n public abstract unstable_loadExternalState(state: any): void;\n\n protected _voiceMessages: ThreadMessage[] = [];\n protected _voiceGeneration = 0;\n private _cachedMergedMessages: readonly ThreadMessage[] | null = null;\n private _cachedVoiceGeneration = -1;\n private _cachedMergedBase: readonly ThreadMessage[] | null = null;\n\n protected _markVoiceMessagesDirty() {\n this._voiceGeneration++;\n this._cachedMergedMessages = null;\n }\n\n protected _getBaseMessages(): readonly ThreadMessage[] {\n return this.repository.getMessages();\n }\n\n public get messages(): readonly ThreadMessage[] {\n if (this._voiceMessages.length === 0) {\n return this._getBaseMessages();\n }\n const base = this._getBaseMessages();\n if (\n this._cachedVoiceGeneration !== this._voiceGeneration ||\n this._cachedMergedBase !== base\n ) {\n this._cachedMergedMessages = [...base, ...this._voiceMessages];\n this._cachedVoiceGeneration = this._voiceGeneration;\n this._cachedMergedBase = base;\n }\n return this._cachedMergedMessages!;\n }\n\n public get state() {\n let mostRecentAssistantMessage;\n for (const message of this.messages) {\n if (message.role === \"assistant\") {\n mostRecentAssistantMessage = message;\n }\n }\n\n return mostRecentAssistantMessage?.metadata.unstable_state ?? null;\n }\n\n public readonly composer = new DefaultThreadComposerRuntimeCore(this);\n\n constructor(private readonly _contextProvider: ModelContextProvider) {}\n\n public getModelContext() {\n return this._contextProvider.getModelContext();\n }\n\n private _editComposers = new Map<string, DefaultEditComposerRuntimeCore>();\n public getEditComposer(messageId: string) {\n return this._editComposers.get(messageId);\n }\n public beginEdit(messageId: string) {\n if (this._editComposers.has(messageId))\n throw new Error(\"Edit already in progress\");\n\n this._editComposers.set(\n messageId,\n new DefaultEditComposerRuntimeCore(\n this,\n () => this._editComposers.delete(messageId),\n this.repository.getMessage(messageId),\n ),\n );\n this._notifySubscribers();\n }\n\n public getMessageById(messageId: string) {\n try {\n return this.repository.getMessage(messageId);\n } catch {\n // Check voice messages\n const baseMessages = this.repository.getMessages();\n const voiceIdx = this._voiceMessages.findIndex((m) => m.id === messageId);\n if (voiceIdx !== -1) {\n const parentId =\n voiceIdx > 0\n ? this._voiceMessages[voiceIdx - 1]!.id\n : (baseMessages.at(-1)?.id ?? null);\n return {\n parentId,\n message: this._voiceMessages[voiceIdx]!,\n index: baseMessages.length + voiceIdx,\n };\n }\n return undefined;\n }\n }\n\n public getBranches(messageId: string): string[] {\n if (this._voiceMessages.some((m) => m.id === messageId)) {\n return [];\n }\n return this.repository.getBranches(messageId);\n }\n\n public switchToBranch(branchId: string): void {\n this.repository.switchToBranch(branchId);\n this._notifySubscribers();\n }\n\n protected _notifySubscribers() {\n for (const callback of this._subscriptions) callback();\n }\n\n public _notifyEventSubscribers(event: ThreadRuntimeEventType) {\n const subscribers = this._eventSubscribers.get(event);\n if (!subscribers) return;\n\n for (const callback of subscribers) callback();\n }\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscriptions.add(callback);\n return () => this._subscriptions.delete(callback);\n }\n\n public submitFeedback({ messageId, type }: SubmitFeedbackOptions) {\n const adapter = this.adapters?.feedback;\n if (!adapter) throw new Error(\"Feedback adapter not configured\");\n\n const { message, parentId } = this.repository.getMessage(messageId);\n adapter.submit({ message, type });\n\n if (message.role === \"assistant\") {\n const updatedMessage: ThreadMessage = {\n ...message,\n metadata: {\n ...message.metadata,\n submittedFeedback: { type },\n },\n };\n this.repository.addOrUpdateMessage(parentId, updatedMessage);\n }\n\n this._notifySubscribers();\n }\n\n private _stopSpeaking: Unsubscribe | undefined;\n public speech: SpeechState | undefined;\n\n public speak(messageId: string) {\n const adapter = this.adapters?.speech;\n if (!adapter) throw new Error(\"Speech adapter not configured\");\n\n const { message } = this.repository.getMessage(messageId);\n\n this._stopSpeaking?.();\n\n const utterance = adapter.speak(getThreadMessageText(message));\n const unsub = utterance.subscribe(() => {\n if (utterance.status.type === \"ended\") {\n this._stopSpeaking = undefined;\n this.speech = undefined;\n } else {\n this.speech = { messageId, status: utterance.status };\n }\n this._notifySubscribers();\n });\n\n this.speech = { messageId, status: utterance.status };\n this._notifySubscribers();\n\n this._stopSpeaking = () => {\n utterance.cancel();\n unsub();\n this.speech = undefined;\n this._stopSpeaking = undefined;\n };\n }\n\n public stopSpeaking() {\n if (!this._stopSpeaking) throw new Error(\"No message is being spoken\");\n this._stopSpeaking();\n this._notifySubscribers();\n }\n\n private _voiceSession: RealtimeVoiceAdapter.Session | undefined;\n private _voiceUnsubs: Array<() => void> = [];\n public voice: VoiceSessionState | undefined;\n\n private _voiceVolume = 0;\n private _voiceVolumeSubscribers = new Set<() => void>();\n\n public getVoiceVolume = () => this._voiceVolume;\n\n public subscribeVoiceVolume = (callback: () => void): Unsubscribe => {\n this._voiceVolumeSubscribers.add(callback);\n return () => this._voiceVolumeSubscribers.delete(callback);\n };\n\n public connectVoice() {\n const adapter = this.adapters?.voice;\n if (!adapter) throw new Error(\"Voice adapter not configured\");\n\n this.disconnectVoice();\n\n const session = adapter.connect({});\n this._voiceSession = session;\n const unsubs: Array<() => void> = [];\n\n let currentMode: RealtimeVoiceAdapter.Mode = \"listening\";\n\n this.voice = {\n status: session.status,\n isMuted: session.isMuted,\n mode: currentMode,\n };\n this._voiceVolume = 0;\n this._notifySubscribers();\n\n unsubs.push(\n session.onStatusChange((status) => {\n if (status.type === \"ended\") {\n this._finishVoiceAssistantMessage();\n this._voiceSession = undefined;\n this.voice = undefined;\n } else {\n this.voice = {\n status,\n isMuted: session.isMuted,\n mode: currentMode,\n };\n }\n this._notifySubscribers();\n }),\n );\n\n unsubs.push(\n session.onModeChange((mode) => {\n currentMode = mode;\n if (this.voice) {\n this.voice = { ...this.voice, mode };\n this._notifySubscribers();\n }\n }),\n );\n\n unsubs.push(\n session.onVolumeChange((volume) => {\n this._voiceVolume = volume;\n for (const cb of this._voiceVolumeSubscribers) cb();\n }),\n );\n\n unsubs.push(\n session.onTranscript((transcript) => {\n this._handleVoiceTranscript(transcript);\n }),\n );\n\n this._voiceUnsubs = unsubs;\n }\n\n private _currentAssistantMsg: ThreadAssistantMessage | null = null;\n\n private _handleVoiceTranscript(\n transcript: RealtimeVoiceAdapter.TranscriptItem,\n ) {\n this.ensureInitialized();\n\n if (transcript.role === \"user\") {\n this._finishVoiceAssistantMessage();\n this._currentAssistantMsg = null;\n\n if (transcript.isFinal) {\n this._voiceMessages.push({\n id: generateId(),\n role: \"user\",\n content: [{ type: \"text\", text: transcript.text }],\n metadata: { custom: {} },\n createdAt: new Date(),\n status: { type: \"complete\", reason: \"unknown\" },\n attachments: [],\n });\n this._markVoiceMessagesDirty();\n this._notifySubscribers();\n }\n } else {\n if (!this._currentAssistantMsg) {\n this._currentAssistantMsg = {\n id: generateId(),\n role: \"assistant\",\n content: [{ type: \"text\", text: transcript.text }],\n metadata: {\n unstable_state: this.state,\n unstable_annotations: [],\n unstable_data: [],\n steps: [],\n custom: {},\n },\n status: { type: \"running\" },\n createdAt: new Date(),\n };\n this._voiceMessages.push(this._currentAssistantMsg);\n } else {\n const idx = this._voiceMessages.indexOf(this._currentAssistantMsg);\n if (idx === -1) return;\n const updated: ThreadAssistantMessage = {\n ...this._currentAssistantMsg,\n content: [{ type: \"text\", text: transcript.text }],\n ...(transcript.isFinal\n ? { status: { type: \"complete\", reason: \"stop\" } }\n : {}),\n };\n this._voiceMessages[idx] = updated;\n this._currentAssistantMsg = updated;\n }\n\n if (transcript.isFinal) {\n this._currentAssistantMsg = null;\n }\n\n this._markVoiceMessagesDirty();\n this._notifySubscribers();\n }\n }\n\n private _finishVoiceAssistantMessage() {\n const last = this._voiceMessages.at(-1);\n if (last?.role === \"assistant\" && last.status.type === \"running\") {\n const idx = this._voiceMessages.length - 1;\n this._voiceMessages[idx] = {\n ...(last as ThreadAssistantMessage),\n status: { type: \"complete\", reason: \"stop\" },\n };\n this._markVoiceMessagesDirty();\n this._notifySubscribers();\n }\n }\n\n public disconnectVoice() {\n this._finishVoiceAssistantMessage();\n this._currentAssistantMsg = null;\n for (const unsub of this._voiceUnsubs) unsub();\n this._voiceUnsubs = [];\n this._voiceSession?.disconnect();\n this._voiceSession = undefined;\n this.voice = undefined;\n this._voiceVolume = 0;\n for (const cb of this._voiceVolumeSubscribers) cb();\n this._voiceMessages = [];\n this._markVoiceMessagesDirty();\n this._notifySubscribers();\n }\n\n public muteVoice() {\n if (!this._voiceSession) throw new Error(\"No active voice session\");\n this._voiceSession.mute();\n this.voice = {\n ...this.voice!,\n isMuted: true,\n };\n this._notifySubscribers();\n }\n\n public unmuteVoice() {\n if (!this._voiceSession) throw new Error(\"No active voice session\");\n this._voiceSession.unmute();\n this.voice = {\n ...this.voice!,\n isMuted: false,\n };\n this._notifySubscribers();\n }\n\n protected ensureInitialized() {\n if (!this._isInitialized) {\n this._isInitialized = true;\n this._notifyEventSubscribers(\"initialize\");\n }\n }\n\n public export() {\n return this.repository.export();\n }\n\n public import(data: ExportedMessageRepository) {\n this.ensureInitialized();\n this.repository.clear();\n this.repository.import(data);\n this._notifySubscribers();\n }\n\n public reset(initialMessages?: readonly ThreadMessageLike[]) {\n this.import(ExportedMessageRepository.fromArray(initialMessages ?? []));\n }\n\n private _eventSubscribers = new Map<\n ThreadRuntimeEventType,\n Set<() => void>\n >();\n\n public unstable_on(event: ThreadRuntimeEventType, callback: () => void) {\n if (event === \"modelContextUpdate\") {\n return this._contextProvider.subscribe?.(callback) ?? (() => {});\n }\n\n const subscribers = this._eventSubscribers.get(event);\n if (!subscribers) {\n this._eventSubscribers.set(event, new Set([callback]));\n } else {\n subscribers.add(callback);\n }\n\n return () => {\n const subscribers = this._eventSubscribers.get(event)!;\n subscribers.delete(callback);\n };\n }\n}\n","import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { SubscribableWithState } from \"../../subscribable/subscribable\";\nimport type { ThreadListItemRuntimePath } from \"./paths\";\nimport type { ThreadListRuntimeCoreBinding } from \"./thread-list-runtime\";\n\nexport type ThreadListItemEventType = \"switchedTo\" | \"switchedAway\";\n\nimport type { ThreadListItemState } from \"./bindings\";\nimport type { ThreadListItemStatus } from \"../interfaces/thread-list-runtime-core\";\n\nexport type { ThreadListItemState, ThreadListItemStatus };\n\nexport type ThreadListItemRuntime = {\n readonly path: ThreadListItemRuntimePath;\n getState(): ThreadListItemState;\n\n initialize(): Promise<{ remoteId: string; externalId: string | undefined }>;\n generateTitle(): Promise<void>;\n\n switchTo(): Promise<void>;\n rename(newTitle: string): Promise<void>;\n archive(): Promise<void>;\n unarchive(): Promise<void>;\n delete(): Promise<void>;\n\n detach(): void;\n\n subscribe(callback: () => void): Unsubscribe;\n\n unstable_on(\n event: ThreadListItemEventType,\n callback: () => void,\n ): Unsubscribe;\n\n __internal_getRuntime(): ThreadListItemRuntime;\n};\n\nexport type ThreadListItemStateBinding = SubscribableWithState<\n ThreadListItemState,\n ThreadListItemRuntimePath\n>;\n\nexport class ThreadListItemRuntimeImpl implements ThreadListItemRuntime {\n public get path() {\n return this._core.path;\n }\n\n constructor(\n private _core: ThreadListItemStateBinding,\n private _threadListBinding: ThreadListRuntimeCoreBinding,\n ) {\n this.__internal_bindMethods();\n }\n\n protected __internal_bindMethods() {\n this.switchTo = this.switchTo.bind(this);\n this.rename = this.rename.bind(this);\n this.archive = this.archive.bind(this);\n this.unarchive = this.unarchive.bind(this);\n this.delete = this.delete.bind(this);\n this.initialize = this.initialize.bind(this);\n this.generateTitle = this.generateTitle.bind(this);\n this.subscribe = this.subscribe.bind(this);\n this.unstable_on = this.unstable_on.bind(this);\n this.getState = this.getState.bind(this);\n this.detach = this.detach.bind(this);\n }\n\n public getState(): ThreadListItemState {\n return this._core.getState();\n }\n\n public switchTo(): Promise<void> {\n const state = this._core.getState();\n return this._threadListBinding.switchToThread(state.id);\n }\n\n public rename(newTitle: string): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.rename(state.id, newTitle);\n }\n\n public archive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.archive(state.id);\n }\n\n public unarchive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.unarchive(state.id);\n }\n\n public delete(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.delete(state.id);\n }\n\n public initialize(): Promise<{\n remoteId: string;\n externalId: string | undefined;\n }> {\n const state = this._core.getState();\n return this._threadListBinding.initialize(state.id);\n }\n\n public generateTitle(): Promise<void> {\n const state = this._core.getState();\n return this._threadListBinding.generateTitle(state.id);\n }\n\n public unstable_on(event: ThreadListItemEventType, callback: () => void) {\n let prevIsMain = this._core.getState().isMain;\n let prevThreadId = this._core.getState().id;\n return this.subscribe(() => {\n const currentState = this._core.getState();\n const newIsMain = currentState.isMain;\n const newThreadId = currentState.id;\n if (prevIsMain === newIsMain && prevThreadId === newThreadId) return;\n prevIsMain = newIsMain;\n prevThreadId = newThreadId;\n\n if (event === \"switchedTo\" && !newIsMain) return;\n if (event === \"switchedAway\" && newIsMain) return;\n callback();\n });\n }\n\n public subscribe(callback: () => void): Unsubscribe {\n return this._core.subscribe(callback);\n }\n\n public detach(): void {\n const state = this._core.getState();\n\n this._threadListBinding.detach(state.id);\n }\n\n public __internal_getRuntime(): ThreadListItemRuntime {\n return this;\n }\n}\n","import type { ThreadMessage } from \"../../types/message\";\n\nexport const symbolInnerMessage = Symbol(\"innerMessage\");\nconst symbolInnerMessages = Symbol(\"innerMessages\");\n\ntype WithInnerMessages<T> = {\n [symbolInnerMessage]?: T | T[];\n [symbolInnerMessages]?: T[];\n};\n\n/**\n * @deprecated Use `getExternalStoreMessages` (plural) instead. This function will be removed in 0.12.0.\n */\nexport const getExternalStoreMessage = <T>(input: ThreadMessage) => {\n const withInnerMessages = input as WithInnerMessages<T>;\n return withInnerMessages[symbolInnerMessage];\n};\n\nconst EMPTY_ARRAY: never[] = [];\n\n/**\n * Attach the original external store message(s) to a ThreadMessage or message part.\n * This is a no-op if the target already has a bound message.\n * Use `getExternalStoreMessages` to retrieve the bound messages later.\n *\n * @deprecated This API is experimental and may change without notice.\n */\nexport const bindExternalStoreMessage = <T>(\n target: object,\n message: T | T[],\n): void => {\n if (symbolInnerMessage in target) return;\n (target as WithInnerMessages<T>)[symbolInnerMessage] = message;\n};\n\nexport const getExternalStoreMessages = <T>(\n input:\n | { messages: readonly ThreadMessage[] }\n | ThreadMessage\n | ThreadMessage[\"content\"][number],\n) => {\n const container = (\n \"messages\" in input ? input.messages : input\n ) as WithInnerMessages<T>;\n const value = container[symbolInnerMessages] || container[symbolInnerMessage];\n if (!value) return EMPTY_ARRAY;\n if (Array.isArray(value)) {\n return value;\n }\n container[symbolInnerMessages] = [value];\n return container[symbolInnerMessages];\n};\n","import type { Attachment, CompleteAttachment } from \"../../types/attachment\";\nimport type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { SubscribableWithState } from \"../../subscribable/subscribable\";\n\nimport type { ComposerRuntimeCoreBinding } from \"./bindings\";\nimport type { AttachmentRuntimePath } from \"./paths\";\n\ntype MessageAttachmentState = CompleteAttachment & {\n readonly source: \"message\";\n};\n\ntype ThreadComposerAttachmentState = Attachment & {\n readonly source: \"thread-composer\";\n};\n\ntype EditComposerAttachmentState = Attachment & {\n readonly source: \"edit-composer\";\n};\n\nexport type AttachmentState =\n | ThreadComposerAttachmentState\n | EditComposerAttachmentState\n | MessageAttachmentState;\n\ntype AttachmentSnapshotBinding<Source extends AttachmentRuntimeSource> =\n SubscribableWithState<\n AttachmentState & { source: Source },\n AttachmentRuntimePath & { attachmentSource: Source }\n >;\n\ntype AttachmentRuntimeSource = AttachmentState[\"source\"];\n\nexport type AttachmentRuntime<\n TSource extends AttachmentRuntimeSource = AttachmentRuntimeSource,\n> = {\n readonly path: AttachmentRuntimePath & { attachmentSource: TSource };\n readonly source: TSource;\n getState(): AttachmentState & { source: TSource };\n remove(): Promise<void>;\n subscribe(callback: () => void): Unsubscribe;\n};\n\nexport abstract class AttachmentRuntimeImpl<\n Source extends AttachmentRuntimeSource = AttachmentRuntimeSource,\n> implements AttachmentRuntime\n{\n public get path() {\n return this._core.path;\n }\n\n public abstract get source(): Source;\n\n constructor(private _core: AttachmentSnapshotBinding<Source>) {\n this.__internal_bindMethods();\n }\n\n protected __internal_bindMethods() {\n this.getState = this.getState.bind(this);\n this.remove = this.remove.bind(this);\n this.subscribe = this.subscribe.bind(this);\n }\n\n public getState(): AttachmentState & { source: Source } {\n return this._core.getState();\n }\n\n public abstract remove(): Promise<void>;\n\n public subscribe(callback: () => void) {\n return this._core.subscribe(callback);\n }\n}\n\nabstract class ComposerAttachmentRuntime<\n Source extends \"thread-composer\" | \"edit-composer\",\n> extends AttachmentRuntimeImpl<Source> {\n constructor(\n core: AttachmentSnapshotBinding<Source>,\n private _composerApi: ComposerRuntimeCoreBinding,\n ) {\n super(core);\n }\n\n public remove() {\n const core = this._composerApi.getState();\n if (!core) throw new Error(\"Composer is not available\");\n return core.removeAttachment(this.getState().id);\n }\n}\n\nexport class ThreadComposerAttachmentRuntimeImpl extends ComposerAttachmentRuntime<\"thread-composer\"> {\n public get source(): \"thread-composer\" {\n return \"thread-composer\";\n }\n}\n\nexport class EditComposerAttachmentRuntimeImpl extends ComposerAttachmentRuntime<\"edit-composer\"> {\n public get source(): \"edit-composer\" {\n return \"edit-composer\";\n }\n}\n\nexport class MessageAttachmentRuntimeImpl extends AttachmentRuntimeImpl<\"message\"> {\n public get source(): \"message\" {\n return \"message\";\n }\n\n constructor(core: AttachmentSnapshotBinding<\"message\">) {\n super(core);\n }\n\n public remove(): never {\n throw new Error(\"Message attachments cannot be removed\");\n }\n}\n","import type { Attachment, CreateAttachment } from \"../../types/attachment\";\nimport type { MessageRole } from \"../../types/message\";\nimport type { QuoteInfo } from \"../../types/quote\";\nimport type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { RunConfig } from \"../../types/message\";\nimport {\n LazyMemoizeSubject,\n EventSubscriptionSubject,\n} from \"../../subscribable/subscribable\";\nimport {\n ShallowMemoizeSubject,\n SKIP_UPDATE,\n} from \"../../subscribable/subscribable\";\nimport type {\n ComposerRuntimeCore,\n ComposerRuntimeEventType,\n DictationState,\n ThreadComposerRuntimeCore,\n} from \"../interfaces/composer-runtime-core\";\nimport type {\n ThreadComposerRuntimeCoreBinding,\n EditComposerRuntimeCoreBinding,\n ComposerRuntimeCoreBinding,\n} from \"./bindings\";\nimport type { ComposerRuntimePath } from \"./paths\";\n\nimport {\n type AttachmentRuntime,\n type AttachmentState,\n EditComposerAttachmentRuntimeImpl,\n ThreadComposerAttachmentRuntimeImpl,\n} from \"./attachment-runtime\";\n\nexport type {\n ThreadComposerRuntimeCoreBinding,\n EditComposerRuntimeCoreBinding,\n ComposerRuntimeCoreBinding,\n};\n\ntype BaseComposerState = {\n readonly canCancel: boolean;\n readonly isEditing: boolean;\n readonly isEmpty: boolean;\n\n readonly text: string;\n readonly role: MessageRole;\n readonly attachments: readonly Attachment[];\n readonly runConfig: RunConfig;\n\n readonly attachmentAccept: string;\n\n /**\n * The current state of dictation.\n * Undefined when dictation is not active.\n */\n readonly dictation: DictationState | undefined;\n\n /**\n * The currently quoted text, if any.\n * Undefined when no quote is set.\n */\n readonly quote: QuoteInfo | undefined;\n};\n\nexport type ThreadComposerState = BaseComposerState & {\n readonly type: \"thread\";\n};\n\nexport type EditComposerState = BaseComposerState & {\n readonly type: \"edit\";\n};\n\nexport type ComposerState = ThreadComposerState | EditComposerState;\n\nconst EMPTY_ARRAY = Object.freeze([]);\nconst EMPTY_OBJECT = Object.freeze({});\nconst getThreadComposerState = (\n runtime: ThreadComposerRuntimeCore | undefined,\n): ThreadComposerState => {\n return Object.freeze({\n type: \"thread\",\n\n isEditing: runtime?.isEditing ?? false,\n canCancel: runtime?.canCancel ?? false,\n isEmpty: runtime?.isEmpty ?? true,\n\n attachments: runtime?.attachments ?? EMPTY_ARRAY,\n text: runtime?.text ?? \"\",\n role: runtime?.role ?? \"user\",\n runConfig: runtime?.runConfig ?? EMPTY_OBJECT,\n attachmentAccept: runtime?.attachmentAccept ?? \"\",\n dictation: runtime?.dictation,\n quote: runtime?.quote,\n\n value: runtime?.text ?? \"\",\n });\n};\n\nconst getEditComposerState = (\n runtime: ComposerRuntimeCore | undefined,\n): EditComposerState => {\n return Object.freeze({\n type: \"edit\",\n\n isEditing: runtime?.isEditing ?? false,\n canCancel: runtime?.canCancel ?? false,\n isEmpty: runtime?.isEmpty ?? true,\n\n text: runtime?.text ?? \"\",\n role: runtime?.role ?? \"user\",\n attachments: runtime?.attachments ?? EMPTY_ARRAY,\n runConfig: runtime?.runConfig ?? EMPTY_OBJECT,\n attachmentAccept: runtime?.attachmentAccept ?? \"\",\n dictation: runtime?.dictation,\n quote: runtime?.quote,\n\n value: runtime?.text ?? \"\",\n });\n};\n\nexport type ComposerRuntime = {\n readonly path: ComposerRuntimePath;\n readonly type: \"edit\" | \"thread\";\n\n /**\n * Get the current state of the composer. Includes any data that has been added to the composer.\n */\n getState(): ComposerState;\n\n /**\n * Add an attachment to the composer. Accepts either a standard File object\n * (processed through the AttachmentAdapter) or a CreateAttachment descriptor\n * for external-source attachments (URLs, API data, CMS references) that\n * bypasses the adapter entirely.\n * @param fileOrAttachment The file or attachment descriptor to add.\n */\n addAttachment(fileOrAttachment: File | CreateAttachment): Promise<void>;\n\n /**\n * Set the text of the composer.\n * @param text The text to set in the composer.\n */\n setText(text: string): void;\n\n /**\n * Set the role of the composer. For instance, if you'd like a specific message to have the 'assistant' role, you can do so here.\n * @param role The role to set in the composer.\n */\n setRole(role: MessageRole): void;\n\n /**\n * Set the run config of the composer. This is used to send custom configuration data to the model.\n * Within your backend, you can use the `runConfig` object.\n * Example:\n * ```ts\n * composerRuntime.setRunConfig({\n * custom: { customField: \"customValue\" }\n * });\n * ```\n * @param runConfig The run config to set in the composer.\n */\n setRunConfig(runConfig: RunConfig): void;\n\n /**\n * Reset the composer. This will clear the entire state of the composer, including all text and attachments.\n */\n reset(): Promise<void>;\n\n /**\n * Clear all attachments from the composer.\n */\n clearAttachments(): Promise<void>;\n\n /**\n * Send a message. This will send whatever text or attachments are in the composer.\n */\n send(): void;\n\n /**\n * Cancel the current run. In edit mode, this will exit edit mode.\n */\n cancel(): void;\n\n /**\n * Listens for changes to the composer state.\n * @param callback The callback to call when the composer state changes.\n */\n subscribe(callback: () => void): Unsubscribe;\n\n /**\n * Get an attachment by index.\n * @param idx The index of the attachment to get.\n */\n getAttachmentByIndex(idx: number): AttachmentRuntime;\n\n /**\n * Start dictation to convert voice to text input.\n * Requires a DictationAdapter to be configured.\n */\n startDictation(): void;\n\n /**\n * Stop the current dictation session.\n */\n stopDictation(): void;\n\n /**\n * Set a quote for the next message. Pass undefined to clear.\n * @param quote The quote info to set, or undefined to clear.\n */\n setQuote(quote: QuoteInfo | undefined): void;\n\n /**\n * @deprecated This API is still under active development and might change without notice.\n */\n unstable_on(\n event: ComposerRuntimeEventType,\n callback: () => void,\n ): Unsubscribe;\n};\n\nexport abstract class ComposerRuntimeImpl implements ComposerRuntime {\n public get path() {\n return this._core.path;\n }\n\n public abstract get type(): \"edit\" | \"thread\";\n\n constructor(protected _core: ComposerRuntimeCoreBinding) {}\n\n protected __internal_bindMethods() {\n this.setText = this.setText.bind(this);\n this.setRunConfig = this.setRunConfig.bind(this);\n this.getState = this.getState.bind(this);\n this.subscribe = this.subscribe.bind(this);\n this.addAttachment = this.addAttachment.bind(this);\n this.reset = this.reset.bind(this);\n this.clearAttachments = this.clearAttachments.bind(this);\n this.send = this.send.bind(this);\n this.cancel = this.cancel.bind(this);\n this.setRole = this.setRole.bind(this);\n this.getAttachmentByIndex = this.getAttachmentByIndex.bind(this);\n this.startDictation = this.startDictation.bind(this);\n this.stopDictation = this.stopDictation.bind(this);\n this.setQuote = this.setQuote.bind(this);\n this.unstable_on = this.unstable_on.bind(this);\n }\n\n public abstract getState(): ComposerState;\n\n public setText(text: string) {\n const core = this._core.getState();\n if (!core) throw new Error(\"Composer is not available\");\n core.setText(text);\n }\n\n public setRunConfig(runConfig: RunConfig) {\n const core = this._core.getState();\n if (!core) throw new Error(\"Composer is not available\");\n core.setRunConfig(runConfig);\n }\n\n public addAttachment(fileOrAttachment: File | CreateAttachment) {\n const core = this._core.getState();\n if (!core) throw new Error(\"Composer is not available\");\n return core.addAttachment(fileOrAttachment);\n }\n\n public reset() {\n const core = this._core.getState();\n if (!core) throw new Error(\"Composer is not available\");\n return core.reset();\n }\n\n public clearAttachments() {\n const core = this._core.getState();\n if (!core) throw new Error(\"Composer is not available\");\n return core.clearAttachments();\n }\n\n public send() {\n const core = this._core.getState();\n if (!core) throw new Error(\"Composer is not available\");\n core.send();\n }\n\n public cancel() {\n const core = this._core.getState();\n if (!core) throw new Error(\"Composer is not available\");\n core.cancel();\n }\n\n public setRole(role: MessageRole) {\n const core = this._core.getState();\n if (!core) throw new Error(\"Composer is not available\");\n core.setRole(role);\n }\n\n public startDictation() {\n const core = this._core.getState();\n if (!core) throw new Error(\"Composer is not available\");\n core.startDictation();\n }\n\n public stopDictation() {\n const core = this._core.getState();\n if (!core) throw new Error(\"Composer is not available\");\n core.stopDictation();\n }\n\n public setQuote(quote: QuoteInfo | undefined) {\n const core = this._core.getState();\n if (!core) throw new Error(\"Composer is not available\");\n core.setQuote(quote);\n }\n\n public subscribe(callback: () => void) {\n return this._core.subscribe(callback);\n }\n\n private _eventSubscriptionSubjects = new Map<\n string,\n EventSubscriptionSubject<ComposerRuntimeEventType>\n >();\n\n public unstable_on(\n event: ComposerRuntimeEventType,\n callback: () => void,\n ): Unsubscribe {\n let subject = this._eventSubscriptionSubjects.get(event);\n if (!subject) {\n subject = new EventSubscriptionSubject({\n event: event,\n binding: this._core,\n });\n this._eventSubscriptionSubjects.set(event, subject);\n }\n return subject.subscribe(callback);\n }\n\n public abstract getAttachmentByIndex(idx: number): AttachmentRuntime;\n}\n\nexport type ThreadComposerRuntime = Omit<\n ComposerRuntime,\n \"getState\" | \"getAttachmentByIndex\"\n> & {\n readonly path: ComposerRuntimePath & { composerSource: \"thread\" };\n readonly type: \"thread\";\n getState(): ThreadComposerState;\n\n getAttachmentByIndex(\n idx: number,\n ): AttachmentRuntime & { source: \"thread-composer\" };\n};\n\nexport class ThreadComposerRuntimeImpl\n extends ComposerRuntimeImpl\n implements ThreadComposerRuntime\n{\n public override get path() {\n return this._core.path as ComposerRuntimePath & {\n composerSource: \"thread\";\n };\n }\n\n public get type() {\n return \"thread\" as const;\n }\n\n private _getState;\n\n constructor(core: ThreadComposerRuntimeCoreBinding) {\n const stateBinding = new LazyMemoizeSubject({\n path: core.path,\n getState: () => getThreadComposerState(core.getState()),\n subscribe: (callback) => core.subscribe(callback),\n });\n super({\n path: core.path,\n getState: () => core.getState(),\n subscribe: (callback) => stateBinding.subscribe(callback),\n });\n this._getState = stateBinding.getState.bind(stateBinding);\n\n this.__internal_bindMethods();\n }\n\n public override getState(): ThreadComposerState {\n return this._getState();\n }\n\n public getAttachmentByIndex(idx: number) {\n return new ThreadComposerAttachmentRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ...this.path,\n attachmentSource: \"thread-composer\",\n attachmentSelector: { type: \"index\", index: idx },\n ref: `${this.path.ref}.attachments[${idx}]`,\n },\n getState: () => {\n const attachments = this.getState().attachments;\n const attachment = attachments[idx];\n if (!attachment) return SKIP_UPDATE;\n\n return {\n ...attachment,\n source: \"thread-composer\",\n } satisfies AttachmentState & { source: \"thread-composer\" };\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n}\n\nexport type EditComposerRuntime = Omit<\n ComposerRuntime,\n \"getState\" | \"getAttachmentByIndex\"\n> & {\n readonly path: ComposerRuntimePath & { composerSource: \"edit\" };\n readonly type: \"edit\";\n\n getState(): EditComposerState;\n beginEdit(): void;\n\n getAttachmentByIndex(\n idx: number,\n ): AttachmentRuntime & { source: \"edit-composer\" };\n};\n\nexport class EditComposerRuntimeImpl\n extends ComposerRuntimeImpl\n implements EditComposerRuntime\n{\n public override get path() {\n return this._core.path as ComposerRuntimePath & { composerSource: \"edit\" };\n }\n\n public get type() {\n return \"edit\" as const;\n }\n\n private _getState;\n constructor(\n core: EditComposerRuntimeCoreBinding,\n private _beginEdit: () => void,\n ) {\n const stateBinding = new LazyMemoizeSubject({\n path: core.path,\n getState: () => getEditComposerState(core.getState()),\n subscribe: (callback) => core.subscribe(callback),\n });\n\n super({\n path: core.path,\n getState: () => core.getState(),\n subscribe: (callback) => stateBinding.subscribe(callback),\n });\n\n this._getState = stateBinding.getState.bind(stateBinding);\n\n this.__internal_bindMethods();\n }\n\n public override __internal_bindMethods() {\n super.__internal_bindMethods();\n this.beginEdit = this.beginEdit.bind(this);\n }\n\n public override getState(): EditComposerState {\n return this._getState();\n }\n\n public beginEdit() {\n this._beginEdit();\n }\n\n public getAttachmentByIndex(idx: number) {\n return new EditComposerAttachmentRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ...this.path,\n attachmentSource: \"edit-composer\",\n attachmentSelector: { type: \"index\", index: idx },\n ref: `${this.path.ref}.attachments[${idx}]`,\n },\n getState: () => {\n const attachments = this.getState().attachments;\n const attachment = attachments[idx];\n if (!attachment) return SKIP_UPDATE;\n\n return {\n ...attachment,\n source: \"edit-composer\",\n } satisfies AttachmentState & { source: \"edit-composer\" };\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n}\n","import type {\n ThreadAssistantMessagePart,\n ThreadUserMessagePart,\n ToolCallMessagePartStatus,\n} from \"../../types/message\";\nimport type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { MessagePartStatus } from \"../../types/message\";\nimport type { SubscribableWithState } from \"../../subscribable/subscribable\";\nimport type { ThreadRuntimeCoreBinding } from \"./thread-runtime\";\nimport type { MessageStateBinding } from \"./bindings\";\nimport type { MessagePartRuntimePath } from \"./paths\";\nimport { ToolResponse } from \"assistant-stream\";\n\nexport type MessagePartState = (\n | ThreadUserMessagePart\n | ThreadAssistantMessagePart\n) & {\n readonly status: MessagePartStatus | ToolCallMessagePartStatus;\n};\n\ntype MessagePartSnapshotBinding = SubscribableWithState<\n MessagePartState,\n MessagePartRuntimePath\n>;\n\nexport type MessagePartRuntime = {\n addToolResult(result: any | ToolResponse<any>): void;\n resumeToolCall(payload: unknown): void;\n\n readonly path: MessagePartRuntimePath;\n getState(): MessagePartState;\n subscribe(callback: () => void): Unsubscribe;\n};\n\nexport class MessagePartRuntimeImpl implements MessagePartRuntime {\n public get path() {\n return this.contentBinding.path;\n }\n\n constructor(\n private contentBinding: MessagePartSnapshotBinding,\n private messageApi?: MessageStateBinding,\n private threadApi?: ThreadRuntimeCoreBinding,\n ) {\n this.__internal_bindMethods();\n }\n\n protected __internal_bindMethods() {\n this.addToolResult = this.addToolResult.bind(this);\n this.resumeToolCall = this.resumeToolCall.bind(this);\n this.getState = this.getState.bind(this);\n this.subscribe = this.subscribe.bind(this);\n }\n\n public getState() {\n return this.contentBinding.getState();\n }\n\n public addToolResult(result: any | ToolResponse<any>) {\n const state = this.contentBinding.getState();\n if (!state) throw new Error(\"Message part is not available\");\n\n if (state.type !== \"tool-call\")\n throw new Error(\"Tried to add tool result to non-tool message part\");\n\n if (!this.messageApi)\n throw new Error(\n \"Message API is not available. This is likely a bug in assistant-ui.\",\n );\n if (!this.threadApi) throw new Error(\"Thread API is not available\");\n\n const message = this.messageApi.getState();\n if (!message) throw new Error(\"Message is not available\");\n\n const toolName = state.toolName;\n const toolCallId = state.toolCallId;\n\n const response = ToolResponse.toResponse(result);\n this.threadApi.getState().addToolResult({\n messageId: message.id,\n toolName,\n toolCallId,\n result: response.result,\n artifact: response.artifact,\n isError: response.isError,\n });\n }\n\n public resumeToolCall(payload: unknown) {\n const state = this.contentBinding.getState();\n if (!state) throw new Error(\"Message part is not available\");\n\n if (state.type !== \"tool-call\")\n throw new Error(\"Tried to resume tool call on non-tool message part\");\n\n if (!this.threadApi) throw new Error(\"Thread API is not available\");\n\n const toolCallId = state.toolCallId;\n this.threadApi.getState().resumeToolCall({\n toolCallId,\n payload,\n });\n }\n\n public subscribe(callback: () => void) {\n return this.contentBinding.subscribe(callback);\n }\n}\n","import {\n SpeechState,\n SubmittedFeedback,\n} from \"../interfaces/thread-runtime-core\";\nimport { symbolInnerMessage } from \"../utils/external-store-message\";\nimport type {\n ToolCallMessagePartStatus,\n ThreadMessage,\n ThreadAssistantMessagePart,\n ThreadUserMessagePart,\n} from \"../../types/message\";\nimport type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { MessagePartStatus, RunConfig } from \"../../types/message\";\nimport { getThreadMessageText } from \"../../utils/text\";\nimport { NestedSubscriptionSubject } from \"../../subscribable/subscribable\";\nimport {\n SKIP_UPDATE,\n ShallowMemoizeSubject,\n} from \"../../subscribable/subscribable\";\nimport {\n AttachmentRuntime,\n AttachmentState,\n MessageAttachmentRuntimeImpl,\n} from \"./attachment-runtime\";\nimport {\n EditComposerRuntime,\n EditComposerRuntimeImpl,\n} from \"./composer-runtime\";\nimport {\n MessagePartRuntime,\n MessagePartRuntimeImpl,\n MessagePartState,\n} from \"./message-part-runtime\";\nimport { MessageRuntimePath } from \"./paths\";\nimport { ThreadRuntimeCoreBinding } from \"./thread-runtime\";\nimport type { MessageStateBinding } from \"./bindings\";\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nexport const toMessagePartStatus = (\n message: ThreadMessage,\n partIndex: number,\n part: ThreadUserMessagePart | ThreadAssistantMessagePart,\n): ToolCallMessagePartStatus => {\n if (message.role !== \"assistant\") return COMPLETE_STATUS;\n\n if (part.type === \"tool-call\") {\n if (!part.result) {\n return message.status as ToolCallMessagePartStatus;\n } else {\n return COMPLETE_STATUS;\n }\n }\n\n const isLastPart = partIndex === Math.max(0, message.content.length - 1);\n if (message.status.type === \"requires-action\") return COMPLETE_STATUS;\n return isLastPart ? (message.status as MessagePartStatus) : COMPLETE_STATUS;\n};\n\nconst getMessagePartState = (\n message: MessageState,\n partIndex: number,\n): MessagePartState | SKIP_UPDATE => {\n const part = message.content[partIndex];\n if (!part) {\n return SKIP_UPDATE;\n }\n\n // if the message part is the same, don't update\n const status = toMessagePartStatus(message, partIndex, part);\n return Object.freeze({\n ...part,\n ...{ [symbolInnerMessage]: (part as any)[symbolInnerMessage] },\n status,\n });\n};\n\nexport type MessageState = ThreadMessage & {\n readonly parentId: string | null;\n /** The position of this message in the thread (0 for first message) */\n readonly index: number;\n readonly isLast: boolean;\n\n readonly branchNumber: number;\n readonly branchCount: number;\n\n /**\n * @deprecated This API is still under active development and might change without notice.\n */\n readonly speech: SpeechState | undefined;\n /**\n * @deprecated Use `message.metadata.submittedFeedback` instead. This will be removed in 0.12.0.\n */\n readonly submittedFeedback: SubmittedFeedback | undefined;\n};\n\nexport type { MessageStateBinding } from \"./bindings\";\n\ntype ReloadConfig = {\n runConfig?: RunConfig;\n};\n\nexport type MessageRuntime = {\n readonly path: MessageRuntimePath;\n\n readonly composer: EditComposerRuntime;\n\n getState(): MessageState;\n reload(config?: ReloadConfig): void;\n /**\n * @deprecated This API is still under active development and might change without notice.\n */\n speak(): void;\n /**\n * @deprecated This API is still under active development and might change without notice.\n */\n stopSpeaking(): void;\n submitFeedback({ type }: { type: \"positive\" | \"negative\" }): void;\n switchToBranch({\n position,\n branchId,\n }: {\n position?: \"previous\" | \"next\" | undefined;\n branchId?: string | undefined;\n }): void;\n unstable_getCopyText(): string;\n\n subscribe(callback: () => void): Unsubscribe;\n\n getMessagePartByIndex(idx: number): MessagePartRuntime;\n getMessagePartByToolCallId(toolCallId: string): MessagePartRuntime;\n\n getAttachmentByIndex(idx: number): AttachmentRuntime & { source: \"message\" };\n};\n\nexport class MessageRuntimeImpl implements MessageRuntime {\n public get path() {\n return this._core.path;\n }\n\n constructor(\n private _core: MessageStateBinding,\n private _threadBinding: ThreadRuntimeCoreBinding,\n ) {\n this.composer = new EditComposerRuntimeImpl(\n new NestedSubscriptionSubject({\n path: {\n ...this.path,\n ref: `${this.path.ref}${this.path.ref}.composer`,\n composerSource: \"edit\",\n },\n getState: this._getEditComposerRuntimeCore,\n subscribe: (callback) => this._threadBinding.subscribe(callback),\n }),\n () => this._threadBinding.getState().beginEdit(this._core.getState().id),\n );\n\n this.__internal_bindMethods();\n }\n\n protected __internal_bindMethods() {\n this.reload = this.reload.bind(this);\n this.getState = this.getState.bind(this);\n this.subscribe = this.subscribe.bind(this);\n this.getMessagePartByIndex = this.getMessagePartByIndex.bind(this);\n this.getMessagePartByToolCallId =\n this.getMessagePartByToolCallId.bind(this);\n this.getAttachmentByIndex = this.getAttachmentByIndex.bind(this);\n this.unstable_getCopyText = this.unstable_getCopyText.bind(this);\n this.speak = this.speak.bind(this);\n this.stopSpeaking = this.stopSpeaking.bind(this);\n this.submitFeedback = this.submitFeedback.bind(this);\n this.switchToBranch = this.switchToBranch.bind(this);\n }\n\n public readonly composer;\n\n private _getEditComposerRuntimeCore = () => {\n return this._threadBinding\n .getState()\n .getEditComposer(this._core.getState().id);\n };\n\n public getState() {\n return this._core.getState();\n }\n\n public reload(reloadConfig: ReloadConfig = {}) {\n const editComposerRuntimeCore = this._getEditComposerRuntimeCore();\n const composerRuntimeCore =\n editComposerRuntimeCore ?? this._threadBinding.getState().composer;\n const composer = editComposerRuntimeCore ?? composerRuntimeCore;\n\n const { runConfig = composer.runConfig } = reloadConfig;\n const state = this._core.getState();\n if (state.role !== \"assistant\")\n throw new Error(\"Can only reload assistant messages\");\n\n this._threadBinding.getState().startRun({\n parentId: state.parentId,\n sourceId: state.id,\n runConfig,\n });\n }\n\n public speak() {\n const state = this._core.getState();\n return this._threadBinding.getState().speak(state.id);\n }\n\n public stopSpeaking() {\n const state = this._core.getState();\n const thread = this._threadBinding.getState();\n if (thread.speech?.messageId === state.id) {\n this._threadBinding.getState().stopSpeaking();\n } else {\n throw new Error(\"Message is not being spoken\");\n }\n }\n\n public submitFeedback({ type }: { type: \"positive\" | \"negative\" }) {\n const state = this._core.getState();\n this._threadBinding.getState().submitFeedback({\n messageId: state.id,\n type,\n });\n }\n\n public switchToBranch({\n position,\n branchId,\n }: {\n position?: \"previous\" | \"next\" | undefined;\n branchId?: string | undefined;\n }) {\n const state = this._core.getState();\n if (branchId && position) {\n throw new Error(\"May not specify both branchId and position\");\n } else if (!branchId && !position) {\n throw new Error(\"Must specify either branchId or position\");\n }\n\n const thread = this._threadBinding.getState();\n const branches = thread.getBranches(state.id);\n let targetBranch = branchId;\n if (position === \"previous\") {\n targetBranch = branches[state.branchNumber - 2];\n } else if (position === \"next\") {\n targetBranch = branches[state.branchNumber];\n }\n if (!targetBranch) throw new Error(\"Branch not found\");\n\n this._threadBinding.getState().switchToBranch(targetBranch);\n }\n\n public unstable_getCopyText() {\n return getThreadMessageText(this.getState());\n }\n\n public subscribe(callback: () => void) {\n return this._core.subscribe(callback);\n }\n\n public getMessagePartByIndex(idx: number) {\n if (idx < 0) throw new Error(\"Message part index must be >= 0\");\n return new MessagePartRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ...this.path,\n ref: `${this.path.ref}${this.path.ref}.content[${idx}]`,\n messagePartSelector: { type: \"index\", index: idx },\n },\n getState: () => {\n return getMessagePartState(this.getState(), idx);\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n this._threadBinding,\n );\n }\n\n public getMessagePartByToolCallId(toolCallId: string) {\n return new MessagePartRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ...this.path,\n ref:\n this.path.ref +\n `${this.path.ref}.content[toolCallId=${JSON.stringify(toolCallId)}]`,\n messagePartSelector: { type: \"toolCallId\", toolCallId },\n },\n getState: () => {\n const state = this._core.getState();\n const idx = state.content.findIndex(\n (part) =>\n part.type === \"tool-call\" && part.toolCallId === toolCallId,\n );\n if (idx === -1) return SKIP_UPDATE;\n return getMessagePartState(state, idx);\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n this._threadBinding,\n );\n }\n\n public getAttachmentByIndex(idx: number) {\n return new MessageAttachmentRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ...this.path,\n ref: `${this.path.ref}${this.path.ref}.attachments[${idx}]`,\n attachmentSource: \"message\",\n attachmentSelector: { type: \"index\", index: idx },\n },\n getState: () => {\n const attachments = this.getState().attachments;\n const attachment = attachments?.[idx];\n if (!attachment) return SKIP_UPDATE;\n\n return {\n ...attachment,\n source: \"message\",\n } satisfies AttachmentState & { source: \"message\" };\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n );\n }\n}\n","import {\n ThreadSuggestion,\n RuntimeCapabilities,\n ThreadRuntimeCore,\n SpeechState,\n VoiceSessionState,\n ThreadRuntimeEventType,\n StartRunConfig,\n ResumeRunConfig,\n} from \"../interfaces/thread-runtime-core\";\nimport { ExportedMessageRepository } from \"../utils/message-repository\";\nimport { ThreadMessageLike } from \"../utils/thread-message-like\";\nimport {\n MessageRuntime,\n MessageRuntimeImpl,\n MessageState,\n} from \"./message-runtime\";\nimport { NestedSubscriptionSubject } from \"../../subscribable/subscribable\";\nimport {\n ShallowMemoizeSubject,\n SKIP_UPDATE,\n} from \"../../subscribable/subscribable\";\nimport type { SubscribableWithState } from \"../../subscribable/subscribable\";\nimport {\n ThreadComposerRuntime,\n ThreadComposerRuntimeImpl,\n} from \"./composer-runtime\";\nimport {\n MessageRuntimePath,\n ThreadListItemRuntimePath,\n ThreadRuntimePath,\n} from \"./paths\";\nimport type { ThreadListItemState } from \"./bindings\";\nimport type { AppendMessage, ThreadMessage } from \"../../types/message\";\nimport type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { RunConfig } from \"../../types/message\";\nimport { EventSubscriptionSubject } from \"../../subscribable/subscribable\";\nimport { symbolInnerMessage } from \"../utils/external-store-message\";\nimport { ModelContext } from \"../../model-context/types\";\nimport {\n ChatModelRunOptions,\n ChatModelRunResult,\n} from \"../utils/chat-model-adapter\";\nimport { ReadonlyJSONValue } from \"assistant-stream/utils\";\n\nexport type CreateStartRunConfig = {\n parentId: string | null;\n sourceId?: string | null | undefined;\n runConfig?: RunConfig | undefined;\n};\n\nexport type CreateResumeRunConfig = CreateStartRunConfig & {\n stream?: (\n options: ChatModelRunOptions,\n ) => AsyncGenerator<ChatModelRunResult, void, unknown>;\n};\n\nconst toResumeRunConfig = (message: CreateResumeRunConfig): ResumeRunConfig => {\n return {\n parentId: message.parentId ?? null,\n sourceId: message.sourceId ?? null,\n runConfig: message.runConfig ?? {},\n ...(message.stream ? { stream: message.stream } : {}),\n };\n};\n\nconst toStartRunConfig = (message: CreateStartRunConfig): StartRunConfig => {\n return {\n parentId: message.parentId ?? null,\n sourceId: message.sourceId ?? null,\n runConfig: message.runConfig ?? {},\n };\n};\n\nexport type CreateAppendMessage =\n | string\n | {\n parentId?: string | null | undefined;\n sourceId?: string | null | undefined;\n role?: AppendMessage[\"role\"] | undefined;\n content: AppendMessage[\"content\"];\n attachments?: AppendMessage[\"attachments\"] | undefined;\n metadata?: AppendMessage[\"metadata\"] | undefined;\n createdAt?: Date | undefined;\n runConfig?: AppendMessage[\"runConfig\"] | undefined;\n startRun?: boolean | undefined;\n };\n\nconst toAppendMessage = (\n messages: readonly ThreadMessage[],\n message: CreateAppendMessage,\n): AppendMessage => {\n if (typeof message === \"string\") {\n return {\n createdAt: new Date(),\n parentId: messages.at(-1)?.id ?? null,\n sourceId: null,\n runConfig: {},\n role: \"user\",\n content: [{ type: \"text\", text: message }],\n attachments: [],\n metadata: { custom: {} },\n };\n }\n\n return {\n createdAt: message.createdAt ?? new Date(),\n parentId: message.parentId ?? messages.at(-1)?.id ?? null,\n sourceId: message.sourceId ?? null,\n role: message.role ?? \"user\",\n content: message.content,\n attachments: message.attachments ?? [],\n metadata: message.metadata ?? { custom: {} },\n runConfig: message.runConfig ?? {},\n startRun: message.startRun,\n } as AppendMessage;\n};\n\nexport type ThreadRuntimeCoreBinding = SubscribableWithState<\n ThreadRuntimeCore,\n ThreadRuntimePath\n> & {\n outerSubscribe(callback: () => void): Unsubscribe;\n};\n\nexport type ThreadListItemRuntimeBinding = SubscribableWithState<\n ThreadListItemState,\n ThreadListItemRuntimePath\n>;\n\nexport type ThreadState = {\n /**\n * The thread ID.\n * @deprecated This field is deprecated and will be removed in 0.12.0. Use `useThreadListItem().id` instead.\n */\n readonly threadId: string;\n\n /**\n * The thread metadata.\n *\n * @deprecated Use `useThreadListItem()` instead. This field is deprecated and will be removed in 0.12.0.\n */\n readonly metadata: ThreadListItemState;\n\n /**\n * Whether the thread is disabled. Disabled threads cannot receive new messages.\n */\n readonly isDisabled: boolean;\n\n /**\n * Whether the thread is loading its history.\n */\n readonly isLoading: boolean;\n\n /**\n * Whether the thread is running. A thread is considered running when there is an active stream connection to the backend.\n */\n readonly isRunning: boolean;\n\n /**\n * The capabilities of the thread, such as whether the thread supports editing, branch switching, etc.\n */\n readonly capabilities: RuntimeCapabilities;\n\n /**\n * The messages in the currently selected branch of the thread.\n */\n readonly messages: readonly ThreadMessage[];\n\n /**\n * The thread state.\n *\n * @deprecated This feature is experimental\n */\n readonly state: ReadonlyJSONValue;\n\n /**\n * Follow up message suggestions to show the user.\n */\n readonly suggestions: readonly ThreadSuggestion[];\n\n /**\n * Custom extra information provided by the runtime.\n */\n readonly extras: unknown;\n\n /**\n * @deprecated This API is still under active development and might change without notice.\n */\n readonly speech: SpeechState | undefined;\n\n readonly voice: VoiceSessionState | undefined;\n};\n\nexport const getThreadState = (\n runtime: ThreadRuntimeCore,\n threadListItemState: ThreadListItemState,\n): ThreadState => {\n const lastMessage = runtime.messages.at(-1);\n return Object.freeze({\n threadId: threadListItemState.id,\n metadata: threadListItemState,\n capabilities: runtime.capabilities,\n isDisabled: runtime.isDisabled,\n isLoading: runtime.isLoading,\n isRunning:\n lastMessage?.role !== \"assistant\"\n ? false\n : lastMessage.status.type === \"running\",\n messages: runtime.messages,\n state: runtime.state,\n suggestions: runtime.suggestions,\n extras: runtime.extras,\n speech: runtime.speech,\n voice: runtime.voice,\n });\n};\n\nexport type ThreadRuntime = {\n /**\n * The selector for the thread runtime.\n */\n readonly path: ThreadRuntimePath;\n\n /**\n * The thread composer runtime.\n */\n readonly composer: ThreadComposerRuntime;\n\n /**\n * Gets a snapshot of the thread state.\n */\n getState(): ThreadState;\n\n /**\n * Append a new message to the thread.\n *\n * @example ```ts\n * // append a new user message with the text \"Hello, world!\"\n * threadRuntime.append(\"Hello, world!\");\n * ```\n *\n * @example ```ts\n * // append a new assistant message with the text \"Hello, world!\"\n * threadRuntime.append({\n * role: \"assistant\",\n * content: [{ type: \"text\", text: \"Hello, world!\" }],\n * });\n * ```\n */\n append(message: CreateAppendMessage): void;\n\n /**\n * @deprecated pass an object with `parentId` instead. This will be removed in 0.12.0.\n */\n startRun(parentId: string | null): void;\n /**\n * Start a new run with the given configuration.\n * @param config The configuration for starting the run\n */\n startRun(config: CreateStartRunConfig): void;\n\n /**\n * Resume a run with the given configuration.\n * @param config The configuration for resuming the run\n **/\n resumeRun(config: CreateResumeRunConfig): void;\n\n /**\n * @deprecated Use `resumeRun` instead.\n */\n unstable_resumeRun(config: CreateResumeRunConfig): void;\n\n /**\n * Export the thread state in the external store format.\n * For AI SDK runtimes, this returns the AI SDK message format.\n * For other runtimes, this may return different formats or throw an error.\n * @returns The thread state in the external format (typed as any)\n */\n exportExternalState(): any;\n\n /**\n * Import thread state from the external store format.\n * For AI SDK runtimes, this accepts AI SDK messages.\n * For other runtimes, this may accept different formats or throw an error.\n * @param state The thread state in the external format (typed as any)\n */\n importExternalState(state: any): void;\n\n /**\n * Load external state into the thread.\n * @deprecated Use importExternalState instead. This method will be removed in 0.12.0.\n * @param state The state to load into the thread\n */\n unstable_loadExternalState(state: any): void;\n\n subscribe(callback: () => void): Unsubscribe;\n cancelRun(): void;\n getModelContext(): ModelContext;\n\n /**\n * @deprecated This method was renamed to `getModelContext`.\n */\n getModelConfig(): ModelContext;\n\n export(): ExportedMessageRepository;\n import(repository: ExportedMessageRepository): void;\n\n /**\n * Reset the thread with optional initial messages.\n *\n * @param initialMessages - Optional array of initial messages to populate the thread\n */\n reset(initialMessages?: readonly ThreadMessageLike[]): void;\n\n getMessageByIndex(idx: number): MessageRuntime;\n getMessageById(messageId: string): MessageRuntime;\n\n /**\n * @deprecated This API is still under active development and might change without notice.\n */\n stopSpeaking(): void;\n\n connectVoice(): void;\n disconnectVoice(): void;\n getVoiceVolume(): number;\n subscribeVoiceVolume(callback: () => void): Unsubscribe;\n muteVoice(): void;\n unmuteVoice(): void;\n\n unstable_on(event: ThreadRuntimeEventType, callback: () => void): Unsubscribe;\n};\n\nexport class ThreadRuntimeImpl implements ThreadRuntime {\n public get path() {\n return this._threadBinding.path;\n }\n\n public get __internal_threadBinding() {\n return this._threadBinding;\n }\n\n private readonly _threadBinding: ThreadRuntimeCoreBinding & {\n getStateState(): ThreadState;\n };\n\n constructor(\n threadBinding: ThreadRuntimeCoreBinding,\n threadListItemBinding: ThreadListItemRuntimeBinding,\n ) {\n const stateBinding = new ShallowMemoizeSubject({\n path: threadBinding.path,\n getState: () =>\n getThreadState(\n threadBinding.getState(),\n threadListItemBinding.getState(),\n ),\n subscribe: (callback) => {\n const sub1 = threadBinding.subscribe(callback);\n const sub2 = threadListItemBinding.subscribe(callback);\n return () => {\n sub1();\n sub2();\n };\n },\n });\n\n this._threadBinding = {\n path: threadBinding.path,\n getState: () => threadBinding.getState(),\n getStateState: () => stateBinding.getState(),\n outerSubscribe: (callback) => threadBinding.outerSubscribe(callback),\n subscribe: (callback) => threadBinding.subscribe(callback),\n };\n\n this.composer = new ThreadComposerRuntimeImpl(\n new NestedSubscriptionSubject({\n path: {\n ...this.path,\n ref: `${this.path.ref}.composer`,\n composerSource: \"thread\",\n },\n getState: () => this._threadBinding.getState().composer,\n subscribe: (callback) => this._threadBinding.subscribe(callback),\n }),\n );\n\n this.__internal_bindMethods();\n }\n\n protected __internal_bindMethods() {\n this.append = this.append.bind(this);\n this.resumeRun = this.resumeRun.bind(this);\n this.unstable_resumeRun = this.unstable_resumeRun.bind(this);\n this.unstable_loadExternalState =\n this.unstable_loadExternalState.bind(this);\n this.importExternalState = this.importExternalState.bind(this);\n this.exportExternalState = this.exportExternalState.bind(this);\n this.startRun = this.startRun.bind(this);\n this.cancelRun = this.cancelRun.bind(this);\n this.stopSpeaking = this.stopSpeaking.bind(this);\n this.connectVoice = this.connectVoice.bind(this);\n this.disconnectVoice = this.disconnectVoice.bind(this);\n this.muteVoice = this.muteVoice.bind(this);\n this.unmuteVoice = this.unmuteVoice.bind(this);\n this.getVoiceVolume = this.getVoiceVolume.bind(this);\n this.subscribeVoiceVolume = this.subscribeVoiceVolume.bind(this);\n this.export = this.export.bind(this);\n this.import = this.import.bind(this);\n this.reset = this.reset.bind(this);\n this.getMessageByIndex = this.getMessageByIndex.bind(this);\n this.getMessageById = this.getMessageById.bind(this);\n this.subscribe = this.subscribe.bind(this);\n this.unstable_on = this.unstable_on.bind(this);\n this.getModelContext = this.getModelContext.bind(this);\n this.getModelConfig = this.getModelConfig.bind(this);\n this.getState = this.getState.bind(this);\n }\n\n public readonly composer;\n\n public getState() {\n return this._threadBinding.getStateState();\n }\n\n public append(message: CreateAppendMessage) {\n this._threadBinding\n .getState()\n .append(\n toAppendMessage(this._threadBinding.getState().messages, message),\n );\n }\n\n public subscribe(callback: () => void) {\n return this._threadBinding.subscribe(callback);\n }\n\n public getModelContext() {\n return this._threadBinding.getState().getModelContext();\n }\n\n public getModelConfig() {\n return this.getModelContext();\n }\n\n public startRun(configOrParentId: string | null | CreateStartRunConfig) {\n const config =\n configOrParentId === null || typeof configOrParentId === \"string\"\n ? { parentId: configOrParentId }\n : configOrParentId;\n return this._threadBinding.getState().startRun(toStartRunConfig(config));\n }\n\n public resumeRun(config: CreateResumeRunConfig) {\n return this._threadBinding.getState().resumeRun(toResumeRunConfig(config));\n }\n\n /** @deprecated Use `resumeRun` instead. */\n public unstable_resumeRun(config: CreateResumeRunConfig) {\n return this.resumeRun(config);\n }\n\n public exportExternalState() {\n return this._threadBinding.getState().exportExternalState();\n }\n\n public importExternalState(state: any) {\n this._threadBinding.getState().importExternalState(state);\n }\n\n public unstable_loadExternalState(state: any) {\n this._threadBinding.getState().unstable_loadExternalState(state);\n }\n\n public cancelRun() {\n this._threadBinding.getState().cancelRun();\n }\n\n public stopSpeaking() {\n return this._threadBinding.getState().stopSpeaking();\n }\n\n public connectVoice() {\n this._threadBinding.getState().connectVoice();\n }\n\n public disconnectVoice() {\n this._threadBinding.getState().disconnectVoice();\n }\n\n public getVoiceVolume() {\n return this._threadBinding.getState().getVoiceVolume();\n }\n\n public subscribeVoiceVolume(callback: () => void) {\n return this._threadBinding.getState().subscribeVoiceVolume(callback);\n }\n\n public muteVoice() {\n this._threadBinding.getState().muteVoice();\n }\n\n public unmuteVoice() {\n this._threadBinding.getState().unmuteVoice();\n }\n\n public export() {\n return this._threadBinding.getState().export();\n }\n\n public import(data: ExportedMessageRepository) {\n this._threadBinding.getState().import(data);\n }\n\n public reset(initialMessages?: readonly ThreadMessageLike[]) {\n this._threadBinding.getState().reset(initialMessages);\n }\n\n public getMessageByIndex(idx: number) {\n if (idx < 0) throw new Error(\"Message index must be >= 0\");\n\n return this._getMessageRuntime(\n {\n ...this.path,\n ref: `${this.path.ref}.messages[${idx}]`,\n messageSelector: { type: \"index\", index: idx },\n },\n () => {\n const messages = this._threadBinding.getState().messages;\n const message = messages[idx];\n if (!message) return undefined;\n return {\n message,\n parentId: messages[idx - 1]?.id ?? null,\n index: idx,\n };\n },\n );\n }\n\n public getMessageById(messageId: string) {\n return this._getMessageRuntime(\n {\n ...this.path,\n ref: `${this.path.ref}.messages[messageId=${JSON.stringify(messageId)}]`,\n messageSelector: { type: \"messageId\", messageId: messageId },\n },\n () => this._threadBinding.getState().getMessageById(messageId),\n );\n }\n\n private _getMessageRuntime(\n path: MessageRuntimePath,\n callback: () =>\n | { parentId: string | null; message: ThreadMessage; index: number }\n | undefined,\n ) {\n return new MessageRuntimeImpl(\n new ShallowMemoizeSubject({\n path,\n getState: () => {\n const { message, parentId, index } = callback() ?? {};\n\n const { messages, speech: speechState } =\n this._threadBinding.getState();\n\n if (!message || parentId === undefined || index === undefined)\n return SKIP_UPDATE;\n\n const thread = this._threadBinding.getState();\n\n const branches = thread.getBranches(message.id);\n const submittedFeedback = message.metadata.submittedFeedback;\n\n return {\n ...message,\n ...{ [symbolInnerMessage]: (message as any)[symbolInnerMessage] },\n\n index,\n isLast: messages.at(-1)?.id === message.id,\n parentId,\n\n branchNumber: branches.indexOf(message.id) + 1,\n branchCount: branches.length,\n\n speech:\n speechState?.messageId === message.id ? speechState : undefined,\n\n submittedFeedback,\n } satisfies MessageState;\n },\n subscribe: (callback) => this._threadBinding.subscribe(callback),\n }),\n this._threadBinding,\n );\n }\n\n private _eventSubscriptionSubjects = new Map<\n string,\n EventSubscriptionSubject<ThreadRuntimeEventType>\n >();\n\n public unstable_on(\n event: ThreadRuntimeEventType,\n callback: () => void,\n ): Unsubscribe {\n let subject = this._eventSubscriptionSubjects.get(event);\n if (!subject) {\n subject = new EventSubscriptionSubject({\n event: event,\n binding: this._threadBinding,\n });\n this._eventSubscriptionSubjects.set(event, subject);\n }\n return subject.subscribe(callback);\n }\n}\n","import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport {\n LazyMemoizeSubject,\n NestedSubscriptionSubject,\n} from \"../../subscribable/subscribable\";\nimport {\n SKIP_UPDATE,\n ShallowMemoizeSubject,\n} from \"../../subscribable/subscribable\";\nimport type { ThreadListRuntimeCore } from \"../interfaces/thread-list-runtime-core\";\nimport {\n ThreadListItemRuntime,\n ThreadListItemRuntimeImpl,\n ThreadListItemState,\n} from \"./thread-list-item-runtime\";\nimport {\n ThreadListItemRuntimeBinding,\n ThreadRuntime,\n ThreadRuntimeCoreBinding,\n ThreadRuntimeImpl,\n} from \"./thread-runtime\";\n\nexport type ThreadListState = {\n readonly mainThreadId: string;\n readonly newThreadId: string | undefined;\n readonly threadIds: readonly string[];\n readonly archivedThreadIds: readonly string[];\n readonly isLoading: boolean;\n readonly threadItems: Readonly<\n Record<string, Omit<ThreadListItemState, \"isMain\" | \"threadId\">>\n >;\n};\n\nexport type ThreadListRuntime = {\n getState(): ThreadListState;\n\n subscribe(callback: () => void): Unsubscribe;\n\n readonly main: ThreadRuntime;\n getById(threadId: string): ThreadRuntime;\n\n readonly mainItem: ThreadListItemRuntime;\n getItemById(threadId: string): ThreadListItemRuntime;\n getItemByIndex(idx: number): ThreadListItemRuntime;\n getArchivedItemByIndex(idx: number): ThreadListItemRuntime;\n\n switchToThread(threadId: string): Promise<void>;\n switchToNewThread(): Promise<void>;\n\n getLoadThreadsPromise(): Promise<void>;\n};\n\nconst getThreadListState = (\n threadList: ThreadListRuntimeCore,\n): ThreadListState => {\n return {\n mainThreadId: threadList.mainThreadId,\n newThreadId: threadList.newThreadId,\n threadIds: threadList.threadIds,\n archivedThreadIds: threadList.archivedThreadIds,\n isLoading: threadList.isLoading,\n threadItems: threadList.threadItems,\n };\n};\n\nconst getThreadListItemState = (\n threadList: ThreadListRuntimeCore,\n threadId: string | undefined,\n): ThreadListItemState | SKIP_UPDATE => {\n if (threadId === undefined) return SKIP_UPDATE;\n\n const threadData = threadList.getItemById(threadId);\n if (!threadData) return SKIP_UPDATE;\n return {\n id: threadData.id,\n remoteId: threadData.remoteId,\n externalId: threadData.externalId,\n title: threadData.title,\n status: threadData.status,\n isMain: threadData.id === threadList.mainThreadId,\n };\n};\n\nexport type ThreadListRuntimeCoreBinding = ThreadListRuntimeCore;\n\nexport class ThreadListRuntimeImpl implements ThreadListRuntime {\n private _getState;\n constructor(\n private _core: ThreadListRuntimeCoreBinding,\n private _runtimeFactory: new (\n binding: ThreadRuntimeCoreBinding,\n threadListItemBinding: ThreadListItemRuntimeBinding,\n ) => ThreadRuntime = ThreadRuntimeImpl,\n ) {\n const stateBinding = new LazyMemoizeSubject({\n path: {},\n getState: () => getThreadListState(_core),\n subscribe: (callback) => _core.subscribe(callback),\n });\n\n this._getState = stateBinding.getState.bind(stateBinding);\n\n this._mainThreadListItemRuntime = new ThreadListItemRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ref: `threadItems[main]`,\n threadSelector: { type: \"main\" },\n },\n getState: () => {\n return getThreadListItemState(this._core, this._core.mainThreadId);\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n\n this.main = new _runtimeFactory(\n new NestedSubscriptionSubject({\n path: {\n ref: \"threads.main\",\n threadSelector: { type: \"main\" },\n },\n getState: () => _core.getMainThreadRuntimeCore(),\n subscribe: (callback) => _core.subscribe(callback),\n }),\n this._mainThreadListItemRuntime,\n );\n\n this.__internal_bindMethods();\n }\n\n protected __internal_bindMethods() {\n this.switchToThread = this.switchToThread.bind(this);\n this.switchToNewThread = this.switchToNewThread.bind(this);\n this.getLoadThreadsPromise = this.getLoadThreadsPromise.bind(this);\n this.getState = this.getState.bind(this);\n this.subscribe = this.subscribe.bind(this);\n this.getById = this.getById.bind(this);\n this.getItemById = this.getItemById.bind(this);\n this.getItemByIndex = this.getItemByIndex.bind(this);\n this.getArchivedItemByIndex = this.getArchivedItemByIndex.bind(this);\n }\n\n public switchToThread(threadId: string): Promise<void> {\n return this._core.switchToThread(threadId);\n }\n\n public switchToNewThread(): Promise<void> {\n return this._core.switchToNewThread();\n }\n\n public getLoadThreadsPromise(): Promise<void> {\n return this._core.getLoadThreadsPromise();\n }\n\n public getState(): ThreadListState {\n return this._getState();\n }\n\n public subscribe(callback: () => void): Unsubscribe {\n return this._core.subscribe(callback);\n }\n\n private _mainThreadListItemRuntime;\n\n public readonly main: ThreadRuntime;\n\n public get mainItem() {\n return this._mainThreadListItemRuntime;\n }\n\n public getById(threadId: string) {\n return new this._runtimeFactory(\n new NestedSubscriptionSubject({\n path: {\n ref: `threads[threadId=${JSON.stringify(threadId)}]`,\n threadSelector: { type: \"threadId\", threadId },\n },\n getState: () => this._core.getThreadRuntimeCore(threadId),\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this.mainItem,\n );\n }\n\n public getItemByIndex(idx: number) {\n return new ThreadListItemRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ref: `threadItems[${idx}]`,\n threadSelector: { type: \"index\", index: idx },\n },\n getState: () => {\n return getThreadListItemState(this._core, this._core.threadIds[idx]);\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n\n public getArchivedItemByIndex(idx: number) {\n return new ThreadListItemRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ref: `archivedThreadItems[${idx}]`,\n threadSelector: { type: \"archiveIndex\", index: idx },\n },\n getState: () => {\n return getThreadListItemState(\n this._core,\n this._core.archivedThreadIds[idx],\n );\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n\n public getItemById(threadId: string) {\n return new ThreadListItemRuntimeImpl(\n new ShallowMemoizeSubject({\n path: {\n ref: `threadItems[threadId=${threadId}]`,\n threadSelector: { type: \"threadId\", threadId },\n },\n getState: () => {\n return getThreadListItemState(this._core, threadId);\n },\n subscribe: (callback) => this._core.subscribe(callback),\n }),\n this._core,\n );\n }\n}\n","import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { ModelContextProvider } from \"../../model-context/types\";\nimport type { AssistantRuntimeCore } from \"../interfaces/assistant-runtime-core\";\nimport type { ThreadRuntime } from \"./thread-runtime\";\nimport {\n ThreadListRuntime,\n ThreadListRuntimeImpl,\n} from \"./thread-list-runtime\";\nimport { ExportedMessageRepository } from \"../utils/message-repository\";\nimport type { ThreadMessageLike } from \"../utils/thread-message-like\";\n\nexport type AssistantRuntime = {\n /**\n * The threads in this assistant.\n */\n readonly threads: ThreadListRuntime;\n\n /**\n * The currently selected main thread. Equivalent to `threads.main`.\n */\n readonly thread: ThreadRuntime;\n\n /**\n * @deprecated This field was renamed to `threads`.\n */\n readonly threadList: ThreadListRuntime;\n\n /**\n * Switch to a new thread.\n *\n * @deprecated This method was moved to `threads.switchToNewThread`.\n */\n switchToNewThread(): void;\n\n /**\n * Switch to a thread.\n *\n * @param threadId The thread ID to switch to.\n * @deprecated This method was moved to `threads.switchToThread`.\n */\n switchToThread(threadId: string): void;\n\n /**\n * Register a model context provider. Model context providers are configuration such as system message, temperature, etc. that are set in the frontend.\n *\n * @param provider The model context provider to register.\n */\n registerModelContextProvider(provider: ModelContextProvider): Unsubscribe;\n\n /**\n * @deprecated This method was renamed to `registerModelContextProvider`.\n */\n registerModelConfigProvider(provider: ModelContextProvider): Unsubscribe;\n\n /**\n * @deprecated Use `runtime.thread.reset(initialMessages)`.\n */\n reset: unknown; // make it a type error\n};\n\nexport class AssistantRuntimeImpl implements AssistantRuntime {\n public readonly threads;\n public get threadList() {\n return this.threads;\n }\n\n public readonly _thread: ThreadRuntime;\n\n public constructor(private readonly _core: AssistantRuntimeCore) {\n this.threads = new ThreadListRuntimeImpl(_core.threads);\n this._thread = this.threads.main;\n\n this.__internal_bindMethods();\n }\n\n protected __internal_bindMethods() {\n this.switchToNewThread = this.switchToNewThread.bind(this);\n this.switchToThread = this.switchToThread.bind(this);\n this.registerModelContextProvider =\n this.registerModelContextProvider.bind(this);\n this.registerModelConfigProvider =\n this.registerModelConfigProvider.bind(this);\n this.reset = this.reset.bind(this);\n }\n\n public get thread() {\n return this._thread;\n }\n\n public switchToNewThread() {\n return this._core.threads.switchToNewThread();\n }\n\n public switchToThread(threadId: string) {\n return this._core.threads.switchToThread(threadId);\n }\n\n public registerModelContextProvider(provider: ModelContextProvider) {\n return this._core.registerModelContextProvider(provider);\n }\n\n public registerModelConfigProvider(provider: ModelContextProvider) {\n return this.registerModelContextProvider(provider);\n }\n\n public reset({\n initialMessages,\n }: {\n initialMessages?: ThreadMessageLike[];\n } = {}) {\n return this._core.threads\n .getMainThreadRuntimeCore()\n .import(ExportedMessageRepository.fromArray(initialMessages ?? []));\n }\n}\n","import { resource, tapResource } from \"@assistant-ui/tap\";\nimport type { AssistantRuntime } from \"..\";\nimport {\n RuntimeAdapterResource,\n baseRuntimeAdapterTransformScopes,\n} from \"../store/internal\";\nimport { attachTransformScopes } from \"@assistant-ui/store\";\nimport { DataRenderers } from \"./client/DataRenderers\";\nimport { Tools } from \"./client/Tools\";\n\nexport const RuntimeAdapter = resource((runtime: AssistantRuntime) =>\n tapResource(RuntimeAdapterResource(runtime)),\n);\n\nattachTransformScopes(RuntimeAdapter, (scopes, parent) => {\n baseRuntimeAdapterTransformScopes(scopes, parent);\n\n if (!scopes.tools && parent.tools.source === null) {\n scopes.tools = Tools({});\n }\n\n if (!scopes.dataRenderers && parent.dataRenderers.source === null) {\n scopes.dataRenderers = DataRenderers();\n }\n});\n","import { createContext, FC, ReactNode, useContext } from \"react\";\nimport type { ThreadHistoryAdapter } from \"../../adapters/thread-history\";\nimport type { AttachmentAdapter } from \"../../adapters/attachment\";\nimport type { ModelContextProvider } from \"../../model-context/types\";\n\nexport type RuntimeAdapters = {\n modelContext?: ModelContextProvider | undefined;\n history?: ThreadHistoryAdapter | undefined;\n attachments?: AttachmentAdapter | undefined;\n};\n\nconst RuntimeAdaptersContext = createContext<RuntimeAdapters | null>(null);\n\nexport namespace RuntimeAdapterProvider {\n export type Props = {\n adapters: RuntimeAdapters;\n children: ReactNode;\n };\n}\n\nexport const RuntimeAdapterProvider: FC<RuntimeAdapterProvider.Props> = ({\n adapters,\n children,\n}) => {\n const context = useContext(RuntimeAdaptersContext);\n return (\n <RuntimeAdaptersContext.Provider\n value={{\n ...context,\n ...adapters,\n }}\n >\n {children}\n </RuntimeAdaptersContext.Provider>\n );\n};\n\nexport const useRuntimeAdapters = () => {\n return useContext(RuntimeAdaptersContext);\n};\n","\"use client\";\n\nimport { useEffect, useMemo, useState } from \"react\";\nimport { ExternalStoreRuntimeCore } from \"../../runtimes/internal\";\nimport type { ExternalStoreAdapter } from \"../../runtimes/external-store/external-store-adapter\";\nimport type { AssistantRuntime } from \"../../runtime/api/assistant-runtime\";\nimport { AssistantRuntimeImpl } from \"../../runtime/internal\";\nimport { useRuntimeAdapters } from \"./RuntimeAdapterProvider\";\n\nexport const useExternalStoreRuntime = <T>(\n store: ExternalStoreAdapter<T>,\n): AssistantRuntime => {\n const [runtime] = useState(() => new ExternalStoreRuntimeCore(store));\n\n useEffect(() => {\n runtime.setAdapter(store);\n });\n\n const { modelContext } = useRuntimeAdapters() ?? {};\n\n useEffect(() => {\n if (!modelContext) return undefined;\n return runtime.registerModelContextProvider(modelContext);\n }, [modelContext, runtime]);\n\n return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);\n};\n","import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { ExternalStoreThreadRuntimeCore } from \"./external-store-thread-runtime-core\";\nimport type {\n ThreadListItemCoreState,\n ThreadListRuntimeCore,\n} from \"../../runtime/interfaces/thread-list-runtime-core\";\nimport type { ExternalStoreThreadListAdapter } from \"./external-store-adapter\";\n\nexport type ExternalStoreThreadFactory = () => ExternalStoreThreadRuntimeCore;\n\nconst EMPTY_ARRAY = Object.freeze([]);\nconst DEFAULT_THREAD_ID = \"DEFAULT_THREAD_ID\";\nconst DEFAULT_THREADS = Object.freeze([DEFAULT_THREAD_ID]);\nconst DEFAULT_THREAD = Object.freeze({\n id: DEFAULT_THREAD_ID,\n remoteId: undefined,\n externalId: undefined,\n status: \"regular\",\n});\nconst RESOLVED_PROMISE = Promise.resolve();\nconst DEFAULT_THREAD_DATA = Object.freeze({\n [DEFAULT_THREAD_ID]: DEFAULT_THREAD,\n});\n\nexport class ExternalStoreThreadListRuntimeCore\n implements ThreadListRuntimeCore\n{\n private _mainThreadId: string = DEFAULT_THREAD_ID;\n private _threads: readonly string[] = DEFAULT_THREADS;\n private _archivedThreads: readonly string[] = EMPTY_ARRAY;\n private _threadData: Readonly<Record<string, ThreadListItemCoreState>> =\n DEFAULT_THREAD_DATA;\n\n public get isLoading() {\n return this.adapter.isLoading ?? false;\n }\n\n public get newThreadId() {\n return undefined;\n }\n\n public get threadIds() {\n return this._threads;\n }\n\n public get archivedThreadIds() {\n return this._archivedThreads;\n }\n\n public get threadItems() {\n return this._threadData;\n }\n\n public getLoadThreadsPromise() {\n return RESOLVED_PROMISE;\n }\n\n private _mainThread: ExternalStoreThreadRuntimeCore;\n\n public get mainThreadId() {\n return this._mainThreadId;\n }\n\n constructor(\n private adapter: ExternalStoreThreadListAdapter = {},\n private threadFactory: ExternalStoreThreadFactory,\n ) {\n this._mainThread = this.threadFactory();\n this.__internal_setAdapter(adapter, true);\n }\n\n public getMainThreadRuntimeCore() {\n return this._mainThread;\n }\n\n public getThreadRuntimeCore(): never {\n throw new Error(\"Method not implemented.\");\n }\n\n public getItemById(threadId: string) {\n for (const thread of this.adapter.threads ?? []) {\n if (thread.id === threadId) return thread as any;\n }\n for (const thread of this.adapter.archivedThreads ?? []) {\n if (thread.id === threadId) return thread as any;\n }\n if (threadId === DEFAULT_THREAD_ID) return DEFAULT_THREAD;\n return undefined;\n }\n\n public __internal_setAdapter(\n adapter: ExternalStoreThreadListAdapter,\n initialLoad = false,\n ) {\n const previousAdapter = this.adapter;\n this.adapter = adapter;\n\n const newThreadId = adapter.threadId ?? DEFAULT_THREAD_ID;\n const newThreads = adapter.threads ?? EMPTY_ARRAY;\n const newArchivedThreads = adapter.archivedThreads ?? EMPTY_ARRAY;\n\n const previousThreadId = previousAdapter.threadId ?? DEFAULT_THREAD_ID;\n const previousThreads = previousAdapter.threads ?? EMPTY_ARRAY;\n const previousArchivedThreads =\n previousAdapter.archivedThreads ?? EMPTY_ARRAY;\n\n if (\n !initialLoad &&\n previousThreadId === newThreadId &&\n previousThreads === newThreads &&\n previousArchivedThreads === newArchivedThreads\n ) {\n return;\n }\n\n this._threadData = {\n ...DEFAULT_THREAD_DATA,\n ...Object.fromEntries(\n adapter.threads?.map((t) => [\n t.id,\n {\n ...t,\n remoteId: t.remoteId,\n externalId: t.externalId,\n status: \"regular\",\n },\n ]) ?? [],\n ),\n ...Object.fromEntries(\n adapter.archivedThreads?.map((t) => [\n t.id,\n {\n ...t,\n remoteId: t.remoteId,\n externalId: t.externalId,\n status: \"archived\",\n },\n ]) ?? [],\n ),\n };\n\n if (previousThreads !== newThreads) {\n this._threads = this.adapter.threads?.map((t) => t.id) ?? EMPTY_ARRAY;\n }\n\n if (previousArchivedThreads !== newArchivedThreads) {\n this._archivedThreads =\n this.adapter.archivedThreads?.map((t) => t.id) ?? EMPTY_ARRAY;\n }\n\n if (previousThreadId !== newThreadId) {\n this._mainThreadId = newThreadId;\n this._mainThread = this.threadFactory();\n }\n\n this._notifySubscribers();\n }\n\n public async switchToThread(threadId: string): Promise<void> {\n if (this._mainThreadId === threadId) return;\n const onSwitchToThread = this.adapter.onSwitchToThread;\n if (!onSwitchToThread)\n throw new Error(\n \"External store adapter does not support switching to thread\",\n );\n await onSwitchToThread(threadId);\n }\n\n public async switchToNewThread(): Promise<void> {\n const onSwitchToNewThread = this.adapter.onSwitchToNewThread;\n if (!onSwitchToNewThread)\n throw new Error(\n \"External store adapter does not support switching to new thread\",\n );\n\n await onSwitchToNewThread();\n }\n\n public async rename(threadId: string, newTitle: string): Promise<void> {\n const onRename = this.adapter.onRename;\n if (!onRename)\n throw new Error(\"External store adapter does not support renaming\");\n\n await onRename(threadId, newTitle);\n }\n\n public async detach(): Promise<void> {\n // no-op\n }\n\n public async archive(threadId: string): Promise<void> {\n const onArchive = this.adapter.onArchive;\n if (!onArchive)\n throw new Error(\"External store adapter does not support archiving\");\n\n await onArchive(threadId);\n }\n\n public async unarchive(threadId: string): Promise<void> {\n const onUnarchive = this.adapter.onUnarchive;\n if (!onUnarchive)\n throw new Error(\"External store adapter does not support unarchiving\");\n\n await onUnarchive(threadId);\n }\n\n public async delete(threadId: string): Promise<void> {\n const onDelete = this.adapter.onDelete;\n if (!onDelete)\n throw new Error(\"External store adapter does not support deleting\");\n\n await onDelete(threadId);\n }\n\n public initialize(\n threadId: string,\n ): Promise<{ remoteId: string; externalId: string | undefined }> {\n return Promise.resolve({ remoteId: threadId, externalId: undefined });\n }\n\n public generateTitle(): never {\n throw new Error(\"Method not implemented.\");\n }\n\n private _subscriptions = new Set<() => void>();\n\n public subscribe(callback: () => void): Unsubscribe {\n this._subscriptions.add(callback);\n return () => this._subscriptions.delete(callback);\n }\n\n private _notifySubscribers() {\n for (const callback of this._subscriptions) callback();\n }\n}\n","import type { ThreadMessage } from \"../../types/message\";\n\nexport type ConverterCallback<TIn> = (\n cache: ThreadMessage | undefined,\n message: TIn,\n idx: number,\n) => ThreadMessage;\n\nexport class ThreadMessageConverter {\n private readonly cache = new WeakMap<WeakKey, ThreadMessage>();\n\n convertMessages<TIn extends WeakKey>(\n messages: readonly TIn[],\n converter: ConverterCallback<TIn>,\n ): ThreadMessage[] {\n return messages.map((m, idx) => {\n const cached = this.cache.get(m);\n const newMessage = converter(cached, m, idx);\n this.cache.set(m, newMessage);\n return newMessage;\n });\n }\n}\n","import type { AppendMessage, ThreadMessage } from \"../../types/message\";\nimport type {\n AddToolResultOptions,\n ResumeRunConfig,\n ResumeToolCallOptions,\n StartRunConfig,\n ThreadSuggestion,\n} from \"../../runtime/interfaces/thread-runtime-core\";\n\nimport type { ExternalStoreAdapter } from \"./external-store-adapter\";\nimport {\n getExternalStoreMessages,\n bindExternalStoreMessage,\n} from \"../../runtime/utils/external-store-message\";\nimport { ThreadMessageConverter } from \"./thread-message-converter\";\nimport { getAutoStatus, isAutoStatus } from \"../../runtime/utils/auto-status\";\nimport {\n fromThreadMessageLike,\n type ThreadMessageLike,\n} from \"../../runtime/utils/thread-message-like\";\nimport { getThreadMessageText } from \"../../utils/text\";\nimport type {\n RuntimeCapabilities,\n ThreadRuntimeCore,\n} from \"../../runtime/interfaces/thread-runtime-core\";\nimport { BaseThreadRuntimeCore } from \"../../runtime/base/base-thread-runtime-core\";\nimport type { ModelContextProvider } from \"../../model-context/types\";\nimport {\n ExportedMessageRepository,\n MessageRepository,\n} from \"../../runtime/utils/message-repository\";\n\nconst EMPTY_ARRAY: readonly ThreadSuggestion[] = Object.freeze([]);\n\nconst shallowEqual = (a: object, b: object): boolean => {\n const aKeys = Object.keys(a);\n if (aKeys.length !== Object.keys(b).length) return false;\n for (const key of aKeys) {\n if ((a as any)[key] !== (b as any)[key]) return false;\n }\n return true;\n};\n\nexport const hasUpcomingMessage = (\n isRunning: boolean,\n messages: readonly ThreadMessage[],\n) => {\n return isRunning && messages[messages.length - 1]?.role !== \"assistant\";\n};\n\nexport class ExternalStoreThreadRuntimeCore\n extends BaseThreadRuntimeCore\n implements ThreadRuntimeCore\n{\n private _assistantOptimisticId: string | null = null;\n\n private _capabilities: RuntimeCapabilities = {\n switchToBranch: false,\n switchBranchDuringRun: false,\n edit: false,\n reload: false,\n cancel: false,\n unstable_copy: false,\n speech: false,\n dictation: false,\n voice: false,\n attachments: false,\n feedback: false,\n queue: false,\n };\n\n public get capabilities() {\n return this._capabilities;\n }\n\n private _messages!: readonly ThreadMessage[];\n public isDisabled!: boolean;\n public get isLoading() {\n return this._store.isLoading ?? false;\n }\n\n protected override _getBaseMessages(): readonly ThreadMessage[] {\n return this._messages;\n }\n\n public override get state() {\n return this._store.state ?? super.state;\n }\n\n public get adapters() {\n return this._store.adapters;\n }\n\n public suggestions: readonly ThreadSuggestion[] = [];\n public extras: unknown = undefined;\n\n private _converter = new ThreadMessageConverter();\n\n private _store!: ExternalStoreAdapter<any>;\n\n public override beginEdit(messageId: string) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing.\");\n\n super.beginEdit(messageId);\n }\n\n constructor(\n contextProvider: ModelContextProvider,\n store: ExternalStoreAdapter<any>,\n ) {\n super(contextProvider);\n this.__internal_setAdapter(store);\n }\n\n public __internal_setAdapter(store: ExternalStoreAdapter<any>) {\n if (this._store === store) return;\n\n const isRunning = store.isRunning ?? false;\n this.isDisabled = store.isDisabled ?? false;\n\n const oldStore = this._store as ExternalStoreAdapter<any> | undefined;\n this._store = store;\n if (this.extras !== store.extras) {\n this.extras = store.extras;\n }\n\n const newSuggestions = store.suggestions ?? EMPTY_ARRAY;\n if (!shallowEqual(this.suggestions, newSuggestions)) {\n this.suggestions = newSuggestions;\n }\n\n const newCapabilities: RuntimeCapabilities = {\n switchToBranch: this._store.setMessages !== undefined,\n switchBranchDuringRun: false,\n edit: this._store.onEdit !== undefined,\n reload: this._store.onReload !== undefined,\n cancel: this._store.onCancel !== undefined,\n speech: this._store.adapters?.speech !== undefined,\n dictation: this._store.adapters?.dictation !== undefined,\n voice: this._store.adapters?.voice !== undefined,\n unstable_copy: this._store.unstable_capabilities?.copy !== false,\n attachments: !!this._store.adapters?.attachments,\n feedback: !!this._store.adapters?.feedback,\n queue: false,\n };\n if (!shallowEqual(this._capabilities, newCapabilities)) {\n this._capabilities = newCapabilities;\n }\n\n let messages: readonly ThreadMessage[];\n\n if (store.messageRepository) {\n // Handle messageRepository\n if (\n oldStore &&\n oldStore.isRunning === store.isRunning &&\n oldStore.messageRepository === store.messageRepository\n ) {\n this._notifySubscribers();\n return;\n }\n\n // Clear and import the message repository\n this.repository.clear();\n this._assistantOptimisticId = null;\n this.repository.import(store.messageRepository);\n\n messages = this.repository.getMessages();\n } else if (store.messages) {\n // Handle messages array\n\n if (oldStore) {\n // flush the converter cache when the convertMessage prop changes\n if (oldStore.convertMessage !== store.convertMessage) {\n this._converter = new ThreadMessageConverter();\n } else if (\n oldStore.isRunning === store.isRunning &&\n oldStore.messages === store.messages\n ) {\n this._notifySubscribers();\n // no conversion update\n return;\n }\n }\n\n messages = !store.convertMessage\n ? store.messages\n : this._converter.convertMessages(store.messages, (cache, m, idx) => {\n if (!store.convertMessage) return m;\n\n const isLast = idx === (store.messages?.length ?? 0) - 1;\n const autoStatus = getAutoStatus(\n isLast,\n isRunning,\n false,\n false,\n undefined,\n );\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n )\n return cache;\n\n const messageLike = store.convertMessage(m, idx);\n const newMessage = fromThreadMessageLike(\n messageLike,\n idx.toString(),\n autoStatus,\n );\n bindExternalStoreMessage(newMessage, m);\n return newMessage;\n });\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]!;\n const parent = messages[i - 1];\n this.repository.addOrUpdateMessage(parent?.id ?? null, message);\n }\n } else {\n throw new Error(\n \"ExternalStoreAdapter must provide either 'messages' or 'messageRepository'\",\n );\n }\n\n // Common logic for both paths\n if (messages.length > 0) this.ensureInitialized();\n\n if ((oldStore?.isRunning ?? false) !== (store.isRunning ?? false)) {\n if (store.isRunning) {\n this._notifyEventSubscribers(\"runStart\");\n } else {\n this._notifyEventSubscribers(\"runEnd\");\n }\n }\n\n if (this._assistantOptimisticId) {\n this.repository.deleteMessage(this._assistantOptimisticId);\n this._assistantOptimisticId = null;\n }\n\n if (hasUpcomingMessage(isRunning, messages)) {\n this._assistantOptimisticId = this.repository.appendOptimisticMessage(\n messages.at(-1)?.id ?? null,\n {\n role: \"assistant\",\n content: [],\n },\n );\n }\n\n this.repository.resetHead(\n this._assistantOptimisticId ?? messages.at(-1)?.id ?? null,\n );\n\n this._messages = this.repository.getMessages();\n this._notifySubscribers();\n }\n\n public override switchToBranch(branchId: string): void {\n if (!this._store.setMessages)\n throw new Error(\"Runtime does not support switching branches.\");\n\n // Silently ignore branch switches while running\n if (this._store.isRunning) {\n return;\n }\n\n this.repository.switchToBranch(branchId);\n this.updateMessages(this.repository.getMessages());\n }\n\n public async append(message: AppendMessage): Promise<void> {\n if (message.parentId !== (this.messages.at(-1)?.id ?? null)) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing messages.\");\n await this._store.onEdit(message);\n } else {\n await this._store.onNew(message);\n }\n }\n\n public async startRun(config: StartRunConfig): Promise<void> {\n if (!this._store.onReload)\n throw new Error(\"Runtime does not support reloading messages.\");\n\n await this._store.onReload(config.parentId, config);\n }\n\n public async resumeRun(config: ResumeRunConfig): Promise<void> {\n if (!this._store.onResume)\n throw new Error(\"Runtime does not support resuming runs.\");\n\n await this._store.onResume(config);\n }\n\n public exportExternalState(): any {\n if (!this._store.onExportExternalState)\n throw new Error(\"Runtime does not support exporting external states.\");\n\n return this._store.onExportExternalState();\n }\n\n public importExternalState(state: any): void {\n if (!this._store.onLoadExternalState)\n throw new Error(\"Runtime does not support importing external states.\");\n\n this._store.onLoadExternalState(state);\n }\n\n public unstable_loadExternalState(state: any): void {\n this.importExternalState(state);\n }\n\n public cancelRun(): void {\n if (!this._store.onCancel)\n throw new Error(\"Runtime does not support cancelling runs.\");\n\n this._store.onCancel();\n\n if (this._assistantOptimisticId) {\n this.repository.deleteMessage(this._assistantOptimisticId);\n this._assistantOptimisticId = null;\n }\n\n let messages = this.repository.getMessages();\n const previousMessage = messages[messages.length - 1];\n if (\n previousMessage?.role === \"user\" &&\n previousMessage.id === messages.at(-1)?.id // ensure the previous message is a leaf node\n ) {\n this.repository.deleteMessage(previousMessage.id);\n if (!this.composer.text.trim()) {\n this.composer.setText(getThreadMessageText(previousMessage));\n }\n\n messages = this.repository.getMessages();\n } else {\n this._notifySubscribers();\n }\n\n // resync messages (for reloading, to restore the previous branch)\n setTimeout(() => {\n this.updateMessages(messages);\n }, 0);\n }\n\n public addToolResult(options: AddToolResultOptions) {\n if (!this._store.onAddToolResult && !this._store.onAddToolResult)\n throw new Error(\"Runtime does not support tool results.\");\n this._store.onAddToolResult?.(options);\n }\n\n public resumeToolCall(options: ResumeToolCallOptions) {\n if (!this._store.onResumeToolCall)\n throw new Error(\"Runtime does not support resuming tool calls.\");\n this._store.onResumeToolCall(options);\n }\n\n public override reset(initialMessages?: readonly ThreadMessageLike[]) {\n const repo = new MessageRepository();\n repo.import(ExportedMessageRepository.fromArray(initialMessages ?? []));\n this.updateMessages(repo.getMessages());\n }\n\n public override import(data: ExportedMessageRepository) {\n this._assistantOptimisticId = null;\n\n super.import(data);\n\n if (this._store.onImport) {\n this._store.onImport(this.repository.getMessages());\n }\n }\n\n private updateMessages = (messages: readonly ThreadMessage[]) => {\n const hasConverter = this._store.convertMessage !== undefined;\n if (hasConverter) {\n this._store.setMessages?.(messages.flatMap(getExternalStoreMessages));\n } else {\n // TODO mark this as readonly in v0.12.0\n this._store.setMessages?.(messages as ThreadMessage[]);\n }\n };\n}\n","import { BaseAssistantRuntimeCore } from \"../../runtime/base/base-assistant-runtime-core\";\nimport { ExternalStoreThreadListRuntimeCore } from \"./external-store-thread-list-runtime-core\";\nimport type { ExternalStoreAdapter } from \"./external-store-adapter\";\nimport { ExternalStoreThreadRuntimeCore } from \"./external-store-thread-runtime-core\";\n\nconst getThreadListAdapter = (store: ExternalStoreAdapter<any>) => {\n return store.adapters?.threadList ?? {};\n};\n\nexport class ExternalStoreRuntimeCore extends BaseAssistantRuntimeCore {\n public readonly threads;\n\n constructor(adapter: ExternalStoreAdapter<any>) {\n super();\n this.threads = new ExternalStoreThreadListRuntimeCore(\n getThreadListAdapter(adapter),\n () => new ExternalStoreThreadRuntimeCore(this._contextProvider, adapter),\n );\n }\n\n public setAdapter(adapter: ExternalStoreAdapter<any>) {\n // Update the thread list adapter and propagate store changes to the main thread\n this.threads.__internal_setAdapter(getThreadListAdapter(adapter));\n this.threads.getMainThreadRuntimeCore().__internal_setAdapter(adapter);\n }\n}\n","import {\n memo,\n type ComponentType,\n type FC,\n type PropsWithChildren,\n} from \"react\";\nimport { useAui, AuiProvider, type AssistantClient } from \"@assistant-ui/store\";\nimport type { AssistantRuntime } from \"../runtime/api/assistant-runtime\";\nimport type { AssistantRuntimeCore } from \"../runtime/interfaces/assistant-runtime-core\";\nimport { RuntimeAdapter } from \"./RuntimeAdapter\";\n\nexport const getRenderComponent = (runtime: AssistantRuntime) => {\n return (runtime as { _core?: AssistantRuntimeCore })._core?.RenderComponent as\n | ComponentType\n | undefined;\n};\n\nexport type AssistantProviderBaseProps = PropsWithChildren<{\n runtime: AssistantRuntime;\n aui?: AssistantClient | null;\n}>;\n\nexport const AssistantProviderBase: FC<AssistantProviderBaseProps> = memo(\n ({ runtime, aui: parent = null, children }) => {\n const aui = useAui({ threads: RuntimeAdapter(runtime) }, { parent });\n const RenderComponent = getRenderComponent(runtime);\n return (\n <AuiProvider value={aui}>\n {RenderComponent && <RenderComponent />}\n {children}\n </AuiProvider>\n );\n },\n);\n","import {\n type ComponentType,\n type FC,\n type ReactNode,\n memo,\n useMemo,\n} from \"react\";\nimport { RenderChildrenWithAccessor, useAuiState } from \"@assistant-ui/store\";\nimport { MessageByIndexProvider } from \"../../providers/MessageByIndexProvider\";\nimport { MessageState } from \"../../../store\";\n\ntype MessagesComponentConfig =\n | {\n /** Component used to render all message types */\n Message: ComponentType;\n /** Component used when editing any message type */\n EditComposer?: ComponentType | undefined;\n /** Component used when editing user messages specifically */\n UserEditComposer?: ComponentType | undefined;\n /** Component used when editing assistant messages specifically */\n AssistantEditComposer?: ComponentType | undefined;\n /** Component used when editing system messages specifically */\n SystemEditComposer?: ComponentType | undefined;\n /** Component used to render user messages specifically */\n UserMessage?: ComponentType | undefined;\n /** Component used to render assistant messages specifically */\n AssistantMessage?: ComponentType | undefined;\n /** Component used to render system messages specifically */\n SystemMessage?: ComponentType | undefined;\n }\n | {\n /** Component used to render all message types (fallback) */\n Message?: ComponentType | undefined;\n /** Component used when editing any message type */\n EditComposer?: ComponentType | undefined;\n /** Component used when editing user messages specifically */\n UserEditComposer?: ComponentType | undefined;\n /** Component used when editing assistant messages specifically */\n AssistantEditComposer?: ComponentType | undefined;\n /** Component used when editing system messages specifically */\n SystemEditComposer?: ComponentType | undefined;\n /** Component used to render user messages */\n UserMessage: ComponentType;\n /** Component used to render assistant messages */\n AssistantMessage: ComponentType;\n /** Component used to render system messages */\n SystemMessage?: ComponentType | undefined;\n };\n\nexport namespace ThreadPrimitiveMessages {\n export type Props =\n | {\n /** @deprecated Use the children render function instead. */\n components: MessagesComponentConfig;\n children?: never;\n }\n | {\n /** Render function called for each message. Receives the message. */\n children: (value: { message: MessageState }) => ReactNode;\n components?: never;\n };\n}\n\nconst isComponentsSame = (\n prev: MessagesComponentConfig,\n next: MessagesComponentConfig,\n) => {\n return (\n prev.Message === next.Message &&\n prev.EditComposer === next.EditComposer &&\n prev.UserEditComposer === next.UserEditComposer &&\n prev.AssistantEditComposer === next.AssistantEditComposer &&\n prev.SystemEditComposer === next.SystemEditComposer &&\n prev.UserMessage === next.UserMessage &&\n prev.AssistantMessage === next.AssistantMessage &&\n prev.SystemMessage === next.SystemMessage\n );\n};\n\nconst DEFAULT_SYSTEM_MESSAGE = () => null;\n\nconst getComponent = (\n components: MessagesComponentConfig,\n role: MessageState[\"role\"],\n isEditing: boolean,\n) => {\n switch (role) {\n case \"user\":\n if (isEditing) {\n return (\n components.UserEditComposer ??\n components.EditComposer ??\n components.UserMessage ??\n (components.Message as ComponentType)\n );\n } else {\n return components.UserMessage ?? (components.Message as ComponentType);\n }\n case \"assistant\":\n if (isEditing) {\n return (\n components.AssistantEditComposer ??\n components.EditComposer ??\n components.AssistantMessage ??\n (components.Message as ComponentType)\n );\n } else {\n return (\n components.AssistantMessage ?? (components.Message as ComponentType)\n );\n }\n case \"system\":\n if (isEditing) {\n return (\n components.SystemEditComposer ??\n components.EditComposer ??\n components.SystemMessage ??\n (components.Message as ComponentType)\n );\n } else {\n return (\n components.SystemMessage ??\n (components.Message as ComponentType) ??\n DEFAULT_SYSTEM_MESSAGE\n );\n }\n default:\n const _exhaustiveCheck: never = role;\n throw new Error(`Unknown message role: ${_exhaustiveCheck}`);\n }\n};\n\ntype ThreadMessageComponentProps = {\n components: MessagesComponentConfig;\n};\n\nconst ThreadMessageComponent: FC<ThreadMessageComponentProps> = ({\n components,\n}) => {\n const role = useAuiState((s) => s.message.role);\n const isEditing = useAuiState((s) => s.message.composer.isEditing);\n const Component = getComponent(components, role, isEditing);\n\n return <Component />;\n};\nexport namespace ThreadPrimitiveMessageByIndex {\n export type Props = {\n index: number;\n components: MessagesComponentConfig;\n };\n}\n\n/**\n * Renders a single message at the specified index in the current thread.\n */\nexport const ThreadPrimitiveMessageByIndex: FC<ThreadPrimitiveMessageByIndex.Props> =\n memo(\n ({ index, components }) => {\n return (\n <MessageByIndexProvider index={index}>\n <ThreadMessageComponent components={components} />\n </MessageByIndexProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index &&\n isComponentsSame(prev.components, next.components),\n );\n\nThreadPrimitiveMessageByIndex.displayName = \"ThreadPrimitive.MessageByIndex\";\n\nconst ThreadPrimitiveMessagesInner: FC<{\n children: (value: { message: MessageState }) => ReactNode;\n}> = ({ children }) => {\n const messagesLength = useAuiState((s) => s.thread.messages.length);\n\n return useMemo(() => {\n if (messagesLength === 0) return null;\n return Array.from({ length: messagesLength }, (_, index) => (\n <MessageByIndexProvider key={index} index={index}>\n <RenderChildrenWithAccessor\n getItemState={(aui) => aui.thread().message({ index }).getState()}\n >\n {(getItem) =>\n children({\n get message() {\n return getItem();\n },\n })\n }\n </RenderChildrenWithAccessor>\n </MessageByIndexProvider>\n ));\n }, [messagesLength, children]);\n};\n\n/**\n * Renders all messages in the current thread.\n *\n * @example\n * ```tsx\n * <ThreadPrimitive.Messages>\n * {({ message }) => {\n * if (message.role === \"user\") return <MyUserMessage />;\n * return <MyAssistantMessage />;\n * }}\n * </ThreadPrimitive.Messages>\n * ```\n */\nexport const ThreadPrimitiveMessagesImpl: FC<ThreadPrimitiveMessages.Props> = ({\n components,\n children,\n}) => {\n if (components) {\n return (\n <ThreadPrimitiveMessagesInner>\n {() => <ThreadMessageComponent components={components} />}\n </ThreadPrimitiveMessagesInner>\n );\n }\n return (\n <ThreadPrimitiveMessagesInner>{children}</ThreadPrimitiveMessagesInner>\n );\n};\n\nThreadPrimitiveMessagesImpl.displayName = \"ThreadPrimitive.Messages\";\n\nexport const ThreadPrimitiveMessages = memo(\n ThreadPrimitiveMessagesImpl,\n (prev, next) => {\n if (prev.children || next.children) {\n return prev.children === next.children;\n }\n return isComponentsSame(prev.components!, next.components!);\n },\n);\n","import {\n type ComponentType,\n type FC,\n type ReactNode,\n memo,\n PropsWithChildren,\n useMemo,\n} from \"react\";\nimport {\n RenderChildrenWithAccessor,\n useAuiState,\n useAui,\n} from \"@assistant-ui/store\";\nimport type { PartState } from \"../../../store/scopes/part\";\nimport { PartByIndexProvider } from \"../../providers/PartByIndexProvider\";\nimport { TextMessagePartProvider } from \"../../providers/TextMessagePartProvider\";\nimport { ChainOfThoughtByIndicesProvider } from \"../../providers/ChainOfThoughtByIndicesProvider\";\nimport { getMessageQuote } from \"../../utils/getMessageQuote\";\nimport type {\n Unstable_AudioMessagePartComponent,\n DataMessagePartComponent,\n DataMessagePartProps,\n EmptyMessagePartComponent,\n TextMessagePartComponent,\n ImageMessagePartComponent,\n SourceMessagePartComponent,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n FileMessagePartComponent,\n ReasoningMessagePartComponent,\n ReasoningGroupComponent,\n QuoteMessagePartComponent,\n} from \"../../types/MessagePartComponentTypes\";\nimport type { MessagePartStatus } from \"../../../types/message\";\nimport { useShallow } from \"zustand/shallow\";\n\ntype MessagePartRange =\n | { type: \"single\"; index: number }\n | { type: \"toolGroup\"; startIndex: number; endIndex: number }\n | { type: \"reasoningGroup\"; startIndex: number; endIndex: number }\n | { type: \"chainOfThoughtGroup\"; startIndex: number; endIndex: number };\n\n/**\n * Creates a group state manager for a specific part type.\n * Returns functions to start, end, and finalize groups.\n */\nconst createGroupState = <\n T extends \"toolGroup\" | \"reasoningGroup\" | \"chainOfThoughtGroup\",\n>(\n groupType: T,\n) => {\n let start = -1;\n\n return {\n startGroup: (index: number) => {\n if (start === -1) {\n start = index;\n }\n },\n endGroup: (endIndex: number, ranges: MessagePartRange[]) => {\n if (start !== -1) {\n ranges.push({\n type: groupType,\n startIndex: start,\n endIndex,\n } as MessagePartRange);\n start = -1;\n }\n },\n finalize: (endIndex: number, ranges: MessagePartRange[]) => {\n if (start !== -1) {\n ranges.push({\n type: groupType,\n startIndex: start,\n endIndex,\n } as MessagePartRange);\n }\n },\n };\n};\n\n/**\n * Groups consecutive tool-call and reasoning message parts into ranges.\n * Always groups tool calls and reasoning parts, even if there's only one.\n * When useChainOfThought is true, groups tool-call and reasoning parts together.\n */\nconst groupMessageParts = (\n messageTypes: readonly string[],\n useChainOfThought: boolean,\n): MessagePartRange[] => {\n const ranges: MessagePartRange[] = [];\n\n if (useChainOfThought) {\n const chainOfThoughtGroup = createGroupState(\"chainOfThoughtGroup\");\n\n for (let i = 0; i < messageTypes.length; i++) {\n const type = messageTypes[i];\n\n if (type === \"tool-call\" || type === \"reasoning\") {\n chainOfThoughtGroup.startGroup(i);\n } else {\n chainOfThoughtGroup.endGroup(i - 1, ranges);\n ranges.push({ type: \"single\", index: i });\n }\n }\n\n chainOfThoughtGroup.finalize(messageTypes.length - 1, ranges);\n } else {\n const toolGroup = createGroupState(\"toolGroup\");\n const reasoningGroup = createGroupState(\"reasoningGroup\");\n\n for (let i = 0; i < messageTypes.length; i++) {\n const type = messageTypes[i];\n\n if (type === \"tool-call\") {\n reasoningGroup.endGroup(i - 1, ranges);\n toolGroup.startGroup(i);\n } else if (type === \"reasoning\") {\n toolGroup.endGroup(i - 1, ranges);\n reasoningGroup.startGroup(i);\n } else {\n toolGroup.endGroup(i - 1, ranges);\n reasoningGroup.endGroup(i - 1, ranges);\n ranges.push({ type: \"single\", index: i });\n }\n }\n\n toolGroup.finalize(messageTypes.length - 1, ranges);\n reasoningGroup.finalize(messageTypes.length - 1, ranges);\n }\n\n return ranges;\n};\n\nconst useMessagePartsGroups = (\n useChainOfThought: boolean,\n): MessagePartRange[] => {\n const messageTypes = useAuiState(\n useShallow((s) => s.message.parts.map((c: any) => c.type)),\n );\n\n return useMemo(() => {\n if (messageTypes.length === 0) {\n return [];\n }\n return groupMessageParts(messageTypes, useChainOfThought);\n }, [messageTypes, useChainOfThought]);\n};\n\nexport namespace MessagePrimitiveParts {\n type DataConfig = {\n /** Map data event names to specific components */\n by_name?: Record<string, DataMessagePartComponent | undefined> | undefined;\n /** Fallback component for unmatched data events */\n Fallback?: DataMessagePartComponent | undefined;\n };\n\n type BaseComponents = {\n /** Component for rendering empty messages */\n Empty?: EmptyMessagePartComponent | undefined;\n /** Component for rendering text content */\n Text?: TextMessagePartComponent | undefined;\n /** Component for rendering source content */\n Source?: SourceMessagePartComponent | undefined;\n /** Component for rendering image content */\n Image?: ImageMessagePartComponent | undefined;\n /** Component for rendering file content */\n File?: FileMessagePartComponent | undefined;\n /** Component for rendering audio content (experimental) */\n Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;\n /** Configuration for data part rendering */\n data?: DataConfig | undefined;\n /** Component for rendering a quoted message reference (from metadata, not parts) */\n Quote?: QuoteMessagePartComponent | undefined;\n };\n\n type ToolsConfig =\n | {\n /** Map of tool names to their specific components */\n by_name?:\n | Record<string, ToolCallMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unregistered tools */\n Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;\n }\n | {\n /** Override component that handles all tool calls */\n Override: ComponentType<ToolCallMessagePartProps>;\n };\n\n /**\n * Standard component configuration for rendering reasoning and tool-call parts\n * individually (with optional grouping).\n *\n * Cannot be combined with `ChainOfThought`.\n */\n type StandardComponents = BaseComponents & {\n /** Component for rendering reasoning content (typically hidden) */\n Reasoning?: ReasoningMessagePartComponent | undefined;\n /** Configuration for tool call rendering */\n tools?: ToolsConfig | undefined;\n\n /**\n * Component for rendering grouped consecutive tool calls.\n *\n * @param startIndex - Index of the first tool call in the group\n * @param endIndex - Index of the last tool call in the group\n * @param children - Rendered tool call components to display within the group\n *\n * @deprecated This feature is still experimental and subject to change.\n */\n ToolGroup?: ComponentType<\n PropsWithChildren<{ startIndex: number; endIndex: number }>\n >;\n\n /**\n * Component for rendering grouped reasoning parts.\n *\n * @param startIndex - Index of the first reasoning part in the group\n * @param endIndex - Index of the last reasoning part in the group\n * @param children - Rendered reasoning part components\n */\n ReasoningGroup?: ReasoningGroupComponent;\n\n ChainOfThought?: never;\n };\n\n /**\n * Chain of thought component configuration.\n *\n * When `ChainOfThought` is set, it takes control of rendering ALL reasoning and\n * tool-call parts in the message. The `Reasoning`, `tools`, `ReasoningGroup`, and\n * `ToolGroup` components cannot be used alongside it.\n */\n type ChainOfThoughtComponents = BaseComponents & {\n ChainOfThought: ComponentType;\n\n Reasoning?: never;\n tools?: never;\n ToolGroup?: never;\n ReasoningGroup?: never;\n };\n\n export type Props =\n | {\n /**\n * Component configuration for rendering different types of message content.\n *\n * Use either `Reasoning`/`tools`/`ToolGroup`/`ReasoningGroup` for standard rendering,\n * or `ChainOfThought` to group all reasoning and tool-call parts into a single\n * collapsible component. These two modes are mutually exclusive.\n */\n components?: StandardComponents | ChainOfThoughtComponents | undefined;\n /**\n * When enabled, shows the Empty component if the last part in the message\n * is anything other than Text or Reasoning.\n *\n * @experimental This API is experimental and may change in future versions.\n * @default true\n */\n unstable_showEmptyOnNonTextEnd?: boolean | undefined;\n children?: never;\n }\n | {\n /** Render function called for each part. Receives the enriched part state. */\n children: (value: { part: EnrichedPartState }) => ReactNode;\n components?: never;\n unstable_showEmptyOnNonTextEnd?: never;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallMessagePartComponent | undefined;\n} & ToolCallMessagePartProps) => {\n const Render = useAuiState((s) => {\n const Render = s.tools.tools[props.toolName] ?? Fallback;\n if (Array.isArray(Render)) return Render[0] ?? Fallback;\n return Render;\n });\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst DataUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: DataMessagePartComponent | undefined;\n} & DataMessagePartProps) => {\n const Render = useAuiState((s) => {\n const Render = s.dataRenderers.renderers[props.name] ?? Fallback;\n if (Array.isArray(Render)) return Render[0] ?? Fallback;\n return Render;\n });\n if (!Render) return null;\n return <Render {...props} />;\n};\n\n/**\n * Platform-agnostic no-op default components.\n * Each platform (web, RN) wraps MessagePrimitiveParts with its own defaults.\n */\nexport const defaultComponents = {\n Text: () => null,\n Reasoning: () => null,\n Source: () => null,\n Image: () => null,\n File: () => null,\n Unstable_Audio: () => null,\n ToolGroup: ({ children }: PropsWithChildren) => children,\n ReasoningGroup: ({ children }: PropsWithChildren) => children,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\ntype MessagePartComponentProps = {\n components: MessagePrimitiveParts.Props[\"components\"];\n};\n\nexport const MessagePartComponent: FC<MessagePartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Reasoning = defaultComponents.Reasoning,\n Image = defaultComponents.Image,\n Source = defaultComponents.Source,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n data,\n } = {},\n}) => {\n const aui = useAui();\n const part = useAuiState((s) => s.part);\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = aui.part().addToolResult;\n const resume = aui.part().resumeToolCall;\n if (\"Override\" in tools)\n return <tools.Override {...part} addResult={addResult} resume={resume} />;\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return (\n <ToolUIDisplay\n {...part}\n Fallback={Tool}\n addResult={addResult}\n resume={resume}\n />\n );\n }\n\n if (part.status?.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n return <Text {...part} />;\n\n case \"reasoning\":\n return <Reasoning {...part} />;\n\n case \"source\":\n return <Source {...part} />;\n\n case \"image\":\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n case \"data\": {\n const Data = data?.by_name?.[part.name] ?? data?.Fallback;\n return <DataUIDisplay {...part} Fallback={Data} />;\n }\n\n default:\n console.warn(`Unknown message part type: ${type}`);\n return null;\n }\n};\n\nexport namespace MessagePrimitivePartByIndex {\n export type Props = {\n index: number;\n components: MessagePrimitiveParts.Props[\"components\"];\n };\n}\n\n/**\n * Renders a single message part at the specified index.\n */\nexport const MessagePrimitivePartByIndex: FC<MessagePrimitivePartByIndex.Props> =\n memo(\n ({ index, components }) => {\n return (\n <PartByIndexProvider index={index}>\n <MessagePartComponent components={components} />\n </PartByIndexProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Reasoning === next.components?.Reasoning &&\n prev.components?.Source === next.components?.Source &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.tools === next.components?.tools &&\n prev.components?.data === next.components?.data &&\n prev.components?.ToolGroup === next.components?.ToolGroup &&\n prev.components?.ReasoningGroup === next.components?.ReasoningGroup,\n );\n\nMessagePrimitivePartByIndex.displayName = \"MessagePrimitive.PartByIndex\";\n\nconst EmptyPartFallback: FC<{\n status: MessagePartStatus;\n component: TextMessagePartComponent;\n}> = ({ status, component: Component }) => {\n return (\n <TextMessagePartProvider text=\"\" isRunning={status.type === \"running\"}>\n <Component type=\"text\" text=\"\" status={status} />\n </TextMessagePartProvider>\n );\n};\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst EmptyPartsImpl: FC<MessagePartComponentProps> = ({ components }) => {\n const status = useAuiState(\n (s) => (s.message.status ?? COMPLETE_STATUS) as MessagePartStatus,\n );\n\n if (components?.Empty) return <components.Empty status={status} />;\n\n if (status.type !== \"running\") return null;\n\n return (\n <EmptyPartFallback\n status={status}\n component={components?.Text ?? defaultComponents.Text}\n />\n );\n};\n\nconst EmptyParts = memo(\n EmptyPartsImpl,\n (prev, next) =>\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\nconst ConditionalEmptyImpl: FC<{\n components: MessagePrimitiveParts.Props[\"components\"];\n enabled: boolean;\n}> = ({ components, enabled }) => {\n const shouldShowEmpty = useAuiState((s) => {\n if (!enabled) return false;\n if (s.message.parts.length === 0) return false;\n\n const lastPart = s.message.parts[s.message.parts.length - 1];\n return lastPart?.type !== \"text\" && lastPart?.type !== \"reasoning\";\n });\n\n if (!shouldShowEmpty) return null;\n return <EmptyParts components={components} />;\n};\n\nconst ConditionalEmpty = memo(\n ConditionalEmptyImpl,\n (prev, next) =>\n prev.enabled === next.enabled &&\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\nconst QuoteRendererImpl: FC<{ Quote: QuoteMessagePartComponent }> = ({\n Quote,\n}) => {\n const quoteInfo = useAuiState(getMessageQuote);\n if (!quoteInfo) return null;\n return <Quote text={quoteInfo.text} messageId={quoteInfo.messageId} />;\n};\n\nconst QuoteRenderer = memo(QuoteRendererImpl);\n\n/**\n * Stable propless component that renders the registered tool UI for the\n * current part context. Reads tool registry and part state from context.\n */\nconst RegisteredToolUI: FC = () => {\n const aui = useAui();\n const part = useAuiState((s) => s.part);\n const Render = useAuiState((s) => {\n if (s.part.type !== \"tool-call\") return null;\n const entry = s.tools.tools[s.part.toolName];\n if (Array.isArray(entry)) return entry[0] ?? null;\n return entry ?? null;\n });\n\n if (!Render || part.type !== \"tool-call\") return null;\n\n return (\n <Render\n {...part}\n addResult={aui.part().addToolResult}\n resume={aui.part().resumeToolCall}\n />\n );\n};\n\n/**\n * Stable propless component that renders the registered data renderer UI\n * for the current part context.\n */\nconst RegisteredDataRendererUI: FC = () => {\n const part = useAuiState((s) => s.part);\n const Render = useAuiState((s) => {\n if (s.part.type !== \"data\") return null;\n const entry = s.dataRenderers.renderers[s.part.name];\n if (Array.isArray(entry)) return entry[0] ?? null;\n return entry ?? null;\n });\n\n if (!Render || part.type !== \"data\") return null;\n\n return <Render {...(part as DataMessagePartProps)} />;\n};\n\n/**\n * Fallback component rendered when the children render function returns null.\n * Renders registered tool/data UIs via context.\n * For all other part types, renders nothing.\n *\n * This allows users to write:\n * {({ part }) => {\n * if (part.type === \"text\") return <MyText />;\n * return null; // tool UIs and data UIs still render via registry\n * }}\n *\n * To explicitly render nothing (suppressing registered UIs), return <></>.\n */\nconst DefaultPartFallback: FC = () => {\n const partType = useAuiState((s) => s.part.type);\n\n if (partType === \"tool-call\") return <RegisteredToolUI />;\n if (partType === \"data\") return <RegisteredDataRendererUI />;\n\n return null;\n};\n\nexport type { PartState };\n\n/**\n * Enriched part state passed to children render functions.\n *\n * For tool-call parts, adds `toolUI`, `addResult`, and `resume`.\n * For data parts, adds `dataRendererUI`.\n */\nexport type EnrichedPartState =\n | (Extract<PartState, { type: \"tool-call\" }> & {\n /** The registered tool UI element, or null if none registered. */\n readonly toolUI: ReactNode;\n /** Add a tool result to this tool call. */\n addResult: ToolCallMessagePartProps[\"addResult\"];\n /** Resume a tool call waiting for human input. */\n resume: ToolCallMessagePartProps[\"resume\"];\n })\n | (Extract<PartState, { type: \"data\" }> & {\n /** The registered data renderer UI element, or null if none registered. */\n readonly dataRendererUI: ReactNode;\n })\n | Exclude<PartState, { type: \"tool-call\" } | { type: \"data\" }>;\n\nconst MessagePrimitivePartsInner: FC<{\n children: (value: { part: EnrichedPartState }) => ReactNode;\n}> = ({ children }) => {\n const aui = useAui();\n const contentLength = useAuiState((s) => s.message.parts.length);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: aui accessors are stable refs\n return useMemo(\n () =>\n Array.from({ length: contentLength }, (_, index) => (\n <PartByIndexProvider key={index} index={index}>\n <RenderChildrenWithAccessor\n getItemState={(aui) => aui.message().part({ index }).getState()}\n >\n {(getItem) => {\n const result = children({\n get part() {\n const state = getItem();\n if (state.type === \"tool-call\") {\n const entry = aui.tools().getState().tools[state.toolName];\n const hasUI = Array.isArray(entry) ? !!entry[0] : !!entry;\n const partMethods = aui.message().part({ index });\n return {\n ...state,\n toolUI: hasUI ? <RegisteredToolUI /> : null,\n addResult: partMethods.addToolResult,\n resume: partMethods.resumeToolCall,\n };\n }\n if (state.type === \"data\") {\n const entry = aui.dataRenderers().getState().renderers[\n state.name\n ];\n const hasUI = Array.isArray(entry) ? !!entry[0] : !!entry;\n return {\n ...state,\n dataRendererUI: hasUI ? (\n <RegisteredDataRendererUI />\n ) : null,\n };\n }\n return state;\n },\n });\n if (result !== null) return result;\n return <DefaultPartFallback />;\n }}\n </RenderChildrenWithAccessor>\n </PartByIndexProvider>\n )),\n [contentLength, children],\n );\n};\n\n/**\n * Renders the parts of a message with support for multiple content types.\n *\n * This is the platform-agnostic base. Each platform wraps this with its own\n * default components (web uses `<p>`, `<span>`; RN would use `<Text>`, etc.).\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = ({\n components,\n unstable_showEmptyOnNonTextEnd = true,\n children,\n}) => {\n if (children) {\n return <MessagePrimitivePartsInner>{children}</MessagePrimitivePartsInner>;\n }\n return (\n <MessagePrimitivePartsCompat\n components={components}\n unstable_showEmptyOnNonTextEnd={unstable_showEmptyOnNonTextEnd}\n />\n );\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n\nconst MessagePrimitivePartsCompat: FC<{\n components: MessagePrimitiveParts.Props[\"components\"];\n unstable_showEmptyOnNonTextEnd: boolean;\n}> = ({ components, unstable_showEmptyOnNonTextEnd }) => {\n const contentLength = useAuiState((s) => s.message.parts.length);\n const useChainOfThought = !!components?.ChainOfThought;\n const messageRanges = useMessagePartsGroups(useChainOfThought);\n\n const partsElements = useMemo(() => {\n if (contentLength === 0) {\n return <EmptyParts components={components} />;\n }\n\n return messageRanges.map((range) => {\n if (range.type === \"single\") {\n return (\n <MessagePrimitivePartByIndex\n key={range.index}\n index={range.index}\n components={components}\n />\n );\n } else if (range.type === \"chainOfThoughtGroup\") {\n const ChainOfThoughtComponent = components?.ChainOfThought;\n if (!ChainOfThoughtComponent) return null;\n return (\n <ChainOfThoughtByIndicesProvider\n key={`chainOfThought-${range.startIndex}`}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n <ChainOfThoughtComponent />\n </ChainOfThoughtByIndicesProvider>\n );\n } else if (range.type === \"toolGroup\") {\n const ToolGroupComponent =\n components?.ToolGroup ?? defaultComponents.ToolGroup;\n return (\n <ToolGroupComponent\n key={`tool-${range.startIndex}`}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n {Array.from(\n { length: range.endIndex - range.startIndex + 1 },\n (_, i) => (\n <MessagePrimitivePartByIndex\n key={i}\n index={range.startIndex + i}\n components={components}\n />\n ),\n )}\n </ToolGroupComponent>\n );\n } else {\n // reasoningGroup\n const ReasoningGroupComponent =\n components?.ReasoningGroup ?? defaultComponents.ReasoningGroup;\n return (\n <ReasoningGroupComponent\n key={`reasoning-${range.startIndex}`}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n {Array.from(\n { length: range.endIndex - range.startIndex + 1 },\n (_, i) => (\n <MessagePrimitivePartByIndex\n key={i}\n index={range.startIndex + i}\n components={components}\n />\n ),\n )}\n </ReasoningGroupComponent>\n );\n }\n });\n }, [messageRanges, components, contentLength]);\n\n return (\n <>\n {components?.Quote && <QuoteRenderer Quote={components.Quote} />}\n {partsElements}\n <ConditionalEmpty\n components={components}\n enabled={unstable_showEmptyOnNonTextEnd}\n />\n </>\n );\n};\n","import type { QuoteInfo } from \"../../types/quote\";\n\ntype MessageQuoteState = {\n message: {\n metadata?: unknown;\n };\n};\n\nexport const getMessageQuote = (\n state: MessageQuoteState,\n): QuoteInfo | undefined => {\n const metadata = state.message.metadata;\n if (!metadata || typeof metadata !== \"object\") return undefined;\n\n return (metadata as { custom?: Record<string, unknown> }).custom?.quote as\n | QuoteInfo\n | undefined;\n};\n","const isIterable = (obj) => Symbol.iterator in obj;\nconst hasIterableEntries = (value) => (\n // HACK: avoid checking entries type\n \"entries\" in value\n);\nconst compareEntries = (valueA, valueB) => {\n const mapA = valueA instanceof Map ? valueA : new Map(valueA.entries());\n const mapB = valueB instanceof Map ? valueB : new Map(valueB.entries());\n if (mapA.size !== mapB.size) {\n return false;\n }\n for (const [key, value] of mapA) {\n if (!mapB.has(key) || !Object.is(value, mapB.get(key))) {\n return false;\n }\n }\n return true;\n};\nconst compareIterables = (valueA, valueB) => {\n const iteratorA = valueA[Symbol.iterator]();\n const iteratorB = valueB[Symbol.iterator]();\n let nextA = iteratorA.next();\n let nextB = iteratorB.next();\n while (!nextA.done && !nextB.done) {\n if (!Object.is(nextA.value, nextB.value)) {\n return false;\n }\n nextA = iteratorA.next();\n nextB = iteratorB.next();\n }\n return !!nextA.done && !!nextB.done;\n};\nfunction shallow(valueA, valueB) {\n if (Object.is(valueA, valueB)) {\n return true;\n }\n if (typeof valueA !== \"object\" || valueA === null || typeof valueB !== \"object\" || valueB === null) {\n return false;\n }\n if (Object.getPrototypeOf(valueA) !== Object.getPrototypeOf(valueB)) {\n return false;\n }\n if (isIterable(valueA) && isIterable(valueB)) {\n if (hasIterableEntries(valueA) && hasIterableEntries(valueB)) {\n return compareEntries(valueA, valueB);\n }\n return compareIterables(valueA, valueB);\n }\n return compareEntries(\n { entries: () => Object.entries(valueA) },\n { entries: () => Object.entries(valueB) }\n );\n}\n\nexport { shallow };\n","import React from 'react';\nimport { shallow } from 'zustand/vanilla/shallow';\n\nfunction useShallow(selector) {\n const prev = React.useRef(void 0);\n return (state) => {\n const next = selector(state);\n return shallow(prev.current, next) ? prev.current : prev.current = next;\n };\n}\n\nexport { useShallow };\n","import { type FC, type ReactNode, memo } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { getMessageQuote } from \"../../utils/getMessageQuote\";\nimport type { QuoteInfo } from \"../../../types/quote\";\n\nexport namespace MessagePrimitiveQuote {\n export type Props = {\n /** Render function called when a quote is present. Receives quote info. */\n children: (value: QuoteInfo) => ReactNode;\n };\n}\n\n/**\n * Renders a quote block if the message has quote metadata.\n * Place this above `MessagePrimitive.Parts` in your message layout.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.Quote>\n * {({ text, messageId }) => <QuoteBlock text={text} messageId={messageId} />}\n * </MessagePrimitive.Quote>\n * <MessagePrimitive.Parts>\n * {({ part }) => { ... }}\n * </MessagePrimitive.Parts>\n * ```\n */\nconst MessagePrimitiveQuoteImpl: FC<MessagePrimitiveQuote.Props> = ({\n children,\n}) => {\n const quoteInfo = useAuiState(getMessageQuote);\n if (!quoteInfo) return null;\n return <>{children(quoteInfo)}</>;\n};\n\nexport const MessagePrimitiveQuote = memo(MessagePrimitiveQuoteImpl);\n\nMessagePrimitiveQuote.displayName = \"MessagePrimitive.Quote\";\n","import type { CompleteAttachment } from \"../../../types/attachment\";\nimport { ComponentType, type FC, type ReactNode, memo, useMemo } from \"react\";\nimport { RenderChildrenWithAccessor, useAuiState } from \"@assistant-ui/store\";\nimport { MessageAttachmentByIndexProvider } from \"../../providers/AttachmentByIndexProvider\";\n\ntype MessageAttachmentsComponentConfig = {\n Image?: ComponentType | undefined;\n Document?: ComponentType | undefined;\n File?: ComponentType | undefined;\n Attachment?: ComponentType | undefined;\n};\n\nexport namespace MessagePrimitiveAttachments {\n export type Props =\n | {\n /** @deprecated Use the children render function instead. */\n components: MessageAttachmentsComponentConfig;\n children?: never;\n }\n | {\n /** Render function called for each attachment. Receives the attachment. */\n children: (value: { attachment: CompleteAttachment }) => ReactNode;\n components?: never;\n };\n}\n\nconst getComponent = (\n components: MessageAttachmentsComponentConfig | undefined,\n attachment: CompleteAttachment,\n) => {\n const type = attachment.type;\n switch (type) {\n case \"image\":\n return components?.Image ?? components?.Attachment;\n case \"document\":\n return components?.Document ?? components?.Attachment;\n case \"file\":\n return components?.File ?? components?.Attachment;\n default:\n return components?.Attachment;\n }\n};\n\nconst AttachmentComponent: FC<{\n components: MessageAttachmentsComponentConfig | undefined;\n}> = ({ components }) => {\n const attachment = useAuiState((s) => s.attachment);\n if (!attachment) return null;\n\n const Component = getComponent(components, attachment as CompleteAttachment);\n if (!Component) return null;\n return <Component />;\n};\n\nexport namespace MessagePrimitiveAttachmentByIndex {\n export type Props = {\n index: number;\n components?: MessageAttachmentsComponentConfig;\n };\n}\n\n/**\n * Renders a single attachment at the specified index within the current message.\n */\nexport const MessagePrimitiveAttachmentByIndex: FC<MessagePrimitiveAttachmentByIndex.Props> =\n memo(\n ({ index, components }) => {\n return (\n <MessageAttachmentByIndexProvider index={index}>\n <AttachmentComponent components={components} />\n </MessageAttachmentByIndexProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.Document === next.components?.Document &&\n prev.components?.File === next.components?.File &&\n prev.components?.Attachment === next.components?.Attachment,\n );\n\nMessagePrimitiveAttachmentByIndex.displayName =\n \"MessagePrimitive.AttachmentByIndex\";\n\nconst MessagePrimitiveAttachmentsInner: FC<{\n children: (value: { attachment: CompleteAttachment }) => ReactNode;\n}> = ({ children }) => {\n const attachmentsCount = useAuiState((s) => {\n if (s.message.role !== \"user\") return 0;\n return s.message.attachments.length;\n });\n\n return useMemo(\n () =>\n Array.from({ length: attachmentsCount }, (_, index) => (\n <MessageAttachmentByIndexProvider key={index} index={index}>\n <RenderChildrenWithAccessor\n getItemState={(aui) =>\n aui.message().attachment({ index }).getState()\n }\n >\n {(getItem) =>\n children({\n get attachment() {\n return getItem() as CompleteAttachment;\n },\n })\n }\n </RenderChildrenWithAccessor>\n </MessageAttachmentByIndexProvider>\n )),\n [attachmentsCount, children],\n );\n};\n\nexport const MessagePrimitiveAttachments: FC<\n MessagePrimitiveAttachments.Props\n> = ({ components, children }) => {\n if (components) {\n return (\n <MessagePrimitiveAttachmentsInner>\n {({ attachment }) => {\n const Component = getComponent(components, attachment);\n if (!Component) return null;\n return <Component />;\n }}\n </MessagePrimitiveAttachmentsInner>\n );\n }\n return (\n <MessagePrimitiveAttachmentsInner>\n {children}\n </MessagePrimitiveAttachmentsInner>\n );\n};\n\nMessagePrimitiveAttachments.displayName = \"MessagePrimitive.Attachments\";\n","import {\n type ComponentType,\n type FC,\n type ReactNode,\n memo,\n useMemo,\n} from \"react\";\nimport { RenderChildrenWithAccessor, useAuiState } from \"@assistant-ui/store\";\nimport type { SuggestionState } from \"../../../store/scopes/suggestion\";\nimport { SuggestionByIndexProvider } from \"../../providers/SuggestionByIndexProvider\";\n\ntype SuggestionsComponentConfig = {\n /** Component used to render each suggestion */\n Suggestion: ComponentType;\n};\n\nexport namespace ThreadPrimitiveSuggestions {\n export type Props =\n | {\n /** @deprecated Use the children render function instead. */\n components: SuggestionsComponentConfig;\n children?: never;\n }\n | {\n /** Render function called for each suggestion. Receives the suggestion. */\n children: (value: { suggestion: SuggestionState }) => ReactNode;\n components?: never;\n };\n}\n\ntype SuggestionComponentProps = {\n components: SuggestionsComponentConfig;\n};\n\nconst SuggestionComponent: FC<SuggestionComponentProps> = ({ components }) => {\n const Component = components.Suggestion;\n return <Component />;\n};\n\nexport namespace ThreadPrimitiveSuggestionByIndex {\n export type Props = {\n index: number;\n components: SuggestionsComponentConfig;\n };\n}\n\n/**\n * Renders a single suggestion at the specified index.\n */\nexport const ThreadPrimitiveSuggestionByIndex: FC<ThreadPrimitiveSuggestionByIndex.Props> =\n memo(\n ({ index, components }) => {\n return (\n <SuggestionByIndexProvider index={index}>\n <SuggestionComponent components={components} />\n </SuggestionByIndexProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index &&\n prev.components.Suggestion === next.components.Suggestion,\n );\n\nThreadPrimitiveSuggestionByIndex.displayName =\n \"ThreadPrimitive.SuggestionByIndex\";\n\nconst ThreadPrimitiveSuggestionsInner: FC<{\n children: (value: { suggestion: SuggestionState }) => ReactNode;\n}> = ({ children }) => {\n const suggestionsLength = useAuiState(\n (s) => s.suggestions.suggestions.length,\n );\n\n return useMemo(() => {\n if (suggestionsLength === 0) return null;\n return Array.from({ length: suggestionsLength }, (_, index) => (\n <SuggestionByIndexProvider key={index} index={index}>\n <RenderChildrenWithAccessor\n getItemState={(aui) =>\n aui.suggestions().suggestion({ index }).getState()\n }\n >\n {(getItem) =>\n children({\n get suggestion() {\n return getItem();\n },\n })\n }\n </RenderChildrenWithAccessor>\n </SuggestionByIndexProvider>\n ));\n }, [suggestionsLength, children]);\n};\n\n/**\n * Renders all suggestions.\n */\nexport const ThreadPrimitiveSuggestionsImpl: FC<\n ThreadPrimitiveSuggestions.Props\n> = ({ components, children }) => {\n if (components) {\n return (\n <ThreadPrimitiveSuggestionsInner>\n {() => <SuggestionComponent components={components} />}\n </ThreadPrimitiveSuggestionsInner>\n );\n }\n return (\n <ThreadPrimitiveSuggestionsInner>\n {children}\n </ThreadPrimitiveSuggestionsInner>\n );\n};\n\nThreadPrimitiveSuggestionsImpl.displayName = \"ThreadPrimitive.Suggestions\";\n\nexport const ThreadPrimitiveSuggestions = memo(\n ThreadPrimitiveSuggestionsImpl,\n (prev, next) => {\n if (prev.children || next.children) {\n return prev.children === next.children;\n }\n return prev.components!.Suggestion === next.components!.Suggestion;\n },\n);\n","import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport type UseSuggestionTriggerOptions = {\n prompt: string;\n send?: boolean | undefined;\n clearComposer?: boolean | undefined;\n};\n\nexport const useSuggestionTrigger = ({\n prompt,\n send,\n clearComposer = true,\n}: UseSuggestionTriggerOptions) => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.thread.isDisabled);\n const resolvedSend = send ?? false;\n\n const trigger = useCallback(() => {\n const isRunning = aui.thread().getState().isRunning;\n\n if (resolvedSend && !isRunning) {\n aui.thread().append({\n content: [{ type: \"text\", text: prompt }],\n runConfig: aui.composer().getState().runConfig,\n });\n if (clearComposer) {\n aui.composer().setText(\"\");\n }\n } else {\n if (clearComposer) {\n aui.composer().setText(prompt);\n } else {\n const currentText = aui.composer().getState().text;\n aui\n .composer()\n .setText(currentText.trim() ? `${currentText} ${prompt}` : prompt);\n }\n }\n }, [aui, resolvedSend, clearComposer, prompt]);\n\n return { trigger, disabled };\n};\n","import { useAuiState } from \"@assistant-ui/store\";\n\nexport const useMessageError = () => {\n return useAuiState((s) =>\n s.message.status?.type === \"incomplete\" &&\n s.message.status.reason === \"error\"\n ? (s.message.status.error ?? \"An error occurred\")\n : undefined,\n );\n};\n","\"use client\";\n\nimport { FC, memo, PropsWithChildren, useEffect } from \"react\";\nimport { AssistantClient, useAui } from \"@assistant-ui/store\";\nimport { AssistantRuntime } from \"./runtime/AssistantRuntime\";\nimport { AssistantProviderBase } from \"@assistant-ui/core/react\";\nimport { ThreadPrimitiveViewportProvider } from \"../context/providers/ThreadViewportProvider\";\nimport { DevToolsProviderApi } from \"../devtools/DevToolsHooks\";\n\nexport namespace AssistantRuntimeProvider {\n export type Props = PropsWithChildren<{\n /**\n * The runtime to provide to the rest of your app.\n */\n runtime: AssistantRuntime;\n\n /**\n * The aui instance to extend. If not provided, a new aui instance will be created.\n */\n aui?: AssistantClient;\n }>;\n}\n\nconst DevToolsRegistration: FC = () => {\n const aui = useAui();\n useEffect(() => {\n if (typeof process === \"undefined\" || process.env.NODE_ENV === \"production\")\n return;\n return DevToolsProviderApi.register(aui);\n }, [aui]);\n return null;\n};\n\nexport const AssistantRuntimeProviderImpl: FC<\n AssistantRuntimeProvider.Props\n> = ({ children, aui, runtime }) => {\n return (\n <AssistantProviderBase runtime={runtime} aui={aui ?? null}>\n <DevToolsRegistration />\n {/* TODO temporarily allow accessing viewport state from outside the viewport */}\n {/* TODO figure out if this behavior should be deprecated, since it is quite hacky */}\n <ThreadPrimitiveViewportProvider>\n {children}\n </ThreadPrimitiveViewportProvider>\n </AssistantProviderBase>\n );\n};\n\nexport const AssistantRuntimeProvider = memo(AssistantRuntimeProviderImpl);\n","\"use client\";\n\nimport type { FC, PropsWithChildren } from \"react\";\nimport { useEffect, useState } from \"react\";\nimport {\n makeThreadViewportStore,\n type ThreadViewportStoreOptions,\n} from \"../stores/ThreadViewport\";\nimport {\n ThreadViewportContext,\n ThreadViewportContextValue,\n useThreadViewportStore,\n} from \"../react/ThreadViewportContext\";\nimport { writableStore } from \"../ReadonlyStore\";\n\nexport type ThreadViewportProviderProps = PropsWithChildren<{\n options?: ThreadViewportStoreOptions;\n}>;\n\nconst useThreadViewportStoreValue = (options: ThreadViewportStoreOptions) => {\n const outerViewport = useThreadViewportStore({ optional: true });\n const [store] = useState(() => makeThreadViewportStore(options));\n\n // Forward scrollToBottom from outer viewport to inner viewport\n useEffect(() => {\n return outerViewport?.getState().onScrollToBottom(() => {\n store.getState().scrollToBottom();\n });\n }, [outerViewport, store]);\n\n useEffect(() => {\n if (!outerViewport) return;\n return store.subscribe((state) => {\n if (outerViewport.getState().isAtBottom !== state.isAtBottom) {\n writableStore(outerViewport).setState({ isAtBottom: state.isAtBottom });\n }\n });\n }, [store, outerViewport]);\n\n // Sync options to store when they change\n useEffect(() => {\n const nextState = {\n turnAnchor: options.turnAnchor ?? \"bottom\",\n };\n\n const currentState = store.getState();\n if (currentState.turnAnchor !== nextState.turnAnchor) {\n writableStore(store).setState(nextState);\n }\n }, [store, options.turnAnchor]);\n\n return store;\n};\n\nexport const ThreadPrimitiveViewportProvider: FC<\n ThreadViewportProviderProps\n> = ({ children, options = {} }) => {\n const useThreadViewport = useThreadViewportStoreValue(options);\n\n const [context] = useState<ThreadViewportContextValue>(() => {\n return {\n useThreadViewport,\n };\n });\n\n return (\n <ThreadViewportContext.Provider value={context}>\n {children}\n </ThreadViewportContext.Provider>\n );\n};\n","\"use client\";\n\nimport { create } from \"zustand\";\nimport type { Unsubscribe } from \"@assistant-ui/core\";\n\nexport type SizeHandle = {\n /** Update the height */\n setHeight: (height: number) => void;\n /** Unregister this handle */\n unregister: Unsubscribe;\n};\n\ntype SizeRegistry = {\n register: () => SizeHandle;\n};\n\nconst createSizeRegistry = (\n onChange: (total: number) => void,\n): SizeRegistry => {\n const entries = new Map<symbol, number>();\n\n const recalculate = () => {\n let total = 0;\n for (const height of entries.values()) {\n total += height;\n }\n onChange(total);\n };\n\n return {\n register: () => {\n const id = Symbol();\n entries.set(id, 0);\n\n return {\n setHeight: (height: number) => {\n if (entries.get(id) !== height) {\n entries.set(id, height);\n recalculate();\n }\n },\n unregister: () => {\n entries.delete(id);\n recalculate();\n },\n };\n },\n };\n};\n\nexport type ThreadViewportState = {\n readonly isAtBottom: boolean;\n readonly scrollToBottom: (config?: {\n behavior?: ScrollBehavior | undefined;\n }) => void;\n readonly onScrollToBottom: (\n callback: ({ behavior }: { behavior: ScrollBehavior }) => void,\n ) => Unsubscribe;\n\n /** Controls scroll anchoring: \"top\" anchors user messages at top, \"bottom\" is classic behavior */\n readonly turnAnchor: \"top\" | \"bottom\";\n\n /** Raw height values from registered elements */\n readonly height: {\n /** Total viewport height */\n readonly viewport: number;\n /** Total content inset height (footer, anchor message, etc.) */\n readonly inset: number;\n /** Height of the anchor user message (full height) */\n readonly userMessage: number;\n };\n\n /** Register a viewport and get a handle to update its height */\n readonly registerViewport: () => SizeHandle;\n\n /** Register a content inset (footer, anchor message, etc.) and get a handle to update its height */\n readonly registerContentInset: () => SizeHandle;\n\n /** Register the anchor user message height */\n readonly registerUserMessageHeight: () => SizeHandle;\n};\n\nexport type ThreadViewportStoreOptions = {\n turnAnchor?: \"top\" | \"bottom\" | undefined;\n};\n\nexport const makeThreadViewportStore = (\n options: ThreadViewportStoreOptions = {},\n) => {\n const scrollToBottomListeners = new Set<\n (config: { behavior: ScrollBehavior }) => void\n >();\n\n const viewportRegistry = createSizeRegistry((total) => {\n store.setState({\n height: {\n ...store.getState().height,\n viewport: total,\n },\n });\n });\n const insetRegistry = createSizeRegistry((total) => {\n store.setState({\n height: {\n ...store.getState().height,\n inset: total,\n },\n });\n });\n const userMessageRegistry = createSizeRegistry((total) => {\n store.setState({\n height: {\n ...store.getState().height,\n userMessage: total,\n },\n });\n });\n\n const store = create<ThreadViewportState>(() => ({\n isAtBottom: true,\n scrollToBottom: ({ behavior = \"auto\" } = {}) => {\n for (const listener of scrollToBottomListeners) {\n listener({ behavior });\n }\n },\n onScrollToBottom: (callback) => {\n scrollToBottomListeners.add(callback);\n return () => {\n scrollToBottomListeners.delete(callback);\n };\n },\n\n turnAnchor: options.turnAnchor ?? \"bottom\",\n\n height: {\n viewport: 0,\n inset: 0,\n userMessage: 0,\n },\n\n registerViewport: viewportRegistry.register,\n registerContentInset: insetRegistry.register,\n registerUserMessageHeight: userMessageRegistry.register,\n }));\n\n return store;\n};\n","\"use client\";\n\nimport { createContext } from \"react\";\nimport { ReadonlyStore } from \"../ReadonlyStore\";\nimport { UseBoundStore } from \"zustand\";\nimport { createContextHook } from \"./utils/createContextHook\";\nimport { createContextStoreHook } from \"./utils/createContextStoreHook\";\nimport { ThreadViewportState } from \"../stores/ThreadViewport\";\n\nexport type ThreadViewportContextValue = {\n useThreadViewport: UseBoundStore<ReadonlyStore<ThreadViewportState>>;\n};\n\nexport const ThreadViewportContext =\n createContext<ThreadViewportContextValue | null>(null);\n\nconst useThreadViewportContext = createContextHook(\n ThreadViewportContext,\n \"ThreadPrimitive.Viewport\",\n);\n\nexport const { useThreadViewport, useThreadViewportStore } =\n createContextStoreHook(useThreadViewportContext, \"useThreadViewport\");\n","\"use client\";\n\nimport { useContext, Context } from \"react\";\n\n/**\n * Creates a context hook with optional support.\n * @param context - The React context to consume.\n * @param providerName - The name of the provider for error messages.\n * @returns A hook function that provides the context value.\n */\nexport function createContextHook<T>(\n context: Context<T | null>,\n providerName: string,\n) {\n function useContextHook(options?: {\n optional?: boolean | undefined;\n }): T | null {\n const contextValue = useContext(context);\n if (!options?.optional && !contextValue) {\n throw new Error(`This component must be used within ${providerName}.`);\n }\n return contextValue;\n }\n\n return useContextHook;\n}\n","import { UseBoundStore } from \"zustand\";\nimport { ReadonlyStore } from \"../../ReadonlyStore\";\n\n/**\n * Creates hooks for accessing a store within a context.\n * @param contextHook - The hook to access the context.\n * @param contextKey - The key of the store in the context.\n * @returns An object containing the hooks: `use...` and `use...Store`.\n */\nexport function createContextStoreHook<T, K extends keyof T & string>(\n contextHook: (options?: { optional?: boolean }) => T | null,\n contextKey: K,\n) {\n type StoreType = T[K];\n type StateType = StoreType extends ReadonlyStore<infer S> ? S : never;\n\n // Define useStoreStoreHook with overloads\n function useStoreStoreHook(): ReadonlyStore<StateType>;\n function useStoreStoreHook(options: {\n optional: true;\n }): ReadonlyStore<StateType> | null;\n function useStoreStoreHook(options?: {\n optional?: boolean;\n }): ReadonlyStore<StateType> | null {\n const context = contextHook(options);\n if (!context) return null;\n return context[contextKey] as ReadonlyStore<StateType>;\n }\n\n // Define useStoreHook with overloads\n function useStoreHook(): StateType;\n function useStoreHook<TSelected>(\n selector: (state: StateType) => TSelected,\n ): TSelected;\n function useStoreHook(options: { optional: true }): StateType | null;\n function useStoreHook<TSelected>(options: {\n optional: true;\n selector?: (state: StateType) => TSelected;\n }): TSelected | null;\n function useStoreHook<TSelected>(\n param?:\n | ((state: StateType) => TSelected)\n | {\n optional?: boolean;\n selector?: (state: StateType) => TSelected;\n },\n ): TSelected | StateType | null {\n let optional = false;\n let selector: ((state: StateType) => TSelected) | undefined;\n\n if (typeof param === \"function\") {\n selector = param;\n } else if (param && typeof param === \"object\") {\n optional = !!param.optional;\n selector = param.selector;\n }\n\n const store = useStoreStoreHook({\n optional,\n } as any) as UseBoundStore<ReadonlyStore<StateType>>;\n if (!store) return null;\n return selector ? store(selector) : store();\n }\n\n // Return an object with keys based on contextKey\n return {\n [contextKey]: useStoreHook,\n [`${contextKey}Store`]: useStoreStoreHook,\n } as {\n [P in K]: typeof useStoreHook;\n } & {\n [P in `${K}Store`]: typeof useStoreStoreHook;\n };\n}\n","import type { StoreApi } from \"zustand\";\n\nexport type ReadonlyStore<T> = Omit<StoreApi<T>, \"setState\" | \"destroy\">;\n\nexport const writableStore = <T>(store: ReadonlyStore<T> | undefined) => {\n return store as unknown as StoreApi<T>;\n};\n","import type { Unsubscribe } from \"@assistant-ui/core\";\nimport { AssistantClient } from \"@assistant-ui/store\";\n\nexport interface EventLog {\n time: Date;\n event: string;\n data: unknown;\n}\n\ninterface DevToolsApiEntry {\n api: Partial<AssistantClient>;\n logs: EventLog[];\n}\n\ninterface DevToolsHook {\n apis: Map<number, DevToolsApiEntry>;\n nextId: number;\n listeners: Set<(apiId: number) => void>;\n}\n\ndeclare global {\n interface Window {\n __ASSISTANT_UI_DEVTOOLS_HOOK__?: DevToolsHook;\n }\n}\n\nlet cachedHook: DevToolsHook | undefined;\n\nconst getHook = (): DevToolsHook => {\n if (cachedHook) {\n return cachedHook;\n }\n\n const createHook = (): DevToolsHook => ({\n apis: new Map(),\n nextId: 0,\n listeners: new Set(),\n });\n\n if (typeof window === \"undefined\") {\n cachedHook = createHook();\n return cachedHook;\n }\n\n const existingHook = window.__ASSISTANT_UI_DEVTOOLS_HOOK__;\n if (existingHook) {\n cachedHook = existingHook;\n return existingHook;\n }\n\n const newHook = createHook();\n window.__ASSISTANT_UI_DEVTOOLS_HOOK__ = newHook;\n cachedHook = newHook;\n return newHook;\n};\n\nexport class DevToolsHooks {\n static subscribe(listener: () => void): Unsubscribe {\n const hook = getHook();\n hook.listeners.add(listener);\n return () => {\n hook.listeners.delete(listener);\n };\n }\n\n static clearEventLogs(apiId: number): void {\n const hook = getHook();\n const entry = hook.apis.get(apiId);\n if (!entry) return;\n\n entry.logs = [];\n DevToolsHooks.notifyListeners(apiId);\n }\n\n static getApis(): Map<number, DevToolsApiEntry> {\n return getHook().apis;\n }\n\n private static notifyListeners(apiId: number): void {\n const hook = getHook();\n hook.listeners.forEach((listener) => listener(apiId));\n }\n}\n\nexport class DevToolsProviderApi {\n private static readonly MAX_EVENT_LOGS_PER_API = 200;\n\n static register(aui: Partial<AssistantClient>): Unsubscribe {\n const hook = getHook();\n\n for (const entry of hook.apis.values()) {\n if (entry.api === aui) {\n return () => {};\n }\n }\n\n const apiId = hook.nextId++;\n const entry: DevToolsApiEntry = {\n api: aui,\n logs: [],\n };\n\n const eventUnsubscribe = aui.on?.(\"*\", (e) => {\n const entry = hook.apis.get(apiId);\n if (!entry) return;\n\n entry.logs.push({\n time: new Date(),\n event: e.event,\n data: e.payload,\n });\n\n if (entry.logs.length > DevToolsProviderApi.MAX_EVENT_LOGS_PER_API) {\n entry.logs = entry.logs.slice(\n -DevToolsProviderApi.MAX_EVENT_LOGS_PER_API,\n );\n }\n\n DevToolsProviderApi.notifyListeners(apiId);\n });\n\n const stateUnsubscribe = aui.subscribe?.(() => {\n DevToolsProviderApi.notifyListeners(apiId);\n });\n\n hook.apis.set(apiId, entry);\n DevToolsProviderApi.notifyListeners(apiId);\n\n return () => {\n const hook = getHook();\n const entry = hook.apis.get(apiId);\n if (!entry) return;\n\n eventUnsubscribe?.();\n stateUnsubscribe?.();\n\n hook.apis.delete(apiId);\n\n DevToolsProviderApi.notifyListeners(apiId);\n };\n }\n\n private static notifyListeners(apiId: number): void {\n const hook = getHook();\n hook.listeners.forEach((listener) => listener(apiId));\n }\n}\n","import type { Unsubscribe } from \"@assistant-ui/core\";\nimport { useDebugValue, useSyncExternalStore } from \"react\";\nimport { ensureBinding } from \"./ensureBinding\";\n\nexport type SubscribableRuntime<TState> = {\n getState: () => TState;\n subscribe: (callback: () => void) => Unsubscribe;\n};\n\nexport function useRuntimeStateInternal<TState, TSelected>(\n runtime: SubscribableRuntime<TState>,\n selector: ((state: TState) => TSelected | TState) | undefined = identity,\n): TSelected | TState {\n // TODO move to useRuntimeState\n ensureBinding(runtime);\n\n const slice = useSyncExternalStore(\n runtime.subscribe,\n () => selector(runtime.getState()),\n () => selector(runtime.getState()),\n );\n useDebugValue(slice);\n return slice;\n}\n\nconst identity = <T>(arg: T): T => arg;\nexport function useRuntimeState<TState>(\n runtime: SubscribableRuntime<TState>,\n): TState;\nexport function useRuntimeState<TState, TSelected>(\n runtime: SubscribableRuntime<TState>,\n selector: (state: TState) => TSelected,\n): TSelected;\nexport function useRuntimeState<TState, TSelected>(\n runtime: SubscribableRuntime<TState>,\n selector: ((state: TState) => TSelected) | undefined,\n): TSelected | TState;\nexport function useRuntimeState<TState, TSelected>(\n runtime: SubscribableRuntime<TState>,\n selector?: ((state: TState) => TSelected) | undefined,\n): TSelected | TState {\n // ensure that the runtime is bound\n // ensureBinding(runtime);\n\n return useRuntimeStateInternal(runtime, selector);\n}\n","type Bindable = {\n __internal_bindMethods?: () => void;\n __isBound?: boolean;\n};\nconst debugVerifyPrototype = (\n runtime: Record<string, unknown>,\n prototype: any,\n) => {\n const unboundMethods = Object.getOwnPropertyNames(prototype).filter(\n (methodStr) => {\n const descriptor = Object.getOwnPropertyDescriptor(prototype, methodStr);\n const isMethod = descriptor && typeof descriptor.value === \"function\";\n if (!isMethod) return false;\n\n const methodName = methodStr as keyof typeof runtime | \"constructor\";\n return (\n isMethod &&\n !methodName.startsWith(\"_\") &&\n methodName !== \"constructor\" &&\n prototype[methodName] === runtime[methodName]\n );\n },\n );\n\n if (unboundMethods.length > 0) {\n throw new Error(\n `The following methods are not bound: ${JSON.stringify(unboundMethods)}`,\n );\n }\n\n const prototypePrototype = Object.getPrototypeOf(prototype);\n if (prototypePrototype && prototypePrototype !== Object.prototype) {\n debugVerifyPrototype(runtime, prototypePrototype);\n }\n};\nexport const ensureBinding = (r: unknown) => {\n const runtime = r as Bindable;\n if (runtime.__isBound) return;\n\n runtime.__internal_bindMethods?.();\n runtime.__isBound = true;\n\n if (process.env.NODE_ENV !== \"production\") {\n debugVerifyPrototype(runtime, Object.getPrototypeOf(runtime));\n }\n};\n","import {\n SubscribableRuntime,\n useRuntimeStateInternal,\n} from \"./useRuntimeState\";\n\nexport function createStateHookForRuntime<TState>(\n useRuntime: (options: {\n optional: boolean | undefined;\n }) => SubscribableRuntime<TState> | null,\n) {\n // empty\n function useStoreHook(): TState;\n\n // selector\n function useStoreHook<TSelected>(\n selector: (state: TState) => TSelected,\n ): TSelected;\n\n // selector?\n function useStoreHook<TSelected>(\n selector: ((state: TState) => TSelected) | undefined,\n ): TSelected | TState;\n\n // optional=false\n function useStoreHook(options: { optional?: false | undefined }): TState;\n\n // optional?\n function useStoreHook(options: {\n optional?: boolean | undefined;\n }): TState | null;\n\n // optional=false, selector\n function useStoreHook<TSelected>(options: {\n optional?: false | undefined;\n selector: (state: TState) => TSelected;\n }): TSelected;\n\n // optional=false, selector?\n function useStoreHook<TSelected>(options: {\n optional?: false | undefined;\n selector: ((state: TState) => TSelected) | undefined;\n }): TSelected | TState;\n\n // optional?, selector\n function useStoreHook<TSelected>(options: {\n optional?: boolean | undefined;\n selector: (state: TState) => TSelected;\n }): TSelected | null;\n\n // optional?, selector?\n function useStoreHook<TSelected>(options: {\n optional?: boolean | undefined;\n selector: ((state: TState) => TSelected) | undefined;\n }): TSelected | TState | null;\n\n function useStoreHook<TSelected>(\n param?:\n | ((state: TState) => TSelected)\n | {\n optional?: boolean | undefined;\n selector?: ((state: TState) => TSelected) | undefined;\n },\n ): TSelected | TState | null {\n let optional = false;\n let selector: ((state: TState) => TSelected) | undefined;\n\n if (typeof param === \"function\") {\n selector = param;\n } else if (param) {\n optional = !!param.optional;\n selector = param.selector;\n }\n\n const store = useRuntime({ optional });\n if (!store) return null;\n\n // it is ok to call useRuntimeStateInternal conditionally because it will never become null if its available\n return useRuntimeStateInternal(store, selector);\n }\n\n return useStoreHook;\n}\n","\"use client\";\n\nimport { MessageRuntime } from \"../runtime/MessageRuntime\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport { createStateHookForRuntime } from \"../../context/react/utils/createStateHookForRuntime\";\nimport type { EditComposerRuntime } from \"@assistant-ui/core\";\n\n/**\n * @deprecated Use `useAui()` with `aui.message()` instead. See migration guide: https://assistant-ui.com/docs/migrations/v0-12\n *\n * Hook to access the MessageRuntime from the current context.\n *\n * The MessageRuntime provides access to message-level state and actions,\n * including message content, status, editing capabilities, and branching.\n *\n * @param options Configuration options\n * @param options.optional Whether the hook should return null if no context is found\n * @returns The MessageRuntime instance, or null if optional is true and no context exists\n *\n * @example\n * ```tsx\n * // Before:\n * function MessageActions() {\n * const runtime = useMessageRuntime();\n * const handleReload = () => {\n * runtime.reload();\n * };\n * const handleEdit = () => {\n * runtime.startEdit();\n * };\n * return (\n * <div>\n * <button onClick={handleReload}>Reload</button>\n * <button onClick={handleEdit}>Edit</button>\n * </div>\n * );\n * }\n *\n * // After:\n * function MessageActions() {\n * const aui = useAui();\n * const handleReload = () => {\n * aui.message().reload();\n * };\n * const handleEdit = () => {\n * aui.message().startEdit();\n * };\n * return (\n * <div>\n * <button onClick={handleReload}>Reload</button>\n * <button onClick={handleEdit}>Edit</button>\n * </div>\n * );\n * }\n * ```\n */\nexport function useMessageRuntime(options?: {\n optional?: false | undefined;\n}): MessageRuntime;\nexport function useMessageRuntime(options?: {\n optional?: boolean | undefined;\n}): MessageRuntime | null;\nexport function useMessageRuntime(options?: {\n optional?: boolean | undefined;\n}) {\n const aui = useAui();\n const runtime = useAuiState(() =>\n aui.message.source\n ? (aui.message().__internal_getRuntime?.() ?? null)\n : null,\n );\n if (!runtime && !options?.optional) {\n throw new Error(\"MessageRuntime is not available\");\n }\n return runtime;\n}\n\n/**\n * @deprecated Use `useAuiState((s) => s.message)` instead. See migration guide: https://assistant-ui.com/docs/migrations/v0-12\n *\n * Hook to access the current message state.\n *\n * This hook provides reactive access to the message's state, including content,\n * role, status, and other message-level properties.\n *\n * @param selector Optional selector function to pick specific state properties\n * @returns The selected message state or the entire message state if no selector provided\n *\n * @example\n * ```tsx\n * // Before:\n * function MessageContent() {\n * const role = useMessage((state) => state.role);\n * const content = useMessage((state) => state.content);\n * const isLoading = useMessage((state) => state.status.type === \"running\");\n * return (\n * <div className={`message-${role}`}>\n * {isLoading ? \"Loading...\" : content.map(part => part.text).join(\"\")}\n * </div>\n * );\n * }\n *\n * // After:\n * function MessageContent() {\n * const role = useAuiState((s) => s.message.role);\n * const content = useAuiState((s) => s.message.content);\n * const isLoading = useAuiState((s) => s.message.status.type === \"running\");\n * return (\n * <div className={`message-${role}`}>\n * {isLoading ? \"Loading...\" : content.map(part => part.text).join(\"\")}\n * </div>\n * );\n * }\n * ```\n */\nexport const useMessage = createStateHookForRuntime(useMessageRuntime);\n\nconst useEditComposerRuntime = (opt: {\n optional: boolean | undefined;\n}): EditComposerRuntime | null => useMessageRuntime(opt)?.composer ?? null;\n\n/**\n * @deprecated Use `useAuiState((s) => s.message.composer)` instead. See migration guide: https://assistant-ui.com/docs/migrations/v0-12\n */\nexport const useEditComposer = createStateHookForRuntime(\n useEditComposerRuntime,\n);\n","import * as React from 'react';\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef<T>(ref: PossibleRef<T>, value: T) {\n if (typeof ref === 'function') {\n return ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == 'function') {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == 'function') {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n","import {\n type ComponentPropsWithoutRef,\n type ComponentRef,\n type ForwardRefExoticComponent,\n type ReactElement,\n type ReactNode,\n type RefAttributes,\n cloneElement,\n forwardRef,\n isValidElement,\n} from \"react\";\nimport { Primitive as RadixPrimitive } from \"@radix-ui/react-primitive\";\n\n/**\n * Thin wrapper around `@radix-ui/react-primitive` that adds `render` prop support.\n *\n * When `render` is provided, it is converted to the equivalent `asChild` pattern:\n * render={<Comp props />} + children → asChild + <Comp props>{children}</Comp>\n *\n * All prop merging, ref composition, and event handler chaining remain handled\n * by Radix's battle-tested Slot implementation — we add zero custom logic for that.\n */\n\n// Match @radix-ui/react-primitive's full element set\nconst NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\",\n] as const;\ntype PrimitiveNode = (typeof NODES)[number];\n\ntype PrimitiveProps<E extends PrimitiveNode> = ComponentPropsWithoutRef<\n (typeof RadixPrimitive)[E]\n> & {\n render?: ReactElement | undefined;\n};\n\ntype PrimitiveRef<E extends PrimitiveNode> = ComponentRef<\n (typeof RadixPrimitive)[E]\n>;\n\nfunction createPrimitive<E extends PrimitiveNode>(node: E) {\n const RadixComp = RadixPrimitive[node];\n\n const Component = forwardRef<PrimitiveRef<E>, PrimitiveProps<E>>(\n ({ render, asChild, children, ...props }, ref) => {\n if (render && isValidElement(render)) {\n // render={<Comp p />} + children\n // → asChild + <Comp p>{children}</Comp>\n const renderChildren =\n children !== undefined\n ? children\n : ((render.props as Record<string, unknown>).children as ReactNode);\n return (\n <RadixComp asChild {...(props as any)} ref={ref}>\n {cloneElement(render, undefined, renderChildren)}\n </RadixComp>\n );\n }\n\n return (\n <RadixComp asChild={asChild} {...(props as any)} ref={ref}>\n {children}\n </RadixComp>\n );\n },\n );\n\n Component.displayName = `Primitive.${node}`;\n return Component as ForwardRefExoticComponent<\n PrimitiveProps<E> & RefAttributes<PrimitiveRef<E>>\n >;\n}\n\nconst Primitive = NODES.reduce(\n (acc, node) => {\n acc[node] = createPrimitive(node);\n return acc;\n },\n {} as {\n [K in PrimitiveNode]: ReturnType<typeof createPrimitive<K>>;\n },\n);\n\nexport { Primitive };\nexport type { PrimitiveProps };\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createSlot } from '@radix-ui/react-slot';\n\nconst NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'select',\n 'span',\n 'svg',\n 'ul',\n] as const;\n\ntype Primitives = { [E in (typeof NODES)[number]]: PrimitiveForwardRefComponent<E> };\ntype PrimitivePropsWithRef<E extends React.ElementType> = React.ComponentPropsWithRef<E> & {\n asChild?: boolean;\n};\n\ninterface PrimitiveForwardRefComponent<E extends React.ElementType>\n extends React.ForwardRefExoticComponent<PrimitivePropsWithRef<E>> {}\n\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/\n\nconst Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props: PrimitivePropsWithRef<typeof node>, forwardedRef: any) => {\n const { asChild, ...primitiveProps } = props;\n const Comp: any = asChild ? Slot : node;\n\n if (typeof window !== 'undefined') {\n (window as any)[Symbol.for('radix-ui')] = true;\n }\n\n return <Comp {...primitiveProps} ref={forwardedRef} />;\n });\n\n Node.displayName = `Primitive.${node}`;\n\n return { ...primitive, [node]: Node };\n}, {} as Primitives);\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not necessary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */\n\nfunction dispatchDiscreteCustomEvent<E extends CustomEvent>(target: E['target'], event: E) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Primitive;\n\nexport {\n Primitive,\n //\n Root,\n //\n dispatchDiscreteCustomEvent,\n};\nexport type { PrimitivePropsWithRef };\n","import * as React from 'react';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\n\ndeclare module 'react' {\n interface ReactElement {\n $$typeof?: symbol | string;\n }\n}\n\nconst REACT_LAZY_TYPE = Symbol.for('react.lazy');\n\ninterface LazyReactElement extends React.ReactElement {\n $$typeof: typeof REACT_LAZY_TYPE;\n _payload: PromiseLike<Exclude<React.ReactNode, PromiseLike<any>>>;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\nexport type Usable<T> = PromiseLike<T> | React.Context<T>;\nconst use: typeof React.use | undefined = (React as any)[' use '.trim().toString()];\n\ninterface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\nfunction isPromiseLike(value: unknown): value is PromiseLike<unknown> {\n return typeof value === 'object' && value !== null && 'then' in value;\n}\n\nfunction isLazyComponent(element: React.ReactNode): element is LazyReactElement {\n return (\n element != null &&\n typeof element === 'object' &&\n '$$typeof' in element &&\n element.$$typeof === REACT_LAZY_TYPE &&\n '_payload' in element &&\n isPromiseLike(element._payload)\n );\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlot(ownerName: string) {\n const SlotClone = createSlotClone(ownerName);\n const Slot = React.forwardRef<HTMLElement, SlotProps>((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === 'function') {\n children = use(children._payload);\n }\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement)\n ? (newElement.props as { children: React.ReactNode }).children\n : null;\n } else {\n return child;\n }\n });\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {React.isValidElement(newElement)\n ? React.cloneElement(newElement, undefined, newChildren)\n : null}\n </SlotClone>\n );\n }\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {children}\n </SlotClone>\n );\n });\n\n Slot.displayName = `${ownerName}.Slot`;\n return Slot;\n}\n\nconst Slot = createSlot('Slot');\n\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotCloneProps {\n children: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ function createSlotClone(ownerName: string) {\n const SlotClone = React.forwardRef<any, SlotCloneProps>((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === 'function') {\n children = use(children._payload);\n }\n\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props = mergeProps(slotProps, children.props as AnyProps);\n // do not pass ref to React.Fragment for React 19 compatibility\n if (children.type !== React.Fragment) {\n props.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props);\n }\n\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLOTTABLE_IDENTIFIER = Symbol('radix.slottable');\n\ninterface SlottableProps {\n children: React.ReactNode;\n}\n\ninterface SlottableComponent extends React.FC<SlottableProps> {\n __radixId: symbol;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlottable(ownerName: string) {\n const Slottable: SlottableComponent = ({ children }) => {\n return <>{children}</>;\n };\n Slottable.displayName = `${ownerName}.Slottable`;\n Slottable.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable;\n}\n\nconst Slottable = createSlottable('Slottable');\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype AnyProps = Record<string, any>;\n\nfunction isSlottable(\n child: React.ReactNode,\n): child is React.ReactElement<SlottableProps, typeof Slottable> {\n return (\n React.isValidElement(child) &&\n typeof child.type === 'function' &&\n '__radixId' in child.type &&\n child.type.__radixId === SLOTTABLE_IDENTIFIER\n );\n}\n\nfunction mergeProps(slotProps: AnyProps, childProps: AnyProps) {\n // all child props should override\n const overrideProps = { ...childProps };\n\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args: unknown[]) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n }\n // but if it exists only on the slot, we use only this one\n else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ');\n }\n }\n\n return { ...slotProps, ...overrideProps };\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element.props as { ref?: React.Ref<unknown> }).ref;\n }\n\n // Not DEV\n return (element.props as { ref?: React.Ref<unknown> }).ref || (element as any).ref;\n}\n\nexport {\n Slot,\n Slottable,\n //\n Slot as Root,\n};\nexport type { SlotProps };\n","/* eslint-disable no-restricted-properties */\n\n/* eslint-disable no-restricted-globals */\nexport const canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n/* eslint-enable no-restricted-globals */\n\nexport function composeEventHandlers<E extends { defaultPrevented: boolean }>(\n originalEventHandler?: (event: E) => void,\n ourEventHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {}\n) {\n return function handleEvent(event: E) {\n originalEventHandler?.(event);\n\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\n\nexport function getOwnerWindow(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access window outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument?.defaultView ?? window;\n}\n\nexport function getOwnerDocument(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access document outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument ?? document;\n}\n\n/**\n * Lifted from https://github.com/ariakit/ariakit/blob/main/packages/ariakit-core/src/utils/dom.ts#L37\n * MIT License, Copyright (c) AriaKit.\n */\nexport function getActiveElement(\n node: Node | null | undefined,\n activeDescendant = false\n): HTMLElement | null {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n // `activeElement` might be an empty object if we're interacting with elements\n // inside of an iframe.\n return null;\n }\n\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n\n if (activeDescendant) {\n const id = activeElement.getAttribute('aria-activedescendant');\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n\n return activeElement as HTMLElement | null;\n}\n\nexport function isFrame(element: Element): element is HTMLIFrameElement {\n return element.tagName === 'IFRAME';\n}\n","import {\n ComponentRef,\n forwardRef,\n ComponentPropsWithoutRef,\n MouseEventHandler,\n} from \"react\";\nimport { Primitive } from \"./Primitive\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\ntype ActionButtonCallback<TProps> = (\n props: TProps,\n) => MouseEventHandler<HTMLButtonElement> | null;\n\ntype PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;\n\nexport type ActionButtonProps<THook> = PrimitiveButtonProps &\n (THook extends (props: infer TProps) => unknown ? TProps : never);\n\nexport type ActionButtonElement = ComponentRef<typeof Primitive.button>;\n\nexport const createActionButton = <TProps,>(\n displayName: string,\n useActionButton: ActionButtonCallback<TProps>,\n forwardProps: (keyof NonNullable<TProps>)[] = [],\n) => {\n const ActionButton = forwardRef<\n ActionButtonElement,\n PrimitiveButtonProps & TProps\n >((props, forwardedRef) => {\n const forwardedProps = {} as TProps;\n const primitiveProps = {} as PrimitiveButtonProps;\n\n (Object.keys(props) as Array<keyof typeof props>).forEach((key) => {\n if (forwardProps.includes(key as keyof TProps)) {\n (forwardedProps as any)[key] = props[key];\n } else {\n (primitiveProps as any)[key] = props[key];\n }\n });\n\n const callback = useActionButton(forwardedProps as TProps) ?? undefined;\n return (\n <Primitive.button\n {...primitiveProps}\n type=\"button\"\n ref={forwardedRef}\n disabled={primitiveProps.disabled || !callback}\n onClick={composeEventHandlers(primitiveProps.onClick, callback)}\n />\n );\n });\n\n ActionButton.displayName = displayName;\n\n return ActionButton;\n};\n","import * as React from 'react';\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n\nexport { useCallbackRef };\n","import * as React from 'react';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlot(ownerName: string) {\n const SlotClone = createSlotClone(ownerName);\n const Slot = React.forwardRef<HTMLElement, SlotProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement)\n ? (newElement.props as { children: React.ReactNode }).children\n : null;\n } else {\n return child;\n }\n });\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {React.isValidElement(newElement)\n ? React.cloneElement(newElement, undefined, newChildren)\n : null}\n </SlotClone>\n );\n }\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {children}\n </SlotClone>\n );\n });\n\n Slot.displayName = `${ownerName}.Slot`;\n return Slot;\n}\n\nconst Slot = createSlot('Slot');\n\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotCloneProps {\n children: React.ReactNode;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ function createSlotClone(ownerName: string) {\n const SlotClone = React.forwardRef<any, SlotCloneProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props = mergeProps(slotProps, children.props as AnyProps);\n // do not pass ref to React.Fragment for React 19 compatibility\n if (children.type !== React.Fragment) {\n props.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props);\n }\n\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLOTTABLE_IDENTIFIER = Symbol('radix.slottable');\n\ninterface SlottableProps {\n children: React.ReactNode;\n}\n\ninterface SlottableComponent extends React.FC<SlottableProps> {\n __radixId: symbol;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlottable(ownerName: string) {\n const Slottable: SlottableComponent = ({ children }) => {\n return <>{children}</>;\n };\n Slottable.displayName = `${ownerName}.Slottable`;\n Slottable.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable;\n}\n\nconst Slottable = createSlottable('Slottable');\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype AnyProps = Record<string, any>;\n\nfunction isSlottable(\n child: React.ReactNode\n): child is React.ReactElement<SlottableProps, typeof Slottable> {\n return (\n React.isValidElement(child) &&\n typeof child.type === 'function' &&\n '__radixId' in child.type &&\n child.type.__radixId === SLOTTABLE_IDENTIFIER\n );\n}\n\nfunction mergeProps(slotProps: AnyProps, childProps: AnyProps) {\n // all child props should override\n const overrideProps = { ...childProps };\n\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args: unknown[]) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n }\n // but if it exists only on the slot, we use only this one\n else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ');\n }\n }\n\n return { ...slotProps, ...overrideProps };\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element.props as { ref?: React.Ref<unknown> }).ref;\n }\n\n // Not DEV\n return (element.props as { ref?: React.Ref<unknown> }).ref || (element as any).ref;\n}\n\nexport {\n Slot,\n Slottable,\n //\n Slot as Root,\n};\nexport type { SlotProps };\n","\"use client\";\n\nimport type { FC, PropsWithChildren } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport type { RequireAtLeastOne } from \"../../utils/RequireAtLeastOne\";\n\ntype MessageIfFilters = {\n user: boolean | undefined;\n assistant: boolean | undefined;\n system: boolean | undefined;\n hasBranches: boolean | undefined;\n copied: boolean | undefined;\n lastOrHover: boolean | undefined;\n last: boolean | undefined;\n speaking: boolean | undefined;\n hasAttachments: boolean | undefined;\n hasContent: boolean | undefined;\n submittedFeedback: \"positive\" | \"negative\" | null | undefined;\n};\ntype UseMessageIfProps = RequireAtLeastOne<MessageIfFilters>;\n\nconst useMessageIf = (props: UseMessageIfProps) => {\n return useAuiState((s) => {\n const {\n role,\n attachments,\n parts,\n branchCount,\n isLast,\n speech,\n isCopied,\n isHovering,\n } = s.message;\n\n if (props.hasBranches === true && branchCount < 2) return false;\n\n if (props.user && role !== \"user\") return false;\n if (props.assistant && role !== \"assistant\") return false;\n if (props.system && role !== \"system\") return false;\n\n if (props.lastOrHover === true && !isHovering && !isLast) return false;\n if (props.last !== undefined && props.last !== isLast) return false;\n\n if (props.copied === true && !isCopied) return false;\n if (props.copied === false && isCopied) return false;\n\n if (props.speaking === true && speech == null) return false;\n if (props.speaking === false && speech != null) return false;\n\n if (\n props.hasAttachments === true &&\n (role !== \"user\" || !attachments?.length)\n )\n return false;\n if (\n props.hasAttachments === false &&\n role === \"user\" &&\n !!attachments?.length\n )\n return false;\n\n if (props.hasContent === true && parts.length === 0) return false;\n if (props.hasContent === false && parts.length > 0) return false;\n\n if (\n props.submittedFeedback !== undefined &&\n (s.message.metadata.submittedFeedback?.type ?? null) !==\n props.submittedFeedback\n )\n return false;\n\n return true;\n });\n};\n\nexport namespace MessagePrimitiveIf {\n export type Props = PropsWithChildren<UseMessageIfProps>;\n}\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.message...} />` instead.\n */\nexport const MessagePrimitiveIf: FC<MessagePrimitiveIf.Props> = ({\n children,\n ...query\n}) => {\n const result = useMessageIf(query);\n return result ? children : null;\n};\n\nMessagePrimitiveIf.displayName = \"MessagePrimitive.If\";\n","\"use client\";\n\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEffect } from \"react\";\nimport { useThreadViewport } from \"../../context/react/ThreadViewportContext\";\n\nexport const useOnScrollToBottom = (\n callback: (config: { behavior: ScrollBehavior }) => void,\n) => {\n const callbackRef = useCallbackRef(callback);\n const onScrollToBottom = useThreadViewport((vp) => vp.onScrollToBottom);\n\n useEffect(() => {\n return onScrollToBottom(callbackRef);\n }, [onScrollToBottom, callbackRef]);\n};\n","\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n ComponentPropsWithoutRef,\n ElementType,\n} from \"react\";\nimport { useMessagePartText } from \"./useMessagePartText\";\nimport { useSmooth } from \"../../utils/smooth/useSmooth\";\n\nexport namespace MessagePartPrimitiveText {\n export type Element = ComponentRef<typeof Primitive.span>;\n export type Props = Omit<\n ComponentPropsWithoutRef<typeof Primitive.span>,\n \"children\" | \"asChild\"\n > & {\n /**\n * Whether to enable smooth text streaming animation.\n * When enabled, text appears with a typing effect as it streams in.\n * @default true\n */\n smooth?: boolean;\n /**\n * The HTML element or React component to render as.\n * @default \"span\"\n */\n component?: ElementType;\n };\n}\n\n/**\n * Renders the text content of a message part with optional smooth streaming.\n *\n * This component displays text content from the current message part context,\n * with support for smooth streaming animation that shows text appearing\n * character by character as it's generated.\n *\n * @example\n * ```tsx\n * <MessagePartPrimitive.Text\n * smooth={true}\n * component=\"p\"\n * className=\"message-text\"\n * />\n * ```\n */\nexport const MessagePartPrimitiveText = forwardRef<\n MessagePartPrimitiveText.Element,\n MessagePartPrimitiveText.Props\n>(({ smooth = true, component: Component = \"span\", ...rest }, forwardedRef) => {\n const { text, status } = useSmooth(useMessagePartText(), smooth);\n\n return (\n <Component data-status={status.type} {...rest} ref={forwardedRef}>\n {text}\n </Component>\n );\n});\n\nMessagePartPrimitiveText.displayName = \"MessagePartPrimitive.Text\";\n","\"use client\";\n\nimport type {\n TextMessagePart,\n ReasoningMessagePart,\n MessagePartState,\n} from \"@assistant-ui/core\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport const useMessagePartText = () => {\n const text = useAuiState((s) => {\n if (s.part.type !== \"text\" && s.part.type !== \"reasoning\")\n throw new Error(\n \"MessagePartText can only be used inside text or reasoning message parts.\",\n );\n\n return s.part as MessagePartState &\n (TextMessagePart | ReasoningMessagePart);\n });\n\n return text;\n};\n","\"use client\";\n\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport type {\n MessagePartStatus,\n ReasoningMessagePart,\n TextMessagePart,\n MessagePartState,\n} from \"@assistant-ui/core\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useSmoothStatusStore } from \"./SmoothContext\";\nimport { writableStore } from \"../../context/ReadonlyStore\";\n\nclass TextStreamAnimator {\n private animationFrameId: number | null = null;\n private lastUpdateTime: number = Date.now();\n\n public targetText: string = \"\";\n\n constructor(\n public currentText: string,\n private setText: (newText: string) => void,\n ) {}\n\n start() {\n if (this.animationFrameId !== null) return;\n this.lastUpdateTime = Date.now();\n this.animate();\n }\n\n stop() {\n if (this.animationFrameId !== null) {\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = null;\n }\n }\n\n private animate = () => {\n const currentTime = Date.now();\n const deltaTime = currentTime - this.lastUpdateTime;\n let timeToConsume = deltaTime;\n\n const remainingChars = this.targetText.length - this.currentText.length;\n const baseTimePerChar = Math.min(5, 250 / remainingChars);\n\n let charsToAdd = 0;\n while (timeToConsume >= baseTimePerChar && charsToAdd < remainingChars) {\n charsToAdd++;\n timeToConsume -= baseTimePerChar;\n }\n\n if (charsToAdd !== remainingChars) {\n this.animationFrameId = requestAnimationFrame(this.animate);\n } else {\n this.animationFrameId = null;\n }\n if (charsToAdd === 0) return;\n\n this.currentText = this.targetText.slice(\n 0,\n this.currentText.length + charsToAdd,\n );\n this.lastUpdateTime = currentTime - timeToConsume;\n this.setText(this.currentText);\n };\n}\n\nconst SMOOTH_STATUS: MessagePartStatus = Object.freeze({\n type: \"running\",\n});\n\nexport const useSmooth = (\n state: MessagePartState & (TextMessagePart | ReasoningMessagePart),\n smooth: boolean = false,\n): MessagePartState & (TextMessagePart | ReasoningMessagePart) => {\n const { text } = state;\n const id = useAuiState((s) => s.message.id);\n\n const idRef = useRef(id);\n const [displayedText, setDisplayedText] = useState(\n state.status.type === \"running\" ? \"\" : text,\n );\n\n const smoothStatusStore = useSmoothStatusStore({ optional: true });\n const setText = useCallbackRef((text: string) => {\n setDisplayedText(text);\n if (smoothStatusStore) {\n const target =\n displayedText !== text || state.status.type === \"running\"\n ? SMOOTH_STATUS\n : state.status;\n writableStore(smoothStatusStore).setState(target, true);\n }\n });\n\n // TODO this is hacky\n useEffect(() => {\n if (smoothStatusStore) {\n const target =\n smooth && (displayedText !== text || state.status.type === \"running\")\n ? SMOOTH_STATUS\n : state.status;\n writableStore(smoothStatusStore).setState(target, true);\n }\n }, [smoothStatusStore, smooth, text, displayedText, state.status]);\n\n const [animatorRef] = useState<TextStreamAnimator>(\n new TextStreamAnimator(displayedText, setText),\n );\n\n useEffect(() => {\n if (!smooth) {\n animatorRef.stop();\n return;\n }\n\n if (idRef.current !== id || !text.startsWith(animatorRef.targetText)) {\n idRef.current = id;\n\n if (state.status.type === \"running\") {\n // New streaming message → animate from empty string\n setText(\"\");\n animatorRef.currentText = \"\";\n animatorRef.targetText = text;\n animatorRef.start();\n } else {\n // Completed message → display immediately\n setText(text);\n animatorRef.currentText = text;\n animatorRef.targetText = text;\n animatorRef.stop();\n }\n\n return;\n }\n\n animatorRef.targetText = text;\n animatorRef.start();\n }, [setText, animatorRef, id, smooth, text, state.status.type]);\n\n useEffect(() => {\n return () => {\n animatorRef.stop();\n };\n }, [animatorRef]);\n\n return useMemo(\n () =>\n smooth\n ? {\n type: \"text\",\n text: displayedText,\n status: text === displayedText ? state.status : SMOOTH_STATUS,\n }\n : state,\n [smooth, displayedText, state, text],\n );\n};\n","\"use client\";\n\nimport {\n ComponentType,\n createContext,\n FC,\n forwardRef,\n PropsWithChildren,\n useContext,\n useState,\n} from \"react\";\nimport { ReadonlyStore } from \"../../context/ReadonlyStore\";\nimport { create, UseBoundStore } from \"zustand\";\nimport type {\n MessagePartStatus,\n ToolCallMessagePartStatus,\n} from \"@assistant-ui/core\";\nimport { useAui } from \"@assistant-ui/store\";\nimport { createContextStoreHook } from \"../../context/react/utils/createContextStoreHook\";\n\ntype SmoothContextValue = {\n useSmoothStatus: UseBoundStore<\n ReadonlyStore<MessagePartStatus | ToolCallMessagePartStatus>\n >;\n};\n\nconst SmoothContext = createContext<SmoothContextValue | null>(null);\n\nconst makeSmoothContext = (\n initialState: MessagePartStatus | ToolCallMessagePartStatus,\n) => {\n const useSmoothStatus = create(() => initialState);\n return { useSmoothStatus };\n};\n\nexport const SmoothContextProvider: FC<PropsWithChildren> = ({ children }) => {\n const outer = useSmoothContext({ optional: true });\n const aui = useAui();\n\n const [context] = useState(() =>\n makeSmoothContext(aui.part().getState().status),\n );\n\n // do not wrap if there is an outer SmoothContextProvider\n if (outer) return children;\n\n return (\n <SmoothContext.Provider value={context}>{children}</SmoothContext.Provider>\n );\n};\n\nexport const withSmoothContextProvider = <C extends ComponentType<any>>(\n Component: C,\n): C => {\n const Wrapped = forwardRef((props, ref) => {\n return (\n <SmoothContextProvider>\n <Component {...(props as any)} ref={ref} />\n </SmoothContextProvider>\n );\n });\n Wrapped.displayName = Component.displayName;\n return Wrapped as any;\n};\n\nfunction useSmoothContext(options?: {\n optional?: false | undefined;\n}): SmoothContextValue;\nfunction useSmoothContext(options?: {\n optional?: boolean | undefined;\n}): SmoothContextValue | null;\nfunction useSmoothContext(options?: { optional?: boolean | undefined }) {\n const context = useContext(SmoothContext);\n if (!options?.optional && !context)\n throw new Error(\n \"This component must be used within a SmoothContextProvider.\",\n );\n return context;\n}\n\nexport const { useSmoothStatus, useSmoothStatusStore } = createContextStoreHook(\n useSmoothContext,\n \"useSmoothStatus\",\n);\n","\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport { type ComponentRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport { useMessagePartImage } from \"./useMessagePartImage\";\n\nexport namespace MessagePartPrimitiveImage {\n export type Element = ComponentRef<typeof Primitive.img>;\n /**\n * Props for the MessagePartPrimitive.Image component.\n * Accepts all standard img element props.\n */\n export type Props = ComponentPropsWithoutRef<typeof Primitive.img>;\n}\n\n/**\n * Renders an image from the current message part context.\n *\n * This component displays image content from the current message part,\n * automatically setting the src attribute from the message part's image data.\n *\n * @example\n * ```tsx\n * <MessagePartPrimitive.Image\n * alt=\"Generated image\"\n * className=\"message-image\"\n * style={{ maxWidth: '100%' }}\n * />\n * ```\n */\nexport const MessagePartPrimitiveImage = forwardRef<\n MessagePartPrimitiveImage.Element,\n MessagePartPrimitiveImage.Props\n>((props, forwardedRef) => {\n const { image } = useMessagePartImage();\n return <Primitive.img src={image} {...props} ref={forwardedRef} />;\n});\n\nMessagePartPrimitiveImage.displayName = \"MessagePartPrimitive.Image\";\n","\"use client\";\n\nimport type { ImageMessagePart, MessagePartState } from \"@assistant-ui/core\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport const useMessagePartImage = () => {\n const image = useAuiState((s) => {\n if (s.part.type !== \"image\")\n throw new Error(\n \"MessagePartImage can only be used inside image message parts.\",\n );\n\n return s.part as MessagePartState & ImageMessagePart;\n });\n\n return image;\n};\n","\"use client\";\n\nimport { FC, PropsWithChildren } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace MessagePartPrimitiveInProgress {\n export type Props = PropsWithChildren;\n}\n\n// TODO should this be renamed to IsRunning?\nexport const MessagePartPrimitiveInProgress: FC<\n MessagePartPrimitiveInProgress.Props\n> = ({ children }) => {\n const isInProgress = useAuiState((s) => s.part.status.type === \"running\");\n\n return isInProgress ? children : null;\n};\n\nMessagePartPrimitiveInProgress.displayName = \"MessagePartPrimitive.InProgress\";\n","export { MessagePrimitiveRoot as Root } from \"./message/MessageRoot\";\nexport { MessagePrimitiveParts as Parts } from \"./message/MessageParts\";\nexport { MessagePrimitivePartByIndex as PartByIndex } from \"./message/MessageParts\";\nexport { MessagePrimitiveParts as Content } from \"./message/MessageParts\";\nexport { MessagePrimitiveIf as If } from \"./message/MessageIf\";\nexport { MessagePrimitiveAttachments as Attachments } from \"./message/MessageAttachments\";\nexport { MessagePrimitiveAttachmentByIndex as AttachmentByIndex } from \"./message/MessageAttachments\";\nexport { MessagePrimitiveQuote as Quote } from \"@assistant-ui/core/react\";\nexport { MessagePrimitiveError as Error } from \"./message/MessageError\";\nexport {\n MessagePrimitiveUnstable_PartsGrouped as Unstable_PartsGrouped,\n MessagePrimitiveUnstable_PartsGroupedByParentId as Unstable_PartsGroupedByParentId,\n} from \"./message/MessagePartsGrouped\";\n","\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n ComponentPropsWithoutRef,\n useCallback,\n} from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport { useManagedRef } from \"../../utils/hooks/useManagedRef\";\nimport { useSizeHandle } from \"../../utils/hooks/useSizeHandle\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useThreadViewport } from \"../../context/react/ThreadViewportContext\";\nimport { ThreadPrimitiveViewportSlack } from \"../thread/ThreadViewportSlack\";\n\nconst useIsHoveringRef = () => {\n const aui = useAui();\n const message = useAuiState(() => aui.message());\n\n const callbackRef = useCallback(\n (el: HTMLElement) => {\n const handleMouseEnter = () => {\n message.setIsHovering(true);\n };\n const handleMouseLeave = () => {\n message.setIsHovering(false);\n };\n\n el.addEventListener(\"mouseenter\", handleMouseEnter);\n el.addEventListener(\"mouseleave\", handleMouseLeave);\n\n if (el.matches(\":hover\")) {\n // TODO this is needed for SSR to work, figure out why\n queueMicrotask(() => message.setIsHovering(true));\n }\n\n return () => {\n el.removeEventListener(\"mouseenter\", handleMouseEnter);\n el.removeEventListener(\"mouseleave\", handleMouseLeave);\n message.setIsHovering(false);\n };\n },\n [message],\n );\n\n return useManagedRef(callbackRef);\n};\n\n/**\n * Hook that registers the anchor user message as a content inset.\n * Only registers if: user message, at index messages.length-2, and last message is assistant.\n */\nconst useMessageViewportRef = () => {\n const turnAnchor = useThreadViewport((s) => s.turnAnchor);\n const registerUserHeight = useThreadViewport(\n (s) => s.registerUserMessageHeight,\n );\n\n // inset rules:\n // - the previous user message before the last assistant message registers its full height\n const shouldRegisterAsInset = useAuiState(\n (s) =>\n turnAnchor === \"top\" &&\n s.message.role === \"user\" &&\n s.message.index === s.thread.messages.length - 2 &&\n s.thread.messages.at(-1)?.role === \"assistant\",\n );\n\n const getHeight = useCallback((el: HTMLElement) => el.offsetHeight, []);\n\n return useSizeHandle(\n shouldRegisterAsInset ? registerUserHeight : null,\n getHeight,\n );\n};\n\nexport namespace MessagePrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.div>;\n /**\n * Props for the MessagePrimitive.Root component.\n * Accepts all standard div element props.\n */\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\n/**\n * The root container component for a message.\n *\n * This component provides the foundational wrapper for message content and handles\n * hover state management for the message. It automatically tracks when the user\n * is hovering over the message, which can be used by child components like action bars.\n *\n * When `turnAnchor=\"top\"` is set on the viewport, this component\n * registers itself as the scroll anchor if it's the last user message.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.Root>\n * <MessagePrimitive.Content />\n * <ActionBarPrimitive.Root>\n * <ActionBarPrimitive.Copy />\n * <ActionBarPrimitive.Edit />\n * </ActionBarPrimitive.Root>\n * </MessagePrimitive.Root>\n * ```\n */\nexport const MessagePrimitiveRoot = forwardRef<\n MessagePrimitiveRoot.Element,\n MessagePrimitiveRoot.Props\n>((props, forwardRef) => {\n const isHoveringRef = useIsHoveringRef();\n const anchorUserMessageRef = useMessageViewportRef();\n const ref = useComposedRefs<HTMLDivElement>(\n forwardRef,\n isHoveringRef,\n anchorUserMessageRef,\n );\n const messageId = useAuiState((s) => s.message.id);\n\n return (\n <ThreadPrimitiveViewportSlack>\n <Primitive.div {...props} ref={ref} data-message-id={messageId} />\n </ThreadPrimitiveViewportSlack>\n );\n});\n\nMessagePrimitiveRoot.displayName = \"MessagePrimitive.Root\";\n","import { useCallback, useRef } from \"react\";\n\nexport const useManagedRef = <TNode>(\n callback: (node: TNode) => (() => void) | void,\n) => {\n const cleanupRef = useRef<(() => void) | void>(undefined);\n\n const ref = useCallback(\n (el: TNode | null) => {\n // Call the previous cleanup function\n if (cleanupRef.current) {\n cleanupRef.current();\n }\n\n // Call the new callback and store its cleanup function\n if (el) {\n cleanupRef.current = callback(el);\n }\n },\n [callback],\n );\n\n return ref;\n};\n","\"use client\";\n\nimport { useCallback } from \"react\";\nimport { useManagedRef } from \"./useManagedRef\";\nimport type { SizeHandle } from \"../../context/stores/ThreadViewport\";\n\n/**\n * Hook that creates a ref for tracking element size via a SizeHandle.\n * Automatically sets up ResizeObserver and reports height changes.\n *\n * @param register - Function that returns a SizeHandle (e.g., registerContentInset)\n * @param getHeight - Optional function to compute height (defaults to el.offsetHeight)\n * @returns A ref callback to attach to the element\n */\nexport const useSizeHandle = (\n register: (() => SizeHandle) | null | undefined,\n getHeight?: (el: HTMLElement) => number,\n) => {\n const callbackRef = useCallback(\n (el: HTMLElement) => {\n if (!register) return;\n\n const sizeHandle = register();\n\n const updateHeight = () => {\n const height = getHeight ? getHeight(el) : el.offsetHeight;\n sizeHandle.setHeight(height);\n };\n\n const ro = new ResizeObserver(updateHeight);\n ro.observe(el);\n updateHeight();\n\n return () => {\n ro.disconnect();\n sizeHandle.unregister();\n };\n },\n [register, getHeight],\n );\n\n return useManagedRef(callbackRef);\n};\n","\"use client\";\n\nimport { Slot } from \"radix-ui\";\nimport {\n createContext,\n type FC,\n type ReactNode,\n useCallback,\n useContext,\n} from \"react\";\nimport { useThreadViewportStore } from \"../../context/react/ThreadViewportContext\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { useManagedRef } from \"../../utils/hooks/useManagedRef\";\n\nconst SlackNestingContext = createContext(false);\n\nconst parseCssLength = (value: string, element: HTMLElement): number => {\n const match = value.match(/^([\\d.]+)(em|px|rem)$/);\n if (!match) return 0;\n\n const num = parseFloat(match[1]!);\n const unit = match[2];\n\n if (unit === \"px\") return num;\n if (unit === \"em\") {\n const fontSize = parseFloat(getComputedStyle(element).fontSize) || 16;\n return num * fontSize;\n }\n if (unit === \"rem\") {\n const rootFontSize =\n parseFloat(getComputedStyle(document.documentElement).fontSize) || 16;\n return num * rootFontSize;\n }\n return 0;\n};\n\nexport type ThreadViewportSlackProps = {\n /** Threshold at which the user message height clamps to the offset */\n fillClampThreshold?: string;\n /** Offset used when clamping large user messages */\n fillClampOffset?: string;\n children: ReactNode;\n};\n\n/**\n * A slot component that provides minimum height to enable scroll anchoring.\n *\n * When using `turnAnchor=\"top\"`, this component ensures there is\n * enough scroll room below the anchor point (last user message) for it to scroll\n * to the top of the viewport. The min-height is applied only to the last\n * assistant message.\n *\n * This component is used internally by MessagePrimitive.Root.\n */\nexport const ThreadPrimitiveViewportSlack: FC<ThreadViewportSlackProps> = ({\n children,\n fillClampThreshold = \"10em\",\n fillClampOffset = \"6em\",\n}) => {\n const shouldApplySlack = useAuiState(\n // only add slack to the last assistant message following a user message (valid turn)\n (s) =>\n s.message.isLast &&\n s.message.role === \"assistant\" &&\n s.message.index >= 1 &&\n s.thread.messages.at(s.message.index - 1)?.role === \"user\",\n );\n const threadViewportStore = useThreadViewportStore({ optional: true });\n const isNested = useContext(SlackNestingContext);\n\n const callback = useCallback(\n (el: HTMLElement) => {\n if (!threadViewportStore || isNested) return;\n\n const updateMinHeight = () => {\n const state = threadViewportStore.getState();\n if (state.turnAnchor === \"top\" && shouldApplySlack) {\n const { viewport, inset, userMessage } = state.height;\n const threshold = parseCssLength(fillClampThreshold, el);\n const offset = parseCssLength(fillClampOffset, el);\n const clampAdjustment =\n userMessage <= threshold ? userMessage : offset;\n\n const minHeight = Math.max(0, viewport - inset - clampAdjustment);\n el.style.minHeight = `${minHeight}px`;\n el.style.flexShrink = \"0\";\n el.style.transition = \"min-height 0s\";\n } else {\n el.style.minHeight = \"\";\n el.style.flexShrink = \"\";\n el.style.transition = \"\";\n }\n };\n\n updateMinHeight();\n return threadViewportStore.subscribe(updateMinHeight);\n },\n [\n threadViewportStore,\n shouldApplySlack,\n isNested,\n fillClampThreshold,\n fillClampOffset,\n ],\n );\n\n const ref = useManagedRef<HTMLElement>(callback);\n\n return (\n <SlackNestingContext.Provider value={true}>\n <Slot.Root ref={ref}>{children}</Slot.Root>\n </SlackNestingContext.Provider>\n );\n};\n\nThreadPrimitiveViewportSlack.displayName = \"ThreadPrimitive.ViewportSlack\";\n","\"use client\";\n\nimport type { FC } from \"react\";\nimport {\n MessagePrimitiveParts as MessagePrimitivePartsBase,\n MessagePartComponent as MessagePartComponentBase,\n MessagePrimitivePartByIndex as MessagePrimitivePartByIndexBase,\n messagePartsDefaultComponents,\n} from \"@assistant-ui/core/react\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\n\nconst webDefaultComponents = {\n ...messagePartsDefaultComponents,\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <MessagePartPrimitiveText />\n <MessagePartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </MessagePartPrimitiveInProgress>\n </p>\n ),\n Image: () => <MessagePartPrimitiveImage />,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\nexport namespace MessagePrimitiveParts {\n export type Props = MessagePrimitivePartsBase.Props;\n}\n\n/**\n * Renders the parts of a message with web-specific default components.\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = (\n props,\n) => {\n if (\"children\" in props) {\n return (\n <MessagePrimitivePartsBase>{props.children}</MessagePrimitivePartsBase>\n );\n }\n\n const { components, ...rest } = props;\n const merged = components\n ? {\n Text: components.Text ?? webDefaultComponents.Text,\n Image: components.Image ?? webDefaultComponents.Image,\n Reasoning:\n components.Reasoning ?? messagePartsDefaultComponents.Reasoning,\n Source: components.Source ?? messagePartsDefaultComponents.Source,\n File: components.File ?? messagePartsDefaultComponents.File,\n Unstable_Audio:\n components.Unstable_Audio ??\n messagePartsDefaultComponents.Unstable_Audio,\n ...(\"ChainOfThought\" in components\n ? { ChainOfThought: components.ChainOfThought }\n : {\n tools: components.tools,\n data: components.data,\n ToolGroup:\n components.ToolGroup ?? messagePartsDefaultComponents.ToolGroup,\n ReasoningGroup:\n components.ReasoningGroup ??\n messagePartsDefaultComponents.ReasoningGroup,\n }),\n Empty: components.Empty,\n Quote: components.Quote,\n }\n : webDefaultComponents;\n\n return <MessagePrimitivePartsBase components={merged as any} {...rest} />;\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n\n// Re-export everything else unchanged\nexport {\n MessagePartComponentBase as MessagePartComponent,\n MessagePrimitivePartByIndexBase as MessagePrimitivePartByIndex,\n};\n","\"use client\";\n\nimport { FC, PropsWithChildren } from \"react\";\nimport { useMessageError } from \"@assistant-ui/core/react\";\n\nexport const MessagePrimitiveError: FC<PropsWithChildren> = ({ children }) => {\n const error = useMessageError();\n return error !== undefined ? children : null;\n};\n\nMessagePrimitiveError.displayName = \"MessagePrimitive.Error\";\n","\"use client\";\n\nimport {\n type ComponentType,\n type FC,\n memo,\n PropsWithChildren,\n useMemo,\n} from \"react\";\nimport { useAuiState, useAui } from \"@assistant-ui/store\";\nimport { PartByIndexProvider } from \"../../context/providers/PartByIndexProvider\";\nimport { TextMessagePartProvider } from \"../../context/providers/TextMessagePartProvider\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport type {\n Unstable_AudioMessagePartComponent,\n DataMessagePartComponent,\n DataMessagePartProps,\n EmptyMessagePartComponent,\n TextMessagePartComponent,\n ImageMessagePartComponent,\n SourceMessagePartComponent,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n FileMessagePartComponent,\n ReasoningMessagePartComponent,\n} from \"@assistant-ui/core/react\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\nimport type { MessagePartStatus } from \"@assistant-ui/core\";\n\ntype MessagePartGroup = {\n groupKey: string | undefined;\n indices: number[];\n};\n\nexport type GroupingFunction = (parts: readonly any[]) => MessagePartGroup[];\n\n/**\n * Groups message parts by their parent ID.\n * Parts without a parent ID appear in their chronological position as individual groups.\n * Parts with the same parent ID are grouped together at the position of their first occurrence.\n */\nconst groupMessagePartsByParentId: GroupingFunction = (\n parts: readonly any[],\n): MessagePartGroup[] => {\n // Map maintains insertion order, so groups appear in order of first occurrence\n const groupMap = new Map<string, number[]>();\n\n // Process each part in order\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const parentId = part?.parentId as string | undefined;\n\n // For parts without parentId, assign a unique group ID to maintain their position\n const groupId = parentId ?? `__ungrouped_${i}`;\n\n // Get or create the indices array for this group\n const indices = groupMap.get(groupId) ?? [];\n indices.push(i);\n groupMap.set(groupId, indices);\n }\n\n // Convert map to array of groups\n const groups: MessagePartGroup[] = [];\n for (const [groupId, indices] of groupMap) {\n // Extract parentId (undefined for ungrouped parts)\n const groupKey = groupId.startsWith(\"__ungrouped_\") ? undefined : groupId;\n groups.push({ groupKey, indices });\n }\n\n return groups;\n};\n\nconst useMessagePartsGrouped = (\n groupingFunction: GroupingFunction,\n): MessagePartGroup[] => {\n const parts = useAuiState((s) => s.message.parts);\n\n return useMemo(() => {\n if (parts.length === 0) {\n return [];\n }\n return groupingFunction(parts);\n }, [parts, groupingFunction]);\n};\n\nexport namespace MessagePrimitiveUnstable_PartsGrouped {\n export type Props = {\n /**\n * Function that takes an array of message parts and returns an array of groups.\n * Each group contains a key (for identification) and an array of indices.\n *\n * @example\n * ```tsx\n * // Group by parent ID (default behavior)\n * groupingFunction={(parts) => {\n * const groups = new Map<string, number[]>();\n * parts.forEach((part, i) => {\n * const key = part.parentId ?? `__ungrouped_${i}`;\n * const indices = groups.get(key) ?? [];\n * indices.push(i);\n * groups.set(key, indices);\n * });\n * return Array.from(groups.entries()).map(([key, indices]) => ({\n * key: key.startsWith(\"__ungrouped_\") ? undefined : key,\n * indices\n * }));\n * }}\n * ```\n *\n * @example\n * ```tsx\n * // Group by tool name\n * import { groupMessagePartsByToolName } from \"@assistant-ui/react\";\n *\n * <MessagePrimitive.Unstable_PartsGrouped\n * groupingFunction={groupMessagePartsByToolName}\n * components={{\n * Group: ({ key, indices, children }) => {\n * if (!key) return <>{children}</>;\n * return (\n * <div className=\"tool-group\">\n * <h4>Tool: {key}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n */\n groupingFunction: GroupingFunction;\n\n /**\n * Component configuration for rendering different types of message content.\n *\n * You can provide custom components for each content type (text, image, file, etc.)\n * and configure tool rendering behavior. If not provided, default components will be used.\n */\n components:\n | {\n /** Component for rendering empty messages */\n Empty?: EmptyMessagePartComponent | undefined;\n /** Component for rendering text content */\n Text?: TextMessagePartComponent | undefined;\n /** Component for rendering reasoning content (typically hidden) */\n Reasoning?: ReasoningMessagePartComponent | undefined;\n /** Component for rendering source content */\n Source?: SourceMessagePartComponent | undefined;\n /** Component for rendering image content */\n Image?: ImageMessagePartComponent | undefined;\n /** Component for rendering file content */\n File?: FileMessagePartComponent | undefined;\n /** Component for rendering audio content (experimental) */\n Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;\n /** Configuration for data part rendering */\n data?:\n | {\n /** Map data event names to specific components */\n by_name?:\n | Record<string, DataMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unmatched data events */\n Fallback?: DataMessagePartComponent | undefined;\n }\n | undefined;\n /** Configuration for tool call rendering */\n tools?:\n | {\n /** Map of tool names to their specific components */\n by_name?:\n | Record<string, ToolCallMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unregistered tools */\n Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;\n }\n | {\n /** Override component that handles all tool calls */\n Override: ComponentType<ToolCallMessagePartProps>;\n }\n | undefined;\n\n /**\n * Component for rendering grouped message parts.\n *\n * When provided, this component will automatically wrap message parts that share\n * the same group key as determined by the groupingFunction.\n *\n * The component receives:\n * - `groupKey`: The group key (or undefined for ungrouped parts)\n * - `indices`: Array of indices for the parts in this group\n * - `children`: The rendered message part components\n *\n * @example\n * ```tsx\n * // Collapsible group\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <details className=\"message-group\">\n * <summary>\n * Group {groupKey} ({indices.length} parts)\n * </summary>\n * <div className=\"group-content\">\n * {children}\n * </div>\n * </details>\n * );\n * }\n * ```\n *\n * @param groupKey - The group key (undefined for ungrouped parts)\n * @param indices - Array of indices for the parts in this group\n * @param children - Rendered message part components to display within the group\n */\n Group?: ComponentType<\n PropsWithChildren<{\n groupKey: string | undefined;\n indices: number[];\n }>\n >;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallMessagePartComponent | undefined;\n} & ToolCallMessagePartProps) => {\n const Render = useAuiState((s) => {\n const Render = s.tools.tools[props.toolName] ?? Fallback;\n if (Array.isArray(Render)) return Render[0] ?? Fallback;\n return Render;\n });\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst DataUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: DataMessagePartComponent | undefined;\n} & DataMessagePartProps) => {\n const Render = useAuiState((s) => {\n const Render = s.dataRenderers.renderers[props.name] ?? Fallback;\n if (Array.isArray(Render)) return Render[0] ?? Fallback;\n return Render;\n });\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <MessagePartPrimitiveText />\n <MessagePartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </MessagePartPrimitiveInProgress>\n </p>\n ),\n Reasoning: () => null,\n Source: () => null,\n Image: () => <MessagePartPrimitiveImage />,\n File: () => null,\n Unstable_Audio: () => null,\n Group: ({ children }) => children,\n} satisfies MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n\ntype MessagePartComponentProps = {\n components: MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n};\n\nconst MessagePartComponent: FC<MessagePartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Reasoning = defaultComponents.Reasoning,\n Image = defaultComponents.Image,\n Source = defaultComponents.Source,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n data,\n } = {},\n}) => {\n const aui = useAui();\n const part = useAuiState((s) => s.part);\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = aui.part().addToolResult;\n const resume = aui.part().resumeToolCall;\n if (\"Override\" in tools)\n return <tools.Override {...part} addResult={addResult} resume={resume} />;\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return (\n <ToolUIDisplay\n {...part}\n Fallback={Tool}\n addResult={addResult}\n resume={resume}\n />\n );\n }\n\n if (part.status?.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n return <Text {...part} />;\n\n case \"reasoning\":\n return <Reasoning {...part} />;\n\n case \"source\":\n return <Source {...part} />;\n\n case \"image\":\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n case \"data\": {\n const Data = data?.by_name?.[part.name] ?? data?.Fallback;\n return <DataUIDisplay {...part} Fallback={Data} />;\n }\n\n default:\n console.warn(`Unknown message part type: ${type}`);\n return null;\n }\n};\n\ntype MessagePartProps = {\n partIndex: number;\n components: MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n};\n\nconst MessagePartImpl: FC<MessagePartProps> = ({ partIndex, components }) => {\n return (\n <PartByIndexProvider index={partIndex}>\n <MessagePartComponent components={components} />\n </PartByIndexProvider>\n );\n};\n\nconst MessagePart = memo(\n MessagePartImpl,\n (prev, next) =>\n prev.partIndex === next.partIndex &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Reasoning === next.components?.Reasoning &&\n prev.components?.Source === next.components?.Source &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.tools === next.components?.tools &&\n prev.components?.data === next.components?.data &&\n prev.components?.Group === next.components?.Group,\n);\n\nconst EmptyPartFallback: FC<{\n status: MessagePartStatus;\n component: TextMessagePartComponent;\n}> = ({ status, component: Component }) => {\n return (\n <TextMessagePartProvider text=\"\" isRunning={status.type === \"running\"}>\n <Component type=\"text\" text=\"\" status={status} />\n </TextMessagePartProvider>\n );\n};\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst EmptyPartsImpl: FC<MessagePartComponentProps> = ({ components }) => {\n const status = useAuiState(\n (s) => (s.message.status ?? COMPLETE_STATUS) as MessagePartStatus,\n );\n\n if (components?.Empty) return <components.Empty status={status} />;\n\n return (\n <EmptyPartFallback\n status={status}\n component={components?.Text ?? defaultComponents.Text}\n />\n );\n};\n\nconst EmptyParts = memo(\n EmptyPartsImpl,\n (prev, next) =>\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\n/**\n * Renders the parts of a message grouped by a custom grouping function.\n *\n * This component allows you to group message parts based on any criteria you define.\n * The grouping function receives all message parts and returns an array of groups,\n * where each group has a key and an array of part indices.\n *\n * @example\n * ```tsx\n * // Group by parent ID (default behavior)\n * <MessagePrimitive.Unstable_PartsGrouped\n * components={{\n * Text: ({ text }) => <p className=\"message-text\">{text}</p>,\n * Image: ({ image }) => <img src={image} alt=\"Message image\" />,\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <div className=\"parent-group border rounded p-4\">\n * <h4>Parent ID: {groupKey}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n *\n * @example\n * ```tsx\n * // Group by tool name\n * import { groupMessagePartsByToolName } from \"@assistant-ui/react\";\n *\n * <MessagePrimitive.Unstable_PartsGrouped\n * groupingFunction={groupMessagePartsByToolName}\n * components={{\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <div className=\"tool-group\">\n * <h4>Tool: {groupKey}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n */\nexport const MessagePrimitiveUnstable_PartsGrouped: FC<\n MessagePrimitiveUnstable_PartsGrouped.Props\n> = ({ groupingFunction, components }) => {\n const contentLength = useAuiState((s) => s.message.parts.length);\n const messageGroups = useMessagePartsGrouped(groupingFunction);\n\n const partsElements = useMemo(() => {\n if (contentLength === 0) {\n return <EmptyParts components={components} />;\n }\n\n return messageGroups.map((group, groupIndex) => {\n const GroupComponent = components?.Group ?? defaultComponents.Group;\n\n return (\n <GroupComponent\n key={`group-${groupIndex}-${group.groupKey ?? \"ungrouped\"}`}\n groupKey={group.groupKey}\n indices={group.indices}\n >\n {group.indices.map((partIndex) => (\n <MessagePart\n key={partIndex}\n partIndex={partIndex}\n components={components}\n />\n ))}\n </GroupComponent>\n );\n });\n }, [messageGroups, components, contentLength]);\n\n return <>{partsElements}</>;\n};\n\nMessagePrimitiveUnstable_PartsGrouped.displayName =\n \"MessagePrimitive.Unstable_PartsGrouped\";\n\n/**\n * Renders the parts of a message grouped by their parent ID.\n * This is a convenience wrapper around Unstable_PartsGrouped with parent ID grouping.\n *\n * @deprecated Use MessagePrimitive.Unstable_PartsGrouped instead for more flexibility\n */\nexport const MessagePrimitiveUnstable_PartsGroupedByParentId: FC<\n Omit<MessagePrimitiveUnstable_PartsGrouped.Props, \"groupingFunction\">\n> = ({ components, ...props }) => {\n return (\n <MessagePrimitiveUnstable_PartsGrouped\n {...props}\n components={components}\n groupingFunction={groupMessagePartsByParentId}\n />\n );\n};\n\nMessagePrimitiveUnstable_PartsGroupedByParentId.displayName =\n \"MessagePrimitive.Unstable_PartsGroupedByParentId\";\n","export { ThreadPrimitiveRoot as Root } from \"./thread/ThreadRoot\";\nexport { ThreadPrimitiveEmpty as Empty } from \"./thread/ThreadEmpty\";\nexport { ThreadPrimitiveIf as If } from \"./thread/ThreadIf\";\nexport { ThreadPrimitiveViewport as Viewport } from \"./thread/ThreadViewport\";\nexport { ThreadPrimitiveViewportProvider as ViewportProvider } from \"../context/providers/ThreadViewportProvider\";\nexport { ThreadPrimitiveViewportFooter as ViewportFooter } from \"./thread/ThreadViewportFooter\";\nexport { ThreadPrimitiveViewportSlack as ViewportSlack } from \"./thread/ThreadViewportSlack\";\nexport { ThreadPrimitiveMessages as Messages } from \"./thread/ThreadMessages\";\nexport { ThreadPrimitiveMessageByIndex as MessageByIndex } from \"./thread/ThreadMessages\";\nexport { ThreadPrimitiveScrollToBottom as ScrollToBottom } from \"./thread/ThreadScrollToBottom\";\nexport { ThreadPrimitiveSuggestion as Suggestion } from \"./thread/ThreadSuggestion\";\nexport {\n ThreadPrimitiveSuggestions as Suggestions,\n ThreadPrimitiveSuggestionByIndex as SuggestionByIndex,\n} from \"./thread/ThreadSuggestions\";\n","\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport { type ComponentRef, forwardRef, ComponentPropsWithoutRef } from \"react\";\n\nexport namespace ThreadPrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.div>;\n /**\n * Props for the ThreadPrimitive.Root component.\n * Accepts all standard div element props.\n */\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\n/**\n * The root container component for a thread.\n *\n * This component serves as the foundational wrapper for all thread-related components.\n * It provides the basic structure and context needed for thread functionality.\n *\n * @example\n * ```tsx\n * <ThreadPrimitive.Root>\n * <ThreadPrimitive.Viewport>\n * <ThreadPrimitive.Messages>\n * {() => <MyMessage />}\n * </ThreadPrimitive.Messages>\n * </ThreadPrimitive.Viewport>\n * </ThreadPrimitive.Root>\n * ```\n */\nexport const ThreadPrimitiveRoot = forwardRef<\n ThreadPrimitiveRoot.Element,\n ThreadPrimitiveRoot.Props\n>((props, ref) => {\n return <Primitive.div {...props} ref={ref} />;\n});\n\nThreadPrimitiveRoot.displayName = \"ThreadPrimitive.Root\";\n","\"use client\";\n\nimport type { FC, PropsWithChildren } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace ThreadPrimitiveEmpty {\n export type Props = PropsWithChildren;\n}\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.thread.isEmpty} />` instead.\n */\nexport const ThreadPrimitiveEmpty: FC<ThreadPrimitiveEmpty.Props> = ({\n children,\n}) => {\n const empty = useAuiState((s) => s.thread.isEmpty);\n return empty ? children : null;\n};\n\nThreadPrimitiveEmpty.displayName = \"ThreadPrimitive.Empty\";\n","\"use client\";\n\nimport type { FC, PropsWithChildren } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport type { RequireAtLeastOne } from \"../../utils/RequireAtLeastOne\";\n\ntype ThreadIfFilters = {\n empty: boolean | undefined;\n running: boolean | undefined;\n disabled: boolean | undefined;\n};\n\ntype UseThreadIfProps = RequireAtLeastOne<ThreadIfFilters>;\n\nconst useThreadIf = (props: UseThreadIfProps) => {\n return useAuiState((s) => {\n if (props.empty === true && !s.thread.isEmpty) return false;\n if (props.empty === false && s.thread.isEmpty) return false;\n\n if (props.running === true && !s.thread.isRunning) return false;\n if (props.running === false && s.thread.isRunning) return false;\n if (props.disabled === true && !s.thread.isDisabled) return false;\n if (props.disabled === false && s.thread.isDisabled) return false;\n\n return true;\n });\n};\n\nexport namespace ThreadPrimitiveIf {\n export type Props = PropsWithChildren<UseThreadIfProps>;\n}\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.thread...} />` instead.\n */\nexport const ThreadPrimitiveIf: FC<ThreadPrimitiveIf.Props> = ({\n children,\n ...query\n}) => {\n const result = useThreadIf(query);\n return result ? children : null;\n};\n\nThreadPrimitiveIf.displayName = \"ThreadPrimitive.If\";\n","\"use client\";\n\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n ComponentPropsWithoutRef,\n useCallback,\n} from \"react\";\nimport { useThreadViewportAutoScroll } from \"./useThreadViewportAutoScroll\";\nimport { ThreadPrimitiveViewportProvider } from \"../../context/providers/ThreadViewportProvider\";\nimport { useSizeHandle } from \"../../utils/hooks/useSizeHandle\";\nimport { useThreadViewport } from \"../../context/react/ThreadViewportContext\";\n\nexport namespace ThreadPrimitiveViewport {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div> & {\n /**\n * Whether to automatically scroll to the bottom when new messages are added.\n * When enabled, the viewport will automatically scroll to show the latest content.\n *\n * Default false if `turnAnchor` is \"top\", otherwise defaults to true.\n */\n autoScroll?: boolean | undefined;\n\n /**\n * Controls scroll anchoring behavior for new messages.\n * - \"bottom\" (default): Messages anchor at the bottom, classic chat behavior.\n * - \"top\": New user messages anchor at the top of the viewport for a focused reading experience.\n */\n turnAnchor?: \"top\" | \"bottom\" | undefined;\n\n /**\n * Whether to scroll to bottom when a new run starts.\n *\n * Defaults to true.\n */\n scrollToBottomOnRunStart?: boolean | undefined;\n\n /**\n * Whether to scroll to bottom when thread history is first loaded.\n *\n * Defaults to true.\n */\n scrollToBottomOnInitialize?: boolean | undefined;\n\n /**\n * Whether to scroll to bottom when switching to a different thread.\n *\n * Defaults to true.\n */\n scrollToBottomOnThreadSwitch?: boolean | undefined;\n };\n}\n\nconst useViewportSizeRef = () => {\n const register = useThreadViewport((s) => s.registerViewport);\n const getHeight = useCallback((el: HTMLElement) => el.clientHeight, []);\n return useSizeHandle(register, getHeight);\n};\n\nconst ThreadPrimitiveViewportScrollable = forwardRef<\n ThreadPrimitiveViewport.Element,\n ThreadPrimitiveViewport.Props\n>(\n (\n {\n autoScroll,\n scrollToBottomOnRunStart,\n scrollToBottomOnInitialize,\n scrollToBottomOnThreadSwitch,\n children,\n ...rest\n },\n forwardedRef,\n ) => {\n const autoScrollRef = useThreadViewportAutoScroll<HTMLDivElement>({\n autoScroll,\n scrollToBottomOnRunStart,\n scrollToBottomOnInitialize,\n scrollToBottomOnThreadSwitch,\n });\n const viewportSizeRef = useViewportSizeRef();\n const ref = useComposedRefs(forwardedRef, autoScrollRef, viewportSizeRef);\n\n return (\n <Primitive.div {...rest} ref={ref}>\n {children}\n </Primitive.div>\n );\n },\n);\n\nThreadPrimitiveViewportScrollable.displayName =\n \"ThreadPrimitive.ViewportScrollable\";\n\n/**\n * A scrollable viewport container for thread messages.\n *\n * This component provides a scrollable area for displaying thread messages with\n * automatic scrolling capabilities. It manages the viewport state and provides\n * context for child components to access viewport-related functionality.\n *\n * @example\n * ```tsx\n * <ThreadPrimitive.Viewport turnAnchor=\"top\">\n * <ThreadPrimitive.Messages>\n * {() => <MyMessage />}\n * </ThreadPrimitive.Messages>\n * </ThreadPrimitive.Viewport>\n * ```\n */\nexport const ThreadPrimitiveViewport = forwardRef<\n ThreadPrimitiveViewport.Element,\n ThreadPrimitiveViewport.Props\n>(({ turnAnchor, ...props }, ref) => {\n return (\n <ThreadPrimitiveViewportProvider options={{ turnAnchor }}>\n <ThreadPrimitiveViewportScrollable {...props} ref={ref} />\n </ThreadPrimitiveViewportProvider>\n );\n});\n\nThreadPrimitiveViewport.displayName = \"ThreadPrimitive.Viewport\";\n","\"use client\";\n\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallback, useRef, type RefCallback } from \"react\";\nimport { useAuiEvent } from \"@assistant-ui/store\";\nimport { useOnResizeContent } from \"../../utils/hooks/useOnResizeContent\";\nimport { useOnScrollToBottom } from \"../../utils/hooks/useOnScrollToBottom\";\nimport { useManagedRef } from \"../../utils/hooks/useManagedRef\";\nimport { writableStore } from \"../../context/ReadonlyStore\";\nimport { useThreadViewportStore } from \"../../context/react/ThreadViewportContext\";\n\nexport namespace useThreadViewportAutoScroll {\n export type Options = {\n /**\n * Whether to automatically scroll to the bottom when new messages are added.\n * When enabled, the viewport will automatically scroll to show the latest content.\n *\n * Default false if `turnAnchor` is \"top\", otherwise defaults to true.\n */\n autoScroll?: boolean | undefined;\n\n /**\n * Whether to scroll to bottom when a new run starts.\n *\n * Defaults to true.\n */\n scrollToBottomOnRunStart?: boolean | undefined;\n\n /**\n * Whether to scroll to bottom when thread history is first loaded.\n *\n * Defaults to true.\n */\n scrollToBottomOnInitialize?: boolean | undefined;\n\n /**\n * Whether to scroll to bottom when switching to a different thread.\n *\n * Defaults to true.\n */\n scrollToBottomOnThreadSwitch?: boolean | undefined;\n };\n}\n\nexport const useThreadViewportAutoScroll = <TElement extends HTMLElement>({\n autoScroll,\n scrollToBottomOnRunStart = true,\n scrollToBottomOnInitialize = true,\n scrollToBottomOnThreadSwitch = true,\n}: useThreadViewportAutoScroll.Options): RefCallback<TElement> => {\n const divRef = useRef<TElement>(null);\n\n const threadViewportStore = useThreadViewportStore();\n if (autoScroll === undefined) {\n autoScroll = threadViewportStore.getState().turnAnchor !== \"top\";\n }\n\n const lastScrollTop = useRef<number>(0);\n\n // bug: when ScrollToBottom's button changes its disabled state, the scroll stops\n // fix: delay the state change until the scroll is done\n // stores the scroll behavior to reuse during content resize, or null if not scrolling\n const scrollingToBottomBehaviorRef = useRef<ScrollBehavior | null>(null);\n\n const scrollToBottom = useCallback((behavior: ScrollBehavior) => {\n const div = divRef.current;\n if (!div) return;\n\n scrollingToBottomBehaviorRef.current = behavior;\n div.scrollTo({ top: div.scrollHeight, behavior });\n }, []);\n\n const handleScroll = () => {\n const div = divRef.current;\n if (!div) return;\n\n const isAtBottom = threadViewportStore.getState().isAtBottom;\n const newIsAtBottom =\n Math.abs(div.scrollHeight - div.scrollTop - div.clientHeight) < 1 ||\n div.scrollHeight <= div.clientHeight;\n\n if (!newIsAtBottom && lastScrollTop.current < div.scrollTop) {\n // ignore scroll down\n } else {\n if (newIsAtBottom) {\n scrollingToBottomBehaviorRef.current = null;\n }\n\n const shouldUpdate =\n newIsAtBottom || scrollingToBottomBehaviorRef.current === null;\n\n if (shouldUpdate && newIsAtBottom !== isAtBottom) {\n writableStore(threadViewportStore).setState({\n isAtBottom: newIsAtBottom,\n });\n }\n }\n\n lastScrollTop.current = div.scrollTop;\n };\n\n const resizeRef = useOnResizeContent(() => {\n const scrollBehavior = scrollingToBottomBehaviorRef.current;\n if (scrollBehavior) {\n scrollToBottom(scrollBehavior);\n } else if (autoScroll && threadViewportStore.getState().isAtBottom) {\n scrollToBottom(\"instant\");\n }\n\n handleScroll();\n });\n\n const scrollRef = useManagedRef<HTMLElement>((el) => {\n el.addEventListener(\"scroll\", handleScroll);\n return () => {\n el.removeEventListener(\"scroll\", handleScroll);\n };\n });\n\n useOnScrollToBottom(({ behavior }) => {\n scrollToBottom(behavior);\n });\n\n // autoscroll on run start\n useAuiEvent(\"thread.runStart\", () => {\n if (!scrollToBottomOnRunStart) return;\n scrollingToBottomBehaviorRef.current = \"auto\";\n requestAnimationFrame(() => {\n scrollToBottom(\"auto\");\n });\n });\n\n // scroll to bottom instantly when thread history is first loaded\n useAuiEvent(\"thread.initialize\", () => {\n if (!scrollToBottomOnInitialize) return;\n scrollingToBottomBehaviorRef.current = \"instant\";\n requestAnimationFrame(() => {\n scrollToBottom(\"instant\");\n });\n });\n\n // scroll to bottom instantly when switching threads\n useAuiEvent(\"threadListItem.switchedTo\", () => {\n if (!scrollToBottomOnThreadSwitch) return;\n scrollingToBottomBehaviorRef.current = \"instant\";\n requestAnimationFrame(() => {\n scrollToBottom(\"instant\");\n });\n });\n\n const autoScrollRef = useComposedRefs<TElement>(resizeRef, scrollRef, divRef);\n return autoScrollRef as RefCallback<TElement>;\n};\n","import { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useCallback } from \"react\";\nimport { useManagedRef } from \"./useManagedRef\";\n\nexport const useOnResizeContent = (callback: () => void) => {\n const callbackRef = useCallbackRef(callback);\n\n const refCallback = useCallback(\n (el: HTMLElement) => {\n const resizeObserver = new ResizeObserver(() => {\n callbackRef();\n });\n\n const mutationObserver = new MutationObserver((mutations) => {\n // Filter out style-only attribute mutations to prevent feedback loops\n // with components like ThreadViewportSlack that write styles in response\n // to viewport changes\n const hasRelevantMutation = mutations.some(\n (m) => m.type !== \"attributes\" || m.attributeName !== \"style\",\n );\n if (hasRelevantMutation) {\n callbackRef();\n }\n });\n\n resizeObserver.observe(el);\n mutationObserver.observe(el, {\n childList: true,\n subtree: true,\n attributes: true,\n characterData: true,\n });\n\n return () => {\n resizeObserver.disconnect();\n mutationObserver.disconnect();\n };\n },\n [callbackRef],\n );\n\n return useManagedRef(refCallback);\n};\n","\"use client\";\n\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n ComponentPropsWithoutRef,\n useCallback,\n} from \"react\";\nimport { useSizeHandle } from \"../../utils/hooks/useSizeHandle\";\nimport { useThreadViewport } from \"../../context/react/ThreadViewportContext\";\n\nexport namespace ThreadPrimitiveViewportFooter {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\n/**\n * A footer container that measures its height for scroll calculations.\n *\n * This component measures its height and provides it to the viewport context\n * for use in scroll calculations (e.g., ViewportSlack min-height).\n *\n * Multiple ViewportFooter components can be used - their heights are summed.\n *\n * Typically used with `className=\"sticky bottom-0\"` to keep the footer\n * visible at the bottom of the viewport while scrolling.\n *\n * @example\n * ```tsx\n * <ThreadPrimitive.Viewport>\n * <ThreadPrimitive.Messages>\n * {() => <MyMessage />}\n * </ThreadPrimitive.Messages>\n * <ThreadPrimitive.ViewportFooter className=\"sticky bottom-0\">\n * <Composer />\n * </ThreadPrimitive.ViewportFooter>\n * </ThreadPrimitive.Viewport>\n * ```\n */\nexport const ThreadPrimitiveViewportFooter = forwardRef<\n ThreadPrimitiveViewportFooter.Element,\n ThreadPrimitiveViewportFooter.Props\n>((props, forwardedRef) => {\n const register = useThreadViewport((s) => s.registerContentInset);\n const getHeight = useCallback((el: HTMLElement) => {\n const marginTop = parseFloat(getComputedStyle(el).marginTop) || 0;\n return el.offsetHeight + marginTop;\n }, []);\n\n const resizeRef = useSizeHandle(register, getHeight);\n\n const ref = useComposedRefs(forwardedRef, resizeRef);\n\n return <Primitive.div {...props} ref={ref} />;\n});\n\nThreadPrimitiveViewportFooter.displayName = \"ThreadPrimitive.ViewportFooter\";\n","\"use client\";\n\nimport {\n ActionButtonElement,\n ActionButtonProps,\n createActionButton,\n} from \"../../utils/createActionButton\";\nimport { useCallback } from \"react\";\nimport {\n useThreadViewport,\n useThreadViewportStore,\n} from \"../../context/react/ThreadViewportContext\";\n\nexport namespace useThreadScrollToBottom {\n export type Options = {\n behavior?: ScrollBehavior | undefined;\n };\n}\n\nconst useThreadScrollToBottom = ({\n behavior,\n}: useThreadScrollToBottom.Options = {}) => {\n const isAtBottom = useThreadViewport((s) => s.isAtBottom);\n\n const threadViewportStore = useThreadViewportStore();\n\n const handleScrollToBottom = useCallback(() => {\n threadViewportStore.getState().scrollToBottom({ behavior });\n }, [threadViewportStore, behavior]);\n\n if (isAtBottom) return null;\n return handleScrollToBottom;\n};\n\nexport namespace ThreadPrimitiveScrollToBottom {\n export type Element = ActionButtonElement;\n export type Props = ActionButtonProps<typeof useThreadScrollToBottom>;\n}\n\nexport const ThreadPrimitiveScrollToBottom = createActionButton(\n \"ThreadPrimitive.ScrollToBottom\",\n useThreadScrollToBottom,\n [\"behavior\"],\n);\n","\"use client\";\n\nimport {\n ActionButtonElement,\n ActionButtonProps,\n createActionButton,\n} from \"../../utils/createActionButton\";\nimport { useSuggestionTrigger as useSuggestionTriggerBehavior } from \"@assistant-ui/core/react\";\n\nconst useThreadSuggestion = ({\n prompt,\n send,\n clearComposer,\n autoSend,\n method: _method,\n}: {\n /** The suggestion prompt. */\n prompt: string;\n\n /**\n * When true, automatically sends the message.\n * When false, replaces or appends the composer text with the suggestion - depending on the value of `clearComposer`.\n */\n send?: boolean | undefined;\n\n /**\n * Whether to clear the composer after sending.\n * When send is set to false, determines if composer text is replaced with suggestion (true, default),\n * or if it's appended to the composer text (false).\n *\n * @default true\n */\n clearComposer?: boolean | undefined;\n\n /** @deprecated Use `send` instead. */\n autoSend?: boolean | undefined;\n\n /** @deprecated Use `clearComposer` instead. */\n method?: \"replace\";\n}) => {\n // ========== Deprecation Mapping ==========\n const resolvedSend = send ?? autoSend ?? false;\n // ==========================================\n\n const { disabled, trigger } = useSuggestionTriggerBehavior({\n prompt,\n send: resolvedSend,\n clearComposer,\n });\n if (disabled) return null;\n return trigger;\n};\n\nexport namespace ThreadPrimitiveSuggestion {\n export type Element = ActionButtonElement;\n export type Props = ActionButtonProps<typeof useThreadSuggestion>;\n}\n\nexport const ThreadPrimitiveSuggestion = createActionButton(\n \"ThreadPrimitive.Suggestion\",\n useThreadSuggestion,\n [\"prompt\", \"send\", \"clearComposer\", \"autoSend\", \"method\"],\n);\n","type VoiceCallbacks = {\n getLanguage: () => string\n onInterimTranscript: (text: string) => void\n onFinalTranscript: (text: string) => void\n onListeningChange: (isListening: boolean) => void\n onLevelChange: (level: number) => void\n onStatusChange: (status: string) => void\n onError: (message: string) => void\n}\n\ntype SpeechRecognitionAlternativeLike = {\n transcript: string\n}\n\ntype SpeechRecognitionResultLike = {\n isFinal: boolean\n length: number\n [index: number]: SpeechRecognitionAlternativeLike\n}\n\ntype SpeechRecognitionResultListLike = {\n length: number\n [index: number]: SpeechRecognitionResultLike\n}\n\ntype SpeechRecognitionEventLike = Event & {\n resultIndex: number\n results: SpeechRecognitionResultListLike\n}\n\ntype SpeechRecognitionErrorEventLike = Event & {\n error?: string\n message?: string\n}\n\ninterface SpeechRecognitionLike extends EventTarget {\n lang: string\n interimResults: boolean\n continuous: boolean\n maxAlternatives: number\n onresult: ((event: SpeechRecognitionEventLike) => void) | null\n onerror: ((event: SpeechRecognitionErrorEventLike) => void) | null\n onend: (() => void) | null\n onstart: (() => void) | null\n start: () => void\n stop: () => void\n abort: () => void\n}\n\ntype SpeechRecognitionConstructor = new () => SpeechRecognitionLike\n\ntype SpeechRecognitionWindow = Window & {\n SpeechRecognition?: SpeechRecognitionConstructor\n webkitSpeechRecognition?: SpeechRecognitionConstructor\n}\n\nconst FILLER_PHRASES = [\n \"you know\",\n \"i mean\",\n \"sort of\",\n \"kind of\",\n \"and so on\",\n \"как бы\",\n \"в общем\",\n \"вообще-то\",\n \"это самое\",\n \"так сказать\",\n \"по сути\",\n \"скажем так\",\n \"и так далее\",\n \"на самом деле\",\n \"if you know\",\n \"basically\",\n \"literally\",\n \"actually\",\n \"really\",\n \"короче\",\n \"значит\",\n \"собственно\",\n \"просто\",\n \"ладно\",\n \"ну вот\",\n \"ну\",\n \"вот\",\n \"типа\",\n \"эм\",\n \"ээ\",\n \"эээ\",\n \"мм\",\n \"uh\",\n \"um\",\n \"er\",\n \"ah\",\n \"like\",\n \"well\",\n]\n\nfunction escapeRegex(value: string) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n}\n\nfunction normalizeWhitespace(text: string) {\n return text.replace(/\\s+/g, \" \").trim()\n}\n\nfunction removeFillerPhrases(text: string) {\n let cleaned = text\n for (const phrase of [...FILLER_PHRASES].sort((left, right) => right.length - left.length)) {\n const escaped = escapeRegex(phrase)\n const pattern = new RegExp(`(^|[\\\\s,.;:!?()\\\\[\\\\]{}-])${escaped}(?=$|[\\\\s,.;:!?()\\\\[\\\\]{}-])`, \"giu\")\n cleaned = cleaned.replace(pattern, (_match, boundary: string) => boundary || \" \")\n }\n return cleaned\n}\n\nfunction dedupeAdjacentWords(text: string) {\n const parts = text.split(/\\s+/)\n const nextParts: string[] = []\n let previousKey = \"\"\n\n for (const part of parts) {\n const wordKey = part.toLowerCase().replace(/^[^\\p{L}\\p{N}]+|[^\\p{L}\\p{N}]+$/gu, \"\")\n if (wordKey && wordKey === previousKey) {\n continue\n }\n nextParts.push(part)\n previousKey = wordKey\n }\n\n return nextParts.join(\" \")\n}\n\nfunction normalizePunctuation(text: string) {\n return text\n .replace(/\\s+([,.;:!?])/g, \"$1\")\n .replace(/([,.;:!?])([^\\s])/g, \"$1 $2\")\n .replace(/\\s+/g, \" \")\n .trim()\n}\n\nexport function sanitizeSpokenText(text: string) {\n const cleaned = normalizePunctuation(\n dedupeAdjacentWords(removeFillerPhrases(normalizeWhitespace(text)))\n )\n return cleaned\n}\n\nexport function supportsVoiceInput() {\n if (typeof window === \"undefined\") {\n return false\n }\n const recognitionWindow = window as SpeechRecognitionWindow\n return Boolean(recognitionWindow.SpeechRecognition || recognitionWindow.webkitSpeechRecognition)\n}\n\nfunction recognitionConstructor() {\n if (typeof window === \"undefined\") {\n return null\n }\n const recognitionWindow = window as SpeechRecognitionWindow\n return (\n recognitionWindow.SpeechRecognition ||\n recognitionWindow.webkitSpeechRecognition ||\n null\n ) as SpeechRecognitionConstructor | null\n}\n\nfunction errorMessageForCode(code: string | undefined) {\n switch (code) {\n case \"not-allowed\":\n case \"service-not-allowed\":\n return \"Доступ к микрофону заблокирован.\"\n case \"audio-capture\":\n return \"Микрофон не найден.\"\n case \"network\":\n return \"Ошибка сети при распознавании речи.\"\n case \"no-speech\":\n return \"Речь не распознана.\"\n case \"aborted\":\n return \"Голосовой ввод был отменён.\"\n default:\n return \"Не удалось обработать голосовой ввод.\"\n }\n}\n\nexport class VoiceInputController {\n private readonly callbacks: VoiceCallbacks\n private readonly recognition: SpeechRecognitionLike | null\n private finalTranscript = \"\"\n private interimTranscript = \"\"\n private shouldSendOnEnd = false\n private listening = false\n private sessionActive = false\n private manualStopRequested = false\n private restartTimeoutId: number | null = null\n private statusAfterEnd = \"Голосовой ввод остановлен.\"\n private mediaStream: MediaStream | null = null\n private audioContext: AudioContext | null = null\n private analyser: AnalyserNode | null = null\n private sourceNode: MediaStreamAudioSourceNode | null = null\n private levelFrameId: number | null = null\n private smoothedLevel = 0\n\n constructor(callbacks: VoiceCallbacks) {\n this.callbacks = callbacks\n const Recognition = recognitionConstructor()\n this.recognition = Recognition ? new Recognition() : null\n\n if (!this.recognition) {\n return\n }\n\n this.recognition.continuous = true\n this.recognition.interimResults = true\n this.recognition.maxAlternatives = 1\n\n this.recognition.onstart = () => {\n this.listening = true\n this.sessionActive = true\n this.callbacks.onListeningChange(true)\n this.callbacks.onStatusChange(\"Слушаю. Нажмите стоп, когда будете готовы отправить.\")\n }\n\n this.recognition.onresult = (event) => {\n let finalChunk = this.finalTranscript\n let interimChunk = \"\"\n\n for (let index = event.resultIndex; index < event.results.length; index += 1) {\n const result = event.results[index]\n const transcript = result[0]?.transcript ?? \"\"\n if (!transcript) {\n continue\n }\n if (result.isFinal) {\n finalChunk = `${finalChunk} ${transcript}`.trim()\n } else {\n interimChunk = `${interimChunk} ${transcript}`.trim()\n }\n }\n\n this.finalTranscript = finalChunk\n this.interimTranscript = interimChunk\n const preview = sanitizeSpokenText(`${finalChunk} ${interimChunk}`.trim())\n this.callbacks.onInterimTranscript(preview)\n if (preview) {\n this.callbacks.onStatusChange(`Черновик голоса: ${preview}`)\n }\n }\n\n this.recognition.onerror = (event) => {\n if (event.error === \"no-speech\" && this.sessionActive && !this.manualStopRequested) {\n this.statusAfterEnd = \"Продолжаю слушать...\"\n return\n }\n if (event.error === \"aborted\" && this.manualStopRequested) {\n this.statusAfterEnd = \"Голосовой ввод остановлен.\"\n return\n }\n this.sessionActive = false\n this.shouldSendOnEnd = false\n this.statusAfterEnd = errorMessageForCode(event.error)\n this.stopLevelMonitoring()\n this.callbacks.onError(this.statusAfterEnd)\n }\n\n this.recognition.onend = () => {\n this.listening = false\n if (this.sessionActive && !this.manualStopRequested) {\n this.callbacks.onStatusChange(\"Продолжаю слушать...\")\n this.scheduleRestart()\n return\n }\n\n this.sessionActive = false\n this.stopLevelMonitoring()\n this.finalizeTranscript()\n }\n }\n\n get supported() {\n return Boolean(this.recognition)\n }\n\n get isListening() {\n return this.sessionActive || this.listening\n }\n\n private finalizeTranscript() {\n this.callbacks.onListeningChange(false)\n this.callbacks.onLevelChange(0)\n const finalText = sanitizeSpokenText(this.finalTranscript)\n this.finalTranscript = \"\"\n this.interimTranscript = \"\"\n const shouldSend = this.shouldSendOnEnd\n this.shouldSendOnEnd = false\n this.manualStopRequested = false\n\n if (!shouldSend) {\n this.callbacks.onStatusChange(this.statusAfterEnd)\n this.statusAfterEnd = \"Голосовой ввод остановлен.\"\n return\n }\n\n if (!finalText) {\n this.callbacks.onStatusChange(\"Не удалось получить полезный текст из голоса.\")\n this.statusAfterEnd = \"Голосовой ввод остановлен.\"\n return\n }\n\n this.callbacks.onStatusChange(\"Голос распознан. Проверьте текст и отправьте сообщение.\")\n this.statusAfterEnd = \"Голосовой ввод остановлен.\"\n this.callbacks.onFinalTranscript(finalText)\n }\n\n private stopLevelMonitoring() {\n if (this.levelFrameId !== null) {\n window.cancelAnimationFrame(this.levelFrameId)\n this.levelFrameId = null\n }\n\n this.analyser?.disconnect()\n this.sourceNode?.disconnect()\n this.analyser = null\n this.sourceNode = null\n\n if (this.mediaStream) {\n for (const track of this.mediaStream.getTracks()) {\n track.stop()\n }\n this.mediaStream = null\n }\n\n if (this.audioContext) {\n void this.audioContext.close().catch(() => undefined)\n this.audioContext = null\n }\n\n this.smoothedLevel = 0\n this.callbacks.onLevelChange(0)\n }\n\n private sampleLevel() {\n if (!this.analyser) {\n this.callbacks.onLevelChange(0)\n return\n }\n\n const data = new Uint8Array(this.analyser.fftSize)\n const tick = () => {\n if (!this.analyser || (!this.sessionActive && !this.listening)) {\n this.callbacks.onLevelChange(0)\n return\n }\n\n this.analyser.getByteTimeDomainData(data)\n let sum = 0\n for (const value of data) {\n const normalized = (value - 128) / 128\n sum += normalized * normalized\n }\n const rms = Math.sqrt(sum / data.length)\n const level = Math.min(1, rms * 4.6)\n this.smoothedLevel = this.smoothedLevel * 0.68 + level * 0.32\n this.callbacks.onLevelChange(this.smoothedLevel)\n this.levelFrameId = window.requestAnimationFrame(tick)\n }\n\n tick()\n }\n\n private async startLevelMonitoring() {\n if (typeof window === \"undefined\" || !window.isSecureContext || !navigator.mediaDevices?.getUserMedia) {\n this.callbacks.onLevelChange(0)\n return\n }\n\n this.stopLevelMonitoring()\n\n try {\n const stream = await navigator.mediaDevices.getUserMedia({\n audio: {\n echoCancellation: true,\n noiseSuppression: true,\n },\n })\n\n if (!this.sessionActive && !this.listening) {\n for (const track of stream.getTracks()) {\n track.stop()\n }\n return\n }\n\n const AudioContextCtor = window.AudioContext || (window as Window & { webkitAudioContext?: typeof AudioContext }).webkitAudioContext\n if (!AudioContextCtor) {\n for (const track of stream.getTracks()) {\n track.stop()\n }\n return\n }\n\n this.mediaStream = stream\n this.audioContext = new AudioContextCtor()\n this.sourceNode = this.audioContext.createMediaStreamSource(stream)\n this.analyser = this.audioContext.createAnalyser()\n this.analyser.fftSize = 128\n this.analyser.smoothingTimeConstant = 0.72\n this.sourceNode.connect(this.analyser)\n this.sampleLevel()\n } catch {\n this.callbacks.onLevelChange(0)\n }\n }\n\n private clearRestartTimer() {\n if (this.restartTimeoutId !== null) {\n window.clearTimeout(this.restartTimeoutId)\n this.restartTimeoutId = null\n }\n }\n\n private scheduleRestart() {\n this.clearRestartTimer()\n this.restartTimeoutId = window.setTimeout(() => {\n this.restartTimeoutId = null\n if (!this.recognition || !this.sessionActive || this.manualStopRequested) {\n return\n }\n try {\n this.recognition.lang = this.callbacks.getLanguage()\n this.recognition.start()\n } catch {\n this.sessionActive = false\n this.callbacks.onListeningChange(false)\n this.callbacks.onError(\"Не удалось продолжить голосовой ввод.\")\n }\n }, 160)\n }\n\n start() {\n if (!this.recognition) {\n this.callbacks.onError(\"Голосовой ввод не поддерживается в этом браузере.\")\n return false\n }\n if (this.sessionActive || this.listening) {\n return true\n }\n\n this.finalTranscript = \"\"\n this.interimTranscript = \"\"\n this.shouldSendOnEnd = false\n this.sessionActive = true\n this.manualStopRequested = false\n this.statusAfterEnd = \"Голосовой ввод остановлен.\"\n this.recognition.lang = this.callbacks.getLanguage()\n this.clearRestartTimer()\n\n try {\n this.recognition.start()\n void this.startLevelMonitoring()\n return true\n } catch {\n this.sessionActive = false\n this.stopLevelMonitoring()\n this.callbacks.onError(\"Не удалось запустить голосовой ввод.\")\n return false\n }\n }\n\n stop() {\n if (!this.recognition || (!this.listening && !this.sessionActive)) {\n return\n }\n this.manualStopRequested = true\n this.sessionActive = false\n this.shouldSendOnEnd = true\n this.clearRestartTimer()\n this.stopLevelMonitoring()\n if (this.listening) {\n this.recognition.stop()\n } else {\n this.finalizeTranscript()\n }\n }\n\n cancel() {\n if (!this.recognition) {\n return\n }\n this.manualStopRequested = true\n this.sessionActive = false\n this.shouldSendOnEnd = false\n this.clearRestartTimer()\n this.stopLevelMonitoring()\n if (this.listening) {\n this.recognition.abort()\n } else {\n this.callbacks.onListeningChange(false)\n this.callbacks.onLevelChange(0)\n }\n }\n\n destroy() {\n this.cancel()\n if (!this.recognition) {\n return\n }\n this.recognition.onstart = null\n this.recognition.onresult = null\n this.recognition.onerror = null\n this.recognition.onend = null\n }\n}\n","export const EMBED_WIDGET_STYLES = `\n :host {\n all: initial;\n display: block;\n position: static;\n color-scheme: light;\n }\n\n *, *::before, *::after {\n box-sizing: border-box;\n }\n\n button,\n input {\n font: inherit;\n }\n\n .blinq-shell {\n position: fixed;\n bottom: 24px;\n z-index: 2147483647;\n display: flex;\n flex-direction: column;\n gap: 12px;\n width: 420px;\n max-width: calc(100vw - 24px);\n font-family:\n \"Inter\", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,\n \"Segoe UI\", sans-serif;\n pointer-events: none;\n --blinq-accent: #111111;\n --blinq-background: #ffffff;\n --blinq-panel: rgba(255, 255, 255, 0.98);\n --blinq-panel-soft: #fafafa;\n --blinq-surface: #ffffff;\n --blinq-surface-soft: #f5f5f5;\n --blinq-surface-muted: #ededed;\n --blinq-border: rgba(17, 17, 17, 0.08);\n --blinq-border-strong: rgba(17, 17, 17, 0.18);\n --blinq-text: #111111;\n --blinq-text-soft: #262626;\n --blinq-text-muted: #737373;\n --blinq-user-bubble: #111111;\n --blinq-user-text: #ffffff;\n --blinq-shadow: 0 24px 60px rgba(17, 17, 17, 0.12);\n }\n\n .blinq-shell[data-side=\"left\"] {\n left: 24px;\n align-items: flex-start;\n }\n\n .blinq-shell[data-side=\"right\"] {\n right: 24px;\n align-items: flex-end;\n }\n\n .blinq-panel,\n .blinq-launcher {\n pointer-events: auto;\n }\n\n .blinq-launcher {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n min-height: 58px;\n padding: 0 18px;\n border: 1px solid var(--blinq-border);\n border-radius: 20px;\n background: #ffffff;\n color: var(--blinq-text);\n box-shadow: 0 18px 40px rgba(17, 17, 17, 0.12);\n backdrop-filter: blur(18px);\n -webkit-backdrop-filter: blur(18px);\n transition:\n transform 180ms ease,\n box-shadow 180ms ease,\n border-color 180ms ease;\n }\n\n .blinq-launcher:hover {\n transform: translateY(-2px);\n border-color: rgba(17, 17, 17, 0.16);\n box-shadow: 0 22px 46px rgba(17, 17, 17, 0.16);\n }\n\n .blinq-launcher-badge {\n display: grid;\n place-items: center;\n width: 34px;\n height: 34px;\n border-radius: 12px;\n background: #111111;\n color: #ffffff;\n transition:\n transform 180ms ease,\n box-shadow 180ms ease;\n }\n\n .blinq-launcher:hover .blinq-launcher-badge {\n transform: scale(1.06);\n box-shadow: 0 10px 24px rgba(17, 17, 17, 0.22);\n }\n\n .blinq-launcher-icon-only {\n width: 58px;\n min-width: 58px;\n padding: 0;\n border-radius: 18px;\n }\n\n .blinq-launcher-agent {\n overflow: visible;\n }\n\n .blinq-agent-orbit {\n stroke: rgba(255, 255, 255, 0.42);\n stroke-width: 1.3;\n stroke-dasharray: 2.6 2.6;\n transform-origin: center;\n transition: opacity 180ms ease;\n }\n\n .blinq-agent-spark,\n .blinq-agent-head,\n .blinq-agent-antenna,\n .blinq-agent-antenna-dot,\n .blinq-agent-neck {\n transform-origin: center;\n }\n\n .blinq-launcher:hover .blinq-agent-orbit {\n animation: blinq-agent-spin 2.2s linear infinite;\n }\n\n .blinq-launcher:hover .blinq-agent-spark {\n animation: blinq-agent-spark 1.1s ease-in-out infinite;\n }\n\n .blinq-launcher:hover .blinq-agent-head,\n .blinq-launcher:hover .blinq-agent-neck,\n .blinq-launcher:hover .blinq-agent-antenna,\n .blinq-launcher:hover .blinq-agent-antenna-dot {\n animation: blinq-agent-bob 1.35s ease-in-out infinite;\n }\n\n .blinq-launcher-copy {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n line-height: 1.1;\n }\n\n .blinq-launcher-label {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--blinq-text-muted);\n }\n\n .blinq-launcher-title {\n margin-top: 3px;\n font-size: 14px;\n font-weight: 600;\n color: var(--blinq-text);\n }\n\n .blinq-panel {\n width: 100%;\n max-width: 420px;\n border: 1px solid var(--blinq-border);\n border-radius: 28px;\n overflow: hidden;\n background: #ffffff;\n box-shadow: var(--blinq-shadow);\n backdrop-filter: blur(24px);\n -webkit-backdrop-filter: blur(24px);\n }\n\n .blinq-header {\n padding: 16px;\n border-bottom: 1px solid var(--blinq-border);\n background: #ffffff;\n }\n\n .blinq-status-line {\n margin-top: 10px;\n font-size: 12px;\n line-height: 1.45;\n color: var(--blinq-text-muted);\n }\n\n .blinq-header-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n\n .blinq-header-copy {\n min-width: 0;\n flex: 1;\n }\n\n .blinq-header-badges {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .blinq-heading-row {\n margin-top: 14px;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n }\n\n .blinq-heading {\n font-size: 16px;\n font-weight: 700;\n letter-spacing: -0.02em;\n color: var(--blinq-text);\n }\n\n .blinq-subheading {\n margin-top: 6px;\n max-width: 320px;\n font-size: 13px;\n line-height: 1.45;\n color: var(--blinq-text-muted);\n }\n\n .blinq-statusbar {\n margin-top: 14px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n flex-wrap: wrap;\n }\n\n .blinq-status {\n display: inline-flex;\n align-items: center;\n min-height: 34px;\n padding: 0 12px;\n border-radius: 999px;\n border: 1px solid var(--blinq-border);\n background: #f8f8f8;\n color: var(--blinq-text-soft);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .blinq-runtime-chip {\n display: inline-flex;\n align-items: center;\n min-height: 34px;\n padding: 0 12px;\n border-radius: 999px;\n background: #111111;\n border: 1px solid #111111;\n color: #ffffff;\n font-size: 12px;\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n }\n\n .blinq-workspace {\n display: grid;\n grid-template-columns: 112px minmax(0, 1fr);\n min-height: 430px;\n }\n\n .blinq-sidebar {\n display: flex;\n flex-direction: column;\n gap: 14px;\n padding: 16px;\n border-right: 1px solid var(--blinq-border);\n background: #fafafa;\n }\n\n .blinq-sidebar-group {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .blinq-tab-trigger {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n min-height: 56px;\n padding: 10px;\n border: 1px solid transparent;\n border-radius: 18px;\n background: transparent;\n color: var(--blinq-text-soft);\n cursor: pointer;\n transition:\n background 120ms ease,\n border-color 120ms ease,\n color 120ms ease,\n transform 120ms ease;\n }\n\n .blinq-tab-trigger:hover {\n background: rgba(255,255,255,0.9);\n border-color: var(--blinq-border);\n }\n\n .blinq-tab-trigger-active {\n background: #ffffff;\n border-color: rgba(17, 17, 17, 0.16);\n box-shadow: 0 10px 24px rgba(17, 17, 17, 0.08);\n color: var(--blinq-text);\n }\n\n .blinq-tab-icon {\n display: grid;\n place-items: center;\n width: 32px;\n height: 32px;\n border-radius: 12px;\n background: rgba(15, 23, 42, 0.04);\n color: currentColor;\n flex: 0 0 auto;\n }\n\n .blinq-tab-copy {\n display: flex;\n flex-direction: column;\n min-width: 0;\n align-items: flex-start;\n text-align: left;\n }\n\n .blinq-tab-label {\n font-size: 13px;\n font-weight: 600;\n }\n\n .blinq-tab-caption {\n margin-top: 2px;\n font-size: 11px;\n color: var(--blinq-text-muted);\n }\n\n .blinq-tab-count {\n margin-left: auto;\n min-width: 22px;\n height: 22px;\n padding: 0 6px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 999px;\n background: rgba(15, 23, 42, 0.06);\n color: var(--blinq-text-soft);\n font-size: 11px;\n font-weight: 700;\n }\n\n .blinq-separator {\n height: 1px;\n background: var(--blinq-border);\n }\n\n .blinq-sidebar-card {\n gap: 12px;\n border-radius: 18px;\n background: rgba(255,255,255,0.94);\n box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);\n }\n\n .blinq-sidebar-card-header {\n padding: 14px 14px 0;\n }\n\n .blinq-sidebar-card-content {\n padding: 0 14px 14px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .blinq-stat-line {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-size: 12px;\n color: var(--blinq-text-muted);\n }\n\n .blinq-stat-line strong {\n color: var(--blinq-text);\n font-size: 12px;\n }\n\n .blinq-main {\n display: flex;\n flex-direction: column;\n min-width: 0;\n background: transparent;\n }\n\n .blinq-main-toolbar {\n padding: 16px 18px 12px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .blinq-toolbar-label {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--blinq-text-muted);\n }\n\n .blinq-prompt-row {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n .blinq-prompt-chip {\n padding: 8px 12px;\n border-radius: 999px;\n border: 1px solid var(--blinq-border);\n background: rgba(255,255,255,0.95);\n color: var(--blinq-text-soft);\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n transition:\n background 120ms ease,\n border-color 120ms ease,\n color 120ms ease,\n transform 120ms ease;\n }\n\n .blinq-prompt-chip:hover {\n border-color: rgba(17, 17, 17, 0.16);\n color: #111111;\n background: #f7f7f7;\n }\n\n .blinq-scroll {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-height: 0;\n height: 100%;\n max-height: 420px;\n padding: 16px;\n overflow-y: auto;\n }\n\n .blinq-thread {\n min-height: 0;\n }\n\n .blinq-thread-viewport {\n width: 100%;\n }\n\n .blinq-scroll-actions,\n .blinq-scroll-context {\n padding-top: 18px;\n }\n\n .blinq-scroll::-webkit-scrollbar {\n width: 8px;\n }\n\n .blinq-scroll::-webkit-scrollbar-thumb {\n background: rgba(148, 163, 184, 0.25);\n border-radius: 999px;\n }\n\n .blinq-message {\n max-width: 88%;\n border-radius: 20px;\n padding: 13px 14px;\n font-size: 14px;\n line-height: 1.55;\n white-space: pre-wrap;\n border: 1px solid var(--blinq-border);\n box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);\n }\n\n .blinq-message[data-role=\"assistant\"] {\n align-self: flex-start;\n background: rgba(255,255,255,0.98);\n color: var(--blinq-text);\n }\n\n .blinq-message[data-kind=\"artifact\"] {\n max-width: 100%;\n width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n box-shadow: none;\n }\n\n .blinq-message[data-role=\"user\"] {\n align-self: flex-end;\n background: var(--blinq-user-bubble);\n border-color: rgba(17, 17, 17, 0.22);\n color: var(--blinq-user-text);\n }\n\n .blinq-message-copy {\n display: block;\n }\n\n .blinq-message-copy-reveal {\n animation: blinq-blur-in 220ms cubic-bezier(0.16, 1, 0.3, 1);\n will-change: opacity, transform, filter;\n }\n\n .blinq-thinking-card {\n align-self: flex-start;\n background: rgba(255,255,255,0.98);\n color: var(--blinq-text);\n }\n\n .blinq-thinking {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n min-height: 20px;\n font-size: 13px;\n color: var(--blinq-text-muted);\n opacity: 1;\n transform: translateY(0);\n transition:\n opacity 180ms ease,\n transform 180ms ease;\n }\n\n .blinq-thinking-dots {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n }\n\n .blinq-thinking-dots > span {\n width: 6px;\n height: 6px;\n border-radius: 999px;\n background: #111111;\n animation: blinq-thinking-pulse 1.1s ease-in-out infinite;\n }\n\n .blinq-thinking-dots > span:nth-child(2) {\n animation-delay: 120ms;\n }\n\n .blinq-thinking-dots > span:nth-child(3) {\n animation-delay: 240ms;\n }\n\n .blinq-card {\n display: flex;\n flex-direction: column;\n gap: 14px;\n border: 1px solid var(--blinq-border);\n border-radius: 20px;\n background: var(--blinq-surface);\n color: var(--blinq-text);\n box-shadow: 0 16px 36px rgba(15, 23, 42, 0.06);\n }\n\n .blinq-card-header {\n display: flex;\n flex-direction: column;\n gap: 7px;\n padding: 16px 16px 0;\n }\n\n .blinq-card-title {\n font-size: 15px;\n font-weight: 700;\n color: var(--blinq-text);\n }\n\n .blinq-card-description {\n font-size: 13px;\n line-height: 1.5;\n color: var(--blinq-text-muted);\n }\n\n .blinq-card-content {\n padding: 0 16px 16px;\n }\n\n .blinq-action-card {\n align-self: stretch;\n gap: 0;\n }\n\n .blinq-plan-card {\n border-color: var(--blinq-border-strong);\n }\n\n .blinq-plan-step {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n padding: 10px 0;\n border-top: 1px solid rgba(17, 17, 17, 0.06);\n }\n\n .blinq-plan-step:first-child {\n border-top: 0;\n padding-top: 0;\n }\n\n .blinq-plan-step-index {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n border-radius: 999px;\n background: #111111;\n color: #ffffff;\n font-size: 11px;\n font-weight: 700;\n flex: none;\n }\n\n .blinq-plan-step-copy {\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 3px;\n font-size: 13px;\n color: var(--blinq-text);\n }\n\n .blinq-plan-step-meta {\n font-size: 12px;\n color: var(--blinq-text-muted);\n }\n\n .blinq-plan-step[data-current=\"true\"] .blinq-plan-step-index {\n box-shadow: 0 0 0 4px rgba(17, 17, 17, 0.08);\n }\n\n .blinq-plan-step[data-status=\"completed\"] .blinq-plan-step-index {\n background: #111111;\n }\n\n .blinq-plan-step[data-status=\"failed\"] .blinq-plan-step-index,\n .blinq-plan-step[data-status=\"cancelled\"] .blinq-plan-step-index {\n background: #525252;\n }\n\n .blinq-action-meta-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n .blinq-action-details {\n margin-top: 8px;\n }\n\n .blinq-action-details > summary {\n cursor: pointer;\n font-size: 12px;\n font-weight: 600;\n color: #111111;\n list-style: none;\n }\n\n .blinq-action-details > summary::-webkit-details-marker {\n display: none;\n }\n\n .blinq-code {\n margin-top: 10px;\n padding: 10px 12px;\n border-radius: 14px;\n background: var(--blinq-surface-soft);\n border: 1px solid var(--blinq-border);\n font-size: 12px;\n line-height: 1.45;\n white-space: pre-wrap;\n color: var(--blinq-text-soft);\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n }\n\n .blinq-code-compact {\n margin-top: 12px;\n }\n\n .blinq-action-state {\n margin-top: 12px;\n font-size: 12px;\n color: var(--blinq-text-muted);\n }\n\n .blinq-action-state[data-state=\"approved\"] {\n color: #111111;\n }\n\n .blinq-action-state[data-state=\"declined\"] {\n color: var(--blinq-text-muted);\n }\n\n .blinq-actions {\n display: flex;\n gap: 10px;\n margin-top: 14px;\n }\n\n .blinq-actions > * {\n flex: 1;\n }\n\n .blinq-context-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 12px;\n }\n\n .blinq-context-card {\n min-height: 150px;\n }\n\n .blinq-context-card-wide {\n grid-column: 1 / -1;\n }\n\n .blinq-context-copy {\n font-size: 13px;\n line-height: 1.5;\n color: var(--blinq-text-soft);\n }\n\n .blinq-empty-card {\n min-height: 180px;\n justify-content: center;\n }\n\n .blinq-badge-pill {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 28px;\n padding: 0 10px;\n border-radius: 999px;\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.06em;\n text-transform: uppercase;\n }\n\n .blinq-badge-pill-default {\n background: rgba(15, 23, 42, 0.05);\n color: var(--blinq-text-soft);\n }\n\n .blinq-badge-pill-outline {\n border: 1px solid var(--blinq-border);\n color: var(--blinq-text-muted);\n background: rgba(255,255,255,0.84);\n }\n\n .blinq-badge-pill-soft {\n background: #f5f5f5;\n color: #111111;\n }\n\n .blinq-badge-pill-accent {\n background: #111111;\n color: #ffffff;\n }\n\n .blinq-composer {\n display: flex;\n flex-direction: column;\n gap: 10px;\n padding: 0 16px 16px;\n border-top: 1px solid var(--blinq-border);\n background: #ffffff;\n }\n\n .blinq-composer-copy {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .blinq-composer-title {\n font-size: 12px;\n font-weight: 700;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: var(--blinq-text-muted);\n }\n\n .blinq-composer-hint {\n font-size: 13px;\n line-height: 1.45;\n color: var(--blinq-text-muted);\n }\n\n .blinq-composer-controls {\n display: flex;\n padding-top: 14px;\n }\n\n .blinq-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n border-radius: 14px;\n border: 1px solid transparent;\n font-size: 14px;\n font-weight: 600;\n transition:\n background 120ms ease,\n border-color 120ms ease,\n color 120ms ease,\n opacity 120ms ease,\n transform 120ms ease;\n cursor: pointer;\n outline: none;\n }\n\n .blinq-button:disabled {\n opacity: 0.55;\n cursor: not-allowed;\n }\n\n .blinq-button:focus-visible,\n .blinq-input:focus-visible,\n .blinq-tab-trigger:focus-visible,\n .blinq-prompt-chip:focus-visible {\n box-shadow: 0 0 0 3px rgba(17, 17, 17, 0.12);\n outline: none;\n }\n\n .blinq-button-default {\n background: #111111;\n color: white;\n box-shadow: 0 12px 24px rgba(17, 17, 17, 0.16);\n }\n\n .blinq-button-default:hover:not(:disabled) {\n filter: brightness(1.04);\n }\n\n .blinq-button-outline {\n border-color: var(--blinq-border-strong);\n background: #ffffff;\n color: var(--blinq-text);\n }\n\n .blinq-button-outline:hover:not(:disabled),\n .blinq-button-ghost:hover:not(:disabled) {\n background: var(--blinq-surface-soft);\n }\n\n .blinq-button-ghost {\n border-color: var(--blinq-border);\n background: rgba(255,255,255,0.76);\n color: var(--blinq-text-soft);\n }\n\n .blinq-button-destructive {\n background: #111111;\n border-color: #111111;\n color: #ffffff;\n }\n\n .blinq-button-md {\n height: 44px;\n padding: 0 16px;\n }\n\n .blinq-button-sm {\n height: 36px;\n padding: 0 12px;\n font-size: 13px;\n }\n\n .blinq-button-icon {\n width: 44px;\n height: 44px;\n padding: 0;\n }\n\n .blinq-button-icon-sm {\n width: 36px;\n height: 36px;\n padding: 0;\n border-radius: 12px;\n }\n\n .blinq-input {\n width: 100%;\n min-width: 0;\n height: 52px;\n border-radius: 18px;\n border: 1px solid var(--blinq-border-strong);\n padding: 0 48px 0 44px;\n background: #ffffff;\n color: var(--blinq-text);\n outline: none;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);\n }\n\n .blinq-input-shell {\n position: relative;\n width: 100%;\n }\n\n .blinq-recording-input {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n min-width: 0;\n height: 52px;\n padding: 0 48px 0 44px;\n border-radius: 18px;\n border: 1px solid var(--blinq-border-strong);\n background: #ffffff;\n color: var(--blinq-text);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);\n }\n\n .blinq-recording-time {\n flex: 0 0 auto;\n min-width: 42px;\n font-size: 12px;\n font-weight: 700;\n letter-spacing: 0.04em;\n color: var(--blinq-text-soft);\n font-variant-numeric: tabular-nums;\n }\n\n .blinq-recording-waveform {\n display: flex;\n align-items: flex-end;\n gap: 3px;\n flex: 1 1 auto;\n min-width: 0;\n height: 24px;\n overflow: hidden;\n }\n\n .blinq-recording-waveform-bar {\n width: 3px;\n min-width: 3px;\n height: 100%;\n border-radius: 999px;\n background: rgba(17, 17, 17, 0.22);\n transform-origin: center bottom;\n transition:\n transform 110ms ease,\n background 110ms ease;\n }\n\n .blinq-input-mic {\n position: absolute;\n left: 8px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 2;\n }\n\n .blinq-input-send {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 2;\n width: 36px;\n height: 36px;\n min-width: 36px;\n border-radius: 12px;\n }\n\n .blinq-text-animate {\n display: block;\n }\n\n .blinq-text-animate-blur-in .blinq-text-segment {\n display: inline-block;\n opacity: 0;\n filter: blur(8px);\n animation: blinq-blur-in 420ms cubic-bezier(0.16, 1, 0.3, 1) forwards;\n }\n\n @keyframes blinq-thinking-pulse {\n 0%, 100% {\n opacity: 0.28;\n transform: translateY(0);\n }\n\n 50% {\n opacity: 1;\n transform: translateY(-2px);\n }\n }\n\n @keyframes blinq-agent-spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n }\n\n @keyframes blinq-agent-bob {\n 0%, 100% {\n transform: translateY(0);\n }\n\n 50% {\n transform: translateY(-0.8px);\n }\n }\n\n @keyframes blinq-agent-spark {\n 0%, 100% {\n transform: scale(1);\n opacity: 0.72;\n }\n\n 50% {\n transform: scale(1.25);\n opacity: 1;\n }\n }\n\n @keyframes blinq-blur-in {\n 0% {\n opacity: 0;\n filter: blur(8px);\n transform: translateY(4px);\n }\n\n 100% {\n opacity: 1;\n filter: blur(0);\n transform: translateY(0);\n }\n }\n\n .blinq-input::placeholder {\n color: var(--blinq-text-muted);\n }\n\n @media (max-width: 720px) {\n .blinq-shell {\n bottom: 12px;\n left: 12px;\n right: 12px;\n width: auto;\n max-width: none;\n align-items: stretch;\n }\n\n .blinq-shell[data-side=\"left\"],\n .blinq-shell[data-side=\"right\"] {\n left: 12px;\n right: 12px;\n align-items: stretch;\n }\n\n .blinq-panel,\n .blinq-launcher {\n max-width: none;\n width: 100%;\n }\n\n .blinq-workspace {\n grid-template-columns: 1fr;\n }\n\n .blinq-sidebar {\n border-right: none;\n border-bottom: 1px solid var(--blinq-border);\n }\n\n .blinq-sidebar-group {\n flex-direction: row;\n overflow-x: auto;\n }\n\n .blinq-tab-trigger {\n min-width: 116px;\n }\n\n .blinq-context-grid {\n grid-template-columns: 1fr;\n }\n }\n`\n"],"mappings":"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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AlKkBnC,MAAM,iBAAiB;AAEvB,WAAS,mBAAmB;AAC1B,WAAO;AAAA,EACT;AAEA,MAAM,qBAAN,cAAiC,YAAY;AAAA,IACnC,SAA6B;AAAA,IAC7B,gBAA6C;AAAA,IAC7C,UAAiC;AAAA,IAEzC,oBAAoB;AAClB,UAAI,KAAK,UAAU,KAAK,eAAe;AACrC;AAAA,MACF;AAEA,YAAM,cAAc,KAAK,aAAa,cAAc,GAAG,KAAK;AAC5D,UAAI,CAAC,aAAa;AAChB,gBAAQ,MAAM,wDAAwD;AACtE;AAAA,MACF;AAEA,YAAM,OAAO,KAAK,cAAc,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAClE,WAAK,gBAAgB;AAErB,YAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,YAAM,cAAc,iBAAiB;AAErC,YAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,YAAM,QAAQ,aAAa;AAC3B,WAAK,OAAO,OAAO,KAAK;AACxB,WAAK,UAAU;AAEf,YAAM,UAAkC;AAAA,QACtC;AAAA,QACA,YAAY,KAAK,aAAa,cAAc,GAAG,KAAK,KAAK;AAAA,QACzD,aAAa,KAAK,aAAa,cAAc,GAAG,KAAK,KAAK;AAAA,QAC1D;AAAA,MACF;AAEA,WAAK,gBAAgB,KAAK,OAAO,EAC9B,KAAK,CAAC,WAAW;AAChB,aAAK,SAAS;AACd,eAAO;AAAA,MACT,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,gBAAQ,MAAM,sCAAsC,KAAK;AACzD,cAAM;AAAA,MACR,CAAC,EACA,QAAQ,MAAM;AACb,aAAK,gBAAgB;AAAA,MACvB,CAAC;AAAA,IACL;AAAA,IAEA,uBAAuB;AACrB,WAAK,QAAQ,QAAQ;AACrB,WAAK,KAAK,QAAQ,WAAW;AAC7B,WAAK,SAAS;AACd,WAAK,gBAAgB;AACrB,WAAK,UAAU;AAAA,IACjB;AAAA,EACF;AAEA,WAAS,2BAA2B;AAClC,QAAI,OAAO,WAAW,eAAe,OAAO,mBAAmB,aAAa;AAC1E;AAAA,IACF;AAEA,QAAI,CAAC,eAAe,IAAI,cAAc,GAAG;AACvC,qBAAe,OAAO,gBAAgB,kBAAkB;AAAA,IAC1D;AAAA,EACF;AAEA,MAAI,OAAO,WAAW,aAAa;AACjC,6BAAyB;AACzB,WAAO,cAAc;AAAA,MACnB;AAAA,MACA;AAAA,IACF;AAAA,EACF;","names":["REACT_LAZY_TYPE","context","isValidElement","Children","create","init","React","React","ReactDOM","REACT_LAZY_TYPE","context","workInProgress","root","renderLanes","isHydrating","style","canUseDOM","shallowEqual","index","thenableState","init","use","create","treeForkCount","resource","commitRoot","options","React","isBrowser","selectedText","normalizedText","React","resource","version","version","init","fiber","init","state","version","render","context","import_react","_jsx","resource","resource","memo","client","import_react","import_react","React","import_react","resource","import_react","React","sjson","aui","_jsx","aui","_jsx","aui","_jsx","_jsx","_jsx","aui","_jsx","subscribers","subscribers","EMPTY_ARRAY","EMPTY_OBJECT","COMPLETE_STATUS","callback","import_react","import_react","EMPTY_ARRAY","EMPTY_ARRAY","shallowEqual","import_react","_jsxs","_jsx","import_react","_jsx","import_react","import_react","React","Render","_jsx","File","COMPLETE_STATUS","aui","_jsxs","_Fragment","import_react","_jsx","_Fragment","import_react","getComponent","_jsx","import_react","_jsx","import_react","import_react","import_react","import_react","import_react","context","contextValue","context","useThreadViewport","context","_jsx","entry","hook","_jsxs","_jsx","import_react","identity","React","import_react","React","React","import_jsx_runtime","React","Slot","props","import_jsx_runtime","Slot","NODES","_jsx","Primitive","import_react","_jsx","Primitive","React","React","import_jsx_runtime","createSlot","createSlotClone","Slot","isSlottable","getElementRef","props","mergeProps","SLOTTABLE_IDENTIFIER","Slottable","Fragment","import_react","import_react","import_react","import_react","context","text","_jsx","import_react","_jsx","Primitive","MessagePrimitiveParts","import_react","import_react","import_react","import_react","_jsx","forwardRef","_jsx","Primitive","_jsxs","_jsx","MessagePrimitiveParts","import_react","ToolUIDisplay","Render","_jsx","DataUIDisplay","defaultComponents","_jsxs","MessagePartComponent","File","EmptyPartFallback","COMPLETE_STATUS","EmptyPartsImpl","EmptyParts","_Fragment","import_react","_jsx","Primitive","import_react","import_react","import_react","_jsx","Primitive","import_react","_jsx","Primitive","import_react","import_jsx_runtime","isBrowser","payload"]}