@adonis-agora/flags 0.0.0-stage → 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.
- package/CHANGELOG.md +12 -0
- package/LICENSE +21 -0
- package/README.md +15 -2
- package/dist/assets/spa/assets/index-DdmFo7xr.js +12 -0
- package/dist/assets/spa/assets/index-DdmFo7xr.js.map +1 -0
- package/dist/assets/spa/assets/index-DhkcP3Cw.css +2 -0
- package/dist/assets/spa/index.html +26 -0
- package/dist/commands/flags_list.d.ts +9 -0
- package/dist/commands/flags_list.d.ts.map +1 -0
- package/dist/commands/flags_list.js +51 -0
- package/dist/commands/flags_list.js.map +1 -0
- package/dist/commands/flags_ops.d.ts +60 -0
- package/dist/commands/flags_ops.d.ts.map +1 -0
- package/dist/commands/flags_ops.js +253 -0
- package/dist/commands/flags_ops.js.map +1 -0
- package/dist/commands/flags_refs.d.ts +15 -0
- package/dist/commands/flags_refs.d.ts.map +1 -0
- package/dist/commands/flags_refs.js +90 -0
- package/dist/commands/flags_refs.js.map +1 -0
- package/dist/commands/flags_set.d.ts +19 -0
- package/dist/commands/flags_set.d.ts.map +1 -0
- package/dist/commands/flags_set.js +97 -0
- package/dist/commands/flags_set.js.map +1 -0
- package/dist/commands/flags_types.d.ts +18 -0
- package/dist/commands/flags_types.d.ts.map +1 -0
- package/dist/commands/flags_types.js +94 -0
- package/dist/commands/flags_types.js.map +1 -0
- package/dist/commands/flags_work.d.ts +16 -0
- package/dist/commands/flags_work.d.ts.map +1 -0
- package/dist/commands/flags_work.js +71 -0
- package/dist/commands/flags_work.js.map +1 -0
- package/dist/commands/main.d.ts +15 -0
- package/dist/commands/main.d.ts.map +1 -0
- package/dist/commands/main.js +30 -0
- package/dist/commands/main.js.map +1 -0
- package/dist/commands/shared.d.ts +21 -0
- package/dist/commands/shared.d.ts.map +1 -0
- package/dist/commands/shared.js +70 -0
- package/dist/commands/shared.js.map +1 -0
- package/dist/configure.d.ts +11 -0
- package/dist/configure.d.ts.map +1 -0
- package/dist/configure.js +32 -0
- package/dist/configure.js.map +1 -0
- package/dist/providers/dashboard_provider.d.ts +65 -0
- package/dist/providers/dashboard_provider.d.ts.map +1 -0
- package/dist/providers/dashboard_provider.js +340 -0
- package/dist/providers/dashboard_provider.js.map +1 -0
- package/dist/providers/flags_provider.d.ts +30 -0
- package/dist/providers/flags_provider.d.ts.map +1 -0
- package/dist/providers/flags_provider.js +184 -0
- package/dist/providers/flags_provider.js.map +1 -0
- package/dist/services/main.d.ts +17 -0
- package/dist/services/main.d.ts.map +1 -0
- package/dist/services/main.js +20 -0
- package/dist/services/main.js.map +1 -0
- package/dist/src/admin.d.ts +189 -0
- package/dist/src/admin.d.ts.map +1 -0
- package/dist/src/admin.js +539 -0
- package/dist/src/admin.js.map +1 -0
- package/dist/src/analytics/backend.d.ts +18 -0
- package/dist/src/analytics/backend.d.ts.map +1 -0
- package/dist/src/analytics/backend.js +25 -0
- package/dist/src/analytics/backend.js.map +1 -0
- package/dist/src/analytics/clickhouse_backend.d.ts +16 -0
- package/dist/src/analytics/clickhouse_backend.d.ts.map +1 -0
- package/dist/src/analytics/clickhouse_backend.js +48 -0
- package/dist/src/analytics/clickhouse_backend.js.map +1 -0
- package/dist/src/analytics/duckdb.d.ts +39 -0
- package/dist/src/analytics/duckdb.d.ts.map +1 -0
- package/dist/src/analytics/duckdb.js +117 -0
- package/dist/src/analytics/duckdb.js.map +1 -0
- package/dist/src/analytics/lucid_backend.d.ts +16 -0
- package/dist/src/analytics/lucid_backend.d.ts.map +1 -0
- package/dist/src/analytics/lucid_backend.js +45 -0
- package/dist/src/analytics/lucid_backend.js.map +1 -0
- package/dist/src/analytics/metrics.d.ts +50 -0
- package/dist/src/analytics/metrics.d.ts.map +1 -0
- package/dist/src/analytics/metrics.js +42 -0
- package/dist/src/analytics/metrics.js.map +1 -0
- package/dist/src/analytics/results.d.ts +80 -0
- package/dist/src/analytics/results.d.ts.map +1 -0
- package/dist/src/analytics/results.js +143 -0
- package/dist/src/analytics/results.js.map +1 -0
- package/dist/src/dashboard/access_denied_page.d.ts +100 -0
- package/dist/src/dashboard/access_denied_page.d.ts.map +1 -0
- package/dist/src/dashboard/access_denied_page.js +262 -0
- package/dist/src/dashboard/access_denied_page.js.map +1 -0
- package/dist/src/dashboard/actor.d.ts +12 -0
- package/dist/src/dashboard/actor.d.ts.map +1 -0
- package/dist/src/dashboard/actor.js +33 -0
- package/dist/src/dashboard/actor.js.map +1 -0
- package/dist/src/dashboard/authorize_decision.d.ts +48 -0
- package/dist/src/dashboard/authorize_decision.d.ts.map +1 -0
- package/dist/src/dashboard/authorize_decision.js +44 -0
- package/dist/src/dashboard/authorize_decision.js.map +1 -0
- package/dist/src/dashboard/console_authorize.d.ts +77 -0
- package/dist/src/dashboard/console_authorize.d.ts.map +1 -0
- package/dist/src/dashboard/console_authorize.js +104 -0
- package/dist/src/dashboard/console_authorize.js.map +1 -0
- package/dist/src/dashboard/define_config.d.ts +71 -0
- package/dist/src/dashboard/define_config.d.ts.map +1 -0
- package/dist/src/dashboard/define_config.js +18 -0
- package/dist/src/dashboard/define_config.js.map +1 -0
- package/dist/src/dashboard/handlers.d.ts +172 -0
- package/dist/src/dashboard/handlers.d.ts.map +1 -0
- package/dist/src/dashboard/handlers.js +949 -0
- package/dist/src/dashboard/handlers.js.map +1 -0
- package/dist/src/dashboard/index.d.ts +15 -0
- package/dist/src/dashboard/index.d.ts.map +1 -0
- package/dist/src/dashboard/index.js +10 -0
- package/dist/src/dashboard/index.js.map +1 -0
- package/dist/src/dashboard/shape.d.ts +12 -0
- package/dist/src/dashboard/shape.d.ts.map +1 -0
- package/dist/src/dashboard/shape.js +232 -0
- package/dist/src/dashboard/shape.js.map +1 -0
- package/dist/src/dashboard/spa.d.ts +34 -0
- package/dist/src/dashboard/spa.d.ts.map +1 -0
- package/dist/src/dashboard/spa.js +50 -0
- package/dist/src/dashboard/spa.js.map +1 -0
- package/dist/src/declare.d.ts +85 -0
- package/dist/src/declare.d.ts.map +1 -0
- package/dist/src/declare.js +62 -0
- package/dist/src/declare.js.map +1 -0
- package/dist/src/define_config.d.ts +256 -0
- package/dist/src/define_config.d.ts.map +1 -0
- package/dist/src/define_config.js +90 -0
- package/dist/src/define_config.js.map +1 -0
- package/dist/src/durable.d.ts +29 -0
- package/dist/src/durable.d.ts.map +1 -0
- package/dist/src/durable.js +55 -0
- package/dist/src/durable.js.map +1 -0
- package/dist/src/enrichers.d.ts +51 -0
- package/dist/src/enrichers.d.ts.map +1 -0
- package/dist/src/enrichers.js +105 -0
- package/dist/src/enrichers.js.map +1 -0
- package/dist/src/events/buffer.d.ts +38 -0
- package/dist/src/events/buffer.d.ts.map +1 -0
- package/dist/src/events/buffer.js +86 -0
- package/dist/src/events/buffer.js.map +1 -0
- package/dist/src/events/event.d.ts +42 -0
- package/dist/src/events/event.d.ts.map +1 -0
- package/dist/src/events/event.js +82 -0
- package/dist/src/events/event.js.map +1 -0
- package/dist/src/http/browser.d.ts +33 -0
- package/dist/src/http/browser.d.ts.map +1 -0
- package/dist/src/http/browser.js +81 -0
- package/dist/src/http/browser.js.map +1 -0
- package/dist/src/http/browser_api.d.ts +48 -0
- package/dist/src/http/browser_api.d.ts.map +1 -0
- package/dist/src/http/browser_api.js +273 -0
- package/dist/src/http/browser_api.js.map +1 -0
- package/dist/src/http/browser_tokens.d.ts +27 -0
- package/dist/src/http/browser_tokens.d.ts.map +1 -0
- package/dist/src/http/browser_tokens.js +48 -0
- package/dist/src/http/browser_tokens.js.map +1 -0
- package/dist/src/http/control_plane.d.ts +58 -0
- package/dist/src/http/control_plane.d.ts.map +1 -0
- package/dist/src/http/control_plane.js +318 -0
- package/dist/src/http/control_plane.js.map +1 -0
- package/dist/src/http/csrf.d.ts +22 -0
- package/dist/src/http/csrf.d.ts.map +1 -0
- package/dist/src/http/csrf.js +24 -0
- package/dist/src/http/csrf.js.map +1 -0
- package/dist/src/http/edge_tag.d.ts +55 -0
- package/dist/src/http/edge_tag.d.ts.map +1 -0
- package/dist/src/http/edge_tag.js +45 -0
- package/dist/src/http/edge_tag.js.map +1 -0
- package/dist/src/http/flag_middleware.d.ts +27 -0
- package/dist/src/http/flag_middleware.d.ts.map +1 -0
- package/dist/src/http/flag_middleware.js +30 -0
- package/dist/src/http/flag_middleware.js.map +1 -0
- package/dist/src/http/flags_middleware.d.ts +20 -0
- package/dist/src/http/flags_middleware.d.ts.map +1 -0
- package/dist/src/http/flags_middleware.js +20 -0
- package/dist/src/http/flags_middleware.js.map +1 -0
- package/dist/src/http/subject_resolver.d.ts +45 -0
- package/dist/src/http/subject_resolver.d.ts.map +1 -0
- package/dist/src/http/subject_resolver.js +93 -0
- package/dist/src/http/subject_resolver.js.map +1 -0
- package/dist/src/identity.d.ts +82 -0
- package/dist/src/identity.d.ts.map +1 -0
- package/dist/src/identity.js +100 -0
- package/dist/src/identity.js.map +1 -0
- package/dist/src/index.d.ts +41 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +34 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/manager.d.ts +154 -0
- package/dist/src/manager.d.ts.map +1 -0
- package/dist/src/manager.js +333 -0
- package/dist/src/manager.js.map +1 -0
- package/dist/src/openfeature/provider.d.ts +36 -0
- package/dist/src/openfeature/provider.d.ts.map +1 -0
- package/dist/src/openfeature/provider.js +82 -0
- package/dist/src/openfeature/provider.js.map +1 -0
- package/dist/src/relay/relay.d.ts +36 -0
- package/dist/src/relay/relay.d.ts.map +1 -0
- package/dist/src/relay/relay.js +73 -0
- package/dist/src/relay/relay.js.map +1 -0
- package/dist/src/relay/results_cache.d.ts +20 -0
- package/dist/src/relay/results_cache.d.ts.map +1 -0
- package/dist/src/relay/results_cache.js +31 -0
- package/dist/src/relay/results_cache.js.map +1 -0
- package/dist/src/relay/worker.d.ts +66 -0
- package/dist/src/relay/worker.d.ts.map +1 -0
- package/dist/src/relay/worker.js +177 -0
- package/dist/src/relay/worker.js.map +1 -0
- package/dist/src/ruleset_source.d.ts +73 -0
- package/dist/src/ruleset_source.d.ts.map +1 -0
- package/dist/src/ruleset_source.js +128 -0
- package/dist/src/ruleset_source.js.map +1 -0
- package/dist/src/runtime.d.ts +70 -0
- package/dist/src/runtime.d.ts.map +1 -0
- package/dist/src/runtime.js +301 -0
- package/dist/src/runtime.js.map +1 -0
- package/dist/src/schema.d.ts +39 -0
- package/dist/src/schema.d.ts.map +1 -0
- package/dist/src/schema.js +311 -0
- package/dist/src/schema.js.map +1 -0
- package/dist/src/services/accessor.d.ts +5 -0
- package/dist/src/services/accessor.d.ts.map +1 -0
- package/dist/src/services/accessor.js +20 -0
- package/dist/src/services/accessor.js.map +1 -0
- package/dist/src/sinks/clickhouse.d.ts +41 -0
- package/dist/src/sinks/clickhouse.d.ts.map +1 -0
- package/dist/src/sinks/clickhouse.js +117 -0
- package/dist/src/sinks/clickhouse.js.map +1 -0
- package/dist/src/sinks/lucid_sink.d.ts +25 -0
- package/dist/src/sinks/lucid_sink.d.ts.map +1 -0
- package/dist/src/sinks/lucid_sink.js +87 -0
- package/dist/src/sinks/lucid_sink.js.map +1 -0
- package/dist/src/sinks/parquet_sink.d.ts +41 -0
- package/dist/src/sinks/parquet_sink.d.ts.map +1 -0
- package/dist/src/sinks/parquet_sink.js +140 -0
- package/dist/src/sinks/parquet_sink.js.map +1 -0
- package/dist/src/sinks/posthog_sink.d.ts +29 -0
- package/dist/src/sinks/posthog_sink.d.ts.map +1 -0
- package/dist/src/sinks/posthog_sink.js +65 -0
- package/dist/src/sinks/posthog_sink.js.map +1 -0
- package/dist/src/sinks/sink.d.ts +36 -0
- package/dist/src/sinks/sink.d.ts.map +1 -0
- package/dist/src/sinks/sink.js +36 -0
- package/dist/src/sinks/sink.js.map +1 -0
- package/dist/src/sql.d.ts +33 -0
- package/dist/src/sql.d.ts.map +1 -0
- package/dist/src/sql.js +66 -0
- package/dist/src/sql.js.map +1 -0
- package/dist/src/stores/lucid_store.d.ts +55 -0
- package/dist/src/stores/lucid_store.d.ts.map +1 -0
- package/dist/src/stores/lucid_store.js +412 -0
- package/dist/src/stores/lucid_store.js.map +1 -0
- package/dist/src/stores/memory_store.d.ts +38 -0
- package/dist/src/stores/memory_store.d.ts.map +1 -0
- package/dist/src/stores/memory_store.js +166 -0
- package/dist/src/stores/memory_store.js.map +1 -0
- package/dist/src/stores/store.d.ts +166 -0
- package/dist/src/stores/store.d.ts.map +1 -0
- package/dist/src/stores/store.js +67 -0
- package/dist/src/stores/store.js.map +1 -0
- package/dist/src/subject.d.ts +25 -0
- package/dist/src/subject.d.ts.map +1 -0
- package/dist/src/subject.js +30 -0
- package/dist/src/subject.js.map +1 -0
- package/dist/src/testing/index.d.ts +31 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +60 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/topology/browser_token.d.ts +48 -0
- package/dist/src/topology/browser_token.d.ts.map +1 -0
- package/dist/src/topology/browser_token.js +128 -0
- package/dist/src/topology/browser_token.js.map +1 -0
- package/dist/src/topology/remote_source.d.ts +39 -0
- package/dist/src/topology/remote_source.d.ts.map +1 -0
- package/dist/src/topology/remote_source.js +184 -0
- package/dist/src/topology/remote_source.js.map +1 -0
- package/dist/src/topology/token.d.ts +36 -0
- package/dist/src/topology/token.d.ts.map +1 -0
- package/dist/src/topology/token.js +68 -0
- package/dist/src/topology/token.js.map +1 -0
- package/dist/src/topology/verify.d.ts +88 -0
- package/dist/src/topology/verify.d.ts.map +1 -0
- package/dist/src/topology/verify.js +128 -0
- package/dist/src/topology/verify.js.map +1 -0
- package/dist/src/transports/db_transport.d.ts +55 -0
- package/dist/src/transports/db_transport.d.ts.map +1 -0
- package/dist/src/transports/db_transport.js +202 -0
- package/dist/src/transports/db_transport.js.map +1 -0
- package/dist/src/transports/http_transport.d.ts +30 -0
- package/dist/src/transports/http_transport.d.ts.map +1 -0
- package/dist/src/transports/http_transport.js +51 -0
- package/dist/src/transports/http_transport.js.map +1 -0
- package/dist/src/transports/memory_transport.d.ts +29 -0
- package/dist/src/transports/memory_transport.d.ts.map +1 -0
- package/dist/src/transports/memory_transport.js +91 -0
- package/dist/src/transports/memory_transport.js.map +1 -0
- package/dist/src/transports/redis_transport.d.ts +50 -0
- package/dist/src/transports/redis_transport.d.ts.map +1 -0
- package/dist/src/transports/redis_transport.js +107 -0
- package/dist/src/transports/redis_transport.js.map +1 -0
- package/dist/src/transports/transport.d.ts +62 -0
- package/dist/src/transports/transport.d.ts.map +1 -0
- package/dist/src/transports/transport.js +2 -0
- package/dist/src/transports/transport.js.map +1 -0
- package/dist/src/types.d.ts +30 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/usage.d.ts +18 -0
- package/dist/src/usage.d.ts.map +1 -0
- package/dist/src/usage.js +52 -0
- package/dist/src/usage.js.map +1 -0
- package/dist/stubs/config/flags.stub +50 -0
- package/dist/stubs/config/flags_dashboard.stub +35 -0
- package/dist/stubs/database/migrations/create_flags_tables.stub +27 -0
- package/dist/stubs/main.d.ts +3 -0
- package/dist/stubs/main.d.ts.map +1 -0
- package/dist/stubs/main.js +9 -0
- package/dist/stubs/main.js.map +1 -0
- package/package.json +178 -3
- package/skills/flags-basics/SKILL.md +142 -0
- package/skills/flags-deployment/SKILL.md +125 -0
- package/skills/flags-experiments/SKILL.md +99 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DdmFo7xr.js","names":["isServer","getDefaultState","MutationObserver","MutationObserver","createContext","useContext","useState","_Fragment","forwardRef","useState","_Fragment","useState","useState","_Fragment","useState","_Fragment","useState","_Fragment","useState","useMemo","_Fragment","useState","useState","useMemo","_Fragment","useState","useState","_Fragment","useState","useState","useCallback","createRoot","StrictMode","__create","__defProp","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__commonJSMin","mod","cb","__copyProps","from","keys","i","n","key","to","except","k","desc","__toESM","isNodeMode","target","relList","link","processPreload","mutation","mutations","node","getFetchOpts","fetchOpts","require_react_production","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","REACT_VIEW_TRANSITION_TYPE","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","assign","emptyObject","Component","props","context","updater","partialState","callback","ComponentDummy","PureComponent","pureComponentPrototype","isArrayImpl","noop","ReactSharedInternals","hasOwnProperty","ReactElement","refProp","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","match","userProvidedKeyEscapeRegex","getElementKey","element","index","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","type","children","invokeCallback","array","escapedPrefix","nameSoFar","c","nextNamePrefix","mapChildren","result","count","func","child","lazyInitializer","payload","ctor","moduleObject","reportGlobalError","event","startTransition","prevTransition","currentTransition","returnValue","scope","onStartTransitionFinish","addTransitionType","transition","transitionTypes","Children","forEachFunc","forEachContext","size","fn","config","propName","childArray","defaultValue","childrenLength","compare","usable","action","initialState","permalink","deps","Context","value","initialValue","create","ref","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","require_react","require_react_jsx_runtime_production","jsxProd","maybeKey","require_jsx_runtime","import_react","import_jsx_runtime","QueryClientContext","useQueryClient","client","queryClient","QueryClientProvider","defaultTimeoutProvider","delay","timeoutId","intervalId","timeoutManager","#provider","provider","systemSetTimeoutZero","isServer$1","functionalUpdate","input","isValidTimeout","timeUntilStale","updatedAt","staleTime","resolveQueryValue","query","matchQuery","filters","queryKey","exact","hashQueryKeyByOptions","partialMatchKey","isActive","stale","fetchStatus","predicate","matchMutation","mutationKey","hashKey","status","options","isPlainObject","val","a","b","bKeys","hasOwn","replaceEqualDeep","depth","isPlainArray","aSize","bItems","bSize","copy","equalItems","aItem","bItem","v","shallowEqualObjects","hasObjectPrototype","o","objectPrototype","prot","sleep","resolve","timeout","replaceData","prevData","data","addToEnd","newItems","items","item","max","addToStart","skipToken","ensureQueryFn","fetchOptions","shouldThrowError","throwOnError","params","fetchSignal","addConsumeAwareSignal","consumed","signal","internalSignal","getSignal","onCancelled","isServerFn","isServer","Subscribable","listener","focusManager","#setup","onFocus","#cleanup","setup","focused","#focused","isFocused","defaultScheduler","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","scheduleFn","schedule","flush","originalQueue","args","notifyManager","onlineManager","onlineListener","onOnline","offlineListener","#online","online","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","createRetryer","isRetryCancelled","continueFn","promiseResolve","promiseReject","promise","reject","isResolved","cancel","cancelOptions","cancelRetry","continueRetry","canContinue","canStart","pause","canResume","continueResolve","run","promiseOrValue","initialPromise","retry","retryDelay","shouldRetry","Removable","#gcTimeout","newGcTime","infiniteQueryBehavior","direction","oldPages","oldPageParams","currentPage","fetchFn","cancelled","signalContext","addSignalProperty","queryFn","fetchPage","param","queryFnContext","previous","page","addTo","maxPages","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pages","lastIndex","pageParams","Query","#abortSignalConsumed","#defaultOptions","#client","#cache","#initialState","getDefaultState$1","#queryType","#retryer","defaultState","successState","newData","#dispatch","observer","x","#fetchPromise","abortController","#revertState","retryer","fetchPromise","state","fetchState","newState","dataUpdatedAt","hasData","initialDataUpdatedAt","QueryObserver","#selectError","#currentQuery","shouldFetchOnMount","#executeFetch","#updateTimers","shouldFetchOn","#clearStaleTimeout","#clearRefetchInterval","prevOptions","prevQuery","#updateQuery","mounted","shouldFetchOptionally","#updateStaleTimeout","nextRefetchInterval","#computeRefetchInterval","#currentRefetchInterval","#updateRefetchInterval","#currentResult","#currentResultOptions","#currentResultState","onPropTracked","#trackedProps","defaultedOptions","unsubscribe","resolveEarly","cachePromise","#shouldScheduleTimer","#staleTimeoutId","nextInterval","#refetchIntervalId","prevResult","prevResultState","prevResultOptions","queryInitialState","#currentQueryInitialState","isPlaceholderData","fetchOnMount","fetchOptionally","skipSelect","placeholderData","#lastQueryWithDefinedData","#selectFn","#selectResult","selectError","isFetching","isPending","isError","isLoading","isStale","nextResult","notifyListeners","notifyOnChangePropsValue","notifyOnChangeProps","shouldLoadOnMount","field","Mutation","#mutationCache","#observers","getDefaultState","onContinue","mutationFnContext","variables","restored","isPaused","MutationCache","#mutations","#scopes","#mutationId","scopeFor","scopedMutations","firstPendingMutation","m","defaultedFilters","pausedMutations","MutationObserver$1","#updateResult","#currentMutation","#notify","#mutateOptions","mutateOptions","onMutateResult","QueryCache","#queries","queryHash","queries","QueryClient","#queryCache","#queryDefaults","#mutationDefaults","#mountCount","#unsubscribeFocus","#unsubscribeOnline","cachedData","queryCache","matched","queriesToRefetch","defaultedCancelOptions","promises","queryData","select","defaults","queryDefault","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","suspense","ensureSuspenseTimers","MIN_SUSPENSE_TIME_MS","clamp","originalStaleTime","shouldSuspend","fetchOptimistic","useBaseQuery","isRestoring","subscribed","Observer","shouldSubscribe","onStoreChange","useQuery","useMutation","mutate","require_scheduler_production","push","heap","parentIndex","parent","peek","pop","first","last","length","halfLength","leftIndex","left","rightIndex","right","diff","localPerformance","localDate","initialTime","taskQueue","timerQueue","taskIdCounter","currentTask","currentPriorityLevel","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","needsPaint","localSetTimeout","localClearTimeout","localSetImmediate","advanceTimers","timer","currentTime","handleTimeout","isMessageLoopRunning","schedulePerformWorkUntilDeadline","firstTimer","requestHostTimeout","taskTimeoutID","frameInterval","startTime","shouldYieldToHost","performWorkUntilDeadline","exports","hasMoreWork","previousPriorityLevel","continuationCallback","channel","port","ms","fps","priorityLevel","eventHandler","parentPriorityLevel","require_scheduler","require_react_dom_production","React","formatProdErrorMessage","url","code","Internals","REACT_RECOVERABLE_TYPE","REACT_OPTIMISTIC_KEY","createPortal$1","getCrossOriginStringAs","as","reason","container","previousTransition","previousUpdatePriority","href","crossOrigin","integrity","fetchPriority","form","require_react_dom","checkDCE","err","require_react_dom_client_production","Scheduler","ReactDOM","isValidContainer","getNearestMountedFiber","fiber","nextNode","getSuspenseInstanceFromFiber","suspenseState","getActivityInstanceFromFiber","activityState","assertIsMounted","findCurrentFiberUsingSlowPath","alternate","parentA","parentB","didFindChild","child$0","findCurrentHostFiberImpl","tag","traverseVisibleInstancesAndTextInstances","searchWithinHosts","getFragmentParentInstanceOrContainerFiber","fiberIsPortaledIntoHost","foundPortalParent","getFragmentInstanceOrTextInstanceSiblings","parentHostFiber","findFragmentInstanceOrTextInstanceSiblings","self","getInstanceFromHostFiber","searchTarget","searchBoundary","isFiberPrecedingCheck","boundary","isFiberFollowingCheck","getParentForFragmentAncestors","inst","getLowestCommonAncestor","depthA","tempA","instA","getParent","tempB","instB","REACT_LEGACY_ELEMENT_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_LEGACY_HIDDEN_TYPE","REACT_MEMO_CACHE_SENTINEL","REACT_CLIENT_REFERENCE","getComponentNameFromType","innerType","ReactDOMSharedInternals","sharedNotPendingObject","valueStack","createCursor","cursor","contextStackCursor","contextFiberStackCursor","rootInstanceStackCursor","hostTransitionProviderCursor","pushHostContainer","nextRootInstance","getOwnHostContext","getChildHostContextProd","popHostContainer","pushHostContext","stateHook","JSCompiler_inline_result","popHostContext","prefix","suffix","describeBuiltInComponentFrame","name","reentry","describeNativeComponentFrame","previousPrepareStackTrace","RunInRootFrame","construct","Fake","control","x$1","prevProps","x$2","sample","namePropDescriptor","_RunInRootFrame$Deter","sampleStack","controlStack","sampleLines","controlLines","frame","describeFiber","childFiber","getStackByFiberInDevAndProd","info","workInProgress","scheduleCallback$3","cancelCallback$1","shouldYield","requestPaint","now","getCurrentPriorityLevel","ImmediatePriority","UserBlockingPriority","NormalPriority$1","LowPriority","IdlePriority","log$1","unstable_setDisableYieldValue","rendererID","injectedHook","setIsStrictModeForDevtools","newIsStrictMode","clz32","clz32Fallback","log","LN2","nextTransitionUpdateLane","nextTransitionDeferredLane","nextRetryLane","getHighestPriorityLanes","pendingSyncLanes","lanes","getNextLanes","pendingLanes","root","nextLanes","suspendedLanes","pingedLanes","nonIdlePendingLanes","rootHasPendingCommit","wipLanes","checkIfRootIsPrerendering","renderLanes","getEntangledLanes","allEntangledLanes","index$4","lane","computeExpirationTime","claimNextRetryLane","createLaneMap","laneMap","initial","markRootUpdated$1","updateLane","markRootFinished","previouslyPendingLanes","remainingLanes","entanglements","expirationTimes","hiddenUpdates","index$7","hiddenUpdatesForLane","update","spawnedLane","markSpawnedDeferredLane","suspendedRetryLanes","updatedLanes","finishedLanes","spawnedLaneIndex","entangledLanes","markRootEntangled","rootEntangledLanes","index$8","getBumpedLaneForHydration","renderLane","getBumpedLaneForHydrationByLane","lanesToEventPriority","resolveUpdatePriority","updatePriority","getEventPriority","runWithPriority","previousPriority","priority","randomKey","internalInstanceKey","internalPropsKey","internalContainerInstanceKey","internalEventHandlersKey","internalEventHandlerListenersKey","internalEventHandlesSetKey","internalRootNodeResourcesKey","internalHoistableMarker","internalLoadPendingKey","detachDeletedInstance","getClosestInstanceFromNode","targetInst","targetNode","parentNode","getParentHydrationBoundary","getInstanceFromNode","getNodeFromInstance","getResourcesFromRoot","resources","markNodeAsHoistable","clearPendingLoadOnNode","allNativeEvents","registrationNameDependencies","registerTwoPhaseEvent","registerDirectEvent","registrationName","dependencies","VALID_ATTRIBUTE_NAME_REGEX","illegalAttributeNameCache","validatedAttributeNameCache","isAttributeNameSafe","attributeName","viewTransitionMutationContext","pushMutationContext","prev","setValueForAttribute","prefix$10","setValueForKnownAttribute","setValueForNamespacedAttribute","namespace","getToStringValue","isCheckable","elem","trackValueOnNode","descriptor","valueField","get","set","currentValue","track","updateValueIfChanged","tracker","lastValue","escapeSelectorAttributeValueInsideDoubleQuotesRegex","escapeSelectorAttributeValueInsideDoubleQuotes","ch","updateInput","lastDefaultValue","setDefaultValue","checked","defaultChecked","initInput","isHydrating","updateOptions","multiple","propValue","setDefaultSelected","updateTextarea","initTextarea","setTextContent","text","firstChild","unitlessNumbers","setValueForStyle","isCustomProperty","styleName","style","setValueForStyles","styles","prevStyles","styleName$16","styleName$17","isCustomElement","tagName","aliases","isJavaScriptProtocol","sanitizeURL","noop$1","currentReplayingEvent","getEventTarget","nativeEvent","restoreTarget","restoreQueue","restoreStateOfTarget","internalInstance","otherNode","otherProps","isInsideEventHandler","batchedUpdates$1","flushSyncWork$1","getListener","stateNode","canUseDOM","passiveBrowserEventsSupported","startText","fallbackText","getData","start","startValue","startLength","end","endValue","endLength","minEnd","getEventCharCode","keyCode","functionThatReturnsTrue","functionThatReturnsFalse","createSyntheticEvent","SyntheticBaseEvent","reactName","reactEventType","nativeEventTarget","Interface","EventInterface","SyntheticEvent","UIEventInterface","SyntheticUIEvent","lastMovementX","lastMovementY","lastMouseEvent","MouseEventInterface","getEventModifierState","SyntheticMouseEvent","SyntheticDragEvent","SyntheticFocusEvent","SyntheticAnimationEvent","SyntheticClipboardEvent","SyntheticCompositionEvent","normalizeKey","translateToKey","modifierKeyToProp","modifierStateGetter","keyArg","SyntheticKeyboardEvent","SyntheticPointerEvent","SyntheticSubmitEvent","SyntheticTouchEvent","SyntheticTransitionEvent","SyntheticWheelEvent","SyntheticToggleEvent","END_KEYCODES","canUseCompositionEvent","documentMode","canUseTextInputEvent","useFallbackCompositionData","SPACEBAR_CHAR","hasSpaceKeypress","isFallbackCompositionEnd","domEventName","getDataFromCustomEvent","isComposing","getNativeBeforeInputChars","getFallbackBeforeInputChars","supportedInputTypes","isTextInputElement","nodeName","createAndAccumulateChangeEvent","accumulateTwoPhaseListeners","dispatchQueue","activeElement$1","activeElementInst$1","runEventInBatch","processDispatchQueue","getInstIfValueChanged","getTargetInstForChangeEvent","isInputEventSupported","JSCompiler_inline_result$jscomp$318","isSupported$jscomp$inline_474","element$jscomp$inline_475","stopWatchingForValueChange","handlePropertyChange","handleEventsForInputEventPolyfill","getTargetInstForInputEventPolyfill","getTargetInstForClickEvent","getTargetInstForInputOrChangeEvent","is","y","objectIs","shallowEqual","objA","objB","keysA","keysB","currentKey","getActiveElement","doc","getLeafNode","getNodeForCharacterOffset","nodeEnd","offset","containsNode","outerNode","innerNode","getActiveElementDeep","containerInfo","hasSelectionCapabilities","skipSelectionChangeEvent","activeElement","activeElementInst","lastSelection","mouseDown","constructSelectEvent","makePrefixMap","prefixes","styleProp","eventName","vendorPrefixes","prefixedEventNames","getVendorPrefixedEventName","prefixMap","ANIMATION_END","ANIMATION_ITERATION","ANIMATION_START","TRANSITION_RUN","TRANSITION_START","TRANSITION_CANCEL","TRANSITION_END","topLevelEventsToReactNames","simpleEventPluginEvents","registerSimpleEvent","globalClientIdCounter$1","getViewTransitionName","instance","pendingEffectsRoot","globalClientId","getClassNameByType","classByType","className","activeTypes","pendingTransitionTypes","getViewTransitionClassName","defaultClass","eventClass","concurrentQueues","concurrentQueuesIndex","concurrentlyUpdatedLanes","finishQueueingConcurrentUpdates","endIndex","pending","markUpdateLaneFromFiberToRoot","enqueueUpdate$1","enqueueConcurrentHookUpdate","getRootForUpdatedFiber","enqueueConcurrentRenderForLane","sourceFiber","isHidden","nestedUpdateCount","emptyContextObject","FiberNode","pendingProps","mode","createFiberImplClass","shouldConstruct","createWorkInProgress","current","resetWorkInProgress","createFiberFromTypeAndProps","fiberTag","owner","isHostHoistableType","createFiberFromFragment","elements","createFiberFromText","content","createFiberFromDehydratedFragment","dehydratedNode","createFiberFromPortal","portal","CapturedStacks","createCapturedValueAtFiber","existing","source","forkStack","forkStackIndex","treeForkProvider","treeForkCount","idStack","idStackIndex","treeContextProvider","treeContextId","treeContextOverflow","pushTreeFork","totalChildren","pushTreeId","baseIdWithLeadingBit","baseLength","numberOfOverflowBits","pushMaterializedTreeId","popTreeContext","restoreSuspendedTreeContext","suspendedContext","hydrationParentFiber","nextHydratableInstance","hydrationErrors","rootOrSingletonContext","HydrationMismatchException","throwOnHydrationMismatch","queueHydrationError","prepareToHydrateHostInstance","listenToNonDelegatedEvent","mediaEventTypes","checkForUnmatchedText","popToNextHostParent","popHydrationState","JSCompiler_temp","shouldSetTextContent","getNextHydratableInstanceAfterHydrationBoundary","isSingletonScope","previousHydratableOnEnteringScopedSingleton","getNextHydratable","resetHydrationState","upgradeHydrationErrorsToRecoverable","queuedErrors","workInProgressRootRecoverableErrors","valueCursor","currentlyRenderingFiber$1","lastContextDependency","pushProvider","nextValue","popProvider","scheduleContextWorkOnParentPath","propagationRoot","propagateContextChanges","list","nextFiber","dependency","contexts","forcePropagateEntireTree","propagateParentContextChanges","isInsidePropagationBailout","currentParent","HostTransitionContext","checkIfContextChanged","currentDependencies","prepareToReadContext","readContext","readContextForConsumer","readContextDuringReconciliation","consumer","AbortControllerLocal","listeners","scheduleCallback$2","NormalPriority","CacheContext","createCache","releaseCache","cache","queueTransitionTypes","queued","transitionType","entangledTransitionTypes","claimQueuedTransitionTypes","claimed","currentEntangledListeners","currentEntangledPendingCount","currentEntangledLane","currentEntangledActionThenable","entangleAsyncAction","entangledListeners","requestTransitionLane","pingEngtangledActionScope","chainThenableValue","thenableWithOverride","prevOnStartTransitionFinish","root$28","firstScheduledRoot","root$29","resumedCache","peekCacheFromPool","cacheResumedFromPreviousRender","workInProgressRoot","pushTransition","prevCachePool","getSuspendedCache","cacheFromPool","SuspenseException","SuspenseyCommitException","SuspenseActionException","noopSuspenseyCommitThenable","isThenableResolved","trackUsedThenable","thenableState","checkIfUseWrappedInAsyncCatch","fulfilledThenable","rejectedThenable","resolveLazy","lazyType","suspendedThenable","getSuspendedThenable","rejectedReason","thenableState$1","thenableIndexCounter$1","unwrapThenable","coerceRef","throwOnInvalidObjectTypeImpl","newChild","returnFiber","createChildReconciler","deleteChild","shouldTrackSideEffects","deletions","childToDelete","deleteRemainingChildren","currentFirstChild","mapRemainingChildren","existingChildren","useFiber","placeChild","newIndex","newFiber","lastPlacedIndex","placeSingleChild","updateTextNode","textContent","updateElement","elementType","updateFragment","updatePortal","fragment","createChild","updateSlot","oldFiber","updateFromMap","newIdx","reconcileChildrenArray","resultingFirstChild","previousNewFiber","nextOldFiber","newChildren","reconcileChildrenIterator","step","reconcileChildFibersImpl","firstChildFiber","reconcileChildFibers","mountChildFibers","hasForceUpdate","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","updateQueue","executionContext","entangleTransitions","queueLanes","enqueueCapturedUpdate","newFirst","newLast","clone","capturedUpdate","didReadFromEntangledAsyncAction","suspendIfUpdateReadFromEntangledAsyncAction","entangledActionThenable","processUpdateQueue","workInProgress$jscomp$0","firstBaseUpdate","lastBaseUpdate","pendingQueue","lastPendingUpdate","firstPendingUpdate","isHiddenUpdate","workInProgressRootRenderLanes","instance$jscomp$0","callCallback","commitCallbacks","callbacks","currentTreeHiddenStackCursor","prevEntangledRenderLanesCursor","pushHiddenContext","entangledRenderLanes","reuseHiddenContextOnStack","popHiddenContext","suspenseHandlerStackCursor","shellBoundary","pushPrimaryTreeSuspenseHandler","handler","suspenseStackCursor","pushDehydratedActivitySuspenseHandler","pushOffscreenSuspenseHandler","reuseSuspenseHandlerOnStack","popSuspenseHandler","pushSuspenseListContext","newContext","popSuspenseListContext","findFirstSuspended","row","isSuspenseInstancePending","isSuspenseInstanceFallback","currentlyRenderingFiber","currentHook","workInProgressHook","didScheduleRenderPhaseUpdate","didScheduleRenderPhaseUpdateDuringThisPass","shouldDoubleInvokeUserFnsInHooksDEV","localIdCounter","thenableIndexCounter","globalClientIdCounter","throwInvalidHookError","areHookInputsEqual","prevDeps","nextDeps","renderWithHooks","nextRenderLanes","HooksDispatcherOnMount","HooksDispatcherOnUpdate","secondArg","renderWithHooksAgain","finishRenderingHooks","ContextOnlyDispatcher","didRenderTooFewHooks","didReceiveUpdate","numberOfReRenders","HooksDispatcherOnRerender","TransitionAwareHostComponent","dispatcher","maybeThenable","useThenable","checkDidRenderIdHook","didRenderIdHook","bailoutHooks","resetHooksOnUnwind","mountWorkInProgressHook","hook","updateWorkInProgressHook","nextCurrentHook","nextWorkInProgressHook","createFunctionComponentUpdateQueue","use","useMemoCache","memoCache","basicStateReducer","updateReducer","updateReducerImpl","baseQueue","baseFirst","newBaseQueueFirst","newBaseQueueLast","didReadFromEntangledAsyncAction$64","revertLane","rerenderReducer","dispatch","lastRenderPhaseUpdate","updateSyncExternalStore","isHydrating$jscomp$0","snapshotChanged","updateEffect","subscribeToStore","pushSimpleEffect","updateStoreInstance","pushStoreConsistencyCheck","renderedSnapshot","nextSnapshot","checkIfSnapshotChanged","forceStoreRerender","latestGetSnapshot","scheduleUpdateOnFiber","mountStateImpl","initialStateInitializer","updateOptimisticImpl","dispatchActionState","isRenderPhaseUpdate","actionQueue","actionNode","setPendingState","setState","runActionStateAction","prevState","handleActionReturnValue","onActionError","error$70","onActionSuccess","nextState","notifyActionListeners","actionStateReducer","mountActionState","ssrFormState","JSCompiler_inline_result$jscomp$0","inRootOrSingleton","initialStateProp","dispatchSetState","dispatchOptimisticSetState","updateActionState","updateActionStateImpl","currentStateHook","actionStateActionEffect","rerenderActionState","updateRef","mountEffectImpl","fiberFlags","hookFlags","updateEffectImpl","mountEffect","useEffectEventImpl","componentUpdateQueue","events","updateEvent","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","refCleanup","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","nextCreate","mountDeferredValueImpl","requestDeferredLane","updateDeferredValueImpl","prevValue","pendingState","dispatchSetStateInternal","finishedState","requestUpdateLane","startHostTransition","formFiber","ensureFormComponentIsStateful","requestFormReset$1","formData","existingStateHook","initialResetState","useHostTransitionStatus","updateId","updateRefresh","refreshCache","root$73","dispatchReducerAction","enqueueRenderPhaseUpdate","entangleTransitionUpdate","currentState","eagerState","throwIfDuringRender","identifierPrefix","idWithLeadingBit","booleanOrThenable","applyDerivedStateFromProps","getDerivedStateFromProps","nextProps","classComponentUpdater","checkShouldComponentUpdate","newProps","nextContext","oldProps","oldState","callComponentWillReceiveProps","resolveClassComponentProps","baseProps","propName$77","defaultOnUncaughtError","defaultOnCaughtError","defaultOnRecoverableError","logUncaughtError","onUncaughtError","errorInfo","e$78","logCaughtError","onCaughtError","e$79","createRootErrorUpdate","createClassErrorUpdate","initializeClassErrorUpdate","getDerivedStateFromError","legacyErrorBoundariesThatAlreadyFailed","stack","throwException","rootRenderLanes","renderDidSuspendDelayIfPossible","workInProgressRootExitStatus","attachPingListener","wrapperError","workInProgressRootConcurrentErrors","SelectiveHydrationException","reconcileChildren","nextChildren","updateForwardRef","propsWithoutRef","bailoutOnAlreadyFinishedWork","updateMemoComponent","updateSimpleMemoComponent","checkScheduledUpdateOrContext","updateFunctionComponent","updateOffscreenComponent","deferHiddenOffscreenComponent","bailoutOffscreenComponent","nextBaseLanes","remainingChildLanes","mountActivityChildren","mountWorkInProgressOffscreenFiber","retryActivityComponentWithoutHydrating","updateActivityComponent","didSuspend","canHydrateHydrationBoundary","dehydrated","markRef","replayFunctionComponent","updateClassComponent","contextType","unresolvedOldProps","oldContext","contextType$jscomp$0","mountHostRootWithoutHydrating","SUSPENDED_MARKER","mountSuspenseOffscreenState","getRemainingWorkInPrimaryTree","primaryTreeDidDefer","workInProgressDeferredLane","updateSuspenseComponent","showFallback","mountSuspensePrimaryChildren","dehydrated$96","updateDehydratedSuspenseComponent","primaryChildren","offscreenProps","retrySuspenseComponentWithoutHydrating","suspenseInstance","didPrimaryChildrenDefer","digest","scheduleSuspenseWorkOnFiber","findLastContentRow","lastContentRow","currentRow","initSuspenseListRenderState","renderState","isBackwards","tail","tailMode","reverseChildren","nextRow","updateSuspenseListComponent","revealOrder","suspenseContext","shouldForceFallback","updateContextProvider","attemptEarlyBailoutIfNoScheduledUpdate","state$108","primaryChildLanes","beginWork","$$typeof","getResource","createHoistableInstance","resolveSingletonInstance","canHydrateInstance","canHydrateTextInstance","markUpdate","preloadInstanceAndSuspendIfNeeded","maySuspendCommit","shouldRemainOnPreviousScreen","preloadResourceAndSuspendIfNeeded","resource","preloadResource","scheduleRetryEffect","retryQueue","cutOffTailIfNeeded","tailNode","lastTailNode","hasRenderedATailFallback","bubbleProperties","didBailout","completedWork","newChildLanes","subtreeFlags","child$113","completeWork","nextResource","ownerDocument","getOwnerDocumentFromRootContainer","setInitialProperties","listenToAllSupportedEvents","workInProgressRootRenderTargetTime","unwindWork","unwindInterruptedWork","interruptedWork","commitHookEffectListMount","finishedWork","lastEffect","firstEffect","flags","captureCommitPhaseError","commitHookEffectListUnmount","destroy","nearestMountedAncestor","nearestMountedAncestor$jscomp$0","destroy_","commitClassCallbacks","safelyCallComponentWillUnmount","safelyAttachRef","instanceToUse","createViewTransitionInstance","fragmentInstance","FragmentInstance","addFragmentHandleToFiber","safelyDetachRef","error$148","commitNewChildToFragmentInstances","parentFragmentInstances","commitNewChildToFragmentInstance","commitFragmentInstanceInsertionEffects","isFragmentInstanceParent","commitFragmentInstanceDeletionEffects","deleteChildFromFragmentInstance","isFragmentInstanceHostBoundary","commitHostMount","commitHostUpdate","domElement","updateProperties","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","before","insertOrAppendPlacementNode","commitHostSingletonAcquisition","singleton","attributes","shouldStartViewTransition","appearingViewTransitions","trackEnterViewTransitions","placement","viewTransitionCancelableChildren","pushViewTransitionCancelableScope","prevChildren","viewTransitionHostInstanceIdx","applyViewTransitionToHostInstances","applyViewTransitionToHostInstancesRecursive","collectMeasurements","stopAtNestedViewTransitions","inViewport","measurement","measureInstance","applyViewTransitionName","restoreViewTransitionOnHostInstances","restoreViewTransitionName","commitAppearingPairViewTransitions","commitEnterViewTransitions","gesture","scheduleViewTransitionEvent","commitDeletedPairViewTransitions","pairs","deletion","pair","commitExitViewTransitions","commitNestedViewTransitions","changedParent","restorePairedViewTransitions","restoreEnterOrExitViewTransitions","restoreNestedViewTransitions","measureViewTransitionHostInstancesRecursive","previousMeasurements","previousMeasurement","nextMeasurement","parentViewTransition","newRect","newName","oldName","measureNestedViewTransitions","measureClonedInstance","offscreenSubtreeIsHidden","offscreenSubtreeWasHidden","offscreenDirectParentIsHidden","needsFormReset","PossiblyWeakSet","nextEffect","viewTransitionContextChanged","inUpdateViewTransition","rootViewTransitionAffected","rootViewTransitionNameCanceled","commitBeforeMutationEffects","_enabled","selection","anchorOffset","focusNode","indexWithinAnchor","indexWithinFocus","next","committedLanes","commitBeforeMutationEffects_complete","isViewTransitionEligible","isViewTransitionEligible$jscomp$0","resolvedPrevProps","clearContainerSparingly","commitLayoutEffectOnFiber","recursivelyTraverseLayoutEffects","finishedRoot","error$146","commitActivityHydrationCallbacks","commitSuspenseHydrationCallbacks","retryDehydratedSuspenseBoundary","registerSuspenseInstanceRetry","newOffscreenSubtreeWasHidden","recursivelyTraverseReappearLayoutEffects","hideOrUnhideAllChildren","parentFiber","hideOrUnhideAllChildrenOnFiber","display","hideOrUnhideNearestPortals","instance$jscomp$1","hideOrUnhideDehydratedBoundary","isHidden$jscomp$0","detachFiberAfterEffects","hostParent","hostParentIsContainer","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","deletedFiber","prevHostParent","prevHostParentIsContainer","releaseSingletonInstance","clearHydrationBoundary","retryIfBlockedOn","getRetryCache","retryCache","attachSuspenseRetryListeners","wakeables","wakeable","resolveRetryWakeable","recursivelyTraverseMutationEffects","root$jscomp$0","commitMutationEffectsOnFiber","currentHoistableRoot","ii","_eventPayloads$ii2","commitReconciliationEffects","getHydratableHoistableCache","mountHoistable","acquireResource","getHoistableRoot","recursivelyResetForms","prevOffscreenSubtreeIsHidden","prevOffscreenSubtreeWasHidden","prevOffscreenDirectParentIsHidden$166","recursivelyTraverseDisappearLayoutEffects","hostParentFiber","parent$jscomp$0","parent$149","parent$151","recursivelyTraverseAfterMutationEffects","commitAfterMutationEffectsOnFiber","layoutEffectTraversalFlags","layoutEffectTraversalFlags$jscomp$0","finishedRoot$jscomp$0","includeWorkInProgressEffects","hiddenCallbacks","commitOffscreenPassiveMountEffects","previousCache","commitCachePassiveMountEffect","recursivelyTraversePassiveMountEffects","commitPassiveMountOnFiber","committedTransitions","_finishedWork$memoize2","id","onPostCommit","recursivelyTraverseReconnectPassiveEffects","recursivelyTraverseAtomicPassiveEffects","committedLanes$jscomp$0","committedTransitions$jscomp$0","suspenseyCommitFlag","recursivelyAccumulateSuspenseyCommit","accumulateSuspenseyCommitOnFiber","suspendedState","suspendInstance","suspendResource","previousHoistableRoot","detachAlternateSiblings","previousFiber","recursivelyTraversePassiveUnmountEffects","commitPassiveUnmountEffectsInsideOfDeletedTree_begin","commitPassiveUnmountOnFiber","recursivelyTraverseDisconnectPassiveEffects","deletedSubtreeRoot","sibling","DefaultAsyncDispatcher","cacheForType","resourceType","PossiblyWeakMap","workInProgressSuspendedReason","workInProgressThrownValue","workInProgressRootDidSkipSuspendedSiblings","workInProgressRootIsPrerendering","workInProgressRootDidAttachPingListener","workInProgressRootSkippedLanes","workInProgressRootInterleavedUpdatedLanes","workInProgressRootPingedLanes","workInProgressSuspendedRetryLanes","workInProgressRootDidIncludeRecursiveRenderUpdate","globalMostRecentFallbackTime","globalMostRecentTransitionTime","workInProgressTransitions","pendingEffectsStatus","pendingFinishedWork","pendingEffectsLanes","pendingEffectsRemainingLanes","pendingPassiveTransitions","pendingRecoverableErrors","pendingViewTransition","pendingViewTransitionEvents","rootWithNestedUpdates","prepareFreshStack","markRootSuspended","ensureRootIsScheduled","performWorkOnRoot","shouldTimeSlice","forceSync","exitStatus","renderRootConcurrent","renderRootSync","renderWasConcurrent","isRenderConsistentWithExternalStores","wasRootDehydrated","scheduleTimeout","completeRootWhenReady","suspendedCommitReason","onUnsuspend","waitForCommitToBeReady","completeRoot","recoverableErrors","transitions","didIncludeRenderPhaseUpdate","didSkipSuspendedSiblings","completedRenderStartTime","completedRenderEndTime","check","didAttemptEntireTree","index$6","flushSyncWorkAcrossRoots_impl","resetWorkInProgressStack","timeoutHandle","cancelTimeout","handleThrow","thrownValue","pushDispatcher","prevDispatcher","pushAsyncDispatcher","prevAsyncDispatcher","prevExecutionContext","unitOfWork","throwAndUnwindWorkLoop","shouldYieldForPrerendering","workLoopSync","thrownValue$184","performUnitOfWork","replaySuspendedUnitOfWork","hostFiber","completeUnitOfWork","workLoopConcurrentByScheduler","thrownValue$186","suspendedReason","unwindUnitOfWork","skipSiblings","flushPendingEffects","commitRoot","scheduleCallback$1","flushPassiveEffects","startViewTransition","flushMutationEffects","flushLayoutEffects","flushAfterMutationEffects","flushSpawnedWork","reportViewTransitionError","onRecoverableError","rootMutationHasEffect","selectionInformation","curFocusedElem","priorFocusedElem","priorSelectionRange","win","start$jscomp$0","end$jscomp$0","startMarker","endMarker","range","eventsEnabled","rootHasLayoutEffect","committedViewTransition","passiveSubtreeMask","releaseRootPooledCache","recoverableError","renderPriority","captureCommitPhaseErrorOnRoot","rootFiber","pingCache","threadIDs","pingSuspendedRoot","retryTimedOutBoundary","retryLane","boundaryFiber","lastScheduledRoot","didScheduleMicrotask","mightHavePendingSyncWork","isFlushingWork","currentEventTransitionLane","scheduleImmediateRootScheduleTask","didPerformSomeWork","root$190","onlyLegacy","syncTransitionLanes","performSyncWorkOnRoot","processRootScheduleInImmediateTask","processRootScheduleInMicrotask","shouldAttemptEagerTransition","scheduleTaskForRootDuringMicrotask","index$5","expirationTime","performWorkOnRootViaSchedulerTask","originalCallbackNode","workInProgressRootRenderLanes$jscomp$0","didTimeout","scheduleMicrotask","actionScopeLane","coerceFormActionProp","actionProp","extractEvents$1","maybeTargetInst","submitter","i$jscomp$inline_1667","eventName$jscomp$inline_1668","nonDelegatedEvents","eventSystemFlags","_dispatchQueue$i","previousInstance","i$jscomp$0","_dispatchListeners$i","currentTarget","targetElement","listenerSetKey","addTrappedEventListener","listenToNativeEvent","isCapturePhaseListener","listeningMarker","rootContainerElement","listenerWrapper","dispatchDiscreteEvent","dispatchContinuousEvent","dispatchEvent","targetContainer","dispatchEventForPluginEventSystem","ancestorInst","targetInst$jscomp$0","nodeTag","grandTag","SyntheticEventCtor","inCapturePhase","accumulateTargetOnly","reactEventName","lastHostComponent","_instance","createDispatchListener","accumulateEnterLeaveListenersForEvent","getTargetInstFunc","handleEventFunc","fallbackData","eventType","captureName","targetFiber","_instance2","common","_instance3","NORMALIZE_NEWLINES_REGEX","NORMALIZE_NULL_AND_REPLACEMENT_REGEX","normalizeMarkupForTextOrAttribute","markup","clientText","serverText","setProp","setPropOnCustomElement","hasSrc","hasSrcSet","propKey","propValue$204","emptyProps","lastProps","lastProp","propKey$221","propKey$237","propKey$242","propKey$247","propKey$252","isLikelyStaticResource","initiatorType","estimateBandwidth","bits","resourceEntries","entry","transferSize","duration","overlapEntry","overlapStartTime","overlapTransferSize","overlapInitiatorType","namespaceURI","parentNamespace","rootContainerInstance","internalInstanceHandle","currentPopstateTransitionEvent","localPromise","localRequestAnimationFrame","handleErrorInNextTick","hydrationInstance","parentInstance","clearSingletonPreambleContribution","node$jscomp$0","nextNode$jscomp$0","rect","viewTransitionName","createMeasurement","computedStyle","measuredRect","forceLayout","waitForImageToLoad","rootContainer","ownerWindow","pendingNavigation","previousFontLoadingStatus","mutationCallback","blockingPromises","suspenseyImages","imgBytes","suspenseyImage","estimateImageBytes","estimatedBytesWithinLimit","layoutCallback","afterMutationCallback","viewTransitionAnimations","animations","animation","effect","pseudoElement","height","unchangedDimensions","j","keyframe","w","spawnedWorkCallback","errorCallback","passiveCallback","ViewTransitionPseudoElement","pseudo","keyframes","selector","fragmentFiber","cleanup","optionsOrUseCapture","indexOfEventListener","attachedListener","getAttachOptions","addEventListenerToChild","_listeners$index","removeEventListenerFromChild","opts","normalizeListenerOptions","eventListeners","temp","_eventListeners$i","setFocusOnFiberIfFocusable","focusOptions","setFocusIfFocusable","collectChildren","collection","blurActiveElementWithinFragment","observeChild","observers","unobserveChild","pendingIntersectionUnobserves","intersectionUnobserveScheduled","schedulePendingIntersectionUnobserve","requestPostPaintCallback","rects","collectClientRects","getRootNodeOptions","parentHostInstance","parentHostInstanceFromDOM","firstResult","lastResult","otherNodeIsWithinFirstOrLastChild","validateDocumentPositionWithFiberTree","otherFiber","documentPosition","precedingBoundaryFiber","followingBoundaryFiber","scrollTextNodeIntoView","textNode","resolvedAlignToTop","alignToTop","hostSiblings","addFragmentHandleToInstance","_eventListeners$i3","childInstance","writeIdx","_eventListeners$i4","anyProps","nodeType","targetInstance","handleFocus","didFocus","time","preloadPropsMap","preconnectsSet","rootNode","previousDispatcher","flushSyncWork","requestFormReset","prefetchDNS","preconnect","preload","preloadModule","preinitScript","preinitStyle","preinitModuleScript","previousWasRendering","wasRendering","formInst","globalDocument","preconnectAs","limitedEscapedHref","rel","preloadSelector","getStyleKey","getScriptKey","getStylesheetSelectorFromKey","getScriptSelectorFromKey","precedence","adoptPreloadPropsForStylesheet","insertStylesheet","src","scripts","adoptPreloadPropsForScript","currentProps","currentResource","styles$268","resource$269","preloadStylesheet","stylesheetPropsFromRawProps","rawProps","preloadProps","hoistableRoot","styleProps","instance$274","linkInstance","nodes","prior","tagCaches","caches","nodeKey","keyAttribute","hostContext","onUnsuspendImg","insertSuspendedStylesheets","stylesheetTimer","unsuspend","timeoutOffset","imgTimer","commit","checkIfFullyUnsuspended","precedencesByRoot","insertStylesheetIntoRoot","precedences","FiberRootNode","formState","createFiberRoot","hydrate","onDefaultTransitionIndicator","isStrictMode","initialChildren","getContextForSubtree","parentComponent","updateContainerImpl","markRetryLaneImpl","markRetryLaneIfNotHydrated","attemptContinuousHydration","attemptHydrationAtCurrentPriority","blockedOn","findInstanceBlockingEvent","return_targetInst","clearIfContinuousEvent","queueIfContinuousEvent","discreteReplayableEvents","findInstanceBlockingTarget","nearestMounted","hasScheduledReplayAttempt","queuedFocus","queuedDrag","queuedMouse","queuedPointers","queuedPointerCaptures","queuedExplicitHydrationTargets","accumulateOrCreateContinuousQueuedReplayableEvent","existingQueuedEvent","pointerId","attemptExplicitHydrationTarget","queuedTarget","attemptReplayContinuousQueuedEvent","queuedEvent","targetContainers","nextBlockedOn","nativeEventClone","attemptReplayContinuousQueuedEventInMap","map","replayUnblockedEvents","scheduleCallbackIfUnblocked","unblocked","lastScheduledReplayQueue","scheduleReplayQueueIfNeeded","formReplayingQueue","submitterOrAction","unblock","formProps","defaultOnDefaultTransitionIndicator","handleNavigate","handleNavigateComplete","pendingResolve","isCancelled","startFakeNavigation","currentEntry","ReactDOMRoot","internalRoot","ReactDOMHydrationRoot","isomorphicReactPackageVersion$jscomp$inline_2043","componentOrElement","internals$jscomp$inline_2586","hook$jscomp$inline_2587","import_client","CONFIG_ELEMENT_ID","readConfig","parsed","uiBase","injected","apiBase","defaultEnvironment","ApiError","message","issues","readBody","body","res","redirectToAuthSurface","redirectTo","http","path","csrfHeader","token","send","buildQuery","q","qs","seg","api","EnvContext","EnvProvider","useEnv","describeWrite","useWrite","notice","setNotice","onNotice","Notice","parseVariantValue","trimmed","variantText","NUMERIC_OPS","parseConditionValues","part","op","conditionValuesText","values","isSegmentCondition","condition","newAttributeCondition","nextRuleId","used","rule","splitPercents","total","split","sum","arm","toSplit","serve","variants","variant","toFixed","renameVariant","definition","swap","s","cleanDefinition","out","e","isOnOff","names","rolloutSteps","percents","hours","localInputToIso","date","formatValue","describeServing","serving","servingTone","STALE_LABELS","formatPercent","fraction","digits","formatP","p","formatMean","mean","kind","r","f","clsx","concatArrays","combinedArray","array1","array2","createClassValidatorObject","createClassPartObject","CLASS_PART_SEPARATOR","EMPTY_CONFLICTS","ARBITRARY_PROPERTY_PREFIX","createClassGroupUtils","classMap","createClassMap","getGroupIdForArbitraryProperty","classParts","getGroupRecursive","hasPostfixModifier","modifierConflicts","conflictingClassGroupModifiers","classGroupId","baseConflicts","conflictingClassGroups","startIndex","classPartObject","currentClassPart","nextClassPartObject","validators","classRest","validatorsLength","validatorObj","colonIndex","property","processClassGroups","classGroups","theme","group","processClassesRecursively","len","classGroup","classDefinition","processClassDefinition","processStringDefinition","processFunctionDefinition","processObjectDefinition","classPartObjectToEdit","getPart","isThemeGetter","entries","parts","createLruCache","maxCacheSize","cacheSize","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","EMPTY_MODIFIERS","createResultObject","createParseClassName","parseClassName","modifiers","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","baseClassName","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","experimentalParseClassName","createSortModifiers","modifierWeights","currentSegment","modifier","isArbitrary","isOrderSensitive","createConfigUtils","createPostfixLookupClassGroupIds","lookup","classGroupIds","SPLIT_CLASSES_REGEX","mergeClassList","configUtils","classGroupsInConflict","classNames","classList","originalClassName","isExternal","getClassGroupId","classGroupIdWithPostfix","postfixLookupClassGroupIds","variantModifier","sortModifiers","modifierId","classId","conflictGroups","getConflictingClassGroupIds","twJoin","classLists","argument","resolvedValue","string","toValue","mix","createTailwindMerge","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","createConfigCurrent","previousConfig","createConfigFirst","tailwindMerge","cachedResult","fallbackThemeArr","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isNamedContainerQuery","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryWeight","isLabelWeight","isArbitraryFamilyName","isLabelFamilyName","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","isArbitraryVariableWeight","testLabel","testValue","shouldMatchNoLabel","label","twMerge","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleSizingInline","scaleSizingBlock","scaleColor","scaleBgPosition","scaleBgRepeat","scaleBgSize","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","cn","inputs","Panel","title","subtitle","actions","QueryState","ErrorBox","empty","emptyMessage","IssueList","issue","Table","head","formatTime","iso","pad","falsyToString","cx","badgeVariants","base","getVariantClassNames","variantProp","defaultVariantProp","defaultVariants","variantKey","propsWithoutUndefined","acc","cvClass","cvClassName","compoundVariantOptions","Badge","BUTTON","Button","FIELD","Input","Select","TextArea","Field","hint","Toggle","onChange","EvaluateTester","targetingKey","setTargetingKey","setAttributes","parseError","setParseError","environment","flagKey","draft","STEP_PRESET","SchedulesPanel","refresh","setKind","runAt","setRunAt","percent","setPercent","setStart","every","setEvery","steps","setSteps","one","gradual","schedules","onOff","HistoryPanel","Segmented","ariaLabel","selected","option","Activity","entity","setEntity","setKey","setBefore","describeChange","request","change","RequestRow","note","setNote","done","approve","mine","me","busy","Approvals","setStatus","requests","meta","download","blob","Environments","environments","exportError","setExportError","json","setJson","setFrom","setTo","importIt","ruleset","promoteIt","file","Experiments","rows","onOpen","MetricTable","byVariant","metric","isControl","ResultsView","results","ExperimentDetail","experimentKey","recompute","old","detail","onClose","DeclarationDetails","declaration","setForm","save","t","Section","VariantSelect","VariantsEditor","ServeEditor","_drop","rest","ConditionEditor","segment","segments","AttributeFields","onRemove","operators","RulesEditor","rules","move","by","OverridesEditor","overrides","subject","PrerequisitesEditor","prerequisites","flag","ExperimentEditor","experiment","layers","l","FlagEditor","EditorBody","useLivePreview","live","setDraft","clean","preview","dirty","remove","onDeleted","EMPTY_NEW_FLAG","toDeclaration","raw","tags","defaultFor","NewFlag","setError","submit","onCreated","onCancel","filterFlags","needle","FlagsList","search","setSearch","setTag","setOwner","show","setShow","creating","setCreating","kill","owners","visible","open","Hygiene","unusedDays","setUnusedDays","staticDays","setStaticDays","BUCKETS","AllocationBar","allocations","LayerForm","layerKey","setRows","free","experiments","isNew","onDone","HoldoutForm","setValue","holdout","Layers","adding","setAdding","inLayer","layer","Stat","tone","Ops","ops","sink","SCREENS","SCREEN_VALUES","screen","WITH_ID","isScreen","parseRoute","hash","queryAt","env","withEnv","route","slash","safeDecode","formatRoute","lines","cleanSegment","SegmentForm","segmentKey","included","setIncluded","excluded","setExcluded","conditions","setConditions","usedBy","Segments","useHashRoute","setRoute","sync","App","navigate","go","approvals","isAppEnvironment"],"sources":["../../../../../node_modules/.pnpm/react@19.3.1/node_modules/react/cjs/react.production.js","../../../../../node_modules/.pnpm/react@19.3.1/node_modules/react/index.js","../../../../../node_modules/.pnpm/react@19.3.1/node_modules/react/cjs/react-jsx-runtime.production.js","../../../../../node_modules/.pnpm/react@19.3.1/node_modules/react/jsx-runtime.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.107.1_@types+react@19.3.0_react@19.3.1/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/timeoutManager.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/utils.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/environmentManager.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/retryer.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/removable.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/query.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/mutation.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../../../node_modules/.pnpm/@tanstack+query-core@5.107.1/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.107.1_@types+react@19.3.0_react@19.3.1/node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.107.1_@types+react@19.3.0_react@19.3.1/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.107.1_@types+react@19.3.0_react@19.3.1/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.107.1_@types+react@19.3.0_react@19.3.1/node_modules/@tanstack/react-query/build/modern/suspense.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.107.1_@types+react@19.3.0_react@19.3.1/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.107.1_@types+react@19.3.0_react@19.3.1/node_modules/@tanstack/react-query/build/modern/useQuery.js","../../../../../node_modules/.pnpm/@tanstack+react-query@5.107.1_@types+react@19.3.0_react@19.3.1/node_modules/@tanstack/react-query/build/modern/useMutation.js","../../../../../node_modules/.pnpm/scheduler@0.28.0/node_modules/scheduler/cjs/scheduler.production.js","../../../../../node_modules/.pnpm/scheduler@0.28.0/node_modules/scheduler/index.js","../../../../../node_modules/.pnpm/react-dom@19.3.1_react@19.3.1/node_modules/react-dom/cjs/react-dom.production.js","../../../../../node_modules/.pnpm/react-dom@19.3.1_react@19.3.1/node_modules/react-dom/index.js","../../../../../node_modules/.pnpm/react-dom@19.3.1_react@19.3.1/node_modules/react-dom/cjs/react-dom-client.production.js","../../../../../node_modules/.pnpm/react-dom@19.3.1_react@19.3.1/node_modules/react-dom/client.js","../../../src/client/flags-client.ts","../../../src/app/env.tsx","../../../src/app/flag-model.ts","../../../src/app/serving.ts","../../../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../../../node_modules/.pnpm/tailwind-merge@3.7.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs","../../../src/app/ui/cn.ts","../../../src/app/shell.tsx","../../../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","../../../src/app/ui/badge.tsx","../../../src/app/ui/form.tsx","../../../src/app/FlagTools.tsx","../../../src/app/ui/segmented.tsx","../../../src/app/Activity.tsx","../../../src/app/Approvals.tsx","../../../src/app/Environments.tsx","../../../src/app/Experiments.tsx","../../../src/app/DeclarationDetails.tsx","../../../src/app/editor-parts.tsx","../../../src/app/FlagEditor.tsx","../../../src/app/new-flag.ts","../../../src/app/NewFlag.tsx","../../../src/app/FlagsList.tsx","../../../src/app/Hygiene.tsx","../../../src/app/Layers.tsx","../../../src/app/Ops.tsx","../../../src/app/routes.ts","../../../src/app/Segments.tsx","../../../src/app/App.tsx","../../../src/app/main.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\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 thenable = ctor();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1),\n (payload._result = moduleObject),\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2),\n (payload._result = error),\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n );\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\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 };\nfunction startTransition(scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition.types =\n null !== prevTransition ? prevTransition.types : null;\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}\nfunction addTransitionType(type) {\n var transition = ReactSharedInternals.T;\n if (null !== transition) {\n var transitionTypes = transition.types;\n null === transitionTypes\n ? (transition.types = [type])\n : -1 === transitionTypes.indexOf(type) && transitionTypes.push(type);\n } else startTransition(addTransitionType.bind(null, type));\n}\nvar 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.ViewTransition = REACT_VIEW_TRANSITION_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.addTransitionType = addTransitionType;\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 = startTransition;\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.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-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 client\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n// src/QueryClientProvider.tsx\n/**\n* The context that `useQueryClient` reads from. `QueryClientProvider` is the normal way to set it.\n*/\nconst QueryClientContext = React.createContext(void 0);\n/**\n* The `useQueryClient` hook returns the current `QueryClient` instance.\n* @param queryClient - Use this to use a custom `QueryClient`. Otherwise, the one from the nearest context will\n* be used.\n* @returns The current `QueryClient` instance.\n* @throws {Error} If no `queryClient` argument is passed and no `QueryClientProvider` is found in the\n* component tree.\n*/\nconst useQueryClient = (queryClient) => {\n\tconst client = React.useContext(QueryClientContext);\n\tif (queryClient) return queryClient;\n\tif (!client) throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n\treturn client;\n};\n/**\n* Use the `QueryClientProvider` component to connect and provide a `QueryClient` to your application. Also\n* calls `client.mount()`/`client.unmount()` as this component mounts/unmounts, which subscribes the client to\n* focus/online events (resuming any paused mutations and refetching as needed when the app regains focus or\n* comes back online).\n* @param props - The `client` to provide, and the `children` that get access to it.\n* @returns The provided `children`, wrapped so they can read the `QueryClient` via `useQueryClient`.\n* @example\n* ```tsx\n* import { QueryClient, QueryClientProvider } from '@tanstack/react-query'\n*\n* const queryClient = new QueryClient()\n*\n* function App() {\n* return <QueryClientProvider client={queryClient}>...</QueryClientProvider>\n* }\n* ```\n*/\nconst QueryClientProvider = ({ client, children }) => {\n\tReact.useEffect(() => {\n\t\tclient.mount();\n\t\treturn () => {\n\t\t\tclient.unmount();\n\t\t};\n\t}, [client]);\n\treturn /* @__PURE__ */ jsx(QueryClientContext.Provider, {\n\t\tvalue: client,\n\t\tchildren\n\t});\n};\nexport { QueryClientContext, QueryClientProvider, useQueryClient };\n\n//# sourceMappingURL=QueryClientProvider.js.map","// src/timeoutManager.ts\nconst defaultTimeoutProvider = {\n\tsetTimeout: (callback, delay) => setTimeout(callback, delay),\n\tclearTimeout: (timeoutId) => clearTimeout(timeoutId),\n\tsetInterval: (callback, delay) => setInterval(callback, delay),\n\tclearInterval: (intervalId) => clearInterval(intervalId)\n};\n/**\n* Allows customization of how timeouts are created.\n*\n* `@tanstack/query-core` makes liberal use of timeouts to implement `staleTime`\n* and `gcTime`. The default TimeoutManager provider uses the platform's global\n* `setTimeout` implementation, which is known to have scalability issues with\n* thousands of timeouts on the event loop.\n*\n* If you hit this limitation, consider providing a custom TimeoutProvider that\n* coalesces timeouts.\n*/\nvar TimeoutManager = class {\n\t#provider = defaultTimeoutProvider;\n\t#providerCalled = false;\n\t/**\n\t* `setTimeoutProvider` can be used to set a custom implementation of the\n\t* `setTimeout`, `clearTimeout`, `setInterval`, `clearInterval` functions,\n\t* called a `TimeoutProvider`.\n\t*\n\t* This may be useful if you notice event loop performance issues with\n\t* thousands of queries. A custom TimeoutProvider could also support timer\n\t* delays longer than the global `setTimeout` maximum delay value of about\n\t* 24 days.\n\t*\n\t* It is important to call `setTimeoutProvider` before creating a\n\t* QueryClient or queries, so that the same provider is used consistently\n\t* for all timers in the application, since different TimeoutProviders\n\t* cannot cancel each others' timers.\n\t* @param provider - The `TimeoutProvider` to use for all timers from now on.\n\t* @example\n\t* ```ts\n\t* import { timeoutManager, QueryClient } from '@tanstack/query-core'\n\t* import { CustomTimeoutProvider } from './CustomTimeoutProvider'\n\t*\n\t* timeoutManager.setTimeoutProvider(new CustomTimeoutProvider())\n\t*\n\t* export const queryClient = new QueryClient()\n\t* ```\n\t*/\n\tsetTimeoutProvider(provider) {\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (this.#providerCalled && provider !== this.#provider) console.error(`[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`, {\n\t\t\t\tprevious: this.#provider,\n\t\t\t\tprovider\n\t\t\t});\n\t\t}\n\t\tthis.#provider = provider;\n\t\tif (process.env.NODE_ENV !== \"production\") this.#providerCalled = false;\n\t}\n\t/**\n\t* `setTimeout` schedules a callback to run after approximately `delay`\n\t* milliseconds, like the global `setTimeout` function. The callback can be\n\t* canceled with `clearTimeout`.\n\t*\n\t* It returns a timer ID, which may be a number or an object that can be\n\t* coerced to a number via `Symbol.toPrimitive`.\n\t* @param callback - The function to call when the timeout elapses.\n\t* @param delay - The time to wait before calling `callback`, in milliseconds.\n\t* @returns The timer ID, to pass to {@link TimeoutManager#clearTimeout}.\n\t* @example\n\t* ```ts\n\t* import { timeoutManager } from '@tanstack/query-core'\n\t*\n\t* const timeoutId = timeoutManager.setTimeout(\n\t* () => console.log('ran at:', new Date()),\n\t* 1000,\n\t* )\n\t*\n\t* const timeoutIdNumber: number = Number(timeoutId)\n\t* ```\n\t*/\n\tsetTimeout(callback, delay) {\n\t\tif (process.env.NODE_ENV !== \"production\") this.#providerCalled = true;\n\t\treturn this.#provider.setTimeout(callback, delay);\n\t}\n\t/**\n\t* `clearTimeout` cancels a timeout callback scheduled with `setTimeout`,\n\t* like the global `clearTimeout` function. It should be called with a\n\t* timer ID returned by `setTimeout`.\n\t* @param timeoutId - The timer ID returned by `setTimeout`, or `undefined`.\n\t* @example\n\t* ```ts\n\t* import { timeoutManager } from '@tanstack/query-core'\n\t*\n\t* const timeoutId = timeoutManager.setTimeout(\n\t* () => console.log('ran at:', new Date()),\n\t* 1000,\n\t* )\n\t*\n\t* timeoutManager.clearTimeout(timeoutId)\n\t* ```\n\t*/\n\tclearTimeout(timeoutId) {\n\t\tthis.#provider.clearTimeout(timeoutId);\n\t}\n\t/**\n\t* `setInterval` schedules a callback to be called approximately every\n\t* `delay` milliseconds, like the global `setInterval` function.\n\t*\n\t* Like `setTimeout`, it returns a timer ID, which may be a number or an\n\t* object that can be coerced to a number via `Symbol.toPrimitive`.\n\t* @param callback - The function to call on every interval.\n\t* @param delay - The time between calls, in milliseconds.\n\t* @returns The timer ID, to pass to {@link TimeoutManager#clearInterval}.\n\t* @example\n\t* ```ts\n\t* import { timeoutManager } from '@tanstack/query-core'\n\t*\n\t* const intervalId = timeoutManager.setInterval(\n\t* () => console.log('ran at:', new Date()),\n\t* 1000,\n\t* )\n\t* ```\n\t*/\n\tsetInterval(callback, delay) {\n\t\tif (process.env.NODE_ENV !== \"production\") this.#providerCalled = true;\n\t\treturn this.#provider.setInterval(callback, delay);\n\t}\n\t/**\n\t* `clearInterval` can be used to cancel an interval, like the global\n\t* `clearInterval` function. It should be called with an interval ID\n\t* returned by `setInterval`.\n\t* @param intervalId - The timer ID returned by `setInterval`, or `undefined`.\n\t* @example\n\t* ```ts\n\t* import { timeoutManager } from '@tanstack/query-core'\n\t*\n\t* const intervalId = timeoutManager.setInterval(\n\t* () => console.log('ran at:', new Date()),\n\t* 1000,\n\t* )\n\t*\n\t* timeoutManager.clearInterval(intervalId)\n\t* ```\n\t*/\n\tclearInterval(intervalId) {\n\t\tthis.#provider.clearInterval(intervalId);\n\t}\n};\n/**\n* Singleton instance of {@link TimeoutManager}, used throughout TanStack Query to schedule and cancel timers.\n*/\nconst timeoutManager = new TimeoutManager();\n/**\n* In many cases code wants to delay to the next event loop tick; this is not\n* mediated by {@link timeoutManager}.\n*\n* This function is provided to make auditing the `tanstack/query-core` for\n* incorrect use of system `setTimeout` easier.\n* @param callback - The function to call on the next event loop tick.\n*/\nfunction systemSetTimeoutZero(callback) {\n\tsetTimeout(callback, 0);\n}\nexport { TimeoutManager, defaultTimeoutProvider, systemSetTimeoutZero, timeoutManager };\n\n//# sourceMappingURL=timeoutManager.js.map","import { timeoutManager } from \"./timeoutManager.js\";\n// src/utils.ts\n/**\n* @deprecated use `environmentManager.isServer()` instead.\n*/\nconst isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {}\n/**\n* Resolves an {@link Updater}: calls it with `input` if it is a function, otherwise returns it as\n* is.\n* @param updater - The new value, or a function that receives `input` and returns the new value.\n* @param input - The current value, passed to `updater` if it is a function.\n* @returns The new value.\n*/\nfunction functionalUpdate(updater, input) {\n\treturn typeof updater === \"function\" ? updater(input) : updater;\n}\n/**\n* Checks whether a value can be used as a timeout: a non-negative, finite number.\n* @param value - The value to check.\n* @returns `true` if `value` is a number that is `>= 0` and not `Infinity`.\n*/\nfunction isValidTimeout(value) {\n\treturn typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\n/**\n* Calculates how long until data updated at `updatedAt` becomes stale.\n* @param updatedAt - The timestamp, in milliseconds, at which the data was last updated.\n* @param staleTime - The time, in milliseconds, after which data is considered stale. Defaults to\n* `0`.\n* @returns The remaining time in milliseconds, or `0` if the data is already stale.\n*/\nfunction timeUntilStale(updatedAt, staleTime) {\n\treturn Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\n/**\n* Resolves an option that can be given either as a value or as a function of the query, such as\n* `staleTime`.\n* @param value - The option value, or a function that receives `query` and returns the value.\n* @param query - The query passed to `value` if it is a function.\n* @returns The resolved value, or `undefined` if `value` is `undefined`.\n*/\nfunction resolveQueryValue(value, query) {\n\treturn typeof value === \"function\" ? value(query) : value;\n}\n/**\n* Checks whether a query matches the given {@link QueryFilters}.\n* Every filter that is specified must match; filters that are left unspecified are ignored.\n* @param filters - The filters to check the query against.\n* @param query - The query to check.\n* @returns `true` if the query matches every specified filter.\n* @example\n* ```ts\n* const queryCache = queryClient.getQueryCache()\n*\n* const matchingQueries = queryCache\n* .getAll()\n* .filter((query) => matchQuery({ queryKey: ['posts'] }, query))\n* ```\n*/\nfunction matchQuery(filters, query) {\n\tconst { type = \"all\", exact, fetchStatus, predicate, queryKey, stale } = filters;\n\tif (queryKey) {\n\t\tif (exact) {\n\t\t\tif (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) return false;\n\t\t} else if (!partialMatchKey(query.queryKey, queryKey)) return false;\n\t}\n\tif (type !== \"all\") {\n\t\tconst isActive = query.isActive();\n\t\tif (type === \"active\" && !isActive) return false;\n\t\tif (type === \"inactive\" && isActive) return false;\n\t}\n\tif (typeof stale === \"boolean\" && query.isStale() !== stale) return false;\n\tif (fetchStatus && fetchStatus !== query.state.fetchStatus) return false;\n\tif (predicate && !predicate(query)) return false;\n\treturn true;\n}\n/**\n* Checks whether a mutation matches the given {@link MutationFilters}.\n* Every filter that is specified must match; filters that are left unspecified are ignored.\n* If a `mutationKey` filter is provided but the mutation has no `mutationKey` of its own, it does not match.\n* @param filters - The filters to check the mutation against.\n* @param mutation - The mutation to check.\n* @returns `true` if the mutation matches every specified filter.\n* @example\n* ```ts\n* const mutationCache = queryClient.getMutationCache()\n*\n* const matchingMutations = mutationCache\n* .getAll()\n* .filter((mutation) => matchMutation({ mutationKey: ['addPost'] }, mutation))\n* ```\n*/\nfunction matchMutation(filters, mutation) {\n\tconst { exact, status, predicate, mutationKey } = filters;\n\tif (mutationKey) {\n\t\tif (!mutation.options.mutationKey) return false;\n\t\tif (exact) {\n\t\t\tif (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) return false;\n\t\t} else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) return false;\n\t}\n\tif (status && mutation.state.status !== status) return false;\n\tif (predicate && !predicate(mutation)) return false;\n\treturn true;\n}\n/**\n* Hashes a query key with the query's `queryKeyHashFn` option, falling back to {@link hashKey}.\n* @param queryKey - The query key to hash.\n* @param options - The query options that may provide a custom `queryKeyHashFn`.\n* @returns The query hash, a string that identifies the query in the cache.\n*/\nfunction hashQueryKeyByOptions(queryKey, options) {\n\treturn (options?.queryKeyHashFn || hashKey)(queryKey);\n}\n/**\n* Default query & mutation keys hash function.\n* Hashes the value into a stable hash.\n* @param queryKey - The query or mutation key to hash.\n* @returns The stable hash of the key, as a JSON string.\n* @example\n* ```ts\n* // Object keys are sorted, so key order doesn't affect the hash:\n* hashKey(['todos', { page: 1, filter: 'done' }]) // === '[\"todos\",{\"filter\":\"done\",\"page\":1}]'\n* ```\n*/\nfunction hashKey(queryKey) {\n\treturn JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n\t\tresult[key] = val[key];\n\t\treturn result;\n\t}, {}) : val);\n}\nfunction partialMatchKey(a, b) {\n\tif (a === b) return true;\n\tif (typeof a !== typeof b) return false;\n\tif (a && b && typeof a === \"object\" && typeof b === \"object\") {\n\t\tif (Array.isArray(a) && Array.isArray(b)) {\n\t\t\tif (b.length > a.length) return false;\n\t\t\tfor (let i = 0; i < b.length; i++) if (!partialMatchKey(a[i], b[i])) return false;\n\t\t\treturn true;\n\t\t}\n\t\tconst bKeys = Object.keys(b);\n\t\tfor (const key of bKeys) if (!partialMatchKey(a[key], b[key])) return false;\n\t\treturn true;\n\t}\n\treturn false;\n}\nconst hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n\tif (a === b) return a;\n\tif (depth > 500) return b;\n\tconst array = isPlainArray(a) && isPlainArray(b);\n\tif (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n\tconst aSize = (array ? a : Object.keys(a)).length;\n\tconst bItems = array ? b : Object.keys(b);\n\tconst bSize = bItems.length;\n\tconst copy = array ? new Array(bSize) : {};\n\tlet equalItems = 0;\n\tfor (let i = 0; i < bSize; i++) {\n\t\tconst key = array ? i : bItems[i];\n\t\tconst aItem = a[key];\n\t\tconst bItem = b[key];\n\t\tif (aItem === bItem) {\n\t\t\tcopy[key] = aItem;\n\t\t\tif (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n\t\t\tcopy[key] = bItem;\n\t\t\tcontinue;\n\t\t}\n\t\tconst v = replaceEqualDeep(aItem, bItem, depth + 1);\n\t\tcopy[key] = v;\n\t\tif (v === aItem) equalItems++;\n\t}\n\treturn aSize === bSize && equalItems === aSize ? a : copy;\n}\n/**\n* Shallow compare objects.\n* @param a - The first object.\n* @param b - The second object, or `undefined`.\n* @returns `true` if both objects have the same keys, with strictly equal values for each key.\n*/\nfunction shallowEqualObjects(a, b) {\n\tif (!b || Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (const key of Object.keys(a)) if (!hasOwn.call(b, key) || a[key] !== b[key]) return false;\n\treturn true;\n}\n/**\n* Checks whether a value is an array with no holes and no extra properties.\n* @param value - The value to check.\n* @returns `true` if `value` is an array whose number of own keys equals its `length`.\n*/\nfunction isPlainArray(value) {\n\treturn Array.isArray(value) && value.length === Object.keys(value).length;\n}\n/**\n* Checks whether a value is a plain object, e.g. created with an object literal or\n* `Object.create(null)`.\n* @param o - The value to check.\n* @returns `true` if `o` is a plain object.\n*/\nfunction isPlainObject(o) {\n\tif (!hasObjectPrototype(o)) return false;\n\tconst objectPrototype = Object.getPrototypeOf(o);\n\tconst ctor = objectPrototype?.constructor;\n\tif (ctor === void 0) return true;\n\tif (typeof ctor !== \"function\") return false;\n\tconst prot = ctor.prototype;\n\tif (!hasObjectPrototype(prot)) return false;\n\tif (!prot.hasOwnProperty(\"isPrototypeOf\")) return false;\n\tif (objectPrototype !== Object.prototype) return false;\n\treturn true;\n}\n/**\n* Checks whether a value's `Object.prototype.toString` tag is `[object Object]`.\n* @param o - The value to check.\n* @returns `true` if the tag is `[object Object]`.\n*/\nfunction hasObjectPrototype(o) {\n\treturn Object.prototype.toString.call(o) === \"[object Object]\";\n}\n/**\n* Waits for the given time, using the configured {@link timeoutManager}.\n* @param timeout - The time to wait, in milliseconds.\n* @returns A promise that resolves after `timeout` milliseconds.\n*/\nfunction sleep(timeout) {\n\treturn new Promise((resolve) => {\n\t\ttimeoutManager.setTimeout(resolve, timeout);\n\t});\n}\n/**\n* Applies a query's `structuralSharing` option when writing new data.\n* @param prevData - The previously cached data.\n* @param data - The new data.\n* @param options - The query options, whose `structuralSharing` decides how the data is merged.\n* @returns The result of a custom `structuralSharing` function, `data` with its unchanged parts\n* replaced by those of `prevData` by default, or `data` as is if `structuralSharing` is `false`.\n* @throws {Error} The error from the default structural sharing, e.g. when the data is not JSON serializable.\n* Outside production, it is also logged to the console.\n*/\nfunction replaceData(prevData, data, options) {\n\tif (typeof options.structuralSharing === \"function\") return options.structuralSharing(prevData, data);\n\telse if (options.structuralSharing !== false) {\n\t\tif (process.env.NODE_ENV !== \"production\") try {\n\t\t\treturn replaceEqualDeep(prevData, data);\n\t\t} catch (error) {\n\t\t\tconsole.error(`Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`);\n\t\t\tthrow error;\n\t\t}\n\t\treturn replaceEqualDeep(prevData, data);\n\t}\n\treturn data;\n}\n/**\n* Intended to be passed as a query's `placeholderData` option, for example\n* `placeholderData: keepPreviousData`. Instead of resetting the query's data to `undefined` while a new\n* query key is fetching, it keeps displaying the previously fetched data until the new data arrives.\n* @param previousData - The data of the previous query key, passed by the observer.\n* @returns The previous data, unchanged.\n* @example\n* ```ts\n* new QueryObserver(queryClient, {\n* queryKey: ['posts', page],\n* queryFn: () => fetchPosts(page),\n* placeholderData: keepPreviousData,\n* })\n* ```\n*/\nfunction keepPreviousData(previousData) {\n\treturn previousData;\n}\n/**\n* Returns a new array with `item` added at the end. If that makes the array longer than `max`,\n* excess items are removed from the start.\n* @param items - The current items.\n* @param item - The value to append.\n* @param max - The maximum number of items to keep. `0` (the default) means no limit.\n* @returns A new array with `item` added.\n*/\nfunction addToEnd(items, item, max = 0) {\n\tconst newItems = [...items, item];\n\treturn max && newItems.length > max ? newItems.slice(-max) : newItems;\n}\n/**\n* Returns a new array with `item` added at the start. If that makes the array longer than `max`,\n* excess items are removed from the end.\n* @param items - The current items.\n* @param item - The value to prepend.\n* @param max - The maximum number of items to keep. `0` (the default) means no limit.\n* @returns A new array with `item` added.\n*/\nfunction addToStart(items, item, max = 0) {\n\tconst newItems = [item, ...items];\n\treturn max && newItems.length > max ? newItems.slice(0, max) : newItems;\n}\n/**\n* Sentinel value that can be passed as a query's `queryFn` to conditionally disable the query (equivalent\n* to `enabled: false`) while preserving full type inference for the query's data. Unlike `enabled: false`,\n* a query disabled via `skipToken` cannot be triggered with `refetch`.\n* @example\n* ```ts\n* new QueryObserver(queryClient, {\n* queryKey: ['post', postId],\n* queryFn: postId != null ? () => fetchPost(postId) : skipToken,\n* })\n* ```\n*/\nconst skipToken = Symbol();\n/**\n* Returns the function to call for a fetch. If there is no `queryFn` but the fetch was started from\n* an `initialPromise`, that promise is returned instead. If there is no usable `queryFn` (missing or\n* {@link skipToken}), the returned function rejects with a `Missing queryFn` error.\n* @param options - The query options with the `queryFn`, and the `queryHash` used in error messages.\n* @param fetchOptions - The fetch options, which may carry an `initialPromise`.\n* @returns The function to call for the fetch.\n*/\nfunction ensureQueryFn(options, fetchOptions) {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tif (options.queryFn === skipToken) console.error(`Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`);\n\t}\n\tif (!options.queryFn && fetchOptions?.initialPromise) return () => fetchOptions.initialPromise;\n\tif (!options.queryFn || options.queryFn === skipToken) return () => Promise.reject(/* @__PURE__ */ new Error(`Missing queryFn: '${options.queryHash}'`));\n\treturn options.queryFn;\n}\n/**\n* Resolves a `throwOnError` option to a boolean.\n* If `throwOnError` is a function, it is called with `params` (e.g. the error and, depending on the caller,\n* additional context such as the query or mutation) and its result is returned, allowing the throwing\n* behavior to be decided per error. Otherwise, `throwOnError` itself is coerced to a boolean (`undefined`\n* resolves to `false`).\n* @param throwOnError - The `throwOnError` option: a boolean, a function that decides per error, or\n* `undefined`.\n* @param params - The arguments passed to `throwOnError` if it is a function.\n* @returns Whether the error should be thrown.\n* @example\n* ```ts\n* const throwOnError =\n* query.state.error && typeof options.throwOnError === 'function'\n* ? shouldThrowError(options.throwOnError, [query.state.error, query])\n* : options.throwOnError\n* ```\n*/\nfunction shouldThrowError(throwOnError, params) {\n\tif (typeof throwOnError === \"function\") return throwOnError(...params);\n\treturn !!throwOnError;\n}\nconst fetchSignal = Symbol();\n/**\n* Adds a lazy `signal` getter to an object, such as a query function context. The first time\n* `signal` is read, `onCancelled` is registered for the signal's `abort` event (or called right\n* away if it is already aborted), so cancellation is only tracked when the signal is actually used.\n* @param object - The object to add the `signal` property to.\n* @param getSignal - Returns the `AbortSignal`. Called once, when `signal` is first read.\n* @param onCancelled - Called when the signal is aborted, if `signal` was read.\n* @param internalSignal - The fetch signal to forward without consuming the getter.\n* @returns The same object, with the `signal` property added.\n*/\nfunction addConsumeAwareSignal(object, getSignal, onCancelled, internalSignal) {\n\tlet consumed = false;\n\tlet signal;\n\tObject.defineProperties(object, {\n\t\t[fetchSignal]: { value: internalSignal },\n\t\tsignal: {\n\t\t\tenumerable: true,\n\t\t\tget: () => {\n\t\t\t\tsignal ??= getSignal();\n\t\t\t\tif (consumed) return signal;\n\t\t\t\tconsumed = true;\n\t\t\t\tif (signal.aborted) onCancelled();\n\t\t\t\telse signal.addEventListener(\"abort\", onCancelled, { once: true });\n\t\t\t\treturn signal;\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n}\nexport { addConsumeAwareSignal, addToEnd, addToStart, ensureQueryFn, fetchSignal, functionalUpdate, hashKey, hashQueryKeyByOptions, isPlainArray, isPlainObject, isServer, isValidTimeout, keepPreviousData, matchMutation, matchQuery, noop, partialMatchKey, replaceData, replaceEqualDeep, resolveQueryValue, shallowEqualObjects, shouldThrowError, skipToken, sleep, timeUntilStale };\n\n//# sourceMappingURL=utils.js.map","import { isServer as isServer$1 } from \"./utils.js\";\n// src/environmentManager.ts\nlet isServerFn = () => isServer$1;\n/**\n* Returns whether the current runtime should be treated as a server environment.\n* @returns `true` if the runtime is treated as a server.\n*/\nconst isServer = () => isServerFn();\n/**\n* Manages how TanStack Query detects whether the current runtime should be treated as\n* server-side, which disables scheduling refetch timers and changes the default `retry` count\n* and `gcTime`. By default, the detection treats a missing `window` (or the presence of a\n* `Deno` global) as server.\n*\n* Override this for runtimes where that default detection would give the wrong answer — for\n* example, a Service Worker, where `window` is undefined even though the environment should\n* behave like a client.\n* @example\n* ```ts\n* import { environmentManager } from '@tanstack/query-core'\n*\n* environmentManager.setIsServer(() => false)\n* ```\n*/\nconst environmentManager = {\n\tisServer,\n\t/**\n\t* Overrides the server check globally.\n\t* @param isServerValue - A function that returns whether the runtime should be treated as a\n\t* server.\n\t*/\n\tsetIsServer(isServerValue) {\n\t\tisServerFn = isServerValue;\n\t}\n};\nexport { environmentManager, isServer };\n\n//# sourceMappingURL=environmentManager.js.map","// src/subscribable.ts\n/**\n* The base class behind everything in Query that you can subscribe to: `QueryCache`, `MutationCache`,\n* the observers, and the `FocusManager`/`OnlineManager` behind `focusManager` and `onlineManager`.\n* Subclasses decide what a listener receives and when it is called.\n*/\nvar Subscribable = class {\n\tconstructor() {\n\t\tthis.listeners = /* @__PURE__ */ new Set();\n\t\tthis.subscribe = this.subscribe.bind(this);\n\t}\n\t/**\n\t* Registers a listener to be called on every update this object notifies about. Returns a function\n\t* that removes the listener again — call it to stop listening. The base class never drops a listener\n\t* on its own, though some subclasses clear all of theirs in `destroy()`.\n\t* @param listener - Called on each update, with whatever the subclass passes to its subscribers.\n\t* @returns A function that removes the listener.\n\t* @example\n\t* ```ts\n\t* const unsubscribe = subscribable.subscribe(() => {\n\t* // react to the update\n\t* })\n\t*\n\t* unsubscribe()\n\t* ```\n\t*/\n\tsubscribe(listener) {\n\t\tthis.listeners.add(listener);\n\t\tthis.onSubscribe();\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t\tthis.onUnsubscribe();\n\t\t};\n\t}\n\t/**\n\t* Returns `true` while at least one listener is registered, `false` once they have all unsubscribed.\n\t* @returns `true` if at least one listener is registered.\n\t*/\n\thasListeners() {\n\t\treturn this.listeners.size > 0;\n\t}\n\t/**\n\t* Called after a listener is added. Does nothing here; subclasses override it, e.g. to start\n\t* tracking what they observe once the first listener subscribes.\n\t*/\n\tonSubscribe() {}\n\t/**\n\t* Called after a listener is removed. Does nothing here; subclasses override it, e.g. to clean up\n\t* once the last listener unsubscribes.\n\t*/\n\tonUnsubscribe() {}\n};\nexport { Subscribable };\n\n//# sourceMappingURL=subscribable.js.map","import { Subscribable } from \"./subscribable.js\";\n// src/focusManager.ts\n/**\n* The `FocusManager` manages the focus state within TanStack Query.\n*\n* It can be used to change the default event listeners or to manually change the focus state.\n*/\nvar FocusManager = class extends Subscribable {\n\t#focused;\n\t#cleanup;\n\t#setup;\n\tconstructor() {\n\t\tsuper();\n\t\tthis.#setup = (onFocus) => {\n\t\t\tif (typeof window !== \"undefined\" && window.addEventListener) {\n\t\t\t\tconst listener = () => onFocus();\n\t\t\t\twindow.addEventListener(\"visibilitychange\", listener, false);\n\t\t\t\treturn () => {\n\t\t\t\t\twindow.removeEventListener(\"visibilitychange\", listener);\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tonSubscribe() {\n\t\tif (!this.#cleanup) this.setEventListener(this.#setup);\n\t}\n\tonUnsubscribe() {\n\t\tif (!this.hasListeners()) {\n\t\t\tthis.#cleanup?.();\n\t\t\tthis.#cleanup = void 0;\n\t\t}\n\t}\n\t/**\n\t* `setEventListener` can be used to set a custom event listener that will\n\t* be used to determine the focus state. The provided `setup` function\n\t* receives a `setFocused` callback: call it with a `boolean` to manually\n\t* set the focus state, or with no arguments to re-evaluate the current\n\t* focus state and notify subscribers.\n\t* @param setup - Receives the `setFocused` callback, registers the event listener, and may return\n\t* a cleanup function that is called when the listener is replaced or no longer needed.\n\t* @example\n\t* ```ts\n\t* import { focusManager } from '@tanstack/query-core'\n\t*\n\t* focusManager.setEventListener((handleFocus) => {\n\t* const listener = () => handleFocus()\n\t* // Listen to visibilitychange\n\t* if (typeof window !== 'undefined' && window.addEventListener) {\n\t* window.addEventListener('visibilitychange', listener, false)\n\t* }\n\t*\n\t* return () => {\n\t* // Be sure to unsubscribe if a new handler is set\n\t* window.removeEventListener('visibilitychange', listener)\n\t* }\n\t* })\n\t* ```\n\t*/\n\tsetEventListener(setup) {\n\t\tthis.#setup = setup;\n\t\tthis.#cleanup?.();\n\t\tthis.#cleanup = setup((focused) => {\n\t\t\tif (typeof focused === \"boolean\") this.setFocused(focused);\n\t\t\telse this.onFocus();\n\t\t});\n\t}\n\t/**\n\t* `setFocused` can be used to manually set the focus state. Set `undefined`\n\t* to fall back to the default focus check.\n\t* @param focused - The focus state, or `undefined` to use the default focus check.\n\t* @example\n\t* ```ts\n\t* import { focusManager } from '@tanstack/query-core'\n\t*\n\t* // Set focused\n\t* focusManager.setFocused(true)\n\t*\n\t* // Set unfocused\n\t* focusManager.setFocused(false)\n\t*\n\t* // Fallback to the default focus check\n\t* focusManager.setFocused(undefined)\n\t* ```\n\t*/\n\tsetFocused(focused) {\n\t\tif (this.#focused !== focused) {\n\t\t\tthis.#focused = focused;\n\t\t\tthis.onFocus();\n\t\t}\n\t}\n\t/**\n\t* `onFocus` notifies all subscribed listeners with the current focus state.\n\t*/\n\tonFocus() {\n\t\tconst isFocused = this.isFocused();\n\t\tthis.listeners.forEach((listener) => {\n\t\t\tlistener(isFocused);\n\t\t});\n\t}\n\t/**\n\t* `isFocused` can be used to get the current focus state.\n\t* @returns The focus state set with `setFocused`, or otherwise whether the document is visible.\n\t*/\n\tisFocused() {\n\t\tif (typeof this.#focused === \"boolean\") return this.#focused;\n\t\treturn globalThis.document?.visibilityState !== \"hidden\";\n\t}\n};\n/**\n* Singleton instance of {@link FocusManager}, used to manage and observe the focus state within TanStack Query.\n*/\nconst focusManager = new FocusManager();\nexport { FocusManager, focusManager };\n\n//# sourceMappingURL=focusManager.js.map","import { systemSetTimeoutZero } from \"./timeoutManager.js\";\n// src/notifyManager.ts\n/**\n* Default scheduling function used by the notify manager.\n* Schedules the callback with the system's `setTimeout(callback, 0)`.\n*/\nconst defaultScheduler = systemSetTimeoutZero;\n/**\n* Creates a notify manager, which schedules and batches notifications to subscribers. Query uses a\n* single instance of it, exported as {@link notifyManager}.\n* @returns A new notify manager.\n*/\nfunction createNotifyManager() {\n\tlet queue = [];\n\tlet transactions = 0;\n\tlet notifyFn = (callback) => {\n\t\tcallback();\n\t};\n\tlet batchNotifyFn = (callback) => {\n\t\tcallback();\n\t};\n\tlet scheduleFn = defaultScheduler;\n\tconst schedule = (callback) => {\n\t\tif (transactions) queue.push(callback);\n\t\telse scheduleFn(() => {\n\t\t\tnotifyFn(callback);\n\t\t});\n\t};\n\tconst flush = () => {\n\t\tconst originalQueue = queue;\n\t\tqueue = [];\n\t\tif (originalQueue.length) scheduleFn(() => {\n\t\t\tbatchNotifyFn(() => {\n\t\t\t\toriginalQueue.forEach((callback) => {\n\t\t\t\t\tnotifyFn(callback);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t};\n\treturn {\n\t\t/**\n\t\t* Batches all updates scheduled inside the passed callback.\n\t\t* This is mainly used internally to optimize query client updating.\n\t\t* Batches can be nested; the queue is only flushed once the outermost `batch` call finishes.\n\t\t* The return value of `callback` is passed through.\n\t\t* @param callback - The function to run in the batch.\n\t\t* @returns The return value of `callback`.\n\t\t*/\n\t\tbatch: (callback) => {\n\t\t\tlet result;\n\t\t\ttransactions++;\n\t\t\ttry {\n\t\t\t\tresult = callback();\n\t\t\t} finally {\n\t\t\t\ttransactions--;\n\t\t\t\tif (!transactions) flush();\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\t/**\n\t\t* All calls to the wrapped function will be batched.\n\t\t* @param callback - The function to wrap.\n\t\t* @returns A function that schedules a call to `callback` with the given arguments.\n\t\t*/\n\t\tbatchCalls: (callback) => {\n\t\t\treturn (...args) => {\n\t\t\t\tschedule(() => {\n\t\t\t\t\tcallback(...args);\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t* Schedules a function to be run on the next batch.\n\t\t* By default, the batch is run with a `setTimeout`, but this can be configured via `setScheduler`.\n\t\t*/\n\t\tschedule,\n\t\t/**\n\t\t* Use this method to set a custom notify function.\n\t\t* This can be used to for example wrap notifications with `React.act` while running tests.\n\t\t* @param fn - Receives each notification callback and must call it.\n\t\t*/\n\t\tsetNotifyFunction: (fn) => {\n\t\t\tnotifyFn = fn;\n\t\t},\n\t\t/**\n\t\t* Use this method to set a custom function to batch notifications together into a single tick.\n\t\t* Framework adapters use this to plug in their own batching primitive, so that a single query\n\t\t* update only triggers one re-render instead of one per subscriber.\n\t\t* @param fn - Receives a function that runs a batch of notifications and must call it.\n\t\t* @example\n\t\t* ```ts\n\t\t* import { notifyManager } from '@tanstack/query-core'\n\t\t* import { batch } from 'solid-js'\n\t\t*\n\t\t* notifyManager.setBatchNotifyFunction(batch)\n\t\t* ```\n\t\t*/\n\t\tsetBatchNotifyFunction: (fn) => {\n\t\t\tbatchNotifyFn = fn;\n\t\t},\n\t\t/**\n\t\t* Configures a custom callback that schedules when the next batch runs.\n\t\t* The default behavior is `setTimeout(callback, 0)`.\n\t\t* @param fn - Receives a callback that runs the next batch, and schedules it.\n\t\t* @example\n\t\t* ```ts\n\t\t* import { notifyManager } from '@tanstack/query-core'\n\t\t*\n\t\t* // Schedule batches in the next microtask\n\t\t* notifyManager.setScheduler(queueMicrotask)\n\t\t*\n\t\t* // Schedule batches before the next frame is rendered\n\t\t* notifyManager.setScheduler(requestAnimationFrame)\n\t\t*\n\t\t* // Schedule batches some time in the future\n\t\t* notifyManager.setScheduler((cb) => setTimeout(cb, 10))\n\t\t* ```\n\t\t*/\n\t\tsetScheduler: (fn) => {\n\t\t\tscheduleFn = fn;\n\t\t}\n\t};\n}\n/**\n* Handles scheduling and batching callbacks in TanStack Query.\n*/\nconst notifyManager = createNotifyManager();\nexport { createNotifyManager, defaultScheduler, notifyManager };\n\n//# sourceMappingURL=notifyManager.js.map","import { Subscribable } from \"./subscribable.js\";\n// src/onlineManager.ts\n/**\n* The `OnlineManager` manages the online state within TanStack Query. It can\n* be used to change the default event listeners or to manually change the\n* online state.\n*\n* By default, the `onlineManager` assumes an active network connection, and\n* listens to the `online` and `offline` events on the `window` object to\n* detect changes.\n*/\nvar OnlineManager = class extends Subscribable {\n\t#online = true;\n\t#cleanup;\n\t#setup;\n\tconstructor() {\n\t\tsuper();\n\t\tthis.#setup = (onOnline) => {\n\t\t\tif (typeof window !== \"undefined\" && window.addEventListener) {\n\t\t\t\tconst onlineListener = () => onOnline(true);\n\t\t\t\tconst offlineListener = () => onOnline(false);\n\t\t\t\twindow.addEventListener(\"online\", onlineListener, false);\n\t\t\t\twindow.addEventListener(\"offline\", offlineListener, false);\n\t\t\t\treturn () => {\n\t\t\t\t\twindow.removeEventListener(\"online\", onlineListener);\n\t\t\t\t\twindow.removeEventListener(\"offline\", offlineListener);\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tonSubscribe() {\n\t\tif (!this.#cleanup) this.setEventListener(this.#setup);\n\t}\n\tonUnsubscribe() {\n\t\tif (!this.hasListeners()) {\n\t\t\tthis.#cleanup?.();\n\t\t\tthis.#cleanup = void 0;\n\t\t}\n\t}\n\t/**\n\t* `setEventListener` can be used to set a custom event listener that will\n\t* be used to determine the online state. The provided `setup` function\n\t* receives a `setOnline` callback that should be called with a `boolean`\n\t* whenever the online state changes.\n\t* @param setup - Receives the `setOnline` callback, registers the event listener, and may return\n\t* a cleanup function that is called when the listener is replaced or no longer needed.\n\t* @example\n\t* ```ts\n\t* import NetInfo from '@react-native-community/netinfo'\n\t* import { onlineManager } from '@tanstack/query-core'\n\t*\n\t* onlineManager.setEventListener((setOnline) => {\n\t* return NetInfo.addEventListener((state) => {\n\t* setOnline(!!state.isConnected)\n\t* })\n\t* })\n\t* ```\n\t*/\n\tsetEventListener(setup) {\n\t\tthis.#setup = setup;\n\t\tthis.#cleanup?.();\n\t\tthis.#cleanup = setup(this.setOnline.bind(this));\n\t}\n\t/**\n\t* `setOnline` can be used to manually set the online state.\n\t* @param online - The online state.\n\t* @example\n\t* ```ts\n\t* import { onlineManager } from '@tanstack/query-core'\n\t*\n\t* // Set to online\n\t* onlineManager.setOnline(true)\n\t*\n\t* // Set to offline\n\t* onlineManager.setOnline(false)\n\t* ```\n\t*/\n\tsetOnline(online) {\n\t\tif (this.#online !== online) {\n\t\t\tthis.#online = online;\n\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\tlistener(online);\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* `isOnline` can be used to get the current online state.\n\t* @returns `true` if online.\n\t*/\n\tisOnline() {\n\t\treturn this.#online;\n\t}\n};\n/**\n* Singleton instance of {@link OnlineManager}, used to manage and observe the online state within TanStack Query.\n*/\nconst onlineManager = new OnlineManager();\nexport { OnlineManager, onlineManager };\n\n//# sourceMappingURL=onlineManager.js.map","import { noop, sleep } from \"./utils.js\";\nimport { isServer } from \"./environmentManager.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\n// src/retryer.ts\n/**\n* The default `retryDelay`: doubles with every failure, starting at 1 second, up to 30 seconds.\n* @param failureCount - The number of failures so far.\n* @returns The delay before the next retry, in milliseconds.\n*/\nfunction defaultRetryDelay(failureCount) {\n\treturn Math.min(1e3 * 2 ** failureCount, 3e4);\n}\n/**\n* Checks whether a fetch can run for the given network mode.\n* @param networkMode - The `networkMode` option. Defaults to `'online'`.\n* @returns `true` if the network mode is not `'online'`, or if it is and the client is online.\n*/\nfunction canFetch(networkMode) {\n\treturn (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\n/**\n* The error thrown by a `Retryer` (and surfaced to `query.promise`/`mutation`) when a fetch is cancelled, e.g. via\n* `query.cancel()`. `revert`, if `true`, tells the caller to restore the state the query was in before the fetch\n* started instead of surfacing the error. `silent`, if `true`, tells the caller to suppress this error and instead\n* resolve with the promise of the fetch that triggered the cancellation.\n* @example\n* ```ts\n* query.cancel()\n*\n* try {\n* await query.promise\n* } catch (error) {\n* if (error instanceof CancelledError) {\n* // the fetch was cancelled, e.g. via `query.cancel()`\n* }\n* }\n* ```\n*/\nvar CancelledError = class extends Error {\n\tconstructor(options) {\n\t\tsuper(\"CancelledError\");\n\t\tthis.revert = options?.revert;\n\t\tthis.silent = options?.silent;\n\t}\n};\n/**\n* Checks whether a value is a `CancelledError`.\n* @param value - The value to check.\n* @returns `true` if `value` is a `CancelledError`.\n* @deprecated Use instanceof `CancelledError` instead.\n*/\nfunction isCancelledError(value) {\n\treturn value instanceof CancelledError;\n}\n/**\n* Creates a retryer, which runs a function and retries it on failure according to the `retry` and\n* `retryDelay` options. It pauses while the network mode doesn't allow fetching or `canRun` returns\n* `false`, and can be cancelled. Queries and mutations use it to run their `queryFn` and\n* `mutationFn`.\n* @param config - The function to run, the retry options, and the callbacks for failures, pausing,\n* continuing, and cancellation.\n* @returns The retryer, whose `promise` settles with the result of the function.\n*/\nfunction createRetryer(config) {\n\tlet isRetryCancelled = false;\n\tlet failureCount = 0;\n\tlet continueFn;\n\tlet status = \"pending\";\n\tlet promiseResolve;\n\tlet promiseReject;\n\tconst promise = new Promise((resolve, reject) => {\n\t\tpromiseResolve = resolve;\n\t\tpromiseReject = reject;\n\t});\n\tpromise.catch(noop);\n\tconst isResolved = () => status !== \"pending\";\n\tconst cancel = (cancelOptions) => {\n\t\tif (!isResolved()) {\n\t\t\tconst error = new CancelledError(cancelOptions);\n\t\t\treject(error);\n\t\t\tconfig.onCancel?.(error);\n\t\t}\n\t};\n\tconst cancelRetry = () => {\n\t\tisRetryCancelled = true;\n\t};\n\tconst continueRetry = () => {\n\t\tisRetryCancelled = false;\n\t};\n\tconst canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n\tconst canStart = () => canFetch(config.networkMode) && config.canRun();\n\tconst resolve = (value) => {\n\t\tif (!isResolved()) {\n\t\t\tcontinueFn?.();\n\t\t\tstatus = \"resolved\";\n\t\t\tpromiseResolve(value);\n\t\t}\n\t};\n\tconst reject = (value) => {\n\t\tif (!isResolved()) {\n\t\t\tcontinueFn?.();\n\t\t\tstatus = \"rejected\";\n\t\t\tpromiseReject(value);\n\t\t}\n\t};\n\tconst pause = (canResume) => {\n\t\treturn new Promise((continueResolve) => {\n\t\t\tcontinueFn = (value) => {\n\t\t\t\tif (isResolved() || canResume()) continueResolve(value);\n\t\t\t};\n\t\t\tconfig.onPause?.();\n\t\t}).then(() => {\n\t\t\tcontinueFn = void 0;\n\t\t\tif (!isResolved()) config.onContinue?.();\n\t\t});\n\t};\n\tconst run = () => {\n\t\tif (isResolved()) return;\n\t\tlet promiseOrValue;\n\t\tconst initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n\t\ttry {\n\t\t\tpromiseOrValue = initialPromise ?? config.fn();\n\t\t} catch (error) {\n\t\t\tpromiseOrValue = Promise.reject(error);\n\t\t}\n\t\tPromise.resolve(promiseOrValue).then(resolve).catch((error) => {\n\t\t\tif (isResolved()) return;\n\t\t\tconst retry = config.retry ?? (isServer() ? 0 : 3);\n\t\t\tconst retryDelay = config.retryDelay ?? defaultRetryDelay;\n\t\t\tconst delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n\t\t\tconst shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n\t\t\tif (isRetryCancelled || !shouldRetry) {\n\t\t\t\treject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfailureCount++;\n\t\t\tconfig.onFail?.(failureCount, error);\n\t\t\tsleep(delay).then(() => {\n\t\t\t\treturn isResolved() || canContinue() ? void 0 : pause(canContinue);\n\t\t\t}).then(() => {\n\t\t\t\tif (isRetryCancelled) reject(error);\n\t\t\t\telse run();\n\t\t\t});\n\t\t});\n\t};\n\treturn {\n\t\tpromise,\n\t\tstatus: () => status,\n\t\tcancel,\n\t\tcontinue: () => {\n\t\t\tcontinueFn?.();\n\t\t\treturn promise;\n\t\t},\n\t\tcancelRetry,\n\t\tcontinueRetry,\n\t\tcanStart,\n\t\tstart: () => {\n\t\t\tif (canStart()) run();\n\t\t\telse pause(canStart).then(run);\n\t\t\treturn promise;\n\t\t}\n\t};\n}\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n\n//# sourceMappingURL=retryer.js.map","import { timeoutManager } from \"./timeoutManager.js\";\nimport { isValidTimeout } from \"./utils.js\";\nimport { isServer } from \"./environmentManager.js\";\n// src/removable.ts\n/**\n* The base class for cache entries that are garbage collected once nothing is using them —\n* `Query` and `Mutation` both extend it. `gcTime` controls how long an unused entry is kept.\n*/\nvar Removable = class {\n\t#gcTimeout;\n\t/**\n\t* Clears the pending garbage collection timeout, so the entry is no longer scheduled for removal.\n\t* A subclass may override this to release what it holds on to as well — `Query` also cancels any\n\t* in-flight fetch.\n\t*/\n\tdestroy() {\n\t\tthis.clearGcTimeout();\n\t}\n\t/**\n\t* Schedules the entry to be removed from its cache after `gcTime`, replacing any timeout scheduled\n\t* before. Nothing is scheduled if `gcTime` is `Infinity`.\n\t*/\n\tscheduleGc() {\n\t\tthis.clearGcTimeout();\n\t\tif (isValidTimeout(this.gcTime)) this.#gcTimeout = timeoutManager.setTimeout(() => {\n\t\t\tthis.optionalRemove();\n\t\t}, this.gcTime);\n\t}\n\t/**\n\t* Updates `gcTime`, keeping the longest one seen so far. Without a value, it defaults to 5 minutes\n\t* on the client and `Infinity` on the server.\n\t* @param newGcTime - The `gcTime` from the latest options, if any.\n\t*/\n\tupdateGcTime(newGcTime) {\n\t\tthis.gcTime = Math.max(this.gcTime || 0, newGcTime ?? (isServer() ? Infinity : 3e5));\n\t}\n\t/**\n\t* Cancels the scheduled removal, if there is one.\n\t*/\n\tclearGcTimeout() {\n\t\tif (this.#gcTimeout !== void 0) {\n\t\t\ttimeoutManager.clearTimeout(this.#gcTimeout);\n\t\t\tthis.#gcTimeout = void 0;\n\t\t}\n\t}\n};\nexport { Removable };\n\n//# sourceMappingURL=removable.js.map","import { addConsumeAwareSignal, addToEnd, addToStart, ensureQueryFn, fetchSignal } from \"./utils.js\";\n// src/infiniteQueryBehavior.ts\n/**\n* Creates the behavior that fetches the pages of an infinite query: the next or previous page for\n* `fetchNextPage`/`fetchPreviousPage`, or all pages again from the start on a refetch.\n* @param pages - The number of pages to fetch from the start when all pages are fetched again,\n* e.g. from the `pages` option of `queryClient.infiniteQuery`. Defaults to the number of cached\n* pages.\n* @returns The query behavior to set on an infinite query.\n*/\nfunction infiniteQueryBehavior(pages) {\n\treturn { onFetch: (context, query) => {\n\t\tconst options = context.options;\n\t\tconst direction = context.fetchOptions?.meta?.fetchMore?.direction;\n\t\tconst oldPages = context.state.data?.pages || [];\n\t\tconst oldPageParams = context.state.data?.pageParams || [];\n\t\tlet result = {\n\t\t\tpages: [],\n\t\t\tpageParams: []\n\t\t};\n\t\tlet currentPage = 0;\n\t\tconst fetchFn = async () => {\n\t\t\tlet cancelled = false;\n\t\t\tconst signalContext = context;\n\t\t\tconst addSignalProperty = (object) => {\n\t\t\t\taddConsumeAwareSignal(object, () => context.signal, () => cancelled = true, signalContext[fetchSignal]);\n\t\t\t};\n\t\t\tconst queryFn = ensureQueryFn(context.options, context.fetchOptions);\n\t\t\tconst fetchPage = async (data, param, previous) => {\n\t\t\t\tif (cancelled) return Promise.reject(context.signal.reason);\n\t\t\t\tif (param == null && data.pages.length) return Promise.resolve(data);\n\t\t\t\tconst createQueryFnContext = () => {\n\t\t\t\t\tconst queryFnContext = {\n\t\t\t\t\t\tclient: context.client,\n\t\t\t\t\t\tqueryKey: context.queryKey,\n\t\t\t\t\t\tpageParam: param,\n\t\t\t\t\t\tdirection: previous ? \"backward\" : \"forward\",\n\t\t\t\t\t\tmeta: context.options.meta\n\t\t\t\t\t};\n\t\t\t\t\taddSignalProperty(queryFnContext);\n\t\t\t\t\treturn queryFnContext;\n\t\t\t\t};\n\t\t\t\tconst queryFnContext = createQueryFnContext();\n\t\t\t\tconst page = await queryFn(queryFnContext);\n\t\t\t\tconst { maxPages } = context.options;\n\t\t\t\tconst addTo = previous ? addToStart : addToEnd;\n\t\t\t\treturn {\n\t\t\t\t\tpages: addTo(data.pages, page, maxPages),\n\t\t\t\t\tpageParams: addTo(data.pageParams, param, maxPages)\n\t\t\t\t};\n\t\t\t};\n\t\t\tif (direction && oldPages.length) {\n\t\t\t\tconst previous = direction === \"backward\";\n\t\t\t\tconst pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n\t\t\t\tconst oldData = {\n\t\t\t\t\tpages: oldPages,\n\t\t\t\t\tpageParams: oldPageParams\n\t\t\t\t};\n\t\t\t\tresult = await fetchPage(oldData, pageParamFn(options, oldData), previous);\n\t\t\t} else {\n\t\t\t\tconst remainingPages = pages ?? oldPages.length;\n\t\t\t\tdo {\n\t\t\t\t\tconst param = currentPage === 0 ? oldPageParams[0] === void 0 ? options.initialPageParam : oldPageParams[0] : getNextPageParam(options, result);\n\t\t\t\t\tif (currentPage > 0 && param == null) break;\n\t\t\t\t\tresult = await fetchPage(result, param);\n\t\t\t\t\tcurrentPage++;\n\t\t\t\t} while (currentPage < remainingPages);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t\tif (context.options.persister) context.fetchFn = () => {\n\t\t\treturn context.options.persister?.(fetchFn, {\n\t\t\t\tclient: context.client,\n\t\t\t\tqueryKey: context.queryKey,\n\t\t\t\tmeta: context.options.meta,\n\t\t\t\tsignal: context.signal\n\t\t\t}, query);\n\t\t};\n\t\telse context.fetchFn = fetchFn;\n\t} };\n}\n/**\n* Computes the page param of the page after the last one, with the `getNextPageParam` option.\n* @param options - The infinite query options.\n* @param data - The current pages and page params.\n* @returns The next page param, or `undefined` if there are no pages yet.\n*/\nfunction getNextPageParam(options, { pages, pageParams }) {\n\tconst lastIndex = pages.length - 1;\n\treturn pages.length > 0 ? options.getNextPageParam(pages[lastIndex], pages, pageParams[lastIndex], pageParams) : void 0;\n}\n/**\n* Computes the page param of the page before the first one, with the `getPreviousPageParam`\n* option.\n* @param options - The infinite query options.\n* @param data - The current pages and page params.\n* @returns The previous page param, or `undefined` if there are no pages yet or no\n* `getPreviousPageParam` option.\n*/\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n\treturn pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\n/**\n* Checks if there is a next page.\n* @param options - The infinite query options with `getNextPageParam`.\n* @param data - The current pages and page params.\n* @returns `true` if `getNextPageParam` returns a value other than `null` or `undefined`.\n*/\nfunction hasNextPage(options, data) {\n\tif (!data) return false;\n\treturn getNextPageParam(options, data) != null;\n}\n/**\n* Checks if there is a previous page.\n* @param options - The infinite query options with `getPreviousPageParam`.\n* @param data - The current pages and page params.\n* @returns `true` if `getPreviousPageParam` is set and returns a value other than `null` or\n* `undefined`.\n*/\nfunction hasPreviousPage(options, data) {\n\tif (!data || !options.getPreviousPageParam) return false;\n\treturn getPreviousPageParam(options, data) != null;\n}\nexport { hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n\n//# sourceMappingURL=infiniteQueryBehavior.js.map","import { ensureQueryFn, fetchSignal, noop, replaceData, resolveQueryValue, skipToken, timeUntilStale } from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\n// src/query.ts\n/**\n* Represents a single cached query. A `Query` holds the query's key, options,\n* state (data/error/status), and the observers currently subscribed to it.\n*\n* Instances are created and managed internally by `QueryCache`; application\n* code typically interacts with queries indirectly through `QueryClient` or\n* a framework hook like `useQuery`. Direct access to a `Query` instance is\n* possible via `queryCache.find()`/`findAll()` for inspecting cache state.\n* @example\n* ```ts\n* const queryCache = queryClient.getQueryCache()\n* const query = queryCache.find({ queryKey: ['posts'] })\n*\n* if (query) {\n* console.log(query.state.dataUpdatedAt)\n* }\n* ```\n*/\nvar Query = class extends Removable {\n\t#queryType;\n\t#initialState;\n\t#revertState;\n\t#cache;\n\t#client;\n\t#retryer;\n\t#fetchPromise;\n\t#defaultOptions;\n\t#abortSignalConsumed;\n\tconstructor(config) {\n\t\tsuper();\n\t\tthis.#abortSignalConsumed = false;\n\t\tthis.#defaultOptions = config.defaultOptions;\n\t\tthis.setOptions(config.options);\n\t\tthis.observers = [];\n\t\tthis.#client = config.client;\n\t\tthis.#cache = this.#client.getQueryCache();\n\t\tthis.queryKey = config.queryKey;\n\t\tthis.queryHash = config.queryHash;\n\t\tthis.#initialState = getDefaultState(this.options);\n\t\tthis.state = config.state ?? this.#initialState;\n\t\tthis.scheduleGc();\n\t}\n\t/**\n\t* The `meta` object passed in the query's options, if any.\n\t* @returns The query's `meta`, or `undefined` if none was set.\n\t*/\n\tget meta() {\n\t\treturn this.options.meta;\n\t}\n\t/**\n\t* `'infinite'` for an infinite query, otherwise `undefined`.\n\t* @internal\n\t* @returns The type of the query, set from the `_type` option (e.g. `'infinite'`).\n\t*/\n\tget queryType() {\n\t\treturn this.#queryType;\n\t}\n\t/**\n\t* The promise for the currently in-flight fetch, if the query is fetching.\n\t* `undefined` when the query is not fetching.\n\t* @returns The promise of the in-flight fetch, or `undefined`.\n\t*/\n\tget promise() {\n\t\treturn this.#retryer?.promise;\n\t}\n\t/**\n\t* Replaces the query's options and applies their `gcTime`. If the query has no data yet, it gets\n\t* the `initialData` from the new options, if any.\n\t* @internal\n\t* @param options - The new query options, merged on top of the query's default options.\n\t*/\n\tsetOptions(options) {\n\t\tthis.options = {\n\t\t\t...this.#defaultOptions,\n\t\t\t...options\n\t\t};\n\t\tif (options?._type) this.#queryType = options._type;\n\t\tthis.updateGcTime(this.options.gcTime);\n\t\tif (this.state && this.state.data === void 0) {\n\t\t\tconst defaultState = getDefaultState(this.options);\n\t\t\tif (defaultState.data !== void 0) {\n\t\t\t\tthis.setState(successState(defaultState.data, defaultState.dataUpdatedAt));\n\t\t\t\tthis.#initialState = defaultState;\n\t\t\t}\n\t\t}\n\t}\n\toptionalRemove() {\n\t\tif (!this.observers.length && this.state.fetchStatus === \"idle\") this.#cache.remove(this);\n\t}\n\t/**\n\t* Writes new data to the query and marks it as successfully fetched.\n\t* @internal\n\t* @param newData - The data to write. Structural sharing with the current data is applied.\n\t* @param options - Set `updatedAt` to override the timestamp, and `manual` to mark the write as\n\t* manual (e.g. from `queryClient.setQueryData`).\n\t* @returns The data that was written.\n\t*/\n\tsetData(newData, options) {\n\t\tconst data = replaceData(this.state.data, newData, this.options);\n\t\tthis.#dispatch({\n\t\t\tdata,\n\t\t\ttype: \"success\",\n\t\t\tdataUpdatedAt: options?.updatedAt,\n\t\t\tmanual: options?.manual\n\t\t});\n\t\treturn data;\n\t}\n\t/**\n\t* Merges the given partial state directly into this query's state, notifying observers. Used\n\t* by persistence and broadcast plugins to restore a state snapshot, and by devtools to let a\n\t* user manually trigger a loading/error state or edit the cached data.\n\t* @param state - The partial state to merge into the query's state.\n\t*/\n\tsetState(state) {\n\t\tthis.#dispatch({\n\t\t\ttype: \"setState\",\n\t\t\tstate\n\t\t});\n\t}\n\t/**\n\t* Cancels the query's currently in-flight fetch, if any.\n\t* - Returns a promise that resolves once the cancellation has settled.\n\t* - If no fetch is in progress, resolves immediately.\n\t* @param options - Set `revert` to restore the state from before the fetch started, and `silent`\n\t* to suppress the cancellation error when a new fetch replaces the cancelled one.\n\t* @returns A promise that resolves once the cancellation has settled.\n\t* @example\n\t* ```ts\n\t* await query.cancel()\n\t* ```\n\t*/\n\tcancel(options) {\n\t\tconst promise = this.#retryer?.promise;\n\t\tthis.#retryer?.cancel(options);\n\t\treturn promise ? promise.then(noop).catch(noop) : Promise.resolve();\n\t}\n\t/**\n\t* Clears the query's garbage collection timeout and silently cancels any\n\t* in-flight fetch. Called by `QueryCache` when the query is removed from\n\t* the cache.\n\t* @see {@link Query#cancel}\n\t*/\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.cancel({ silent: true });\n\t}\n\t/**\n\t* The state the query was created with.\n\t* @internal\n\t* @returns The state the query had when it was first created, used by {@link Query#reset}.\n\t*/\n\tget resetState() {\n\t\treturn this.#initialState;\n\t}\n\t/**\n\t* Resets the query back to its initial state (the state it had when it was\n\t* first created, e.g. any `initialData`), destroying it first to cancel any\n\t* in-flight fetch.\n\t*/\n\treset() {\n\t\tthis.destroy();\n\t\tthis.setState(this.resetState);\n\t}\n\t/**\n\t* Returns `true` if the query has at least one observer for which `enabled`\n\t* does not resolve to `false`.\n\t* @returns `true` if the query has an enabled observer.\n\t*/\n\tisActive() {\n\t\treturn this.observers.some((observer) => resolveQueryValue(observer.options.enabled, this) !== false);\n\t}\n\t/**\n\t* Returns `true` if the query is disabled, meaning it will not fetch\n\t* automatically.\n\t* - If the query has observers, it is disabled when none of them are active\n\t* (see `isActive`).\n\t* - If the query has no observers, it is disabled when its `queryFn` is\n\t* `skipToken` or it has never been fetched.\n\t* @returns `true` if the query is disabled.\n\t*/\n\tisDisabled() {\n\t\tif (this.getObserversCount() > 0) return !this.isActive();\n\t\treturn this.options.queryFn === skipToken || !this.isFetched();\n\t}\n\t/**\n\t* Returns `true` if the query has been fetched, i.e. it has resolved with\n\t* either data or an error at least once.\n\t* @returns `true` if the query has been fetched.\n\t*/\n\tisFetched() {\n\t\treturn this.state.dataUpdateCount + this.state.errorUpdateCount > 0;\n\t}\n\t/**\n\t* Returns `true` if the query has data and at least one observer configured with\n\t* `staleTime: 'static'`, meaning it is treated as never stale.\n\t* @returns `true` if the query is static.\n\t*/\n\tisStatic() {\n\t\tif (this.state.data === void 0) return false;\n\t\tif (this.getObserversCount() > 0) return this.observers.some((observer) => resolveQueryValue(observer.options.staleTime, this) === \"static\");\n\t\treturn false;\n\t}\n\t/**\n\t* Returns `true` if the query is stale.\n\t* - If the query has observers, defers to whether any observer's current\n\t* result reports `isStale` (which accounts for each observer's own\n\t* `staleTime` and `enabled` state).\n\t* - If the query has no observers, it is considered stale when it has no\n\t* data or has been invalidated.\n\t* @returns `true` if the query is stale.\n\t* @see {@link Query#isStaleByTime}\n\t* @example\n\t* ```ts\n\t* if (query.isStale()) {\n\t* // refetch or otherwise treat the cached data as outdated\n\t* }\n\t* ```\n\t*/\n\tisStale() {\n\t\tif (this.getObserversCount() > 0) return this.observers.some((observer) => observer.getCurrentResult().isStale);\n\t\treturn this.state.data === void 0 || this.state.isInvalidated;\n\t}\n\t/**\n\t* Returns `true` if the query's data is stale relative to the given\n\t* `staleTime` (defaults to `0`).\n\t* - A query with no data is always stale.\n\t* - `staleTime: 'static'` is never stale.\n\t* - An invalidated query is always stale.\n\t* - Otherwise, staleness is based on elapsed time since `dataUpdatedAt`.\n\t* @param staleTime - The time, in milliseconds, after which data is considered stale, or\n\t* `'static'` to never treat existing data as stale. A query without data is stale either way.\n\t* @returns `true` if the query's data is stale.\n\t* @see {@link Query#isStale}\n\t* @example\n\t* ```ts\n\t* const isStale = query.isStaleByTime(60 * 1000)\n\t* ```\n\t*/\n\tisStaleByTime(staleTime = 0) {\n\t\tif (this.state.data === void 0) return true;\n\t\tif (staleTime === \"static\") return false;\n\t\tif (this.state.isInvalidated) return true;\n\t\treturn !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n\t}\n\t/**\n\t* Refetches the query when the window regains focus, if an observer wants that, and continues a\n\t* paused fetch.\n\t* @internal\n\t*/\n\tonFocus() {\n\t\tthis.observers.find((x) => x.shouldFetchOnWindowFocus())?.refetch({ cancelRefetch: false });\n\t\tthis.#retryer?.continue();\n\t}\n\t/**\n\t* Refetches the query when the app reconnects, if an observer wants that, and continues a paused\n\t* fetch.\n\t* @internal\n\t*/\n\tonOnline() {\n\t\tthis.observers.find((x) => x.shouldFetchOnReconnect())?.refetch({ cancelRefetch: false });\n\t\tthis.#retryer?.continue();\n\t}\n\t/**\n\t* Subscribes an observer to the query and stops its garbage collection.\n\t* @internal\n\t* @param observer - The observer to add. Adding an observer that is already subscribed does\n\t* nothing.\n\t*/\n\taddObserver(observer) {\n\t\tif (!this.observers.includes(observer)) {\n\t\t\tthis.observers.push(observer);\n\t\t\tthis.clearGcTimeout();\n\t\t\tthis.#cache.notify({\n\t\t\t\ttype: \"observerAdded\",\n\t\t\t\tquery: this,\n\t\t\t\tobserver\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* Unsubscribes an observer from the query.\n\t* @internal\n\t* @param observer - The observer to remove. When the last observer is removed, the in-flight\n\t* fetch is cancelled if its abort signal was consumed (otherwise only its retries are stopped),\n\t* and garbage collection is scheduled.\n\t*/\n\tremoveObserver(observer) {\n\t\tconst index = this.observers.indexOf(observer);\n\t\tif (index !== -1) {\n\t\t\tthis.observers.splice(index, 1);\n\t\t\tif (!this.observers.length) {\n\t\t\t\tif (this.#retryer) {\n\t\t\t\t\tif (this.#abortSignalConsumed || this.state.fetchStatus === \"paused\" && this.state.status === \"pending\") this.#retryer.cancel({ revert: true });\n\t\t\t\t\telse this.#retryer.cancelRetry();\n\t\t\t\t}\n\t\t\t\tthis.scheduleGc();\n\t\t\t}\n\t\t\tthis.#cache.notify({\n\t\t\t\ttype: \"observerRemoved\",\n\t\t\t\tquery: this,\n\t\t\t\tobserver\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* Returns the number of observers currently subscribed to this query.\n\t* @returns The number of observers.\n\t* @example\n\t* ```ts\n\t* if (query.getObserversCount() === 0) {\n\t* // no component is currently watching this query\n\t* }\n\t* ```\n\t*/\n\tgetObserversCount() {\n\t\treturn this.observers.length;\n\t}\n\t/**\n\t* Marks the query as invalidated, unless it is already invalidated. This\n\t* updates `state.isInvalidated` and notifies observers, but does not by\n\t* itself trigger a refetch.\n\t* @example\n\t* ```ts\n\t* query.invalidate()\n\t* ```\n\t*/\n\tinvalidate() {\n\t\tif (!this.state.isInvalidated) this.#dispatch({ type: \"invalidate\" });\n\t}\n\t/**\n\t* Fetches the query, i.e. runs its `queryFn` (through any configured\n\t* retryer/behavior) and updates the query's state with the result.\n\t* - If a fetch is already in flight, returns its promise instead of\n\t* starting a new one, unless `fetchOptions.cancelRefetch` is set and the\n\t* query already has data, in which case the current fetch is silently\n\t* cancelled first.\n\t* - If `options` is passed, it replaces the query's current options\n\t* before fetching.\n\t* @param options - Query options that replace the query's current options before fetching. They\n\t* are not applied when an in-flight fetch is reused.\n\t* @param fetchOptions - Set `cancelRefetch` to cancel an in-flight fetch first (only if the query\n\t* already has data), and `meta` to pass extra information to the query's behavior.\n\t* @returns A promise that resolves with the fetched data, or rejects with the fetch error. If the\n\t* fetch is cancelled with `revert` while the query has data, it resolves with the restored data\n\t* instead.\n\t*/\n\tasync fetch(options, fetchOptions) {\n\t\tif (this.state.fetchStatus !== \"idle\" && this.#retryer?.status() !== \"rejected\") {\n\t\t\tif (this.state.data !== void 0 && fetchOptions?.cancelRefetch) this.cancel({ silent: true });\n\t\t\telse if (this.#retryer && this.#fetchPromise) {\n\t\t\t\tthis.#retryer.continueRetry();\n\t\t\t\treturn this.#fetchPromise;\n\t\t\t}\n\t\t}\n\t\tif (options) this.setOptions(options);\n\t\tif (!this.options.queryFn) {\n\t\t\tconst observer = this.observers.find((x) => x.options.queryFn);\n\t\t\tif (observer) this.setOptions(observer.options);\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (!Array.isArray(this.options.queryKey)) console.error(`As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`);\n\t\t}\n\t\tconst abortController = new AbortController();\n\t\tconst addSignalProperty = (object) => {\n\t\t\tObject.defineProperties(object, {\n\t\t\t\t[fetchSignal]: {\n\t\t\t\t\tvalue: abortController.signal,\n\t\t\t\t\tenumerable: true\n\t\t\t\t},\n\t\t\t\tsignal: {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: () => {\n\t\t\t\t\t\tthis.#abortSignalConsumed = true;\n\t\t\t\t\t\treturn abortController.signal;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tconst fetchFn = () => {\n\t\t\tconst queryFn = ensureQueryFn(this.options, fetchOptions);\n\t\t\tconst createQueryFnContext = () => {\n\t\t\t\tconst queryFnContext = {\n\t\t\t\t\tclient: this.#client,\n\t\t\t\t\tqueryKey: this.queryKey,\n\t\t\t\t\tmeta: this.meta\n\t\t\t\t};\n\t\t\t\taddSignalProperty(queryFnContext);\n\t\t\t\treturn queryFnContext;\n\t\t\t};\n\t\t\tconst queryFnContext = createQueryFnContext();\n\t\t\tthis.#abortSignalConsumed = false;\n\t\t\tif (this.options.persister) return this.options.persister(queryFn, queryFnContext, this);\n\t\t\treturn queryFn(queryFnContext);\n\t\t};\n\t\tconst createFetchContext = () => {\n\t\t\tconst context = {\n\t\t\t\tfetchOptions,\n\t\t\t\toptions: this.options,\n\t\t\t\tqueryKey: this.queryKey,\n\t\t\t\tclient: this.#client,\n\t\t\t\tstate: this.state,\n\t\t\t\tfetchFn\n\t\t\t};\n\t\t\taddSignalProperty(context);\n\t\t\treturn context;\n\t\t};\n\t\tconst context = createFetchContext();\n\t\t(this.#queryType === \"infinite\" ? infiniteQueryBehavior(this.options.pages) : this.options.behavior)?.onFetch(context, this);\n\t\tthis.#revertState = this.state;\n\t\tif (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) this.#dispatch({\n\t\t\ttype: \"fetch\",\n\t\t\tmeta: context.fetchOptions?.meta\n\t\t});\n\t\tconst retryer = this.#retryer = createRetryer({\n\t\t\tinitialPromise: fetchOptions?.initialPromise,\n\t\t\tfn: context.fetchFn,\n\t\t\tonCancel: (error) => {\n\t\t\t\tif (error instanceof CancelledError && error.revert) this.setState({\n\t\t\t\t\t...this.#revertState,\n\t\t\t\t\tfetchStatus: \"idle\"\n\t\t\t\t});\n\t\t\t\tabortController.abort();\n\t\t\t},\n\t\t\tonFail: (failureCount, error) => {\n\t\t\t\tthis.#dispatch({\n\t\t\t\t\ttype: \"failed\",\n\t\t\t\t\tfailureCount,\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t},\n\t\t\tonPause: () => {\n\t\t\t\tthis.#dispatch({ type: \"pause\" });\n\t\t\t},\n\t\t\tonContinue: () => {\n\t\t\t\tthis.#dispatch({ type: \"continue\" });\n\t\t\t},\n\t\t\tretry: context.options.retry,\n\t\t\tretryDelay: context.options.retryDelay,\n\t\t\tnetworkMode: context.options.networkMode,\n\t\t\tcanRun: () => true\n\t\t});\n\t\tconst fetchPromise = (async () => {\n\t\t\ttry {\n\t\t\t\tconst data = await retryer.promise;\n\t\t\t\tif (data === void 0) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") console.error(`Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`);\n\t\t\t\t\tthrow new Error(`${this.queryHash} data is undefined`);\n\t\t\t\t}\n\t\t\t\tthis.setData(data);\n\t\t\t\tthis.#cache.config.onSuccess?.(data, this);\n\t\t\t\tthis.#cache.config.onSettled?.(data, this.state.error, this);\n\t\t\t\treturn data;\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof CancelledError) {\n\t\t\t\t\tif (error.silent) {\n\t\t\t\t\t\tif (this.#retryer !== retryer && this.#fetchPromise) return this.#fetchPromise;\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t} else if (error.revert) {\n\t\t\t\t\t\tif (this.state.data === void 0) throw error;\n\t\t\t\t\t\treturn this.state.data;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.#dispatch({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t\tthis.#cache.config.onError?.(error, this);\n\t\t\t\tthis.#cache.config.onSettled?.(this.state.data, error, this);\n\t\t\t\tthrow error;\n\t\t\t} finally {\n\t\t\t\tif (this.#retryer === retryer) {\n\t\t\t\t\tthis.#retryer = void 0;\n\t\t\t\t\tthis.#fetchPromise = void 0;\n\t\t\t\t}\n\t\t\t\tthis.scheduleGc();\n\t\t\t}\n\t\t})();\n\t\tthis.#fetchPromise = fetchPromise;\n\t\tretryer.start();\n\t\treturn fetchPromise;\n\t}\n\t#dispatch(action) {\n\t\tconst reducer = (state) => {\n\t\t\tswitch (action.type) {\n\t\t\t\tcase \"failed\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tfetchFailureCount: action.failureCount,\n\t\t\t\t\tfetchFailureReason: action.error\n\t\t\t\t};\n\t\t\t\tcase \"pause\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tfetchStatus: \"paused\"\n\t\t\t\t};\n\t\t\t\tcase \"continue\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tfetchStatus: \"fetching\"\n\t\t\t\t};\n\t\t\t\tcase \"fetch\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\t...fetchState(state.data, this.options),\n\t\t\t\t\tfetchMeta: action.meta ?? null\n\t\t\t\t};\n\t\t\t\tcase \"success\":\n\t\t\t\t\tconst newState = {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\t...successState(action.data, action.dataUpdatedAt),\n\t\t\t\t\t\tdataUpdateCount: state.dataUpdateCount + 1,\n\t\t\t\t\t\t...!action.manual && {\n\t\t\t\t\t\t\tfetchStatus: \"idle\",\n\t\t\t\t\t\t\tfetchFailureCount: 0,\n\t\t\t\t\t\t\tfetchFailureReason: null\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tthis.#revertState = action.manual ? newState : void 0;\n\t\t\t\t\treturn newState;\n\t\t\t\tcase \"error\":\n\t\t\t\t\tconst error = action.error;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\terrorUpdateCount: state.errorUpdateCount + 1,\n\t\t\t\t\t\terrorUpdatedAt: Date.now(),\n\t\t\t\t\t\tfetchFailureCount: state.fetchFailureCount + 1,\n\t\t\t\t\t\tfetchFailureReason: error,\n\t\t\t\t\t\tfetchStatus: \"idle\",\n\t\t\t\t\t\tstatus: \"error\",\n\t\t\t\t\t\tisInvalidated: true\n\t\t\t\t\t};\n\t\t\t\tcase \"invalidate\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tisInvalidated: true\n\t\t\t\t};\n\t\t\t\tcase \"setState\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\t...action.state\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t\tthis.state = reducer(this.state);\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.observers.slice().forEach((observer) => {\n\t\t\t\tobserver.onQueryUpdate();\n\t\t\t});\n\t\t\tthis.#cache.notify({\n\t\t\t\tquery: this,\n\t\t\t\ttype: \"updated\",\n\t\t\t\taction\n\t\t\t});\n\t\t});\n\t}\n};\n/**\n* Returns the state changes applied when a query starts fetching.\n* @param data - The query's current data. If it is `undefined`, the query is also reset to\n* `'pending'` with no error.\n* @param options - The query options, whose `networkMode` decides whether the query is `'fetching'`\n* or `'paused'`.\n* @returns The partial query state for a starting fetch.\n*/\nfunction fetchState(data, options) {\n\treturn {\n\t\tfetchFailureCount: 0,\n\t\tfetchFailureReason: null,\n\t\tfetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n\t\t...data === void 0 && {\n\t\t\terror: null,\n\t\t\tstatus: \"pending\"\n\t\t}\n\t};\n}\n/**\n* Returns the state changes applied when a query receives data.\n* @param data - The new data.\n* @param dataUpdatedAt - The timestamp the data is recorded with. Defaults to the current time.\n* @returns The partial query state for a successful update.\n*/\nfunction successState(data, dataUpdatedAt) {\n\treturn {\n\t\tdata,\n\t\tdataUpdatedAt: dataUpdatedAt ?? Date.now(),\n\t\terror: null,\n\t\tisInvalidated: false,\n\t\tstatus: \"success\"\n\t};\n}\n/**\n* Returns the initial state of a query, based on its `initialData` and `initialDataUpdatedAt`\n* options.\n* @param options - The query options.\n* @returns The initial query state: `'success'` if `initialData` is set, otherwise `'pending'`.\n*/\nfunction getDefaultState(options) {\n\tconst data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n\tconst hasData = data !== void 0;\n\tconst initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n\treturn {\n\t\tdata,\n\t\tdataUpdateCount: 0,\n\t\tdataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n\t\terror: null,\n\t\terrorUpdateCount: 0,\n\t\terrorUpdatedAt: 0,\n\t\tfetchFailureCount: 0,\n\t\tfetchFailureReason: null,\n\t\tfetchMeta: null,\n\t\tisInvalidated: false,\n\t\tstatus: hasData ? \"success\" : \"pending\",\n\t\tfetchStatus: \"idle\"\n\t};\n}\nexport { Query, fetchState };\n\n//# sourceMappingURL=query.js.map","import { timeoutManager } from \"./timeoutManager.js\";\nimport { isValidTimeout, noop, replaceData, resolveQueryValue, shallowEqualObjects, timeUntilStale } from \"./utils.js\";\nimport { isServer } from \"./environmentManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\n// src/queryObserver.ts\n/**\n* A `QueryObserver` watches a single query in the `QueryCache` and computes a\n* `QueryObserverResult` from its state, recomputing and notifying subscribers\n* whenever the underlying query (or the observer's options) changes. It is\n* the primitive that framework adapters (e.g. `useQuery`) build their hooks\n* on top of, but it can also be used directly to observe and switch between\n* queries outside of any framework.\n* @example\n* ```ts\n* const observer = new QueryObserver(queryClient, {\n* queryKey: ['posts'],\n* queryFn: fetchPosts,\n* })\n*\n* const unsubscribe = observer.subscribe((result) => {\n* console.log(result.data)\n* })\n* ```\n*/\nvar QueryObserver = class extends Subscribable {\n\t#client;\n\t#currentQuery = void 0;\n\t#currentQueryInitialState = void 0;\n\t#currentResult = void 0;\n\t#currentResultState;\n\t#currentResultOptions;\n\t#selectError;\n\t#selectFn;\n\t#selectResult;\n\t#lastQueryWithDefinedData;\n\t#staleTimeoutId;\n\t#refetchIntervalId;\n\t#currentRefetchInterval;\n\t#trackedProps = /* @__PURE__ */ new Set();\n\tconstructor(client, options) {\n\t\tsuper();\n\t\tthis.options = options;\n\t\tthis.#client = client;\n\t\tthis.#selectError = null;\n\t\tthis.bindMethods();\n\t\tthis.setOptions(options);\n\t}\n\t/**\n\t* Binds the methods of the result (`refetch`) to the observer, so they keep working when destructured\n\t* from it. Subclasses override it to bind their own result methods as well.\n\t*/\n\tbindMethods() {\n\t\tthis.refetch = this.refetch.bind(this);\n\t}\n\tonSubscribe() {\n\t\tif (this.listeners.size === 1) {\n\t\t\tthis.#currentQuery.addObserver(this);\n\t\t\tif (shouldFetchOnMount(this.#currentQuery, this.options)) this.#executeFetch();\n\t\t\telse this.updateResult();\n\t\t\tthis.#updateTimers();\n\t\t}\n\t}\n\tonUnsubscribe() {\n\t\tif (!this.hasListeners()) this.destroy();\n\t}\n\t/**\n\t* Returns whether the observed query is currently stale and configured\n\t* (via the `refetchOnReconnect` option) to refetch when the network\n\t* reconnects.\n\t* @returns `true` if the observer should refetch the query on reconnect.\n\t*/\n\tshouldFetchOnReconnect() {\n\t\treturn shouldFetchOn(this.#currentQuery, this.options, this.options.refetchOnReconnect);\n\t}\n\t/**\n\t* Returns whether the observed query is currently stale and configured\n\t* (via the `refetchOnWindowFocus` option) to refetch when the window\n\t* regains focus.\n\t* @returns `true` if the observer should refetch the query on window focus.\n\t*/\n\tshouldFetchOnWindowFocus() {\n\t\treturn shouldFetchOn(this.#currentQuery, this.options, this.options.refetchOnWindowFocus);\n\t}\n\t/**\n\t* Stops observing the current query: clears all listeners, cancels the\n\t* stale and refetch-interval timers, and removes this observer from the\n\t* query it was observing.\n\t*/\n\tdestroy() {\n\t\tthis.listeners = /* @__PURE__ */ new Set();\n\t\tthis.#clearStaleTimeout();\n\t\tthis.#clearRefetchInterval();\n\t\tthis.#currentQuery.removeObserver(this);\n\t}\n\t/**\n\t* Updates the observer's options. This will re-resolve the query being\n\t* observed (switching to a different query if the `queryKey` changed),\n\t* trigger a fetch if the new options require one and the observer has\n\t* subscribers, recompute the current result, and reschedule the stale and\n\t* refetch-interval timers as needed.\n\t* @param options - The new observer options. They are defaulted with {@link\n\t* QueryClient#defaultQueryOptions} before being applied.\n\t* @throws {Error} If `enabled` is neither a boolean nor a function.\n\t* @example\n\t* ```ts\n\t* observer.setOptions({ queryKey: ['posts', 1], queryFn: () => fetchPost(1) })\n\t* // later: switch to a different query, reusing the same observer\n\t* observer.setOptions({ queryKey: ['posts', 2], queryFn: () => fetchPost(2) })\n\t* ```\n\t*/\n\tsetOptions(options) {\n\t\tconst prevOptions = this.options;\n\t\tconst prevQuery = this.#currentQuery;\n\t\tthis.options = this.#client.defaultQueryOptions(options);\n\t\tif (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveQueryValue(this.options.enabled, this.#currentQuery) !== \"boolean\") throw new Error(\"Expected enabled to be a boolean or a callback that returns a boolean\");\n\t\tthis.#updateQuery();\n\t\tthis.#currentQuery.setOptions(this.options);\n\t\tif (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) this.#client.getQueryCache().notify({\n\t\t\ttype: \"observerOptionsUpdated\",\n\t\t\tquery: this.#currentQuery,\n\t\t\tobserver: this\n\t\t});\n\t\tconst mounted = this.hasListeners();\n\t\tif (mounted && shouldFetchOptionally(this.#currentQuery, prevQuery, this.options, prevOptions)) this.#executeFetch();\n\t\tthis.updateResult();\n\t\tif (mounted && (this.#currentQuery !== prevQuery || resolveQueryValue(this.options.enabled, this.#currentQuery) !== resolveQueryValue(prevOptions.enabled, this.#currentQuery) || resolveQueryValue(this.options.staleTime, this.#currentQuery) !== resolveQueryValue(prevOptions.staleTime, this.#currentQuery))) this.#updateStaleTimeout();\n\t\tconst nextRefetchInterval = this.#computeRefetchInterval();\n\t\tif (mounted && (this.#currentQuery !== prevQuery || resolveQueryValue(this.options.enabled, this.#currentQuery) !== resolveQueryValue(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) this.#updateRefetchInterval(nextRefetchInterval);\n\t}\n\t/**\n\t* Computes the result the observer would produce for the given (already-defaulted) options\n\t* right now, building the underlying `Query` if it doesn't exist yet, without waiting for a\n\t* subscription callback. Called by framework adapters on every render (e.g. `useQuery`) so the\n\t* returned value is available synchronously, ahead of `setOptions` triggering an actual fetch.\n\t* @param options - The defaulted observer options to compute the result for.\n\t* @returns The result for the given options.\n\t*/\n\tgetOptimisticResult(options) {\n\t\tconst query = this.#client.getQueryCache().build(this.#client, options);\n\t\tconst result = this.createResult(query, options);\n\t\tif (!shallowEqualObjects(this.getCurrentResult(), result)) {\n\t\t\tthis.#currentResult = result;\n\t\t\tthis.#currentResultOptions = this.options;\n\t\t\tthis.#currentResultState = this.#currentQuery.state;\n\t\t}\n\t\treturn result;\n\t}\n\t/**\n\t* Returns the most recently computed `QueryObserverResult` for the\n\t* observed query. This is a point-in-time read; to be notified of updates\n\t* as they happen, subscribe to the observer instead (its inherited\n\t* `subscribe` method).\n\t* @returns The observer's latest result.\n\t* @example\n\t* ```ts\n\t* const result = observer.getCurrentResult()\n\t* console.log(result.status, result.data)\n\t* ```\n\t*/\n\tgetCurrentResult() {\n\t\treturn this.#currentResult;\n\t}\n\t/**\n\t* Wraps a `QueryObserverResult` in a `Proxy` that records which properties are read, via\n\t* {@link QueryObserver#trackProp} (and an optional `onPropTracked` callback). Used by framework\n\t* adapters when `notifyOnChangeProps` is not set, to implement its default \"only re-render on\n\t* properties you actually read\" behavior.\n\t* @param result - The result to wrap.\n\t* @param onPropTracked - Called with the name of each property that is read.\n\t* @returns A proxy of `result` that tracks property reads.\n\t*/\n\ttrackResult(result, onPropTracked) {\n\t\treturn new Proxy(result, { get: (target, key) => {\n\t\t\tthis.trackProp(key);\n\t\t\tonPropTracked?.(key);\n\t\t\treturn Reflect.get(target, key);\n\t\t} });\n\t}\n\t/**\n\t* Records that the given `QueryObserverResult` property was read, so a subsequent update only\n\t* notifies this observer if a tracked property actually changed. Normally called indirectly via\n\t* {@link QueryObserver#trackResult}'s proxy; exposed directly for adapters that track property\n\t* access themselves (e.g. through their own reactivity system) instead of via the proxy.\n\t* @param key - The name of the property that was read.\n\t*/\n\ttrackProp(key) {\n\t\tthis.#trackedProps.add(key);\n\t}\n\t/**\n\t* Returns the `Query` instance this observer is currently observing.\n\t* @returns The observed query.\n\t*/\n\tgetCurrentQuery() {\n\t\treturn this.#currentQuery;\n\t}\n\t/**\n\t* Refetches the observed query and returns a promise that resolves with\n\t* the resulting `QueryObserverResult`.\n\t* @param options - Set `cancelRefetch` to `false` to keep a running fetch instead of cancelling\n\t* it, and `throwOnError` to `true` to reject when the refetch fails.\n\t* @returns A promise that resolves with the result after the refetch.\n\t* @example\n\t* ```ts\n\t* const result = await observer.refetch({ cancelRefetch: false })\n\t* console.log(result.data)\n\t* ```\n\t*/\n\trefetch({ ...options } = {}) {\n\t\treturn this.fetch({ ...options });\n\t}\n\t/**\n\t* Fetches a query defined by the given options without affecting this\n\t* observer's own tracked query or result, and returns a promise that\n\t* resolves with the `QueryObserverResult` for that fetch. This is useful\n\t* for prefetching data that another observer (e.g. a query about to be\n\t* navigated to) will need, ahead of time.\n\t* @param options - The observer options of the query to fetch.\n\t* @returns A promise that resolves with the result for the fetched query.\n\t* @example\n\t* ```ts\n\t* const result = await observer.fetchOptimistic({\n\t* queryKey: ['posts', 2],\n\t* queryFn: () => fetchPost(2),\n\t* })\n\t* console.log(result.data)\n\t* ```\n\t*/\n\tfetchOptimistic(options) {\n\t\tconst defaultedOptions = this.#client.defaultQueryOptions(options);\n\t\tconst query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n\t\tlet unsubscribe = () => {};\n\t\tlet resolveEarly;\n\t\tconst cachePromise = new Promise((resolve) => {\n\t\t\tresolveEarly = resolve;\n\t\t\tunsubscribe = this.#client.getQueryCache().subscribe((event) => {\n\t\t\t\tif (event.type === \"updated\" && event.query.queryHash === query.queryHash && query.state.data !== void 0) {\n\t\t\t\t\tunsubscribe();\n\t\t\t\t\tresolve(this.createResult(query, defaultedOptions));\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn Promise.race([query.fetch(defaultedOptions).then(() => {\n\t\t\tconst result = this.createResult(query, defaultedOptions);\n\t\t\tresolveEarly?.(result);\n\t\t\treturn result;\n\t\t}).finally(() => {\n\t\t\tunsubscribe();\n\t\t}), cachePromise]);\n\t}\n\t/**\n\t* Fetches the observed query and updates the result once the fetch settles. Used by `refetch` and,\n\t* in `InfiniteQueryObserver`, to fetch more pages.\n\t* @param fetchOptions - Options for this fetch. `cancelRefetch` defaults to `true`.\n\t* @returns A promise that resolves with the updated result.\n\t*/\n\tfetch(fetchOptions) {\n\t\treturn this.#executeFetch({\n\t\t\t...fetchOptions,\n\t\t\tcancelRefetch: fetchOptions.cancelRefetch ?? true\n\t\t}).then(() => {\n\t\t\tthis.updateResult();\n\t\t\treturn this.#currentResult;\n\t\t});\n\t}\n\t#executeFetch(fetchOptions) {\n\t\tthis.#updateQuery();\n\t\tlet promise = this.#currentQuery.fetch(this.options, fetchOptions);\n\t\tif (!fetchOptions?.throwOnError) promise = promise.catch(noop);\n\t\treturn promise;\n\t}\n\t#shouldScheduleTimer(timeout) {\n\t\treturn !isServer() && resolveQueryValue(this.options.enabled, this.#currentQuery) !== false && isValidTimeout(timeout);\n\t}\n\t#updateStaleTimeout() {\n\t\tthis.#clearStaleTimeout();\n\t\tconst staleTime = resolveQueryValue(this.options.staleTime, this.#currentQuery);\n\t\tif (this.#currentResult.isStale || !this.#shouldScheduleTimer(staleTime)) return;\n\t\tconst timeout = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime) + 1;\n\t\tthis.#staleTimeoutId = timeoutManager.setTimeout(() => {\n\t\t\tif (!this.#currentResult.isStale) this.updateResult();\n\t\t}, timeout);\n\t}\n\t#computeRefetchInterval() {\n\t\treturn resolveQueryValue(this.options.refetchInterval, this.#currentQuery) ?? false;\n\t}\n\t#updateRefetchInterval(nextInterval) {\n\t\tthis.#clearRefetchInterval();\n\t\tthis.#currentRefetchInterval = nextInterval;\n\t\tif (this.#currentRefetchInterval === 0 || !this.#shouldScheduleTimer(this.#currentRefetchInterval)) return;\n\t\tthis.#refetchIntervalId = timeoutManager.setInterval(() => {\n\t\t\tif (this.options.refetchIntervalInBackground || focusManager.isFocused()) this.#executeFetch();\n\t\t}, this.#currentRefetchInterval);\n\t}\n\t#updateTimers() {\n\t\tthis.#updateStaleTimeout();\n\t\tthis.#updateRefetchInterval(this.#computeRefetchInterval());\n\t}\n\t#clearStaleTimeout() {\n\t\tif (this.#staleTimeoutId !== void 0) {\n\t\t\ttimeoutManager.clearTimeout(this.#staleTimeoutId);\n\t\t\tthis.#staleTimeoutId = void 0;\n\t\t}\n\t}\n\t#clearRefetchInterval() {\n\t\tif (this.#refetchIntervalId !== void 0) {\n\t\t\ttimeoutManager.clearInterval(this.#refetchIntervalId);\n\t\t\tthis.#refetchIntervalId = void 0;\n\t\t}\n\t}\n\t/**\n\t* Computes the result for a query and options from the query's state, applying `select`,\n\t* `placeholderData`, and the derived flags. Subclasses override it to add their own fields.\n\t* @param query - The query to compute the result for.\n\t* @param options - The observer options to compute the result with.\n\t* @returns The computed result.\n\t*/\n\tcreateResult(query, options) {\n\t\tconst prevQuery = this.#currentQuery;\n\t\tconst prevOptions = this.options;\n\t\tconst prevResult = this.#currentResult;\n\t\tconst prevResultState = this.#currentResultState;\n\t\tconst prevResultOptions = this.#currentResultOptions;\n\t\tconst queryInitialState = query !== prevQuery ? query.state : this.#currentQueryInitialState;\n\t\tconst { state } = query;\n\t\tlet newState = { ...state };\n\t\tlet isPlaceholderData = false;\n\t\tlet data;\n\t\tif (options._optimisticResults) {\n\t\t\tconst mounted = this.hasListeners();\n\t\t\tconst fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n\t\t\tconst fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\t\t\tif (fetchOnMount || fetchOptionally) newState = {\n\t\t\t\t...newState,\n\t\t\t\t...fetchState(state.data, query.options)\n\t\t\t};\n\t\t\tif (options._optimisticResults === \"isRestoring\") newState.fetchStatus = \"idle\";\n\t\t}\n\t\tlet { error, errorUpdatedAt, status } = newState;\n\t\tdata = newState.data;\n\t\tlet skipSelect = false;\n\t\tif (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n\t\t\tlet placeholderData;\n\t\t\tif (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n\t\t\t\tplaceholderData = prevResult.data;\n\t\t\t\tskipSelect = true;\n\t\t\t} else placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(this.#lastQueryWithDefinedData?.state.data, this.#lastQueryWithDefinedData) : options.placeholderData;\n\t\t\tif (placeholderData !== void 0) {\n\t\t\t\tstatus = \"success\";\n\t\t\t\tdata = replaceData(prevResult?.data, placeholderData, options);\n\t\t\t\tisPlaceholderData = true;\n\t\t\t}\n\t\t}\n\t\tif (options.select && data !== void 0 && !skipSelect) {\n\t\t\tif (prevResult && data === prevResultState?.data && options.select === this.#selectFn) data = this.#selectResult;\n\t\t\telse try {\n\t\t\t\tthis.#selectFn = options.select;\n\t\t\t\tdata = options.select(data);\n\t\t\t\tdata = replaceData(prevResult?.data, data, options);\n\t\t\t\tthis.#selectResult = data;\n\t\t\t\tthis.#selectError = null;\n\t\t\t} catch (selectError) {\n\t\t\t\tthis.#selectError = selectError;\n\t\t\t}\n\t\t} else if (data === void 0) this.#selectError = null;\n\t\tif (this.#selectError) {\n\t\t\terror = this.#selectError;\n\t\t\tdata = this.#selectResult;\n\t\t\terrorUpdatedAt = prevResult?.error === error ? prevResult.errorUpdatedAt : Date.now();\n\t\t\tstatus = \"error\";\n\t\t\tisPlaceholderData = false;\n\t\t}\n\t\tconst isFetching = newState.fetchStatus === \"fetching\";\n\t\tconst isPending = status === \"pending\";\n\t\tconst isError = status === \"error\";\n\t\tconst isLoading = isPending && isFetching;\n\t\tconst hasData = data !== void 0;\n\t\treturn {\n\t\t\tstatus,\n\t\t\tfetchStatus: newState.fetchStatus,\n\t\t\tisPending,\n\t\t\tisSuccess: status === \"success\",\n\t\t\tisError,\n\t\t\tisInitialLoading: isLoading,\n\t\t\tisLoading,\n\t\t\tdata,\n\t\t\tdataUpdatedAt: newState.dataUpdatedAt,\n\t\t\terror,\n\t\t\terrorUpdatedAt,\n\t\t\tfailureCount: newState.fetchFailureCount,\n\t\t\tfailureReason: newState.fetchFailureReason,\n\t\t\terrorUpdateCount: newState.errorUpdateCount,\n\t\t\tisFetched: query.isFetched(),\n\t\t\tisFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n\t\t\tisFetching,\n\t\t\tisRefetching: isFetching && !isPending,\n\t\t\tisLoadingError: isError && !hasData,\n\t\t\tisPaused: newState.fetchStatus === \"paused\",\n\t\t\tisPlaceholderData,\n\t\t\tisRefetchError: isError && hasData,\n\t\t\tisStale: isStale(query, options),\n\t\t\trefetch: this.refetch,\n\t\t\tisEnabled: resolveQueryValue(options.enabled, query) !== false\n\t\t};\n\t}\n\t/**\n\t* Recomputes and stores the current result from the current query/options, notifying listeners\n\t* if it changed. Framework adapters call this right after subscribing to make sure no query\n\t* update was missed in the gap between creating the observer and subscribing to it.\n\t*/\n\tupdateResult() {\n\t\tconst prevResult = this.#currentResult;\n\t\tconst nextResult = this.createResult(this.#currentQuery, this.options);\n\t\tthis.#currentResultState = this.#currentQuery.state;\n\t\tthis.#currentResultOptions = this.options;\n\t\tif (this.#currentResultState.data !== void 0) this.#lastQueryWithDefinedData = this.#currentQuery;\n\t\tif (shallowEqualObjects(nextResult, prevResult)) return;\n\t\tthis.#currentResult = nextResult;\n\t\tconst shouldNotifyListeners = () => {\n\t\t\tif (!prevResult) return true;\n\t\t\tconst { notifyOnChangeProps } = this.options;\n\t\t\tconst notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n\t\t\tif (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) return true;\n\t\t\tif (this.options.throwOnError && this.#currentResult.error !== prevResult.error) return true;\n\t\t\tfor (const key of notifyOnChangePropsValue ?? this.#trackedProps) if (this.#currentResult[key] !== prevResult[key]) return true;\n\t\t\treturn false;\n\t\t};\n\t\tconst notifyListeners = shouldNotifyListeners();\n\t\tnotifyManager.batch(() => {\n\t\t\tif (notifyListeners) this.listeners.forEach((listener) => {\n\t\t\t\tlistener(this.#currentResult);\n\t\t\t});\n\t\t\tthis.#client.getQueryCache().notify({\n\t\t\t\tquery: this.#currentQuery,\n\t\t\t\ttype: \"observerResultsUpdated\"\n\t\t\t});\n\t\t});\n\t}\n\t#updateQuery() {\n\t\tconst query = this.#client.getQueryCache().build(this.#client, this.options);\n\t\tif (query === this.#currentQuery) return;\n\t\tconst prevQuery = this.#currentQuery;\n\t\tthis.#currentQuery = query;\n\t\tthis.#currentQueryInitialState = query.state;\n\t\tif (this.hasListeners()) {\n\t\t\tprevQuery?.removeObserver(this);\n\t\t\tquery.addObserver(this);\n\t\t}\n\t}\n\t/**\n\t* Updates the observer's result when the observed query changes, and reschedules its timers if it\n\t* has listeners.\n\t* @internal\n\t*/\n\tonQueryUpdate() {\n\t\tthis.updateResult();\n\t\tif (this.hasListeners()) this.#updateTimers();\n\t}\n};\n/**\n* Checks whether a query has no data yet and should do its initial load when an observer mounts.\n* @param query - The query to check.\n* @param options - The observer options.\n* @returns `true` if the query is enabled, has no data, and isn't in an error state with\n* `retryOnMount: false`.\n*/\nfunction shouldLoadOnMount(query, options) {\n\treturn resolveQueryValue(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && resolveQueryValue(options.retryOnMount, query) === false);\n}\n/**\n* Checks whether a query should fetch when an observer mounts: either for its initial load, or\n* because it has data and `refetchOnMount` asks for a refetch.\n* @param query - The query to check.\n* @param options - The observer options.\n* @returns `true` if the query should fetch on mount.\n*/\nfunction shouldFetchOnMount(query, options) {\n\treturn shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n/**\n* Checks whether a query should fetch for a `refetchOnMount`, `refetchOnWindowFocus`, or\n* `refetchOnReconnect` option.\n* @param query - The query to check.\n* @param options - The observer options.\n* @param field - The value of the option to check.\n* @returns `true` if the query is enabled, not static, and the option is `'always'`, or is not\n* `false` and the query is stale.\n*/\nfunction shouldFetchOn(query, options, field) {\n\tif (resolveQueryValue(options.enabled, query) !== false && resolveQueryValue(options.staleTime, query) !== \"static\") {\n\t\tconst value = resolveQueryValue(field, query);\n\t\treturn value === \"always\" || value !== false && isStale(query, options);\n\t}\n\treturn false;\n}\n/**\n* Checks whether a query should fetch after the observer's options change.\n* @param query - The query observed with the new options.\n* @param prevQuery - The query observed with the previous options.\n* @param options - The new observer options.\n* @param prevOptions - The previous observer options.\n* @returns `true` if the query changed or was disabled before, it isn't a suspense query in an\n* error state, and it is stale.\n*/\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n\treturn (query !== prevQuery || resolveQueryValue(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\n/**\n* Checks whether a query is stale for the given observer options.\n* @param query - The query to check.\n* @param options - The observer options, whose `enabled` and `staleTime` are used.\n* @returns `true` if the query is enabled and its data is stale for `staleTime`.\n*/\nfunction isStale(query, options) {\n\treturn resolveQueryValue(options.enabled, query) !== false && query.isStaleByTime(resolveQueryValue(options.staleTime, query));\n}\nexport { QueryObserver };\n\n//# sourceMappingURL=queryObserver.js.map","import { notifyManager } from \"./notifyManager.js\";\nimport { createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\n// src/mutation.ts\n/**\n* Represents a single mutation attempt. A `Mutation` holds the mutation's\n* options, state (data/error/status), and the `MutationObserver`s currently\n* subscribed to it.\n*\n* Instances are created and managed internally by `MutationCache`; application\n* code typically interacts with mutations indirectly through `QueryClient` or\n* a framework hook like `useMutation`. Direct access to a `Mutation` instance\n* is possible via `mutationCache.find()`/`getAll()` for inspecting cache state.\n* @example\n* ```ts\n* const mutationCache = queryClient.getMutationCache()\n*\n* const mutation = mutationCache.find({ mutationKey: ['addPost'] })\n* ```\n*/\nvar Mutation = class extends Removable {\n\t#client;\n\t#observers;\n\t#mutationCache;\n\t#retryer;\n\tconstructor(config) {\n\t\tsuper();\n\t\tthis.#client = config.client;\n\t\tthis.mutationId = config.mutationId;\n\t\tthis.#mutationCache = config.mutationCache;\n\t\tthis.#observers = [];\n\t\tthis.state = config.state || getDefaultState();\n\t\tthis.setOptions(config.options);\n\t\tthis.scheduleGc();\n\t}\n\t/**\n\t* Replaces the mutation's options and applies their `gcTime`.\n\t* @internal\n\t* @param options - The new mutation options.\n\t*/\n\tsetOptions(options) {\n\t\tthis.options = options;\n\t\tthis.updateGcTime(this.options.gcTime);\n\t}\n\t/**\n\t* The `meta` object passed in the mutation's options, if any.\n\t* @returns The mutation's `meta`, or `undefined` if none was set.\n\t*/\n\tget meta() {\n\t\treturn this.options.meta;\n\t}\n\t/**\n\t* Subscribes an observer to the mutation and stops its garbage collection.\n\t* @internal\n\t* @param observer - The observer to add. Adding an observer that is already subscribed does\n\t* nothing.\n\t*/\n\taddObserver(observer) {\n\t\tif (!this.#observers.includes(observer)) {\n\t\t\tthis.#observers.push(observer);\n\t\t\tthis.clearGcTimeout();\n\t\t\tthis.#mutationCache.notify({\n\t\t\t\ttype: \"observerAdded\",\n\t\t\t\tmutation: this,\n\t\t\t\tobserver\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* Unsubscribes an observer from the mutation.\n\t* @internal\n\t* @param observer - The observer to remove. Garbage collection is scheduled afterwards.\n\t*/\n\tremoveObserver(observer) {\n\t\tthis.#observers = this.#observers.filter((x) => x !== observer);\n\t\tthis.scheduleGc();\n\t\tthis.#mutationCache.notify({\n\t\t\ttype: \"observerRemoved\",\n\t\t\tmutation: this,\n\t\t\tobserver\n\t\t});\n\t}\n\toptionalRemove() {\n\t\tif (!this.#observers.length) {\n\t\t\tif (this.state.status === \"pending\") this.scheduleGc();\n\t\t\telse this.#mutationCache.remove(this);\n\t\t}\n\t}\n\t/**\n\t* Resumes a mutation that is currently paused or was restored from a\n\t* dehydrated, still-`pending` state.\n\t*\n\t* - If this mutation has an active retryer (it paused mid-attempt, e.g. due\n\t* to the network mode or scope-based queuing), its retryer is resumed.\n\t* - Otherwise, if the mutation's status is still `pending` (e.g. it was\n\t* dehydrated while an attempt was in flight and never got a retryer in\n\t* this instance), `execute` is called again with the last known variables.\n\t* - Otherwise the mutation has already settled and this resolves immediately\n\t* without running anything again.\n\t* @returns A promise that settles with the resumed mutation: it rejects if the mutation fails.\n\t* It resolves immediately if the mutation has already settled.\n\t* @see {@link Mutation#execute}\n\t* @example\n\t* ```ts\n\t* // typically driven by reconnect handling, e.g. queryClient.resumePausedMutations()\n\t* const mutation = mutationCache.find({ mutationKey: ['addPost'] })\n\t* await mutation?.continue()\n\t* ```\n\t*/\n\tcontinue() {\n\t\treturn this.#retryer?.continue() ?? (this.state.status === \"pending\" ? this.execute(this.state.variables) : Promise.resolve());\n\t}\n\t/**\n\t* Runs the mutation function for the given variables through a retryer, and\n\t* drives the mutation's state and lifecycle callbacks through to settlement.\n\t*\n\t* If this mutation's state is already `pending` when `execute` is called\n\t* (i.e. it was restored, still in-flight, from a dehydrated state), the\n\t* `onMutate` step is skipped and a `continue` action is dispatched to\n\t* unpause it; otherwise a `pending` action is dispatched first, then the\n\t* mutation cache's `onMutate` and the mutation's own `onMutate` option are\n\t* awaited in that order, and the resulting context is stored.\n\t*\n\t* The mutation function is then run (subject to `retry`/`retryDelay`/\n\t* `networkMode`, and to the mutation cache's scope-based serialization).\n\t* On success, the cache's `onSuccess`/`onSettled` callbacks run before the\n\t* mutation's own `onSuccess`/`onSettled` options, a `success` action is\n\t* dispatched, and the resolved data is returned. On failure, the same\n\t* cache-then-option ordering is used for `onError`/`onSettled`, but each of\n\t* those four callbacks is individually caught so that a throwing callback\n\t* cannot mask the original error; an `error` action is then dispatched and\n\t* the original error is re-thrown.\n\t* @param variables - The variables passed to the `mutationFn`.\n\t* @returns A promise that resolves with the mutation's data, or rejects with its error.\n\t* @see {@link Mutation#continue}\n\t* @example\n\t* ```ts\n\t* // Called internally by `MutationObserver.mutate` and `Mutation.continue` —\n\t* // applications normally trigger mutations through those, not this method.\n\t* const data = await mutation.execute(variables)\n\t* ```\n\t*/\n\tasync execute(variables) {\n\t\tconst onContinue = () => {\n\t\t\tthis.#dispatch({ type: \"continue\" });\n\t\t};\n\t\tconst mutationFnContext = {\n\t\t\tclient: this.#client,\n\t\t\tmeta: this.options.meta,\n\t\t\tmutationKey: this.options.mutationKey\n\t\t};\n\t\tconst retryer = this.#retryer = createRetryer({\n\t\t\tfn: () => {\n\t\t\t\tif (!this.options.mutationFn) return Promise.reject(/* @__PURE__ */ new Error(\"No mutationFn found\"));\n\t\t\t\treturn this.options.mutationFn(variables, mutationFnContext);\n\t\t\t},\n\t\t\tonFail: (failureCount, error) => {\n\t\t\t\tthis.#dispatch({\n\t\t\t\t\ttype: \"failed\",\n\t\t\t\t\tfailureCount,\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t},\n\t\t\tonPause: () => {\n\t\t\t\tthis.#dispatch({ type: \"pause\" });\n\t\t\t},\n\t\t\tonContinue,\n\t\t\tretry: this.options.retry ?? 0,\n\t\t\tretryDelay: this.options.retryDelay,\n\t\t\tnetworkMode: this.options.networkMode,\n\t\t\tcanRun: () => this.#mutationCache.canRun(this)\n\t\t});\n\t\tconst restored = this.state.status === \"pending\";\n\t\tconst isPaused = !retryer.canStart();\n\t\ttry {\n\t\t\tif (restored) onContinue();\n\t\t\telse {\n\t\t\t\tthis.#dispatch({\n\t\t\t\t\ttype: \"pending\",\n\t\t\t\t\tvariables,\n\t\t\t\t\tisPaused\n\t\t\t\t});\n\t\t\t\tif (this.#mutationCache.config.onMutate) await this.#mutationCache.config.onMutate(variables, this, mutationFnContext);\n\t\t\t\tconst context = await this.options.onMutate?.(variables, mutationFnContext);\n\t\t\t\tif (context !== this.state.context) this.#dispatch({\n\t\t\t\t\ttype: \"pending\",\n\t\t\t\t\tcontext,\n\t\t\t\t\tvariables,\n\t\t\t\t\tisPaused\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (this.state.isPaused && retryer.canStart()) onContinue();\n\t\t\tconst data = await retryer.start();\n\t\t\tawait this.#mutationCache.config.onSuccess?.(data, variables, this.state.context, this, mutationFnContext);\n\t\t\tawait this.options.onSuccess?.(data, variables, this.state.context, mutationFnContext);\n\t\t\tawait this.#mutationCache.config.onSettled?.(data, null, this.state.variables, this.state.context, this, mutationFnContext);\n\t\t\tawait this.options.onSettled?.(data, null, variables, this.state.context, mutationFnContext);\n\t\t\tthis.#dispatch({\n\t\t\t\ttype: \"success\",\n\t\t\t\tdata\n\t\t\t});\n\t\t\treturn data;\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tawait this.#mutationCache.config.onError?.(error, variables, this.state.context, this, mutationFnContext);\n\t\t\t} catch (e) {\n\t\t\t\tPromise.reject(e);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait this.options.onError?.(error, variables, this.state.context, mutationFnContext);\n\t\t\t} catch (e) {\n\t\t\t\tPromise.reject(e);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait this.#mutationCache.config.onSettled?.(void 0, error, this.state.variables, this.state.context, this, mutationFnContext);\n\t\t\t} catch (e) {\n\t\t\t\tPromise.reject(e);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait this.options.onSettled?.(void 0, error, variables, this.state.context, mutationFnContext);\n\t\t\t} catch (e) {\n\t\t\t\tPromise.reject(e);\n\t\t\t}\n\t\t\tthis.#dispatch({\n\t\t\t\ttype: \"error\",\n\t\t\t\terror\n\t\t\t});\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.#retryer === retryer) this.#retryer = void 0;\n\t\t\tthis.#mutationCache.runNext(this);\n\t\t}\n\t}\n\t#dispatch(action) {\n\t\tconst reducer = (state) => {\n\t\t\tswitch (action.type) {\n\t\t\t\tcase \"failed\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tfailureCount: action.failureCount,\n\t\t\t\t\tfailureReason: action.error\n\t\t\t\t};\n\t\t\t\tcase \"pause\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tisPaused: true\n\t\t\t\t};\n\t\t\t\tcase \"continue\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tisPaused: false\n\t\t\t\t};\n\t\t\t\tcase \"pending\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tcontext: action.context,\n\t\t\t\t\tdata: void 0,\n\t\t\t\t\tfailureCount: 0,\n\t\t\t\t\tfailureReason: null,\n\t\t\t\t\terror: null,\n\t\t\t\t\tisPaused: action.isPaused,\n\t\t\t\t\tstatus: \"pending\",\n\t\t\t\t\tvariables: action.variables,\n\t\t\t\t\tsubmittedAt: Date.now()\n\t\t\t\t};\n\t\t\t\tcase \"success\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tdata: action.data,\n\t\t\t\t\tfailureCount: 0,\n\t\t\t\t\tfailureReason: null,\n\t\t\t\t\terror: null,\n\t\t\t\t\tstatus: \"success\",\n\t\t\t\t\tisPaused: false\n\t\t\t\t};\n\t\t\t\tcase \"error\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tdata: void 0,\n\t\t\t\t\terror: action.error,\n\t\t\t\t\tfailureCount: state.failureCount + 1,\n\t\t\t\t\tfailureReason: action.error,\n\t\t\t\t\tisPaused: false,\n\t\t\t\t\tstatus: \"error\"\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t\tthis.state = reducer(this.state);\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.#observers.forEach((observer) => {\n\t\t\t\tobserver.onMutationUpdate(action);\n\t\t\t});\n\t\t\tthis.#mutationCache.notify({\n\t\t\t\tmutation: this,\n\t\t\t\ttype: \"updated\",\n\t\t\t\taction\n\t\t\t});\n\t\t});\n\t}\n};\n/**\n* Returns the initial state of a mutation: `'idle'`, with no data, error, or variables.\n* @returns The initial mutation state.\n*/\nfunction getDefaultState() {\n\treturn {\n\t\tcontext: void 0,\n\t\tdata: void 0,\n\t\terror: null,\n\t\tfailureCount: 0,\n\t\tfailureReason: null,\n\t\tisPaused: false,\n\t\tstatus: \"idle\",\n\t\tvariables: void 0,\n\t\tsubmittedAt: 0\n\t};\n}\nexport { Mutation, getDefaultState };\n\n//# sourceMappingURL=mutation.js.map","import { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\n// src/mutationCache.ts\n/**\n* The `MutationCache` is the storage for mutations.\n*\n* Normally, you will not interact with the `MutationCache` directly and instead use a\n* `QueryClient`. You can subscribe to it (inherited from `Subscribable`) to be informed of\n* safe/known updates to the cache, such as mutations being added, removed, or updated.\n* @example\n* ```ts\n* const unsubscribe = mutationCache.subscribe((event) => {\n* console.log(event.type, event.mutation)\n* })\n* ```\n*/\nvar MutationCache = class extends Subscribable {\n\t#mutations;\n\t#scopes;\n\t#mutationId;\n\tconstructor(config = {}) {\n\t\tsuper();\n\t\tthis.config = config;\n\t\tthis.#mutations = /* @__PURE__ */ new Set();\n\t\tthis.#scopes = /* @__PURE__ */ new Map();\n\t\tthis.#mutationId = 0;\n\t}\n\t/**\n\t* Creates a mutation and adds it to the cache.\n\t* @internal\n\t* @param client - The client the mutation belongs to, used to default its options.\n\t* @param options - The mutation options. They are defaulted with {@link\n\t* QueryClient#defaultMutationOptions}.\n\t* @param state - The initial state of the mutation, e.g. when restoring a dehydrated mutation.\n\t* @returns The new mutation, already added to the cache.\n\t*/\n\tbuild(client, options, state) {\n\t\tconst mutation = new Mutation({\n\t\t\tclient,\n\t\t\tmutationCache: this,\n\t\t\tmutationId: ++this.#mutationId,\n\t\t\toptions: client.defaultMutationOptions(options),\n\t\t\tstate\n\t\t});\n\t\tthis.add(mutation);\n\t\treturn mutation;\n\t}\n\t/**\n\t* Adds a mutation to the cache.\n\t* @internal\n\t* @param mutation - The mutation to add. If it has a `scope`, it is queued in that scope.\n\t*/\n\tadd(mutation) {\n\t\tthis.#mutations.add(mutation);\n\t\tconst scope = scopeFor(mutation);\n\t\tif (typeof scope === \"string\") {\n\t\t\tconst scopedMutations = this.#scopes.get(scope);\n\t\t\tif (scopedMutations) scopedMutations.push(mutation);\n\t\t\telse this.#scopes.set(scope, [mutation]);\n\t\t}\n\t\tthis.notify({\n\t\t\ttype: \"added\",\n\t\t\tmutation\n\t\t});\n\t}\n\t/**\n\t* Removes a mutation from the cache.\n\t* @internal\n\t* @param mutation - The mutation to remove, also from its scope's queue.\n\t*/\n\tremove(mutation) {\n\t\tif (this.#mutations.delete(mutation)) {\n\t\t\tconst scope = scopeFor(mutation);\n\t\t\tif (typeof scope === \"string\") {\n\t\t\t\tconst scopedMutations = this.#scopes.get(scope);\n\t\t\t\tif (scopedMutations) {\n\t\t\t\t\tif (scopedMutations.length > 1) {\n\t\t\t\t\t\tconst index = scopedMutations.indexOf(mutation);\n\t\t\t\t\t\tif (index !== -1) scopedMutations.splice(index, 1);\n\t\t\t\t\t} else if (scopedMutations[0] === mutation) this.#scopes.delete(scope);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.notify({\n\t\t\ttype: \"removed\",\n\t\t\tmutation\n\t\t});\n\t}\n\t/**\n\t* Checks whether a mutation can run now, given the other mutations in its `scope`.\n\t* @internal\n\t* @param mutation - The mutation to check.\n\t* @returns `true` if the mutation has no `scope`, or no other mutation in its scope is pending\n\t* ahead of it.\n\t*/\n\tcanRun(mutation) {\n\t\tconst scope = scopeFor(mutation);\n\t\tif (typeof scope === \"string\") {\n\t\t\tconst firstPendingMutation = this.#scopes.get(scope)?.find((m) => m.state.status === \"pending\");\n\t\t\treturn !firstPendingMutation || firstPendingMutation === mutation;\n\t\t} else return true;\n\t}\n\t/**\n\t* Continues the next paused mutation in the same `scope` after a mutation finishes.\n\t* @internal\n\t* @param mutation - The mutation that finished.\n\t* @returns A promise that resolves once the next paused mutation in the same scope has continued,\n\t* or immediately if there is none.\n\t*/\n\trunNext(mutation) {\n\t\tconst scope = scopeFor(mutation);\n\t\tif (typeof scope === \"string\") return (this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused))?.continue() ?? Promise.resolve();\n\t\telse return Promise.resolve();\n\t}\n\t/**\n\t* Removes all mutations from the cache.\n\t* @example\n\t* ```ts\n\t* const mutationCache = queryClient.getMutationCache()\n\t*\n\t* mutationCache.clear()\n\t* ```\n\t*/\n\tclear() {\n\t\tnotifyManager.batch(() => {\n\t\t\tconst mutations = this.getAll();\n\t\t\tthis.#mutations.clear();\n\t\t\tthis.#scopes.clear();\n\t\t\tmutations.forEach((mutation) => {\n\t\t\t\tthis.notify({\n\t\t\t\t\ttype: \"removed\",\n\t\t\t\t\tmutation\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\t/**\n\t* Returns all mutations within the cache.\n\t*\n\t* This is not typically needed for most applications, but can come in handy when needing more\n\t* information about a mutation in rare scenarios.\n\t* @returns Every mutation in the cache.\n\t* @example\n\t* ```ts\n\t* const mutationCache = queryClient.getMutationCache()\n\t*\n\t* const mutations = mutationCache.getAll()\n\t* ```\n\t*/\n\tgetAll() {\n\t\treturn Array.from(this.#mutations);\n\t}\n\t/**\n\t* A slightly more advanced method that can be used to get an existing mutation instance from\n\t* the cache. If the mutation does not exist, `undefined` is returned.\n\t*\n\t* This is not typically needed for most applications, but can come in handy when needing more\n\t* information about a mutation in rare scenarios.\n\t* @param filters - The filters to match. `exact` defaults to `true`.\n\t* @returns The first matching mutation, or `undefined`.\n\t* @see {@link MutationCache#findAll}\n\t* @example\n\t* ```ts\n\t* const mutationCache = queryClient.getMutationCache()\n\t*\n\t* const mutation = mutationCache.find({ mutationKey: ['addPost'] })\n\t* ```\n\t*/\n\tfind(filters) {\n\t\tconst defaultedFilters = {\n\t\t\texact: true,\n\t\t\t...filters\n\t\t};\n\t\treturn this.getAll().find((mutation) => matchMutation(defaultedFilters, mutation));\n\t}\n\t/**\n\t* An even more advanced method that can be used to get existing mutation instances from the\n\t* cache that match the given filters. If no mutations match, an empty array is returned.\n\t*\n\t* This is not typically needed for most applications, but can come in handy when needing more\n\t* information about mutations in rare scenarios.\n\t* @param filters - The filters to match. Without filters, every mutation is returned.\n\t* @returns The matching mutations.\n\t* @see {@link MutationCache#find}\n\t* @example\n\t* ```ts\n\t* const mutationCache = queryClient.getMutationCache()\n\t*\n\t* const mutations = mutationCache.findAll({ mutationKey: ['addPost'] })\n\t* ```\n\t*/\n\tfindAll(filters = {}) {\n\t\treturn this.getAll().filter((mutation) => matchMutation(filters, mutation));\n\t}\n\t/**\n\t* Notifies every cache listener of an event, in one batch.\n\t* @internal\n\t* @param event - The event passed to every listener.\n\t*/\n\tnotify(event) {\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\tlistener(event);\n\t\t\t});\n\t\t});\n\t}\n\t/**\n\t* Continues every paused mutation, e.g. when the app comes back online.\n\t* @internal\n\t* @returns A promise that resolves once every paused mutation has continued and settled.\n\t*/\n\tresumePausedMutations() {\n\t\tconst pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n\t\treturn notifyManager.batch(() => Promise.all(pausedMutations.map((mutation) => mutation.continue().catch(noop))));\n\t}\n};\n/**\n* Returns the scope id of a mutation, used to run mutations with the same scope one after another.\n* @param mutation - The mutation to read the scope of.\n* @returns The mutation's `scope.id`, or `undefined` if it has no scope.\n*/\nfunction scopeFor(mutation) {\n\treturn mutation.options.scope?.id;\n}\nexport { MutationCache };\n\n//# sourceMappingURL=mutationCache.js.map","import { hashKey, shallowEqualObjects } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { getDefaultState } from \"./mutation.js\";\n// src/mutationObserver.ts\n/**\n* Observes a single mutation and derives a `MutationObserverResult` from it.\n* A framework hook like `useMutation` creates one `MutationObserver` per hook\n* call, keeps it stable across re-renders, calls `setOptions` when the options\n* passed to the hook change, subscribes to it to re-render on updates, and\n* reads `getCurrentResult()` for the value to return. Calling `mutate()`\n* builds a new underlying `Mutation` in the `MutationCache` and executes it.\n* @example\n* ```ts\n* const observer = new MutationObserver(queryClient, {\n* mutationFn: (variables: { title: string }) => addPost(variables),\n* })\n* ```\n*/\nvar MutationObserver = class extends Subscribable {\n\t#client;\n\t#currentResult = void 0;\n\t#currentMutation;\n\t#mutateOptions;\n\tconstructor(client, options) {\n\t\tsuper();\n\t\tthis.#client = client;\n\t\tthis.setOptions(options);\n\t\tthis.bindMethods();\n\t\tthis.#updateResult();\n\t}\n\t/**\n\t* Binds the methods of the result (`mutate` and `reset`) to the observer, so they keep working when\n\t* destructured from it.\n\t*/\n\tbindMethods() {\n\t\tthis.mutate = this.mutate.bind(this);\n\t\tthis.reset = this.reset.bind(this);\n\t}\n\t/**\n\t* Updates the observer's options.\n\t*\n\t* If the new `mutationKey` differs from the previous one (and both were\n\t* defined), the observer is reset, detaching it from the mutation it was\n\t* observing. Otherwise, if the currently observed mutation is still\n\t* `pending`, its options are updated in place as well.\n\t* @param options - The new mutation observer options. They are defaulted with {@link\n\t* QueryClient#defaultMutationOptions} before being applied.\n\t* @example\n\t* ```ts\n\t* observer.setOptions({\n\t* mutationFn: (variables: { title: string }) => addPost(variables),\n\t* onSuccess: (data) => console.log(data),\n\t* })\n\t* ```\n\t*/\n\tsetOptions(options) {\n\t\tconst prevOptions = this.options;\n\t\tthis.options = this.#client.defaultMutationOptions(options);\n\t\tif (!shallowEqualObjects(this.options, prevOptions)) this.#client.getMutationCache().notify({\n\t\t\ttype: \"observerOptionsUpdated\",\n\t\t\tmutation: this.#currentMutation,\n\t\t\tobserver: this\n\t\t});\n\t\tif (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) this.reset();\n\t\telse if (this.#currentMutation?.state.status === \"pending\") this.#currentMutation.setOptions(this.options);\n\t}\n\tonSubscribe() {\n\t\tif (this.listeners.size === 1 && this.#currentMutation) {\n\t\t\tthis.#currentMutation.addObserver(this);\n\t\t\tthis.#updateResult();\n\t\t}\n\t}\n\tonUnsubscribe() {\n\t\tif (!this.hasListeners()) this.#currentMutation?.removeObserver(this);\n\t}\n\t/**\n\t* Updates the observer's result when the observed mutation changes, and notifies its listeners.\n\t* @internal\n\t* @param action - The action that updated the observed mutation, passed on to the observer's\n\t* callbacks.\n\t*/\n\tonMutationUpdate(action) {\n\t\tthis.#updateResult();\n\t\tthis.#notify(action);\n\t}\n\t/**\n\t* Returns the observer's current result, derived from the observed\n\t* mutation's state (or the default, `idle` state if no mutation has been\n\t* built yet, e.g. before the first `mutate()` call or after `reset()`).\n\t* @returns The observer's latest result.\n\t*/\n\tgetCurrentResult() {\n\t\treturn this.#currentResult;\n\t}\n\t/**\n\t* Detaches the observer from the mutation it is currently observing (if\n\t* any) and resets the observed result back to its default, `idle` state.\n\t*\n\t* This does not cancel an in-flight mutation; the mutation itself keeps\n\t* running to completion and its own callbacks still fire, but this\n\t* observer stops reflecting its state and a subsequent `mutate()` call\n\t* will build a brand new mutation.\n\t* @see {@link MutationObserver#mutate}\n\t* @example\n\t* ```ts\n\t* observer.reset()\n\t* ```\n\t*/\n\treset() {\n\t\tthis.#currentMutation?.removeObserver(this);\n\t\tthis.#currentMutation = void 0;\n\t\tthis.#updateResult();\n\t\tthis.#notify();\n\t}\n\t/**\n\t* Builds a new `Mutation` in the `MutationCache` using the observer's\n\t* current options, detaches this observer from any previously observed\n\t* mutation, attaches it to the new one, and executes it with the given\n\t* variables.\n\t*\n\t* The optional per-call `options` (`onSuccess`/`onError`/`onSettled`) are\n\t* invoked once the mutation settles, in addition to any callbacks defined\n\t* on the observer's own options.\n\t* @param variables - The variables passed to the `mutationFn`.\n\t* @param options - Per-call `onSuccess`, `onError`, and `onSettled` callbacks.\n\t* @returns A promise that resolves with the mutation's data, or rejects with its error.\n\t* @example\n\t* ```ts\n\t* await observer.mutate(\n\t* { title: 'New post' },\n\t* { onSuccess: (data) => console.log(data) },\n\t* )\n\t* ```\n\t*/\n\tmutate(variables, options) {\n\t\tthis.#mutateOptions = options;\n\t\tthis.#currentMutation?.removeObserver(this);\n\t\tthis.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n\t\tthis.#currentMutation.addObserver(this);\n\t\treturn this.#currentMutation.execute(variables);\n\t}\n\t#updateResult() {\n\t\tconst state = this.#currentMutation?.state ?? getDefaultState();\n\t\tthis.#currentResult = {\n\t\t\t...state,\n\t\t\tisPending: state.status === \"pending\",\n\t\t\tisSuccess: state.status === \"success\",\n\t\t\tisError: state.status === \"error\",\n\t\t\tisIdle: state.status === \"idle\",\n\t\t\tmutate: this.mutate,\n\t\t\treset: this.reset\n\t\t};\n\t}\n\t#notify(action) {\n\t\tnotifyManager.batch(() => {\n\t\t\tconst mutateOptions = this.#mutateOptions;\n\t\t\tif (mutateOptions && this.hasListeners()) {\n\t\t\t\tconst variables = this.#currentResult.variables;\n\t\t\t\tconst onMutateResult = this.#currentResult.context;\n\t\t\t\tconst context = {\n\t\t\t\t\tclient: this.#client,\n\t\t\t\t\tmeta: this.options.meta,\n\t\t\t\t\tmutationKey: this.options.mutationKey\n\t\t\t\t};\n\t\t\t\tif (action?.type === \"success\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tmutateOptions.onSuccess?.(action.data, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tmutateOptions.onSettled?.(action.data, null, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t} else if (action?.type === \"error\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tmutateOptions.onError?.(action.error, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tmutateOptions.onSettled?.(void 0, action.error, variables, onMutateResult, context);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tPromise.reject(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\tlistener(this.#currentResult);\n\t\t\t});\n\t\t});\n\t}\n};\nexport { MutationObserver };\n\n//# sourceMappingURL=mutationObserver.js.map","import { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Query } from \"./query.js\";\n// src/queryCache.ts\n/**\n* The `QueryCache` is the storage mechanism for TanStack Query. It stores all the data, meta\n* information, and state of the queries it contains.\n*\n* Normally, you will not interact with the `QueryCache` directly and instead use a `QueryClient`\n* for a specific cache. You can subscribe to it (inherited from `Subscribable`) to be informed of\n* safe/known updates to the cache, such as queries being added, removed, or updated — updates made\n* outside of the cache's own tracked mechanisms (e.g. mutating a query's state object directly) do\n* not notify subscribers.\n* @example\n* ```ts\n* const unsubscribe = queryCache.subscribe((event) => {\n* console.log(event.type, event.query)\n* })\n* ```\n*/\nvar QueryCache = class extends Subscribable {\n\t#queries;\n\tconstructor(config = {}) {\n\t\tsuper();\n\t\tthis.config = config;\n\t\tthis.#queries = /* @__PURE__ */ new Map();\n\t}\n\t/**\n\t* Returns the existing `Query` instance for the given options' `queryKey`/`queryHash`, or\n\t* builds and adds a new one to the cache if none exists yet. Used by framework adapters and\n\t* plugins (e.g. broadcast/persistence) that need to get-or-create a `Query` directly, bypassing\n\t* the reactive `QueryObserver` machinery.\n\t* @param client - The client the query belongs to, used to default its options.\n\t* @param options - The query options, including the `queryKey`. A new query is created with the\n\t* options defaulted by {@link QueryClient#defaultQueryOptions}.\n\t* @param state - The initial state of a newly created query, e.g. when hydrating. Ignored if the\n\t* query already exists.\n\t* @returns The existing or newly created query.\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t*\n\t* const query = queryCache.build(queryClient, {\n\t* queryKey: ['posts'],\n\t* queryFn: fetchPosts,\n\t* })\n\t* ```\n\t*/\n\tbuild(client, options, state) {\n\t\tconst queryKey = options.queryKey;\n\t\tconst queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n\t\tlet query = this.get(queryHash);\n\t\tif (!query) {\n\t\t\tquery = new Query({\n\t\t\t\tclient,\n\t\t\t\tqueryKey,\n\t\t\t\tqueryHash,\n\t\t\t\toptions: client.defaultQueryOptions(options),\n\t\t\t\tstate,\n\t\t\t\tdefaultOptions: client.getQueryDefaults(queryKey)\n\t\t\t});\n\t\t\tthis.add(query);\n\t\t}\n\t\treturn query;\n\t}\n\t/**\n\t* Adds a query to the cache.\n\t* @internal\n\t* @param query - The query to add. If a query with the same hash is already cached, nothing\n\t* happens.\n\t*/\n\tadd(query) {\n\t\tif (!this.#queries.has(query.queryHash)) {\n\t\t\tthis.#queries.set(query.queryHash, query);\n\t\t\tthis.notify({\n\t\t\t\ttype: \"added\",\n\t\t\t\tquery\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* Destroys the given `Query` and removes it from the cache, notifying subscribers with a\n\t* `'removed'` event. A no-op if the query is no longer the one currently stored under its hash\n\t* (e.g. it was already replaced). Used by plugins (e.g. the broadcast client) that mirror\n\t* removals across `QueryCache` instances.\n\t* @param query - The query to remove.\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t* const query = queryCache.find({ queryKey: ['posts'] })\n\t*\n\t* if (query) {\n\t* queryCache.remove(query)\n\t* }\n\t* ```\n\t*/\n\tremove(query) {\n\t\tif (this.#queries.get(query.queryHash) === query) {\n\t\t\tquery.destroy();\n\t\t\tthis.#queries.delete(query.queryHash);\n\t\t\tthis.notify({\n\t\t\t\ttype: \"removed\",\n\t\t\t\tquery\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* Removes all queries from the cache.\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t*\n\t* queryCache.clear()\n\t* ```\n\t*/\n\tclear() {\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.getAll().forEach((query) => {\n\t\t\t\tthis.remove(query);\n\t\t\t});\n\t\t});\n\t}\n\t/**\n\t* Returns the `Query` instance stored under the given `queryHash`, or `undefined` if none\n\t* exists. Unlike {@link QueryCache#find}, this looks up by the already-computed hash rather\n\t* than by `QueryFilters`. Used by plugins (e.g. broadcast/hydration) that already have a hash\n\t* to look up directly.\n\t* @param queryHash - The hash of the query to look up.\n\t* @returns The query stored under the hash, or `undefined`.\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t* const queryHash = hashKey(['posts'])\n\t*\n\t* const query = queryCache.get(queryHash)\n\t* ```\n\t*/\n\tget(queryHash) {\n\t\treturn this.#queries.get(queryHash);\n\t}\n\t/**\n\t* Returns all queries within the cache.\n\t* @returns Every query in the cache.\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t*\n\t* const queries = queryCache.getAll()\n\t* ```\n\t*/\n\tgetAll() {\n\t\treturn [...this.#queries.values()];\n\t}\n\t/**\n\t* A slightly more advanced method that can be used to get an existing query instance from the\n\t* cache. This instance not only contains all the state for the query, but all of the instances,\n\t* and underlying guts of the query as well. If the query does not exist, `undefined` is\n\t* returned.\n\t*\n\t* This is not typically needed for most applications, but can come in handy when needing more\n\t* information about a query in rare scenarios (e.g. looking at `query.state.dataUpdatedAt` to\n\t* decide whether a query is fresh enough to be used as an initial value).\n\t* @param filters - The filters to match, including the required `queryKey`. `exact` defaults to\n\t* `true`.\n\t* @returns The first matching query, or `undefined`.\n\t* @see {@link QueryCache#findAll}\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t*\n\t* const query = queryCache.find({ queryKey: ['posts'] })\n\t* ```\n\t*/\n\tfind(filters) {\n\t\tconst defaultedFilters = {\n\t\t\texact: true,\n\t\t\t...filters\n\t\t};\n\t\treturn this.getAll().find((query) => matchQuery(defaultedFilters, query));\n\t}\n\t/**\n\t* An even more advanced method that can be used to get existing query instances from the cache\n\t* that partially match a query key. If no queries match, an empty array is returned.\n\t*\n\t* This is not typically needed for most applications, but can come in handy when needing more\n\t* information about queries in rare scenarios.\n\t* @param filters - The filters to match. Without filters, every query is returned.\n\t* @returns The matching queries.\n\t* @see {@link QueryCache#find}\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t*\n\t* const queries = queryCache.findAll({ queryKey: ['posts'] })\n\t* ```\n\t*/\n\tfindAll(filters = {}) {\n\t\tconst queries = this.getAll();\n\t\treturn Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n\t}\n\t/**\n\t* Notifies every cache listener of an event, in one batch.\n\t* @internal\n\t* @param event - The event passed to every listener.\n\t*/\n\tnotify(event) {\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\tlistener(event);\n\t\t\t});\n\t\t});\n\t}\n\t/**\n\t* Calls {@link Query#onFocus} on every cached query, in one batch.\n\t* @internal\n\t*/\n\tonFocus() {\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.getAll().forEach((query) => {\n\t\t\t\tquery.onFocus();\n\t\t\t});\n\t\t});\n\t}\n\t/**\n\t* Calls {@link Query#onOnline} on every cached query, in one batch.\n\t* @internal\n\t*/\n\tonOnline() {\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.getAll().forEach((query) => {\n\t\t\t\tquery.onOnline();\n\t\t\t});\n\t\t});\n\t}\n};\nexport { QueryCache };\n\n//# sourceMappingURL=queryCache.js.map","import { functionalUpdate, hashKey, hashQueryKeyByOptions, noop, partialMatchKey, resolveQueryValue, skipToken } from \"./utils.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { QueryCache } from \"./queryCache.js\";\n// src/queryClient.ts\n/**\n* `QueryClient` is used to interact with a cache of queries and mutations. It owns a\n* `QueryCache` and a `MutationCache` (creating default ones if none are passed in) and holds\n* the default options that are applied to queries and mutations created through it.\n* @example\n* ```ts\n* const queryClient = new QueryClient({\n* defaultOptions: {\n* queries: {\n* staleTime: Infinity,\n* },\n* },\n* })\n*\n* await queryClient.query({ queryKey: ['posts'], queryFn: fetchPosts })\n* ```\n*/\nvar QueryClient = class {\n\t#queryCache;\n\t#mutationCache;\n\t#defaultOptions;\n\t#queryDefaults;\n\t#mutationDefaults;\n\t#mountCount;\n\t#unsubscribeFocus;\n\t#unsubscribeOnline;\n\tconstructor(config = {}) {\n\t\tthis.#queryCache = config.queryCache || new QueryCache();\n\t\tthis.#mutationCache = config.mutationCache || new MutationCache();\n\t\tthis.#defaultOptions = config.defaultOptions || {};\n\t\tthis.#queryDefaults = /* @__PURE__ */ new Map();\n\t\tthis.#mutationDefaults = /* @__PURE__ */ new Map();\n\t\tthis.#mountCount = 0;\n\t}\n\t/**\n\t* Called by a framework adapter's `QueryClientProvider`-equivalent when it mounts, to start\n\t* listening for focus/online events and resume paused mutations. Ref-counted via an internal\n\t* mount count, so nested or multiple providers sharing the same `QueryClient` don't tear down\n\t* the shared listeners until the last one unmounts.\n\t*/\n\tmount() {\n\t\tthis.#mountCount++;\n\t\tif (this.#mountCount !== 1) return;\n\t\tthis.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n\t\t\tif (focused) {\n\t\t\t\tawait this.resumePausedMutations();\n\t\t\t\tthis.#queryCache.onFocus();\n\t\t\t}\n\t\t});\n\t\tthis.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n\t\t\tif (online) {\n\t\t\t\tawait this.resumePausedMutations();\n\t\t\t\tthis.#queryCache.onOnline();\n\t\t\t}\n\t\t});\n\t}\n\t/**\n\t* The inverse of {@link QueryClient#mount} — called by a framework adapter's\n\t* `QueryClientProvider`-equivalent when it unmounts. Only tears down the focus/online\n\t* listeners once the mount count returns to `0`.\n\t*/\n\tunmount() {\n\t\tthis.#mountCount--;\n\t\tif (this.#mountCount !== 0) return;\n\t\tthis.#unsubscribeFocus?.();\n\t\tthis.#unsubscribeFocus = void 0;\n\t\tthis.#unsubscribeOnline?.();\n\t\tthis.#unsubscribeOnline = void 0;\n\t}\n\t/**\n\t* Returns the number of queries in the cache that are currently fetching, optionally\n\t* matching a set of filters. This includes background-fetching, loading new pages, and\n\t* loading more infinite query results.\n\t* @param filters - Narrows down which fetching queries are counted. Without filters, every\n\t* fetching query is counted.\n\t* @returns The number of matching queries whose `fetchStatus` is `'fetching'`.\n\t* @example\n\t* ```ts\n\t* if (queryClient.isFetching()) {\n\t* console.log('At least one query is fetching!')\n\t* }\n\t* ```\n\t*/\n\tisFetching(filters) {\n\t\treturn this.#queryCache.findAll({\n\t\t\t...filters,\n\t\t\tfetchStatus: \"fetching\"\n\t\t}).length;\n\t}\n\t/**\n\t* Returns the number of mutations in the cache that are currently pending, optionally\n\t* matching a set of filters.\n\t* @param filters - Narrows down which pending mutations are counted. Without filters, every\n\t* pending mutation is counted.\n\t* @returns The number of matching mutations whose `status` is `'pending'`.\n\t* @example\n\t* ```ts\n\t* if (queryClient.isMutating()) {\n\t* console.log('At least one mutation is pending!')\n\t* }\n\t* ```\n\t*/\n\tisMutating(filters) {\n\t\treturn this.#mutationCache.findAll({\n\t\t\t...filters,\n\t\t\tstatus: \"pending\"\n\t\t}).length;\n\t}\n\t/**\n\t* Imperative (non-reactive) way to retrieve data for a QueryKey.\n\t* Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n\t*\n\t* Hint: Do not use this function inside a component, because it won't receive updates.\n\t* Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n\t* @param queryKey - The query key of the query to read.\n\t* @returns The cached data for the query, or `undefined` if no query with this key has been observed yet.\n\t* @see {@link QueryClient#getQueriesData}\n\t*/\n\tgetQueryData(queryKey) {\n\t\tconst options = this.defaultQueryOptions({ queryKey });\n\t\treturn this.#queryCache.get(options.queryHash)?.state.data;\n\t}\n\t/**\n\t* Returns the cached data of a query, or fetches it if there is none. With `revalidateIfStale`,\n\t* stale cached data is also refetched in the background.\n\t* @param options - The query options. If the query has no cached data yet, it is fetched with\n\t* these options.\n\t* @returns A promise that resolves to the cached data, or to the fetched data if nothing was\n\t* cached yet.\n\t* @deprecated Use queryClient.query({ ...options, staleTime: 'static' }) instead. This method will be removed in the next major version.\n\t*/\n\tensureQueryData(options) {\n\t\tconst defaultedOptions = this.defaultQueryOptions(options);\n\t\tconst query = this.#queryCache.build(this, defaultedOptions);\n\t\tconst cachedData = query.state.data;\n\t\tif (cachedData === void 0) return this.fetchQuery(options);\n\t\tif (options.revalidateIfStale && query.isStaleByTime(resolveQueryValue(defaultedOptions.staleTime, query))) this.prefetchQuery(defaultedOptions);\n\t\treturn Promise.resolve(cachedData);\n\t}\n\t/**\n\t* Imperative (non-reactive) way to retrieve the cached data of multiple queries at once.\n\t* Only queries matching the given filters are returned; if none match, an empty array is\n\t* returned.\n\t*\n\t* Because the matched queries can hold data of different shapes (e.g. a broad filter can match\n\t* queries with unrelated data types), the `TQueryFnData` generic defaults to `unknown` rather\n\t* than being inferred. Passing a more specific type is a convenience for call sites that know\n\t* every matched query holds the same shape — it is not checked against the actual cache\n\t* contents.\n\t* @param filters - The filters that select which queries to read.\n\t* @returns An array of query key and data pairs. The data is `undefined` for a query with no cached data.\n\t* @see {@link QueryClient#getQueryData}\n\t* @example\n\t* ```ts\n\t* const data = queryClient.getQueriesData({ queryKey: ['posts'] })\n\t* ```\n\t*/\n\tgetQueriesData(filters) {\n\t\treturn this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n\t\t\treturn [queryKey, state.data];\n\t\t});\n\t}\n\t/**\n\t* Synchronous way to immediately update a query's cached data. If the updater (or the value\n\t* passed) resolves to `undefined`, the cache is left untouched and no query is created;\n\t* otherwise, if the query does not exist yet, it will be created. To update multiple queries\n\t* at once by partially matching query keys, use {@link QueryClient#setQueriesData} instead.\n\t*\n\t* Updates must be performed immutably: do not mutate `oldData`, or data previously retrieved\n\t* via {@link QueryClient#getQueryData}, in place.\n\t* @param queryKey - The query key to set data for.\n\t* @param updater - Either the new data, or a function that receives the current data (which\n\t* may be `undefined`) and returns the new data.\n\t* @param options - Set `updatedAt` to override the timestamp the written data is recorded with.\n\t* @returns The data that was written, or `undefined` if the updater returned `undefined` — in that case\n\t* the write is skipped and the cache is left unchanged.\n\t* @example\n\t* ```ts\n\t* queryClient.setQueryData(['posts'], newPosts)\n\t*\n\t* // Or, using an updater function that receives the current data:\n\t* queryClient.setQueryData(['posts'], (oldPosts) => [...oldPosts, newPost])\n\t* ```\n\t*/\n\tsetQueryData(queryKey, updater, options) {\n\t\tconst defaultedOptions = this.defaultQueryOptions({ queryKey });\n\t\tconst prevData = this.#queryCache.get(defaultedOptions.queryHash)?.state.data;\n\t\tconst data = functionalUpdate(updater, prevData);\n\t\tif (data === void 0) return;\n\t\treturn this.#queryCache.build(this, defaultedOptions).setData(data, {\n\t\t\t...options,\n\t\t\tmanual: true\n\t\t});\n\t}\n\t/**\n\t* Synchronous way to immediately update the cached data of multiple queries at once, using\n\t* filters or partial query key matching. Only queries that already exist and match the given\n\t* filters are updated; no new cache entries are created. Internally this calls\n\t* {@link QueryClient#setQueryData} for each matching query.\n\t* @param filters - The filters that select which existing queries to update.\n\t* @param updater - Either the new data, or a function that receives each matched query's current\n\t* data (which may be `undefined`) and returns the new data.\n\t* @param options - Set `updatedAt` to override the timestamp the written data is recorded with.\n\t* @returns One `[queryKey, data]` tuple per matched query, in the same shape and with the same\n\t* `undefined` case as {@link QueryClient#setQueryData}.\n\t* @example\n\t* ```ts\n\t* queryClient.setQueriesData({ queryKey: ['posts'] }, (oldPosts) =>\n\t* oldPosts ? oldPosts.filter((post) => post.id !== deletedId) : oldPosts,\n\t* )\n\t* ```\n\t*/\n\tsetQueriesData(filters, updater, options) {\n\t\treturn notifyManager.batch(() => this.#queryCache.findAll(filters).map(({ queryKey }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n\t}\n\t/**\n\t* Imperative (non-reactive) way to retrieve an existing query's state. If the query does not\n\t* exist, `undefined` is returned.\n\t* @param queryKey - The query key of the query to read.\n\t* @returns The query's state, or `undefined` if no query with this key exists.\n\t* @example\n\t* ```ts\n\t* const state = queryClient.getQueryState(['posts'])\n\t* console.log(state?.dataUpdatedAt)\n\t* ```\n\t*/\n\tgetQueryState(queryKey) {\n\t\tconst options = this.defaultQueryOptions({ queryKey });\n\t\treturn this.#queryCache.get(options.queryHash)?.state;\n\t}\n\t/**\n\t* Removes queries from the cache that match the given filters. Unlike\n\t* {@link QueryClient#invalidateQueries} or {@link QueryClient#refetchQueries}, this removes\n\t* matching queries from the cache instead of refetching them. Without filters, every query in\n\t* the cache is removed.\n\t* @param filters - The filters that select which queries to remove. Without filters, every query\n\t* is removed.\n\t* @example\n\t* ```ts\n\t* queryClient.removeQueries({ queryKey: ['posts'], exact: true })\n\t* ```\n\t*/\n\tremoveQueries(filters) {\n\t\tconst queryCache = this.#queryCache;\n\t\tnotifyManager.batch(() => {\n\t\t\tqueryCache.findAll(filters).forEach((query) => {\n\t\t\t\tqueryCache.remove(query);\n\t\t\t});\n\t\t});\n\t}\n\t/**\n\t* Resets queries matching the given filters back to their initial state (e.g. any\n\t* `initialData`), notifying subscribers rather than removing them. Active queries among the\n\t* matched set are then refetched, and the returned promise resolves once that refetch settles.\n\t* @param filters - The filters that select which queries to reset. Without filters, every query\n\t* is reset.\n\t* @param options - Passed to the refetch of the active matched queries, e.g. `cancelRefetch` and\n\t* `throwOnError`.\n\t* @returns A promise that resolves once the refetch of the active matched queries settles.\n\t* @example\n\t* ```ts\n\t* await queryClient.resetQueries({ queryKey: ['posts'], exact: true })\n\t* ```\n\t*/\n\tresetQueries(filters, options) {\n\t\tconst queryCache = this.#queryCache;\n\t\treturn notifyManager.batch(() => {\n\t\t\tconst matched = queryCache.findAll(filters);\n\t\t\tconst queriesToRefetch = new Set(matched);\n\t\t\tmatched.forEach((query) => {\n\t\t\t\tquery.reset();\n\t\t\t});\n\t\t\treturn this.refetchQueries({\n\t\t\t\ttype: \"active\",\n\t\t\t\tpredicate: (query) => queriesToRefetch.has(query)\n\t\t\t}, options);\n\t\t});\n\t}\n\t/**\n\t* Cancels outgoing fetches for queries matching the given filters. Most useful when performing\n\t* optimistic updates, since any outgoing refetch that resolves afterwards would otherwise\n\t* overwrite the optimistic update. By default (`revert: true`), a cancelled query's data is\n\t* reverted to its state before the outgoing fetch started.\n\t*\n\t* The returned promise never rejects, even if individual cancellations fail.\n\t* @param filters - The filters that select which queries to cancel. Without filters, every query\n\t* is cancelled.\n\t* @param cancelOptions - Passed to each matched query's cancellation. `revert` defaults to\n\t* `true`.\n\t* @returns A promise that resolves once every cancellation has settled.\n\t* @example\n\t* ```ts\n\t* await queryClient.cancelQueries({ queryKey: ['posts'], exact: true })\n\t* ```\n\t*/\n\tcancelQueries(filters, cancelOptions = {}) {\n\t\tconst defaultedCancelOptions = {\n\t\t\trevert: true,\n\t\t\t...cancelOptions\n\t\t};\n\t\tconst promises = notifyManager.batch(() => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions)));\n\t\treturn Promise.all(promises).then(noop).catch(noop);\n\t}\n\t/**\n\t* Marks queries matching the given filters as invalidated. Unlike\n\t* {@link QueryClient#removeQueries}, invalidated queries stay in the cache.\n\t*\n\t* Unless `filters.refetchType` is `'none'`, matching queries are then refetched via\n\t* {@link QueryClient#refetchQueries}, using `filters.refetchType` if set, otherwise\n\t* `filters.type`, otherwise `'active'`.\n\t* @param filters - The filters that select which queries to invalidate, plus `refetchType` to\n\t* control which of them to refetch afterwards. Without filters, every query is invalidated.\n\t* @param options - Passed to {@link QueryClient#refetchQueries}, e.g. `cancelRefetch` and\n\t* `throwOnError`.\n\t* @returns A promise that resolves once the refetch settles, or immediately if `refetchType` is\n\t* `'none'`.\n\t* @example\n\t* ```ts\n\t* await queryClient.invalidateQueries({ queryKey: ['posts'], refetchType: 'active' })\n\t* ```\n\t*/\n\tinvalidateQueries(filters, options = {}) {\n\t\treturn notifyManager.batch(() => {\n\t\t\tthis.#queryCache.findAll(filters).forEach((query) => {\n\t\t\t\tquery.invalidate();\n\t\t\t});\n\t\t\tif (filters?.refetchType === \"none\") return Promise.resolve();\n\t\t\treturn this.refetchQueries({\n\t\t\t\t...filters,\n\t\t\t\ttype: filters?.refetchType ?? filters?.type ?? \"active\"\n\t\t\t}, options);\n\t\t});\n\t}\n\t/**\n\t* Refetches queries matching the given filters, regardless of whether they are stale. Without\n\t* filters, every query in the cache is refetched. Queries that are disabled, or static (only\n\t* have observers with a static `staleTime`), are never refetched.\n\t*\n\t* By default (`cancelRefetch: true`), a currently running fetch is cancelled before the new\n\t* one starts. The returned promise does not reject on individual query failures unless\n\t* `throwOnError` is `true`.\n\t*\n\t* Initially paused fetches do not delay the returned promise. Their later errors are handled\n\t* even when `throwOnError` is `true`.\n\t* @param filters - The filters that select which queries to refetch. Without filters, every query\n\t* in the cache is included.\n\t* @param options - Set `cancelRefetch` to `false` to keep a running fetch instead of cancelling\n\t* it, and `throwOnError` to `true` to reject when a refetch that was not initially paused fails.\n\t* @returns A promise that resolves once all matching refetches that were not initially paused\n\t* have settled.\n\t* @example\n\t* ```ts\n\t* // refetch all active queries partially matching a query key:\n\t* await queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })\n\t* ```\n\t*/\n\trefetchQueries(filters, options = {}) {\n\t\tconst fetchOptions = {\n\t\t\t...options,\n\t\t\tcancelRefetch: options.cancelRefetch ?? true\n\t\t};\n\t\tconst promises = notifyManager.batch(() => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {\n\t\t\tlet promise = query.fetch(void 0, fetchOptions);\n\t\t\tconst isPaused = query.state.fetchStatus === \"paused\";\n\t\t\tif (!fetchOptions.throwOnError || isPaused) promise = promise.catch(noop);\n\t\t\treturn isPaused ? Promise.resolve() : promise;\n\t\t}));\n\t\treturn Promise.all(promises).then(noop);\n\t}\n\t/**\n\t* Asynchronous method to fetch and cache a query, resolving with the data or throwing with\n\t* the error.\n\t*\n\t* If the query already exists in the cache and its data is not stale (per the given\n\t* `staleTime`), the cached data is returned without fetching. Otherwise, the query is fetched\n\t* and the promise resolves once the fetch settles. If a `select` function is provided, it is\n\t* applied to the data in both cases (cached or freshly fetched) before it is returned.\n\t*\n\t* Unlike a reactive observer, retries are disabled by default here (`retry: false`) unless\n\t* explicitly configured, since there is no component to catch a thrown error and retry through\n\t* re-render.\n\t*\n\t* The accepted options are `QueryObserverOptions` minus the fields that only make sense for a\n\t* reactive observer — `enabled`, `refetchInterval`, `refetchIntervalInBackground`,\n\t* `refetchOnWindowFocus`, `refetchOnReconnect`, `refetchOnMount`, `retryOnMount`,\n\t* `notifyOnChangeProps`, `throwOnError`, `suspense`, and `placeholderData` are not part of this\n\t* method's options.\n\t*\n\t* This method replaces the deprecated `fetchQuery`, and — combined with\n\t* `{ staleTime: 'static' }` — the deprecated `ensureQueryData`.\n\t* @param options - The query options, including the `queryKey` and the `queryFn` used if the\n\t* query needs to fetch.\n\t* @returns A promise that resolves to the data, or to the result of `select` if provided. It\n\t* rejects with the error from the fetch or from `select`.\n\t* @example\n\t* ```ts\n\t* try {\n\t* const data = await queryClient.query({ queryKey, queryFn, staleTime: 10000 })\n\t* } catch (error) {\n\t* console.log(error)\n\t* }\n\t* ```\n\t*/\n\tasync query(options) {\n\t\tconst defaultedOptions = this.defaultQueryOptions(options);\n\t\tif (defaultedOptions.retry === void 0) defaultedOptions.retry = false;\n\t\tconst query = this.#queryCache.build(this, defaultedOptions);\n\t\tconst queryData = query.isStaleByTime(resolveQueryValue(defaultedOptions.staleTime, query)) ? await query.fetch(defaultedOptions) : query.state.data;\n\t\tconst select = defaultedOptions.select;\n\t\tif (select) return select(queryData);\n\t\treturn queryData;\n\t}\n\t/**\n\t* Fetches and caches a query, or returns its cached data if it isn't stale. Unlike in observers,\n\t* the fetch isn't retried unless `retry` is set.\n\t* @param options - The query options, including the `queryKey` and the `queryFn` used if the\n\t* query needs to fetch.\n\t* @returns A promise that resolves to the cached or fetched data, or rejects with the fetch\n\t* error.\n\t* @deprecated Use queryClient.query(options) instead. This method will be removed in the next major version.\n\t*/\n\tfetchQuery(options) {\n\t\tconst defaultedOptions = this.defaultQueryOptions(options);\n\t\tif (defaultedOptions.retry === void 0) defaultedOptions.retry = false;\n\t\tconst query = this.#queryCache.build(this, defaultedOptions);\n\t\treturn query.isStaleByTime(resolveQueryValue(defaultedOptions.staleTime, query)) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n\t}\n\t/**\n\t* Fetches and caches a query like {@link QueryClient#fetchQuery}, but ignores the result and any\n\t* error.\n\t* @param options - The query options, including the `queryKey` and the `queryFn` used if the\n\t* query needs to fetch.\n\t* @returns A promise that resolves once the fetch settles. It never rejects.\n\t* @deprecated Use queryClient.query(options) instead. You can swallow errors with `.catch(noop)`. This method will be removed in the next major version.\n\t*/\n\tprefetchQuery(options) {\n\t\treturn this.fetchQuery(options).then(noop).catch(noop);\n\t}\n\t/**\n\t* Asynchronous method to fetch and cache an infinite query, resolving with an\n\t* {@link InfiniteData} object or throwing with the error.\n\t*\n\t* Behaves like {@link QueryClient#query}, accepting the same options (minus\n\t* `initialPageParam`), plus the required `initialPageParam`, and an optional `pages` /\n\t* `getNextPageParam` pair used to refetch a fixed number of pages from the start.\n\t*\n\t* This method replaces the deprecated `fetchInfiniteQuery`, and — combined with\n\t* `{ staleTime: 'static' }` — the deprecated `ensureInfiniteQueryData`.\n\t* @param options - The infinite query options, including the `queryKey`, the `queryFn`, and the\n\t* `initialPageParam`.\n\t* @returns A promise that resolves to the {@link InfiniteData}, or to the result of `select` if\n\t* provided. It rejects with the error from the fetch or from `select`.\n\t* @example\n\t* ```ts\n\t* try {\n\t* const data = await queryClient.infiniteQuery({ queryKey, queryFn, initialPageParam: 0 })\n\t* console.log(data.pages)\n\t* } catch (error) {\n\t* console.log(error)\n\t* }\n\t* ```\n\t*/\n\tinfiniteQuery(options) {\n\t\toptions._type = \"infinite\";\n\t\treturn this.query(options);\n\t}\n\t/**\n\t* Fetches and caches an infinite query, or returns its cached data if it isn't stale.\n\t* @param options - The infinite query options, including the `queryKey`, the `queryFn`, and the\n\t* `initialPageParam`.\n\t* @returns A promise that resolves to the cached or fetched {@link InfiniteData}, or rejects with\n\t* the fetch error.\n\t* @deprecated Use queryClient.infiniteQuery(options) instead. This method will be removed in the next major version.\n\t*/\n\tfetchInfiniteQuery(options) {\n\t\toptions._type = \"infinite\";\n\t\treturn this.fetchQuery(options);\n\t}\n\t/**\n\t* Fetches and caches an infinite query like {@link QueryClient#fetchInfiniteQuery}, but ignores\n\t* the result and any error.\n\t* @param options - The infinite query options, including the `queryKey`, the `queryFn`, and the\n\t* `initialPageParam`.\n\t* @returns A promise that resolves once the fetch settles. It never rejects.\n\t* @deprecated Use queryClient.infiniteQuery(options) instead. You can swallow errors with `.catch(noop)`. This method will be removed in the next major version.\n\t*/\n\tprefetchInfiniteQuery(options) {\n\t\treturn this.fetchInfiniteQuery(options).then(noop).catch(noop);\n\t}\n\t/**\n\t* Returns the cached data of an infinite query, or fetches it if there is none. With\n\t* `revalidateIfStale`, stale cached data is also refetched in the background.\n\t* @param options - The infinite query options. If the query has no cached data yet, it is fetched\n\t* with these options.\n\t* @returns A promise that resolves to the cached {@link InfiniteData}, or to the fetched data if\n\t* nothing was cached yet.\n\t* @deprecated Use queryClient.infiniteQuery({ ...options, staleTime: 'static' }) instead. This method will be removed in the next major version.\n\t*/\n\tensureInfiniteQueryData(options) {\n\t\toptions._type = \"infinite\";\n\t\treturn this.ensureQueryData(options);\n\t}\n\t/**\n\t* Resumes mutations that were paused because there was no network connection. Does nothing\n\t* (resolving immediately) if the client is currently offline.\n\t* @returns A promise that resolves once the resumed mutations have settled.\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* await queryClient.resumePausedMutations()\n\t* ```\n\t*/\n\tresumePausedMutations() {\n\t\tif (onlineManager.isOnline()) return this.#mutationCache.resumePausedMutations();\n\t\treturn Promise.resolve();\n\t}\n\t/**\n\t* Returns the query cache this client is connected to.\n\t* @returns The {@link QueryCache} instance.\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* const queryCache = queryClient.getQueryCache()\n\t* const queries = queryCache.findAll({ queryKey: ['posts'] })\n\t* ```\n\t*/\n\tgetQueryCache() {\n\t\treturn this.#queryCache;\n\t}\n\t/**\n\t* Returns the mutation cache this client is connected to.\n\t* @returns The {@link MutationCache} instance.\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* const mutationCache = queryClient.getMutationCache()\n\t* const mutations = mutationCache.findAll({ status: 'pending' })\n\t* ```\n\t*/\n\tgetMutationCache() {\n\t\treturn this.#mutationCache;\n\t}\n\t/**\n\t* Returns the default options that were set when creating the client, or via\n\t* {@link QueryClient#setDefaultOptions}.\n\t* @returns The client's current default options.\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* const defaultOptions = queryClient.getDefaultOptions()\n\t* ```\n\t*/\n\tgetDefaultOptions() {\n\t\treturn this.#defaultOptions;\n\t}\n\t/**\n\t* Dynamically sets the default options for this client, overwriting any previously defined\n\t* default options.\n\t* @param options - The new default options for queries and mutations.\n\t* @see {@link QueryClient#getDefaultOptions}\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* queryClient.setDefaultOptions({\n\t* queries: {\n\t* staleTime: Infinity,\n\t* },\n\t* })\n\t* ```\n\t*/\n\tsetDefaultOptions(options) {\n\t\tthis.#defaultOptions = options;\n\t}\n\t/**\n\t* Sets default options for queries whose query key partially matches the given `queryKey`.\n\t*\n\t* If several registered query defaults match a given query key, they are merged together in\n\t* registration order by {@link QueryClient#getQueryDefaults}, so register defaults from the\n\t* most generic key to the least generic one — more specific defaults should be registered\n\t* after more generic ones so they take precedence.\n\t* @param queryKey - The query key that query keys are partially matched against.\n\t* @param options - The default options applied to matching queries.\n\t* @example\n\t* ```ts\n\t* queryClient.setQueryDefaults(['posts'], { queryFn: fetchPosts })\n\t*\n\t* await queryClient.query({ queryKey: ['posts'] })\n\t* ```\n\t*/\n\tsetQueryDefaults(queryKey, options) {\n\t\tthis.#queryDefaults.set(hashKey(queryKey), {\n\t\t\tqueryKey,\n\t\t\tdefaultOptions: options\n\t\t});\n\t}\n\t/**\n\t* Returns the default options registered for queries whose query key partially matches the\n\t* given `queryKey`, via {@link QueryClient#setQueryDefaults}. If multiple registered defaults\n\t* match, they are merged together in registration order.\n\t* @param queryKey - The query key to look up registered defaults for.\n\t* @returns The merged default options of every registration that matches, or an empty object if\n\t* none match.\n\t* @example\n\t* ```ts\n\t* const defaultOptions = queryClient.getQueryDefaults(['posts'])\n\t* ```\n\t*/\n\tgetQueryDefaults(queryKey) {\n\t\tconst defaults = [...this.#queryDefaults.values()];\n\t\tconst result = {};\n\t\tdefaults.forEach((queryDefault) => {\n\t\t\tif (partialMatchKey(queryKey, queryDefault.queryKey)) Object.assign(result, queryDefault.defaultOptions);\n\t\t});\n\t\treturn result;\n\t}\n\t/**\n\t* Sets default options for mutations whose mutation key partially matches the given\n\t* `mutationKey`. As with {@link QueryClient#setQueryDefaults}, the order of registration\n\t* matters when several registered defaults match the same mutation key.\n\t* @param mutationKey - The mutation key that mutation keys are partially matched against.\n\t* @param options - The default options applied to matching mutations.\n\t* @see {@link QueryClient#getMutationDefaults}\n\t* @example\n\t* ```ts\n\t* queryClient.setMutationDefaults(['addPost'], { mutationFn: addPost })\n\t* ```\n\t*/\n\tsetMutationDefaults(mutationKey, options) {\n\t\tthis.#mutationDefaults.set(hashKey(mutationKey), {\n\t\t\tmutationKey,\n\t\t\tdefaultOptions: options\n\t\t});\n\t}\n\t/**\n\t* Returns the default options registered for mutations whose mutation key partially matches\n\t* the given `mutationKey`, via {@link QueryClient#setMutationDefaults}. If multiple registered\n\t* defaults match, they are merged together in registration order.\n\t* @param mutationKey - The mutation key to look up registered defaults for.\n\t* @returns The merged default options of every registration that matches, or an empty object if\n\t* none match.\n\t* @example\n\t* ```ts\n\t* const defaultOptions = queryClient.getMutationDefaults(['addPost'])\n\t* ```\n\t*/\n\tgetMutationDefaults(mutationKey) {\n\t\tconst defaults = [...this.#mutationDefaults.values()];\n\t\tconst result = {};\n\t\tdefaults.forEach((queryDefault) => {\n\t\t\tif (partialMatchKey(mutationKey, queryDefault.mutationKey)) Object.assign(result, queryDefault.defaultOptions);\n\t\t});\n\t\treturn result;\n\t}\n\t/**\n\t* Called by framework adapters (e.g. inside `useQuery`) to resolve the options passed by the\n\t* caller into their final, defaulted form: merging the client's own `defaultOptions.queries`,\n\t* then `queryClient.setQueryDefaults` for the given `queryKey`, then the caller's options on\n\t* top. A no-op if the options are already defaulted (`_defaulted: true`).\n\t* @param options - The query options passed by the caller.\n\t* @returns The defaulted options, with `queryHash` and dependent defaults (e.g.\n\t* `refetchOnReconnect`) filled in.\n\t*/\n\tdefaultQueryOptions(options) {\n\t\tif (options._defaulted) return options;\n\t\tconst defaultedOptions = {\n\t\t\t...this.#defaultOptions.queries,\n\t\t\t...this.getQueryDefaults(options.queryKey),\n\t\t\t...options,\n\t\t\t_defaulted: true\n\t\t};\n\t\tif (!defaultedOptions.queryHash) defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n\t\tif (defaultedOptions.refetchOnReconnect === void 0) defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n\t\tif (defaultedOptions.throwOnError === void 0) defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n\t\tif (!defaultedOptions.networkMode && defaultedOptions.persister) defaultedOptions.networkMode = \"offlineFirst\";\n\t\tif (defaultedOptions.queryFn === skipToken) defaultedOptions.enabled = false;\n\t\treturn defaultedOptions;\n\t}\n\t/**\n\t* The mutation counterpart of {@link QueryClient#defaultQueryOptions}. Called by framework\n\t* adapters (e.g. inside `useMutation`) to merge the client's `defaultOptions.mutations`, then\n\t* `queryClient.setMutationDefaults` for the given `mutationKey`, then the caller's options on\n\t* top. A no-op if the options are already defaulted (`_defaulted: true`).\n\t* @param options - The mutation options passed by the caller.\n\t* @returns The defaulted options.\n\t*/\n\tdefaultMutationOptions(options) {\n\t\tif (options?._defaulted) return options;\n\t\treturn {\n\t\t\t...this.#defaultOptions.mutations,\n\t\t\t...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n\t\t\t...options,\n\t\t\t_defaulted: true\n\t\t};\n\t}\n\t/**\n\t* Clears both the query cache and the mutation cache this client is connected to.\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* queryClient.clear()\n\t* ```\n\t*/\n\tclear() {\n\t\tthis.#queryCache.clear();\n\t\tthis.#mutationCache.clear();\n\t}\n};\nexport { QueryClient };\n\n//# sourceMappingURL=queryClient.js.map","\"use client\";\nimport * as React from \"react\";\n// src/IsRestoringProvider.ts\nconst IsRestoringContext = React.createContext(false);\n/**\n* If you are using `PersistQueryClientProvider`, you can also use the `useIsRestoring` hook alongside it to\n* check if a restore is currently in progress. `useQuery` and friends also check this internally to avoid\n* race conditions between the restore and mounting queries.\n* @returns `true` while a persisted client is being restored, `false` otherwise.\n*/\nconst useIsRestoring = () => React.useContext(IsRestoringContext);\n/**\n* The Provider that `PersistQueryClientProvider` uses to signal whether a persisted client is currently\n* being restored, read by `useIsRestoring`.\n*/\nconst IsRestoringProvider = IsRestoringContext.Provider;\nexport { IsRestoringProvider, useIsRestoring };\n\n//# sourceMappingURL=IsRestoringProvider.js.map","\"use client\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n// src/QueryErrorResetBoundary.tsx\n/**\n* Creates the value shared through the boundary's context, which tracks whether a reset was\n* requested.\n* @returns The `clearReset`, `isReset`, and `reset` functions of the boundary.\n*/\nfunction createValue() {\n\tlet isReset = false;\n\treturn {\n\t\t/**\n\t\t* Clears the reset state, so queries know not to try again until the boundary is reset again.\n\t\t*/\n\t\tclearReset: () => {\n\t\t\tisReset = false;\n\t\t},\n\t\t/**\n\t\t* Resets any query errors within the boundary, so queries know they can try again.\n\t\t*/\n\t\treset: () => {\n\t\t\tisReset = true;\n\t\t},\n\t\t/**\n\t\t* Returns whether the boundary has been reset and not yet cleared.\n\t\t* @returns `true` if the boundary has been reset and not yet cleared.\n\t\t*/\n\t\tisReset: () => {\n\t\t\treturn isReset;\n\t\t}\n\t};\n}\nconst QueryErrorResetBoundaryContext = React.createContext(createValue());\n/**\n* This hook will reset any query errors within the closest `QueryErrorResetBoundary`. If there is no boundary\n* defined it will reset them globally.\n* @returns The boundary's {@link QueryErrorResetBoundaryValue}.\n* @example\n* ```tsx\n* import { ErrorBoundary } from 'react-error-boundary'\n* import { useQueryErrorResetBoundary } from '@tanstack/react-query'\n*\n* function App({ children }: { children: React.ReactNode }) {\n* const { reset } = useQueryErrorResetBoundary()\n*\n* return (\n* <ErrorBoundary\n* onReset={reset}\n* fallbackRender={({ resetErrorBoundary }) => (\n* <div>\n* There was an error!\n* <button onClick={() => resetErrorBoundary()}>Try again</button>\n* </div>\n* )}\n* >\n* {children}\n* </ErrorBoundary>\n* )\n* }\n* ```\n*/\nconst useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\n/**\n* When using `suspense` or `throwOnError` in your queries, you need a way to let queries know that you want to\n* try again when re-rendering after some error occurred. With the `QueryErrorResetBoundary` component you can\n* reset any query errors within the boundaries of the component.\n* @param props - The `children` to render.\n* @returns The `children`, rendered as-is, or called with the boundary's {@link QueryErrorResetBoundaryValue}\n* if `children` is a function.\n* @example\n* ```tsx\n* import { ErrorBoundary } from 'react-error-boundary'\n* import { QueryErrorResetBoundary } from '@tanstack/react-query'\n*\n* function App() {\n* return (\n* <QueryErrorResetBoundary>\n* {({ reset }) => (\n* <ErrorBoundary\n* onReset={reset}\n* fallbackRender={({ resetErrorBoundary }) => (\n* <div>\n* There was an error!\n* <button onClick={() => resetErrorBoundary()}>Try again</button>\n* </div>\n* )}\n* >\n* <Page />\n* </ErrorBoundary>\n* )}\n* </QueryErrorResetBoundary>\n* )\n* }\n* ```\n*/\nconst QueryErrorResetBoundary = ({ children }) => {\n\tconst [value] = React.useState(() => createValue());\n\treturn /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, {\n\t\tvalue,\n\t\tchildren: typeof children === \"function\" ? children(value) : children\n\t});\n};\nexport { QueryErrorResetBoundary, useQueryErrorResetBoundary };\n\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\n// src/errorBoundaryUtils.ts\n/**\n* Turns off `retryOnMount` for a query that throws its errors (with `suspense` or `throwOnError`),\n* unless the error boundary has been reset, so a remount doesn't retry the failed query before the\n* user resets the boundary. Mutates the options.\n* @param options - The defaulted query options to adjust.\n* @param errorResetBoundary - The value of the nearest `QueryErrorResetBoundary`.\n* @param query - The query, used to evaluate a `throwOnError` function against its error.\n*/\nconst ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n\tconst throwOnError = query?.state.status === \"error\" && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n\tif (options.suspense || throwOnError) {\n\t\tif (!errorResetBoundary.isReset()) options.retryOnMount = false;\n\t}\n};\n/**\n* Clears the reset state of the error boundary after the component mounts, so later errors are\n* thrown to the boundary again.\n* @param errorResetBoundary - The value of the nearest `QueryErrorResetBoundary`.\n*/\nconst useClearResetErrorBoundary = (errorResetBoundary) => {\n\tReact.useEffect(() => {\n\t\terrorResetBoundary.clearReset();\n\t}, [errorResetBoundary]);\n};\n/**\n* Checks whether the query error should be thrown to the nearest error boundary: the query errored\n* and isn't fetching, the boundary hasn't been reset, and either `suspense` is enabled with no data\n* or `throwOnError` says so.\n* @param params - The observer `result`, the `errorResetBoundary`, the `throwOnError` option, the\n* `query`, and the `suspense` option.\n* @returns `true` if the error should be thrown.\n*/\nconst getHasError = ({ result, errorResetBoundary, throwOnError, query, suspense }) => {\n\treturn result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport { ensurePreventErrorBoundaryRetry, getHasError, useClearResetErrorBoundary };\n\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\n/**\n* The default `throwOnError` of the suspense hooks: throws the error to the nearest error boundary\n* only if the query has no data to show.\n* @param _error - The error of the query. Unused.\n* @param query - The query that errored.\n* @returns `true` if the query has no data.\n*/\nconst defaultThrowOnError = (_error, query) => query.state.data === void 0;\n/**\n* Raises `staleTime` and a numeric `gcTime` to at least 1000ms when `suspense` is enabled, so a\n* component that remounts after suspending doesn't refetch right away or find the query garbage\n* collected. A `'static'` `staleTime` is kept as is. Mutates the options.\n* @param defaultedOptions - The defaulted query options to adjust.\n*/\nconst ensureSuspenseTimers = (defaultedOptions) => {\n\tif (defaultedOptions.suspense) {\n\t\tconst MIN_SUSPENSE_TIME_MS = 1e3;\n\t\tconst clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n\t\tconst originalStaleTime = defaultedOptions.staleTime;\n\t\tdefaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n\t\tif (typeof defaultedOptions.gcTime === \"number\") defaultedOptions.gcTime = Math.max(defaultedOptions.gcTime, MIN_SUSPENSE_TIME_MS);\n\t}\n};\n/**\n* Checks whether a query should suspend: `suspense` is enabled and the result is still `pending`.\n* @param defaultedOptions - The defaulted query options, if any.\n* @param result - The current result of the observer.\n* @returns `true` if the component should suspend.\n*/\nconst shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\n/**\n* Fetches the query for a suspending component, without affecting the observer's own result. If\n* the fetch fails, the reset state of the error boundary is cleared, so the error is thrown to it.\n* @param defaultedOptions - The defaulted query options to fetch with.\n* @param observer - The observer of the query.\n* @param errorResetBoundary - The value of the nearest `QueryErrorResetBoundary`.\n* @returns A promise that resolves once the fetch settles. It never rejects.\n*/\nconst fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n\terrorResetBoundary.clearReset();\n});\nexport { defaultThrowOnError, ensureSuspenseTimers, fetchOptimistic, shouldSuspend };\n\n//# sourceMappingURL=suspense.js.map","\"use client\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport { ensurePreventErrorBoundaryRetry, getHasError, useClearResetErrorBoundary } from \"./errorBoundaryUtils.js\";\nimport { ensureSuspenseTimers, fetchOptimistic, shouldSuspend } from \"./suspense.js\";\nimport * as React from \"react\";\nimport { noop, notifyManager } from \"@tanstack/query-core\";\n// src/useBaseQuery.ts\n/**\n* Base implementation shared by `useQuery`, `useInfiniteQuery`, `useSuspenseQuery`, and\n* `useSuspenseInfiniteQuery`.\n* @param options - The options passed to the calling hook.\n* @param Observer - The observer class from query-core (`QueryObserver` or\n* `InfiniteQueryObserver`).\n* @param queryClient - Use this to use a custom `QueryClient`. Otherwise, the one from the nearest\n* context will be used.\n* @returns The query result, tracking which properties are read unless `notifyOnChangeProps` is\n* set.\n* @throws {Error} If `options` is not an object (outside production), or the query error when it should be\n* thrown to the nearest error boundary (see `throwOnError`). While suspending, it throws a promise instead.\n*/\nfunction useBaseQuery(options, Observer, queryClient) {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tif (typeof options !== \"object\" || Array.isArray(options)) throw new Error(\"Bad argument type. Starting with v5, only the \\\"Object\\\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object\");\n\t}\n\tconst isRestoring = useIsRestoring();\n\tconst errorResetBoundary = useQueryErrorResetBoundary();\n\tconst client = useQueryClient(queryClient);\n\tconst defaultedOptions = client.defaultQueryOptions(options);\n\tconst query = client.getQueryCache().get(defaultedOptions.queryHash);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tif (!defaultedOptions.queryFn) console.error(`[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`);\n\t}\n\tconst subscribed = options.subscribed !== false;\n\tdefaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : subscribed ? \"optimistic\" : void 0;\n\tensureSuspenseTimers(defaultedOptions);\n\tensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n\tuseClearResetErrorBoundary(errorResetBoundary);\n\tconst [observer] = React.useState(() => new Observer(client, defaultedOptions));\n\tconst result = observer.getOptimisticResult(defaultedOptions);\n\tReact.useEffect(() => {\n\t\tobserver.setOptions(defaultedOptions);\n\t}, [defaultedOptions, observer]);\n\tconst shouldSubscribe = !isRestoring && subscribed;\n\tReact.useSyncExternalStore(React.useCallback((onStoreChange) => {\n\t\tconst unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n\t\tobserver.updateResult();\n\t\treturn unsubscribe;\n\t}, [observer, shouldSubscribe]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n\tif (shouldSuspend(defaultedOptions, result)) throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n\tif (getHasError({\n\t\tresult,\n\t\terrorResetBoundary,\n\t\tthrowOnError: defaultedOptions.throwOnError,\n\t\tquery,\n\t\tsuspense: defaultedOptions.suspense\n\t})) throw result.error;\n\treturn !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport { useBaseQuery };\n\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { QueryObserver } from \"@tanstack/query-core\";\n// src/useQuery.ts\nfunction useQuery(options, queryClient) {\n\treturn useBaseQuery(options, QueryObserver, queryClient);\n}\nexport { useQuery };\n\n//# sourceMappingURL=useQuery.js.map","\"use client\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport * as React from \"react\";\nimport { MutationObserver, noop, notifyManager, shouldThrowError } from \"@tanstack/query-core\";\n// src/useMutation.ts\n/**\n* Unlike queries, mutations are typically used to create/update/delete data or perform server side-effects.\n* `useMutation` is the hook for that.\n* @param options - The {@link UseMutationOptions} to use — everything you can pass to `useMutation`.\n* @param queryClient - Use this to use a custom `QueryClient`. Otherwise, the one from the nearest context will\n* be used.\n* @returns `mutate`/`mutateAsync` also accept per-call `onSuccess`/`onError`/`onSettled` callbacks as a second\n* argument, useful for triggering call-site side effects (e.g. navigation) without coupling them to the shared\n* mutation definition. Hook-level callbacks (passed to `options`) fire for every mutation; per-call callbacks\n* fire only for the latest call you've made, and only while the component is still mounted — unmounting before\n* the mutation settles removes the subscription and prevents them from firing.\n* @throws {Error} The mutation error, when `throwOnError` is `true` or returns `true` for it, so that it is\n* thrown to the nearest error boundary.\n* @see {@link mutationOptions} to share these options across multiple `useMutation` call sites, or to look\n* the mutation up elsewhere via its `mutationKey` (e.g. with `useMutationState`).\n* @example\n* ```tsx\n* import { useMutation, useQueryClient } from '@tanstack/react-query'\n*\n* function AddTodo() {\n* const queryClient = useQueryClient()\n*\n* const addMutation = useMutation({\n* mutationFn: addTodo,\n* onSuccess: () => queryClient.invalidateQueries({ queryKey: ['todos'] }),\n* })\n*\n* return (\n* <button\n* onClick={() =>\n* addMutation.mutate('Item', {\n* onError: (error) => console.error('Failed to add item:', error),\n* })\n* }\n* >\n* Add\n* </button>\n* )\n* }\n* ```\n* @example\n* Rendering the mutation's own state, rather than just firing it off:\n* ```tsx\n* import { useMutation, useQueryClient } from '@tanstack/react-query'\n*\n* function AddTodo() {\n* const queryClient = useQueryClient()\n*\n* const addMutation = useMutation({\n* mutationFn: addTodo,\n* onSuccess: () => queryClient.invalidateQueries({ queryKey: ['todos'] }),\n* })\n*\n* return (\n* <div>\n* {addMutation.isPending ? (\n* 'Adding todo...'\n* ) : (\n* <>\n* {addMutation.isError ? (\n* <div>An error occurred: {addMutation.error.message}</div>\n* ) : null}\n* <button onClick={() => addMutation.mutate('Item')}>Add</button>\n* </>\n* )}\n* </div>\n* )\n* }\n* ```\n* @example\n* Optimistic update via `onMutate`, rolling back on `onError`:\n* ```tsx\n* import { useMutation, useQueryClient } from '@tanstack/react-query'\n*\n* function AddTodo() {\n* const queryClient = useQueryClient()\n*\n* const addMutation = useMutation({\n* mutationFn: addTodo,\n* onMutate: async (newTodo) => {\n* await queryClient.cancelQueries({ queryKey: ['todos'] })\n* const previousTodos = queryClient.getQueryData<Array<string>>(['todos'])\n*\n* queryClient.setQueryData<Array<string>>(['todos'], (old) => [\n* ...(old ?? []),\n* newTodo,\n* ])\n*\n* // Passed to `onError` as `onMutateResult` if the mutation fails.\n* return { previousTodos }\n* },\n* onError: (_err, _newTodo, onMutateResult) => {\n* queryClient.setQueryData(['todos'], onMutateResult?.previousTodos)\n* },\n* onSettled: () => {\n* queryClient.invalidateQueries({ queryKey: ['todos'] })\n* },\n* })\n*\n* return (\n* <button onClick={() => addMutation.mutate('Item')}>Add</button>\n* )\n* }\n* ```\n* @example\n* Callbacks passed per call to `mutate` only fire for the last call — `mutateAsync` gives you a\n* promise per call instead, so you can wait for all of them when they succeed:\n* ```tsx\n* import { useMutation, useQueryClient } from '@tanstack/react-query'\n*\n* function AddTodos() {\n* const queryClient = useQueryClient()\n*\n* const addMutation = useMutation({\n* mutationFn: addTodo,\n* onSuccess: () => queryClient.invalidateQueries({ queryKey: ['todos'] }),\n* })\n*\n* async function handleAddAll(todos: Array<string>) {\n* try {\n* await Promise.all(todos.map((todo) => addMutation.mutateAsync(todo)))\n* } catch (error) {\n* console.error('Failed to add todos:', error)\n* }\n* }\n*\n* return (\n* <button onClick={() => handleAddAll(['Todo 1', 'Todo 2', 'Todo 3'])}>\n* Add all\n* </button>\n* )\n* }\n* ```\n* @example\n* If some of the mutations above can fail independently of the others, and you want to know which ones\n* did — rather than losing that information the moment the first one rejects — swap `Promise.all` for\n* `Promise.allSettled`:\n* ```tsx\n* import { useMutation, useQueryClient } from '@tanstack/react-query'\n*\n* function AddTodos() {\n* const queryClient = useQueryClient()\n*\n* const addMutation = useMutation({\n* mutationFn: addTodo,\n* onSuccess: () => queryClient.invalidateQueries({ queryKey: ['todos'] }),\n* })\n*\n* async function handleAddAll(todos: Array<string>) {\n* const addResults = await Promise.allSettled(\n* todos.map((todo) => addMutation.mutateAsync(todo)),\n* )\n*\n* addResults.forEach((addResult, index) => {\n* if (addResult.status === 'rejected') {\n* console.error(`Failed to add \"${todos[index]}\":`, addResult.reason)\n* }\n* })\n* }\n*\n* return (\n* <button onClick={() => handleAddAll(['Todo 1', 'Todo 2', 'Todo 3'])}>\n* Add all\n* </button>\n* )\n* }\n* ```\n*/\nfunction useMutation(options, queryClient) {\n\tconst client = useQueryClient(queryClient);\n\tconst [observer] = React.useState(() => new MutationObserver(client, options));\n\tReact.useEffect(() => {\n\t\tobserver.setOptions(options);\n\t}, [observer, options]);\n\tconst result = React.useSyncExternalStore(React.useCallback((onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n\tconst mutate = React.useCallback((...args) => {\n\t\tobserver.mutate(args[0], args[1]).catch(noop);\n\t}, [observer]);\n\tif (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) throw result.error;\n\treturn {\n\t\t...result,\n\t\tmutate,\n\t\tmutateAsync: result.mutate\n\t};\n}\nexport { useMutation };\n\n//# sourceMappingURL=useMutation.js.map","/**\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\"),\n REACT_RECOVERABLE_TYPE = Symbol.for(\"react.recoverable\"),\n REACT_OPTIMISTIC_KEY = Symbol.for(\"react.optimistic_key\");\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:\n null == key\n ? null\n : key === REACT_OPTIMISTIC_KEY\n ? REACT_OPTIMISTIC_KEY\n : \"\" + 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.browser = function (reason) {\n return { $$typeof: REACT_RECOVERABLE_TYPE, _reason: reason };\n};\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 fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : 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 nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : 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.3.1\";\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 for (var node = fiber, nextNode = node; nextNode && !nextNode.alternate; )\n (node = nextNode),\n 0 !== (node.flags & 4098) && (fiber = node.return),\n (nextNode = node.return);\n for (; node.return; ) node = node.return;\n return 3 === node.tag ? fiber : 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}\nfunction traverseVisibleInstancesAndTextInstances(\n child,\n searchWithinHosts,\n fn,\n a,\n b,\n c\n) {\n for (; null !== child; ) {\n if (\n ((5 === child.tag || 27 === child.tag || 6 === child.tag) &&\n fn(child, a, b, c)) ||\n ((22 !== child.tag || null === child.memoizedState) &&\n (searchWithinHosts || (5 !== child.tag && 27 !== child.tag)) &&\n traverseVisibleInstancesAndTextInstances(\n child.child,\n searchWithinHosts,\n fn,\n a,\n b,\n c\n ))\n )\n return !0;\n child = child.sibling;\n }\n return !1;\n}\nfunction getFragmentParentInstanceOrContainerFiber(fiber) {\n for (fiber = fiber.return; null !== fiber; ) {\n if (3 === fiber.tag || 5 === fiber.tag || 27 === fiber.tag) return fiber;\n fiber = fiber.return;\n }\n return null;\n}\nfunction fiberIsPortaledIntoHost(fiber) {\n var foundPortalParent = !1;\n for (fiber = fiber.return; null !== fiber; ) {\n 4 === fiber.tag && (foundPortalParent = !0);\n if (3 === fiber.tag || 5 === fiber.tag || 27 === fiber.tag) break;\n fiber = fiber.return;\n }\n return foundPortalParent;\n}\nfunction getFragmentInstanceOrTextInstanceSiblings(fiber) {\n var result = [null, null],\n parentHostFiber = getFragmentParentInstanceOrContainerFiber(fiber);\n if (null === parentHostFiber) return result;\n findFragmentInstanceOrTextInstanceSiblings(\n result,\n fiber,\n parentHostFiber.child,\n { foundSelf: !1 }\n );\n return result;\n}\nfunction findFragmentInstanceOrTextInstanceSiblings(\n result,\n self,\n child,\n state\n) {\n for (; null !== child; ) {\n if (child === self) state.foundSelf = !0;\n else if (5 === child.tag || 27 === child.tag || 6 === child.tag) {\n if (state.foundSelf) return (result[1] = child), !0;\n result[0] = child;\n } else if (\n (22 !== child.tag || null === child.memoizedState) &&\n findFragmentInstanceOrTextInstanceSiblings(\n result,\n self,\n child.child,\n state\n )\n )\n return !0;\n child = child.sibling;\n }\n return !1;\n}\nfunction getInstanceFromHostFiber(fiber) {\n switch (fiber.tag) {\n case 5:\n case 27:\n case 6:\n return fiber.stateNode;\n case 3:\n return fiber.stateNode.containerInfo;\n default:\n throw Error(formatProdErrorMessage(559));\n }\n}\nvar searchTarget = null,\n searchBoundary = null;\nfunction isFiberPrecedingCheck(child, target, boundary) {\n return child === boundary\n ? !0\n : child === target\n ? ((searchTarget = child), !0)\n : !1;\n}\nfunction isFiberFollowingCheck(child, target, boundary) {\n return child === boundary\n ? ((searchBoundary = child), !1)\n : child === target\n ? (null !== searchBoundary && (searchTarget = child), !0)\n : !1;\n}\nfunction getParentForFragmentAncestors(inst) {\n if (null === inst) return null;\n do inst = null === inst ? null : inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag && 3 !== inst.tag);\n return inst ? inst : null;\n}\nfunction getLowestCommonAncestor(instA, instB, getParent) {\n for (var depthA = 0, tempA = instA; tempA; tempA = getParent(tempA)) depthA++;\n tempA = 0;\n for (var tempB = instB; tempB; tempB = getParent(tempB)) tempA++;\n for (; 0 < depthA - tempA; ) (instA = getParent(instA)), depthA--;\n for (; 0 < tempA - depthA; ) (instB = getParent(instB)), tempA--;\n for (; depthA--; ) {\n if (instA === instB || (null !== instB && instA === instB.alternate))\n return instA;\n instA = getParent(instA);\n instB = getParent(instB);\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\"),\n REACT_LEGACY_HIDDEN_TYPE = Symbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_RECOVERABLE_TYPE = Symbol.for(\"react.recoverable\"),\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 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 case REACT_VIEW_TRANSITION_TYPE:\n return \"ViewTransition\";\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 var stateHook = fiber.memoizedState;\n null !== stateHook &&\n ((HostTransitionContext._currentValue = stateHook.memoizedState),\n push(hostTransitionProviderCursor, fiber));\n stateHook = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(stateHook, fiber.type);\n stateHook !== 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 Fake = !1;\n try {\n var prevProps = Object.getOwnPropertyDescriptor(\n fn.prototype,\n \"props\"\n );\n Object.defineProperty(fn.prototype, \"props\", {\n configurable: !0,\n set: function () {\n throw Error();\n }\n });\n Fake = !0;\n new fn();\n } finally {\n Fake &&\n (void 0 !== prevProps\n ? Object.defineProperty(fn.prototype, \"props\", prevProps)\n : delete fn.prototype.props);\n }\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 case 30:\n return describeBuiltInComponentFrame(\"ViewTransition\");\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 & -lanes;\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 getEntangledLanes(root, renderLanes) {\n 0 !== (renderLanes & 8) && (renderLanes |= renderLanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= renderLanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n renderLanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n return renderLanes;\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,\n internalLoadPendingKey = \"__reactLoad$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst;\n if ((targetInst = targetNode[internalInstanceKey])) 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}\nfunction clearPendingLoadOnNode(node) {\n node[internalLoadPendingKey] = void 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}\nvar viewTransitionMutationContext = !1;\nfunction pushMutationContext() {\n var prev = viewTransitionMutationContext;\n viewTransitionMutationContext = !1;\n return prev;\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}\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 ? \"number\" === type && element.value == value\n ? setDefaultValue(element, getToStringValue(element.value))\n : setDefaultValue(element, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, 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, value) {\n node.defaultValue !== \"\" + value && (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 (viewTransitionMutationContext = !0));\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 (viewTransitionMutationContext = !0));\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 [\"maskType\", \"mask-type\"],\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 SubmitEventInterface = assign({}, EventInterface, { submitter: 0 }),\n SyntheticSubmitEvent = createSyntheticEvent(SubmitEventInterface),\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 source: 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$318;\n if (canUseDOM) {\n var isSupported$jscomp$inline_474 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_474) {\n var element$jscomp$inline_475 = document.createElement(\"div\");\n element$jscomp$inline_475.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_474 =\n \"function\" === typeof element$jscomp$inline_475.oninput;\n }\n JSCompiler_inline_result$jscomp$318 = isSupported$jscomp$inline_474;\n } else JSCompiler_inline_result$jscomp$318 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$318 &&\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 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$20) {\n return doc.body;\n }\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 fullscreenChange fullscreenError 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 globalClientIdCounter$1 = 0;\nfunction getViewTransitionName(props, instance) {\n if (null != props.name && \"auto\" !== props.name) return props.name;\n if (null !== instance.autoName) return instance.autoName;\n props = pendingEffectsRoot.identifierPrefix;\n var globalClientId = globalClientIdCounter$1++;\n props = \"_\" + props + \"t_\" + globalClientId.toString(32) + \"_\";\n return (instance.autoName = props);\n}\nfunction getClassNameByType(classByType) {\n if (null == classByType || \"string\" === typeof classByType)\n return classByType;\n var className = null,\n activeTypes = pendingTransitionTypes;\n if (null !== activeTypes)\n for (var i = 0; i < activeTypes.length; i++) {\n var match = classByType[activeTypes[i]];\n if (null != match) {\n if (\"none\" === match) return \"none\";\n className = null == className ? match : className + (\" \" + match);\n }\n }\n return null == className ? classByType.default : className;\n}\nfunction getViewTransitionClassName(defaultClass, eventClass) {\n defaultClass = getClassNameByType(defaultClass);\n eventClass = getClassNameByType(eventClass);\n return null == eventClass\n ? \"auto\" === defaultClass\n ? null\n : defaultClass\n : \"auto\" === eventClass\n ? null\n : eventClass;\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 & 1206910976;\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 &= 1206910978;\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 owner) shouldConstruct(owner) && (fiberTag = 1);\n else if (\"string\" === typeof owner)\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 (owner) {\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 case REACT_LEGACY_HIDDEN_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return (\n (type = mode | 32),\n (type = createFiberImplClass(30, pendingProps, key, type)),\n (type.elementType = REACT_VIEW_TRANSITION_TYPE),\n (type.lanes = lanes),\n (type.stateNode = {\n autoName: null,\n paired: null,\n clones: null,\n ref: null\n }),\n type\n );\n default:\n if (\"object\" === typeof owner && null !== owner)\n switch (owner.$$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\n 13 === fiber.tag &&\n null !== fiber.memoizedState &&\n null === fiber.memoizedState.dehydrated\n ? ((fiber.lanes |= renderLanes),\n (nextFiber = fiber.alternate),\n null !== nextFiber && (nextFiber.lanes |= renderLanes),\n scheduleContextWorkOnParentPath(\n fiber.return,\n renderLanes,\n workInProgress\n ),\n (nextFiber = fiber.child),\n (nextFiber = null !== nextFiber ? nextFiber.sibling : null))\n : (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 return null !== current;\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}\nfunction queueTransitionTypes(root, transitionTypes) {\n if (0 !== (root.pendingLanes & 4194048)) {\n var queued = root.transitionTypes;\n null === queued && (queued = root.transitionTypes = []);\n for (root = 0; root < transitionTypes.length; root++) {\n var transitionType = transitionTypes[root];\n -1 === queued.indexOf(transitionType) && queued.push(transitionType);\n }\n }\n}\nvar entangledTransitionTypes = null;\nfunction claimQueuedTransitionTypes(root) {\n var claimed = root.transitionTypes;\n root.transitionTypes = null;\n return claimed;\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 ((entangledTransitionTypes = null), 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 if (null !== entangledTransitionTypes)\n for (var root$28 = firstScheduledRoot; null !== root$28; )\n queueTransitionTypes(root$28, entangledTransitionTypes),\n (root$28 = root$28.next);\n root$28 = transition.types;\n if (null !== root$28) {\n for (var root$29 = firstScheduledRoot; null !== root$29; )\n queueTransitionTypes(root$29, root$28), (root$29 = root$29.next);\n if (0 !== currentEntangledLane) {\n root$29 = entangledTransitionTypes;\n null === root$29 && (root$29 = entangledTransitionTypes = []);\n for (var i = 0; i < root$28.length; i++) {\n var transitionType = root$28[i];\n -1 === root$29.indexOf(transitionType) && root$29.push(transitionType);\n }\n }\n }\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 thenableState = thenable.reason;\n checkIfUseWrappedInAsyncCatch(thenableState);\n if (void 0 === thenableState && !(\"reason\" in thenable))\n throw Error(formatProdErrorMessage(600));\n throw thenableState;\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.index, currentFirstChild)\n : existingChildren.set(currentFirstChild.key, 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 |= 2), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 134217730;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 134217730);\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 (\n (returnFiber = updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n )),\n coerceRef(returnFiber, element),\n returnFiber\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 ((newFiber = nextOldFiber.alternate),\n null !== newFiber &&\n oldFiber.delete(null === newFiber.key ? newIdx : newFiber.key)),\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 ((nextOldFiber = step.alternate),\n null !== nextOldFiber &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n )),\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 void 0 === newChild.props.ref &&\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 coerceRef(lanes, newChild);\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 coerceRef(lanes, newChild),\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();\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 pushSuspenseListContext(fiber, newContext) {\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n push(suspenseStackCursor, newContext);\n}\nfunction popSuspenseListContext(fiber) {\n pop(suspenseStackCursor);\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n}\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 \"independent\" !== 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_RECOVERABLE_TYPE) return;\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$64 = !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$64 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$64 = !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$64 &&\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 subscribe =\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook &&\n 0 !== (workInProgressHook.memoizedState.tag & 1));\n pushSimpleEffect(\n subscribe ? 9 : 8,\n { destroy: void 0 },\n updateStoreInstance.bind(null, fiber, hook, getServerSnapshot, getSnapshot),\n null\n );\n if (subscribe) {\n fiber.flags |= 2048;\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 currentTransition.types =\n null !== prevTransition ? prevTransition.types : null;\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$70) {\n onActionError(actionQueue, node, error$70);\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 & 106) ||\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 currentTransition.types =\n null !== prevTransition ? prevTransition.types : null;\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$73 = enqueueUpdate(provider, fiber, lane);\n null !== root$73 &&\n (scheduleUpdateOnFiber(root$73, provider, lane),\n entangleTransitions(root$73, 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 useEffectEvent: throwInvalidHookError\n },\n 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 useEffectEvent: updateEvent\n },\n 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 useEffectEvent: updateEvent\n };\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$77 in Component)\n void 0 === newProps[propName$77] &&\n (newProps[propName$77] = Component[propName$77]);\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$78) {\n setTimeout(function () {\n throw e$78;\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$79) {\n setTimeout(function () {\n throw e$79;\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 case 19:\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 returnFiber = sourceFiber.type;\n wrapperError = sourceFiber.stateNode;\n if (\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 break;\n case 22:\n if (null !== sourceFiber.memoizedState)\n return (sourceFiber.flags |= 65536), !1;\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(),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack());\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 (current.memoizedState = { baseLanes: 0, cachePool: null }),\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 if (null === currentTreeHiddenStackCursor.current) {\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 }\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 |= 134221824);\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();\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 didSuspend = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(),\n (showFallback = workInProgress.mode),\n (didSuspend = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: didSuspend },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (didSuspend.return = workInProgress),\n (nextProps.return = workInProgress),\n (didSuspend.sibling = nextProps),\n (workInProgress.child = didSuspend),\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, didSuspend);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated$96 = prevState.dehydrated;\n if (null !== dehydrated$96)\n return updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n JSCompiler_temp,\n nextProps,\n dehydrated$96,\n prevState,\n renderLanes\n );\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(),\n (showFallback = nextProps.fallback),\n (didSuspend = workInProgress.mode),\n (prevState = current.child),\n (dehydrated$96 = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 1206910976),\n null !== dehydrated$96\n ? (showFallback = createWorkInProgress(dehydrated$96, showFallback))\n : ((showFallback = createFiberFromFragment(\n showFallback,\n didSuspend,\n renderLanes,\n null\n )),\n (showFallback.flags |= 2)),\n (showFallback.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = showFallback),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (showFallback = current.child.memoizedState),\n null === showFallback\n ? (showFallback = mountSuspenseOffscreenState(renderLanes))\n : ((didSuspend = showFallback.cachePool),\n null !== didSuspend\n ? ((prevState = CacheContext._currentValue),\n (didSuspend =\n didSuspend.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : didSuspend))\n : (didSuspend = getSuspendedCache()),\n (showFallback = {\n baseLanes: showFallback.baseLanes | renderLanes,\n cachePool: didSuspend\n })),\n (nextProps.memoizedState = showFallback),\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 updateDehydratedSuspenseComponent(\n current,\n workInProgress,\n didSuspend,\n didPrimaryChildrenDefer,\n nextProps,\n suspenseInstance,\n suspenseState,\n renderLanes\n) {\n if (didSuspend) {\n if (workInProgress.flags & 256)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )\n );\n if (null !== workInProgress.memoizedState)\n return (\n reuseSuspenseHandlerOnStack(),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n null\n );\n reuseSuspenseHandlerOnStack();\n suspenseInstance = nextProps.fallback;\n suspenseState = workInProgress.mode;\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n suspenseState\n );\n suspenseInstance = createFiberFromFragment(\n suspenseInstance,\n suspenseState,\n renderLanes,\n null\n );\n suspenseInstance.flags |= 2;\n nextProps.return = workInProgress;\n suspenseInstance.return = workInProgress;\n nextProps.sibling = suspenseInstance;\n workInProgress.child = nextProps;\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n nextProps = workInProgress.child;\n nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes);\n nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n didPrimaryChildrenDefer,\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return bailoutOffscreenComponent(null, nextProps);\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n if (isSuspenseInstanceFallback(suspenseInstance)) {\n didPrimaryChildrenDefer =\n suspenseInstance.nextSibling && suspenseInstance.nextSibling.dataset;\n if (didPrimaryChildrenDefer) var digest = didPrimaryChildrenDefer.dgst;\n didPrimaryChildrenDefer = digest;\n \"\" !== didPrimaryChildrenDefer &&\n ((nextProps = Error(formatProdErrorMessage(419))),\n (nextProps.stack = \"\"),\n (nextProps.digest = didPrimaryChildrenDefer),\n queueHydrationError({ value: nextProps, source: null, stack: null }));\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n }\n didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1);\n didPrimaryChildrenDefer = 0 !== (renderLanes & current.childLanes);\n if (didReceiveUpdate || didPrimaryChildrenDefer) {\n if (null !== currentTreeHiddenStackCursor.current)\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n didPrimaryChildrenDefer = workInProgressRoot;\n if (\n null !== didPrimaryChildrenDefer &&\n ((nextProps = getBumpedLaneForHydration(\n didPrimaryChildrenDefer,\n renderLanes\n )),\n 0 !== nextProps && nextProps !== suspenseState.retryLane)\n )\n throw (\n ((suspenseState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(didPrimaryChildrenDefer, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(suspenseInstance) ||\n renderDidSuspendDelayIfPossible();\n return retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n }\n if (isSuspenseInstancePending(suspenseInstance))\n return (\n (workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n null\n );\n current = suspenseState.treeContext;\n nextHydratableInstance = getNextHydratable(suspenseInstance.nextSibling);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !1;\n null !== current && restoreSuspendedTreeContext(workInProgress, current);\n workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n );\n workInProgress.flags |= 134221824;\n return workInProgress;\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 findLastContentRow(firstChild) {\n for (var lastContentRow = null; null !== firstChild; ) {\n var currentRow = firstChild.alternate;\n null !== currentRow &&\n null === findFirstSuspended(currentRow) &&\n (lastContentRow = firstChild);\n firstChild = firstChild.sibling;\n }\n return lastContentRow;\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 reverseChildren(fiber) {\n var row = fiber.child;\n for (fiber.child = null; null !== row; ) {\n var nextRow = row.sibling;\n row.sibling = fiber.child;\n fiber.child = row;\n row = nextRow;\n }\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 if (workInProgress.flags & 128)\n return pushSuspenseListContext(workInProgress, suspenseContext), null;\n var shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n pushSuspenseListContext(workInProgress, suspenseContext);\n \"backwards\" === revealOrder && null !== current\n ? (reverseChildren(current),\n reconcileChildren(current, workInProgress, nextProps, renderLanes),\n reverseChildren(current))\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 \"backwards\":\n renderLanes = findLastContentRow(workInProgress.child);\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling),\n (renderLanes.sibling = null),\n reverseChildren(workInProgress));\n initSuspenseListRenderState(\n workInProgress,\n !0,\n revealOrder,\n null,\n tailMode,\n nextProps\n );\n break;\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 case \"independent\":\n workInProgress.memoizedState = null;\n break;\n default:\n (renderLanes = findLastContentRow(workInProgress.child)),\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (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 }\n return workInProgress.child;\n}\nfunction updateContextProvider(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n pushProvider(workInProgress, workInProgress.type, newProps.value);\n reconcileChildren(current, workInProgress, newProps.children, renderLanes);\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$108 = workInProgress.memoizedState;\n if (null !== state$108) {\n if (null !== state$108.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n state$108 = propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n );\n var primaryChildLanes = workInProgress.child.childLanes;\n if (state$108 || 0 !== (renderLanes & primaryChildLanes))\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 if (workInProgress.flags & 128)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n primaryChildLanes = 0 !== (current.flags & 128);\n state$108 = 0 !== (renderLanes & workInProgress.childLanes);\n state$108 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$108 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (primaryChildLanes) {\n if (state$108)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n primaryChildLanes = workInProgress.memoizedState;\n null !== primaryChildLanes &&\n ((primaryChildLanes.rendering = null),\n (primaryChildLanes.tail = null),\n (primaryChildLanes.lastEffect = null));\n pushSuspenseListContext(workInProgress, suspenseStackCursor.current);\n if (state$108) 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 } else if ($$typeof === REACT_CONTEXT_TYPE) {\n workInProgress.tag = 10;\n workInProgress.type = current;\n workInProgress = updateContextProvider(\n null,\n workInProgress,\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) | 134221824),\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 (workInProgress.stateNode = createHoistableInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current,\n workInProgress\n ))\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 (props = workInProgress.pendingProps),\n markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, props, renderLanes),\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 updateContextProvider(current, workInProgress, renderLanes);\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 30:\n return (\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n autoName: null,\n paired: null,\n clones: null,\n ref: null\n }),\n (props = workInProgress.pendingProps),\n null != props.name && \"auto\" !== props.name\n ? (workInProgress.flags |= null === current ? 18882560 : 18874368)\n : isHydrating && pushMaterializedTreeId(workInProgress),\n null !== current && current.memoizedProps.name !== props.name\n ? (workInProgress.flags |= 4194816)\n : markRef(current, workInProgress),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\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 var JSCompiler_temp;\n if ((JSCompiler_temp = 0 !== (workInProgress.mode & 32)))\n JSCompiler_temp =\n null === oldProps\n ? maySuspendCommit(type, newProps)\n : maySuspendCommit(type, newProps) &&\n (newProps.src !== oldProps.src ||\n newProps.srcSet !== oldProps.srcSet);\n if (JSCompiler_temp) {\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 \"visible\":\n break;\n case \"collapsed\":\n for (\n var tailNode = renderState.tail, lastTailNode = null;\n null !== tailNode;\n\n )\n null !== tailNode.alternate && (lastTailNode = tailNode),\n (tailNode = tailNode.sibling);\n null === lastTailNode\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode.sibling = null);\n break;\n default:\n hasRenderedATailFallback = renderState.tail;\n for (tailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (tailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === tailNode\n ? (renderState.tail = null)\n : (tailNode.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$113 = completedWork.child; null !== child$113; )\n (newChildLanes |= child$113.lanes | child$113.childLanes),\n (subtreeFlags |= child$113.subtreeFlags & 1206910976),\n (subtreeFlags |= child$113.flags & 1206910976),\n (child$113.return = completedWork),\n (child$113 = child$113.sibling);\n else\n for (child$113 = completedWork.child; null !== child$113; )\n (newChildLanes |= child$113.lanes | child$113.childLanes),\n (subtreeFlags |= child$113.subtreeFlags),\n (subtreeFlags |= child$113.flags),\n (child$113.return = completedWork),\n (child$113 = child$113.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 workInProgress.subtreeFlags &= -33554433;\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 workInProgress.subtreeFlags &= -33554433;\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 workInProgress.subtreeFlags &= -33554433;\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 workInProgress.subtreeFlags &= -33554433;\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 (workInProgress.flags |= 67108864),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n popSuspenseListContext(workInProgress);\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 pushSuspenseListContext(\n workInProgress,\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 \"collapsed\" !== newProps.tailMode &&\n \"visible\" !== 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 current = newProps.tail;\n a: {\n for (renderLanes = current; null !== renderLanes; ) {\n if (null !== renderLanes.alternate) {\n renderLanes = !1;\n break a;\n }\n renderLanes = renderLanes.sibling;\n }\n renderLanes = !0;\n }\n newProps.rendering = current;\n newProps.tail = current.sibling;\n newProps.renderingStartTime = now();\n current.sibling = null;\n nextResource = suspenseStackCursor.current;\n nextResource = type ? (nextResource & 1) | 2 : nextResource & 1;\n \"visible\" === newProps.tailMode ||\n \"collapsed\" === newProps.tailMode ||\n !renderLanes ||\n isHydrating\n ? pushSuspenseListContext(workInProgress, nextResource)\n : ((renderLanes = nextResource),\n push(suspenseHandlerStackCursor, workInProgress),\n push(suspenseStackCursor, renderLanes),\n null === shellBoundary && (shellBoundary = workInProgress));\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount);\n return 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 (\n (workInProgress.flags |= 33554432),\n bubbleProperties(workInProgress),\n null\n );\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 (\n popSuspenseListContext(workInProgress),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128),\n (current = workInProgress.memoizedState),\n null !== current &&\n ((current.rendering = null), (current.tail = null)),\n (workInProgress.flags |= 4),\n workInProgress)\n : null\n );\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 popSuspenseListContext(interruptedWork);\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 var instance = current.stateNode,\n name = getViewTransitionName(current.memoizedProps, instance);\n if (null === instance.ref || instance.ref.name !== name)\n instance.ref = createViewTransitionInstance(name);\n instanceToUse = instance.ref;\n break;\n case 7:\n if (null === current.stateNode) {\n var fragmentInstance = new FragmentInstance(current);\n traverseVisibleInstancesAndTextInstances(\n current.child,\n !1,\n addFragmentHandleToFiber,\n fragmentInstance,\n void 0,\n void 0\n );\n current.stateNode = fragmentInstance;\n }\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$148) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$148);\n }\n else ref.current = null;\n}\nfunction commitNewChildToFragmentInstances(fiber, parentFragmentInstances) {\n if (\n (5 === fiber.tag || 27 === fiber.tag || 6 === fiber.tag) &&\n null === fiber.alternate &&\n null !== parentFragmentInstances\n )\n for (var i = 0; i < parentFragmentInstances.length; i++)\n commitNewChildToFragmentInstance(\n fiber.stateNode,\n parentFragmentInstances[i]\n );\n}\nfunction commitFragmentInstanceInsertionEffects(fiber) {\n for (var parent = fiber.return; null !== parent; ) {\n isFragmentInstanceParent(parent) &&\n commitNewChildToFragmentInstance(fiber.stateNode, parent.stateNode);\n if (isFragmentInstanceHostBoundary(parent)) break;\n parent = parent.return;\n }\n}\nfunction commitFragmentInstanceDeletionEffects(fiber) {\n for (var parent = fiber.return; null !== parent; ) {\n isFragmentInstanceParent(parent) &&\n deleteChildFromFragmentInstance(fiber.stateNode, parent.stateNode);\n if (isFragmentInstanceHostBoundary(parent)) break;\n parent = parent.return;\n }\n}\nfunction isFragmentInstanceHostBoundary(fiber) {\n return 5 === fiber.tag || 3 === fiber.tag || 27 === fiber.tag;\n}\nfunction isFragmentInstanceParent(fiber) {\n return fiber && 7 === fiber.tag && null !== fiber.stateNode;\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(\n node,\n before,\n parent,\n parentFragmentInstances\n) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (tag = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(tag, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(tag),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1)),\n commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (viewTransitionMutationContext = !0);\n else if (\n 4 !== tag &&\n (27 === tag &&\n (commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (parentFragmentInstances = null),\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null))),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(\n node,\n before,\n parent,\n parentFragmentInstances\n) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (tag = node.stateNode),\n before ? parent.insertBefore(tag, before) : parent.appendChild(tag),\n commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (viewTransitionMutationContext = !0);\n else if (\n 4 !== tag &&\n (27 === tag &&\n (commitNewChildToFragmentInstances(node, parentFragmentInstances),\n (parentFragmentInstances = null),\n isSingletonScope(node.type) && (parent = node.stateNode)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(\n node,\n before,\n parent,\n parentFragmentInstances\n ),\n (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 shouldStartViewTransition = !1,\n appearingViewTransitions = null;\nfunction trackEnterViewTransitions(placement) {\n if (30 === placement.tag || 0 !== (placement.subtreeFlags & 33554432))\n shouldStartViewTransition = !0;\n}\nvar viewTransitionCancelableChildren = null;\nfunction pushViewTransitionCancelableScope() {\n var prevChildren = viewTransitionCancelableChildren;\n viewTransitionCancelableChildren = null;\n return prevChildren;\n}\nvar viewTransitionHostInstanceIdx = 0;\nfunction applyViewTransitionToHostInstances(\n fiber,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n) {\n viewTransitionHostInstanceIdx = 0;\n return applyViewTransitionToHostInstancesRecursive(\n fiber.child,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n );\n}\nfunction applyViewTransitionToHostInstancesRecursive(\n child,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n) {\n for (var inViewport = !1; null !== child; ) {\n if (5 === child.tag) {\n var instance = child.stateNode;\n if (null !== collectMeasurements) {\n var measurement = measureInstance(instance);\n collectMeasurements.push(measurement);\n measurement.view && (inViewport = !0);\n } else\n inViewport || (measureInstance(instance).view && (inViewport = !0));\n shouldStartViewTransition = !0;\n applyViewTransitionName(\n instance,\n 0 === viewTransitionHostInstanceIdx\n ? name\n : name + \"_\" + viewTransitionHostInstanceIdx,\n className\n );\n viewTransitionHostInstanceIdx++;\n } else if (22 !== child.tag || null === child.memoizedState)\n (30 === child.tag && stopAtNestedViewTransitions) ||\n (applyViewTransitionToHostInstancesRecursive(\n child.child,\n name,\n className,\n collectMeasurements,\n stopAtNestedViewTransitions\n ) &&\n (inViewport = !0));\n child = child.sibling;\n }\n return inViewport;\n}\nfunction restoreViewTransitionOnHostInstances(\n child,\n stopAtNestedViewTransitions\n) {\n for (; null !== child; ) {\n if (5 === child.tag)\n restoreViewTransitionName(child.stateNode, child.memoizedProps);\n else if (22 !== child.tag || null === child.memoizedState)\n (30 === child.tag && stopAtNestedViewTransitions) ||\n restoreViewTransitionOnHostInstances(\n child.child,\n stopAtNestedViewTransitions\n );\n child = child.sibling;\n }\n}\nfunction commitAppearingPairViewTransitions(placement) {\n if (0 !== (placement.subtreeFlags & 18874368))\n for (placement = placement.child; null !== placement; ) {\n if (22 !== placement.tag || null === placement.memoizedState)\n if (\n (commitAppearingPairViewTransitions(placement),\n 30 === placement.tag &&\n 0 !== (placement.flags & 18874368) &&\n placement.stateNode.paired)\n ) {\n var props = placement.memoizedProps;\n if (null == props.name || \"auto\" === props.name)\n throw Error(formatProdErrorMessage(544));\n var name = props.name;\n props = getViewTransitionClassName(props.default, props.share);\n \"none\" !== props &&\n (applyViewTransitionToHostInstances(\n placement,\n name,\n props,\n null,\n !1\n ) ||\n restoreViewTransitionOnHostInstances(placement.child, !1));\n }\n placement = placement.sibling;\n }\n}\nfunction commitEnterViewTransitions(placement, gesture) {\n if (30 === placement.tag) {\n var state = placement.stateNode,\n props = placement.memoizedProps,\n name = getViewTransitionName(props, state),\n className = getViewTransitionClassName(\n props.default,\n state.paired ? props.share : props.enter\n );\n \"none\" !== className\n ? applyViewTransitionToHostInstances(placement, name, className, null, !1)\n ? (commitAppearingPairViewTransitions(placement),\n state.paired ||\n gesture ||\n scheduleViewTransitionEvent(placement, props.onEnter))\n : restoreViewTransitionOnHostInstances(placement.child, !1)\n : commitAppearingPairViewTransitions(placement);\n } else if (0 !== (placement.subtreeFlags & 33554432))\n for (placement = placement.child; null !== placement; )\n commitEnterViewTransitions(placement, gesture),\n (placement = placement.sibling);\n else commitAppearingPairViewTransitions(placement);\n}\nfunction commitDeletedPairViewTransitions(deletion) {\n if (\n null !== appearingViewTransitions &&\n 0 !== appearingViewTransitions.size\n ) {\n var pairs = appearingViewTransitions;\n if (0 !== (deletion.subtreeFlags & 18874368))\n for (deletion = deletion.child; null !== deletion; ) {\n if (22 !== deletion.tag || null === deletion.memoizedState) {\n if (30 === deletion.tag && 0 !== (deletion.flags & 18874368)) {\n var props = deletion.memoizedProps,\n name = props.name;\n if (null != name && \"auto\" !== name) {\n var pair = pairs.get(name);\n if (void 0 !== pair) {\n var className = getViewTransitionClassName(\n props.default,\n props.share\n );\n \"none\" !== className &&\n (applyViewTransitionToHostInstances(\n deletion,\n name,\n className,\n null,\n !1\n )\n ? ((className = deletion.stateNode),\n (pair.paired = className),\n (className.paired = pair),\n scheduleViewTransitionEvent(deletion, props.onShare))\n : restoreViewTransitionOnHostInstances(deletion.child, !1));\n pairs.delete(name);\n if (0 === pairs.size) break;\n }\n }\n }\n commitDeletedPairViewTransitions(deletion);\n }\n deletion = deletion.sibling;\n }\n }\n}\nfunction commitExitViewTransitions(deletion) {\n if (30 === deletion.tag) {\n var props = deletion.memoizedProps,\n name = getViewTransitionName(props, deletion.stateNode),\n pair =\n null !== appearingViewTransitions\n ? appearingViewTransitions.get(name)\n : void 0,\n className = getViewTransitionClassName(\n props.default,\n void 0 !== pair ? props.share : props.exit\n );\n \"none\" !== className &&\n (applyViewTransitionToHostInstances(deletion, name, className, null, !1)\n ? void 0 !== pair\n ? ((className = deletion.stateNode),\n (pair.paired = className),\n (className.paired = pair),\n appearingViewTransitions.delete(name),\n scheduleViewTransitionEvent(deletion, props.onShare))\n : scheduleViewTransitionEvent(deletion, props.onExit)\n : restoreViewTransitionOnHostInstances(deletion.child, !1));\n null !== appearingViewTransitions &&\n commitDeletedPairViewTransitions(deletion);\n } else if (0 !== (deletion.subtreeFlags & 33554432))\n for (deletion = deletion.child; null !== deletion; )\n commitExitViewTransitions(deletion), (deletion = deletion.sibling);\n else\n null !== appearingViewTransitions &&\n commitDeletedPairViewTransitions(deletion);\n}\nfunction commitNestedViewTransitions(changedParent) {\n for (changedParent = changedParent.child; null !== changedParent; ) {\n if (30 === changedParent.tag) {\n var props = changedParent.memoizedProps,\n name = getViewTransitionName(props, changedParent.stateNode);\n props = getViewTransitionClassName(props.default, props.update);\n changedParent.flags &= -5;\n \"none\" !== props &&\n applyViewTransitionToHostInstances(\n changedParent,\n name,\n props,\n (changedParent.memoizedState = []),\n !1\n );\n } else\n 0 !== (changedParent.subtreeFlags & 33554432) &&\n commitNestedViewTransitions(changedParent);\n changedParent = changedParent.sibling;\n }\n}\nfunction restorePairedViewTransitions(parent) {\n if (0 !== (parent.subtreeFlags & 18874368))\n for (parent = parent.child; null !== parent; ) {\n if (22 !== parent.tag || null === parent.memoizedState) {\n if (30 === parent.tag && 0 !== (parent.flags & 18874368)) {\n var instance = parent.stateNode;\n null !== instance.paired &&\n ((instance.paired = null),\n restoreViewTransitionOnHostInstances(parent.child, !1));\n }\n restorePairedViewTransitions(parent);\n }\n parent = parent.sibling;\n }\n}\nfunction restoreEnterOrExitViewTransitions(fiber) {\n if (30 === fiber.tag)\n (fiber.stateNode.paired = null),\n restoreViewTransitionOnHostInstances(fiber.child, !1),\n restorePairedViewTransitions(fiber);\n else if (0 !== (fiber.subtreeFlags & 33554432))\n for (fiber = fiber.child; null !== fiber; )\n restoreEnterOrExitViewTransitions(fiber), (fiber = fiber.sibling);\n else restorePairedViewTransitions(fiber);\n}\nfunction restoreNestedViewTransitions(changedParent) {\n for (changedParent = changedParent.child; null !== changedParent; )\n 30 === changedParent.tag\n ? restoreViewTransitionOnHostInstances(changedParent.child, !1)\n : 0 !== (changedParent.subtreeFlags & 33554432) &&\n restoreNestedViewTransitions(changedParent),\n (changedParent = changedParent.sibling);\n}\nfunction measureViewTransitionHostInstancesRecursive(\n parentViewTransition,\n child,\n newName,\n oldName,\n className,\n previousMeasurements,\n stopAtNestedViewTransitions\n) {\n for (var inViewport = !1; null !== child; ) {\n if (5 === child.tag) {\n var instance = child.stateNode;\n if (\n null !== previousMeasurements &&\n viewTransitionHostInstanceIdx < previousMeasurements.length\n ) {\n var previousMeasurement =\n previousMeasurements[viewTransitionHostInstanceIdx],\n nextMeasurement = measureInstance(instance);\n if (previousMeasurement.view || nextMeasurement.view) inViewport = !0;\n var JSCompiler_temp;\n if ((JSCompiler_temp = 0 === (parentViewTransition.flags & 4)))\n if (nextMeasurement.clip) JSCompiler_temp = !0;\n else {\n JSCompiler_temp = previousMeasurement.rect;\n var newRect = nextMeasurement.rect;\n JSCompiler_temp =\n JSCompiler_temp.y !== newRect.y ||\n JSCompiler_temp.x !== newRect.x ||\n JSCompiler_temp.height !== newRect.height ||\n JSCompiler_temp.width !== newRect.width;\n }\n JSCompiler_temp && (parentViewTransition.flags |= 4);\n nextMeasurement.abs\n ? (nextMeasurement = !previousMeasurement.abs)\n : ((previousMeasurement = previousMeasurement.rect),\n (nextMeasurement = nextMeasurement.rect),\n (nextMeasurement =\n previousMeasurement.height !== nextMeasurement.height ||\n previousMeasurement.width !== nextMeasurement.width));\n nextMeasurement && (parentViewTransition.flags |= 32);\n } else parentViewTransition.flags |= 32;\n 0 !== (parentViewTransition.flags & 4) &&\n applyViewTransitionName(\n instance,\n 0 === viewTransitionHostInstanceIdx\n ? newName\n : newName + \"_\" + viewTransitionHostInstanceIdx,\n className\n );\n (inViewport && 0 !== (parentViewTransition.flags & 4)) ||\n (null === viewTransitionCancelableChildren &&\n (viewTransitionCancelableChildren = []),\n viewTransitionCancelableChildren.push(\n instance,\n 0 === viewTransitionHostInstanceIdx\n ? oldName\n : oldName + \"_\" + viewTransitionHostInstanceIdx,\n child.memoizedProps\n ));\n viewTransitionHostInstanceIdx++;\n } else if (22 !== child.tag || null === child.memoizedState)\n 30 === child.tag && stopAtNestedViewTransitions\n ? (parentViewTransition.flags |= child.flags & 32)\n : measureViewTransitionHostInstancesRecursive(\n parentViewTransition,\n child.child,\n newName,\n oldName,\n className,\n previousMeasurements,\n stopAtNestedViewTransitions\n ) && (inViewport = !0);\n child = child.sibling;\n }\n return inViewport;\n}\nfunction measureNestedViewTransitions(changedParent, gesture) {\n for (changedParent = changedParent.child; null !== changedParent; ) {\n if (30 === changedParent.tag) {\n var props = changedParent.memoizedProps,\n state = changedParent.stateNode,\n name = getViewTransitionName(props, state),\n className = getViewTransitionClassName(props.default, props.update);\n if (gesture) {\n state = state.clones;\n var previousMeasurements =\n null === state ? null : state.map(measureClonedInstance);\n } else\n (previousMeasurements = changedParent.memoizedState),\n (changedParent.memoizedState = null);\n state = changedParent;\n var child = changedParent.child;\n viewTransitionHostInstanceIdx = 0;\n name = measureViewTransitionHostInstancesRecursive(\n state,\n child,\n name,\n name,\n className,\n previousMeasurements,\n !1\n );\n 0 !== (changedParent.flags & 4) &&\n name &&\n (gesture || scheduleViewTransitionEvent(changedParent, props.onUpdate));\n } else\n 0 !== (changedParent.subtreeFlags & 33554432) &&\n measureNestedViewTransitions(changedParent, gesture);\n changedParent = changedParent.sibling;\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n offscreenDirectParentIsHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null,\n viewTransitionContextChanged = !1,\n inUpdateViewTransition = !1,\n rootViewTransitionAffected = !1,\n rootViewTransitionNameCanceled = !1;\nfunction commitBeforeMutationEffects(root, firstChild, committedLanes) {\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$21) {\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 committedLanes = (committedLanes & 335544064) === committedLanes;\n nextEffect = firstChild;\n for (firstChild = committedLanes ? 9270 : 1024; null !== nextEffect; ) {\n root = nextEffect;\n if (\n committedLanes &&\n ((JSCompiler_temp = root.deletions), null !== JSCompiler_temp)\n )\n for (\n anchorOffset = 0;\n anchorOffset < JSCompiler_temp.length;\n anchorOffset++\n )\n committedLanes &&\n commitExitViewTransitions(JSCompiler_temp[anchorOffset]);\n if (null === root.alternate && 0 !== (root.flags & 2))\n committedLanes && trackEnterViewTransitions(root),\n commitBeforeMutationEffects_complete(committedLanes);\n else {\n if (22 === root.tag)\n if (((JSCompiler_temp = root.alternate), null !== root.memoizedState)) {\n null !== JSCompiler_temp &&\n null === JSCompiler_temp.memoizedState &&\n committedLanes &&\n commitExitViewTransitions(JSCompiler_temp);\n commitBeforeMutationEffects_complete(committedLanes);\n continue;\n } else if (\n null !== JSCompiler_temp &&\n null !== JSCompiler_temp.memoizedState\n ) {\n committedLanes && trackEnterViewTransitions(root);\n commitBeforeMutationEffects_complete(committedLanes);\n continue;\n }\n JSCompiler_temp = root.child;\n 0 !== (root.subtreeFlags & firstChild) && null !== JSCompiler_temp\n ? ((JSCompiler_temp.return = root), (nextEffect = JSCompiler_temp))\n : (committedLanes && commitNestedViewTransitions(root),\n commitBeforeMutationEffects_complete(committedLanes));\n }\n }\n appearingViewTransitions = null;\n}\nfunction commitBeforeMutationEffects_complete(\n isViewTransitionEligible$jscomp$0\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect,\n isViewTransitionEligible = isViewTransitionEligible$jscomp$0,\n current = fiber.alternate,\n flags = fiber.flags;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (flags & 1024) && null !== current) {\n isViewTransitionEligible = void 0;\n flags = current.memoizedProps;\n current = current.memoizedState;\n var instance = fiber.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n fiber.type,\n flags\n );\n isViewTransitionEligible = instance.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n current\n );\n instance.__reactInternalSnapshotBeforeUpdate =\n isViewTransitionEligible;\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n }\n break;\n case 3:\n if (0 !== (flags & 1024))\n if (\n ((current = fiber.stateNode.containerInfo),\n (isViewTransitionEligible = current.nodeType),\n 9 === isViewTransitionEligible)\n )\n clearContainerSparingly(current);\n else if (1 === isViewTransitionEligible)\n switch (current.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(current);\n break;\n default:\n current.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 case 30:\n isViewTransitionEligible &&\n null !== current &&\n ((isViewTransitionEligible = getViewTransitionName(\n current.memoizedProps,\n current.stateNode\n )),\n (flags = fiber.memoizedProps),\n (flags = getViewTransitionClassName(flags.default, flags.update)),\n \"none\" !== flags &&\n applyViewTransitionToHostInstances(\n current,\n isViewTransitionEligible,\n flags,\n (current.memoizedState = []),\n !0\n ));\n break;\n default:\n if (0 !== (flags & 1024)) throw Error(formatProdErrorMessage(163));\n }\n current = fiber.sibling;\n if (null !== current) {\n current.return = fiber.return;\n nextEffect = current;\n break;\n }\n nextEffect = fiber.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$146) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$146\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 var newOffscreenSubtreeWasHidden =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n current = offscreenSubtreeIsHidden;\n prevProps = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = newOffscreenSubtreeWasHidden) && !prevProps\n ? ((flags = 2),\n 0 !== (finishedWork.subtreeFlags & 8772) && (flags |= 1),\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n flags\n ))\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = current;\n offscreenSubtreeWasHidden = prevProps;\n }\n break;\n case 30:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 7:\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction hideOrUnhideAllChildren(parentFiber, isHidden) {\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n hideOrUnhideAllChildrenOnFiber(parentFiber, isHidden),\n (parentFiber = parentFiber.sibling);\n}\nfunction hideOrUnhideAllChildrenOnFiber(fiber, isHidden) {\n switch (fiber.tag) {\n case 5:\n case 26:\n try {\n var instance = fiber.stateNode;\n if (isHidden) {\n var style = instance.style;\n \"function\" === typeof style.setProperty\n ? style.setProperty(\"display\", \"none\", \"important\")\n : (style.display = \"none\");\n } else {\n var instance$jscomp$0 = fiber.stateNode,\n styleProp = fiber.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n instance$jscomp$0.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n hideOrUnhideNearestPortals(fiber, isHidden);\n break;\n case 6:\n try {\n (fiber.stateNode.nodeValue = isHidden ? \"\" : fiber.memoizedProps),\n (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n break;\n case 18:\n try {\n var instance$jscomp$1 = fiber.stateNode;\n isHidden\n ? hideOrUnhideDehydratedBoundary(instance$jscomp$1, !0)\n : hideOrUnhideDehydratedBoundary(fiber.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(fiber, fiber.return, error);\n }\n break;\n case 22:\n case 23:\n null === fiber.memoizedState && hideOrUnhideAllChildren(fiber, isHidden);\n break;\n default:\n hideOrUnhideAllChildren(fiber, isHidden);\n }\n}\nfunction hideOrUnhideNearestPortals(parentFiber, isHidden$jscomp$0) {\n if (parentFiber.subtreeFlags & 67108864)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n a: {\n var fiber = parentFiber,\n isHidden = isHidden$jscomp$0;\n switch (fiber.tag) {\n case 4:\n hideOrUnhideAllChildrenOnFiber(fiber, isHidden);\n break a;\n case 22:\n null === fiber.memoizedState &&\n hideOrUnhideNearestPortals(fiber, isHidden);\n break a;\n default:\n hideOrUnhideNearestPortals(fiber, isHidden);\n }\n }\n parentFiber = parentFiber.sibling;\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 !offscreenSubtreeWasHidden &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n commitFragmentInstanceDeletionEffects(deletedFiber);\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(\n deletedFiber.stateNode,\n deletedFiber.type,\n deletedFiber.memoizedProps\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor),\n commitFragmentInstanceDeletionEffects(deletedFiber);\n case 6:\n 6 === deletedFiber.tag &&\n commitFragmentInstanceDeletionEffects(deletedFiber);\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 (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode),\n (viewTransitionMutationContext = !0);\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 case 30:\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 7:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\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, lanes) {\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, lanes),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root, lanes) {\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 if (\n flags & 4 &&\n ((current = finishedWork.updateQueue),\n (current = null !== current ? current.events : null),\n null !== current)\n )\n for (var ii = 0; ii < current.length; ii++) {\n var _eventPayloads$ii2 = current[ii];\n _eventPayloads$ii2.ref.impl = _eventPayloads$ii2.nextImpl;\n }\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\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, lanes);\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 ((root = finishedWork.callbacks),\n null !== root &&\n ((lanes = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === lanes ? root : lanes.concat(root)))));\n break;\n case 26:\n ii = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4)\n if (\n ((flags = null !== current ? current.memoizedState : null),\n (lanes = finishedWork.memoizedState),\n null === current)\n )\n if (null === lanes)\n if (null === finishedWork.stateNode)\n if (offscreenSubtreeIsHidden)\n finishedWork.stateNode = createHoistableInstance(\n finishedWork.type,\n finishedWork.memoizedProps,\n root.containerInfo,\n finishedWork\n );\n else {\n a: {\n root = finishedWork.type;\n lanes = finishedWork.memoizedProps;\n flags = ii.ownerDocument || ii;\n b: switch (root) {\n case \"title\":\n current = flags.getElementsByTagName(\"title\")[0];\n if (\n !current ||\n current[internalHoistableMarker] ||\n current[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" === current.namespaceURI ||\n current.hasAttribute(\"itemprop\")\n )\n (current = flags.createElement(root)),\n flags.head.insertBefore(\n current,\n flags.querySelector(\"head > title\")\n );\n setInitialProperties(current, root, lanes);\n current[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(current);\n root = current;\n break a;\n case \"link\":\n if (\n (ii = getHydratableHoistableCache(\n \"link\",\n \"href\",\n flags\n ).get(root + (lanes.href || \"\")))\n )\n for (\n _eventPayloads$ii2 = 0;\n _eventPayloads$ii2 < ii.length;\n _eventPayloads$ii2++\n )\n if (\n ((current = ii[_eventPayloads$ii2]),\n current.getAttribute(\"href\") ===\n (null == lanes.href || \"\" === lanes.href\n ? null\n : lanes.href) &&\n current.getAttribute(\"rel\") ===\n (null == lanes.rel ? null : lanes.rel) &&\n current.getAttribute(\"title\") ===\n (null == lanes.title ? null : lanes.title) &&\n current.getAttribute(\"crossorigin\") ===\n (null == lanes.crossOrigin\n ? null\n : lanes.crossOrigin))\n ) {\n ii.splice(_eventPayloads$ii2, 1);\n break b;\n }\n current = flags.createElement(root);\n setInitialProperties(current, root, lanes);\n flags.head.appendChild(current);\n break;\n case \"meta\":\n if (\n (ii = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n flags\n ).get(root + (lanes.content || \"\")))\n )\n for (\n _eventPayloads$ii2 = 0;\n _eventPayloads$ii2 < ii.length;\n _eventPayloads$ii2++\n )\n if (\n ((current = ii[_eventPayloads$ii2]),\n current.getAttribute(\"content\") ===\n (null == lanes.content\n ? null\n : \"\" + lanes.content) &&\n current.getAttribute(\"name\") ===\n (null == lanes.name ? null : lanes.name) &&\n current.getAttribute(\"property\") ===\n (null == lanes.property\n ? null\n : lanes.property) &&\n current.getAttribute(\"http-equiv\") ===\n (null == lanes.httpEquiv\n ? null\n : lanes.httpEquiv) &&\n current.getAttribute(\"charset\") ===\n (null == lanes.charSet ? null : lanes.charSet))\n ) {\n ii.splice(_eventPayloads$ii2, 1);\n break b;\n }\n current = flags.createElement(root);\n setInitialProperties(current, root, lanes);\n flags.head.appendChild(current);\n break;\n default:\n throw Error(formatProdErrorMessage(468, root));\n }\n current[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(current);\n root = current;\n }\n finishedWork.stateNode = root;\n }\n else\n offscreenSubtreeIsHidden ||\n mountHoistable(ii, finishedWork.type, finishedWork.stateNode);\n else\n finishedWork.stateNode = acquireResource(\n ii,\n lanes,\n finishedWork.memoizedProps\n );\n else\n flags !== lanes\n ? (null === flags\n ? ((root = current.stateNode),\n null === root ||\n offscreenSubtreeWasHidden ||\n root.parentNode.removeChild(root))\n : flags.count--,\n null === lanes\n ? offscreenSubtreeIsHidden ||\n mountHoistable(ii, finishedWork.type, finishedWork.stateNode)\n : acquireResource(ii, lanes, finishedWork.memoizedProps))\n : null === lanes &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\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 ii = offscreenDirectParentIsHidden;\n offscreenDirectParentIsHidden = !1;\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n offscreenDirectParentIsHidden = ii;\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n root = finishedWork.stateNode;\n try {\n setTextContent(root, \"\"), (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((root = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n root,\n null !== current ? current.memoizedProps : root\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n root = finishedWork.memoizedProps;\n lanes = finishedWork.stateNode;\n try {\n (lanes.nodeValue = root), (viewTransitionMutationContext = !0);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n viewTransitionMutationContext = !1;\n tagCaches = null;\n ii = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n currentHoistableRoot = ii;\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 viewTransitionMutationContext = !1;\n break;\n case 4:\n flags = offscreenDirectParentIsHidden;\n offscreenDirectParentIsHidden = offscreenSubtreeIsHidden;\n current = pushMutationContext();\n ii = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = ii;\n viewTransitionMutationContext &&\n inUpdateViewTransition &&\n (rootViewTransitionAffected = !0);\n viewTransitionMutationContext = current;\n offscreenDirectParentIsHidden = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((root = finishedWork.updateQueue),\n null !== root &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, root)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\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 ((root = finishedWork.updateQueue),\n null !== root &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, root)));\n break;\n case 22:\n ii = null !== finishedWork.memoizedState;\n _eventPayloads$ii2 = null !== current && null !== current.memoizedState;\n var prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden,\n prevOffscreenDirectParentIsHidden$166 = offscreenDirectParentIsHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || ii;\n offscreenDirectParentIsHidden =\n prevOffscreenDirectParentIsHidden$166 || ii;\n offscreenSubtreeWasHidden =\n prevOffscreenSubtreeWasHidden || _eventPayloads$ii2;\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenDirectParentIsHidden = prevOffscreenDirectParentIsHidden$166;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n flags & 8192 &&\n ((root = finishedWork.stateNode),\n (root._visibility = ii ? root._visibility & -2 : root._visibility | 1),\n !ii ||\n null === current ||\n _eventPayloads$ii2 ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n ((root = _eventPayloads$ii2 || offscreenSubtreeWasHidden),\n (lanes = offscreenSubtreeIsHidden),\n (current = offscreenSubtreeWasHidden),\n (offscreenSubtreeIsHidden = ii || offscreenSubtreeIsHidden),\n (offscreenSubtreeWasHidden = root),\n recursivelyTraverseDisappearLayoutEffects(finishedWork, 2),\n (offscreenSubtreeIsHidden = lanes),\n (offscreenSubtreeWasHidden = current)),\n (!ii && offscreenDirectParentIsHidden) ||\n hideOrUnhideAllChildren(finishedWork, ii));\n flags & 4 &&\n ((root = finishedWork.updateQueue),\n null !== root &&\n ((lanes = root.retryQueue),\n null !== lanes &&\n ((root.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, lanes))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((root = finishedWork.updateQueue),\n null !== root &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, root)));\n break;\n case 30:\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags = pushMutationContext();\n ii = inUpdateViewTransition;\n _eventPayloads$ii2 = (lanes & 335544064) === lanes;\n prevOffscreenSubtreeIsHidden = finishedWork.memoizedProps;\n inUpdateViewTransition =\n _eventPayloads$ii2 &&\n \"none\" !==\n getViewTransitionClassName(\n prevOffscreenSubtreeIsHidden.default,\n prevOffscreenSubtreeIsHidden.update\n );\n recursivelyTraverseMutationEffects(root, finishedWork, lanes);\n commitReconciliationEffects(finishedWork);\n _eventPayloads$ii2 &&\n null !== current &&\n viewTransitionMutationContext &&\n (finishedWork.flags |= 4);\n inUpdateViewTransition = ii;\n viewTransitionMutationContext = flags;\n break;\n case 21:\n break;\n case 7:\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return)),\n current &&\n null !== current.stateNode &&\n (current.stateNode._fragmentFiber = finishedWork);\n default:\n recursivelyTraverseMutationEffects(root, finishedWork, lanes),\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 parentFiber = null;\n for (var parent = finishedWork.return; null !== parent; ) {\n if (isFragmentInstanceParent(parent)) {\n var fragmentInstance = parent.stateNode;\n null === parentFiber\n ? (parentFiber = [fragmentInstance])\n : parentFiber.push(fragmentInstance);\n }\n if (isFragmentInstanceHostBoundary(parent)) break;\n parent = parent.return;\n }\n var JSCompiler_inline_result = parentFiber;\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent$jscomp$0 = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(\n finishedWork,\n before,\n parent$jscomp$0,\n JSCompiler_inline_result\n );\n break;\n case 5:\n var parent$149 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$149, \"\"), (hostParentFiber.flags &= -33));\n var before$150 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(\n finishedWork,\n before$150,\n parent$149,\n JSCompiler_inline_result\n );\n break;\n case 3:\n case 4:\n var parent$151 = hostParentFiber.stateNode.containerInfo,\n before$152 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$152,\n parent$151,\n JSCompiler_inline_result\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 &&\n fiber.flags & 1024 &&\n ((fiber = fiber.stateNode),\n (_enabled = !0),\n fiber.reset(),\n (_enabled = !1));\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAfterMutationEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 9270)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitAfterMutationEffectsOnFiber(parentFiber, root),\n (parentFiber = parentFiber.sibling);\n else measureNestedViewTransitions(parentFiber, !1);\n}\nfunction commitAfterMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate;\n if (null === current) commitEnterViewTransitions(finishedWork, !1);\n else\n switch (finishedWork.tag) {\n case 3:\n rootViewTransitionNameCanceled = viewTransitionContextChanged = !1;\n pushViewTransitionCancelableScope();\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n if (!viewTransitionContextChanged && !rootViewTransitionAffected) {\n finishedWork = viewTransitionCancelableChildren;\n if (null !== finishedWork)\n for (var i = 0; i < finishedWork.length; i += 3) {\n current = finishedWork[i];\n var oldName = finishedWork[i + 1];\n restoreViewTransitionName(current, finishedWork[i + 2]);\n current = current.ownerDocument.documentElement;\n null !== current &&\n current.animate(\n { opacity: [0, 0], pointerEvents: [\"none\", \"none\"] },\n {\n duration: 0,\n fill: \"forwards\",\n pseudoElement: \"::view-transition-group(\" + oldName + \")\"\n }\n );\n }\n finishedWork = root.containerInfo;\n finishedWork =\n 9 === finishedWork.nodeType\n ? finishedWork.documentElement\n : finishedWork.ownerDocument.documentElement;\n null !== finishedWork &&\n \"\" === finishedWork.style.viewTransitionName &&\n ((finishedWork.style.viewTransitionName = \"none\"),\n finishedWork.animate(\n { opacity: [0, 0], pointerEvents: [\"none\", \"none\"] },\n {\n duration: 0,\n fill: \"forwards\",\n pseudoElement: \"::view-transition-group(root)\"\n }\n ),\n finishedWork.animate(\n { width: [0, 0], height: [0, 0] },\n {\n duration: 0,\n fill: \"forwards\",\n pseudoElement: \"::view-transition\"\n }\n ));\n rootViewTransitionNameCanceled = !0;\n }\n viewTransitionCancelableChildren = null;\n break;\n case 5:\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n break;\n case 4:\n i = viewTransitionContextChanged;\n viewTransitionContextChanged = !1;\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n viewTransitionContextChanged && (rootViewTransitionAffected = !0);\n viewTransitionContextChanged = i;\n break;\n case 22:\n null === finishedWork.memoizedState &&\n (null !== current.memoizedState\n ? commitEnterViewTransitions(finishedWork, !1)\n : recursivelyTraverseAfterMutationEffects(root, finishedWork));\n break;\n case 30:\n i = viewTransitionContextChanged;\n oldName = pushViewTransitionCancelableScope();\n viewTransitionContextChanged = !1;\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\n viewTransitionContextChanged && (finishedWork.flags |= 4);\n var props = finishedWork.memoizedProps,\n state = finishedWork.stateNode;\n root = getViewTransitionName(props, state);\n state = getViewTransitionName(current.memoizedProps, state);\n var className = getViewTransitionClassName(props.default, props.update);\n \"none\" === className\n ? (root = !1)\n : ((props = current.memoizedState),\n (current.memoizedState = null),\n (current = finishedWork.child),\n (viewTransitionHostInstanceIdx = 0),\n (root = measureViewTransitionHostInstancesRecursive(\n finishedWork,\n current,\n root,\n state,\n className,\n props,\n !0\n )),\n viewTransitionHostInstanceIdx !==\n (null === props ? 0 : props.length) &&\n (finishedWork.flags |= 32));\n 0 !== (finishedWork.flags & 4) && root\n ? (scheduleViewTransitionEvent(\n finishedWork,\n finishedWork.memoizedProps.onUpdate\n ),\n (viewTransitionCancelableChildren = oldName))\n : null !== oldName &&\n (oldName.push.apply(oldName, viewTransitionCancelableChildren),\n (viewTransitionCancelableChildren = oldName));\n viewTransitionContextChanged = 0 !== (finishedWork.flags & 32) ? !0 : i;\n break;\n default:\n recursivelyTraverseAfterMutationEffects(root, finishedWork);\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(\n parentFiber,\n layoutEffectTraversalFlags$jscomp$0\n) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber,\n layoutEffectTraversalFlags = layoutEffectTraversalFlags$jscomp$0;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\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(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 27:\n 0 !== (layoutEffectTraversalFlags & 2) &&\n releaseSingletonInstance(\n finishedWork.stateNode,\n finishedWork.type,\n finishedWork.memoizedProps\n );\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n (5 !== finishedWork.tag && 27 !== finishedWork.tag) ||\n commitFragmentInstanceDeletionEffects(finishedWork);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 6:\n commitFragmentInstanceDeletionEffects(finishedWork);\n break;\n case 26:\n safelyDetachRef(finishedWork, finishedWork.return);\n instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState ||\n null === instance ||\n offscreenSubtreeWasHidden ||\n instance.parentNode.removeChild(instance);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 30:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n break;\n case 7:\n safelyDetachRef(finishedWork, finishedWork.return);\n default:\n recursivelyTraverseDisappearLayoutEffects(\n finishedWork,\n layoutEffectTraversalFlags\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n layoutEffectTraversalFlags\n) {\n layoutEffectTraversalFlags =\n 0 !== (parentFiber.subtreeFlags & 8772)\n ? layoutEffectTraversalFlags\n : layoutEffectTraversalFlags & -2;\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 includeWorkInProgressEffects = 0 !== (layoutEffectTraversalFlags & 1);\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\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 0 !== (layoutEffectTraversalFlags & 2) &&\n commitHostSingletonAcquisition(finishedWork);\n case 5:\n (5 !== finishedWork.tag && 27 !== finishedWork.tag) ||\n commitFragmentInstanceInsertionEffects(finishedWork);\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 6:\n commitFragmentInstanceInsertionEffects(finishedWork);\n break;\n case 26:\n instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState ||\n null === instance ||\n offscreenSubtreeIsHidden ||\n mountHoistable(\n getHoistableRoot(instance.ownerDocument),\n finishedWork.type,\n instance\n );\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\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 layoutEffectTraversalFlags\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\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 layoutEffectTraversalFlags\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 7:\n safelyAttachRef(finishedWork, finishedWork.return);\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n layoutEffectTraversalFlags\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 var isViewTransitionEligible =\n (committedLanes & 335544064) === committedLanes;\n if (parentFiber.subtreeFlags & (isViewTransitionEligible ? 10262 : 10256))\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n else isViewTransitionEligible && restoreNestedViewTransitions(parentFiber);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var isViewTransitionEligible =\n (committedLanes & 335544064) === committedLanes;\n isViewTransitionEligible &&\n null === finishedWork.alternate &&\n null !== finishedWork.return &&\n null !== finishedWork.return.alternate &&\n restoreEnterOrExitViewTransitions(finishedWork);\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 isViewTransitionEligible &&\n rootViewTransitionNameCanceled &&\n ((finishedRoot = finishedRoot.containerInfo),\n (finishedRoot =\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot),\n \"root\" === finishedRoot.style.viewTransitionName &&\n (finishedRoot.style.viewTransitionName = \"\"),\n (finishedRoot = finishedRoot.ownerDocument.documentElement),\n null !== finishedRoot &&\n \"none\" === finishedRoot.style.viewTransitionName &&\n (finishedRoot.style.viewTransitionName = \"\"));\n flags & 2048 &&\n ((flags = null),\n null !== finishedWork.alternate &&\n (flags = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== flags &&\n (finishedWork.refCount++, null != flags && releaseCache(flags)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags = 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 flags.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 ? (isViewTransitionEligible &&\n null !== id &&\n null === id.memoizedState &&\n restoreEnterOrExitViewTransitions(id),\n _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n ))\n : (isViewTransitionEligible &&\n null !== id &&\n null !== id.memoizedState &&\n restoreEnterOrExitViewTransitions(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 case 30:\n isViewTransitionEligible &&\n ((flags = finishedWork.alternate),\n null !== flags &&\n (restoreViewTransitionOnHostInstances(flags.child, !0),\n restoreViewTransitionOnHostInstances(finishedWork.child, !0)));\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\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 : ((fiber = fiber.stateNode),\n (committedLanes & 335544128) === committedLanes &&\n suspendInstance(suspendedState, fiber)));\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n ((fiber = fiber.stateNode),\n (committedLanes & 335544128) === committedLanes &&\n suspendInstance(suspendedState, fiber));\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 case 30:\n if (\n 0 !== (fiber.flags & suspenseyCommitFlag) &&\n ((previousHoistableRoot = fiber.memoizedProps.name),\n null != previousHoistableRoot && \"auto\" !== previousHoistableRoot)\n ) {\n var state = fiber.stateNode;\n state.paired = null;\n null === appearingViewTransitions &&\n (appearingViewTransitions = new Map());\n appearingViewTransitions.set(previousHoistableRoot, state);\n }\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 pendingViewTransition = null,\n pendingViewTransitionEvents = null,\n pendingTransitionTypes = 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 scheduleViewTransitionEvent(fiber, callback) {\n if (null != callback) {\n var state = fiber.stateNode,\n instance = state.ref;\n null === instance &&\n (instance = state.ref =\n createViewTransitionInstance(\n getViewTransitionName(fiber.memoizedProps, state)\n ));\n null === pendingViewTransitionEvents && (pendingViewTransitionEvents = []);\n pendingViewTransitionEvents.push(callback.bind(null, instance));\n }\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 (\n 2 !== JSCompiler_inline_result &&\n 6 !== JSCompiler_inline_result\n ) {\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 && (lanes & 62914560) !== lanes)\n 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 completeRootWhenReady.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 completeRootWhenReady(\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 completeRootWhenReady(\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 var subtreeFlags = finishedWork.subtreeFlags,\n isViewTransitionEligible = (lanes & 335544064) === lanes;\n suspendedCommitReason = null;\n if (\n isViewTransitionEligible ||\n subtreeFlags & 8192 ||\n 16785408 === (subtreeFlags & 16785408)\n )\n if (\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 (appearingViewTransitions = null),\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n ),\n isViewTransitionEligible &&\n ((subtreeFlags = suspendedCommitReason),\n (isViewTransitionEligible = root.containerInfo),\n (isViewTransitionEligible = (\n 9 === isViewTransitionEligible.nodeType\n ? isViewTransitionEligible\n : isViewTransitionEligible.ownerDocument\n ).__reactViewTransition),\n null != isViewTransitionEligible &&\n (subtreeFlags.count++,\n (subtreeFlags.waitingForViewTransition = !0),\n (subtreeFlags = onUnsuspend.bind(subtreeFlags)),\n isViewTransitionEligible.finished.then(subtreeFlags, subtreeFlags))),\n (subtreeFlags =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0),\n (subtreeFlags = waitForCommitToBeReady(\n suspendedCommitReason,\n subtreeFlags\n )),\n null !== subtreeFlags)\n ) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = subtreeFlags(\n completeRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n completeRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason\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 = getEntangledLanes(root, suspendedLanes);\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 entangledRenderLanes = getEntangledLanes(root, 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$184) {\n handleThrow(root, thrownValue$184);\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$186) {\n handleThrow(root, thrownValue$186);\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 var fiber = next;\n fiber === hydrationParentFiber &&\n (isHydrating\n ? (popToNextHostParent(fiber),\n 5 === fiber.tag &&\n null != fiber.stateNode &&\n (nextHydratableInstance = fiber.stateNode))\n : (popToNextHostParent(fiber), (isHydrating = !0)));\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 completeRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedState\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 root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n commitRoot(\n root,\n finishedWork,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n suspendedState\n );\n }\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n suspendedState\n) {\n var remainingLanes = finishedWork.lanes | finishedWork.childLanes;\n pendingEffectsRemainingLanes = remainingLanes;\n remainingLanes |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n pendingViewTransitionEvents = null;\n (lanes & 335544064) === lanes\n ? ((pendingTransitionTypes = claimQueuedTransitionTypes(root)),\n (spawnedLane = 10262))\n : ((pendingTransitionTypes = null), (spawnedLane = 10256));\n 0 !== (finishedWork.subtreeFlags & spawnedLane) ||\n 0 !== (finishedWork.flags & spawnedLane)\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 shouldStartViewTransition = !1;\n spawnedLane = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || spawnedLane) {\n spawnedLane = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n updatedLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n suspendedRetryLanes = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = suspendedRetryLanes),\n (ReactDOMSharedInternals.p = updatedLanes),\n (ReactSharedInternals.T = spawnedLane);\n }\n }\n pendingEffectsStatus = 1;\n shouldStartViewTransition\n ? (pendingViewTransition = startViewTransition(\n suspendedState,\n root.containerInfo,\n pendingTransitionTypes,\n flushMutationEffects,\n flushLayoutEffects,\n flushAfterMutationEffects,\n flushSpawnedWork,\n flushPassiveEffects,\n reportViewTransitionError,\n null,\n null\n ))\n : (flushMutationEffects(), flushLayoutEffects(), flushSpawnedWork());\n}\nfunction reportViewTransitionError(error) {\n if (0 !== pendingEffectsStatus) {\n var onRecoverableError = pendingEffectsRoot.onRecoverableError;\n onRecoverableError(error, { componentStack: null });\n }\n}\nfunction flushAfterMutationEffects() {\n 3 === pendingEffectsStatus &&\n ((pendingEffectsStatus = 0),\n commitAfterMutationEffectsOnFiber(pendingFinishedWork, pendingEffectsRoot),\n (pendingEffectsStatus = 4));\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\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 inUpdateViewTransition = rootViewTransitionAffected = !1;\n commitMutationEffectsOnFiber(finishedWork, root, lanes);\n lanes = selectionInformation;\n var curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = lanes.focusedElem,\n priorSelectionRange = lanes.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 var committedViewTransition = pendingViewTransition;\n pendingViewTransition = null;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors,\n passiveSubtreeMask = (lanes & 335544064) === lanes ? 10262 : 10256;\n 0 !== (finishedWork.subtreeFlags & passiveSubtreeMask) ||\n 0 !== (finishedWork.flags & passiveSubtreeMask)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n passiveSubtreeMask = root.pendingLanes;\n 0 === passiveSubtreeMask && (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 passiveSubtreeMask = 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 = passiveSubtreeMask);\n }\n }\n recoverableErrors = pendingViewTransitionEvents;\n onRecoverableError = pendingTransitionTypes;\n pendingTransitionTypes = null;\n if (\n null !== recoverableErrors &&\n ((pendingViewTransitionEvents = null),\n null === onRecoverableError && (onRecoverableError = []),\n null !== committedViewTransition)\n )\n for (\n recoverableError = 0;\n recoverableError < recoverableErrors.length;\n recoverableError++\n )\n (finishedWork = (0, recoverableErrors[recoverableError])(\n onRecoverableError\n )),\n void 0 !== finishedWork &&\n committedViewTransition.finished.finally(finishedWork);\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n passiveSubtreeMask = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (passiveSubtreeMask & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = null));\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 null !== pendingViewTransition &&\n (pendingViewTransition.skipTransition(), (pendingViewTransition = null));\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)\n ? prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes)\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$190 = firstScheduledRoot; null !== root$190; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$190.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$190.suspendedLanes,\n pingedLanes = root$190.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$190, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$190,\n root$190 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$190.cancelPendingCommit ||\n -1 !== root$190.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$190, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$190, JSCompiler_inline_result));\n root$190 = root$190.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 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 = new FormData(nativeEventTarget, submitter);\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 = new FormData(nativeEventTarget, submitter)),\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_1667 = 0;\n i$jscomp$inline_1667 < simpleEventPluginEvents.length;\n i$jscomp$inline_1667++\n) {\n var eventName$jscomp$inline_1668 =\n simpleEventPluginEvents[i$jscomp$inline_1667],\n domEventName$jscomp$inline_1669 =\n eventName$jscomp$inline_1668.toLowerCase(),\n capitalizedEvent$jscomp$inline_1670 =\n eventName$jscomp$inline_1668[0].toUpperCase() +\n eventName$jscomp$inline_1668.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1669,\n \"on\" + capitalizedEvent$jscomp$inline_1670\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 \"submit\":\n SyntheticEventCtor = SyntheticSubmitEvent;\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 SyntheticEventCtor =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n reactName =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n SyntheticEventCtor &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (reactName || SyntheticEventCtor) {\n reactEventType =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (SyntheticEventCtor = nativeEventTarget.ownerDocument)\n ? SyntheticEventCtor.defaultView ||\n SyntheticEventCtor.parentWindow\n : window;\n if (reactName) {\n if (\n ((SyntheticEventCtor =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (reactName = targetInst),\n (SyntheticEventCtor = SyntheticEventCtor\n ? getClosestInstanceFromNode(SyntheticEventCtor)\n : null),\n null !== SyntheticEventCtor &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(SyntheticEventCtor)),\n (inCapturePhase = SyntheticEventCtor.tag),\n SyntheticEventCtor !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n SyntheticEventCtor = null;\n } else (reactName = null), (SyntheticEventCtor = targetInst);\n if (reactName !== SyntheticEventCtor) {\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 == reactName\n ? reactEventType\n : getNodeFromInstance(reactName);\n lastHostComponent =\n null == SyntheticEventCtor\n ? reactEventType\n : getNodeFromInstance(SyntheticEventCtor);\n reactEventType = new inCapturePhase(\n _instance,\n instance + \"leave\",\n reactName,\n nativeEvent,\n nativeEventTarget\n );\n reactEventType.target = accumulateTargetOnly;\n reactEventType.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n inCapturePhase =\n reactName && SyntheticEventCtor\n ? getLowestCommonAncestor(\n reactName,\n SyntheticEventCtor,\n getParent\n )\n : null;\n null !== reactName &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactEventType,\n reactName,\n inCapturePhase,\n !1\n );\n null !== SyntheticEventCtor &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n SyntheticEventCtor,\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 }\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 if (\"string\" === typeof value)\n \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value);\n else if (\"number\" === typeof value || \"bigint\" === typeof value)\n \"body\" !== tag && setTextContent(domElement, \"\" + value);\n else return;\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 return;\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 return;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n return;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n return;\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 (null != prevValue ? prevValue.__html : void 0) !== key &&\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 \"credentialless\":\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 return;\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 else return;\n }\n viewTransitionMutationContext = !0;\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n return;\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 (null != prevValue ? prevValue.__html : void 0) !== key &&\n (domElement.innerHTML = key);\n }\n }\n break;\n case \"children\":\n if (\"string\" === typeof value) setTextContent(domElement, value);\n else if (\"number\" === typeof value || \"bigint\" === typeof value)\n setTextContent(domElement, \"\" + value);\n else return;\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n return;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n return;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n return;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n return;\n case \"innerText\":\n case \"textContent\":\n return;\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 (prevValue = key.slice(2, props ? key.length - 7 : void 0)),\n (tag = domElement[internalPropsKey] || null),\n (tag = null != tag ? tag[key] : null),\n \"function\" === typeof tag &&\n domElement.removeEventListener(prevValue, tag, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof tag &&\n null !== tag &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(prevValue, value, props);\n break a;\n }\n viewTransitionMutationContext = !0;\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n return;\n }\n viewTransitionMutationContext = !0;\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$204 = props[hasSrc];\n if (null != propValue$204)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$204;\n break;\n case \"type\":\n propValue = propValue$204;\n break;\n case \"checked\":\n checked = propValue$204;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$204;\n break;\n case \"value\":\n propKey = propValue$204;\n break;\n case \"defaultValue\":\n defaultValue = propValue$204;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$204)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$204, 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$204 in props)\n props.hasOwnProperty(propValue$204) &&\n ((hasSrc = props[propValue$204]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$204,\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}\nvar emptyProps = {};\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$221 in nextProps) {\n var propKey = nextProps[propKey$221];\n lastProp = lastProps[propKey$221];\n if (\n nextProps.hasOwnProperty(propKey$221) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$221) {\n case \"type\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n type = propKey;\n break;\n case \"name\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n name = propKey;\n break;\n case \"checked\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n checked = propKey;\n break;\n case \"defaultChecked\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n defaultChecked = propKey;\n break;\n case \"value\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\n value = propKey;\n break;\n case \"defaultValue\":\n propKey !== lastProp && (viewTransitionMutationContext = !0);\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$221,\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$221 = 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 type !== lastDefaultValue && (viewTransitionMutationContext = !0);\n propKey$221 = type;\n break;\n case \"defaultValue\":\n type !== lastDefaultValue && (viewTransitionMutationContext = !0);\n defaultValue = type;\n break;\n case \"multiple\":\n type !== lastDefaultValue && (viewTransitionMutationContext = !0),\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$221\n ? updateOptions(domElement, !!lastProps, propKey$221, !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$221 = 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 name !== type && (viewTransitionMutationContext = !0);\n propKey$221 = name;\n break;\n case \"defaultValue\":\n name !== type && (viewTransitionMutationContext = !0);\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$221, propKey);\n return;\n case \"option\":\n for (var propKey$237 in lastProps)\n if (\n ((propKey$221 = lastProps[propKey$237]),\n lastProps.hasOwnProperty(propKey$237) &&\n null != propKey$221 &&\n !nextProps.hasOwnProperty(propKey$237))\n )\n switch (propKey$237) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$237,\n null,\n nextProps,\n propKey$221\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$221 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$221 !== propKey &&\n (null != propKey$221 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n propKey$221 !== propKey && (viewTransitionMutationContext = !0);\n domElement.selected =\n propKey$221 &&\n \"function\" !== typeof propKey$221 &&\n \"symbol\" !== typeof propKey$221;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$221,\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$242 in lastProps)\n (propKey$221 = lastProps[propKey$242]),\n lastProps.hasOwnProperty(propKey$242) &&\n null != propKey$221 &&\n !nextProps.hasOwnProperty(propKey$242) &&\n setProp(domElement, tag, propKey$242, null, nextProps, propKey$221);\n for (checked in nextProps)\n if (\n ((propKey$221 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$221 !== propKey &&\n (null != propKey$221 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$221)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$221,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$247 in lastProps)\n (propKey$221 = lastProps[propKey$247]),\n lastProps.hasOwnProperty(propKey$247) &&\n void 0 !== propKey$221 &&\n !nextProps.hasOwnProperty(propKey$247) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$247,\n void 0,\n nextProps,\n propKey$221\n );\n for (defaultChecked in nextProps)\n (propKey$221 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$221 === propKey ||\n (void 0 === propKey$221 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$221,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$252 in lastProps)\n (propKey$221 = lastProps[propKey$252]),\n lastProps.hasOwnProperty(propKey$252) &&\n null != propKey$221 &&\n !nextProps.hasOwnProperty(propKey$252) &&\n setProp(domElement, tag, propKey$252, null, nextProps, propKey$221);\n for (lastProp in nextProps)\n (propKey$221 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$221 === propKey ||\n (null == propKey$221 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$221, 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 createHoistableInstance(\n type,\n props,\n rootContainerInstance,\n internalInstanceHandle\n) {\n rootContainerInstance = getOwnerDocumentFromRootContainer(\n rootContainerInstance\n ).createElement(type);\n rootContainerInstance[internalInstanceKey] = internalInstanceHandle;\n rootContainerInstance[internalPropsKey] = props;\n setInitialProperties(rootContainerInstance, type, props);\n markNodeAsHoistable(rootContainerInstance);\n return rootContainerInstance;\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 localRequestAnimationFrame =\n \"function\" === typeof requestAnimationFrame\n ? requestAnimationFrame\n : scheduleTimeout,\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 clearSingletonPreambleContribution(\n parentInstance.ownerDocument.documentElement\n );\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n clearSingletonPreambleContribution(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 clearSingletonPreambleContribution(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 applyViewTransitionName(instance, name, className) {\n name = CSS.escape(name) !== name ? \"r-\" + btoa(name).replace(/=/g, \"\") : name;\n instance.style.viewTransitionName = name;\n null != className && (instance.style.viewTransitionClass = className);\n className = getComputedStyle(instance);\n if (\"inline\" === className.display) {\n name = instance.getClientRects();\n if (1 === name.length) var JSCompiler_inline_result = 1;\n else\n for (var i = (JSCompiler_inline_result = 0); i < name.length; i++) {\n var rect = name[i];\n 0 < rect.width && 0 < rect.height && JSCompiler_inline_result++;\n }\n 1 === JSCompiler_inline_result &&\n ((instance = instance.style),\n (instance.display = 1 === name.length ? \"inline-block\" : \"block\"),\n (instance.marginTop = \"-\" + className.paddingTop),\n (instance.marginBottom = \"-\" + className.paddingBottom));\n }\n}\nfunction restoreViewTransitionName(instance, props) {\n instance = instance.style;\n props = props.style;\n var viewTransitionName =\n null != props\n ? props.hasOwnProperty(\"viewTransitionName\")\n ? props.viewTransitionName\n : props.hasOwnProperty(\"view-transition-name\")\n ? props[\"view-transition-name\"]\n : null\n : null;\n instance.viewTransitionName =\n null == viewTransitionName || \"boolean\" === typeof viewTransitionName\n ? \"\"\n : (\"\" + viewTransitionName).trim();\n viewTransitionName =\n null != props\n ? props.hasOwnProperty(\"viewTransitionClass\")\n ? props.viewTransitionClass\n : props.hasOwnProperty(\"view-transition-class\")\n ? props[\"view-transition-class\"]\n : null\n : null;\n instance.viewTransitionClass =\n null == viewTransitionName || \"boolean\" === typeof viewTransitionName\n ? \"\"\n : (\"\" + viewTransitionName).trim();\n \"inline-block\" === instance.display &&\n (null == props\n ? (instance.display = instance.margin = \"\")\n : ((viewTransitionName = props.display),\n (instance.display =\n null == viewTransitionName || \"boolean\" === typeof viewTransitionName\n ? \"\"\n : viewTransitionName),\n (viewTransitionName = props.margin),\n null != viewTransitionName\n ? (instance.margin = viewTransitionName)\n : ((viewTransitionName = props.hasOwnProperty(\"marginTop\")\n ? props.marginTop\n : props[\"margin-top\"]),\n (instance.marginTop =\n null == viewTransitionName ||\n \"boolean\" === typeof viewTransitionName\n ? \"\"\n : viewTransitionName),\n (props = props.hasOwnProperty(\"marginBottom\")\n ? props.marginBottom\n : props[\"margin-bottom\"]),\n (instance.marginBottom =\n null == props || \"boolean\" === typeof props ? \"\" : props))));\n}\nfunction createMeasurement(rect, computedStyle, element) {\n element = element.ownerDocument.defaultView;\n return {\n rect: rect,\n abs:\n \"absolute\" === computedStyle.position ||\n \"fixed\" === computedStyle.position,\n clip:\n \"none\" !== computedStyle.clipPath ||\n \"visible\" !== computedStyle.overflow ||\n \"none\" !== computedStyle.filter ||\n \"none\" !== computedStyle.mask ||\n \"none\" !== computedStyle.mask ||\n \"0px\" !== computedStyle.borderRadius,\n view:\n 0 <= rect.bottom &&\n 0 <= rect.right &&\n rect.top <= element.innerHeight &&\n rect.left <= element.innerWidth\n };\n}\nfunction measureInstance(instance) {\n var rect = instance.getBoundingClientRect(),\n computedStyle = getComputedStyle(instance);\n return createMeasurement(rect, computedStyle, instance);\n}\nfunction measureClonedInstance(instance) {\n var measuredRect = instance.getBoundingClientRect();\n measuredRect = new DOMRect(\n measuredRect.x + 2e4,\n measuredRect.y + 2e4,\n measuredRect.width,\n measuredRect.height\n );\n var computedStyle = getComputedStyle(instance);\n return createMeasurement(measuredRect, computedStyle, instance);\n}\nfunction forceLayout(ownerDocument) {\n return ownerDocument.documentElement.clientHeight;\n}\nfunction waitForImageToLoad(resolve) {\n this.addEventListener(\"load\", resolve);\n this.addEventListener(\"error\", resolve);\n}\nfunction startViewTransition(\n suspendedState,\n rootContainer,\n transitionTypes,\n mutationCallback,\n layoutCallback,\n afterMutationCallback,\n spawnedWorkCallback,\n passiveCallback,\n errorCallback\n) {\n var ownerDocument =\n 9 === rootContainer.nodeType ? rootContainer : rootContainer.ownerDocument;\n try {\n var transition = ownerDocument.startViewTransition({\n update: function () {\n var ownerWindow = ownerDocument.defaultView,\n pendingNavigation =\n ownerWindow.navigation && ownerWindow.navigation.transition,\n previousFontLoadingStatus = ownerDocument.fonts.status;\n mutationCallback();\n var blockingPromises = [];\n \"loaded\" === previousFontLoadingStatus &&\n (forceLayout(ownerDocument),\n \"loading\" === ownerDocument.fonts.status &&\n blockingPromises.push(ownerDocument.fonts.ready));\n previousFontLoadingStatus = blockingPromises.length;\n if (null !== suspendedState)\n for (\n var suspenseyImages = suspendedState.suspenseyImages,\n imgBytes = 0,\n i = 0;\n i < suspenseyImages.length;\n i++\n ) {\n var suspenseyImage = suspenseyImages[i];\n if (!suspenseyImage.complete) {\n var rect = suspenseyImage.getBoundingClientRect();\n if (\n 0 < rect.bottom &&\n 0 < rect.right &&\n rect.top < ownerWindow.innerHeight &&\n rect.left < ownerWindow.innerWidth\n ) {\n imgBytes += estimateImageBytes(suspenseyImage);\n if (imgBytes > estimatedBytesWithinLimit) {\n blockingPromises.length = previousFontLoadingStatus;\n break;\n }\n suspenseyImage = new Promise(\n waitForImageToLoad.bind(suspenseyImage)\n );\n blockingPromises.push(suspenseyImage);\n }\n }\n }\n if (0 < blockingPromises.length)\n return (\n (ownerWindow = Promise.race([\n Promise.all(blockingPromises),\n new Promise(function (resolve) {\n return setTimeout(resolve, 500);\n })\n ]).then(layoutCallback, layoutCallback)),\n (pendingNavigation\n ? Promise.allSettled([pendingNavigation.finished, ownerWindow])\n : ownerWindow\n ).then(afterMutationCallback, afterMutationCallback)\n );\n layoutCallback();\n if (pendingNavigation)\n return pendingNavigation.finished.then(\n afterMutationCallback,\n afterMutationCallback\n );\n afterMutationCallback();\n },\n types: transitionTypes\n });\n ownerDocument.__reactViewTransition = transition;\n var viewTransitionAnimations = [];\n transition.ready.then(\n function () {\n for (\n var animations = ownerDocument.documentElement.getAnimations({\n subtree: !0\n }),\n i = 0;\n i < animations.length;\n i++\n ) {\n var animation = animations[i],\n effect = animation.effect,\n pseudoElement = effect.pseudoElement;\n if (\n null != pseudoElement &&\n pseudoElement.startsWith(\"::view-transition\")\n ) {\n viewTransitionAnimations.push(animation);\n animation = effect.getKeyframes();\n for (\n var height = (pseudoElement = void 0),\n unchangedDimensions = !0,\n j = 0;\n j < animation.length;\n j++\n ) {\n var keyframe = animation[j],\n w = keyframe.width;\n if (void 0 === pseudoElement) pseudoElement = w;\n else if (pseudoElement !== w) {\n unchangedDimensions = !1;\n break;\n }\n w = keyframe.height;\n if (void 0 === height) height = w;\n else if (height !== w) {\n unchangedDimensions = !1;\n break;\n }\n delete keyframe.width;\n delete keyframe.height;\n \"none\" === keyframe.transform && delete keyframe.transform;\n }\n unchangedDimensions &&\n void 0 !== pseudoElement &&\n void 0 !== height &&\n (effect.setKeyframes(animation),\n (unchangedDimensions = getComputedStyle(\n effect.target,\n effect.pseudoElement\n )),\n unchangedDimensions.width !== pseudoElement ||\n unchangedDimensions.height !== height) &&\n ((unchangedDimensions = animation[0]),\n (unchangedDimensions.width = pseudoElement),\n (unchangedDimensions.height = height),\n (unchangedDimensions = animation[animation.length - 1]),\n (unchangedDimensions.width = pseudoElement),\n (unchangedDimensions.height = height),\n effect.setKeyframes(animation));\n }\n }\n spawnedWorkCallback();\n },\n function (error) {\n ownerDocument.__reactViewTransition === transition &&\n (ownerDocument.__reactViewTransition = null);\n try {\n if (\"object\" === typeof error && null !== error)\n switch (error.name) {\n case \"InvalidStateError\":\n if (\n \"View transition was skipped because document visibility state is hidden.\" ===\n error.message ||\n \"Skipping view transition because document visibility state has become hidden.\" ===\n error.message ||\n \"Skipping view transition because viewport size changed.\" ===\n error.message ||\n \"Transition was aborted because of invalid state\" ===\n error.message\n )\n error = null;\n }\n null !== error && errorCallback(error);\n } finally {\n mutationCallback(), layoutCallback(), spawnedWorkCallback();\n }\n }\n );\n transition.finished.finally(function () {\n for (var i = 0; i < viewTransitionAnimations.length; i++)\n viewTransitionAnimations[i].cancel();\n ownerDocument.__reactViewTransition === transition &&\n (ownerDocument.__reactViewTransition = null);\n passiveCallback();\n });\n return transition;\n } catch (x) {\n return mutationCallback(), layoutCallback(), spawnedWorkCallback(), null;\n }\n}\nfunction ViewTransitionPseudoElement(pseudo, name) {\n this._scope = document.documentElement;\n this._selector = \"::view-transition-\" + pseudo + \"(\" + name + \")\";\n}\nViewTransitionPseudoElement.prototype.animate = function (keyframes, options) {\n options =\n \"number\" === typeof options ? { duration: options } : assign({}, options);\n options.pseudoElement = this._selector;\n return this._scope.animate(keyframes, options);\n};\nViewTransitionPseudoElement.prototype.getAnimations = function () {\n for (\n var scope = this._scope,\n selector = this._selector,\n animations = scope.getAnimations({ subtree: !0 }),\n result = [],\n i = 0;\n i < animations.length;\n i++\n ) {\n var effect = animations[i].effect;\n null !== effect &&\n effect.target === scope &&\n effect.pseudoElement === selector &&\n result.push(animations[i]);\n }\n return result;\n};\nViewTransitionPseudoElement.prototype.getComputedStyle = function () {\n return getComputedStyle(this._scope, this._selector);\n};\nfunction createViewTransitionInstance(name) {\n return {\n name: name,\n group: new ViewTransitionPseudoElement(\"group\", name),\n imagePair: new ViewTransitionPseudoElement(\"image-pair\", name),\n old: new ViewTransitionPseudoElement(\"old\", name),\n new: new ViewTransitionPseudoElement(\"new\", name)\n };\n}\nfunction FragmentInstance(fragmentFiber) {\n this._fragmentFiber = fragmentFiber;\n this._observers = this._eventListeners = null;\n}\nFragmentInstance.prototype.addEventListener = function (\n type,\n listener,\n optionsOrUseCapture\n) {\n var signal = null,\n cleanup = null;\n if (\n null != optionsOrUseCapture &&\n \"boolean\" !== typeof optionsOrUseCapture &&\n ((signal = optionsOrUseCapture.signal || null),\n null !== signal && signal.aborted)\n )\n return;\n null === this._eventListeners && (this._eventListeners = []);\n var listeners = this._eventListeners;\n if (\n -1 === indexOfEventListener(listeners, type, listener, optionsOrUseCapture)\n ) {\n var fragmentInstance = this,\n attachedListener = listener;\n null != optionsOrUseCapture &&\n \"boolean\" !== typeof optionsOrUseCapture &&\n !0 === optionsOrUseCapture.once &&\n (attachedListener = function (event) {\n fragmentInstance.removeEventListener(\n type,\n listener,\n optionsOrUseCapture\n );\n \"function\" === typeof listener\n ? listener.call(this, event)\n : listener.handleEvent(event);\n });\n null !== signal &&\n ((cleanup = fragmentInstance.removeEventListener.bind(\n fragmentInstance,\n type,\n listener,\n optionsOrUseCapture\n )),\n signal.addEventListener(\"abort\", cleanup, { once: !0 }),\n (cleanup = signal.removeEventListener.bind(signal, \"abort\", cleanup)));\n signal = getAttachOptions(optionsOrUseCapture);\n listeners.push({\n type: type,\n listener: listener,\n optionsOrUseCapture: optionsOrUseCapture,\n attachedListener: attachedListener,\n cleanup: cleanup\n });\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n addEventListenerToChild,\n type,\n attachedListener,\n signal\n );\n }\n this._eventListeners = listeners;\n};\nfunction addEventListenerToChild(child, type, listener, optionsOrUseCapture) {\n getInstanceFromHostFiber(child).addEventListener(\n type,\n listener,\n optionsOrUseCapture\n );\n return !1;\n}\nFragmentInstance.prototype.removeEventListener = function (\n type,\n listener,\n optionsOrUseCapture\n) {\n var listeners = this._eventListeners;\n if (\n null !== listeners &&\n ((listener = indexOfEventListener(\n listeners,\n type,\n listener,\n optionsOrUseCapture\n )),\n -1 !== listener)\n ) {\n var _listeners$index = listeners[listener];\n optionsOrUseCapture = _listeners$index.attachedListener;\n var cleanup = _listeners$index.cleanup;\n _listeners$index = getAttachOptions(_listeners$index.optionsOrUseCapture);\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n removeEventListenerFromChild,\n type,\n optionsOrUseCapture,\n _listeners$index\n );\n listeners.splice(listener, 1);\n null !== cleanup && cleanup();\n }\n};\nfunction removeEventListenerFromChild(\n child,\n type,\n listener,\n optionsOrUseCapture\n) {\n getInstanceFromHostFiber(child).removeEventListener(\n type,\n listener,\n optionsOrUseCapture\n );\n return !1;\n}\nfunction getAttachOptions(opts) {\n return null != opts &&\n \"boolean\" !== typeof opts &&\n (!0 === opts.once || opts.signal instanceof AbortSignal)\n ? { capture: opts.capture, passive: opts.passive }\n : opts;\n}\nfunction normalizeListenerOptions(opts) {\n return null == opts\n ? \"c=0\"\n : \"boolean\" === typeof opts\n ? \"c=\" + (opts ? \"1\" : \"0\")\n : \"c=\" + (opts.capture ? \"1\" : \"0\");\n}\nfunction indexOfEventListener(\n eventListeners,\n type,\n listener,\n optionsOrUseCapture\n) {\n if (0 === eventListeners.length) return -1;\n optionsOrUseCapture = normalizeListenerOptions(optionsOrUseCapture);\n for (var i = 0; i < eventListeners.length; i++) {\n var item = eventListeners[i];\n if (\n item.type === type &&\n item.listener === listener &&\n normalizeListenerOptions(item.optionsOrUseCapture) === optionsOrUseCapture\n )\n return i;\n }\n return -1;\n}\nFragmentInstance.prototype.dispatchEvent = function (event) {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n if (null === parentHostFiber) return !0;\n parentHostFiber = getInstanceFromHostFiber(parentHostFiber);\n var eventListeners = this._eventListeners;\n if (\n (null !== eventListeners && 0 < eventListeners.length) ||\n !event.bubbles\n ) {\n var temp =\n 9 === parentHostFiber.nodeType\n ? parentHostFiber.createComment(\"\")\n : document.createTextNode(\"\");\n if (eventListeners)\n for (var i = 0; i < eventListeners.length; i++) {\n var _eventListeners$i = eventListeners[i];\n temp.addEventListener(\n _eventListeners$i.type,\n _eventListeners$i.attachedListener,\n getAttachOptions(_eventListeners$i.optionsOrUseCapture)\n );\n }\n parentHostFiber.appendChild(temp);\n event = temp.dispatchEvent(event);\n if (eventListeners)\n for (i = 0; i < eventListeners.length; i++)\n (_eventListeners$i = eventListeners[i]),\n temp.removeEventListener(\n _eventListeners$i.type,\n _eventListeners$i.attachedListener,\n getAttachOptions(_eventListeners$i.optionsOrUseCapture)\n );\n parentHostFiber.removeChild(temp);\n return event;\n }\n return parentHostFiber.dispatchEvent(event);\n};\nFragmentInstance.prototype.focus = function (focusOptions) {\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !0,\n setFocusOnFiberIfFocusable,\n focusOptions,\n void 0,\n void 0\n );\n};\nfunction setFocusOnFiberIfFocusable(fiber, focusOptions) {\n if (6 === fiber.tag) return !1;\n fiber = getInstanceFromHostFiber(fiber);\n return setFocusIfFocusable(fiber, focusOptions);\n}\nFragmentInstance.prototype.focusLast = function (focusOptions) {\n var children = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !0,\n collectChildren,\n children,\n void 0,\n void 0\n );\n for (\n var i = children.length - 1;\n 0 <= i && !setFocusOnFiberIfFocusable(children[i], focusOptions);\n i--\n );\n};\nfunction collectChildren(child, collection) {\n collection.push(child);\n return !1;\n}\nFragmentInstance.prototype.blur = function () {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n null !== parentHostFiber &&\n ((parentHostFiber = getInstanceFromHostFiber(parentHostFiber)),\n (parentHostFiber =\n getOwnerDocumentFromRootContainer(parentHostFiber).activeElement),\n null !== parentHostFiber &&\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n blurActiveElementWithinFragment,\n parentHostFiber,\n void 0,\n void 0\n ));\n};\nfunction blurActiveElementWithinFragment(child, activeElement) {\n if (6 === child.tag) return !1;\n child = getInstanceFromHostFiber(child);\n return child === activeElement || child.contains(activeElement)\n ? (activeElement.blur(), !0)\n : !1;\n}\nFragmentInstance.prototype.observeUsing = function (observer) {\n null === this._observers && (this._observers = new Set());\n this._observers.add(observer);\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n observeChild,\n observer,\n void 0,\n void 0\n );\n};\nfunction observeChild(child, observer) {\n if (6 === child.tag) return !1;\n child = getInstanceFromHostFiber(child);\n observer.observe(child);\n return !1;\n}\nFragmentInstance.prototype.unobserveUsing = function (observer) {\n var observers = this._observers;\n if (null !== observers && observers.has(observer)) {\n observers.delete(observer);\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n unobserveChild,\n observer,\n void 0,\n void 0\n );\n for (\n var i = (observers = 0);\n i < pendingIntersectionUnobserves.length;\n i++\n ) {\n var pending = pendingIntersectionUnobserves[i];\n pending.fragmentInstance === this && pending.observer === observer\n ? observer.unobserve(pending.instance)\n : (pendingIntersectionUnobserves[observers++] = pending);\n }\n pendingIntersectionUnobserves.length = observers;\n }\n};\nfunction unobserveChild(child, observer) {\n if (6 === child.tag) return !1;\n child = getInstanceFromHostFiber(child);\n observer.unobserve(child);\n return !1;\n}\nvar pendingIntersectionUnobserves = [],\n intersectionUnobserveScheduled = !1;\nfunction schedulePendingIntersectionUnobserve(\n fragmentInstance,\n observer,\n instance\n) {\n pendingIntersectionUnobserves.push({\n fragmentInstance: fragmentInstance,\n observer: observer,\n instance: instance\n });\n intersectionUnobserveScheduled ||\n ((intersectionUnobserveScheduled = !0),\n requestPostPaintCallback(function () {\n intersectionUnobserveScheduled = !1;\n var pending = pendingIntersectionUnobserves;\n pendingIntersectionUnobserves = [];\n for (var i = 0; i < pending.length; i++) {\n var item = pending[i];\n item.observer.unobserve(item.instance);\n }\n }));\n}\nFragmentInstance.prototype.getClientRects = function () {\n var rects = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n collectClientRects,\n rects,\n void 0,\n void 0\n );\n return rects;\n};\nfunction collectClientRects(child, rects) {\n if (6 === child.tag) {\n child = child.stateNode;\n var range = child.ownerDocument.createRange();\n range.selectNodeContents(child);\n rects.push.apply(rects, range.getClientRects());\n } else\n (child = getInstanceFromHostFiber(child)),\n rects.push.apply(rects, child.getClientRects());\n return !1;\n}\nFragmentInstance.prototype.getRootNode = function (getRootNodeOptions) {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n return null === parentHostFiber\n ? this\n : getInstanceFromHostFiber(parentHostFiber).getRootNode(getRootNodeOptions);\n};\nFragmentInstance.prototype.compareDocumentPosition = function (otherNode) {\n var parentHostFiber = getFragmentParentInstanceOrContainerFiber(\n this._fragmentFiber\n );\n if (null === parentHostFiber) return Node.DOCUMENT_POSITION_DISCONNECTED;\n var children = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n collectChildren,\n children,\n void 0,\n void 0\n );\n var parentHostInstance = getInstanceFromHostFiber(parentHostFiber);\n if (0 === children.length) {\n children = parentHostInstance;\n if (fiberIsPortaledIntoHost(this._fragmentFiber)) {\n a: {\n for (\n parentHostFiber = this._fragmentFiber.return;\n null !== parentHostFiber;\n\n ) {\n if (4 === parentHostFiber.tag) {\n parentHostFiber = parentHostFiber.stateNode.containerInfo;\n break a;\n }\n if (\n 3 === parentHostFiber.tag ||\n 5 === parentHostFiber.tag ||\n 27 === parentHostFiber.tag\n )\n break;\n parentHostFiber = parentHostFiber.return;\n }\n parentHostFiber = null;\n }\n null != parentHostFiber && (children = parentHostFiber);\n }\n parentHostFiber = this._fragmentFiber;\n var result = (parentHostInstance =\n children.compareDocumentPosition(otherNode));\n children === otherNode\n ? (result = Node.DOCUMENT_POSITION_CONTAINS)\n : parentHostInstance & Node.DOCUMENT_POSITION_CONTAINED_BY &&\n ((children =\n getFragmentInstanceOrTextInstanceSiblings(parentHostFiber)[1]),\n null === children\n ? (result = Node.DOCUMENT_POSITION_PRECEDING)\n : ((otherNode =\n getInstanceFromHostFiber(children).compareDocumentPosition(\n otherNode\n )),\n (result =\n 0 === otherNode || otherNode & Node.DOCUMENT_POSITION_FOLLOWING\n ? Node.DOCUMENT_POSITION_FOLLOWING\n : Node.DOCUMENT_POSITION_PRECEDING)));\n return (result |= Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC);\n }\n parentHostFiber = getInstanceFromHostFiber(children[0]);\n result = getInstanceFromHostFiber(children[children.length - 1]);\n var parentHostInstanceFromDOM = fiberIsPortaledIntoHost(this._fragmentFiber)\n ? parentHostFiber.parentElement\n : parentHostInstance;\n if (null == parentHostInstanceFromDOM)\n return Node.DOCUMENT_POSITION_DISCONNECTED;\n parentHostInstance =\n parentHostInstanceFromDOM.compareDocumentPosition(parentHostFiber) &\n Node.DOCUMENT_POSITION_CONTAINED_BY;\n parentHostInstanceFromDOM =\n parentHostInstanceFromDOM.compareDocumentPosition(result) &\n Node.DOCUMENT_POSITION_CONTAINED_BY;\n var firstResult = parentHostFiber.compareDocumentPosition(otherNode),\n lastResult = result.compareDocumentPosition(otherNode),\n otherNodeIsWithinFirstOrLastChild =\n firstResult & Node.DOCUMENT_POSITION_CONTAINED_BY ||\n lastResult & Node.DOCUMENT_POSITION_CONTAINED_BY;\n lastResult =\n parentHostInstance &&\n parentHostInstanceFromDOM &&\n firstResult & Node.DOCUMENT_POSITION_FOLLOWING &&\n lastResult & Node.DOCUMENT_POSITION_PRECEDING;\n parentHostFiber =\n (parentHostInstance && parentHostFiber === otherNode) ||\n (parentHostInstanceFromDOM && result === otherNode) ||\n otherNodeIsWithinFirstOrLastChild ||\n lastResult\n ? Node.DOCUMENT_POSITION_CONTAINED_BY\n : (!parentHostInstance && parentHostFiber === otherNode) ||\n (!parentHostInstanceFromDOM && result === otherNode)\n ? Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n : firstResult;\n return parentHostFiber & Node.DOCUMENT_POSITION_DISCONNECTED ||\n parentHostFiber & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC ||\n validateDocumentPositionWithFiberTree(\n parentHostFiber,\n this._fragmentFiber,\n children[0],\n children[children.length - 1],\n otherNode\n )\n ? parentHostFiber\n : Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;\n};\nfunction validateDocumentPositionWithFiberTree(\n documentPosition,\n fragmentFiber,\n precedingBoundaryFiber,\n followingBoundaryFiber,\n otherNode\n) {\n var otherFiber = getClosestInstanceFromNode(otherNode);\n if (documentPosition & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n if ((precedingBoundaryFiber = !!otherFiber))\n a: {\n for (; null !== otherFiber; ) {\n if (\n 7 === otherFiber.tag &&\n (otherFiber === fragmentFiber ||\n otherFiber.alternate === fragmentFiber)\n ) {\n precedingBoundaryFiber = !0;\n break a;\n }\n otherFiber = otherFiber.return;\n }\n precedingBoundaryFiber = !1;\n }\n return precedingBoundaryFiber;\n }\n if (documentPosition & Node.DOCUMENT_POSITION_CONTAINS) {\n if (null === otherFiber)\n return (\n (otherFiber = otherNode.ownerDocument),\n otherNode === otherFiber ||\n otherNode === otherFiber.documentElement ||\n otherNode === otherFiber.body\n );\n a: {\n otherFiber = fragmentFiber;\n for (\n fragmentFiber =\n getFragmentParentInstanceOrContainerFiber(fragmentFiber);\n null !== otherFiber;\n\n ) {\n if (\n !(\n (5 !== otherFiber.tag &&\n 3 !== otherFiber.tag &&\n 27 !== otherFiber.tag) ||\n (otherFiber !== fragmentFiber &&\n otherFiber.alternate !== fragmentFiber)\n )\n ) {\n otherFiber = !0;\n break a;\n }\n otherFiber = otherFiber.return;\n }\n otherFiber = !1;\n }\n return otherFiber;\n }\n return documentPosition & Node.DOCUMENT_POSITION_PRECEDING\n ? ((fragmentFiber = !!otherFiber) &&\n !(fragmentFiber = otherFiber === precedingBoundaryFiber) &&\n ((fragmentFiber = getLowestCommonAncestor(\n precedingBoundaryFiber,\n otherFiber,\n getParentForFragmentAncestors\n )),\n null === fragmentFiber\n ? (fragmentFiber = !1)\n : (traverseVisibleInstancesAndTextInstances(\n fragmentFiber,\n !0,\n isFiberPrecedingCheck,\n otherFiber,\n precedingBoundaryFiber\n ),\n (otherFiber = searchTarget),\n (searchTarget = null),\n (fragmentFiber = null !== otherFiber))),\n fragmentFiber)\n : documentPosition & Node.DOCUMENT_POSITION_FOLLOWING\n ? ((fragmentFiber = !!otherFiber) &&\n !(fragmentFiber = otherFiber === followingBoundaryFiber) &&\n ((fragmentFiber = getLowestCommonAncestor(\n followingBoundaryFiber,\n otherFiber,\n getParentForFragmentAncestors\n )),\n null === fragmentFiber\n ? (fragmentFiber = !1)\n : (traverseVisibleInstancesAndTextInstances(\n fragmentFiber,\n !0,\n isFiberFollowingCheck,\n otherFiber,\n followingBoundaryFiber\n ),\n (otherFiber = searchTarget),\n (searchBoundary = searchTarget = null),\n (fragmentFiber = null !== otherFiber))),\n fragmentFiber)\n : !1;\n}\nfunction scrollTextNodeIntoView(textNode, resolvedAlignToTop) {\n var range = textNode.ownerDocument.createRange();\n range.selectNodeContents(textNode);\n textNode = range.getBoundingClientRect();\n window.scrollTo(\n window.scrollX + textNode.left,\n resolvedAlignToTop\n ? window.scrollY + textNode.top\n : window.scrollY + textNode.bottom - window.innerHeight\n );\n}\nFragmentInstance.prototype.scrollIntoView = function (alignToTop) {\n if (\"object\" === typeof alignToTop) throw Error(formatProdErrorMessage(566));\n var children = [];\n traverseVisibleInstancesAndTextInstances(\n this._fragmentFiber.child,\n !1,\n collectChildren,\n children,\n void 0,\n void 0\n );\n var resolvedAlignToTop = !1 !== alignToTop;\n if (0 === children.length) {\n var hostSiblings = getFragmentInstanceOrTextInstanceSiblings(\n this._fragmentFiber\n );\n hostSiblings = resolvedAlignToTop\n ? hostSiblings[1] ||\n hostSiblings[0] ||\n getFragmentParentInstanceOrContainerFiber(this._fragmentFiber)\n : hostSiblings[0] || hostSiblings[1];\n if (null === hostSiblings) return;\n if (6 === hostSiblings.tag) {\n alignToTop = getInstanceFromHostFiber(hostSiblings);\n scrollTextNodeIntoView(alignToTop, resolvedAlignToTop);\n return;\n }\n hostSiblings = getInstanceFromHostFiber(hostSiblings);\n if (9 !== hostSiblings.nodeType) {\n if (11 === hostSiblings.nodeType) {\n resolvedAlignToTop = \"host\" in hostSiblings ? hostSiblings.host : null;\n null !== resolvedAlignToTop &&\n resolvedAlignToTop.scrollIntoView(alignToTop);\n return;\n }\n hostSiblings.scrollIntoView(alignToTop);\n }\n }\n for (\n hostSiblings = resolvedAlignToTop ? children.length - 1 : 0;\n hostSiblings !== (resolvedAlignToTop ? -1 : children.length);\n\n ) {\n var child = children[hostSiblings];\n 6 === child.tag\n ? ((child = getInstanceFromHostFiber(child)),\n scrollTextNodeIntoView(child, resolvedAlignToTop))\n : getInstanceFromHostFiber(child).scrollIntoView(alignToTop);\n hostSiblings += resolvedAlignToTop ? -1 : 1;\n }\n};\nfunction addFragmentHandleToFiber(child, fragmentInstance) {\n child = getInstanceFromHostFiber(child);\n addFragmentHandleToInstance(child, fragmentInstance);\n return !1;\n}\nfunction addFragmentHandleToInstance(instance, fragmentInstance) {\n null == instance.reactFragments && (instance.reactFragments = new Set());\n instance.reactFragments.add(fragmentInstance);\n}\nfunction commitNewChildToFragmentInstance(childInstance, fragmentInstance) {\n var eventListeners = fragmentInstance._eventListeners;\n if (null !== eventListeners)\n for (var i$jscomp$0 = 0; i$jscomp$0 < eventListeners.length; i$jscomp$0++) {\n var _eventListeners$i3 = eventListeners[i$jscomp$0];\n childInstance.addEventListener(\n _eventListeners$i3.type,\n _eventListeners$i3.attachedListener,\n getAttachOptions(_eventListeners$i3.optionsOrUseCapture)\n );\n }\n 3 !== childInstance.nodeType &&\n ((eventListeners = fragmentInstance._observers),\n null !== eventListeners &&\n eventListeners.forEach(function (observer) {\n for (\n var writeIdx = 0, i = 0;\n i < pendingIntersectionUnobserves.length;\n i++\n ) {\n var pending = pendingIntersectionUnobserves[i];\n if (\n pending.fragmentInstance !== fragmentInstance ||\n pending.observer !== observer ||\n pending.instance !== childInstance\n )\n pendingIntersectionUnobserves[writeIdx++] = pending;\n }\n pendingIntersectionUnobserves.length = writeIdx;\n observer.observe(childInstance);\n }),\n addFragmentHandleToInstance(childInstance, fragmentInstance));\n}\nfunction deleteChildFromFragmentInstance(childInstance, fragmentInstance) {\n var eventListeners = fragmentInstance._eventListeners;\n if (null !== eventListeners)\n for (var i = 0; i < eventListeners.length; i++) {\n var _eventListeners$i4 = eventListeners[i];\n childInstance.removeEventListener(\n _eventListeners$i4.type,\n _eventListeners$i4.attachedListener,\n getAttachOptions(_eventListeners$i4.optionsOrUseCapture)\n );\n }\n 3 !== childInstance.nodeType &&\n ((eventListeners = fragmentInstance._observers),\n null !== eventListeners &&\n eventListeners.forEach(function (observer) {\n \"string\" === typeof observer.rootMargin\n ? schedulePendingIntersectionUnobserve(\n fragmentInstance,\n observer,\n childInstance\n )\n : observer.unobserve(childInstance);\n }),\n null != childInstance.reactFragments &&\n childInstance.reactFragments.delete(fragmentInstance));\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 setFocusIfFocusable(node, focusOptions) {\n function handleFocus() {\n didFocus = !0;\n }\n if (node.ownerDocument.activeElement === node) return !0;\n var didFocus = !1;\n try {\n node.ownerDocument.addEventListener(\"focus\", handleFocus, !0),\n (node.focus || HTMLElement.prototype.focus).call(node, focusOptions);\n } finally {\n node.ownerDocument.removeEventListener(\"focus\", handleFocus, !0);\n }\n return didFocus;\n}\nfunction requestPostPaintCallback(callback) {\n localRequestAnimationFrame(function () {\n localRequestAnimationFrame(function (time) {\n return callback(time);\n });\n });\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, type, props) {\n for (var propKey in props) {\n var propValue = props[propKey];\n props.hasOwnProperty(propKey) &&\n null != propValue &&\n setProp(instance, type, propKey, null, emptyProps, propValue);\n }\n null != props.dangerouslySetInnerHTML && (instance.textContent = \"\");\n instance.onclick === noop$1 && (instance.onclick = null);\n detachDeletedInstance(instance);\n}\nfunction clearSingletonPreambleContribution(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 if (\"function\" === typeof container.getRootNode) {\n var rootNode = container.getRootNode();\n if (9 === rootNode.nodeType || 11 === rootNode.nodeType) return rootNode;\n }\n return 9 === container.nodeType ? container : 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 if (\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 )\n ) {\n var instance = ownerDocument.createElement(\"link\");\n setInitialProperties(instance, \"link\", href);\n \"style\" === as &&\n ((instance[internalLoadPendingKey] = !0),\n (instance.onload = instance.onerror =\n function () {\n clearPendingLoadOnNode(instance);\n }));\n markNodeAsHoistable(instance);\n ownerDocument.head.appendChild(instance);\n }\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 ? ((pendingProps = getStyleKey(pendingProps.href)),\n (currentProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = currentProps.get(pendingProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n currentProps.set(pendingProps, 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$268 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$269 = styles$268.get(type);\n resource$269 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$269 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$268.set(type, resource$269),\n (styles$268 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n ))\n ? styles$268._p ||\n ((resource$269.instance = styles$268),\n (resource$269.state.loading = 5))\n : ((styles$268 = preloadPropsMap.get(type)),\n styles$268 ||\n ((styles$268 = {\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, styles$268)),\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n styles$268,\n resource$269.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$269;\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 ? ((pendingProps = getScriptKey(pendingProps)),\n (currentProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = currentProps.get(pendingProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n currentProps.set(pendingProps, 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 if (\n (key = ownerDocument.querySelector(\n 'link[rel=\"preload\"][as=\"style\"][' + key + \"]\"\n ))\n ) {\n if (!0 !== key[internalLoadPendingKey]) {\n state.loading = 1;\n return;\n }\n } else\n (key = ownerDocument.createElement(\"link\")),\n (key[internalLoadPendingKey] = !0),\n (key.onload = key.onerror = clearPendingLoadOnNode.bind(null, key)),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key);\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}\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$274 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$274)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$274),\n markNodeAsHoistable(instance$274),\n instance$274\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$274 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$274);\n var linkInstance = instance$274;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$274, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$274, props.precedence, hoistableRoot);\n return (resource.instance = instance$274);\n case \"script\":\n instance$274 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$274)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$274)))\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 maySuspendCommit(type, props) {\n return (\n \"img\" === type &&\n null != props.src &&\n \"\" !== props.src &&\n null == props.onLoad &&\n \"lazy\" !== props.loading\n );\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction estimateImageBytes(instance) {\n return (\n (instance.width || 100) *\n (instance.height || 100) *\n (\"number\" === typeof devicePixelRatio ? devicePixelRatio : 1) *\n 0.25\n );\n}\nfunction suspendInstance(state, instance) {\n \"function\" === typeof instance.decode &&\n (state.imgCount++,\n instance.complete ||\n ((state.imgBytes += estimateImageBytes(instance)),\n state.suspenseyImages.push(instance)),\n (state = onUnsuspendImg.bind(state)),\n instance.decode().then(state, state));\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 checkIfFullyUnsuspended(state) {\n if (0 === state.count && (0 === state.imgCount || !state.waitingForImages))\n if (state.stylesheets) insertSuspendedStylesheets(state, state.stylesheets);\n else if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n}\nfunction onUnsuspend() {\n this.count--;\n checkIfFullyUnsuspended(this);\n}\nfunction onUnsuspendImg() {\n this.imgCount--;\n checkIfFullyUnsuspended(this);\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.transitionTypes = null;\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 \"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 \"fullscreenerror\":\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 \"resize\":\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_2043 = React.version;\nif (\n \"19.3.1\" !==\n isomorphicReactPackageVersion$jscomp$inline_2043\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_2043,\n \"19.3.1\"\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_2586 = {\n bundleType: 0,\n version: \"19.3.1\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.3.1\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2587 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2587.isDisabled &&\n hook$jscomp$inline_2587.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2587.inject(\n internals$jscomp$inline_2586\n )),\n (injectedHook = hook$jscomp$inline_2587);\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.3.1\";\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 * API client for the `@adonis-agora/flags` console. Talks JSON over `fetch` to the routes mounted by\n * `packages/adonis/providers/dashboard_provider.ts` (default base `/flags`, JSON API at `<base>/api`).\n *\n * Same shape as every Agora console's client: deployment config read from a JSON data block, one\n * `http()` helper, 401 → follow `redirectTo` or reload, and the host's CSRF token echoed on writes.\n *\n * Reads are `GET`. Writes are `POST`/`PUT`/`DELETE`; on an environment that needs approval a write\n * answers `202` with the change request it filed instead of applying it — {@link WriteResult}.\n */\n\n// ── Ruleset (mirrors `@adonis-agora/flags-core`'s `ruleset.ts`; plain JSON) ─────────────────────\n\nexport type JsonValue =\n | string\n | number\n | boolean\n | null\n | JsonValue[]\n | { [key: string]: JsonValue };\n\nexport type ConditionValue = string | number | boolean;\n\nexport interface AttributeCondition {\n attribute: string;\n op: string;\n values?: ConditionValue[];\n negate?: boolean;\n}\n\nexport interface SegmentCondition {\n segment: string;\n negate?: boolean;\n}\n\nexport type Condition = AttributeCondition | SegmentCondition;\n\nexport interface WeightedVariant {\n variant: string;\n weight: number;\n}\n\nexport type Serve = { variant: string } | { split: WeightedVariant[]; bucketBy?: string };\n\nexport interface TargetingRule {\n id: string;\n conditions: Condition[];\n serve: Serve;\n}\n\nexport interface FlagDefinition {\n variants: Record<string, JsonValue>;\n enabled: boolean;\n offVariant: string;\n overrides?: Record<string, string>;\n rules?: TargetingRule[];\n fallthrough: Serve;\n prerequisites?: Array<{ flag: string; variant: string }>;\n salt?: string;\n experiment?: { key?: string; layer?: string; holdout?: boolean };\n tags?: string[];\n}\n\nexport interface Segment {\n included?: string[];\n excluded?: string[];\n conditions?: AttributeCondition[];\n}\n\nexport interface Layer {\n salt?: string;\n allocations: Record<string, [number, number]>;\n}\n\nexport interface Holdout {\n percent: number;\n salt?: string;\n}\n\nexport interface Ruleset {\n schemaVersion: number;\n version: string;\n flags: Record<string, FlagDefinition>;\n segments?: Record<string, Segment>;\n layers?: Record<string, Layer>;\n holdout?: Holdout;\n}\n\n// ── Wire types ────────────────────────────────────────────────────────────────────────────────\n\nexport interface Actor {\n id: string;\n name?: string;\n}\n\nexport interface Issue {\n path: string;\n message: string;\n}\n\nexport interface Declaration {\n type: 'boolean' | 'string' | 'number' | 'json';\n default: JsonValue;\n description?: string;\n owner?: string;\n expiresAt?: string;\n tags?: string[];\n client?: boolean;\n variants?: string[];\n /** The apps that declare this key in code. */\n apps: string[];\n /** `code`: declared in an app's config (read-only here). `console`: created here, editable. */\n source: 'code' | 'console';\n}\n\n/** What the console sends to create or describe a flag (no `apps`/`source`: the server knows). */\nexport type DeclarationInput = Omit<Declaration, 'apps' | 'source'>;\n\nexport type Serving =\n | { kind: 'default'; value: JsonValue | null }\n | { kind: 'off'; variant: string }\n | { kind: 'fixed'; variant: string }\n | { kind: 'rollout'; percent: number }\n | { kind: 'split'; arms: Array<{ variant: string; percent: number }>; bucketBy?: string };\n\nexport type StaleReason = 'unused' | 'expired' | 'static' | 'undeclared' | 'missing';\n\nexport interface FlagRow {\n key: string;\n declaration: Declaration | null;\n inRuleset: boolean;\n enabled: boolean | null;\n serving: Serving;\n tags: string[];\n owner: string | null;\n expiresAt: string | null;\n experiment: boolean;\n rules: number;\n overrides: number;\n stale: StaleReason[];\n}\n\nexport interface Meta {\n app: string;\n topology: string;\n environment: string;\n environments: string[];\n approvals: Record<string, boolean>;\n actor: Actor;\n operators: string[];\n analytics: boolean;\n experiments: string[];\n}\n\nexport interface AuditEntry {\n id: string;\n environment: string;\n entity: string;\n key: string | null;\n action: 'create' | 'update' | 'delete' | 'replace';\n before: unknown;\n after: unknown;\n actor: Actor;\n changeRequestId?: string;\n version: string;\n at: string;\n}\n\nexport interface RulesetChange {\n entity: 'flag' | 'segment' | 'layer' | 'holdout' | 'ruleset';\n key?: string;\n value: unknown;\n}\n\nexport interface ChangeRequest {\n id: string;\n environment: string;\n change: RulesetChange;\n note?: string;\n requestedBy: Actor;\n requestedAt: string;\n status: 'pending' | 'approved' | 'rejected' | 'applied' | 'cancelled';\n reviewedBy?: Actor;\n reviewedAt?: string;\n reviewNote?: string;\n baseVersion: string;\n}\n\nexport interface ScheduledChange {\n id: string;\n environment: string;\n flag: string;\n kind: 'enable' | 'disable' | 'rollout' | 'change';\n payload: { percent?: number; variant?: string };\n runAt: string;\n status: 'pending' | 'running' | 'done' | 'failed' | 'cancelled';\n createdBy: Actor;\n error?: string;\n executedAt?: string;\n}\n\nexport interface FlagDetail {\n environment: string;\n version: string;\n key: string;\n declaration: Declaration | null;\n stored: FlagDefinition | null;\n definition: FlagDefinition;\n serving: Serving;\n audit: AuditEntry[];\n schedules: ScheduledChange[];\n pendingRequests: ChangeRequest[];\n requiresApproval: boolean;\n segments: string[];\n layers: string[];\n /** Other flags → their variant names (for prerequisites). */\n flags: Record<string, string[]>;\n}\n\nexport interface EvaluationDetails {\n flagKey: string;\n value: JsonValue;\n variant?: string;\n reason: string;\n errorCode?: string;\n errorMessage?: string;\n flagMetadata: Record<string, string | number | boolean>;\n}\n\nexport interface Comparison {\n variant: string;\n test: 'proportion' | 'welch' | 'cuped';\n difference: number;\n relativeLift: number;\n pValue: number;\n interval: [number, number];\n significant: boolean;\n sequential: { pValue: number; interval: [number, number]; significant: boolean };\n varianceReduction?: number;\n verdict: 'better' | 'worse' | 'inconclusive';\n}\n\nexport interface MetricResult {\n name: string;\n kind: string;\n event: string;\n direction: 'increase' | 'decrease';\n guardrail: boolean;\n variants: Array<{ variant: string; n: number; mean: number }>;\n comparisons: Comparison[];\n alert: boolean;\n}\n\nexport interface ExperimentResults {\n experiment: string;\n flag: string;\n /** Environment whose events were analysed (absent in results computed before 0.1). */\n environment?: string;\n /** Global-holdout subjects who reached the experiment (not compared). */\n holdout?: number;\n control: string;\n computedAt: string;\n exposures: Record<string, number>;\n srm: {\n chiSquare?: number;\n pValue: number;\n mismatch: boolean;\n expected: Record<string, number>;\n } | null;\n metrics: MetricResult[];\n warnings: string[];\n}\n\nexport interface ExperimentRow {\n key: string;\n flag: string;\n configured: boolean;\n metrics: string[];\n guardrails: string[];\n running: boolean;\n computedAt: string | null;\n exposures: number | null;\n srmMismatch: boolean;\n alert: boolean;\n verdicts: Array<{ metric: string; variant: string; verdict: Comparison['verdict'] }>;\n}\n\nexport interface ExperimentDetail {\n key: string;\n flag: string;\n config: { metrics: string[]; guardrails?: string[]; control?: string; confidence?: number };\n analytics: boolean;\n results: ExperimentResults | null;\n}\n\nexport interface StaleFlag {\n key: string;\n reasons: StaleReason[];\n lastEvaluated?: string;\n expiresAt?: string;\n owner?: string;\n}\n\nexport interface SinkStatus {\n sink: string;\n lag?: number;\n delivered?: number;\n leasedBy?: string | null;\n lastError?: string | null;\n}\n\nexport interface Ops {\n app: string;\n environment: string;\n topology: string;\n role: string;\n source: {\n version: string;\n loadedAt: string | null;\n lastError: string | null;\n stale: boolean;\n mode: 'notify' | 'poll' | 'stream';\n };\n buffer: { pending: number; published: number; dropped: number } | null;\n transport: { name: string; transactional: boolean; durable: boolean } | null;\n sinks: SinkStatus[];\n sinkError: string | null;\n relay: boolean;\n worker: boolean;\n analytics: boolean;\n tenants: Array<{\n partition: string;\n /** `null` when only another replica has heard from it recently. */\n environment: string | null;\n capabilities: string[];\n lastSeenAt: string | null;\n lastRulesetVersion: string | null;\n }>;\n}\n\n/** What every write answers: applied now, or filed for a second person's approval. */\nexport type WriteResult =\n | { status: 'applied'; version: string }\n | { status: 'pending'; request: ChangeRequest };\n\n// ── Deployment config ─────────────────────────────────────────────────────────────────────────\n\n/** `id` of the JSON data block the provider injects into `index.html` (`spa.ts`). */\nexport const CONFIG_ELEMENT_ID = 'flags-dashboard-config';\n\ninterface InjectedConfig {\n base?: unknown;\n api?: unknown;\n environment?: unknown;\n}\n\n/**\n * The deployment config the provider handed this page, read from a `<script type=\"application/json\">`\n * DATA block. Never an inline script: a nonce'd `script-src` CSP drops those without a word, and\n * the console would then render and 404 on every request.\n */\nfunction readConfig(): InjectedConfig {\n if (typeof document === 'undefined') return {};\n const element = document.getElementById(CONFIG_ELEMENT_ID);\n if (element === null) return {};\n try {\n const parsed: unknown = JSON.parse(element.textContent ?? '');\n return typeof parsed === 'object' && parsed !== null ? (parsed as InjectedConfig) : {};\n } catch {\n return {};\n }\n}\n\nexport function uiBase(): string {\n // `typeof === 'string'`, not truthy: `''` is a valid root mount.\n const injected = readConfig().base;\n return typeof injected === 'string' ? injected : '/flags';\n}\n\nexport function apiBase(): string {\n const injected = readConfig().api;\n return typeof injected === 'string' ? injected : `${uiBase()}/api`;\n}\n\n/** The environment this app evaluates — the switcher's default. */\nexport function defaultEnvironment(): string {\n const injected = readConfig().environment;\n return typeof injected === 'string' && injected !== '' ? injected : 'production';\n}\n\n// ── HTTP ──────────────────────────────────────────────────────────────────────────────────────\n\n/** A failed call, with the server's sentence and — for a `422` — the issues to show by field. */\nexport class ApiError extends Error {\n constructor(\n message: string,\n readonly status: number,\n readonly issues: Issue[] = [],\n ) {\n super(message);\n }\n}\n\nasync function readBody(res: Response): Promise<Record<string, unknown>> {\n try {\n const body: unknown = await res.json();\n return typeof body === 'object' && body !== null ? (body as Record<string, unknown>) : {};\n } catch {\n return {};\n }\n}\n\nfunction redirectToAuthSurface(redirectTo: string | undefined): void {\n if (typeof window === 'undefined') return;\n window.location.href = redirectTo ?? (uiBase() || '/');\n}\n\nasync function http<T>(path: string, init?: RequestInit): Promise<T> {\n const res = await fetch(apiBase() + path, init);\n if (res.status === 401) {\n const body = await readBody(res);\n const target =\n typeof body.redirectTo === 'string' && body.redirectTo ? body.redirectTo : undefined;\n redirectToAuthSurface(target);\n throw new ApiError('Not signed in; redirecting.', 401);\n }\n if (!res.ok) {\n const body = await readBody(res);\n const message =\n typeof body.error === 'string' && body.error !== ''\n ? body.error\n : `${res.status} ${res.statusText}`;\n const issues = Array.isArray(body.issues) ? (body.issues as Issue[]) : [];\n throw new ApiError(message, res.status, issues);\n }\n return (await res.json()) as T;\n}\n\n/**\n * The host app's CSRF token, when it sets one: `@adonisjs/shield` publishes it as an `XSRF-TOKEN`\n * cookie and accepts it back in `x-xsrf-token`. Without it every write is refused before it reaches\n * the console's own authorization. No cookie → no header.\n */\nexport function csrfHeader(): Record<string, string> {\n if (typeof document === 'undefined') return {};\n const match = /(?:^|;\\s*)XSRF-TOKEN=([^;]*)/.exec(document.cookie);\n const token = match?.[1];\n if (!token) return {};\n return { 'x-xsrf-token': decodeURIComponent(token) };\n}\n\n/** A JSON write. Kept apart from reads so no `GET` can ever carry a body or a method by accident. */\nfunction send<T>(method: 'POST' | 'PUT' | 'DELETE', path: string, body?: unknown): Promise<T> {\n return http<T>(path, {\n method,\n headers: { 'content-type': 'application/json', ...csrfHeader() },\n body: JSON.stringify(body ?? {}),\n });\n}\n\n/** Build a query string, skipping empty values so `?tag=` never reaches the server. */\nexport function buildQuery(params: Record<string, string | number | undefined>): string {\n const q = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value === undefined || value === '') continue;\n q.set(key, String(value));\n }\n const qs = q.toString();\n return qs === '' ? '' : `?${qs}`;\n}\n\nconst seg = encodeURIComponent;\n\n// ── Calls ─────────────────────────────────────────────────────────────────────────────────────\n\nexport const api = {\n meta: () => http<Meta>('/meta'),\n\n flags: (environment: string) =>\n http<{ environment: string; version: string; flags: FlagRow[] }>(\n `/flags${buildQuery({ environment })}`,\n ),\n flag: (environment: string, key: string) =>\n http<FlagDetail>(`/flags/${seg(key)}${buildQuery({ environment })}`),\n createFlag: (environment: string, key: string, declaration: DeclarationInput, note?: string) =>\n send<WriteResult>('POST', '/flags', { environment, key, declaration, note }),\n updateDeclaration: (\n environment: string,\n key: string,\n declaration: Partial<DeclarationInput>,\n note?: string,\n ) =>\n send<WriteResult>('PUT', `/flags/${seg(key)}/declaration`, { environment, declaration, note }),\n saveFlag: (environment: string, key: string, definition: FlagDefinition, note?: string) =>\n send<WriteResult>('PUT', `/flags/${seg(key)}`, { environment, definition, note }),\n deleteFlag: (environment: string, key: string, note?: string) =>\n send<WriteResult>('DELETE', `/flags/${seg(key)}`, { environment, note }),\n setEnabled: (environment: string, key: string, enabled: boolean) =>\n send<WriteResult>('POST', `/flags/${seg(key)}/enabled`, { environment, enabled }),\n setRollout: (environment: string, key: string, percent: number) =>\n send<WriteResult>('POST', `/flags/${seg(key)}/rollout`, { environment, percent }),\n setOverride: (environment: string, key: string, subject: string, variant: string | null) =>\n send<WriteResult>('POST', `/flags/${seg(key)}/overrides`, { environment, subject, variant }),\n\n preview: (environment: string, change: RulesetChange) =>\n send<{ valid: boolean; issues: Issue[]; serving?: Serving | null }>('POST', '/preview', {\n environment,\n change,\n }),\n evaluate: (\n environment: string,\n input: { flag?: string; context: Record<string, unknown>; definition?: FlagDefinition },\n ) =>\n send<{ environment: string; result?: EvaluationDetails; results?: EvaluationDetails[] }>(\n 'POST',\n '/evaluate',\n { environment, ...input },\n ),\n\n segments: (environment: string) =>\n http<{ segments: Array<{ key: string; segment: Segment; usedBy: string[] }> }>(\n `/segments${buildQuery({ environment })}`,\n ),\n saveSegment: (environment: string, key: string, segment: Segment) =>\n send<WriteResult>('PUT', `/segments/${seg(key)}`, { environment, segment }),\n deleteSegment: (environment: string, key: string) =>\n send<WriteResult>('DELETE', `/segments/${seg(key)}`, { environment }),\n\n layers: (environment: string) =>\n http<{\n layers: Array<{ key: string; layer: Layer; allocatedPercent: number }>;\n holdout: Holdout | null;\n experiments: Array<{\n flag: string;\n experiment: string;\n layer: string | null;\n holdout: boolean;\n }>;\n }>(`/layers${buildQuery({ environment })}`),\n saveLayer: (environment: string, key: string, layer: Layer) =>\n send<WriteResult>('PUT', `/layers/${seg(key)}`, { environment, layer }),\n deleteLayer: (environment: string, key: string) =>\n send<WriteResult>('DELETE', `/layers/${seg(key)}`, { environment }),\n saveHoldout: (environment: string, holdout: Holdout | null) =>\n send<WriteResult>('PUT', '/holdout', { environment, holdout }),\n\n experiments: (environment: string) =>\n http<{ analytics: boolean; experiments: ExperimentRow[] }>(\n `/experiments${buildQuery({ environment })}`,\n ),\n experiment: (key: string, environment: string) =>\n http<ExperimentDetail>(`/experiments/${seg(key)}${buildQuery({ environment })}`),\n recompute: (key: string, environment: string) =>\n send<{ key: string; results: ExperimentResults }>(\n 'POST',\n `/experiments/${seg(key)}/recompute`,\n { environment },\n ),\n\n changeRequests: (environment: string, status: string) =>\n http<{ requiresApproval: boolean; actor: Actor; requests: ChangeRequest[] }>(\n `/change-requests${buildQuery({ environment, status })}`,\n ),\n approve: (id: string, note?: string) =>\n send<{ version: string; request: ChangeRequest }>(\n 'POST',\n `/change-requests/${seg(id)}/approve`,\n {\n note,\n },\n ),\n reject: (id: string, note?: string) =>\n send<{ request: ChangeRequest }>('POST', `/change-requests/${seg(id)}/reject`, { note }),\n cancel: (id: string) =>\n send<{ request: ChangeRequest }>('POST', `/change-requests/${seg(id)}/cancel`),\n\n audit: (environment: string, filters: { entity?: string; key?: string; before?: string }) =>\n http<{ entries: AuditEntry[]; limit: number }>(\n `/audit${buildQuery({ environment, ...filters })}`,\n ),\n\n schedule: (\n environment: string,\n key: string,\n input:\n | { kind: 'enable' | 'disable' | 'rollout'; runAt: string; percent?: number }\n | { steps: Array<{ at: string; percent: number }> },\n ) =>\n send<{ schedules: ScheduledChange[] }>('POST', `/flags/${seg(key)}/schedules`, {\n environment,\n ...input,\n }),\n cancelSchedule: (id: string) =>\n send<{ schedule: ScheduledChange }>('DELETE', `/schedules/${seg(id)}`),\n\n exportRuleset: (environment: string) => http<Ruleset>(`/export${buildQuery({ environment })}`),\n importRuleset: (environment: string, ruleset: unknown, note?: string) =>\n send<WriteResult>('POST', '/import', { environment, ruleset, note }),\n promote: (from: string, to: string, note?: string) =>\n send<WriteResult>('POST', '/promote', { from, to, note }),\n\n stale: (environment: string, unusedDays: number, staticDays: number) =>\n http<{ flags: StaleFlag[]; unusedDays: number; staticDays: number }>(\n `/stale${buildQuery({ environment, unusedDays, staticDays })}`,\n ),\n ops: () => http<Ops>('/ops'),\n};\n","import { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { createContext, type ReactNode, useContext, useState } from 'react';\nimport type { Meta, WriteResult } from '../client/flags-client';\n\n/**\n * The environment every screen reads and writes. It comes from the hash (`?env=`) and falls back\n * to the app's own; the shell owns it, screens only read it.\n */\nexport interface EnvState {\n environment: string;\n meta: Meta | undefined;\n}\n\nconst EnvContext = createContext<EnvState>({ environment: 'production', meta: undefined });\n\nexport function EnvProvider({ value, children }: { value: EnvState; children: ReactNode }) {\n return <EnvContext.Provider value={value}>{children}</EnvContext.Provider>;\n}\n\nexport function useEnv(): EnvState {\n return useContext(EnvContext);\n}\n\n/** What the operator is told after a write: applied, or waiting for someone else. */\nexport function describeWrite(result: WriteResult): string {\n if (result.status === 'applied') return `Applied (version ${result.version}).`;\n return 'Filed for approval: a second person has to approve it in Approvals before it applies.';\n}\n\n/**\n * A write: runs it, refetches every query (a flag edit changes the list, the detail, the audit\n * trail and maybe the pending approvals), and keeps the outcome sentence for the screen to show.\n */\nexport function useWrite<TInput>(\n run: (input: TInput) => Promise<WriteResult>,\n /** Also told the outcome — for a parent that outlives the component doing the write. */\n onNotice?: (notice: string) => void,\n) {\n const client = useQueryClient();\n const [notice, setNotice] = useState<string | null>(null);\n const mutation = useMutation({\n mutationFn: run,\n onSuccess: async (result) => {\n setNotice(describeWrite(result));\n onNotice?.(describeWrite(result));\n await client.invalidateQueries();\n },\n onError: () => setNotice(null),\n });\n return { ...mutation, notice, clearNotice: () => setNotice(null) };\n}\n\n/** The outcome line under a form. */\nexport function Notice({ text }: { text: string | null }) {\n if (text === null) return null;\n return (\n <p role=\"status\" className=\"text-[11px] text-zinc-400\">\n {text}\n </p>\n );\n}\n","import type {\n AttributeCondition,\n Condition,\n ConditionValue,\n Declaration,\n FlagDefinition,\n JsonValue,\n Serve,\n} from '../client/flags-client';\n\n/**\n * The editor's pure helpers: turning what is typed into ruleset JSON and back. Kept out of the\n * component so the conversions — the part that silently corrupts a flag when wrong — are tested.\n */\n\n/** Read a variant value typed into a text box, by the type the code declares. */\nexport function parseVariantValue(text: string, type: Declaration['type'] | undefined): JsonValue {\n const trimmed = text.trim();\n if (type === 'string') return text;\n if (type === 'number') {\n const n = Number(trimmed);\n return trimmed !== '' && Number.isFinite(n) ? n : text;\n }\n if (type === 'boolean') {\n if (trimmed === 'true') return true;\n if (trimmed === 'false') return false;\n return text;\n }\n try {\n return JSON.parse(trimmed) as JsonValue;\n } catch {\n return text;\n }\n}\n\n/** A variant value as the editor's text box shows it. */\nexport function variantText(value: JsonValue): string {\n return typeof value === 'string' ? value : JSON.stringify(value);\n}\n\nconst NUMERIC_OPS = new Set(['gt', 'gte', 'lt', 'lte']);\n\n/** `\"a, b\"` → `['a', 'b']`; numbers for the numeric operators. */\nexport function parseConditionValues(text: string, op: string): ConditionValue[] {\n return text\n .split(',')\n .map((part) => part.trim())\n .filter((part) => part !== '')\n .map((part) => {\n if (NUMERIC_OPS.has(op)) {\n const n = Number(part);\n return Number.isFinite(n) ? n : part;\n }\n if (part === 'true') return true;\n if (part === 'false') return false;\n return part;\n });\n}\n\nexport function conditionValuesText(values: ConditionValue[] | undefined): string {\n return (values ?? []).map(String).join(', ');\n}\n\nexport function isSegmentCondition(\n condition: Condition,\n): condition is { segment: string; negate?: boolean } {\n return 'segment' in condition;\n}\n\nexport function newAttributeCondition(): AttributeCondition {\n return { attribute: '', op: 'in', values: [] };\n}\n\n/** A rule id not used yet (`rule-1`, `rule-2`, …): ids are reported as `ruleId` and must be unique. */\nexport function nextRuleId(existing: Array<{ id: string }>): string {\n const used = new Set(existing.map((rule) => rule.id));\n let n = existing.length + 1;\n while (used.has(`rule-${n}`)) n += 1;\n return `rule-${n}`;\n}\n\n/** Split weights as percentages of their total (weights are relative). */\nexport function splitPercents(split: Array<{ weight: number }>): number[] {\n const total = split.reduce((sum, arm) => sum + Math.max(0, arm.weight), 0);\n return split.map((arm) =>\n total > 0 ? Math.round((Math.max(0, arm.weight) / total) * 10000) / 100 : 0,\n );\n}\n\n/** Switch a serve between fixed and split without losing the variant names. */\nexport function toSplit(serve: Serve, variants: string[]): Serve {\n if ('split' in serve) return serve;\n const names = variants.length > 0 ? variants : [serve.variant];\n return {\n split: names.map((variant) => ({ variant, weight: variant === serve.variant ? 100 : 0 })),\n };\n}\n\nexport function toFixed(serve: Serve, variants: string[]): Serve {\n if ('variant' in serve) return serve;\n const heaviest = [...serve.split].sort((a, b) => b.weight - a.weight)[0];\n return { variant: heaviest?.variant ?? variants[0] ?? '' };\n}\n\n/** Rename a variant everywhere the definition names it (off variant, serves, overrides). */\nexport function renameVariant(\n definition: FlagDefinition,\n from: string,\n to: string,\n): FlagDefinition {\n if (from === to) return definition;\n const swap = (name: string) => (name === from ? to : name);\n const serve = (s: Serve): Serve =>\n 'variant' in s\n ? { variant: swap(s.variant) }\n : { ...s, split: s.split.map((arm) => ({ ...arm, variant: swap(arm.variant) })) };\n const variants: Record<string, JsonValue> = {};\n for (const [name, value] of Object.entries(definition.variants)) variants[swap(name)] = value;\n return {\n ...definition,\n variants,\n offVariant: swap(definition.offVariant),\n fallthrough: serve(definition.fallthrough),\n ...(definition.rules\n ? { rules: definition.rules.map((rule) => ({ ...rule, serve: serve(rule.serve) })) }\n : {}),\n ...(definition.overrides\n ? {\n overrides: Object.fromEntries(\n Object.entries(definition.overrides).map(([k, v]) => [k, swap(v)]),\n ),\n }\n : {}),\n };\n}\n\n/** Drop empty optional parts so a save does not record `rules: []` noise in the audit trail. */\nexport function cleanDefinition(definition: FlagDefinition): FlagDefinition {\n const out: FlagDefinition = {\n variants: definition.variants,\n enabled: definition.enabled,\n offVariant: definition.offVariant,\n fallthrough: definition.fallthrough,\n };\n if (definition.rules && definition.rules.length > 0) out.rules = definition.rules;\n if (definition.overrides && Object.keys(definition.overrides).length > 0) {\n out.overrides = definition.overrides;\n }\n if (definition.prerequisites && definition.prerequisites.length > 0) {\n out.prerequisites = definition.prerequisites;\n }\n if (definition.salt) out.salt = definition.salt;\n if (definition.experiment) {\n const e: NonNullable<FlagDefinition['experiment']> = {};\n if (definition.experiment.key) e.key = definition.experiment.key;\n if (definition.experiment.layer) e.layer = definition.experiment.layer;\n if (definition.experiment.holdout === false) e.holdout = false;\n out.experiment = e;\n }\n if (definition.tags && definition.tags.length > 0) out.tags = definition.tags;\n return out;\n}\n\n/** Whether a definition is a plain on/off flag (the quick-rollout control applies). */\nexport function isOnOff(definition: FlagDefinition): boolean {\n const names = Object.keys(definition.variants).sort();\n return names.length === 2 && names[0] === 'off' && names[1] === 'on';\n}\n\n/** Gradual-rollout steps every `hours` from `start`, reaching 100% (e.g. 10, 25, 50, 100). */\nexport function rolloutSteps(\n start: Date,\n percents: number[],\n hours: number,\n): Array<{ at: string; percent: number }> {\n return percents.map((percent, i) => ({\n at: new Date(start.getTime() + i * hours * 3_600_000).toISOString(),\n percent,\n }));\n}\n\n/** `<input type=\"datetime-local\">` value ↔ ISO. */\nexport function localInputToIso(value: string): string | null {\n if (value === '') return null;\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date.toISOString();\n}\n\nexport function isoToLocalInput(iso: string): string {\n const date = new Date(iso);\n const pad = (n: number) => String(n).padStart(2, '0');\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}T${pad(date.getHours())}:${pad(date.getMinutes())}`;\n}\n","import type { JsonValue, Serving, StaleReason } from '../client/flags-client';\n\n/** A JSON value as one short line (`true`, `\"b\"`, `{…}`). */\nexport function formatValue(value: JsonValue | null | undefined): string {\n if (value === undefined) return '—';\n if (typeof value === 'string') return JSON.stringify(value);\n const text = JSON.stringify(value);\n return text.length > 40 ? `${text.slice(0, 37)}…` : text;\n}\n\n/** What a flag serves to everyone no rule matches, in words. */\nexport function describeServing(serving: Serving): string {\n switch (serving.kind) {\n case 'default':\n return `code default ${formatValue(serving.value)}`;\n case 'off':\n return `off → ${serving.variant}`;\n case 'fixed':\n return serving.variant;\n case 'rollout':\n return `${serving.percent}% on`;\n case 'split':\n return (\n serving.arms.map((arm) => `${arm.variant} ${arm.percent}%`).join(' / ') +\n (serving.bucketBy ? ` by ${serving.bucketBy}` : '')\n );\n }\n}\n\n/** The status hue a serving summary takes (`s-<tone>` in `index.css`). */\nexport function servingTone(serving: Serving): 'on' | 'off' | 'default' | 'pending' {\n switch (serving.kind) {\n case 'default':\n return 'default';\n case 'off':\n return 'off';\n case 'fixed':\n return serving.variant === 'off' ? 'off' : 'on';\n case 'rollout':\n return serving.percent >= 100 ? 'on' : serving.percent <= 0 ? 'off' : 'pending';\n case 'split':\n return 'pending';\n }\n}\n\nexport const STALE_LABELS: Record<StaleReason, string> = {\n unused: 'not evaluated lately',\n expired: 'past its expiry',\n static: 'serves one value to everyone',\n undeclared: 'not declared in code',\n missing: 'declared, not configured',\n};\n\n/** `0.0123` → `+1.23%`. */\nexport function formatPercent(fraction: number, digits = 2): string {\n if (!Number.isFinite(fraction)) return '—';\n const value = (fraction * 100).toFixed(digits);\n return `${fraction > 0 ? '+' : ''}${value}%`;\n}\n\n/** A p-value as people read it: `<0.001` below a thousandth. */\nexport function formatP(p: number): string {\n if (!Number.isFinite(p)) return '—';\n if (p < 0.001) return '<0.001';\n return p.toFixed(3);\n}\n\n/** A mean as it should look for its metric: a rate for conversions, a number otherwise. */\nexport function formatMean(kind: string, mean: number): string {\n if (!Number.isFinite(mean)) return '—';\n if (kind === 'conversion') return `${(mean * 100).toFixed(2)}%`;\n return Math.abs(mean) >= 100 ? mean.toFixed(0) : mean.toFixed(3);\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Concatenates two arrays faster than the array spread operator.\n */\nconst concatArrays = (array1, array2) => {\n // Pre-allocate for better V8 optimization\n const combinedArray = new Array(array1.length + array2.length);\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i];\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i];\n }\n return combinedArray;\n};\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (classGroupId, validator) => ({\n classGroupId,\n validator\n});\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (nextPart = new Map(), validators = null, classGroupId) => ({\n nextPart,\n validators,\n classGroupId\n});\nconst CLASS_PART_SEPARATOR = '-';\nconst EMPTY_CONFLICTS = [];\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className);\n }\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0;\n return getGroupRecursive(classParts, startIndex, classMap);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId];\n const baseConflicts = conflictingClassGroups[classGroupId];\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts);\n }\n // Only modifier conflicts\n return modifierConflicts;\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS;\n }\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, startIndex, classPartObject) => {\n const classPathsLength = classParts.length - startIndex;\n if (classPathsLength === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[startIndex];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);\n if (result) return result;\n }\n const validators = classPartObject.validators;\n if (validators === null) {\n return undefined;\n }\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);\n const validatorsLength = validators.length;\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i];\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId;\n }\n }\n return undefined;\n};\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = className => className.slice(1, -1).indexOf(':') === -1 ? undefined : (() => {\n const content = className.slice(1, -1);\n const colonIndex = content.indexOf(':');\n const property = content.slice(0, colonIndex);\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined;\n})();\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n return processClassGroups(classGroups, theme);\n};\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (classGroups, theme) => {\n const classMap = createClassPartObject();\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId];\n processClassesRecursively(group, classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n const len = classGroup.length;\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i];\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme);\n }\n};\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId);\n return;\n }\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);\n return;\n }\n processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);\n};\nconst processStringDefinition = (classDefinition, classPartObject, classGroupId) => {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n};\nconst processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n if (classPartObject.validators === null) {\n classPartObject.validators = [];\n }\n classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));\n};\nconst processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n const entries = Object.entries(classDefinition);\n const len = entries.length;\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i];\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);\n }\n};\nconst getPart = (classPartObject, path) => {\n let current = classPartObject;\n const parts = path.split(CLASS_PART_SEPARATOR);\n const len = parts.length;\n for (let i = 0; i < len; i++) {\n const part = parts[i];\n let next = current.nextPart.get(part);\n if (!next) {\n next = createClassPartObject();\n current.nextPart.set(part, next);\n }\n current = next;\n }\n return current;\n};\n// Type guard maintains monomorphic check\nconst isThemeGetter = func => 'isThemeGetter' in func && func.isThemeGetter === true;\n\n// LRU cache implementation using plain objects for simplicity\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = Object.create(null);\n let previousCache = Object.create(null);\n const update = (key, value) => {\n cache[key] = value;\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = Object.create(null);\n }\n };\n return {\n get(key) {\n let value = cache[key];\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value;\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst EMPTY_MODIFIERS = [];\n// Pre-allocated result object shape for consistency\nconst createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal\n});\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n // Use simple array with push for better performance\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n const len = className.length;\n for (let index = 0; index < len; index++) {\n const currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + 1;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') bracketDepth++;else if (currentCharacter === ']') bracketDepth--;else if (currentCharacter === '(') parenDepth++;else if (currentCharacter === ')') parenDepth--;\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier;\n let hasImportantModifier = false;\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1);\n hasImportantModifier = true;\n } else if (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(1);\n hasImportantModifier = true;\n }\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true);\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map();\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index); // High weights for sensitive mods\n });\n return modifiers => {\n const result = [];\n let currentSegment = [];\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i];\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '[';\n const isOrderSensitive = modifierWeights.has(modifier);\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n currentSegment = [];\n }\n result.push(modifier);\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier);\n }\n }\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n }\n return result;\n };\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n postfixLookupClassGroupIds: createPostfixLookupClassGroupIds(config),\n ...createClassGroupUtils(config)\n});\nconst createPostfixLookupClassGroupIds = config => {\n const lookup = Object.create(null);\n const classGroupIds = config.postfixLookupClassGroups;\n if (classGroupIds) {\n for (let i = 0; i < classGroupIds.length; i++) {\n lookup[classGroupIds[i]] = true;\n }\n }\n return lookup;\n};\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers,\n postfixLookupClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId;\n if (hasPostfixModifier) {\n const baseClassNameWithoutPostfix = baseClassName.substring(0, maybePostfixModifierPosition);\n classGroupId = getClassGroupId(baseClassNameWithoutPostfix);\n const classGroupIdWithPostfix = classGroupId && postfixLookupClassGroupIds[classGroupId] ? getClassGroupId(baseClassName) : undefined;\n if (classGroupIdWithPostfix && classGroupIdWithPostfix !== classGroupId) {\n classGroupId = classGroupIdWithPostfix;\n hasPostfixModifier = false;\n }\n } else {\n classGroupId = getClassGroupId(baseClassName);\n }\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n // Fast path: skip sorting for empty or single modifier\n const variantModifier = modifiers.length === 0 ? '' : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.indexOf(classId) > -1) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nconst twJoin = (...classLists) => {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < classLists.length) {\n if (argument = classLists[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nconst toValue = mix => {\n // Fast path for strings\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nconst createTailwindMerge = (createConfigFirst, ...createConfigRest) => {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall;\n const initTailwindMerge = classList => {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n };\n const tailwindMerge = classList => {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n };\n functionToCall = initTailwindMerge;\n return (...args) => functionToCall(twJoin(...args));\n};\nconst fallbackThemeArr = [];\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || fallbackThemeArr;\n themeGetter.isThemeGetter = true;\n themeGetter.themeKey = key;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+(?:\\.\\d+)?\\/\\d+(?:\\.\\d+)?$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix|color|light-dark)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isNamedContainerQuery = value => value.startsWith('@container') && (value[10] === '/' && value[11] !== undefined || value[11] === 's' && value[16] !== undefined && value.startsWith('-size/', 10) || value[11] === 'n' && value[18] !== undefined && value.startsWith('-normal/', 10));\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryWeight = value => getIsArbitraryValue(value, isLabelWeight, isAny);\nconst isArbitraryFamilyName = value => getIsArbitraryValue(value, isLabelFamilyName, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\nconst isArbitraryVariableWeight = value => getIsArbitraryVariable(value, isLabelWeight, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelWeight = label => label === 'number' || label === 'weight';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryFamilyName,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isArbitraryVariableWeight,\n isArbitraryWeight,\n isFraction,\n isInteger,\n isNamedContainerQuery,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleSizingInline = () => [themeContainer, isFraction, 'screen', 'full', 'dvw', 'lvw', 'svw', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleSizingBlock = () => [isFraction, 'screen', 'full', 'lh', 'dvh', 'lvh', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Container Type\n * @see https://tailwindcss.com/docs/responsive-design#container-queries\n */\n 'container-type': [{\n '@container': ['', 'normal', 'size', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Container Name\n * @see https://tailwindcss.com/docs/responsive-design#named-containers\n */\n 'container-named': [isNamedContainerQuery],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, 'auto', isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Inset\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Inset Inline\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Inset Block\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Inset Inline Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n * @todo class group will be renamed to `inset-s` in next major release\n */\n start: [{\n 'inset-s': scaleInset(),\n /**\n * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.\n * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n */\n start: scaleInset()\n }],\n /**\n * Inset Inline End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n * @todo class group will be renamed to `inset-e` in next major release\n */\n end: [{\n 'inset-e': scaleInset(),\n /**\n * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.\n * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n */\n end: scaleInset()\n }],\n /**\n * Inset Block Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-bs': [{\n 'inset-bs': scaleInset()\n }],\n /**\n * Inset Block End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-be': [{\n 'inset-be': scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Inline\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Block\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Inline Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Inline End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Block Start\n * @see https://tailwindcss.com/docs/padding\n */\n pbs: [{\n pbs: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Block End\n * @see https://tailwindcss.com/docs/padding\n */\n pbe: [{\n pbe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin Inline\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Block\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Inline Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin Inline End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Block Start\n * @see https://tailwindcss.com/docs/margin\n */\n mbs: [{\n mbs: scaleMargin()\n }],\n /**\n * Margin Block End\n * @see https://tailwindcss.com/docs/margin\n */\n mbe: [{\n mbe: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Inline Size\n * @see https://tailwindcss.com/docs/inline-size\n */\n 'inline-size': [{\n inline: ['auto', ...scaleSizingInline()]\n }],\n /**\n * Min-Inline Size\n * @see https://tailwindcss.com/docs/min-inline-size\n */\n 'min-inline-size': [{\n 'min-inline': ['auto', ...scaleSizingInline()]\n }],\n /**\n * Max-Inline Size\n * @see https://tailwindcss.com/docs/max-inline-size\n */\n 'max-inline-size': [{\n 'max-inline': ['none', ...scaleSizingInline()]\n }],\n /**\n * Block Size\n * @see https://tailwindcss.com/docs/block-size\n */\n 'block-size': [{\n block: ['auto', ...scaleSizingBlock()]\n }],\n /**\n * Min-Block Size\n * @see https://tailwindcss.com/docs/min-block-size\n */\n 'min-block-size': [{\n 'min-block': ['auto', ...scaleSizingBlock()]\n }],\n /**\n * Max-Block Size\n * @see https://tailwindcss.com/docs/max-block-size\n */\n 'max-block-size': [{\n 'max-block': ['none', ...scaleSizingBlock()]\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont]\n }],\n /**\n * Font Feature Settings\n * @see https://tailwindcss.com/docs/font-feature-settings\n */\n 'font-features': [{\n 'font-features': [isArbitraryValue]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Tab Size\n * @see https://tailwindcss.com/docs/tab-size\n */\n 'tab-size': [{\n tab: [isInteger, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: ['', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width Inline\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Block\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Inline Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width Inline End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Block Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-bs': [{\n 'border-bs': scaleBorderWidth()\n }],\n /**\n * Border Width Block End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-be': [{\n 'border-be': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color Inline\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Block\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color Inline Start\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color Inline End\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Block Start\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-bs': [{\n 'border-bs': scaleColor()\n }],\n /**\n * Border Color Block End\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-be': [{\n 'border-be': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n // Deprecated since Tailwind CSS v4.0.0\n 'inner', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n /**\n * Zoom\n * @see https://tailwindcss.com/docs/zoom\n */\n zoom: [{\n zoom: [isInteger, isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scrollbar Thumb Color\n * @see https://tailwindcss.com/docs/scrollbar-color\n */\n 'scrollbar-thumb-color': [{\n 'scrollbar-thumb': scaleColor()\n }],\n /**\n * Scrollbar Track Color\n * @see https://tailwindcss.com/docs/scrollbar-color\n */\n 'scrollbar-track-color': [{\n 'scrollbar-track': scaleColor()\n }],\n /**\n * Scrollbar Gutter\n * @see https://tailwindcss.com/docs/scrollbar-gutter\n */\n 'scrollbar-gutter': [{\n 'scrollbar-gutter': ['auto', 'stable', 'both']\n }],\n /**\n * Scrollbar Width\n * @see https://tailwindcss.com/docs/scrollbar-width\n */\n 'scrollbar-w': [{\n scrollbar: ['auto', 'thin', 'none']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Inline\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Block\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Inline Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Inline End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Block Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mbs': [{\n 'scroll-mbs': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Block End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mbe': [{\n 'scroll-mbe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Inline\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Block\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Inline Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Inline End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Block Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pbs': [{\n 'scroll-pbs': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Block End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pbe': [{\n 'scroll-pbe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n 'container-named': ['container-type'],\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'inset-bs', 'inset-be', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['start', 'end', 'right', 'left'],\n 'inset-y': ['inset-bs', 'inset-be', 'top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pbs', 'pbe', 'pt', 'pr', 'pb', 'pl'],\n px: ['ps', 'pe', 'pr', 'pl'],\n py: ['pbs', 'pbe', 'pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mbs', 'mbe', 'mt', 'mr', 'mb', 'ml'],\n mx: ['ms', 'me', 'mr', 'ml'],\n my: ['mbs', 'mbe', 'mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-bs', 'border-w-be', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-s', 'border-w-e', 'border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-bs', 'border-w-be', 'border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-bs', 'border-color-be', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-s', 'border-color-e', 'border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-bs', 'border-color-be', 'border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mbs', 'scroll-mbe', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-ms', 'scroll-me', 'scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mbs', 'scroll-mbe', 'scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pbs', 'scroll-pbe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-ps', 'scroll-pe', 'scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pbs', 'scroll-pbe', 'scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n postfixLookupClassGroups: ['container-type'],\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'postfixLookupClassGroups', override.postfixLookupClassGroups);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'postfixLookupClassGroups');\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/** shadcn's class combiner: `clsx` for conditionals, `tailwind-merge` so a caller's `className`\n * actually WINS over a variant's default instead of depending on stylesheet order. */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import type { UseQueryResult } from '@tanstack/react-query';\nimport type { ReactNode } from 'react';\nimport type { Issue } from '../client/flags-client';\nimport { cn } from './ui/cn';\n\n/** A bordered surface with a heading — the one container every screen uses. */\nexport function Panel({\n title,\n subtitle,\n actions,\n className,\n children,\n}: {\n title: string;\n subtitle?: string | undefined;\n actions?: ReactNode;\n className?: string;\n children: ReactNode;\n}) {\n return (\n <section className={cn('rounded-sm border border-line bg-panel', className)}>\n <header className=\"flex flex-wrap items-center justify-between gap-3 border-b border-line px-4 py-3\">\n <div className=\"min-w-0\">\n <h2 className=\"text-sm text-zinc-200\">{title}</h2>\n {subtitle !== undefined && <p className=\"mt-0.5 text-[11px] text-zinc-500\">{subtitle}</p>}\n </div>\n {actions !== undefined && <div className=\"min-w-0 max-w-full\">{actions}</div>}\n </header>\n <div className=\"overflow-x-auto\">{children}</div>\n </section>\n );\n}\n\n/** Loading / error / empty, rendered once. The error shows the server's own sentence. */\nexport function QueryState<T>({\n query,\n empty,\n emptyMessage,\n children,\n}: {\n query: UseQueryResult<T>;\n empty: boolean;\n emptyMessage?: string;\n children: ReactNode;\n}) {\n if (query.isPending) return <p className=\"p-4 text-sm text-zinc-500\">Loading…</p>;\n if (query.isError) return <ErrorBox error={query.error} />;\n if (empty) {\n return <p className=\"p-4 text-sm text-zinc-500\">{emptyMessage ?? 'Nothing here yet.'}</p>;\n }\n return <>{children}</>;\n}\n\nexport function ErrorBox({ error }: { error: unknown }) {\n const issues = (error as { issues?: Issue[] } | null)?.issues ?? [];\n return (\n <div role=\"alert\" className=\"rounded-sm border border-bad/40 bg-bad/10 p-3\">\n <p className=\"text-sm text-rose-300\">\n {error instanceof Error ? error.message : 'Request failed.'}\n </p>\n <IssueList issues={issues} />\n </div>\n );\n}\n\nexport function IssueList({ issues }: { issues: Issue[] }) {\n if (issues.length === 0) return null;\n return (\n <ul className=\"mt-2 space-y-1 text-xs\">\n {issues.map((issue) => (\n <li key={`${issue.path}:${issue.message}`} className=\"text-rose-200\">\n <span className=\"mono text-rose-300/80\">{issue.path}</span> {issue.message}\n </li>\n ))}\n </ul>\n );\n}\n\n/** A table with the console's header styling. */\nexport function Table({ head, children }: { head: string[]; children: ReactNode }) {\n return (\n <table className=\"w-full text-left text-xs\">\n <thead className=\"border-b border-line text-[10px] uppercase tracking-wider text-zinc-500\">\n <tr>\n {head.map((label) => (\n <th key={label} className=\"px-4 py-2 font-normal\">\n {label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"divide-y divide-line-soft\">{children}</tbody>\n </table>\n );\n}\n\n/** \"2026-11-11 14:05\" in the viewer's zone — every timestamp in the console. */\nexport function formatTime(iso: string | null | undefined): string {\n if (!iso) return '—';\n const date = new Date(iso);\n if (Number.isNaN(date.getTime())) return String(iso);\n const pad = (n: number) => String(n).padStart(2, '0');\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`;\n}\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport { forwardRef } from 'react';\nimport { cn } from './cn';\n\n/**\n * A non-interactive label chip: the provider, the event type, a gateway id.\n *\n * The `status` variant is colourless on purpose — a status badge takes its hue from the\n * `s-<status>` class in `index.css`, which is the single place status colour is defined.\n * Copied in shape from `@adonis-agora/durable-dashboard`'s `ui/badge.tsx`.\n */\nexport const badgeVariants = cva(\n 'inline-flex items-center gap-1.5 rounded-sm border px-1.5 text-[10px] leading-relaxed',\n {\n variants: {\n variant: {\n outline: 'border-line bg-zinc-800/40 text-zinc-400',\n /** The gateway that produced the row (stripe/asaas/woovi/abacate). */\n provider: 'border-sky-500/30 bg-sky-500/10 text-sky-300',\n /** The webhook event type (`payment.succeeded`, ...). */\n type: 'border-indigo-500/30 bg-indigo-500/10 text-indigo-300',\n /** Something that needs acting on. */\n danger: 'border-rose-500/40 bg-rose-500/10 text-rose-300',\n /** Status — colour comes from the caller's `s-<status>` class. */\n status: 'border-transparent px-0 uppercase tracking-wider',\n },\n },\n defaultVariants: { variant: 'outline' },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, ...props }, ref) => (\n <span ref={ref} className={cn(badgeVariants({ variant }), className)} {...props} />\n ),\n);\nBadge.displayName = 'Badge';\n","import type {\n ButtonHTMLAttributes,\n InputHTMLAttributes,\n ReactNode,\n SelectHTMLAttributes,\n TextareaHTMLAttributes,\n} from 'react';\nimport { cn } from './cn';\n\n/** The console's few form primitives. Plain elements with the shared look — no component library. */\n\ntype ButtonVariant = 'default' | 'primary' | 'danger' | 'ghost';\n\nconst BUTTON: Record<ButtonVariant, string> = {\n default: 'border-line bg-panel-2 text-zinc-200 enabled:hover:border-zinc-600',\n primary: 'border-brand/45 bg-brand/15 text-brand enabled:hover:bg-brand/25',\n danger: 'border-bad/40 bg-bad/10 text-rose-300 enabled:hover:bg-bad/20',\n ghost: 'border-transparent text-zinc-400 enabled:hover:bg-panel-2 enabled:hover:text-zinc-200',\n};\n\nexport function Button({\n variant = 'default',\n className,\n type = 'button',\n ...props\n}: ButtonHTMLAttributes<HTMLButtonElement> & { variant?: ButtonVariant }) {\n return (\n <button\n type={type}\n className={cn(\n 'inline-flex items-center gap-1.5 rounded-sm border px-2.5 py-1 text-xs transition-colors disabled:opacity-40',\n BUTTON[variant],\n className,\n )}\n {...props}\n />\n );\n}\n\nconst FIELD =\n 'rounded-sm border border-line bg-background px-2 py-1 text-xs text-zinc-200 placeholder:text-zinc-600 focus:border-brand/60 focus:outline-none';\n\nexport function Input({ className, ...props }: InputHTMLAttributes<HTMLInputElement>) {\n return <input className={cn(FIELD, className)} {...props} />;\n}\n\nexport function Select({\n className,\n children,\n ...props\n}: SelectHTMLAttributes<HTMLSelectElement> & { children: ReactNode }) {\n return (\n <select className={cn(FIELD, 'pr-6', className)} {...props}>\n {children}\n </select>\n );\n}\n\nexport function TextArea({ className, ...props }: TextareaHTMLAttributes<HTMLTextAreaElement>) {\n return <textarea className={cn(FIELD, 'mono w-full', className)} {...props} />;\n}\n\n/** A label above a control. */\nexport function Field({\n label,\n hint,\n children,\n className,\n}: {\n label: string;\n hint?: string;\n children: ReactNode;\n className?: string;\n}) {\n return (\n // biome-ignore lint/a11y/noLabelWithoutControl: the control is the child.\n <label className={cn('flex flex-col gap-1 text-[11px] text-zinc-500', className)}>\n <span>{label}</span>\n {children}\n {hint !== undefined && <span className=\"text-[10px] text-zinc-600\">{hint}</span>}\n </label>\n );\n}\n\n/** An on/off switch with a real checkbox underneath (keyboard and screen readers just work). */\nexport function Toggle({\n checked,\n onChange,\n label,\n disabled,\n}: {\n checked: boolean;\n onChange: (checked: boolean) => void;\n label: string;\n disabled?: boolean;\n}) {\n return (\n <label className=\"inline-flex cursor-pointer items-center gap-2 text-xs\">\n <input\n type=\"checkbox\"\n role=\"switch\"\n aria-checked={checked}\n aria-label={label}\n className=\"peer sr-only\"\n checked={checked}\n disabled={disabled}\n onChange={(event) => onChange(event.target.checked)}\n />\n <span\n aria-hidden=\"true\"\n className={cn(\n 'relative h-4 w-7 rounded-full border transition-colors peer-disabled:opacity-40 peer-focus-visible:ring-1 peer-focus-visible:ring-brand',\n checked ? 'border-good/50 bg-good/30' : 'border-line bg-panel-2',\n )}\n >\n <span\n className={cn(\n 'absolute top-0.5 h-2.5 w-2.5 rounded-full transition-all',\n checked ? 'left-3.5 bg-good' : 'left-0.5 bg-zinc-500',\n )}\n />\n </span>\n </label>\n );\n}\n","import { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport {\n type AuditEntry,\n api,\n type EvaluationDetails,\n type FlagDefinition,\n type ScheduledChange,\n} from '../client/flags-client';\nimport { localInputToIso, rolloutSteps } from './flag-model';\nimport { formatValue } from './serving';\nimport { ErrorBox, formatTime, Table } from './shell';\nimport { Badge } from './ui/badge';\nimport { Button, Field, Input, Select, TextArea } from './ui/form';\n\n/**\n * \"What would this person get?\" — evaluates the DRAFT (unsaved edits included) for a context. The\n * server evaluates with the engine directly, so testing records no exposure.\n */\nexport function EvaluateTester({\n environment,\n flagKey,\n draft,\n}: {\n environment: string;\n flagKey: string;\n draft: FlagDefinition;\n}) {\n const [targetingKey, setTargetingKey] = useState('');\n const [attributes, setAttributes] = useState('{}');\n const [parseError, setParseError] = useState<string | null>(null);\n const run = useMutation({\n mutationFn: (context: Record<string, unknown>) =>\n api.evaluate(environment, { flag: flagKey, context, definition: draft }),\n });\n const result: EvaluationDetails | undefined = run.data?.result;\n\n const submit = () => {\n let parsed: unknown;\n try {\n parsed = JSON.parse(attributes === '' ? '{}' : attributes);\n } catch {\n setParseError('Attributes must be a JSON object.');\n return;\n }\n if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {\n setParseError('Attributes must be a JSON object.');\n return;\n }\n setParseError(null);\n run.mutate({\n ...(parsed as Record<string, unknown>),\n ...(targetingKey ? { targetingKey } : {}),\n });\n };\n\n return (\n <div className=\"space-y-2\">\n <div className=\"flex flex-wrap items-end gap-2\">\n <Field label=\"Targeting key\">\n <Input\n aria-label=\"Targeting key\"\n className=\"mono w-48\"\n placeholder=\"user id\"\n value={targetingKey}\n onChange={(e) => setTargetingKey(e.target.value)}\n />\n </Field>\n <Field label=\"Attributes (JSON)\" className=\"min-w-0 flex-1\">\n <TextArea\n aria-label=\"Attributes\"\n rows={2}\n value={attributes}\n onChange={(e) => setAttributes(e.target.value)}\n />\n </Field>\n <Button variant=\"primary\" onClick={submit} disabled={run.isPending}>\n Evaluate\n </Button>\n </div>\n {parseError !== null && <p className=\"text-xs text-rose-300\">{parseError}</p>}\n {run.isError && <ErrorBox error={run.error} />}\n {result && (\n <dl className=\"mono grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 rounded-sm border border-line-soft p-2 text-[11px]\">\n <dt className=\"text-zinc-500\">value</dt>\n <dd className=\"text-zinc-100\" data-testid=\"evaluated-value\">\n {formatValue(result.value)}\n </dd>\n <dt className=\"text-zinc-500\">variant</dt>\n <dd>{result.variant ?? '—'}</dd>\n <dt className=\"text-zinc-500\">reason</dt>\n <dd>{result.reason}</dd>\n {result.flagMetadata.ruleId !== undefined && (\n <>\n <dt className=\"text-zinc-500\">rule</dt>\n <dd>{String(result.flagMetadata.ruleId)}</dd>\n </>\n )}\n {result.errorCode && (\n <>\n <dt className=\"text-zinc-500\">error</dt>\n <dd className=\"text-rose-300\">\n {result.errorCode} {result.errorMessage}\n </dd>\n </>\n )}\n </dl>\n )}\n </div>\n );\n}\n\nconst STEP_PRESET = [10, 25, 50, 100];\n\n/** Scheduled changes for this flag, plus forms for one change or a gradual rollout. */\nexport function SchedulesPanel({\n environment,\n flagKey,\n schedules,\n onOff,\n}: {\n environment: string;\n flagKey: string;\n schedules: ScheduledChange[];\n /** Rollouts only make sense for on/off flags. */\n onOff: boolean;\n}) {\n const client = useQueryClient();\n const refresh = () => client.invalidateQueries();\n const [kind, setKind] = useState<'enable' | 'disable' | 'rollout'>('enable');\n const [runAt, setRunAt] = useState('');\n const [percent, setPercent] = useState(50);\n const [start, setStart] = useState('');\n const [every, setEvery] = useState(24);\n const [steps, setSteps] = useState(STEP_PRESET.join(', '));\n\n const one = useMutation({\n mutationFn: () => {\n const iso = localInputToIso(runAt);\n if (!iso) throw new Error('Pick when the change should run.');\n return api.schedule(environment, flagKey, {\n kind,\n runAt: iso,\n ...(kind === 'rollout' ? { percent } : {}),\n });\n },\n onSuccess: refresh,\n });\n const gradual = useMutation({\n mutationFn: () => {\n const iso = localInputToIso(start);\n if (!iso) throw new Error('Pick when the rollout starts.');\n const percents = steps\n .split(',')\n .map((s) => Number(s.trim()))\n .filter((n) => Number.isFinite(n));\n if (percents.length === 0) throw new Error('List the percentages, e.g. 10, 25, 50, 100.');\n return api.schedule(environment, flagKey, {\n steps: rolloutSteps(new Date(iso), percents, every),\n });\n },\n onSuccess: refresh,\n });\n const cancel = useMutation({ mutationFn: api.cancelSchedule, onSuccess: refresh });\n\n return (\n <div className=\"space-y-3\">\n {schedules.length === 0 ? (\n <p className=\"text-[11px] text-zinc-500\">Nothing scheduled.</p>\n ) : (\n <Table head={['When', 'Change', 'Status', 'By', '']}>\n {schedules.map((s) => (\n <tr key={s.id}>\n <td className=\"px-4 py-1.5 mono\">{formatTime(s.runAt)}</td>\n <td className=\"px-4 py-1.5\">\n {s.kind === 'rollout' ? `rollout to ${s.payload.percent}%` : s.kind}\n </td>\n <td className={`px-4 py-1.5 s-${s.status}`}>\n {s.status}\n {s.error && <span className=\"block text-[10px] text-rose-300\">{s.error}</span>}\n </td>\n <td className=\"px-4 py-1.5 text-zinc-400\">{s.createdBy.name ?? s.createdBy.id}</td>\n <td className=\"px-4 py-1.5 text-right\">\n {s.status === 'pending' && (\n <Button variant=\"ghost\" onClick={() => cancel.mutate(s.id)}>\n Cancel\n </Button>\n )}\n </td>\n </tr>\n ))}\n </Table>\n )}\n <div className=\"flex flex-wrap items-end gap-2\">\n <Field label=\"Change\">\n <Select\n aria-label=\"Scheduled change\"\n value={kind}\n onChange={(e) => setKind(e.target.value as typeof kind)}\n >\n <option value=\"enable\">Enable</option>\n <option value=\"disable\">Disable (kill switch)</option>\n {onOff && <option value=\"rollout\">Roll out to %</option>}\n </Select>\n </Field>\n {kind === 'rollout' && (\n <Field label=\"Percent\">\n <Input\n aria-label=\"Scheduled percent\"\n type=\"number\"\n min={0}\n max={100}\n className=\"w-20\"\n value={percent}\n onChange={(e) => setPercent(Number(e.target.value))}\n />\n </Field>\n )}\n <Field label=\"At\">\n <Input\n aria-label=\"Run at\"\n type=\"datetime-local\"\n value={runAt}\n onChange={(e) => setRunAt(e.target.value)}\n />\n </Field>\n <Button onClick={() => one.mutate()} disabled={one.isPending}>\n Schedule\n </Button>\n </div>\n {onOff && (\n <div className=\"flex flex-wrap items-end gap-2\">\n <Field label=\"Gradual rollout from\">\n <Input\n aria-label=\"Rollout start\"\n type=\"datetime-local\"\n value={start}\n onChange={(e) => setStart(e.target.value)}\n />\n </Field>\n <Field label=\"Every (hours)\">\n <Input\n aria-label=\"Hours between steps\"\n type=\"number\"\n min={1}\n className=\"w-20\"\n value={every}\n onChange={(e) => setEvery(Number(e.target.value))}\n />\n </Field>\n <Field label=\"Steps (%)\">\n <Input\n aria-label=\"Rollout steps\"\n className=\"mono w-40\"\n value={steps}\n onChange={(e) => setSteps(e.target.value)}\n />\n </Field>\n <Button onClick={() => gradual.mutate()} disabled={gradual.isPending}>\n Schedule rollout\n </Button>\n </div>\n )}\n {one.isError && <ErrorBox error={one.error} />}\n {gradual.isError && <ErrorBox error={gradual.error} />}\n {cancel.isError && <ErrorBox error={cancel.error} />}\n </div>\n );\n}\n\n/** The flag's audit trail, newest first, with the before/after of each change. */\nexport function HistoryPanel({ entries }: { entries: AuditEntry[] }) {\n if (entries.length === 0) {\n return (\n <p className=\"text-[11px] text-zinc-500\">No changes recorded in this environment yet.</p>\n );\n }\n return (\n <ul className=\"space-y-1\">\n {entries.map((entry) => (\n <li key={entry.id} className=\"rounded-sm border border-line-soft\">\n <details>\n <summary className=\"flex cursor-pointer flex-wrap items-center gap-2 px-2 py-1.5 text-xs\">\n <span className=\"mono text-zinc-500\">{formatTime(entry.at)}</span>\n <Badge>{entry.action}</Badge>\n <span className=\"text-zinc-300\">{entry.actor.name ?? entry.actor.id}</span>\n <span className=\"mono text-[10px] text-zinc-600\">v{entry.version}</span>\n {entry.changeRequestId && <Badge variant=\"type\">approved request</Badge>}\n </summary>\n <div className=\"grid gap-2 border-t border-line-soft p-2 md:grid-cols-2\">\n <pre className=\"mono overflow-x-auto text-[10px] text-zinc-500\">\n {JSON.stringify(entry.before, null, 2)}\n </pre>\n <pre className=\"mono overflow-x-auto text-[10px] text-zinc-300\">\n {JSON.stringify(entry.after, null, 2)}\n </pre>\n </div>\n </details>\n </li>\n ))}\n </ul>\n );\n}\n","import { cn } from './cn';\n\n/**\n * A one-of-N pill selector — the tab bar, the period picker, the status filter.\n *\n * This console's whole interaction surface is \"pick one of a few things\", so it gets ONE control\n * instead of three near-identical ones. `value` may be `undefined` for an \"all\" option, which is\n * why options carry `value?: string` rather than a bare string.\n *\n * It scrolls sideways rather than wrapping or overflowing: seven tabs (or eight payment statuses)\n * do not fit a phone, and a flex item's default `min-width: auto` let this row push the WHOLE\n * page wider than the viewport. Scrolling keeps it one line, keeps the selected pill findable by\n * swiping, and — because `overflow` other than `visible` zeroes that min-width — stops it\n * dictating the page width. The pills themselves must not shrink or wrap, or the labels do.\n */\nexport interface SegmentedOption<T extends string | undefined> {\n value: T;\n label: string;\n /** Rendered after the label, dimmer — a count, a hint. */\n hint?: string;\n}\n\nexport interface SegmentedProps<T extends string | undefined> {\n options: ReadonlyArray<SegmentedOption<T>>;\n value: T;\n onChange: (value: T) => void;\n 'aria-label': string;\n className?: string;\n}\n\nexport function Segmented<T extends string | undefined>({\n options,\n value,\n onChange,\n className,\n 'aria-label': ariaLabel,\n}: SegmentedProps<T>) {\n return (\n <div\n role=\"tablist\"\n aria-label={ariaLabel}\n className={cn(\n 'scroll-x inline-flex max-w-full items-center gap-1 overflow-x-auto rounded-sm border border-line bg-panel p-1 align-top',\n className,\n )}\n >\n {options.map((option) => {\n const selected = option.value === value;\n return (\n <button\n key={option.value ?? '__all__'}\n type=\"button\"\n role=\"tab\"\n aria-selected={selected}\n onClick={() => onChange(option.value)}\n className={cn(\n 'shrink-0 whitespace-nowrap rounded-sm px-2.5 py-1 text-xs transition-colors',\n selected\n ? 'bg-brand/15 text-brand'\n : 'text-zinc-400 hover:bg-panel-2 hover:text-zinc-200',\n )}\n >\n {option.label}\n {option.hint !== undefined && (\n <span className=\"ml-1.5 text-[10px] text-zinc-500\">{option.hint}</span>\n )}\n </button>\n );\n })}\n </div>\n );\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { api } from '../client/flags-client';\nimport { useEnv } from './env';\nimport { HistoryPanel } from './FlagTools';\nimport { Panel, QueryState } from './shell';\nimport { Button, Input } from './ui/form';\nimport { Segmented } from './ui/segmented';\n\ntype Entity = '' | 'flag' | 'segment' | 'layer' | 'holdout' | 'ruleset';\n\n/** The environment's audit log: every change, who made it, before and after. */\nexport function Activity() {\n const { environment } = useEnv();\n const [entity, setEntity] = useState<Entity>('');\n const [key, setKey] = useState('');\n const [before, setBefore] = useState<string | undefined>(undefined);\n const query = useQuery({\n queryKey: ['audit', environment, entity, key, before],\n queryFn: () =>\n api.audit(environment, {\n ...(entity !== '' ? { entity } : {}),\n ...(key !== '' ? { key } : {}),\n ...(before ? { before } : {}),\n }),\n });\n const entries = query.data?.entries ?? [];\n const last = entries[entries.length - 1];\n return (\n <Panel\n title=\"Activity\"\n subtitle={`Every change to ${environment}, newest first.`}\n actions={\n <Segmented\n aria-label=\"Entity\"\n value={entity}\n onChange={(value) => {\n setEntity(value);\n setBefore(undefined);\n }}\n options={[\n { value: '', label: 'All' },\n { value: 'flag', label: 'Flags' },\n { value: 'segment', label: 'Segments' },\n { value: 'layer', label: 'Layers' },\n { value: 'holdout', label: 'Holdout' },\n { value: 'ruleset', label: 'Imports' },\n ]}\n />\n }\n >\n <div className=\"border-b border-line px-4 py-2\">\n <Input\n aria-label=\"Filter by key\"\n placeholder=\"Exact key\"\n className=\"w-64\"\n value={key}\n onChange={(e) => {\n setKey(e.target.value);\n setBefore(undefined);\n }}\n />\n </div>\n <QueryState query={query} empty={entries.length === 0} emptyMessage=\"No changes recorded.\">\n <div className=\"p-4\">\n <HistoryPanel entries={entries} />\n </div>\n </QueryState>\n <div className=\"flex justify-between border-t border-line px-4 py-2\">\n <Button variant=\"ghost\" disabled={!before} onClick={() => setBefore(undefined)}>\n Newest\n </Button>\n <Button\n variant=\"ghost\"\n disabled={!last || entries.length < (query.data?.limit ?? 50)}\n onClick={() => last && setBefore(last.at)}\n >\n Older\n </Button>\n </div>\n </Panel>\n );\n}\n","import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { api, type ChangeRequest } from '../client/flags-client';\nimport { useEnv } from './env';\nimport { ErrorBox, formatTime, Panel, QueryState } from './shell';\nimport { Badge } from './ui/badge';\nimport { Button, Input } from './ui/form';\nimport { Segmented } from './ui/segmented';\n\nfunction describeChange(request: ChangeRequest): string {\n const { change } = request;\n const verb = change.value === null ? 'delete' : change.entity === 'ruleset' ? 'replace' : 'set';\n return `${verb} ${change.entity}${change.key ? ` ${change.key}` : ''}`;\n}\n\nfunction RequestRow({ request, me }: { request: ChangeRequest; me: string }) {\n const client = useQueryClient();\n const [note, setNote] = useState('');\n const done = () => client.invalidateQueries();\n const approve = useMutation({\n mutationFn: () => api.approve(request.id, note || undefined),\n onSuccess: done,\n });\n const reject = useMutation({\n mutationFn: () => api.reject(request.id, note || undefined),\n onSuccess: done,\n });\n const cancel = useMutation({ mutationFn: () => api.cancel(request.id), onSuccess: done });\n const mine = request.requestedBy.id === me;\n const error = approve.error ?? reject.error ?? cancel.error;\n const busy = approve.isPending || reject.isPending || cancel.isPending;\n\n return (\n <li\n className=\"space-y-2 border-b border-line px-4 py-3 last:border-b-0\"\n aria-label={`Change request ${request.id}`}\n >\n <div className=\"flex flex-wrap items-center gap-2 text-xs\">\n <span className=\"text-zinc-100\">{describeChange(request)}</span>\n <span className={`s-${request.status}`}>{request.status}</span>\n <span className=\"text-zinc-500\">\n by {request.requestedBy.name ?? request.requestedBy.id} ·{' '}\n {formatTime(request.requestedAt)} · base v{request.baseVersion}\n </span>\n {mine && <Badge>yours</Badge>}\n </div>\n {request.note && <p className=\"text-xs text-zinc-300\">“{request.note}”</p>}\n {request.reviewedBy && (\n <p className=\"text-[11px] text-zinc-500\">\n reviewed by {request.reviewedBy.name ?? request.reviewedBy.id}\n {request.reviewNote ? `: “${request.reviewNote}”` : ''}\n </p>\n )}\n <details>\n <summary className=\"cursor-pointer text-[11px] text-zinc-500\">Proposed value</summary>\n <pre className=\"mono mt-1 max-h-64 overflow-auto text-[10px] text-zinc-300\">\n {JSON.stringify(request.change.value, null, 2)}\n </pre>\n </details>\n {request.status === 'pending' && (\n <div className=\"flex flex-wrap items-center gap-2\">\n <Input\n aria-label={`Review note for ${request.id}`}\n placeholder=\"Note (optional)\"\n className=\"w-64\"\n value={note}\n onChange={(e) => setNote(e.target.value)}\n />\n {mine ? (\n <>\n <span className=\"text-[11px] text-zinc-500\">\n Someone else has to approve your request.\n </span>\n <Button variant=\"danger\" disabled={busy} onClick={() => cancel.mutate()}>\n Withdraw\n </Button>\n </>\n ) : (\n <>\n <Button variant=\"primary\" disabled={busy} onClick={() => approve.mutate()}>\n Approve and apply\n </Button>\n <Button variant=\"danger\" disabled={busy} onClick={() => reject.mutate()}>\n Reject\n </Button>\n </>\n )}\n </div>\n )}\n {error && <ErrorBox error={error} />}\n </li>\n );\n}\n\ntype Status = 'pending' | 'all';\n\n/**\n * Two-person approvals. The console hides \"Approve\" on your own requests, but that is a courtesy:\n * the server refuses a requester approving their own change whatever the UI shows.\n */\nexport function Approvals() {\n const { environment, meta } = useEnv();\n const [status, setStatus] = useState<Status>('pending');\n const query = useQuery({\n queryKey: ['change-requests', environment, status],\n queryFn: () => api.changeRequests(environment, status),\n });\n const requests = query.data?.requests ?? [];\n const me = query.data?.actor.id ?? meta?.actor.id ?? '';\n return (\n <Panel\n title=\"Approvals\"\n subtitle={\n query.data?.requiresApproval\n ? `Changes to ${environment} need a second person.`\n : `${environment} applies changes directly; requests only exist where approvals are on.`\n }\n actions={\n <Segmented\n aria-label=\"Request status\"\n value={status}\n onChange={setStatus}\n options={[\n { value: 'pending', label: 'Pending' },\n { value: 'all', label: 'All' },\n ]}\n />\n }\n >\n <QueryState\n query={query}\n empty={requests.length === 0}\n emptyMessage={\n status === 'pending' ? 'Nothing waiting for approval.' : 'No change requests.'\n }\n >\n <ul>\n {requests.map((request) => (\n <RequestRow key={request.id} request={request} me={me} />\n ))}\n </ul>\n </QueryState>\n </Panel>\n );\n}\n","import { useState } from 'react';\nimport { api } from '../client/flags-client';\nimport { Notice, useEnv, useWrite } from './env';\nimport { ErrorBox, Panel } from './shell';\nimport { Button, Field, Input, Select, TextArea } from './ui/form';\n\n/** Download a JSON value as a file (no server round trip beyond the read). */\nfunction download(name: string, value: unknown) {\n const blob = new Blob([`${JSON.stringify(value, null, 2)}\\n`], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = name;\n a.click();\n URL.revokeObjectURL(url);\n}\n\n/** Export, import and promote: moving a whole ruleset between environments. */\nexport function Environments() {\n const { environment, meta } = useEnv();\n const environments = meta?.environments ?? [environment];\n const [exportError, setExportError] = useState<unknown>(null);\n const [json, setJson] = useState('');\n const [parseError, setParseError] = useState<string | null>(null);\n const [note, setNote] = useState('');\n const [from, setFrom] = useState(environments.find((e) => e !== environment) ?? environment);\n const [to, setTo] = useState(environment);\n\n const importIt = useWrite((ruleset: unknown) =>\n api.importRuleset(environment, ruleset, note || undefined),\n );\n const promoteIt = useWrite(() => api.promote(from, to, note || undefined));\n\n return (\n <div className=\"space-y-4\">\n <Panel\n title=\"Export\"\n subtitle={`Download ${environment}'s ruleset as JSON (flags, segments, layers, holdout).`}\n >\n <div className=\"flex flex-wrap items-center gap-2 p-4\">\n <Button\n onClick={async () => {\n try {\n setExportError(null);\n download(`flags-${environment}.json`, await api.exportRuleset(environment));\n } catch (error) {\n setExportError(error);\n }\n }}\n >\n Download {environment}.json\n </Button>\n {exportError !== null && <ErrorBox error={exportError} />}\n </div>\n </Panel>\n\n <Panel\n title=\"Import\"\n subtitle={`Replaces EVERY flag, segment and layer in ${environment} with the file's.`}\n >\n <div className=\"space-y-2 p-4\">\n <Input\n aria-label=\"Ruleset file\"\n type=\"file\"\n accept=\"application/json,.json\"\n onChange={async (e) => {\n const file = e.target.files?.[0];\n if (file) setJson(await file.text());\n }}\n />\n <TextArea\n aria-label=\"Ruleset JSON\"\n rows={8}\n placeholder='{ \"flags\": { … } }'\n value={json}\n onChange={(e) => setJson(e.target.value)}\n />\n <div className=\"flex flex-wrap items-center gap-2\">\n <Input\n aria-label=\"Import note\"\n placeholder=\"Why (optional)\"\n className=\"w-64\"\n value={note}\n onChange={(e) => setNote(e.target.value)}\n />\n <Button\n variant=\"danger\"\n disabled={json.trim() === '' || importIt.isPending}\n onClick={() => {\n try {\n const parsed: unknown = JSON.parse(json);\n setParseError(null);\n importIt.mutate(parsed);\n } catch {\n setParseError('That is not valid JSON.');\n }\n }}\n >\n Import into {environment}\n </Button>\n </div>\n {parseError !== null && <p className=\"text-xs text-rose-300\">{parseError}</p>}\n {importIt.isError && <ErrorBox error={importIt.error} />}\n <Notice text={importIt.notice} />\n </div>\n </Panel>\n\n <Panel\n title=\"Promote\"\n subtitle=\"Copy one environment's ruleset over another's (staging → production). Approvals of the target apply.\"\n >\n <div className=\"flex flex-wrap items-end gap-2 p-4\">\n <Field label=\"From\">\n <Select\n aria-label=\"Promote from\"\n value={from}\n onChange={(e) => setFrom(e.target.value)}\n >\n {environments.map((e) => (\n <option key={e} value={e}>\n {e}\n </option>\n ))}\n </Select>\n </Field>\n <Field label=\"To\">\n <Input\n aria-label=\"Promote to\"\n list=\"flags-environments\"\n className=\"w-40\"\n value={to}\n onChange={(e) => setTo(e.target.value)}\n />\n <datalist id=\"flags-environments\">\n {environments.map((e) => (\n <option key={e} value={e} />\n ))}\n </datalist>\n </Field>\n <Button\n variant=\"danger\"\n disabled={from === to || to === '' || promoteIt.isPending}\n onClick={() => promoteIt.mutate(undefined)}\n >\n Promote {from} → {to}\n </Button>\n </div>\n <div className=\"px-4 pb-4\">\n {promoteIt.isError && <ErrorBox error={promoteIt.error} />}\n <Notice text={promoteIt.notice} />\n </div>\n </Panel>\n </div>\n );\n}\n","import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { api, type ExperimentResults, type MetricResult } from '../client/flags-client';\nimport { useEnv } from './env';\nimport { formatMean, formatP, formatPercent } from './serving';\nimport { ErrorBox, formatTime, Panel, QueryState, Table } from './shell';\nimport { Badge } from './ui/badge';\nimport { Button } from './ui/form';\n\n/** Every experiment: configured ones with their last numbers, and flagged-but-unanalysed ones. */\nexport function Experiments({ onOpen }: { onOpen: (key: string) => void }) {\n const { environment } = useEnv();\n const query = useQuery({\n queryKey: ['experiments', environment],\n queryFn: () => api.experiments(environment),\n });\n const rows = query.data?.experiments ?? [];\n return (\n <Panel\n title=\"Experiments\"\n subtitle={\n query.data && !query.data.analytics\n ? 'No analytics backend is configured: results cannot be computed.'\n : 'Results are recomputed by the flags worker; open one to recompute now.'\n }\n >\n <QueryState\n query={query}\n empty={rows.length === 0}\n emptyMessage=\"No experiments. Mark a flag as an experiment and configure its metrics in config/flags.ts.\"\n >\n <Table head={['Experiment', 'Flag', 'Exposures', 'Verdicts', 'Computed', '']}>\n {rows.map((row) => (\n <tr key={row.key}>\n <td className=\"px-4 py-2\">\n {row.configured ? (\n <button\n type=\"button\"\n className=\"mono text-zinc-100 hover:text-brand\"\n onClick={() => onOpen(row.key)}\n >\n {row.key}\n </button>\n ) : (\n <span className=\"mono text-zinc-300\">{row.key}</span>\n )}\n <div className=\"mt-1 flex flex-wrap gap-1\">\n {!row.configured && <Badge variant=\"danger\">no metrics configured</Badge>}\n {row.running ? <Badge variant=\"type\">running</Badge> : <Badge>stopped</Badge>}\n {row.srmMismatch && <Badge variant=\"danger\">SRM</Badge>}\n {row.alert && <Badge variant=\"danger\">guardrail</Badge>}\n </div>\n </td>\n <td className=\"mono px-4 py-2 text-zinc-400\">{row.flag}</td>\n <td className=\"mono px-4 py-2 tnum\">{row.exposures ?? '—'}</td>\n <td className=\"px-4 py-2\">\n {row.verdicts.length === 0\n ? '—'\n : row.verdicts.map((v) => (\n <span key={`${v.metric}:${v.variant}`} className={`mr-2 s-${v.verdict}`}>\n {v.metric}/{v.variant}: {v.verdict}\n </span>\n ))}\n </td>\n <td className=\"mono px-4 py-2 text-zinc-500\">{formatTime(row.computedAt)}</td>\n <td className=\"px-4 py-2 text-right\">\n {row.configured && (\n <button\n type=\"button\"\n className=\"text-brand hover:underline\"\n onClick={() => onOpen(row.key)}\n >\n Results\n </button>\n )}\n </td>\n </tr>\n ))}\n </Table>\n </QueryState>\n </Panel>\n );\n}\n\nfunction MetricTable({ metric, control }: { metric: MetricResult; control: string }) {\n const byVariant = new Map(metric.comparisons.map((c) => [c.variant, c]));\n return (\n <div className=\"border-b border-line last:border-b-0\">\n <div className=\"flex flex-wrap items-center gap-2 px-4 pt-3\">\n <h3 className=\"text-xs text-zinc-200\">{metric.name}</h3>\n <Badge>{metric.kind}</Badge>\n <span className=\"text-[11px] text-zinc-500\">\n on <span className=\"mono\">{metric.event}</span> ·{' '}\n {metric.direction === 'increase' ? 'higher is better' : 'lower is better'}\n </span>\n {metric.guardrail && <Badge variant=\"type\">guardrail</Badge>}\n {metric.alert && (\n <Badge variant=\"danger\" role=\"alert\">\n guardrail regressed\n </Badge>\n )}\n </div>\n <Table\n head={[\n 'Variant',\n 'Subjects',\n 'Mean',\n 'Lift',\n 'CI (difference)',\n 'p-value',\n 'Sequential p',\n 'Verdict',\n ]}\n >\n {metric.variants.map((v) => {\n const c = byVariant.get(v.variant);\n const isControl = v.variant === control;\n return (\n <tr key={v.variant}>\n <td className=\"mono px-4 py-1.5\">\n {v.variant}\n {isControl && <span className=\"ml-1 text-[10px] text-zinc-500\">control</span>}\n </td>\n <td className=\"mono px-4 py-1.5 tnum\">{v.n}</td>\n <td className=\"mono px-4 py-1.5 tnum\">{formatMean(metric.kind, v.mean)}</td>\n <td className=\"mono px-4 py-1.5 tnum\">{c ? formatPercent(c.relativeLift) : '—'}</td>\n <td className=\"mono px-4 py-1.5 tnum text-zinc-400\">\n {c ? `[${c.interval[0].toPrecision(3)}, ${c.interval[1].toPrecision(3)}]` : '—'}\n </td>\n <td className=\"mono px-4 py-1.5 tnum\">{c ? formatP(c.pValue) : '—'}</td>\n <td className=\"mono px-4 py-1.5 tnum\">{c ? formatP(c.sequential.pValue) : '—'}</td>\n <td className={`px-4 py-1.5 ${c ? `s-${c.verdict}` : ''}`}>\n {c ? c.verdict : isControl ? 'baseline' : 'not enough data'}\n {c?.test === 'cuped' && c.varianceReduction !== undefined && (\n <span className=\"block text-[10px] text-zinc-500\">\n CUPED −{(c.varianceReduction * 100).toFixed(0)}% variance\n </span>\n )}\n </td>\n </tr>\n );\n })}\n </Table>\n </div>\n );\n}\n\n/** The numbers for one experiment. */\nexport function ResultsView({ results }: { results: ExperimentResults }) {\n const total = Object.values(results.exposures).reduce((a, b) => a + b, 0);\n return (\n <>\n <div className=\"flex flex-wrap gap-x-6 gap-y-1 border-b border-line px-4 py-2 text-[11px] text-zinc-500\">\n <span>\n control <span className=\"mono text-zinc-300\">{results.control}</span>\n </span>\n <span>\n exposures <span className=\"mono text-zinc-300\">{total}</span>\n </span>\n {Object.entries(results.exposures).map(([variant, n]) => (\n <span key={variant}>\n <span className=\"mono text-zinc-300\">{variant}</span> {n}\n </span>\n ))}\n <span>computed {formatTime(results.computedAt)}</span>\n </div>\n {results.srm?.mismatch && (\n <div\n role=\"alert\"\n className=\"border-b border-bad/40 bg-bad/10 px-4 py-2 text-xs text-rose-300\"\n >\n Sample ratio mismatch (p = {formatP(results.srm.pValue)}): exposures do not match the\n configured split. Something is assigning or recording unevenly — do not trust the\n comparisons below until it is explained.\n </div>\n )}\n {total === 0 ? (\n <p className=\"px-4 py-6 text-sm text-zinc-500\">\n No exposures in{' '}\n <span className=\"mono text-zinc-300\">{results.environment ?? 'this environment'}</span>{' '}\n yet. Subjects are counted once the code reads this experiment's variant here.\n </p>\n ) : (\n results.metrics.map((metric) => (\n <MetricTable key={metric.name} metric={metric} control={results.control} />\n ))\n )}\n {results.warnings.length > 0 && (\n <ul className=\"border-t border-line px-4 py-2 text-[11px] text-amber-300\">\n {results.warnings.map((w) => (\n <li key={w}>{w}</li>\n ))}\n </ul>\n )}\n </>\n );\n}\n\nexport function ExperimentDetail({\n experimentKey,\n onClose,\n}: {\n experimentKey: string;\n onClose: () => void;\n}) {\n const client = useQueryClient();\n const { environment } = useEnv();\n const query = useQuery({\n queryKey: ['experiment', experimentKey, environment],\n queryFn: () => api.experiment(experimentKey, environment),\n });\n const recompute = useMutation({\n mutationFn: () => api.recompute(experimentKey, environment),\n onSuccess: (data) => {\n client.setQueryData(['experiment', experimentKey, environment], (old: unknown) =>\n old && typeof old === 'object' ? { ...old, results: data.results } : old,\n );\n void client.invalidateQueries({ queryKey: ['experiments'] });\n },\n });\n const detail = query.data;\n return (\n <div className=\"space-y-4\">\n <Button variant=\"ghost\" onClick={onClose}>\n ← All experiments\n </Button>\n <Panel\n title={experimentKey}\n subtitle={\n detail\n ? `flag ${detail.flag} · metrics ${detail.config.metrics.join(', ')}${detail.config.guardrails?.length ? ` · guardrails ${detail.config.guardrails.join(', ')}` : ''}`\n : undefined\n }\n actions={\n <Button\n variant=\"primary\"\n disabled={recompute.isPending || detail?.analytics === false}\n onClick={() => recompute.mutate()}\n >\n {recompute.isPending ? 'Computing…' : 'Recompute now'}\n </Button>\n }\n >\n {recompute.isError && <ErrorBox error={recompute.error} />}\n <QueryState query={query} empty={false}>\n {detail?.results ? (\n <ResultsView results={detail.results} />\n ) : (\n <p className=\"p-4 text-sm text-zinc-500\">\n {detail?.analytics === false\n ? 'No analytics backend is configured, so there are no results.'\n : 'Not computed yet. The worker computes results periodically, or press Recompute now.'}\n </p>\n )}\n </QueryState>\n </Panel>\n </div>\n );\n}\n","import { useEffect, useState } from 'react';\nimport { api, type Declaration } from '../client/flags-client';\nimport { Notice, useEnv, useWrite } from './env';\nimport { ErrorBox, Panel } from './shell';\nimport { Button, Field, Input, Toggle } from './ui/form';\n\n/**\n * The description, owner, expiry, tags and browser exposure of a flag created in the console.\n * Code-declared flags show these read-only in the header: they change in `config/flags.ts`. The\n * type is fixed once created (code reading the flag depends on it).\n */\nexport function DeclarationDetails({\n flagKey,\n declaration,\n}: {\n flagKey: string;\n declaration: Declaration;\n}) {\n const { environment } = useEnv();\n const initial = () => ({\n description: declaration.description ?? '',\n owner: declaration.owner ?? '',\n expiresAt: declaration.expiresAt ?? '',\n tags: (declaration.tags ?? []).join(', '),\n client: declaration.client === true,\n });\n const [form, setForm] = useState(initial);\n // biome-ignore lint/correctness/useExhaustiveDependencies: reset when the stored declaration changes.\n useEffect(() => setForm(initial()), [declaration]);\n const save = useWrite(() =>\n api.updateDeclaration(environment, flagKey, {\n description: form.description.trim(),\n owner: form.owner.trim(),\n ...(form.expiresAt ? { expiresAt: form.expiresAt } : {}),\n tags: form.tags\n .split(',')\n .map((t) => t.trim())\n .filter((t) => t !== ''),\n client: form.client,\n }),\n );\n\n return (\n <Panel\n title=\"Details\"\n subtitle=\"Created in the console. Run `node ace flags:types` in the app to type it.\"\n >\n <form\n aria-label=\"Flag details\"\n className=\"grid gap-3 px-4 py-3 sm:grid-cols-3\"\n onSubmit={(event) => {\n event.preventDefault();\n save.mutate(undefined);\n }}\n >\n <Field label=\"Description\" className=\"sm:col-span-2\">\n <Input\n value={form.description}\n onChange={(e) => setForm({ ...form, description: e.target.value })}\n />\n </Field>\n <Field label=\"Owner\">\n <Input value={form.owner} onChange={(e) => setForm({ ...form, owner: e.target.value })} />\n </Field>\n <Field label=\"Expires\">\n <Input\n type=\"date\"\n value={form.expiresAt}\n onChange={(e) => setForm({ ...form, expiresAt: e.target.value })}\n />\n </Field>\n <Field label=\"Tags\" hint=\"Comma-separated\">\n <Input value={form.tags} onChange={(e) => setForm({ ...form, tags: e.target.value })} />\n </Field>\n <div className=\"flex items-end pb-1\">\n <Toggle\n label=\"Send to the browser (client)\"\n checked={form.client}\n onChange={(client) => setForm({ ...form, client })}\n />\n </div>\n <div className=\"flex flex-wrap items-center gap-2 sm:col-span-3\">\n <Button type=\"submit\" disabled={save.isPending}>\n Save details\n </Button>\n <Notice text={save.notice} />\n </div>\n {save.isError && (\n <div className=\"sm:col-span-3\">\n <ErrorBox error={save.error} />\n </div>\n )}\n </form>\n </Panel>\n );\n}\n","import type {\n AttributeCondition,\n Condition,\n Declaration,\n FlagDefinition,\n Serve,\n TargetingRule,\n} from '../client/flags-client';\nimport {\n conditionValuesText,\n isSegmentCondition,\n newAttributeCondition,\n nextRuleId,\n parseConditionValues,\n parseVariantValue,\n renameVariant,\n splitPercents,\n toFixed,\n toSplit,\n variantText,\n} from './flag-model';\nimport { Button, Field, Input, Select } from './ui/form';\n\n/** A labelled block inside the editor. */\nexport function Section({\n title,\n hint,\n children,\n}: {\n title: string;\n hint?: string | undefined;\n children: React.ReactNode;\n}) {\n return (\n <section className=\"border-b border-line px-4 py-3 last:border-b-0\">\n <h3 className=\"text-xs text-zinc-300\">{title}</h3>\n {hint !== undefined && <p className=\"mb-2 text-[11px] text-zinc-500\">{hint}</p>}\n <div className=\"mt-2 space-y-2\">{children}</div>\n </section>\n );\n}\n\nfunction VariantSelect({\n value,\n variants,\n onChange,\n label,\n}: {\n value: string;\n variants: string[];\n onChange: (value: string) => void;\n label: string;\n}) {\n return (\n <Select aria-label={label} value={value} onChange={(e) => onChange(e.target.value)}>\n {!variants.includes(value) && <option value={value}>{value || '(choose)'}</option>}\n {variants.map((v) => (\n <option key={v} value={v}>\n {v}\n </option>\n ))}\n </Select>\n );\n}\n\n/** Variant names and values. Renaming a variant renames every reference to it. */\nexport function VariantsEditor({\n definition,\n declaration,\n onChange,\n}: {\n definition: FlagDefinition;\n declaration: Declaration | null;\n onChange: (next: FlagDefinition) => void;\n}) {\n const entries = Object.entries(definition.variants);\n const type = declaration?.type;\n return (\n <>\n {entries.map(([name, value], i) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: positional rows with editable names; a name key would remount the input being typed into.\n <div key={i} className=\"flex flex-wrap items-center gap-2\">\n <Input\n aria-label={`Variant ${i + 1} name`}\n className=\"mono w-36\"\n value={name}\n onChange={(e) => onChange(renameVariant(definition, name, e.target.value))}\n />\n <Input\n aria-label={`Variant ${name} value`}\n className=\"mono min-w-0 flex-1\"\n value={variantText(value)}\n onChange={(e) =>\n onChange({\n ...definition,\n variants: {\n ...definition.variants,\n [name]: parseVariantValue(e.target.value, type),\n },\n })\n }\n />\n <Button\n variant=\"ghost\"\n aria-label={`Remove variant ${name}`}\n disabled={entries.length <= 1}\n onClick={() => {\n const variants = { ...definition.variants };\n delete variants[name];\n onChange({ ...definition, variants });\n }}\n >\n Remove\n </Button>\n </div>\n ))}\n <Button\n onClick={() => {\n let n = entries.length + 1;\n while (Object.hasOwn(definition.variants, `variant_${n}`)) n += 1;\n const name =\n declaration?.variants?.find((v) => !Object.hasOwn(definition.variants, v)) ??\n `variant_${n}`;\n const value =\n type === 'string' ? name : type === 'number' ? 0 : type === 'boolean' ? false : null;\n onChange({ ...definition, variants: { ...definition.variants, [name]: value } });\n }}\n >\n Add variant\n </Button>\n </>\n );\n}\n\n/** A fixed variant or a weighted split (with `bucketBy`). */\nexport function ServeEditor({\n serve,\n variants,\n onChange,\n label,\n}: {\n serve: Serve;\n variants: string[];\n onChange: (serve: Serve) => void;\n label: string;\n}) {\n const mode = 'split' in serve ? 'split' : 'fixed';\n return (\n <div className=\"space-y-2\">\n <div className=\"flex flex-wrap items-center gap-2 text-xs\">\n <Select\n aria-label={`${label} mode`}\n value={mode}\n onChange={(e) =>\n onChange(\n e.target.value === 'split' ? toSplit(serve, variants) : toFixed(serve, variants),\n )\n }\n >\n <option value=\"fixed\">Serve one variant</option>\n <option value=\"split\">Split by weight</option>\n </Select>\n {'variant' in serve && (\n <VariantSelect\n label={`${label} variant`}\n value={serve.variant}\n variants={variants}\n onChange={(variant) => onChange({ variant })}\n />\n )}\n </div>\n {'split' in serve && (\n <div className=\"space-y-1\">\n {serve.split.map((arm, i) => {\n const percents = splitPercents(serve.split);\n return (\n // biome-ignore lint/suspicious/noArrayIndexKey: positional rows with editable names; a name key would remount the input being typed into.\n <div key={i} className=\"flex flex-wrap items-center gap-2\">\n <VariantSelect\n label={`${label} arm ${i + 1} variant`}\n value={arm.variant}\n variants={variants}\n onChange={(variant) =>\n onChange({\n ...serve,\n split: serve.split.map((a, j) => (j === i ? { ...a, variant } : a)),\n })\n }\n />\n <Input\n aria-label={`${label} arm ${i + 1} weight`}\n type=\"number\"\n min={0}\n className=\"w-24\"\n value={arm.weight}\n onChange={(e) =>\n onChange({\n ...serve,\n split: serve.split.map((a, j) =>\n j === i ? { ...a, weight: Number(e.target.value) } : a,\n ),\n })\n }\n />\n <span className=\"mono w-16 text-[11px] text-zinc-500\">{percents[i]}%</span>\n <Button\n variant=\"ghost\"\n disabled={serve.split.length <= 1}\n onClick={() =>\n onChange({ ...serve, split: serve.split.filter((_, j) => j !== i) })\n }\n >\n Remove\n </Button>\n </div>\n );\n })}\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n onClick={() =>\n onChange({\n ...serve,\n split: [...serve.split, { variant: variants[0] ?? '', weight: 0 }],\n })\n }\n >\n Add arm\n </Button>\n <Input\n aria-label={`${label} bucket by`}\n placeholder=\"bucket by (default: targeting key)\"\n className=\"w-64\"\n value={serve.bucketBy ?? ''}\n onChange={(e) => {\n const { bucketBy: _drop, ...rest } = serve;\n onChange(e.target.value === '' ? rest : { ...rest, bucketBy: e.target.value });\n }}\n />\n </div>\n </div>\n )}\n </div>\n );\n}\n\nfunction ConditionEditor({\n condition,\n operators,\n segments,\n onChange,\n onRemove,\n label,\n}: {\n condition: Condition;\n operators: string[];\n segments: string[];\n onChange: (c: Condition) => void;\n onRemove: () => void;\n label: string;\n}) {\n const segment = isSegmentCondition(condition);\n return (\n <div className=\"flex flex-wrap items-center gap-2 rounded-sm border border-line-soft p-2\">\n <Select\n aria-label={`${label} kind`}\n value={segment ? 'segment' : 'attribute'}\n onChange={(e) =>\n onChange(\n e.target.value === 'segment'\n ? { segment: segments[0] ?? '', ...(condition.negate ? { negate: true } : {}) }\n : newAttributeCondition(),\n )\n }\n >\n <option value=\"attribute\">Attribute</option>\n <option value=\"segment\">Segment</option>\n </Select>\n {segment ? (\n <Select\n aria-label={`${label} segment`}\n value={condition.segment}\n onChange={(e) => onChange({ ...condition, segment: e.target.value })}\n >\n {!segments.includes(condition.segment) && (\n <option value={condition.segment}>{condition.segment || '(choose)'}</option>\n )}\n {segments.map((s) => (\n <option key={s} value={s}>\n {s}\n </option>\n ))}\n </Select>\n ) : (\n <AttributeFields\n condition={condition}\n operators={operators}\n onChange={onChange}\n label={label}\n />\n )}\n <label className=\"inline-flex items-center gap-1 text-[11px] text-zinc-400\">\n <input\n type=\"checkbox\"\n checked={condition.negate === true}\n onChange={(e) => {\n const { negate: _drop, ...rest } = condition;\n onChange(e.target.checked ? { ...rest, negate: true } : rest);\n }}\n />\n negate\n </label>\n <Button variant=\"ghost\" onClick={onRemove}>\n Remove\n </Button>\n </div>\n );\n}\n\nexport function AttributeFields({\n condition,\n operators,\n onChange,\n label,\n}: {\n condition: AttributeCondition;\n operators: string[];\n onChange: (c: AttributeCondition) => void;\n label: string;\n}) {\n return (\n <>\n <Input\n aria-label={`${label} attribute`}\n placeholder=\"attribute (e.g. email, plan, targetingKey)\"\n className=\"mono w-48\"\n value={condition.attribute}\n onChange={(e) => onChange({ ...condition, attribute: e.target.value })}\n />\n <Select\n aria-label={`${label} operator`}\n value={condition.op}\n onChange={(e) => {\n const op = e.target.value;\n const { values: _drop, ...rest } = condition;\n onChange(op === 'exists' ? { ...rest, op } : { ...condition, op });\n }}\n >\n {operators.map((op) => (\n <option key={op} value={op}>\n {op}\n </option>\n ))}\n </Select>\n {condition.op !== 'exists' && (\n <Input\n aria-label={`${label} values`}\n placeholder=\"values, comma-separated\"\n className=\"mono min-w-0 flex-1\"\n defaultValue={conditionValuesText(condition.values)}\n onBlur={(e) =>\n onChange({ ...condition, values: parseConditionValues(e.target.value, condition.op) })\n }\n />\n )}\n </>\n );\n}\n\n/** Targeting rules, tried in order; the first whose conditions ALL match decides. */\nexport function RulesEditor({\n rules,\n variants,\n operators,\n segments,\n onChange,\n}: {\n rules: TargetingRule[];\n variants: string[];\n operators: string[];\n segments: string[];\n onChange: (rules: TargetingRule[]) => void;\n}) {\n const update = (i: number, rule: TargetingRule) =>\n onChange(rules.map((r, j) => (j === i ? rule : r)));\n const move = (i: number, by: number) => {\n const next = [...rules];\n const [rule] = next.splice(i, 1);\n if (rule) next.splice(i + by, 0, rule);\n onChange(next);\n };\n return (\n <>\n {rules.map((rule, i) => (\n <div\n // biome-ignore lint/suspicious/noArrayIndexKey: positional rows with editable names; a name key would remount the input being typed into.\n key={i}\n className=\"space-y-2 rounded-sm border border-line p-3\"\n >\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"mono text-[11px] text-zinc-500\">#{i + 1}</span>\n <Field label=\"Rule id\" className=\"flex-row items-center gap-2\">\n <Input\n aria-label={`Rule ${i + 1} id`}\n className=\"mono w-40\"\n value={rule.id}\n onChange={(e) => update(i, { ...rule, id: e.target.value })}\n />\n </Field>\n <span className=\"ml-auto flex gap-1\">\n <Button variant=\"ghost\" disabled={i === 0} onClick={() => move(i, -1)}>\n Up\n </Button>\n <Button variant=\"ghost\" disabled={i === rules.length - 1} onClick={() => move(i, 1)}>\n Down\n </Button>\n <Button variant=\"danger\" onClick={() => onChange(rules.filter((_, j) => j !== i))}>\n Delete rule\n </Button>\n </span>\n </div>\n <p className=\"text-[11px] text-zinc-500\">When all of these match:</p>\n {rule.conditions.map((condition, j) => (\n <ConditionEditor\n // biome-ignore lint/suspicious/noArrayIndexKey: positional rows with editable names; a name key would remount the input being typed into.\n key={j}\n label={`Rule ${i + 1} condition ${j + 1}`}\n condition={condition}\n operators={operators}\n segments={segments}\n onChange={(c) =>\n update(i, { ...rule, conditions: rule.conditions.map((x, k) => (k === j ? c : x)) })\n }\n onRemove={() =>\n update(i, { ...rule, conditions: rule.conditions.filter((_, k) => k !== j) })\n }\n />\n ))}\n <Button\n onClick={() =>\n update(i, { ...rule, conditions: [...rule.conditions, newAttributeCondition()] })\n }\n >\n Add condition\n </Button>\n <p className=\"text-[11px] text-zinc-500\">Serve:</p>\n <ServeEditor\n label={`Rule ${i + 1} serve`}\n serve={rule.serve}\n variants={variants}\n onChange={(serve) => update(i, { ...rule, serve })}\n />\n </div>\n ))}\n <Button\n onClick={() =>\n onChange([\n ...rules,\n {\n id: nextRuleId(rules),\n conditions: [newAttributeCondition()],\n serve: { variant: variants[0] ?? '' },\n },\n ])\n }\n >\n Add rule\n </Button>\n </>\n );\n}\n\n/** Exact targeting key → variant, checked before every rule. */\nexport function OverridesEditor({\n overrides,\n variants,\n onChange,\n}: {\n overrides: Record<string, string>;\n variants: string[];\n onChange: (overrides: Record<string, string>) => void;\n}) {\n const entries = Object.entries(overrides);\n return (\n <>\n {entries.map(([subject, variant], i) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: positional rows with editable names; a name key would remount the input being typed into.\n <div key={i} className=\"flex flex-wrap items-center gap-2\">\n <Input\n aria-label={`Override ${i + 1} subject`}\n className=\"mono w-56\"\n value={subject}\n onChange={(e) => {\n const next = Object.fromEntries(\n entries.map(([s, v]) => (s === subject ? [e.target.value, v] : [s, v])),\n );\n onChange(next);\n }}\n />\n <VariantSelect\n label={`Override ${i + 1} variant`}\n value={variant}\n variants={variants}\n onChange={(v) => onChange({ ...overrides, [subject]: v })}\n />\n <Button\n variant=\"ghost\"\n onClick={() => onChange(Object.fromEntries(entries.filter(([s]) => s !== subject)))}\n >\n Remove\n </Button>\n </div>\n ))}\n <Button\n onClick={() => {\n let n = entries.length + 1;\n while (Object.hasOwn(overrides, `subject-${n}`)) n += 1;\n onChange({ ...overrides, [`subject-${n}`]: variants[0] ?? '' });\n }}\n >\n Add override\n </Button>\n </>\n );\n}\n\n/** Other flags that must resolve to a variant first. */\nexport function PrerequisitesEditor({\n prerequisites,\n flags,\n onChange,\n}: {\n prerequisites: Array<{ flag: string; variant: string }>;\n flags: Record<string, string[]>;\n onChange: (next: Array<{ flag: string; variant: string }>) => void;\n}) {\n const keys = Object.keys(flags).sort();\n return (\n <>\n {prerequisites.map((p, i) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: positional rows with editable names; a name key would remount the input being typed into.\n <div key={i} className=\"flex flex-wrap items-center gap-2\">\n <Select\n aria-label={`Prerequisite ${i + 1} flag`}\n value={p.flag}\n onChange={(e) =>\n onChange(\n prerequisites.map((x, j) =>\n j === i ? { flag: e.target.value, variant: flags[e.target.value]?.[0] ?? '' } : x,\n ),\n )\n }\n >\n {!keys.includes(p.flag) && <option value={p.flag}>{p.flag || '(choose)'}</option>}\n {keys.map((k) => (\n <option key={k} value={k}>\n {k}\n </option>\n ))}\n </Select>\n <span className=\"text-[11px] text-zinc-500\">must serve</span>\n <VariantSelect\n label={`Prerequisite ${i + 1} variant`}\n value={p.variant}\n variants={flags[p.flag] ?? []}\n onChange={(variant) =>\n onChange(prerequisites.map((x, j) => (j === i ? { ...x, variant } : x)))\n }\n />\n <Button variant=\"ghost\" onClick={() => onChange(prerequisites.filter((_, j) => j !== i))}>\n Remove\n </Button>\n </div>\n ))}\n <Button\n disabled={keys.length === 0}\n onClick={() => {\n const flag = keys[0] ?? '';\n onChange([...prerequisites, { flag, variant: flags[flag]?.[0] ?? '' }]);\n }}\n >\n Add prerequisite\n </Button>\n </>\n );\n}\n\n/** Marks the flag as an experiment: exposures, a mutual-exclusion layer, the holdout opt-out. */\nexport function ExperimentEditor({\n definition,\n layers,\n onChange,\n}: {\n definition: FlagDefinition;\n layers: string[];\n onChange: (next: FlagDefinition) => void;\n}) {\n const experiment = definition.experiment;\n return (\n <>\n <label className=\"inline-flex items-center gap-2 text-xs text-zinc-300\">\n <input\n type=\"checkbox\"\n checked={experiment !== undefined}\n onChange={(e) => {\n if (e.target.checked) onChange({ ...definition, experiment: {} });\n else {\n const { experiment: _drop, ...rest } = definition;\n onChange(rest);\n }\n }}\n />\n This flag is an experiment (split assignments are recorded as exposures)\n </label>\n {experiment !== undefined && (\n <div className=\"flex flex-wrap items-end gap-3\">\n <Field label=\"Experiment key\" hint=\"Defaults to the flag key\">\n <Input\n aria-label=\"Experiment key\"\n className=\"mono w-48\"\n value={experiment.key ?? ''}\n onChange={(e) =>\n onChange({ ...definition, experiment: { ...experiment, key: e.target.value } })\n }\n />\n </Field>\n <Field label=\"Layer\" hint=\"Experiments in one layer never share a subject\">\n <Select\n aria-label=\"Layer\"\n value={experiment.layer ?? ''}\n onChange={(e) =>\n onChange({ ...definition, experiment: { ...experiment, layer: e.target.value } })\n }\n >\n <option value=\"\">No layer</option>\n {layers.map((l) => (\n <option key={l} value={l}>\n {l}\n </option>\n ))}\n </Select>\n </Field>\n <label className=\"inline-flex items-center gap-2 pb-1 text-xs text-zinc-300\">\n <input\n type=\"checkbox\"\n checked={experiment.holdout !== false}\n onChange={(e) =>\n onChange({\n ...definition,\n experiment: { ...experiment, holdout: e.target.checked },\n })\n }\n />\n Honour the global holdout\n </label>\n </div>\n )}\n </>\n );\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { useEffect, useMemo, useState } from 'react';\nimport {\n api,\n type FlagDefinition,\n type FlagDetail,\n type Issue,\n type Serving,\n} from '../client/flags-client';\nimport { DeclarationDetails } from './DeclarationDetails';\nimport {\n ExperimentEditor,\n OverridesEditor,\n PrerequisitesEditor,\n RulesEditor,\n Section,\n ServeEditor,\n VariantsEditor,\n} from './editor-parts';\nimport { Notice, useEnv, useWrite } from './env';\nimport { EvaluateTester, HistoryPanel, SchedulesPanel } from './FlagTools';\nimport { cleanDefinition, isOnOff } from './flag-model';\nimport { describeServing, formatValue } from './serving';\nimport { ErrorBox, IssueList, Panel, QueryState } from './shell';\nimport { Badge } from './ui/badge';\nimport { Button, Field, Input, Toggle } from './ui/form';\n\n/** One flag: load it, then edit a local draft that is validated live and saved as a whole. */\nexport function FlagEditor({ flagKey, onClose }: { flagKey: string; onClose: () => void }) {\n const { environment } = useEnv();\n const query = useQuery({\n queryKey: ['flag', environment, flagKey],\n queryFn: () => api.flag(environment, flagKey),\n // The draft is local; refetching underneath an open editor would only fight the person typing.\n refetchInterval: false,\n });\n // Kept here, not in the body: an applied save bumps the version, which remounts the body.\n const [notice, setNotice] = useState<string | null>(null);\n return (\n <div className=\"space-y-4\">\n <Button variant=\"ghost\" onClick={onClose}>\n ← All flags\n </Button>\n <Notice text={notice} />\n <QueryState query={query} empty={false}>\n {query.data && (\n <EditorBody\n // A new environment or a saved version starts a fresh draft.\n key={`${environment}:${query.data.version}`}\n detail={query.data}\n onDeleted={onClose}\n onNotice={setNotice}\n />\n )}\n </QueryState>\n </div>\n );\n}\n\n/** Debounced server validation of the draft (`POST /api/preview`). */\nfunction useLivePreview(environment: string, key: string, draft: FlagDefinition) {\n const [state, setState] = useState<{\n valid: boolean;\n issues: Issue[];\n serving: Serving | null;\n } | null>(null);\n const body = useMemo(() => JSON.stringify(draft), [draft]);\n useEffect(() => {\n let live = true;\n const timer = setTimeout(() => {\n api\n .preview(environment, { entity: 'flag', key, value: JSON.parse(body) })\n .then(\n (r) => live && setState({ valid: r.valid, issues: r.issues, serving: r.serving ?? null }),\n )\n .catch(\n (error: unknown) =>\n live &&\n setState({\n valid: false,\n issues: [\n { path: '', message: error instanceof Error ? error.message : 'preview failed' },\n ],\n serving: null,\n }),\n );\n }, 300);\n return () => {\n live = false;\n clearTimeout(timer);\n };\n }, [environment, key, body]);\n return state;\n}\n\nfunction EditorBody({\n detail,\n onDeleted,\n onNotice,\n}: {\n detail: FlagDetail;\n onDeleted: () => void;\n onNotice: (notice: string) => void;\n}) {\n const { environment, meta } = useEnv();\n const [draft, setDraft] = useState<FlagDefinition>(() => structuredClone(detail.definition));\n const [note, setNote] = useState('');\n const clean = useMemo(() => cleanDefinition(draft), [draft]);\n const preview = useLivePreview(environment, detail.key, clean);\n const variants = Object.keys(draft.variants);\n const dirty =\n JSON.stringify(clean) !== JSON.stringify(detail.stored ? cleanDefinition(detail.stored) : null);\n\n const save = useWrite(\n () => api.saveFlag(environment, detail.key, clean, note || undefined),\n onNotice,\n );\n const remove = useWrite(\n () => api.deleteFlag(environment, detail.key, note || undefined),\n (text) => {\n onNotice(text);\n },\n );\n const declaration = detail.declaration;\n\n return (\n <div className=\"space-y-4\">\n <Panel\n title={detail.key}\n subtitle={declaration?.description ?? (declaration ? undefined : 'Not declared')}\n actions={\n <div className=\"flex flex-wrap items-center gap-2\">\n <Input\n aria-label=\"Change note\"\n placeholder=\"Why (optional, shown to approvers)\"\n className=\"w-64\"\n value={note}\n onChange={(e) => setNote(e.target.value)}\n />\n <Button\n variant=\"primary\"\n disabled={!dirty || save.isPending || preview?.valid === false}\n onClick={() => save.mutate(undefined)}\n >\n {detail.requiresApproval ? 'Request change' : 'Save'}\n </Button>\n {detail.stored && (\n <Button\n variant=\"danger\"\n disabled={remove.isPending}\n onClick={() => remove.mutate(undefined)}\n >\n Remove from ruleset\n </Button>\n )}\n </div>\n }\n >\n <div className=\"flex flex-wrap gap-x-6 gap-y-1 border-b border-line px-4 py-2 text-[11px] text-zinc-500\">\n <span>\n environment <span className=\"text-zinc-300\">{environment}</span>\n </span>\n {declaration ? (\n <>\n <span>\n type <span className=\"text-zinc-300\">{declaration.type}</span>\n </span>\n <span>\n {declaration.source === 'code' ? 'code default' : 'default'}{' '}\n <span className=\"mono text-zinc-300\">{formatValue(declaration.default)}</span>\n </span>\n {declaration.owner && (\n <span>\n owner <span className=\"text-zinc-300\">{declaration.owner}</span>\n </span>\n )}\n {declaration.expiresAt && (\n <span>\n expires <span className=\"text-zinc-300\">{declaration.expiresAt}</span>\n </span>\n )}\n {declaration.source === 'console' ? (\n <Badge>created in the console</Badge>\n ) : (\n <span>\n declared in <span className=\"text-zinc-300\">{declaration.apps.join(', ')}</span>\n </span>\n )}\n </>\n ) : (\n <span className=\"text-amber-300\">\n Nothing declares this flag (no code, no console declaration); evaluations get no\n default.\n </span>\n )}\n <span>\n serving now <span className=\"text-zinc-300\">{describeServing(detail.serving)}</span>\n </span>\n {!detail.stored && (\n <Badge variant=\"type\">not in the ruleset yet — saving creates it</Badge>\n )}\n </div>\n {detail.requiresApproval && (\n <p className=\"border-b border-line px-4 py-2 text-[11px] text-amber-300\">\n {environment} needs a second person: saving files a change request instead of applying\n it.\n {detail.pendingRequests.length > 0 &&\n ` ${detail.pendingRequests.length} request(s) for this flag are pending.`}\n </p>\n )}\n {(save.isError || remove.isError) && <ErrorBox error={save.error ?? remove.error} />}\n {remove.isSuccess && remove.data?.status === 'applied' && (\n <div className=\"px-4 py-2\">\n <Button onClick={onDeleted}>Back to the list</Button>\n </div>\n )}\n\n <div aria-live=\"polite\" className=\"border-b border-line px-4 py-2 text-[11px]\">\n {preview === null ? (\n <span className=\"text-zinc-500\">Checking…</span>\n ) : preview.valid ? (\n <span className=\"text-emerald-300\">\n Valid.\n {preview.serving ? ` Everyone else gets: ${describeServing(preview.serving)}.` : ''}\n </span>\n ) : (\n <div>\n <span className=\"text-rose-300\">This draft would be refused:</span>\n <IssueList issues={preview.issues} />\n </div>\n )}\n </div>\n\n <Section\n title=\"Status\"\n hint=\"Off serves the off variant to everyone, whatever the rules say.\"\n >\n <div className=\"flex flex-wrap items-center gap-4\">\n <Toggle\n label=\"Enabled\"\n checked={draft.enabled}\n onChange={(enabled) => setDraft({ ...draft, enabled })}\n />\n <span className=\"text-xs text-zinc-400\">\n {draft.enabled ? 'Targeting is live' : 'Killed'}\n </span>\n <Field label=\"Off variant\" className=\"flex-row items-center gap-2\">\n <select\n aria-label=\"Off variant\"\n className=\"rounded-sm border border-line bg-background px-2 py-1 text-xs\"\n value={draft.offVariant}\n onChange={(e) => setDraft({ ...draft, offVariant: e.target.value })}\n >\n {variants.map((v) => (\n <option key={v} value={v}>\n {v}\n </option>\n ))}\n </select>\n </Field>\n </div>\n </Section>\n\n <Section\n title=\"Variants\"\n hint={declaration?.variants ? `Declared: ${declaration.variants.join(', ')}` : undefined}\n >\n <VariantsEditor definition={draft} declaration={declaration} onChange={setDraft} />\n </Section>\n\n <Section\n title=\"Overrides\"\n hint=\"Exact targeting keys, checked before any rule (QA, one customer).\"\n >\n <OverridesEditor\n overrides={draft.overrides ?? {}}\n variants={variants}\n onChange={(overrides) => setDraft({ ...draft, overrides })}\n />\n </Section>\n\n <Section\n title=\"Targeting rules\"\n hint=\"Tried in order; the first rule whose conditions all match decides.\"\n >\n <RulesEditor\n rules={draft.rules ?? []}\n variants={variants}\n operators={meta?.operators ?? []}\n segments={detail.segments}\n onChange={(rules) => setDraft({ ...draft, rules })}\n />\n </Section>\n\n <Section title=\"Everyone else\" hint=\"What is served when no override or rule matches.\">\n <ServeEditor\n label=\"Fallthrough\"\n serve={draft.fallthrough}\n variants={variants}\n onChange={(fallthrough) => setDraft({ ...draft, fallthrough })}\n />\n </Section>\n\n <Section\n title=\"Prerequisites\"\n hint=\"Other flags that must serve a given variant first; otherwise the off variant is served.\"\n >\n <PrerequisitesEditor\n prerequisites={draft.prerequisites ?? []}\n flags={detail.flags}\n onChange={(prerequisites) => setDraft({ ...draft, prerequisites })}\n />\n </Section>\n\n <Section title=\"Experiment\">\n <ExperimentEditor definition={draft} layers={detail.layers} onChange={setDraft} />\n </Section>\n\n <Section title=\"Labels\">\n <div className=\"flex flex-wrap gap-3\">\n <Field label=\"Tags (comma-separated)\">\n <Input\n aria-label=\"Tags\"\n className=\"w-64\"\n defaultValue={(draft.tags ?? []).join(', ')}\n onBlur={(e) =>\n setDraft({\n ...draft,\n tags: e.target.value\n .split(',')\n .map((t) => t.trim())\n .filter((t) => t !== ''),\n })\n }\n />\n </Field>\n <Field label=\"Salt\" hint=\"Changing it reshuffles every bucket\">\n <Input\n aria-label=\"Salt\"\n className=\"mono w-48\"\n placeholder={detail.key}\n value={draft.salt ?? ''}\n onChange={(e) => setDraft({ ...draft, salt: e.target.value })}\n />\n </Field>\n </div>\n </Section>\n </Panel>\n\n {declaration?.source === 'console' && (\n <DeclarationDetails flagKey={detail.key} declaration={declaration} />\n )}\n\n <Panel\n title=\"Test a context\"\n subtitle=\"Evaluates this draft, unsaved edits included. Records no exposure.\"\n >\n <div className=\"p-4\">\n <EvaluateTester environment={environment} flagKey={detail.key} draft={clean} />\n </div>\n </Panel>\n\n <Panel\n title=\"Scheduled changes\"\n subtitle=\"Run by the flags worker at the given time; approvals were checked when scheduled.\"\n >\n <div className=\"p-4\">\n <SchedulesPanel\n environment={environment}\n flagKey={detail.key}\n schedules={detail.schedules}\n onOff={isOnOff(draft)}\n />\n </div>\n </Panel>\n\n <Panel title=\"History\" subtitle={`Changes to ${detail.key} in ${environment}`}>\n <div className=\"p-4\">\n <HistoryPanel entries={detail.audit} />\n </div>\n </Panel>\n </div>\n );\n}\n","import type { DeclarationInput } from '../client/flags-client';\n\n/** The \"New flag\" form, as typed by a person. */\nexport interface NewFlagForm {\n key: string;\n type: DeclarationInput['type'];\n /** Raw text: `true`/`false`, a number, a string, or JSON — parsed per type. */\n defaultValue: string;\n /** Comma-separated variant names (string flags). */\n variants: string;\n description: string;\n owner: string;\n expiresAt: string;\n tags: string;\n client: boolean;\n}\n\nexport const EMPTY_NEW_FLAG: NewFlagForm = {\n key: '',\n type: 'boolean',\n defaultValue: 'false',\n variants: '',\n description: '',\n owner: '',\n expiresAt: '',\n tags: '',\n client: false,\n};\n\nconst list = (text: string) =>\n text\n .split(',')\n .map((s) => s.trim())\n .filter((s) => s !== '');\n\n/**\n * Turns the form into a declaration, or explains what is wrong. Pure, so the screen and its spec\n * agree; the server validates again.\n */\nexport function toDeclaration(\n form: NewFlagForm,\n): { ok: true; key: string; declaration: DeclarationInput } | { ok: false; error: string } {\n const key = form.key.trim();\n if (!/^[A-Za-z0-9_.-]{1,100}$/.test(key)) {\n return { ok: false, error: 'Key: letters, digits, \".\", \"_\" or \"-\".' };\n }\n let value: DeclarationInput['default'];\n const raw = form.defaultValue.trim();\n if (form.type === 'boolean') {\n if (raw !== 'true' && raw !== 'false')\n return { ok: false, error: 'Default must be true or false.' };\n value = raw === 'true';\n } else if (form.type === 'number') {\n const n = Number(raw);\n if (raw === '' || !Number.isFinite(n)) return { ok: false, error: 'Default must be a number.' };\n value = n;\n } else if (form.type === 'json') {\n try {\n value = JSON.parse(raw === '' ? 'null' : raw);\n } catch {\n return { ok: false, error: 'Default must be valid JSON.' };\n }\n } else {\n value = raw;\n }\n const variants = form.type === 'string' ? list(form.variants) : [];\n if (variants.length > 0 && !variants.includes(String(value))) {\n return { ok: false, error: 'The default must be one of the variants.' };\n }\n const tags = list(form.tags);\n return {\n ok: true,\n key,\n declaration: {\n type: form.type,\n default: value,\n ...(variants.length > 0 ? { variants } : {}),\n ...(form.description.trim() ? { description: form.description.trim() } : {}),\n ...(form.owner.trim() ? { owner: form.owner.trim() } : {}),\n ...(form.expiresAt ? { expiresAt: form.expiresAt } : {}),\n ...(tags.length > 0 ? { tags } : {}),\n ...(form.client ? { client: true } : {}),\n },\n };\n}\n\n/** A sensible default value when the type changes. */\nexport function defaultFor(type: DeclarationInput['type']): string {\n if (type === 'boolean') return 'false';\n if (type === 'number') return '0';\n if (type === 'json') return '{}';\n return '';\n}\n","import { useState } from 'react';\nimport { api } from '../client/flags-client';\nimport { Notice, useEnv, useWrite } from './env';\nimport { defaultFor, EMPTY_NEW_FLAG, type NewFlagForm, toDeclaration } from './new-flag';\nimport { ErrorBox } from './shell';\nimport { Button, Field, Input, Select, Toggle } from './ui/form';\n\n/**\n * Creates a flag without touching code: its type, default and metadata are stored with the\n * ruleset, so every process serves the default from the moment it is saved. `node ace flags:types`\n * types it in the app afterwards.\n */\nexport function NewFlag({\n onCreated,\n onCancel,\n}: {\n onCreated: (key: string) => void;\n onCancel: () => void;\n}) {\n const { environment } = useEnv();\n const [form, setForm] = useState<NewFlagForm>(EMPTY_NEW_FLAG);\n const [error, setError] = useState<string | null>(null);\n const set = <K extends keyof NewFlagForm>(field: K, value: NewFlagForm[K]) =>\n setForm((current) => ({ ...current, [field]: value }));\n const create = useWrite(\n (input: { key: string; declaration: Parameters<typeof api.createFlag>[2] }) =>\n api.createFlag(environment, input.key, input.declaration),\n );\n\n const submit = () => {\n const parsed = toDeclaration(form);\n if (!parsed.ok) {\n setError(parsed.error);\n return;\n }\n setError(null);\n create.mutate(\n { key: parsed.key, declaration: parsed.declaration },\n {\n onSuccess: (result) => {\n if (result.status === 'applied') onCreated(parsed.key);\n },\n },\n );\n };\n\n return (\n <form\n aria-label=\"New flag\"\n className=\"grid gap-3 border-b border-line bg-panel-2/40 px-4 py-3 sm:grid-cols-3\"\n onSubmit={(event) => {\n event.preventDefault();\n submit();\n }}\n >\n <Field label=\"Key\" hint=\"Letters, digits, . _ -\">\n <Input\n autoFocus\n value={form.key}\n onChange={(e) => set('key', e.target.value)}\n placeholder=\"promo_banner\"\n className=\"mono\"\n />\n </Field>\n <Field label=\"Type\">\n <Select\n value={form.type}\n onChange={(e) => {\n const type = e.target.value as NewFlagForm['type'];\n setForm((current) => ({ ...current, type, defaultValue: defaultFor(type) }));\n }}\n >\n <option value=\"boolean\">boolean (on/off)</option>\n <option value=\"string\">string (variants)</option>\n <option value=\"number\">number</option>\n <option value=\"json\">json</option>\n </Select>\n </Field>\n <Field\n label=\"Default\"\n hint=\"Served when nothing else answers (and to everyone until you target it)\"\n >\n {form.type === 'boolean' ? (\n <Select value={form.defaultValue} onChange={(e) => set('defaultValue', e.target.value)}>\n <option value=\"false\">false</option>\n <option value=\"true\">true</option>\n </Select>\n ) : (\n <Input\n value={form.defaultValue}\n onChange={(e) => set('defaultValue', e.target.value)}\n className=\"mono\"\n />\n )}\n </Field>\n {form.type === 'string' && (\n <Field\n label=\"Variants\"\n hint=\"Comma-separated; the default must be one of them\"\n className=\"sm:col-span-3\"\n >\n <Input\n value={form.variants}\n onChange={(e) => set('variants', e.target.value)}\n placeholder=\"control, one_page\"\n className=\"mono\"\n />\n </Field>\n )}\n <Field label=\"Description\" className=\"sm:col-span-2\">\n <Input value={form.description} onChange={(e) => set('description', e.target.value)} />\n </Field>\n <Field label=\"Owner\">\n <Input\n value={form.owner}\n onChange={(e) => set('owner', e.target.value)}\n placeholder=\"team or person\"\n />\n </Field>\n <Field label=\"Expires\" hint=\"Listed as stale after this date\">\n <Input\n type=\"date\"\n value={form.expiresAt}\n onChange={(e) => set('expiresAt', e.target.value)}\n />\n </Field>\n <Field label=\"Tags\" hint=\"Comma-separated\">\n <Input value={form.tags} onChange={(e) => set('tags', e.target.value)} />\n </Field>\n <div className=\"flex items-end pb-1\">\n <Toggle\n label=\"Send to the browser (client)\"\n checked={form.client}\n onChange={(client) => set('client', client)}\n />\n </div>\n <div className=\"flex flex-wrap items-center gap-2 sm:col-span-3\">\n <Button type=\"submit\" variant=\"primary\" disabled={create.isPending}>\n {create.isPending ? 'Creating…' : 'Create flag'}\n </Button>\n <Button variant=\"ghost\" onClick={onCancel}>\n Cancel\n </Button>\n {error !== null && (\n <p role=\"alert\" className=\"text-[11px] text-rose-300\">\n {error}\n </p>\n )}\n <Notice text={create.notice} />\n </div>\n {create.isError && (\n <div className=\"sm:col-span-3\">\n <ErrorBox error={create.error} />\n </div>\n )}\n </form>\n );\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { useMemo, useState } from 'react';\nimport { api, type FlagRow } from '../client/flags-client';\nimport { Notice, useEnv, useWrite } from './env';\nimport { NewFlag } from './NewFlag';\nimport { describeServing, formatValue, STALE_LABELS, servingTone } from './serving';\nimport { ErrorBox, Panel, QueryState, Table } from './shell';\nimport { Badge } from './ui/badge';\nimport { Button, Input, Select, Toggle } from './ui/form';\nimport { Segmented } from './ui/segmented';\n\ntype Show = 'all' | 'stale' | 'experiments';\n\n/** Pure filter, so the list and its spec agree on what \"matches\" means. */\nexport function filterFlags(\n flags: FlagRow[],\n filters: { search: string; tag: string; owner: string; show: Show },\n): FlagRow[] {\n const needle = filters.search.trim().toLowerCase();\n return flags.filter((flag) => {\n if (needle !== '') {\n const haystack = [flag.key, flag.declaration?.description ?? '', flag.owner ?? '']\n .join(' ')\n .toLowerCase();\n if (!haystack.includes(needle)) return false;\n }\n if (filters.tag !== '' && !flag.tags.includes(filters.tag)) return false;\n if (filters.owner !== '' && flag.owner !== filters.owner) return false;\n if (filters.show === 'stale' && flag.stale.length === 0) return false;\n if (filters.show === 'experiments' && !flag.experiment) return false;\n return true;\n });\n}\n\n/**\n * Every flag — declared in code, stored in the ruleset, or both — with the kill switch on the row.\n * The switch is the one control that must be reachable in one click from the first screen: when a\n * flag is hurting production, nobody should have to find its editor first.\n */\nexport function FlagsList({ onOpen }: { onOpen: (key: string) => void }) {\n const { environment } = useEnv();\n const query = useQuery({\n queryKey: ['flags', environment],\n queryFn: () => api.flags(environment),\n });\n const [search, setSearch] = useState('');\n const [tag, setTag] = useState('');\n const [owner, setOwner] = useState('');\n const [show, setShow] = useState<Show>('all');\n const [creating, setCreating] = useState(false);\n const kill = useWrite((input: { key: string; enabled: boolean }) =>\n api.setEnabled(environment, input.key, input.enabled),\n );\n\n const flags = query.data?.flags ?? [];\n const tags = useMemo(() => [...new Set(flags.flatMap((f) => f.tags))].sort(), [flags]);\n const owners = useMemo(\n () => [...new Set(flags.map((f) => f.owner).filter((o): o is string => o !== null))].sort(),\n [flags],\n );\n const visible = filterFlags(flags, { search, tag, owner, show });\n\n return (\n <Panel\n title=\"Flags\"\n subtitle={`${flags.length} flags in ${environment}${query.data ? ` · ruleset v${query.data.version}` : ''}`}\n actions={\n <div className=\"flex items-center gap-2\">\n <Button variant=\"primary\" onClick={() => setCreating((open) => !open)}>\n New flag\n </Button>\n <Segmented\n aria-label=\"Show\"\n value={show}\n onChange={setShow}\n options={[\n { value: 'all', label: 'All' },\n {\n value: 'stale',\n label: 'Stale',\n hint: String(flags.filter((f) => f.stale.length > 0).length),\n },\n { value: 'experiments', label: 'Experiments' },\n ]}\n />\n </div>\n }\n >\n {creating && (\n <NewFlag\n onCancel={() => setCreating(false)}\n onCreated={(key) => {\n setCreating(false);\n onOpen(key);\n }}\n />\n )}\n <div className=\"flex flex-wrap items-center gap-2 border-b border-line px-4 py-2\">\n <Input\n aria-label=\"Search flags\"\n placeholder=\"Search key, description, owner\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"min-w-0 flex-1\"\n />\n <Select aria-label=\"Tag\" value={tag} onChange={(e) => setTag(e.target.value)}>\n <option value=\"\">All tags</option>\n {tags.map((t) => (\n <option key={t} value={t}>\n {t}\n </option>\n ))}\n </Select>\n <Select aria-label=\"Owner\" value={owner} onChange={(e) => setOwner(e.target.value)}>\n <option value=\"\">All owners</option>\n {owners.map((o) => (\n <option key={o} value={o}>\n {o}\n </option>\n ))}\n </Select>\n </div>\n {kill.isError && <ErrorBox error={kill.error} />}\n {kill.notice !== null && (\n <div className=\"border-b border-line px-4 py-2\">\n <Notice text={kill.notice} />\n </div>\n )}\n <QueryState\n query={query}\n empty={visible.length === 0}\n emptyMessage={\n flags.length === 0\n ? 'No flags yet. Create one with “New flag”, or declare it in config/flags.ts.'\n : 'No flag matches these filters.'\n }\n >\n <Table head={['On', 'Flag', 'Type', 'Serving', 'Owner', 'Expires', '']}>\n {visible.map((flag) => (\n <tr key={flag.key} className=\"hover:bg-panel-2/60\">\n <td className=\"px-4 py-2\">\n <Toggle\n label={`Kill switch for ${flag.key}`}\n checked={flag.enabled ?? true}\n disabled={kill.isPending}\n onChange={(enabled) => kill.mutate({ key: flag.key, enabled })}\n />\n </td>\n <td className=\"px-4 py-2\">\n <button\n type=\"button\"\n className=\"mono text-left text-zinc-100 hover:text-brand\"\n onClick={() => onOpen(flag.key)}\n >\n {flag.key}\n </button>\n {flag.declaration?.description && (\n <p className=\"text-[11px] text-zinc-500\">{flag.declaration.description}</p>\n )}\n <div className=\"mt-1 flex flex-wrap gap-1\">\n {flag.experiment && <Badge variant=\"type\">experiment</Badge>}\n {flag.tags.map((t) => (\n <Badge key={t}>{t}</Badge>\n ))}\n {flag.stale.map((reason) => (\n <Badge key={reason} variant=\"danger\" title={STALE_LABELS[reason]}>\n {reason}\n </Badge>\n ))}\n </div>\n </td>\n <td className=\"px-4 py-2 text-zinc-400\">\n {flag.declaration ? (\n <>\n {flag.declaration.type}\n {flag.declaration.source === 'console' && (\n <Badge className=\"ml-1\" title=\"Created in the console\">\n console\n </Badge>\n )}\n <span className=\"block text-[10px] text-zinc-600\">\n default {formatValue(flag.declaration.default)}\n </span>\n </>\n ) : (\n <span className=\"text-amber-300\">undeclared</span>\n )}\n </td>\n <td className={`px-4 py-2 s-${servingTone(flag.serving)}`}>\n {describeServing(flag.serving)}\n {(flag.rules > 0 || flag.overrides > 0) && (\n <span className=\"block text-[10px] text-zinc-500\">\n {flag.rules} rules · {flag.overrides} overrides\n </span>\n )}\n </td>\n <td className=\"px-4 py-2 text-zinc-400\">{flag.owner ?? '—'}</td>\n <td className=\"px-4 py-2 text-zinc-400\">{flag.expiresAt ?? '—'}</td>\n <td className=\"px-4 py-2 text-right\">\n <button\n type=\"button\"\n className=\"text-brand hover:underline\"\n onClick={() => onOpen(flag.key)}\n >\n Edit\n </button>\n </td>\n </tr>\n ))}\n </Table>\n </QueryState>\n </Panel>\n );\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { api } from '../client/flags-client';\nimport { useEnv } from './env';\nimport { STALE_LABELS } from './serving';\nimport { Panel, QueryState, Table } from './shell';\nimport { Badge } from './ui/badge';\nimport { Field, Input } from './ui/form';\n\n/** Flags that probably should be removed from code and from the ruleset. */\nexport function Hygiene({ onOpen }: { onOpen: (key: string) => void }) {\n const { environment } = useEnv();\n const [unusedDays, setUnusedDays] = useState(30);\n const [staticDays, setStaticDays] = useState(30);\n const query = useQuery({\n queryKey: ['stale', environment, unusedDays, staticDays],\n queryFn: () => api.stale(environment, unusedDays, staticDays),\n });\n const flags = query.data?.flags ?? [];\n return (\n <Panel\n title=\"Stale flags\"\n subtitle=\"Not evaluated lately, past their declared expiry, serving one value to everyone for a while, or no longer declared in code.\"\n actions={\n <div className=\"flex gap-2\">\n <Field label=\"Unused for (days)\" className=\"flex-row items-center gap-2\">\n <Input\n aria-label=\"Unused days\"\n type=\"number\"\n min={1}\n className=\"w-20\"\n value={unusedDays}\n onChange={(e) => setUnusedDays(Math.max(1, Number(e.target.value) || 1))}\n />\n </Field>\n <Field label=\"Static for (days)\" className=\"flex-row items-center gap-2\">\n <Input\n aria-label=\"Static days\"\n type=\"number\"\n min={1}\n className=\"w-20\"\n value={staticDays}\n onChange={(e) => setStaticDays(Math.max(1, Number(e.target.value) || 1))}\n />\n </Field>\n </div>\n }\n >\n <QueryState\n query={query}\n empty={flags.length === 0}\n emptyMessage=\"Nothing stale. Every flag is in use and still changing.\"\n >\n <Table head={['Flag', 'Why', 'Last evaluated', 'Expires', 'Owner']}>\n {flags.map((flag) => (\n <tr key={flag.key}>\n <td className=\"px-4 py-2\">\n <button\n type=\"button\"\n className=\"mono text-zinc-100 hover:text-brand\"\n onClick={() => onOpen(flag.key)}\n >\n {flag.key}\n </button>\n </td>\n <td className=\"px-4 py-2\">\n <div className=\"flex flex-wrap gap-1\">\n {flag.reasons.map((reason) => (\n <Badge key={reason} variant=\"danger\">\n {STALE_LABELS[reason]}\n </Badge>\n ))}\n </div>\n </td>\n <td className=\"mono px-4 py-2 text-zinc-400\">{flag.lastEvaluated ?? 'never'}</td>\n <td className=\"mono px-4 py-2 text-zinc-400\">{flag.expiresAt ?? '—'}</td>\n <td className=\"px-4 py-2 text-zinc-400\">{flag.owner ?? '—'}</td>\n </tr>\n ))}\n </Table>\n </QueryState>\n </Panel>\n );\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { api, type Layer } from '../client/flags-client';\nimport { Notice, useEnv, useWrite } from './env';\nimport { ErrorBox, Panel, QueryState } from './shell';\nimport { Button, Field, Input, Select } from './ui/form';\n\nconst BUCKETS = 10_000;\n\n/** A layer's allocations as a bar: who owns which slice of the 0…10000 buckets. */\nexport function AllocationBar({ allocations }: { allocations: Layer['allocations'] }) {\n return (\n <div\n className=\"relative h-3 w-full overflow-hidden rounded-sm border border-line bg-panel-2\"\n aria-hidden=\"true\"\n >\n {Object.entries(allocations).map(([flag, [start, end]], i) => (\n <span\n key={flag}\n title={`${flag}: ${start}–${end}`}\n className=\"absolute top-0 h-full border-r border-background\"\n style={{\n left: `${(start / BUCKETS) * 100}%`,\n width: `${(Math.max(0, end - start) / BUCKETS) * 100}%`,\n background: `color-mix(in srgb, var(--accent) ${40 + ((i * 23) % 50)}%, transparent)`,\n }}\n />\n ))}\n </div>\n );\n}\n\nfunction LayerForm({\n layerKey,\n initial,\n experiments,\n isNew,\n onDone,\n}: {\n layerKey: string;\n initial: Layer;\n /** Experiment flags that name this layer (only they may hold a range). */\n experiments: string[];\n isNew: boolean;\n onDone?: () => void;\n}) {\n const { environment } = useEnv();\n const [key, setKey] = useState(layerKey);\n const [rows, setRows] = useState(\n Object.entries(initial.allocations).map(([flag, [start, end]]) => ({ flag, start, end })),\n );\n const allocations = Object.fromEntries(\n rows.map((r) => [r.flag, [r.start, r.end] as [number, number]]),\n );\n const save = useWrite(() =>\n api.saveLayer(environment, key, {\n ...(initial.salt ? { salt: initial.salt } : {}),\n allocations,\n }),\n );\n const remove = useWrite(() => api.deleteLayer(environment, layerKey));\n const free = experiments.filter((f) => !rows.some((r) => r.flag === f));\n\n return (\n <div className=\"space-y-2 border-b border-line px-4 py-3 last:border-b-0\">\n {isNew ? (\n <Input\n aria-label=\"New layer key\"\n placeholder=\"layer key\"\n className=\"mono w-48\"\n value={key}\n onChange={(e) => setKey(e.target.value)}\n />\n ) : (\n <span className=\"mono text-sm text-zinc-100\">{layerKey}</span>\n )}\n <AllocationBar allocations={allocations} />\n {rows.map((row, i) => (\n <div key={row.flag} className=\"flex flex-wrap items-center gap-2 text-xs\">\n <span className=\"mono w-40 text-zinc-300\">{row.flag}</span>\n <Input\n aria-label={`${row.flag} start`}\n type=\"number\"\n min={0}\n max={BUCKETS}\n className=\"w-24\"\n value={row.start}\n onChange={(e) =>\n setRows(rows.map((r, j) => (j === i ? { ...r, start: Number(e.target.value) } : r)))\n }\n />\n <span className=\"text-zinc-600\">to</span>\n <Input\n aria-label={`${row.flag} end`}\n type=\"number\"\n min={0}\n max={BUCKETS}\n className=\"w-24\"\n value={row.end}\n onChange={(e) =>\n setRows(rows.map((r, j) => (j === i ? { ...r, end: Number(e.target.value) } : r)))\n }\n />\n <span className=\"mono text-[11px] text-zinc-500\">\n {((row.end - row.start) / 100).toFixed(2)}%\n </span>\n <Button variant=\"ghost\" onClick={() => setRows(rows.filter((_, j) => j !== i))}>\n Remove\n </Button>\n </div>\n ))}\n <div className=\"flex flex-wrap items-center gap-2\">\n {free.length > 0 && (\n <Select\n aria-label={`Add an experiment to ${layerKey || 'the new layer'}`}\n value=\"\"\n onChange={(e) => {\n const used = rows.reduce((max, r) => Math.max(max, r.end), 0);\n setRows([\n ...rows,\n { flag: e.target.value, start: used, end: Math.min(BUCKETS, used + 1000) },\n ]);\n }}\n >\n <option value=\"\">Add experiment…</option>\n {free.map((f) => (\n <option key={f} value={f}>\n {f}\n </option>\n ))}\n </Select>\n )}\n <Button\n variant=\"primary\"\n disabled={key === '' || save.isPending}\n onClick={() => save.mutate(undefined, { onSuccess: () => onDone?.() })}\n >\n Save layer\n </Button>\n {!isNew && (\n <Button\n variant=\"danger\"\n disabled={remove.isPending}\n onClick={() => remove.mutate(undefined)}\n >\n Delete\n </Button>\n )}\n </div>\n {save.isError && <ErrorBox error={save.error} />}\n {remove.isError && <ErrorBox error={remove.error} />}\n <Notice text={save.notice ?? remove.notice} />\n </div>\n );\n}\n\nfunction HoldoutForm({ percent }: { percent: number | null }) {\n const { environment } = useEnv();\n const [value, setValue] = useState(percent ?? 0);\n const save = useWrite((holdout: { percent: number } | null) =>\n api.saveHoldout(environment, holdout),\n );\n return (\n <div className=\"flex flex-wrap items-end gap-2 px-4 py-3\">\n <Field\n label=\"Held out (% of subjects)\"\n hint=\"No experiment reaches them; the summed effect of everything shipped is measured against them.\"\n >\n <Input\n aria-label=\"Holdout percent\"\n type=\"number\"\n min={0}\n max={100}\n step={0.1}\n className=\"w-24\"\n value={value}\n onChange={(e) => setValue(Number(e.target.value))}\n />\n </Field>\n <Button\n variant=\"primary\"\n disabled={save.isPending}\n onClick={() => save.mutate({ percent: value })}\n >\n Save holdout\n </Button>\n {percent !== null && (\n <Button variant=\"danger\" disabled={save.isPending} onClick={() => save.mutate(null)}>\n Remove holdout\n </Button>\n )}\n {save.isError && <ErrorBox error={save.error} />}\n <Notice text={save.notice} />\n </div>\n );\n}\n\n/** Mutual-exclusion layers (with their bucket ranges) and the global holdout. */\nexport function Layers() {\n const { environment } = useEnv();\n const query = useQuery({\n queryKey: ['layers', environment],\n queryFn: () => api.layers(environment),\n });\n const [adding, setAdding] = useState(false);\n const data = query.data;\n const inLayer = (layer: string) =>\n (data?.experiments ?? []).filter((e) => e.layer === layer).map((e) => e.flag);\n\n return (\n <div className=\"space-y-4\">\n <Panel\n title=\"Layers\"\n subtitle=\"Experiments in one layer never share a subject: each owns a range of the layer's 10,000 buckets. Set an experiment's layer in its flag editor first.\"\n actions={<Button onClick={() => setAdding(true)}>New layer</Button>}\n >\n {adding && (\n <LayerForm\n layerKey=\"\"\n initial={{ allocations: {} }}\n experiments={[]}\n isNew\n onDone={() => setAdding(false)}\n />\n )}\n <QueryState\n query={query}\n empty={(data?.layers.length ?? 0) === 0 && !adding}\n emptyMessage=\"No layers in this environment.\"\n >\n {data?.layers.map((l) => (\n <LayerForm\n key={`${l.key}:${JSON.stringify(l.layer)}`}\n layerKey={l.key}\n initial={l.layer}\n experiments={inLayer(l.key)}\n isNew={false}\n />\n ))}\n </QueryState>\n </Panel>\n <Panel title=\"Global holdout\">\n <QueryState query={query} empty={false}>\n <HoldoutForm\n key={String(data?.holdout?.percent ?? 'none')}\n percent={data?.holdout?.percent ?? null}\n />\n <ul className=\"border-t border-line px-4 py-2 text-[11px] text-zinc-500\">\n {(data?.experiments ?? []).map((e) => (\n <li key={e.flag}>\n <span className=\"mono text-zinc-300\">{e.flag}</span>{' '}\n {e.holdout ? 'honours the holdout' : 'opted out of the holdout'}\n {e.layer ? ` · layer ${e.layer}` : ''}\n </li>\n ))}\n </ul>\n </QueryState>\n </Panel>\n </div>\n );\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { api } from '../client/flags-client';\nimport { formatTime, Panel, QueryState, Table } from './shell';\nimport { Badge } from './ui/badge';\n\nfunction Stat({\n label,\n value,\n tone,\n}: {\n label: string;\n value: React.ReactNode;\n tone?: 'bad' | 'warn';\n}) {\n return (\n <div className=\"rounded-sm border border-line px-3 py-2\">\n <p className=\"text-[10px] uppercase tracking-wider text-zinc-500\">{label}</p>\n <p\n className={`mono mt-1 text-sm ${tone === 'bad' ? 'text-rose-300' : tone === 'warn' ? 'text-amber-300' : 'text-zinc-100'}`}\n >\n {value}\n </p>\n </div>\n );\n}\n\n/** Is the machinery healthy: where the ruleset comes from, and whether events reach every sink. */\nexport function Ops() {\n const query = useQuery({ queryKey: ['ops'], queryFn: api.ops });\n const ops = query.data;\n return (\n <div className=\"space-y-4\">\n <Panel\n title=\"Ruleset source\"\n subtitle={\n ops\n ? `${ops.app} · ${ops.topology} · role ${ops.role} · evaluates ${ops.environment}`\n : undefined\n }\n >\n <QueryState query={query} empty={false}>\n {ops && (\n <div className=\"grid gap-2 p-4 sm:grid-cols-4\">\n <Stat label=\"Version\" value={ops.source.version} />\n <Stat label=\"Mode\" value={ops.source.mode} />\n <Stat label=\"Loaded\" value={formatTime(ops.source.loadedAt)} />\n <Stat\n label=\"Last error\"\n value={ops.source.lastError ?? 'none'}\n {...(ops.source.lastError\n ? { tone: ops.source.stale ? ('bad' as const) : ('warn' as const) }\n : {})}\n />\n </div>\n )}\n {ops?.source.stale && (\n <p\n role=\"alert\"\n className=\"border-t border-bad/40 bg-bad/10 px-4 py-2 text-xs text-rose-300\"\n >\n Serving the last ruleset that loaded: reloading is failing, so edits made since will\n not reach this process.\n </p>\n )}\n </QueryState>\n </Panel>\n\n <Panel\n title=\"Events\"\n subtitle=\"Exposures and tracked events: buffered in process, published to the transport, relayed to each sink.\"\n >\n <QueryState query={query} empty={false}>\n {ops && (\n <>\n <div className=\"grid gap-2 p-4 sm:grid-cols-4\">\n <Stat\n label=\"Transport\"\n value={\n ops.transport\n ? `${ops.transport.name}${ops.transport.durable ? '' : ' (not durable)'}${ops.transport.transactional ? ' · transactional' : ''}`\n : 'none'\n }\n {...(ops.transport && !ops.transport.durable ? { tone: 'warn' as const } : {})}\n />\n <Stat label=\"Buffered\" value={ops.buffer?.pending ?? '—'} />\n <Stat label=\"Published\" value={ops.buffer?.published ?? '—'} />\n <Stat\n label=\"Dropped\"\n value={ops.buffer?.dropped ?? '—'}\n {...((ops.buffer?.dropped ?? 0) > 0 ? { tone: 'bad' as const } : {})}\n />\n </div>\n <div className=\"flex flex-wrap gap-1 px-4 pb-3\">\n <Badge variant={ops.relay ? 'type' : 'danger'}>\n {ops.relay ? 'relay configured' : 'no relay'}\n </Badge>\n <Badge variant={ops.worker ? 'type' : 'outline'}>\n {ops.worker ? 'worker available' : 'no worker'}\n </Badge>\n <Badge variant={ops.analytics ? 'type' : 'outline'}>\n {ops.analytics ? 'analytics backend' : 'no analytics'}\n </Badge>\n </div>\n {ops.sinkError && (\n <p className=\"px-4 pb-2 text-xs text-rose-300\">\n Sink status unavailable: {ops.sinkError}\n </p>\n )}\n {ops.sinks.length === 0 ? (\n <p className=\"border-t border-line p-4 text-sm text-zinc-500\">\n No sinks configured.\n </p>\n ) : (\n <Table head={['Sink', 'Lag', 'Delivered', 'Leased by', 'Last error']}>\n {ops.sinks.map((sink) => (\n <tr key={sink.sink}>\n <td className=\"mono px-4 py-2\">{sink.sink}</td>\n <td\n className={`mono px-4 py-2 tnum ${(sink.lag ?? 0) > 0 ? 'text-amber-300' : ''}`}\n >\n {sink.lag ?? '—'}\n </td>\n <td className=\"mono px-4 py-2 tnum\">{sink.delivered ?? '—'}</td>\n <td className=\"mono px-4 py-2 text-zinc-400\">{sink.leasedBy ?? '—'}</td>\n <td className=\"px-4 py-2 text-rose-300\">{sink.lastError ?? ''}</td>\n </tr>\n ))}\n </Table>\n )}\n </>\n )}\n </QueryState>\n </Panel>\n\n {ops && ops.topology === 'control-plane' && (\n <Panel\n title=\"Tenants\"\n subtitle=\"Apps that evaluate this control-plane's ruleset. Version and capabilities are what this replica saw; the rest comes from the declarations every tenant publishes.\"\n >\n {ops.tenants.length === 0 ? (\n <p className=\"p-4 text-sm text-zinc-500\">No tenant has called in yet.</p>\n ) : (\n <Table\n head={['Partition', 'Environment', 'Ruleset version', 'Last seen', 'Capabilities']}\n >\n {ops.tenants.map((t) => (\n <tr key={t.partition}>\n <td className=\"mono px-4 py-2\">{t.partition}</td>\n <td className=\"px-4 py-2\">{t.environment ?? '—'}</td>\n <td className=\"mono px-4 py-2\">{t.lastRulesetVersion ?? '—'}</td>\n <td className=\"mono px-4 py-2\">\n {t.lastSeenAt ? formatTime(t.lastSeenAt) : '—'}\n </td>\n <td className=\"px-4 py-2 text-zinc-400\">{t.capabilities.join(', ') || '—'}</td>\n </tr>\n ))}\n </Table>\n )}\n </Panel>\n )}\n </div>\n );\n}\n","/**\n * The console's URL scheme — a hash route, parsed and formatted in one place.\n *\n * `#/<screen>[/<id>][?env=<environment>]`, for example:\n *\n * - `#/flags` — the flag list in the app's own environment\n * - `#/flags/checkout_v2?env=staging` — one flag's editor, in staging\n * - `#/experiments/checkout_v2` — one experiment's results\n *\n * A hash, not a path: the provider registers `GET <path>` as an EXACT route (no SPA catch-all), so\n * `<path>/flags` would 404 on reload. The fragment never reaches the server and works at any mount.\n * The environment travels in the hash too, so a link pasted into a ticket opens the same\n * environment the sender was looking at — editing production by accident is the failure to avoid.\n *\n * Anything unrecognised parses to the flag list, never to an error.\n */\n\nexport type Screen =\n | 'flags'\n | 'segments'\n | 'layers'\n | 'experiments'\n | 'approvals'\n | 'activity'\n | 'environments'\n | 'hygiene'\n | 'ops';\n\nexport const SCREENS: ReadonlyArray<{ value: Screen; label: string }> = [\n { value: 'flags', label: 'Flags' },\n { value: 'segments', label: 'Segments' },\n { value: 'layers', label: 'Layers' },\n { value: 'experiments', label: 'Experiments' },\n { value: 'approvals', label: 'Approvals' },\n { value: 'activity', label: 'Activity' },\n { value: 'environments', label: 'Environments' },\n { value: 'hygiene', label: 'Hygiene' },\n { value: 'ops', label: 'Ops' },\n];\n\nconst SCREEN_VALUES = new Set<string>(SCREENS.map((screen) => screen.value));\n\n/** Screens whose second segment names something (a flag key, an experiment key). */\nconst WITH_ID = new Set<Screen>(['flags', 'experiments']);\n\nexport function isScreen(value: string): value is Screen {\n return SCREEN_VALUES.has(value);\n}\n\nexport interface Route {\n screen: Screen;\n /** The flag (or experiment) open in the detail view. */\n id?: string | undefined;\n /** The environment being looked at; absent = the app's own. */\n env?: string | undefined;\n}\n\n/** Parse `window.location.hash` (with or without the leading `#`) into a {@link Route}. */\nexport function parseRoute(hash: string): Route {\n const trimmed = hash.startsWith('#') ? hash.slice(1) : hash;\n const queryAt = trimmed.indexOf('?');\n const path = queryAt === -1 ? trimmed : trimmed.slice(0, queryAt);\n const query = new URLSearchParams(queryAt === -1 ? '' : trimmed.slice(queryAt + 1));\n const env = query.get('env');\n const withEnv = (route: Route): Route => (env !== null && env !== '' ? { ...route, env } : route);\n\n if (!path.startsWith('/')) return withEnv({ screen: 'flags' });\n const slash = path.indexOf('/', 1);\n const screen = slash === -1 ? path.slice(1) : path.slice(1, slash);\n const id = slash === -1 ? '' : path.slice(slash + 1);\n if (!isScreen(screen)) return withEnv({ screen: 'flags' });\n const route: Route = { screen };\n if (WITH_ID.has(screen) && id !== '') route.id = safeDecode(id);\n return withEnv(route);\n}\n\n/** Format a {@link Route} as the hash to assign (leading `#` included). */\nexport function formatRoute(route: Route): string {\n let hash = `#/${route.screen}`;\n if (WITH_ID.has(route.screen) && route.id !== undefined && route.id !== '') {\n hash += `/${encodeURIComponent(route.id)}`;\n }\n if (route.env !== undefined && route.env !== '') {\n hash += `?${new URLSearchParams({ env: route.env }).toString()}`;\n }\n return hash;\n}\n\nfunction safeDecode(segment: string): string {\n try {\n return decodeURIComponent(segment);\n } catch {\n return segment;\n }\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { type AttributeCondition, api, type Segment } from '../client/flags-client';\nimport { AttributeFields } from './editor-parts';\nimport { Notice, useEnv, useWrite } from './env';\nimport { newAttributeCondition } from './flag-model';\nimport { ErrorBox, Panel, QueryState } from './shell';\nimport { Badge } from './ui/badge';\nimport { Button, Field, Input, TextArea } from './ui/form';\n\nconst lines = (text: string) =>\n text\n .split(/[\\n,]/)\n .map((s) => s.trim())\n .filter((s) => s !== '');\n\nfunction cleanSegment(segment: Segment): Segment {\n const out: Segment = {};\n if (segment.included && segment.included.length > 0) out.included = segment.included;\n if (segment.excluded && segment.excluded.length > 0) out.excluded = segment.excluded;\n if (segment.conditions && segment.conditions.length > 0) out.conditions = segment.conditions;\n return out;\n}\n\nfunction SegmentForm({\n segmentKey,\n initial,\n usedBy,\n isNew,\n onDone,\n}: {\n segmentKey: string;\n initial: Segment;\n usedBy: string[];\n isNew: boolean;\n onDone?: () => void;\n}) {\n const { environment, meta } = useEnv();\n const [key, setKey] = useState(segmentKey);\n const [included, setIncluded] = useState((initial.included ?? []).join('\\n'));\n const [excluded, setExcluded] = useState((initial.excluded ?? []).join('\\n'));\n const [conditions, setConditions] = useState<AttributeCondition[]>(initial.conditions ?? []);\n const save = useWrite(() =>\n api.saveSegment(\n environment,\n key,\n cleanSegment({ included: lines(included), excluded: lines(excluded), conditions }),\n ),\n );\n const remove = useWrite(() => api.deleteSegment(environment, segmentKey));\n\n return (\n <div className=\"space-y-2 border-b border-line px-4 py-3 last:border-b-0\">\n <div className=\"flex flex-wrap items-center gap-2\">\n {isNew ? (\n <Input\n aria-label=\"New segment key\"\n placeholder=\"segment key\"\n className=\"mono w-48\"\n value={key}\n onChange={(e) => setKey(e.target.value)}\n />\n ) : (\n <span className=\"mono text-sm text-zinc-100\">{segmentKey}</span>\n )}\n {usedBy.length > 0 && (\n <span className=\"text-[11px] text-zinc-500\">\n used by{' '}\n {usedBy.map((flag) => (\n <Badge key={flag}>{flag}</Badge>\n ))}\n </span>\n )}\n </div>\n <div className=\"grid gap-2 md:grid-cols-2\">\n <Field label=\"Always included (targeting keys)\">\n <TextArea\n aria-label={`${segmentKey || 'new'} included`}\n rows={3}\n value={included}\n onChange={(e) => setIncluded(e.target.value)}\n />\n </Field>\n <Field label=\"Always excluded (targeting keys)\">\n <TextArea\n aria-label={`${segmentKey || 'new'} excluded`}\n rows={3}\n value={excluded}\n onChange={(e) => setExcluded(e.target.value)}\n />\n </Field>\n </div>\n <p className=\"text-[11px] text-zinc-500\">Otherwise, members match all of:</p>\n {conditions.map((condition, i) => (\n <div\n // biome-ignore lint/suspicious/noArrayIndexKey: positional rows with editable names; a name key would remount the input being typed into.\n key={i}\n className=\"flex flex-wrap items-center gap-2 rounded-sm border border-line-soft p-2\"\n >\n <AttributeFields\n label={`${segmentKey || 'new'} condition ${i + 1}`}\n condition={condition}\n operators={meta?.operators ?? []}\n onChange={(c) => setConditions(conditions.map((x, j) => (j === i ? c : x)))}\n />\n <Button\n variant=\"ghost\"\n onClick={() => setConditions(conditions.filter((_, j) => j !== i))}\n >\n Remove\n </Button>\n </div>\n ))}\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button onClick={() => setConditions([...conditions, newAttributeCondition()])}>\n Add condition\n </Button>\n <Button\n variant=\"primary\"\n disabled={key === '' || save.isPending}\n onClick={() => save.mutate(undefined, { onSuccess: () => onDone?.() })}\n >\n Save segment\n </Button>\n {!isNew && (\n <Button\n variant=\"danger\"\n disabled={remove.isPending}\n onClick={() => remove.mutate(undefined)}\n >\n Delete\n </Button>\n )}\n </div>\n {save.isError && <ErrorBox error={save.error} />}\n {remove.isError && <ErrorBox error={remove.error} />}\n <Notice text={save.notice ?? remove.notice} />\n </div>\n );\n}\n\n/** Reusable audiences referenced from targeting rules. */\nexport function Segments() {\n const { environment } = useEnv();\n const query = useQuery({\n queryKey: ['segments', environment],\n queryFn: () => api.segments(environment),\n });\n const [adding, setAdding] = useState(false);\n const segments = query.data?.segments ?? [];\n return (\n <Panel\n title=\"Segments\"\n subtitle=\"Explicit includes and excludes first, then conditions (all must match).\"\n actions={<Button onClick={() => setAdding(true)}>New segment</Button>}\n >\n {adding && (\n <SegmentForm segmentKey=\"\" initial={{}} usedBy={[]} isNew onDone={() => setAdding(false)} />\n )}\n <QueryState\n query={query}\n empty={segments.length === 0 && !adding}\n emptyMessage=\"No segments in this environment.\"\n >\n {segments.map((s) => (\n <SegmentForm\n key={`${s.key}:${JSON.stringify(s.segment)}`}\n segmentKey={s.key}\n initial={s.segment}\n usedBy={s.usedBy}\n isNew={false}\n />\n ))}\n </QueryState>\n </Panel>\n );\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { useCallback, useEffect, useState } from 'react';\nimport { api, defaultEnvironment } from '../client/flags-client';\nimport { Activity } from './Activity';\nimport { Approvals } from './Approvals';\nimport { Environments } from './Environments';\nimport { ExperimentDetail, Experiments } from './Experiments';\nimport { EnvProvider } from './env';\nimport { FlagEditor } from './FlagEditor';\nimport { FlagsList } from './FlagsList';\nimport { Hygiene } from './Hygiene';\nimport { Layers } from './Layers';\nimport { Ops } from './Ops';\nimport { formatRoute, parseRoute, type Route, SCREENS } from './routes';\nimport { Segments } from './Segments';\nimport { Select } from './ui/form';\nimport { Segmented } from './ui/segmented';\n\n/** The hash is the single source of truth for the screen, the open item and the environment. */\nfunction useHashRoute(): [Route, (next: Route) => void] {\n const [route, setRoute] = useState<Route>(() => parseRoute(window.location.hash));\n useEffect(() => {\n const sync = () => setRoute(parseRoute(window.location.hash));\n window.addEventListener('hashchange', sync);\n return () => window.removeEventListener('hashchange', sync);\n }, []);\n const navigate = useCallback((next: Route) => {\n const hash = formatRoute(next);\n if (window.location.hash !== hash) window.location.hash = hash;\n }, []);\n return [route, navigate];\n}\n\n/**\n * The console shell: a header with the environment switcher, the screen tabs, and one screen.\n *\n * The environment is in the hash and in the header in a colour of its own: every read and every\n * write on every screen goes to it, and the one mistake this console must make hard is editing\n * production while believing you are in staging.\n */\nexport function App() {\n const [route, navigate] = useHashRoute();\n const meta = useQuery({ queryKey: ['meta'], queryFn: api.meta, refetchInterval: false });\n const environment = route.env ?? meta.data?.environment ?? defaultEnvironment();\n const go = (next: Omit<Route, 'env'>) =>\n navigate({ ...next, ...(route.env !== undefined ? { env: route.env } : {}) });\n const environments = [...new Set([environment, ...(meta.data?.environments ?? [])])].sort();\n const approvals = meta.data?.approvals[environment] === true;\n const isAppEnvironment = environment === (meta.data?.environment ?? defaultEnvironment());\n\n return (\n <EnvProvider value={{ environment, meta: meta.data }}>\n <div className=\"relative min-h-full\">\n <div className=\"app-bg\" />\n <div className=\"relative z-10 mx-auto max-w-6xl px-3 py-4 sm:px-4 sm:py-6\">\n <header className=\"mb-5 flex flex-wrap items-center justify-between gap-3\">\n <div>\n <h1 className=\"text-lg text-zinc-100\">\n flags <span className=\"text-brand\">·</span> console\n </h1>\n <p className=\"mt-0.5 text-[11px] text-zinc-500\">\n {meta.data\n ? `${meta.data.app} · ${meta.data.topology} · signed in as ${meta.data.actor.name ?? meta.data.actor.id}`\n : 'Flags, targeting and experiments, edited where they are evaluated.'}\n </p>\n </div>\n <div className=\"flex items-center gap-2 text-xs\">\n <span className=\"text-zinc-500\">Environment</span>\n <Select\n aria-label=\"Environment\"\n value={environment}\n onChange={(e) =>\n navigate({\n ...route,\n env: e.target.value === meta.data?.environment ? undefined : e.target.value,\n })\n }\n className={isAppEnvironment ? '' : 'border-warn/60 text-amber-300'}\n >\n {environments.map((e) => (\n <option key={e} value={e}>\n {e}\n </option>\n ))}\n </Select>\n {approvals && (\n <span className=\"rounded-sm border border-line px-1.5 py-0.5 text-[10px] text-amber-300\">\n approvals on\n </span>\n )}\n </div>\n </header>\n\n <Segmented\n aria-label=\"Screen\"\n className=\"mb-4\"\n options={SCREENS}\n value={route.screen}\n onChange={(screen) => go({ screen })}\n />\n\n {route.screen === 'flags' &&\n (route.id ? (\n <FlagEditor\n key={`${environment}:${route.id}`}\n flagKey={route.id}\n onClose={() => go({ screen: 'flags' })}\n />\n ) : (\n <FlagsList onOpen={(id) => go({ screen: 'flags', id })} />\n ))}\n {route.screen === 'segments' && <Segments key={environment} />}\n {route.screen === 'layers' && <Layers key={environment} />}\n {route.screen === 'experiments' &&\n (route.id ? (\n <ExperimentDetail\n experimentKey={route.id}\n onClose={() => go({ screen: 'experiments' })}\n />\n ) : (\n <Experiments onOpen={(id) => go({ screen: 'experiments', id })} />\n ))}\n {route.screen === 'approvals' && <Approvals key={environment} />}\n {route.screen === 'activity' && <Activity key={environment} />}\n {route.screen === 'environments' && (\n <Environments key={`${environment}:${meta.data ? 'meta' : 'none'}`} />\n )}\n {route.screen === 'hygiene' && <Hygiene onOpen={(id) => go({ screen: 'flags', id })} />}\n {route.screen === 'ops' && <Ops />}\n </div>\n </div>\n </EnvProvider>\n );\n}\n","import { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { StrictMode } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { App } from './App';\nimport './index.css';\n\n/**\n * Refetch every 15s: a ruleset changes when someone edits it, not second to second, and the ops\n * numbers are the only thing that moves on its own. The flag editor opts out — refetching under a\n * person typing would only fight them.\n */\nconst queryClient = new QueryClient({\n defaultOptions: { queries: { refetchInterval: 15_000, refetchOnWindowFocus: false } },\n});\n\ncreateRoot(document.getElementById('root') as HTMLElement).render(\n <StrictMode>\n <QueryClientProvider client={queryClient}>\n <App />\n </QueryClientProvider>\n </StrictMode>,\n);\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,39,40,43],"mappings":"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C,CAAC,CACtC,OAASphD,EAAO,CACdu5C,EACE6H,EACA1H,EACA15C,CACF,CACF,EACJ,MACF,IAAK,IACMghD,KAAT,OACGC,IACK,EAAeD,GACjBQ,GACQzB,EAAa,WAAnB,EACIA,EAAa,KACFA,EAAa,WAAxB,OACEA,EAAa,cAAc,KAC3BA,EACNqB,EAAa,SACf,EACAK,GAAiB1B,CAAY,GAC7ByB,GAAuBR,GAAYI,EAAa,SAAS,GAC/D,MACF,IAAK,GACH,EAAiBJ,GACjB,EAA4BC,GAC5B,GAAaG,EAAa,UAAU,cACpC,GAAwB,CAAC,EACzBF,GACEnB,EACArG,EACA0H,CACF,EACA,GAAaC,EACb,GAAwBC,EACxB,MACF,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACH9H,GAA4B,EAAG4H,EAAc1H,CAAsB,EACnE4E,GACE9E,GAA4B,EAAG4H,EAAc1H,CAAsB,EACrEwH,GACEnB,EACArG,EACA0H,CACF,EACA,MACF,IAAK,GACH9C,IACGjE,GAAgB+G,EAAc1H,CAAsB,EACpD,EAAiB0H,EAAa,UAChB,OAAOC,EAAe,sBAArC,YACEvH,GACEsH,EACA1H,EACA2H,CACF,GACJH,GACEnB,EACArG,EACA0H,CACF,EACA,MACF,IAAK,IACHF,GACEnB,EACArG,EACA0H,CACF,EACA,MACF,IAAK,IACH,GACG,EAAiB9C,IACT8C,EAAa,gBAAtB,KACFF,GACEnB,EACArG,EACA0H,CACF,EACA,EAA4BC,EAC5B,MACF,IAAK,IACHhH,GAAgB+G,EAAc1H,CAAsB,EACpDwH,GACEnB,EACArG,EACA0H,CACF,EACA,MACF,IAAK,GACH9C,GACEjE,GAAgB+G,EAAc1H,CAAsB,EACtDwH,GACEnB,EACArG,EACA0H,CACF,EACA,MACF,QACEF,GACEnB,EACArG,EACA0H,CACF,CACJ,CACF,CACA,SAASnB,GAAiC,EAAc,EAAc,CACpE,GACW9G,EAAa,gBAAtB,OACE,EAAeA,EAAa,UACrB4G,IAAT,OACI,EAAeA,EAAa,cAAyBA,IAAT,OAChD,CACA,EAAeA,EAAa,WAC5B,GAA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A,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAIT,EAAeyD,EACjBrK,EAAeqH,EACfjB,EAAiB+E,EACjBN,EAAuBO,EACvBjL,EAAQH,EAAa,MACvB,OAAQA,EAAa,IAArB,CACE,IAAK,GACL,IAAK,IACL,IAAK,IACHiL,GACErE,EACA5G,EACAoG,EACAyE,EACAP,CACF,EACAvK,GAA0B,EAAGC,CAAY,EACzC,MACF,IAAK,IACH,MACF,IAAK,IACH,IAAIriB,EAAWqiB,EAAa,UACnBA,EAAa,gBAAtB,MAaM,EAAS,aAAe,EAC1BiL,GACErE,EACA5G,EACAoG,EACAyE,EACAP,CACF,GAnBA3sB,EAAS,YAAc,EACrBstB,GACErE,EACA5G,EACAoG,EACAyE,EACAP,CACF,EACAY,GACEtE,EACA5G,CACF,EASNsK,GACEnK,EAAQ,MACRqK,GACExK,EAAa,UACbA,CACF,EACF,MACF,IAAK,IACHiL,GACErE,EACA5G,EACAoG,EACAyE,EACAP,CACF,EACAA,GACEnK,EAAQ,MACRuK,GAA8B1K,EAAa,UAAWA,CAAY,EACpE,MACF,QACEiL,GACErE,EACA5G,EACAoG,EACAyE,EACAP,CACF,CACJ,CACA,EAAcjD,EAAY,OAC5B,CACF,CACA,SAAS6D,GACP,EACA,EACA,CACA,GAAI7D,EAAY,aAAe,MAC7B,IAAK,EAAcA,EAAY,MAAgBA,IAAT,MAAwB,CAC5D,IAAIT,EAAeyD,EACjBrK,EAAeqH,EACflH,EAAQH,EAAa,MACvB,OAAQA,EAAa,IAArB,CACE,IAAK,IACHkL,GAAwCtE,EAAc5G,CAAY,EAClEG,EAAQ,MACNqK,GACExK,EAAa,UACbA,CACF,EACF,MACF,IAAK,IACHkL,GAAwCtE,EAAc5G,CAAY,EAClEG,EAAQ,MACNuK,GAA8B1K,EAAa,UAAWA,CAAY,EACpE,MACF,QACEkL,GAAwCtE,EAAc5G,CAAY,CACtE,CACA,EAAcqH,EAAY,OAC5B,CACJ,CACA,IAAIgE,GAAsB,KAC1B,SAASC,GACP,EACA,EACA,EACA,CACA,GAAIjE,EAAY,aAAegE,GAC7B,IAAK,EAAchE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D,EACA,CAAC,CACH,EAEQA,IAAN,GACMA,IAAN,EACA,CACA,GACEskC,IACA,CAAC6B,EACD,CACA,EAAK,4BAA8BF,EACnC,IACEA,EACF,EAAa,EACb,MAAM,CACR,CACA,EAAsBjrB,GACtB,GAAsC8qB,EAC7BG,IAAT,OACYjrB,KAAT,KACI,GAAsCirB,EACvCjrB,GAAoC,KAAK,MACvCA,GACAirB,CACF,EACR,CACA,EAAajmC,CACf,CAEA,GADA,EAAsB,CAAC,EACb8lC,IAAN,EAAkB,QACxB,CACF,CACA,GAAUA,IAAN,EAAkB,CACpBN,GAAkBhF,EAAe,CAAC,EAClCiF,GAAkBjF,EAAej9B,EAAO,EAAG,CAAC,CAAC,EAC7C,KACF,CACA,EAAG,CAGD,OAFA,EAAkBi9B,EAClB,EAAsBsF,EACdG,EAAR,CACE,IAAK,GACL,IAAK,GACH,MAAM,MAAMzrC,EAAuB,GAAG,CAAC,EACzC,IAAK,GACH,IAAK+I,EAAQ,WAAaA,IAAUA,EAAQ,YAAcA,EACxD,MACJ,IAAK,GACHkiC,GACEG,EACAriC,EACA+vB,GACA,CAAC8Q,EACH,EACA,MAAM,EACR,IAAK,GACH,GAAsC,KACtC,MACF,IAAK,GACL,IAAK,GACH,MACF,QACE,MAAM,MAAM5pC,EAAuB,GAAG,CAAC,CAC3C,CACA,IACG+I,EAAQ,YAAcA,IACrB,EAAaqhC,GAA+B,IAAM3iC,GAAI,EACxD,GAAK6jC,GACL,CAOA,GANAL,GACEG,EACAriC,EACA+vB,GACA,CAAC8Q,EACH,EACU5gC,GAAaoiC,EAAiB,EAAG,CAAC,CAAC,IAAzC,EAA4C,MAAM,EACtD,GAAsBriC,EACtB,EAAgB,cAAgB6iC,GAC9BC,GAAsB,KACpB,KACAT,EACAC,EACA7qB,GACA8pB,GACAH,GACAphC,EACA+vB,GACAkR,GACAE,GACAN,GACA6B,EACA,YACA,GACA,CACF,EACAH,CACF,EACA,MAAM,CACR,CACAO,GACET,EACAC,EACA7qB,GACA8pB,GACAH,GACAphC,EACA+vB,GACAkR,GACAE,GACAN,GACA6B,EACA,KACA,GACA,CACF,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lC,MACF,IAAK,UACL,IAAK,QACKiH,GAAR,MACe,OAAOA,GAAtB,YACa,OAAOA,GAApB,UACA,MAAMA,CAAK,EACPk4C,EAAW,gBAAgBn/C,CAAG,EAC9Bm/C,EAAW,aAAan/C,EAAKiH,CAAK,EACtC,MACF,IAAK,UACH44B,EAA0B,eAAgBsf,CAAU,EACpDtf,EAA0B,SAAUsf,CAAU,EAC9CzwB,GAAqBywB,EAAY,UAAWl4C,CAAK,EACjD,MACF,IAAK,eACH4nB,GACEswB,EACA,+BACA,gBACAl4C,CACF,EACA,MACF,IAAK,eACH4nB,GACEswB,EACA,+BACA,gBACAl4C,CACF,EACA,MACF,IAAK,YACH4nB,GACEswB,EACA,+BACA,aACAl4C,CACF,EACA,MACF,IAAK,YACH4nB,GACEswB,EACA,+BACA,aACAl4C,CACF,EACA,MACF,IAAK,aACH4nB,GACEswB,EACA,+BACA,cACAl4C,CACF,EACA,MACF,IAAK,YACH4nB,GACEswB,EACA,+BACA,aACAl4C,CACF,EACA,MACF,IAAK,UACH4nB,GACEswB,EACA,uCACA,WACAl4C,CACF,EACA,MACF,IAAK,UACH4nB,GACEswB,EACA,uCACA,WACAl4C,CACF,EACA,MACF,IAAK,WACH4nB,GACEswB,EACA,uCACA,YACAl4C,CACF,EACA,MACF,IAAK,KACHynB,GAAqBywB,EAAY,KAAMl4C,CAAK,EAC5C,MACF,IAAK,YACL,IAAK,cACH,OACF,QACE,GACE,EAAE,EAAIjH,EAAI,SACDA,EAAI,KAAZ,KAA0BA,EAAI,KAAZ,KACVA,EAAI,KAAZ,KAA0BA,EAAI,KAAZ,IAEnB,EAAO2xB,GAAQ,IAAI3xB,CAAG,GAAKA,EACzB0uB,GAAqBywB,EAAYn/C,EAAKiH,CAAK,OAC1C,MACT,CACA,EAAgC,CAAC,CACnC,CACA,SAASyuD,GAAuB,EAAY,EAAK,EAAK,EAAO,EAAO,EAAW,CAC7E,OAAQ11D,EAAR,CACE,IAAK,QACHoxB,GAAkB+tB,EAAYl4C,EAAOgsC,CAAS,EAC9C,OACF,IAAK,0BACH,GAAYhsC,GAAR,KAAe,CACjB,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,KACN,EAAa,IACf,MAAOA,IAAmB51C,IAAe,EAAa,KACxD,CACF,CAEA,MADA,IAAoBA,EACb,IACT,CACA,SAASjB,GAAiB,EAAc,CACtC,OAAQoK,EAAR,CACE,IAAK,eACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,cACL,IAAK,OACL,IAAK,MACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,cACL,IAAK,YACL,IAAK,aACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,SACL,IAAK,kBACL,IAAK,YACL,IAAK,mBACL,IAAK,iBACL,IAAK,oBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,OACL,IAAK,mBACL,IAAK,kBACL,IAAK,QACL,IAAK,aACL,IAAK,WACL,IAAK,SACL,IAAK,cACH,MAAO,GACT,IAAK,OACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,SACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,eACH,MAAO,GACT,IAAK,UACH,OAAQzO,GAAwB,EAAhC,CACE,KAAKC,GACH,MAAO,GACT,KAAKC,GACH,MAAO,GACT,KAAKC,GACL,KAAKC,GACH,MAAO,IACT,KAAKC,GACH,MAAO,WACT,QACE,MAAO,GACX,CACF,QACE,MAAO,GACX,CACF,CACA,IAAI86C,GAA4B,CAAC,EAC/BC,GAAc,KACdC,GAAa,KACbC,GAAc,KACdC,GAAiB,IAAI,IACrBC,GAAwB,IAAI,IAC5BC,GAAiC,CAAC,EAClCT,GACE,sPAAsP,MACpP,GACF,EACJ,SAASF,GAAuB,E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"}
|