harper 5.0.11 → 5.0.12

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.
Files changed (25) hide show
  1. package/config/configUtils.js +8 -2
  2. package/dist/config/configUtils.js +8 -2
  3. package/dist/config/configUtils.js.map +1 -1
  4. package/package.json +1 -1
  5. package/studio/web/assets/index-CUg8eaR8.css +1 -0
  6. package/studio/web/assets/index-DEbcplKh.js +74 -0
  7. package/studio/web/assets/index-DEbcplKh.js.map +1 -0
  8. package/studio/web/assets/{index.lazy-DRQKYKT0.js → index.lazy-Cnq0wysL.js} +4 -4
  9. package/studio/web/assets/{index.lazy-DRQKYKT0.js.map → index.lazy-Cnq0wysL.js.map} +1 -1
  10. package/studio/web/assets/{profile-wyN1K1z0.js → profile-DX5mq9gw.js} +2 -2
  11. package/studio/web/assets/{profile-wyN1K1z0.js.map → profile-DX5mq9gw.js.map} +1 -1
  12. package/studio/web/assets/status-DwYg6LpK.js +2 -0
  13. package/studio/web/assets/{status-ChrCqVc7.js.map → status-DwYg6LpK.js.map} +1 -1
  14. package/studio/web/assets/{vendor-react-D6IIT0sT.js → vendor-react-DyY32duL.js} +52 -52
  15. package/studio/web/assets/vendor-react-DyY32duL.js.map +1 -0
  16. package/studio/web/assets/{vendor-tanstack-zom2m6Nj.js → vendor-tanstack-D0jMvSWD.js} +2 -2
  17. package/studio/web/assets/{vendor-tanstack-zom2m6Nj.js.map → vendor-tanstack-D0jMvSWD.js.map} +1 -1
  18. package/studio/web/assets/{vendor-viz-BdK5B9uw.js → vendor-viz-Cs-GQIim.js} +2 -2
  19. package/studio/web/assets/{vendor-viz-BdK5B9uw.js.map → vendor-viz-Cs-GQIim.js.map} +1 -1
  20. package/studio/web/index.html +4 -4
  21. package/studio/web/assets/index-C_a0cXHU.css +0 -1
  22. package/studio/web/assets/index-Dk_TRrUg.js +0 -74
  23. package/studio/web/assets/index-Dk_TRrUg.js.map +0 -1
  24. package/studio/web/assets/status-ChrCqVc7.js +0 -2
  25. package/studio/web/assets/vendor-react-D6IIT0sT.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"vendor-tanstack-zom2m6Nj.js","names":["#mutations","#scopes","#mutationId","#queries","#queryCache","#mutationCache","#defaultOptions","#queryDefaults","#mutationDefaults","#mountCount","#unsubscribeFocus","#unsubscribeOnline","goober.css","_tmpl$$1","_tmpl$","useStyles"],"sources":["../../node_modules/.pnpm/@tanstack+query-core@5.100.8/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.100.8/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.100.8/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../node_modules/.pnpm/@tanstack+router-devtools-core@1.133.20_@tanstack+router-core@1.157.18_@types+node@24.1_949abfe5dd974be2685d1072ab0c1e2a/node_modules/@tanstack/router-devtools-core/dist/index-DX7UIGS3.js","../../node_modules/.pnpm/@tanstack+router-core@1.157.18/node_modules/@tanstack/router-core/dist/esm/new-process-route-tree.js","../../node_modules/.pnpm/@tanstack+router-core@1.157.18/node_modules/@tanstack/router-core/dist/esm/path.js","../../node_modules/.pnpm/@tanstack+router-core@1.157.18/node_modules/@tanstack/router-core/dist/esm/root.js","../../node_modules/.pnpm/@tanstack+router-devtools-core@1.133.20_@tanstack+router-core@1.157.18_@types+node@24.1_949abfe5dd974be2685d1072ab0c1e2a/node_modules/@tanstack/router-devtools-core/dist/BaseTanStackRouterDevtoolsPanel-KIEU40vQ.js","../../node_modules/.pnpm/@tanstack+router-devtools-core@1.133.20_@tanstack+router-core@1.157.18_@types+node@24.1_949abfe5dd974be2685d1072ab0c1e2a/node_modules/@tanstack/router-devtools-core/dist/FloatingTanStackRouterDevtools-kcMbkHXI.js"],"sourcesContent":["// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n client,\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options._type = \"infinite\";\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options._type = \"infinite\";\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","const sharedConfig = {\n context: void 0,\n registry: void 0,\n effects: void 0,\n done: false,\n getContextId() {\n return getContextId(this.context.count);\n },\n getNextContextId() {\n return getContextId(this.context.count++);\n }\n};\nfunction getContextId(count) {\n const num = String(count), len = num.length - 1;\n return sharedConfig.context.id + (len ? String.fromCharCode(96 + len) : \"\") + num;\n}\nfunction setHydrateContext(context) {\n sharedConfig.context = context;\n}\nconst IS_DEV = false;\nconst equalFn = (a, b) => a === b;\nconst $PROXY = Symbol(\"solid-proxy\");\nconst SUPPORTS_PROXY = typeof Proxy === \"function\";\nconst $TRACK = Symbol(\"solid-track\");\nconst signalOptions = {\n equals: equalFn\n};\nlet runEffects = runQueue;\nconst STALE = 1;\nconst PENDING = 2;\nconst UNOWNED = {\n owned: null,\n cleanups: null,\n context: null,\n owner: null\n};\nconst NO_INIT = {};\nvar Owner = null;\nlet Transition = null;\nlet ExternalSourceConfig = null;\nlet Listener = null;\nlet Updates = null;\nlet Effects = null;\nlet ExecCount = 0;\nfunction createRoot(fn, detachedOwner) {\n const listener = Listener, owner = Owner, unowned = fn.length === 0, current = detachedOwner === void 0 ? owner : detachedOwner, root = unowned ? UNOWNED : {\n owned: null,\n cleanups: null,\n context: current ? current.context : null,\n owner: current\n }, updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root)));\n Owner = root;\n Listener = null;\n try {\n return runUpdates(updateFn, true);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n}\nfunction createSignal(value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const s = {\n value,\n observers: null,\n observerSlots: null,\n comparator: options.equals || void 0\n };\n const setter = (value2) => {\n if (typeof value2 === \"function\") {\n value2 = value2(s.value);\n }\n return writeSignal(s, value2);\n };\n return [readSignal.bind(s), setter];\n}\nfunction createComputed(fn, value, options) {\n const c = createComputation(fn, value, true, STALE);\n updateComputation(c);\n}\nfunction createRenderEffect(fn, value, options) {\n const c = createComputation(fn, value, false, STALE);\n updateComputation(c);\n}\nfunction createEffect(fn, value, options) {\n runEffects = runUserEffects;\n const c = createComputation(fn, value, false, STALE);\n if (!options || !options.render) c.user = true;\n Effects ? Effects.push(c) : updateComputation(c);\n}\nfunction createMemo(fn, value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const c = createComputation(fn, value, true, 0);\n c.observers = null;\n c.observerSlots = null;\n c.comparator = options.equals || void 0;\n updateComputation(c);\n return readSignal.bind(c);\n}\nfunction isPromise(v) {\n return v && typeof v === \"object\" && \"then\" in v;\n}\nfunction createResource(pSource, pFetcher, pOptions) {\n let source;\n let fetcher;\n let options;\n {\n source = true;\n fetcher = pSource;\n options = {};\n }\n let pr = null, initP = NO_INIT, id = null, scheduled = false, resolved = \"initialValue\" in options, dynamic = typeof source === \"function\" && createMemo(source);\n const contexts = /* @__PURE__ */ new Set(), [value, setValue] = (options.storage || createSignal)(options.initialValue), [error, setError] = createSignal(void 0), [track, trigger] = createSignal(void 0, {\n equals: false\n }), [state, setState] = createSignal(resolved ? \"ready\" : \"unresolved\");\n if (sharedConfig.context) {\n id = sharedConfig.getNextContextId();\n if (options.ssrLoadFrom === \"initial\") initP = options.initialValue;\n else if (sharedConfig.load && sharedConfig.has(id)) initP = sharedConfig.load(id);\n }\n function loadEnd(p, v, error2, key) {\n if (pr === p) {\n pr = null;\n key !== void 0 && (resolved = true);\n if ((p === initP || v === initP) && options.onHydrated)\n queueMicrotask(\n () => options.onHydrated(key, {\n value: v\n })\n );\n initP = NO_INIT;\n completeLoad(v, error2);\n }\n return v;\n }\n function completeLoad(v, err) {\n runUpdates(() => {\n if (err === void 0) setValue(() => v);\n setState(err !== void 0 ? \"errored\" : resolved ? \"ready\" : \"unresolved\");\n setError(err);\n for (const c of contexts.keys()) c.decrement();\n contexts.clear();\n }, false);\n }\n function read() {\n const c = SuspenseContext, v = value(), err = error();\n if (err !== void 0 && !pr) throw err;\n if (Listener && !Listener.user && c) ;\n return v;\n }\n function load(refetching = true) {\n if (refetching !== false && scheduled) return;\n scheduled = false;\n const lookup = dynamic ? dynamic() : source;\n if (lookup == null || lookup === false) {\n loadEnd(pr, untrack(value));\n return;\n }\n const p = initP !== NO_INIT ? initP : untrack(\n () => fetcher(lookup, {\n value: value(),\n refetching\n })\n );\n if (!isPromise(p)) {\n loadEnd(pr, p, void 0, lookup);\n return p;\n }\n pr = p;\n if (\"value\" in p) {\n if (p.status === \"success\") loadEnd(pr, p.value, void 0, lookup);\n else loadEnd(pr, void 0, castError(p.value), lookup);\n return p;\n }\n scheduled = true;\n queueMicrotask(() => scheduled = false);\n runUpdates(() => {\n setState(resolved ? \"refreshing\" : \"pending\");\n trigger();\n }, false);\n return p.then(\n (v) => loadEnd(p, v, void 0, lookup),\n (e) => loadEnd(p, void 0, castError(e), lookup)\n );\n }\n Object.defineProperties(read, {\n state: {\n get: () => state()\n },\n error: {\n get: () => error()\n },\n loading: {\n get() {\n const s = state();\n return s === \"pending\" || s === \"refreshing\";\n }\n },\n latest: {\n get() {\n if (!resolved) return read();\n const err = error();\n if (err && !pr) throw err;\n return value();\n }\n }\n });\n if (dynamic) createComputed(() => load(false));\n else load(false);\n return [\n read,\n {\n refetch: load,\n mutate: setValue\n }\n ];\n}\nfunction untrack(fn) {\n if (Listener === null) return fn();\n const listener = Listener;\n Listener = null;\n try {\n if (ExternalSourceConfig) ;\n return fn();\n } finally {\n Listener = listener;\n }\n}\nfunction onCleanup(fn) {\n if (Owner === null) ;\n else if (Owner.cleanups === null) Owner.cleanups = [fn];\n else Owner.cleanups.push(fn);\n return fn;\n}\nconst [transPending, setTransPending] = /* @__PURE__ */ createSignal(false);\nfunction createContext(defaultValue, options) {\n const id = Symbol(\"context\");\n return {\n id,\n Provider: createProvider(id),\n defaultValue\n };\n}\nfunction useContext(context) {\n let value;\n return Owner && Owner.context && (value = Owner.context[context.id]) !== void 0 ? value : context.defaultValue;\n}\nfunction children(fn) {\n const children2 = createMemo(fn);\n const memo = createMemo(() => resolveChildren(children2()));\n memo.toArray = () => {\n const c = memo();\n return Array.isArray(c) ? c : c != null ? [c] : [];\n };\n return memo;\n}\nlet SuspenseContext;\nfunction readSignal() {\n if (this.sources && this.state) {\n if (this.state === STALE) updateComputation(this);\n else {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(this), false);\n Updates = updates;\n }\n }\n if (Listener) {\n const sSlot = this.observers ? this.observers.length : 0;\n if (!Listener.sources) {\n Listener.sources = [this];\n Listener.sourceSlots = [sSlot];\n } else {\n Listener.sources.push(this);\n Listener.sourceSlots.push(sSlot);\n }\n if (!this.observers) {\n this.observers = [Listener];\n this.observerSlots = [Listener.sources.length - 1];\n } else {\n this.observers.push(Listener);\n this.observerSlots.push(Listener.sources.length - 1);\n }\n }\n return this.value;\n}\nfunction writeSignal(node, value, isComp) {\n let current = node.value;\n if (!node.comparator || !node.comparator(current, value)) {\n node.value = value;\n if (node.observers && node.observers.length) {\n runUpdates(() => {\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n const TransitionRunning = Transition && Transition.running;\n if (TransitionRunning && Transition.disposed.has(o)) ;\n if (TransitionRunning ? !o.tState : !o.state) {\n if (o.pure) Updates.push(o);\n else Effects.push(o);\n if (o.observers) markDownstream(o);\n }\n if (!TransitionRunning) o.state = STALE;\n }\n if (Updates.length > 1e6) {\n Updates = [];\n if (IS_DEV) ;\n throw new Error();\n }\n }, false);\n }\n }\n return value;\n}\nfunction updateComputation(node) {\n if (!node.fn) return;\n cleanNode(node);\n const time = ExecCount;\n runComputation(\n node,\n node.value,\n time\n );\n}\nfunction runComputation(node, value, time) {\n let nextValue;\n const owner = Owner, listener = Listener;\n Listener = Owner = node;\n try {\n nextValue = node.fn(value);\n } catch (err) {\n if (node.pure) {\n {\n node.state = STALE;\n node.owned && node.owned.forEach(cleanNode);\n node.owned = null;\n }\n }\n node.updatedAt = time + 1;\n return handleError(err);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n if (!node.updatedAt || node.updatedAt <= time) {\n if (node.updatedAt != null && \"observers\" in node) {\n writeSignal(node, nextValue);\n } else node.value = nextValue;\n node.updatedAt = time;\n }\n}\nfunction createComputation(fn, init, pure, state = STALE, options) {\n const c = {\n fn,\n state,\n updatedAt: null,\n owned: null,\n sources: null,\n sourceSlots: null,\n cleanups: null,\n value: init,\n owner: Owner,\n context: Owner ? Owner.context : null,\n pure\n };\n if (Owner === null) ;\n else if (Owner !== UNOWNED) {\n {\n if (!Owner.owned) Owner.owned = [c];\n else Owner.owned.push(c);\n }\n }\n return c;\n}\nfunction runTop(node) {\n if (node.state === 0) return;\n if (node.state === PENDING) return lookUpstream(node);\n if (node.suspense && untrack(node.suspense.inFallback)) return node.suspense.effects.push(node);\n const ancestors = [node];\n while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) {\n if (node.state) ancestors.push(node);\n }\n for (let i = ancestors.length - 1; i >= 0; i--) {\n node = ancestors[i];\n if (node.state === STALE) {\n updateComputation(node);\n } else if (node.state === PENDING) {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(node, ancestors[0]), false);\n Updates = updates;\n }\n }\n}\nfunction runUpdates(fn, init) {\n if (Updates) return fn();\n let wait = false;\n if (!init) Updates = [];\n if (Effects) wait = true;\n else Effects = [];\n ExecCount++;\n try {\n const res = fn();\n completeUpdates(wait);\n return res;\n } catch (err) {\n if (!wait) Effects = null;\n Updates = null;\n handleError(err);\n }\n}\nfunction completeUpdates(wait) {\n if (Updates) {\n runQueue(Updates);\n Updates = null;\n }\n if (wait) return;\n const e = Effects;\n Effects = null;\n if (e.length) runUpdates(() => runEffects(e), false);\n}\nfunction runQueue(queue) {\n for (let i = 0; i < queue.length; i++) runTop(queue[i]);\n}\nfunction runUserEffects(queue) {\n let i, userLength = 0;\n for (i = 0; i < queue.length; i++) {\n const e = queue[i];\n if (!e.user) runTop(e);\n else queue[userLength++] = e;\n }\n if (sharedConfig.context) {\n if (sharedConfig.count) {\n sharedConfig.effects || (sharedConfig.effects = []);\n sharedConfig.effects.push(...queue.slice(0, userLength));\n return;\n }\n setHydrateContext();\n }\n if (sharedConfig.effects && (sharedConfig.done || !sharedConfig.count)) {\n queue = [...sharedConfig.effects, ...queue];\n userLength += sharedConfig.effects.length;\n delete sharedConfig.effects;\n }\n for (i = 0; i < userLength; i++) runTop(queue[i]);\n}\nfunction lookUpstream(node, ignore) {\n node.state = 0;\n for (let i = 0; i < node.sources.length; i += 1) {\n const source = node.sources[i];\n if (source.sources) {\n const state = source.state;\n if (state === STALE) {\n if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount))\n runTop(source);\n } else if (state === PENDING) lookUpstream(source, ignore);\n }\n }\n}\nfunction markDownstream(node) {\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n if (!o.state) {\n o.state = PENDING;\n if (o.pure) Updates.push(o);\n else Effects.push(o);\n o.observers && markDownstream(o);\n }\n }\n}\nfunction cleanNode(node) {\n let i;\n if (node.sources) {\n while (node.sources.length) {\n const source = node.sources.pop(), index = node.sourceSlots.pop(), obs = source.observers;\n if (obs && obs.length) {\n const n = obs.pop(), s = source.observerSlots.pop();\n if (index < obs.length) {\n n.sourceSlots[s] = index;\n obs[index] = n;\n source.observerSlots[index] = s;\n }\n }\n }\n }\n if (node.tOwned) {\n for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);\n delete node.tOwned;\n }\n if (node.owned) {\n for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);\n node.owned = null;\n }\n if (node.cleanups) {\n for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();\n node.cleanups = null;\n }\n node.state = 0;\n}\nfunction castError(err) {\n if (err instanceof Error) return err;\n return new Error(typeof err === \"string\" ? err : \"Unknown error\", {\n cause: err\n });\n}\nfunction handleError(err, owner = Owner) {\n const error = castError(err);\n throw error;\n}\nfunction resolveChildren(children2) {\n if (typeof children2 === \"function\" && !children2.length) return resolveChildren(children2());\n if (Array.isArray(children2)) {\n const results = [];\n for (let i = 0; i < children2.length; i++) {\n const result = resolveChildren(children2[i]);\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results;\n }\n return children2;\n}\nfunction createProvider(id, options) {\n return function provider(props) {\n let res;\n createRenderEffect(\n () => res = untrack(() => {\n Owner.context = {\n ...Owner.context,\n [id]: props.value\n };\n return children(() => props.children);\n }),\n void 0\n );\n return res;\n };\n}\nconst FALLBACK = Symbol(\"fallback\");\nfunction dispose(d) {\n for (let i = 0; i < d.length; i++) d[i]();\n}\nfunction mapArray(list, mapFn, options = {}) {\n let items = [], mapped = [], disposers = [], len = 0, indexes = mapFn.length > 1 ? [] : null;\n onCleanup(() => dispose(disposers));\n return () => {\n let newItems = list() || [], newLen = newItems.length, i, j;\n newItems[$TRACK];\n return untrack(() => {\n let newIndices, newIndicesNext, temp, tempdisposers, tempIndexes, start, end, newEnd, item;\n if (newLen === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n indexes && (indexes = []);\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot((disposer) => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n } else if (len === 0) {\n mapped = new Array(newLen);\n for (j = 0; j < newLen; j++) {\n items[j] = newItems[j];\n mapped[j] = createRoot(mapper);\n }\n len = newLen;\n } else {\n temp = new Array(newLen);\n tempdisposers = new Array(newLen);\n indexes && (tempIndexes = new Array(newLen));\n for (start = 0, end = Math.min(len, newLen); start < end && items[start] === newItems[start]; start++) ;\n for (end = len - 1, newEnd = newLen - 1; end >= start && newEnd >= start && items[end] === newItems[newEnd]; end--, newEnd--) {\n temp[newEnd] = mapped[end];\n tempdisposers[newEnd] = disposers[end];\n indexes && (tempIndexes[newEnd] = indexes[end]);\n }\n newIndices = /* @__PURE__ */ new Map();\n newIndicesNext = new Array(newEnd + 1);\n for (j = newEnd; j >= start; j--) {\n item = newItems[j];\n i = newIndices.get(item);\n newIndicesNext[j] = i === void 0 ? -1 : i;\n newIndices.set(item, j);\n }\n for (i = start; i <= end; i++) {\n item = items[i];\n j = newIndices.get(item);\n if (j !== void 0 && j !== -1) {\n temp[j] = mapped[i];\n tempdisposers[j] = disposers[i];\n indexes && (tempIndexes[j] = indexes[i]);\n j = newIndicesNext[j];\n newIndices.set(item, j);\n } else disposers[i]();\n }\n for (j = start; j < newLen; j++) {\n if (j in temp) {\n mapped[j] = temp[j];\n disposers[j] = tempdisposers[j];\n if (indexes) {\n indexes[j] = tempIndexes[j];\n indexes[j](j);\n }\n } else mapped[j] = createRoot(mapper);\n }\n mapped = mapped.slice(0, len = newLen);\n items = newItems.slice(0);\n }\n return mapped;\n });\n function mapper(disposer) {\n disposers[j] = disposer;\n if (indexes) {\n const [s, set] = createSignal(j);\n indexes[j] = set;\n return mapFn(newItems[j], s);\n }\n return mapFn(newItems[j]);\n }\n };\n}\nfunction createComponent(Comp, props) {\n return untrack(() => Comp(props || {}));\n}\nfunction trueFn() {\n return true;\n}\nconst propTraps = {\n get(_, property, receiver) {\n if (property === $PROXY) return receiver;\n return _.get(property);\n },\n has(_, property) {\n if (property === $PROXY) return true;\n return _.has(property);\n },\n set: trueFn,\n deleteProperty: trueFn,\n getOwnPropertyDescriptor(_, property) {\n return {\n configurable: true,\n enumerable: true,\n get() {\n return _.get(property);\n },\n set: trueFn,\n deleteProperty: trueFn\n };\n },\n ownKeys(_) {\n return _.keys();\n }\n};\nfunction resolveSource(s) {\n return !(s = typeof s === \"function\" ? s() : s) ? {} : s;\n}\nfunction resolveSources() {\n for (let i = 0, length = this.length; i < length; ++i) {\n const v = this[i]();\n if (v !== void 0) return v;\n }\n}\nfunction mergeProps(...sources) {\n let proxy = false;\n for (let i = 0; i < sources.length; i++) {\n const s = sources[i];\n proxy = proxy || !!s && $PROXY in s;\n sources[i] = typeof s === \"function\" ? (proxy = true, createMemo(s)) : s;\n }\n if (SUPPORTS_PROXY && proxy) {\n return new Proxy(\n {\n get(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n const v = resolveSource(sources[i])[property];\n if (v !== void 0) return v;\n }\n },\n has(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n if (property in resolveSource(sources[i])) return true;\n }\n return false;\n },\n keys() {\n const keys = [];\n for (let i = 0; i < sources.length; i++)\n keys.push(...Object.keys(resolveSource(sources[i])));\n return [...new Set(keys)];\n }\n },\n propTraps\n );\n }\n const sourcesMap = {};\n const defined = /* @__PURE__ */ Object.create(null);\n for (let i = sources.length - 1; i >= 0; i--) {\n const source = sources[i];\n if (!source) continue;\n const sourceKeys = Object.getOwnPropertyNames(source);\n for (let i2 = sourceKeys.length - 1; i2 >= 0; i2--) {\n const key = sourceKeys[i2];\n if (key === \"__proto__\" || key === \"constructor\") continue;\n const desc = Object.getOwnPropertyDescriptor(source, key);\n if (!defined[key]) {\n defined[key] = desc.get ? {\n enumerable: true,\n configurable: true,\n get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])\n } : desc.value !== void 0 ? desc : void 0;\n } else {\n const sources2 = sourcesMap[key];\n if (sources2) {\n if (desc.get) sources2.push(desc.get.bind(source));\n else if (desc.value !== void 0) sources2.push(() => desc.value);\n }\n }\n }\n }\n const target = {};\n const definedKeys = Object.keys(defined);\n for (let i = definedKeys.length - 1; i >= 0; i--) {\n const key = definedKeys[i], desc = defined[key];\n if (desc && desc.get) Object.defineProperty(target, key, desc);\n else target[key] = desc ? desc.value : void 0;\n }\n return target;\n}\nfunction splitProps(props, ...keys) {\n if (SUPPORTS_PROXY && $PROXY in props) {\n const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);\n const res = keys.map((k) => {\n return new Proxy(\n {\n get(property) {\n return k.includes(property) ? props[property] : void 0;\n },\n has(property) {\n return k.includes(property) && property in props;\n },\n keys() {\n return k.filter((property) => property in props);\n }\n },\n propTraps\n );\n });\n res.push(\n new Proxy(\n {\n get(property) {\n return blocked.has(property) ? void 0 : props[property];\n },\n has(property) {\n return blocked.has(property) ? false : property in props;\n },\n keys() {\n return Object.keys(props).filter((k) => !blocked.has(k));\n }\n },\n propTraps\n )\n );\n return res;\n }\n const otherObject = {};\n const objects = keys.map(() => ({}));\n for (const propName of Object.getOwnPropertyNames(props)) {\n const desc = Object.getOwnPropertyDescriptor(props, propName);\n const isDefaultDesc = !desc.get && !desc.set && desc.enumerable && desc.writable && desc.configurable;\n let blocked = false;\n let objectIndex = 0;\n for (const k of keys) {\n if (k.includes(propName)) {\n blocked = true;\n isDefaultDesc ? objects[objectIndex][propName] = desc.value : Object.defineProperty(objects[objectIndex], propName, desc);\n }\n ++objectIndex;\n }\n if (!blocked) {\n isDefaultDesc ? otherObject[propName] = desc.value : Object.defineProperty(otherObject, propName, desc);\n }\n }\n return [...objects, otherObject];\n}\nfunction lazy(fn) {\n let comp;\n let p;\n const wrap = (props) => {\n const ctx = sharedConfig.context;\n if (ctx) {\n const [s, set] = createSignal();\n sharedConfig.count || (sharedConfig.count = 0);\n sharedConfig.count++;\n (p || (p = fn())).then((mod) => {\n !sharedConfig.done && setHydrateContext(ctx);\n sharedConfig.count--;\n set(() => mod.default);\n setHydrateContext();\n });\n comp = s;\n } else if (!comp) {\n const [s] = createResource(() => (p || (p = fn())).then((mod) => mod.default));\n comp = s;\n }\n let Comp;\n return createMemo(\n () => (Comp = comp()) ? untrack(() => {\n if (IS_DEV) ;\n if (!ctx || sharedConfig.done) return Comp(props);\n const c = sharedConfig.context;\n setHydrateContext(ctx);\n const r = Comp(props);\n setHydrateContext(c);\n return r;\n }) : \"\"\n );\n };\n wrap.preload = () => p || ((p = fn()).then((mod) => comp = () => mod.default), p);\n return wrap;\n}\nlet counter = 0;\nfunction createUniqueId() {\n const ctx = sharedConfig.context;\n return ctx ? sharedConfig.getNextContextId() : `cl-${counter++}`;\n}\nconst narrowedError = (name) => `Stale read from <${name}>.`;\nfunction For(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(mapArray(() => props.each, props.children, fallback || void 0));\n}\nfunction Show(props) {\n const keyed = props.keyed;\n const conditionValue = createMemo(() => props.when, void 0, void 0);\n const condition = keyed ? conditionValue : createMemo(conditionValue, void 0, {\n equals: (a, b) => !a === !b\n });\n return createMemo(\n () => {\n const c = condition();\n if (c) {\n const child = props.children;\n const fn = typeof child === \"function\" && child.length > 0;\n return fn ? untrack(\n () => child(\n keyed ? c : () => {\n if (!untrack(condition)) throw narrowedError(\"Show\");\n return conditionValue();\n }\n )\n ) : child;\n }\n return props.fallback;\n },\n void 0,\n void 0\n );\n}\nfunction Switch(props) {\n const chs = children(() => props.children);\n const switchFunc = createMemo(() => {\n const ch = chs();\n const mps = Array.isArray(ch) ? ch : [ch];\n let func = () => void 0;\n for (let i = 0; i < mps.length; i++) {\n const index = i;\n const mp = mps[i];\n const prevFunc = func;\n const conditionValue = createMemo(\n () => prevFunc() ? void 0 : mp.when,\n void 0,\n void 0\n );\n const condition = mp.keyed ? conditionValue : createMemo(conditionValue, void 0, {\n equals: (a, b) => !a === !b\n });\n func = () => prevFunc() || (condition() ? [index, conditionValue, mp] : void 0);\n }\n return func;\n });\n return createMemo(\n () => {\n const sel = switchFunc()();\n if (!sel) return props.fallback;\n const [index, conditionValue, mp] = sel;\n const child = mp.children;\n const fn = typeof child === \"function\" && child.length > 0;\n return fn ? untrack(\n () => child(\n mp.keyed ? conditionValue() : () => {\n if (untrack(switchFunc)()?.[0] !== index) throw narrowedError(\"Match\");\n return conditionValue();\n }\n )\n ) : child;\n },\n void 0,\n void 0\n );\n}\nfunction Match(props) {\n return props;\n}\nconst booleans = [\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"disabled\",\n \"formnovalidate\",\n \"hidden\",\n \"indeterminate\",\n \"inert\",\n \"ismap\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"seamless\",\n \"selected\"\n];\nconst Properties = /* @__PURE__ */ new Set([\n \"className\",\n \"value\",\n \"readOnly\",\n \"formNoValidate\",\n \"isMap\",\n \"noModule\",\n \"playsInline\",\n ...booleans\n]);\nconst ChildProperties = /* @__PURE__ */ new Set([\n \"innerHTML\",\n \"textContent\",\n \"innerText\",\n \"children\"\n]);\nconst Aliases = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(null), {\n className: \"class\",\n htmlFor: \"for\"\n});\nconst PropAliases = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(null), {\n class: \"className\",\n formnovalidate: {\n $: \"formNoValidate\",\n BUTTON: 1,\n INPUT: 1\n },\n ismap: {\n $: \"isMap\",\n IMG: 1\n },\n nomodule: {\n $: \"noModule\",\n SCRIPT: 1\n },\n playsinline: {\n $: \"playsInline\",\n VIDEO: 1\n },\n readonly: {\n $: \"readOnly\",\n INPUT: 1,\n TEXTAREA: 1\n }\n});\nfunction getPropAlias(prop, tagName) {\n const a = PropAliases[prop];\n return typeof a === \"object\" ? a[tagName] ? a[\"$\"] : void 0 : a;\n}\nconst DelegatedEvents = /* @__PURE__ */ new Set([\n \"beforeinput\",\n \"click\",\n \"dblclick\",\n \"contextmenu\",\n \"focusin\",\n \"focusout\",\n \"input\",\n \"keydown\",\n \"keyup\",\n \"mousedown\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"mouseup\",\n \"pointerdown\",\n \"pointermove\",\n \"pointerout\",\n \"pointerover\",\n \"pointerup\",\n \"touchend\",\n \"touchmove\",\n \"touchstart\"\n]);\nconst SVGElements = /* @__PURE__ */ new Set([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animate\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"circle\",\n \"clipPath\",\n \"color-profile\",\n \"cursor\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"filter\",\n \"font\",\n \"font-face\",\n \"font-face-format\",\n \"font-face-name\",\n \"font-face-src\",\n \"font-face-uri\",\n \"foreignObject\",\n \"g\",\n \"glyph\",\n \"glyphRef\",\n \"hkern\",\n \"image\",\n \"line\",\n \"linearGradient\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"missing-glyph\",\n \"mpath\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"radialGradient\",\n \"rect\",\n \"set\",\n \"stop\",\n \"svg\",\n \"switch\",\n \"symbol\",\n \"text\",\n \"textPath\",\n \"tref\",\n \"tspan\",\n \"use\",\n \"view\",\n \"vkern\"\n]);\nconst SVGNamespace = {\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\"\n};\nfunction reconcileArrays(parentNode, a, b) {\n let bLength = b.length, aEnd = a.length, bEnd = bLength, aStart = 0, bStart = 0, after = a[aEnd - 1].nextSibling, map = null;\n while (aStart < aEnd || bStart < bEnd) {\n if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n continue;\n }\n while (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n if (aEnd === aStart) {\n const node = bEnd < bLength ? bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart] : after;\n while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);\n } else if (bEnd === bStart) {\n while (aStart < aEnd) {\n if (!map || !map.has(a[aStart])) a[aStart].remove();\n aStart++;\n }\n } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {\n const node = a[--aEnd].nextSibling;\n parentNode.insertBefore(b[bStart++], a[aStart++].nextSibling);\n parentNode.insertBefore(b[--bEnd], node);\n a[aEnd] = b[bEnd];\n } else {\n if (!map) {\n map = /* @__PURE__ */ new Map();\n let i = bStart;\n while (i < bEnd) map.set(b[i], i++);\n }\n const index = map.get(a[aStart]);\n if (index != null) {\n if (bStart < index && index < bEnd) {\n let i = aStart, sequence = 1, t;\n while (++i < aEnd && i < bEnd) {\n if ((t = map.get(a[i])) == null || t !== index + sequence) break;\n sequence++;\n }\n if (sequence > index - bStart) {\n const node = a[aStart];\n while (bStart < index) parentNode.insertBefore(b[bStart++], node);\n } else parentNode.replaceChild(b[bStart++], a[aStart++]);\n } else aStart++;\n } else a[aStart++].remove();\n }\n }\n}\nconst $$EVENTS = \"_$DX_DELEGATE\";\nfunction render(code, element, init, options = {}) {\n let disposer;\n createRoot((dispose2) => {\n disposer = dispose2;\n element === document ? code() : insert(element, code(), element.firstChild ? null : void 0, init);\n }, options.owner);\n return () => {\n disposer();\n element.textContent = \"\";\n };\n}\nfunction template(html, isImportNode, isSVG, isMathML) {\n let node;\n const create = () => {\n const t = document.createElement(\"template\");\n t.innerHTML = html;\n return t.content.firstChild;\n };\n const fn = isImportNode ? () => untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);\n fn.cloneNode = fn;\n return fn;\n}\nfunction delegateEvents(eventNames, document2 = window.document) {\n const e = document2[$$EVENTS] || (document2[$$EVENTS] = /* @__PURE__ */ new Set());\n for (let i = 0, l = eventNames.length; i < l; i++) {\n const name = eventNames[i];\n if (!e.has(name)) {\n e.add(name);\n document2.addEventListener(name, eventHandler);\n }\n }\n}\nfunction setAttribute(node, name, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttribute(name);\n else node.setAttribute(name, value);\n}\nfunction setAttributeNS(node, namespace, name, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttributeNS(namespace, name);\n else node.setAttributeNS(namespace, name, value);\n}\nfunction setBoolAttribute(node, name, value) {\n if (isHydrating(node)) return;\n value ? node.setAttribute(name, \"\") : node.removeAttribute(name);\n}\nfunction className(node, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttribute(\"class\");\n else node.className = value;\n}\nfunction addEventListener(node, name, handler, delegate) {\n if (delegate) {\n if (Array.isArray(handler)) {\n node[`$$${name}`] = handler[0];\n node[`$$${name}Data`] = handler[1];\n } else node[`$$${name}`] = handler;\n } else if (Array.isArray(handler)) {\n const handlerFn = handler[0];\n node.addEventListener(name, handler[0] = (e) => handlerFn.call(node, handler[1], e));\n } else node.addEventListener(name, handler, typeof handler !== \"function\" && handler);\n}\nfunction classList(node, value, prev = {}) {\n const classKeys = Object.keys(value || {}), prevKeys = Object.keys(prev);\n let i, len;\n for (i = 0, len = prevKeys.length; i < len; i++) {\n const key = prevKeys[i];\n if (!key || key === \"undefined\" || value[key]) continue;\n toggleClassKey(node, key, false);\n delete prev[key];\n }\n for (i = 0, len = classKeys.length; i < len; i++) {\n const key = classKeys[i], classValue = !!value[key];\n if (!key || key === \"undefined\" || prev[key] === classValue || !classValue) continue;\n toggleClassKey(node, key, true);\n prev[key] = classValue;\n }\n return prev;\n}\nfunction style(node, value, prev) {\n if (!value) return prev ? setAttribute(node, \"style\") : value;\n const nodeStyle = node.style;\n if (typeof value === \"string\") return nodeStyle.cssText = value;\n typeof prev === \"string\" && (nodeStyle.cssText = prev = void 0);\n prev || (prev = {});\n value || (value = {});\n let v, s;\n for (s in prev) {\n value[s] == null && nodeStyle.removeProperty(s);\n delete prev[s];\n }\n for (s in value) {\n v = value[s];\n if (v !== prev[s]) {\n nodeStyle.setProperty(s, v);\n prev[s] = v;\n }\n }\n return prev;\n}\nfunction spread(node, props = {}, isSVG, skipChildren) {\n const prevProps = {};\n if (!skipChildren) {\n createRenderEffect(\n () => prevProps.children = insertExpression(node, props.children, prevProps.children)\n );\n }\n createRenderEffect(() => typeof props.ref === \"function\" && use(props.ref, node));\n createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));\n return prevProps;\n}\nfunction use(fn, element, arg) {\n return untrack(() => fn(element, arg));\n}\nfunction insert(parent, accessor, marker, initial) {\n if (marker !== void 0 && !initial) initial = [];\n if (typeof accessor !== \"function\") return insertExpression(parent, accessor, initial, marker);\n createRenderEffect((current) => insertExpression(parent, accessor(), current, marker), initial);\n}\nfunction assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = false) {\n props || (props = {});\n for (const prop in prevProps) {\n if (!(prop in props)) {\n if (prop === \"children\") continue;\n prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef, props);\n }\n }\n for (const prop in props) {\n if (prop === \"children\") {\n continue;\n }\n const value = props[prop];\n prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef, props);\n }\n}\nfunction getNextElement(template2) {\n let node, key, hydrating = isHydrating();\n if (!hydrating || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {\n return template2();\n }\n if (sharedConfig.completed) sharedConfig.completed.add(node);\n sharedConfig.registry.delete(key);\n return node;\n}\nfunction isHydrating(node) {\n return !!sharedConfig.context && !sharedConfig.done && (!node || node.isConnected);\n}\nfunction toPropertyName(name) {\n return name.toLowerCase().replace(/-([a-z])/g, (_, w) => w.toUpperCase());\n}\nfunction toggleClassKey(node, key, value) {\n const classNames = key.trim().split(/\\s+/);\n for (let i = 0, nameLen = classNames.length; i < nameLen; i++)\n node.classList.toggle(classNames[i], value);\n}\nfunction assignProp(node, prop, value, prev, isSVG, skipRef, props) {\n let isCE, isProp, isChildProp, propAlias, forceProp;\n if (prop === \"style\") return style(node, value, prev);\n if (prop === \"classList\") return classList(node, value, prev);\n if (value === prev) return prev;\n if (prop === \"ref\") {\n if (!skipRef) value(node);\n } else if (prop.slice(0, 3) === \"on:\") {\n const e = prop.slice(3);\n prev && node.removeEventListener(e, prev, typeof prev !== \"function\" && prev);\n value && node.addEventListener(e, value, typeof value !== \"function\" && value);\n } else if (prop.slice(0, 10) === \"oncapture:\") {\n const e = prop.slice(10);\n prev && node.removeEventListener(e, prev, true);\n value && node.addEventListener(e, value, true);\n } else if (prop.slice(0, 2) === \"on\") {\n const name = prop.slice(2).toLowerCase();\n const delegate = DelegatedEvents.has(name);\n if (!delegate && prev) {\n const h = Array.isArray(prev) ? prev[0] : prev;\n node.removeEventListener(name, h);\n }\n if (delegate || value) {\n addEventListener(node, name, value, delegate);\n delegate && delegateEvents([name]);\n }\n } else if (prop.slice(0, 5) === \"attr:\") {\n setAttribute(node, prop.slice(5), value);\n } else if (prop.slice(0, 5) === \"bool:\") {\n setBoolAttribute(node, prop.slice(5), value);\n } else if ((forceProp = prop.slice(0, 5) === \"prop:\") || (isChildProp = ChildProperties.has(prop)) || !isSVG && ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes(\"-\") || \"is\" in props)) {\n if (forceProp) {\n prop = prop.slice(5);\n isProp = true;\n } else if (isHydrating(node)) return value;\n if (prop === \"class\" || prop === \"className\") className(node, value);\n else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;\n else node[propAlias || prop] = value;\n } else {\n const ns = isSVG && prop.indexOf(\":\") > -1 && SVGNamespace[prop.split(\":\")[0]];\n if (ns) setAttributeNS(node, ns, prop, value);\n else setAttribute(node, Aliases[prop] || prop, value);\n }\n return value;\n}\nfunction eventHandler(e) {\n if (sharedConfig.registry && sharedConfig.events) {\n if (sharedConfig.events.find(([el, ev]) => ev === e)) return;\n }\n let node = e.target;\n const key = `$$${e.type}`;\n const oriTarget = e.target;\n const oriCurrentTarget = e.currentTarget;\n const retarget = (value) => Object.defineProperty(e, \"target\", {\n configurable: true,\n value\n });\n const handleNode = () => {\n const handler = node[key];\n if (handler && !node.disabled) {\n const data = node[`${key}Data`];\n data !== void 0 ? handler.call(node, data, e) : handler.call(node, e);\n if (e.cancelBubble) return;\n }\n node.host && typeof node.host !== \"string\" && !node.host._$host && node.contains(e.target) && retarget(node.host);\n return true;\n };\n const walkUpTree = () => {\n while (handleNode() && (node = node._$host || node.parentNode || node.host)) ;\n };\n Object.defineProperty(e, \"currentTarget\", {\n configurable: true,\n get() {\n return node || document;\n }\n });\n if (sharedConfig.registry && !sharedConfig.done) sharedConfig.done = _$HY.done = true;\n if (e.composedPath) {\n const path = e.composedPath();\n retarget(path[0]);\n for (let i = 0; i < path.length - 2; i++) {\n node = path[i];\n if (!handleNode()) break;\n if (node._$host) {\n node = node._$host;\n walkUpTree();\n break;\n }\n if (node.parentNode === oriCurrentTarget) {\n break;\n }\n }\n } else walkUpTree();\n retarget(oriTarget);\n}\nfunction insertExpression(parent, value, current, marker, unwrapArray) {\n const hydrating = isHydrating(parent);\n if (hydrating) {\n !current && (current = [...parent.childNodes]);\n let cleaned = [];\n for (let i = 0; i < current.length; i++) {\n const node = current[i];\n if (node.nodeType === 8 && node.data.slice(0, 2) === \"!$\") node.remove();\n else cleaned.push(node);\n }\n current = cleaned;\n }\n while (typeof current === \"function\") current = current();\n if (value === current) return current;\n const t = typeof value, multi = marker !== void 0;\n parent = multi && current[0] && current[0].parentNode || parent;\n if (t === \"string\" || t === \"number\") {\n if (hydrating) return current;\n if (t === \"number\") {\n value = value.toString();\n if (value === current) return current;\n }\n if (multi) {\n let node = current[0];\n if (node && node.nodeType === 3) {\n node.data !== value && (node.data = value);\n } else node = document.createTextNode(value);\n current = cleanChildren(parent, current, marker, node);\n } else {\n if (current !== \"\" && typeof current === \"string\") {\n current = parent.firstChild.data = value;\n } else current = parent.textContent = value;\n }\n } else if (value == null || t === \"boolean\") {\n if (hydrating) return current;\n current = cleanChildren(parent, current, marker);\n } else if (t === \"function\") {\n createRenderEffect(() => {\n let v = value();\n while (typeof v === \"function\") v = v();\n current = insertExpression(parent, v, current, marker);\n });\n return () => current;\n } else if (Array.isArray(value)) {\n const array = [];\n const currentArray = current && Array.isArray(current);\n if (normalizeIncomingArray(array, value, current, unwrapArray)) {\n createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));\n return () => current;\n }\n if (hydrating) {\n if (!array.length) return current;\n if (marker === void 0) return current = [...parent.childNodes];\n let node = array[0];\n if (node.parentNode !== parent) return current;\n const nodes = [node];\n while ((node = node.nextSibling) !== marker) nodes.push(node);\n return current = nodes;\n }\n if (array.length === 0) {\n current = cleanChildren(parent, current, marker);\n if (multi) return current;\n } else if (currentArray) {\n if (current.length === 0) {\n appendNodes(parent, array, marker);\n } else reconcileArrays(parent, current, array);\n } else {\n current && cleanChildren(parent);\n appendNodes(parent, array);\n }\n current = array;\n } else if (value.nodeType) {\n if (hydrating && value.parentNode) return current = multi ? [value] : value;\n if (Array.isArray(current)) {\n if (multi) return current = cleanChildren(parent, current, marker, value);\n cleanChildren(parent, current, null, value);\n } else if (current == null || current === \"\" || !parent.firstChild) {\n parent.appendChild(value);\n } else parent.replaceChild(value, parent.firstChild);\n current = value;\n } else ;\n return current;\n}\nfunction normalizeIncomingArray(normalized, array, current, unwrap) {\n let dynamic = false;\n for (let i = 0, len = array.length; i < len; i++) {\n let item = array[i], prev = current && current[normalized.length], t;\n if (item == null || item === true || item === false) ;\n else if ((t = typeof item) === \"object\" && item.nodeType) {\n normalized.push(item);\n } else if (Array.isArray(item)) {\n dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;\n } else if (t === \"function\") {\n if (unwrap) {\n while (typeof item === \"function\") item = item();\n dynamic = normalizeIncomingArray(\n normalized,\n Array.isArray(item) ? item : [item],\n Array.isArray(prev) ? prev : [prev]\n ) || dynamic;\n } else {\n normalized.push(item);\n dynamic = true;\n }\n } else {\n const value = String(item);\n if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);\n else normalized.push(document.createTextNode(value));\n }\n }\n return dynamic;\n}\nfunction appendNodes(parent, array, marker = null) {\n for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);\n}\nfunction cleanChildren(parent, current, marker, replacement) {\n if (marker === void 0) return parent.textContent = \"\";\n const node = replacement || document.createTextNode(\"\");\n if (current.length) {\n let inserted = false;\n for (let i = current.length - 1; i >= 0; i--) {\n const el = current[i];\n if (node !== el) {\n const isParent = el.parentNode === parent;\n if (!inserted && !i)\n isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);\n else isParent && el.remove();\n } else inserted = true;\n }\n } else parent.insertBefore(node, marker);\n return [node];\n}\nfunction getHydrationKey() {\n return sharedConfig.getNextContextId();\n}\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nfunction createElement(tagName, isSVG = false) {\n return isSVG ? document.createElementNS(SVG_NAMESPACE, tagName) : document.createElement(tagName);\n}\nfunction createDynamic(component, props) {\n const cached = createMemo(component);\n return createMemo(() => {\n const component2 = cached();\n switch (typeof component2) {\n case \"function\":\n return untrack(() => component2(props));\n case \"string\":\n const isSvg = SVGElements.has(component2);\n const el = sharedConfig.context ? getNextElement() : createElement(component2, isSvg);\n spread(el, props, isSvg);\n return el;\n }\n });\n}\nfunction Dynamic(props) {\n const [, others] = splitProps(props, [\"component\"]);\n return createDynamic(() => props.component, others);\n}\nconst ShadowDomTargetContext = createContext(\n void 0\n);\nconst DevtoolsOnCloseContext = createContext(void 0);\nconst useDevtoolsOnClose = () => {\n const context = useContext(DevtoolsOnCloseContext);\n if (!context) {\n throw new Error(\n \"useDevtoolsOnClose must be used within a TanStackRouterDevtools component\"\n );\n }\n return context;\n};\nclass TanStackRouterDevtoolsCore {\n #router;\n #routerState;\n #position;\n #initialIsOpen;\n #shadowDOMTarget;\n #panelProps;\n #closeButtonProps;\n #toggleButtonProps;\n #containerElement;\n #isMounted = false;\n #Component;\n #dispose;\n constructor(config) {\n this.#router = createSignal(config.router);\n this.#routerState = createSignal(config.routerState);\n this.#position = config.position ?? \"bottom-left\";\n this.#initialIsOpen = config.initialIsOpen ?? false;\n this.#shadowDOMTarget = config.shadowDOMTarget;\n this.#panelProps = config.panelProps;\n this.#closeButtonProps = config.closeButtonProps;\n this.#toggleButtonProps = config.toggleButtonProps;\n this.#containerElement = config.containerElement;\n }\n mount(el) {\n if (this.#isMounted) {\n throw new Error(\"Devtools is already mounted\");\n }\n const dispose2 = render(() => {\n const [router] = this.#router;\n const [routerState] = this.#routerState;\n const position = this.#position;\n const initialIsOpen = this.#initialIsOpen;\n const shadowDOMTarget = this.#shadowDOMTarget;\n const panelProps = this.#panelProps;\n const closeButtonProps = this.#closeButtonProps;\n const toggleButtonProps = this.#toggleButtonProps;\n const containerElement = this.#containerElement;\n let Devtools;\n if (this.#Component) {\n Devtools = this.#Component;\n } else {\n Devtools = lazy(() => import(\"./FloatingTanStackRouterDevtools-kcMbkHXI.js\"));\n this.#Component = Devtools;\n }\n return createComponent(ShadowDomTargetContext.Provider, {\n value: shadowDOMTarget,\n get children() {\n return createComponent(Devtools, {\n position,\n initialIsOpen,\n router,\n routerState,\n shadowDOMTarget,\n panelProps,\n closeButtonProps,\n toggleButtonProps,\n containerElement\n });\n }\n });\n }, el);\n this.#isMounted = true;\n this.#dispose = dispose2;\n }\n unmount() {\n if (!this.#isMounted) {\n throw new Error(\"Devtools is not mounted\");\n }\n this.#dispose?.();\n this.#isMounted = false;\n }\n setRouter(router) {\n this.#router[1](router);\n }\n setRouterState(routerState) {\n this.#routerState[1](routerState);\n }\n setOptions(options) {\n if (options.position !== void 0) {\n this.#position = options.position;\n }\n if (options.initialIsOpen !== void 0) {\n this.#initialIsOpen = options.initialIsOpen;\n }\n if (options.shadowDOMTarget !== void 0) {\n this.#shadowDOMTarget = options.shadowDOMTarget;\n }\n if (options.containerElement !== void 0) {\n this.#containerElement = options.containerElement;\n }\n }\n}\nclass TanStackRouterDevtoolsPanelCore {\n #router;\n #routerState;\n #style;\n #className;\n #shadowDOMTarget;\n #isMounted = false;\n #setIsOpen;\n #dispose;\n #Component;\n constructor(config) {\n const {\n router,\n routerState,\n shadowDOMTarget,\n setIsOpen,\n style: style2,\n className: className2\n } = config;\n this.#router = createSignal(router);\n this.#routerState = createSignal(routerState);\n this.#style = createSignal(style2);\n this.#className = createSignal(className2);\n this.#shadowDOMTarget = shadowDOMTarget;\n this.#setIsOpen = setIsOpen;\n }\n mount(el) {\n if (this.#isMounted) {\n throw new Error(\"Devtools is already mounted\");\n }\n const dispose2 = render(() => {\n const [router] = this.#router;\n const [routerState] = this.#routerState;\n const [style2] = this.#style;\n const [className2] = this.#className;\n const shadowDOMTarget = this.#shadowDOMTarget;\n const setIsOpen = this.#setIsOpen;\n let BaseTanStackRouterDevtoolsPanel;\n if (this.#Component) {\n BaseTanStackRouterDevtoolsPanel = this.#Component;\n } else {\n BaseTanStackRouterDevtoolsPanel = lazy(() => import(\"./BaseTanStackRouterDevtoolsPanel-KIEU40vQ.js\").then((n) => n.c));\n this.#Component = BaseTanStackRouterDevtoolsPanel;\n }\n return createComponent(ShadowDomTargetContext.Provider, {\n value: shadowDOMTarget,\n get children() {\n return createComponent(DevtoolsOnCloseContext.Provider, {\n value: {\n onCloseClick: () => {\n }\n },\n get children() {\n return createComponent(BaseTanStackRouterDevtoolsPanel, {\n router,\n routerState,\n shadowDOMTarget,\n setIsOpen,\n style: style2,\n className: className2\n });\n }\n });\n }\n });\n }, el);\n this.#isMounted = true;\n this.#dispose = dispose2;\n }\n unmount() {\n if (!this.#isMounted) {\n throw new Error(\"Devtools is not mounted\");\n }\n this.#dispose?.();\n this.#isMounted = false;\n }\n setRouter(router) {\n this.#router[1](router);\n }\n setRouterState(routerState) {\n this.#routerState[1](routerState);\n }\n setStyle(style2) {\n this.#style[1](style2);\n }\n setClassName(className2) {\n this.#className[1](className2);\n }\n setOptions(options) {\n if (options.shadowDOMTarget !== void 0) {\n this.#shadowDOMTarget = options.shadowDOMTarget;\n }\n if (options.router !== void 0) {\n this.setRouter(options.router);\n }\n if (options.routerState !== void 0) {\n this.setRouterState(options.routerState);\n }\n if (options.style !== void 0) {\n this.setStyle(options.style);\n }\n if (options.className !== void 0) {\n this.setClassName(options.className);\n }\n }\n}\nexport {\n DevtoolsOnCloseContext as D,\n For as F,\n Match as M,\n ShadowDomTargetContext as S,\n TanStackRouterDevtoolsCore as T,\n createSignal as a,\n createEffect as b,\n createUniqueId as c,\n createMemo as d,\n createComponent as e,\n spread as f,\n createRenderEffect as g,\n className as h,\n insert as i,\n Dynamic as j,\n delegateEvents as k,\n useDevtoolsOnClose as l,\n mergeProps as m,\n addEventListener as n,\n untrack as o,\n Switch as p,\n onCleanup as q,\n Show as r,\n setAttribute as s,\n template as t,\n useContext as u,\n TanStackRouterDevtoolsPanelCore as v\n};\n//# sourceMappingURL=index-DX7UIGS3.js.map\n","import invariant from \"tiny-invariant\";\nimport { createLRUCache } from \"./lru-cache.js\";\nimport { last } from \"./utils.js\";\nconst SEGMENT_TYPE_PATHNAME = 0;\nconst SEGMENT_TYPE_PARAM = 1;\nconst SEGMENT_TYPE_WILDCARD = 2;\nconst SEGMENT_TYPE_OPTIONAL_PARAM = 3;\nconst SEGMENT_TYPE_INDEX = 4;\nconst SEGMENT_TYPE_PATHLESS = 5;\nfunction getOpenAndCloseBraces(part) {\n const openBrace = part.indexOf(\"{\");\n if (openBrace === -1) return null;\n const closeBrace = part.indexOf(\"}\", openBrace);\n if (closeBrace === -1) return null;\n const afterOpen = openBrace + 1;\n if (afterOpen >= part.length) return null;\n return [openBrace, closeBrace];\n}\nfunction parseSegment(path, start, output = new Uint16Array(6)) {\n const next = path.indexOf(\"/\", start);\n const end = next === -1 ? path.length : next;\n const part = path.substring(start, end);\n if (!part || !part.includes(\"$\")) {\n output[0] = SEGMENT_TYPE_PATHNAME;\n output[1] = start;\n output[2] = start;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n }\n if (part === \"$\") {\n const total = path.length;\n output[0] = SEGMENT_TYPE_WILDCARD;\n output[1] = start;\n output[2] = start;\n output[3] = total;\n output[4] = total;\n output[5] = total;\n return output;\n }\n if (part.charCodeAt(0) === 36) {\n output[0] = SEGMENT_TYPE_PARAM;\n output[1] = start;\n output[2] = start + 1;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n }\n const braces = getOpenAndCloseBraces(part);\n if (braces) {\n const [openBrace, closeBrace] = braces;\n const firstChar = part.charCodeAt(openBrace + 1);\n if (firstChar === 45) {\n if (openBrace + 2 < part.length && part.charCodeAt(openBrace + 2) === 36) {\n const paramStart = openBrace + 3;\n const paramEnd = closeBrace;\n if (paramStart < paramEnd) {\n output[0] = SEGMENT_TYPE_OPTIONAL_PARAM;\n output[1] = start + openBrace;\n output[2] = start + paramStart;\n output[3] = start + paramEnd;\n output[4] = start + closeBrace + 1;\n output[5] = end;\n return output;\n }\n }\n } else if (firstChar === 36) {\n const dollarPos = openBrace + 1;\n const afterDollar = openBrace + 2;\n if (afterDollar === closeBrace) {\n output[0] = SEGMENT_TYPE_WILDCARD;\n output[1] = start + openBrace;\n output[2] = start + dollarPos;\n output[3] = start + afterDollar;\n output[4] = start + closeBrace + 1;\n output[5] = path.length;\n return output;\n }\n output[0] = SEGMENT_TYPE_PARAM;\n output[1] = start + openBrace;\n output[2] = start + afterDollar;\n output[3] = start + closeBrace;\n output[4] = start + closeBrace + 1;\n output[5] = end;\n return output;\n }\n }\n output[0] = SEGMENT_TYPE_PATHNAME;\n output[1] = start;\n output[2] = start;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n}\nfunction parseSegments(defaultCaseSensitive, data, route, start, node, depth, onRoute) {\n onRoute?.(route);\n let cursor = start;\n {\n const path = route.fullPath ?? route.from;\n const length = path.length;\n const caseSensitive = route.options?.caseSensitive ?? defaultCaseSensitive;\n const skipOnParamError = !!(route.options?.params?.parse && route.options?.skipRouteOnParseError?.params);\n while (cursor < length) {\n const segment = parseSegment(path, cursor, data);\n let nextNode;\n const start2 = cursor;\n const end = segment[5];\n cursor = end + 1;\n depth++;\n const kind = segment[0];\n switch (kind) {\n case SEGMENT_TYPE_PATHNAME: {\n const value = path.substring(segment[2], segment[3]);\n if (caseSensitive) {\n const existingNode = node.static?.get(value);\n if (existingNode) {\n nextNode = existingNode;\n } else {\n node.static ??= /* @__PURE__ */ new Map();\n const next = createStaticNode(\n route.fullPath ?? route.from\n );\n next.parent = node;\n next.depth = depth;\n nextNode = next;\n node.static.set(value, next);\n }\n } else {\n const name = value.toLowerCase();\n const existingNode = node.staticInsensitive?.get(name);\n if (existingNode) {\n nextNode = existingNode;\n } else {\n node.staticInsensitive ??= /* @__PURE__ */ new Map();\n const next = createStaticNode(\n route.fullPath ?? route.from\n );\n next.parent = node;\n next.depth = depth;\n nextNode = next;\n node.staticInsensitive.set(name, next);\n }\n }\n break;\n }\n case SEGMENT_TYPE_PARAM: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const existingNode = !skipOnParamError && node.dynamic?.find(\n (s) => !s.skipOnParamError && s.caseSensitive === actuallyCaseSensitive && s.prefix === prefix && s.suffix === suffix\n );\n if (existingNode) {\n nextNode = existingNode;\n } else {\n const next = createDynamicNode(\n SEGMENT_TYPE_PARAM,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.depth = depth;\n next.parent = node;\n node.dynamic ??= [];\n node.dynamic.push(next);\n }\n break;\n }\n case SEGMENT_TYPE_OPTIONAL_PARAM: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const existingNode = !skipOnParamError && node.optional?.find(\n (s) => !s.skipOnParamError && s.caseSensitive === actuallyCaseSensitive && s.prefix === prefix && s.suffix === suffix\n );\n if (existingNode) {\n nextNode = existingNode;\n } else {\n const next = createDynamicNode(\n SEGMENT_TYPE_OPTIONAL_PARAM,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.parent = node;\n next.depth = depth;\n node.optional ??= [];\n node.optional.push(next);\n }\n break;\n }\n case SEGMENT_TYPE_WILDCARD: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const next = createDynamicNode(\n SEGMENT_TYPE_WILDCARD,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.parent = node;\n next.depth = depth;\n node.wildcard ??= [];\n node.wildcard.push(next);\n }\n }\n node = nextNode;\n }\n if (skipOnParamError && route.children && !route.isRoot && route.id && route.id.charCodeAt(route.id.lastIndexOf(\"/\") + 1) === 95) {\n const pathlessNode = createStaticNode(\n route.fullPath ?? route.from\n );\n pathlessNode.kind = SEGMENT_TYPE_PATHLESS;\n pathlessNode.parent = node;\n depth++;\n pathlessNode.depth = depth;\n node.pathless ??= [];\n node.pathless.push(pathlessNode);\n node = pathlessNode;\n }\n const isLeaf = (route.path || !route.children) && !route.isRoot;\n if (isLeaf && path.endsWith(\"/\")) {\n const indexNode = createStaticNode(\n route.fullPath ?? route.from\n );\n indexNode.kind = SEGMENT_TYPE_INDEX;\n indexNode.parent = node;\n depth++;\n indexNode.depth = depth;\n node.index = indexNode;\n node = indexNode;\n }\n node.parse = route.options?.params?.parse ?? null;\n node.skipOnParamError = skipOnParamError;\n node.parsingPriority = route.options?.skipRouteOnParseError?.priority ?? 0;\n if (isLeaf && !node.route) {\n node.route = route;\n node.fullPath = route.fullPath ?? route.from;\n }\n }\n if (route.children)\n for (const child of route.children) {\n parseSegments(\n defaultCaseSensitive,\n data,\n child,\n cursor,\n node,\n depth,\n onRoute\n );\n }\n}\nfunction sortDynamic(a, b) {\n if (a.skipOnParamError && !b.skipOnParamError) return -1;\n if (!a.skipOnParamError && b.skipOnParamError) return 1;\n if (a.skipOnParamError && b.skipOnParamError && (a.parsingPriority || b.parsingPriority))\n return b.parsingPriority - a.parsingPriority;\n if (a.prefix && b.prefix && a.prefix !== b.prefix) {\n if (a.prefix.startsWith(b.prefix)) return -1;\n if (b.prefix.startsWith(a.prefix)) return 1;\n }\n if (a.suffix && b.suffix && a.suffix !== b.suffix) {\n if (a.suffix.endsWith(b.suffix)) return -1;\n if (b.suffix.endsWith(a.suffix)) return 1;\n }\n if (a.prefix && !b.prefix) return -1;\n if (!a.prefix && b.prefix) return 1;\n if (a.suffix && !b.suffix) return -1;\n if (!a.suffix && b.suffix) return 1;\n if (a.caseSensitive && !b.caseSensitive) return -1;\n if (!a.caseSensitive && b.caseSensitive) return 1;\n return 0;\n}\nfunction sortTreeNodes(node) {\n if (node.pathless) {\n for (const child of node.pathless) {\n sortTreeNodes(child);\n }\n }\n if (node.static) {\n for (const child of node.static.values()) {\n sortTreeNodes(child);\n }\n }\n if (node.staticInsensitive) {\n for (const child of node.staticInsensitive.values()) {\n sortTreeNodes(child);\n }\n }\n if (node.dynamic?.length) {\n node.dynamic.sort(sortDynamic);\n for (const child of node.dynamic) {\n sortTreeNodes(child);\n }\n }\n if (node.optional?.length) {\n node.optional.sort(sortDynamic);\n for (const child of node.optional) {\n sortTreeNodes(child);\n }\n }\n if (node.wildcard?.length) {\n node.wildcard.sort(sortDynamic);\n for (const child of node.wildcard) {\n sortTreeNodes(child);\n }\n }\n}\nfunction createStaticNode(fullPath) {\n return {\n kind: SEGMENT_TYPE_PATHNAME,\n depth: 0,\n pathless: null,\n index: null,\n static: null,\n staticInsensitive: null,\n dynamic: null,\n optional: null,\n wildcard: null,\n route: null,\n fullPath,\n parent: null,\n parse: null,\n skipOnParamError: false,\n parsingPriority: 0\n };\n}\nfunction createDynamicNode(kind, fullPath, caseSensitive, prefix, suffix) {\n return {\n kind,\n depth: 0,\n pathless: null,\n index: null,\n static: null,\n staticInsensitive: null,\n dynamic: null,\n optional: null,\n wildcard: null,\n route: null,\n fullPath,\n parent: null,\n parse: null,\n skipOnParamError: false,\n parsingPriority: 0,\n caseSensitive,\n prefix,\n suffix\n };\n}\nfunction processRouteMasks(routeList, processedTree) {\n const segmentTree = createStaticNode(\"/\");\n const data = new Uint16Array(6);\n for (const route of routeList) {\n parseSegments(false, data, route, 1, segmentTree, 0);\n }\n sortTreeNodes(segmentTree);\n processedTree.masksTree = segmentTree;\n processedTree.flatCache = createLRUCache(1e3);\n}\nfunction findFlatMatch(path, processedTree) {\n path ||= \"/\";\n const cached = processedTree.flatCache.get(path);\n if (cached) return cached;\n const result = findMatch(path, processedTree.masksTree);\n processedTree.flatCache.set(path, result);\n return result;\n}\nfunction findSingleMatch(from, caseSensitive, fuzzy, path, processedTree) {\n from ||= \"/\";\n path ||= \"/\";\n const key = caseSensitive ? `case\\0${from}` : from;\n let tree = processedTree.singleCache.get(key);\n if (!tree) {\n tree = createStaticNode(\"/\");\n const data = new Uint16Array(6);\n parseSegments(caseSensitive, data, { from }, 1, tree, 0);\n processedTree.singleCache.set(key, tree);\n }\n return findMatch(path, tree, fuzzy);\n}\nfunction findRouteMatch(path, processedTree, fuzzy = false) {\n const key = fuzzy ? path : `nofuzz\\0${path}`;\n const cached = processedTree.matchCache.get(key);\n if (cached !== void 0) return cached;\n path ||= \"/\";\n let result;\n try {\n result = findMatch(\n path,\n processedTree.segmentTree,\n fuzzy\n );\n } catch (err) {\n if (err instanceof URIError) {\n result = null;\n } else {\n throw err;\n }\n }\n if (result) result.branch = buildRouteBranch(result.route);\n processedTree.matchCache.set(key, result);\n return result;\n}\nfunction trimPathRight(path) {\n return path === \"/\" ? path : path.replace(/\\/{1,}$/, \"\");\n}\nfunction processRouteTree(routeTree, caseSensitive = false, initRoute) {\n const segmentTree = createStaticNode(routeTree.fullPath);\n const data = new Uint16Array(6);\n const routesById = {};\n const routesByPath = {};\n let index = 0;\n parseSegments(caseSensitive, data, routeTree, 1, segmentTree, 0, (route) => {\n initRoute?.(route, index);\n invariant(\n !(route.id in routesById),\n `Duplicate routes found with id: ${String(route.id)}`\n );\n routesById[route.id] = route;\n if (index !== 0 && route.path) {\n const trimmedFullPath = trimPathRight(route.fullPath);\n if (!routesByPath[trimmedFullPath] || route.fullPath.endsWith(\"/\")) {\n routesByPath[trimmedFullPath] = route;\n }\n }\n index++;\n });\n sortTreeNodes(segmentTree);\n const processedTree = {\n segmentTree,\n singleCache: createLRUCache(1e3),\n matchCache: createLRUCache(1e3),\n flatCache: null,\n masksTree: null\n };\n return {\n processedTree,\n routesById,\n routesByPath\n };\n}\nfunction findMatch(path, segmentTree, fuzzy = false) {\n const parts = path.split(\"/\");\n const leaf = getNodeMatch(path, parts, segmentTree, fuzzy);\n if (!leaf) return null;\n const [rawParams] = extractParams(path, parts, leaf);\n return {\n route: leaf.node.route,\n rawParams,\n parsedParams: leaf.parsedParams\n };\n}\nfunction extractParams(path, parts, leaf) {\n const list = buildBranch(leaf.node);\n let nodeParts = null;\n const rawParams = {};\n let partIndex = leaf.extract?.part ?? 0;\n let nodeIndex = leaf.extract?.node ?? 0;\n let pathIndex = leaf.extract?.path ?? 0;\n let segmentCount = leaf.extract?.segment ?? 0;\n for (; nodeIndex < list.length; partIndex++, nodeIndex++, pathIndex++, segmentCount++) {\n const node = list[nodeIndex];\n if (node.kind === SEGMENT_TYPE_INDEX) break;\n if (node.kind === SEGMENT_TYPE_PATHLESS) {\n segmentCount--;\n partIndex--;\n pathIndex--;\n continue;\n }\n const part = parts[partIndex];\n const currentPathIndex = pathIndex;\n if (part) pathIndex += part.length;\n if (node.kind === SEGMENT_TYPE_PARAM) {\n nodeParts ??= leaf.node.fullPath.split(\"/\");\n const nodePart = nodeParts[segmentCount];\n const preLength = node.prefix?.length ?? 0;\n const isCurlyBraced = nodePart.charCodeAt(preLength) === 123;\n if (isCurlyBraced) {\n const sufLength = node.suffix?.length ?? 0;\n const name = nodePart.substring(\n preLength + 2,\n nodePart.length - sufLength - 1\n );\n const value = part.substring(preLength, part.length - sufLength);\n rawParams[name] = decodeURIComponent(value);\n } else {\n const name = nodePart.substring(1);\n rawParams[name] = decodeURIComponent(part);\n }\n } else if (node.kind === SEGMENT_TYPE_OPTIONAL_PARAM) {\n if (leaf.skipped & 1 << nodeIndex) {\n partIndex--;\n pathIndex = currentPathIndex - 1;\n continue;\n }\n nodeParts ??= leaf.node.fullPath.split(\"/\");\n const nodePart = nodeParts[segmentCount];\n const preLength = node.prefix?.length ?? 0;\n const sufLength = node.suffix?.length ?? 0;\n const name = nodePart.substring(\n preLength + 3,\n nodePart.length - sufLength - 1\n );\n const value = node.suffix || node.prefix ? part.substring(preLength, part.length - sufLength) : part;\n if (value) rawParams[name] = decodeURIComponent(value);\n } else if (node.kind === SEGMENT_TYPE_WILDCARD) {\n const n = node;\n const value = path.substring(\n currentPathIndex + (n.prefix?.length ?? 0),\n path.length - (n.suffix?.length ?? 0)\n );\n const splat = decodeURIComponent(value);\n rawParams[\"*\"] = splat;\n rawParams._splat = splat;\n break;\n }\n }\n if (leaf.rawParams) Object.assign(rawParams, leaf.rawParams);\n return [\n rawParams,\n {\n part: partIndex,\n node: nodeIndex,\n path: pathIndex,\n segment: segmentCount\n }\n ];\n}\nfunction buildRouteBranch(route) {\n const list = [route];\n while (route.parentRoute) {\n route = route.parentRoute;\n list.push(route);\n }\n list.reverse();\n return list;\n}\nfunction buildBranch(node) {\n const list = Array(node.depth + 1);\n do {\n list[node.depth] = node;\n node = node.parent;\n } while (node);\n return list;\n}\nfunction getNodeMatch(path, parts, segmentTree, fuzzy) {\n if (path === \"/\" && segmentTree.index)\n return { node: segmentTree.index, skipped: 0 };\n const trailingSlash = !last(parts);\n const pathIsIndex = trailingSlash && path !== \"/\";\n const partsLength = parts.length - (trailingSlash ? 1 : 0);\n const stack = [\n {\n node: segmentTree,\n index: 1,\n skipped: 0,\n depth: 1,\n statics: 1,\n dynamics: 0,\n optionals: 0\n }\n ];\n let wildcardMatch = null;\n let bestFuzzy = null;\n let bestMatch = null;\n while (stack.length) {\n const frame = stack.pop();\n const { node, index, skipped, depth, statics, dynamics, optionals } = frame;\n let { extract, rawParams, parsedParams } = frame;\n if (node.skipOnParamError) {\n const result = validateMatchParams(path, parts, frame);\n if (!result) continue;\n rawParams = frame.rawParams;\n extract = frame.extract;\n parsedParams = frame.parsedParams;\n }\n if (fuzzy && node.route && node.kind !== SEGMENT_TYPE_INDEX && isFrameMoreSpecific(bestFuzzy, frame)) {\n bestFuzzy = frame;\n }\n const isBeyondPath = index === partsLength;\n if (isBeyondPath) {\n if (node.route && !pathIsIndex && isFrameMoreSpecific(bestMatch, frame)) {\n bestMatch = frame;\n }\n if (!node.optional && !node.wildcard && !node.index && !node.pathless)\n continue;\n }\n const part = isBeyondPath ? void 0 : parts[index];\n let lowerPart;\n if (isBeyondPath && node.index) {\n const indexFrame = {\n node: node.index,\n index,\n skipped,\n depth: depth + 1,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n };\n let indexValid = true;\n if (node.index.skipOnParamError) {\n const result = validateMatchParams(path, parts, indexFrame);\n if (!result) indexValid = false;\n }\n if (indexValid) {\n if (statics === partsLength && !dynamics && !optionals && !skipped) {\n return indexFrame;\n }\n if (isFrameMoreSpecific(bestMatch, indexFrame)) {\n bestMatch = indexFrame;\n }\n }\n }\n if (node.wildcard && isFrameMoreSpecific(wildcardMatch, frame)) {\n for (const segment of node.wildcard) {\n const { prefix, suffix } = segment;\n if (prefix) {\n if (isBeyondPath) continue;\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (!casePart.startsWith(prefix)) continue;\n }\n if (suffix) {\n if (isBeyondPath) continue;\n const end = parts.slice(index).join(\"/\").slice(-suffix.length);\n const casePart = segment.caseSensitive ? end : end.toLowerCase();\n if (casePart !== suffix) continue;\n }\n const frame2 = {\n node: segment,\n index: partsLength,\n skipped,\n depth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n };\n if (segment.skipOnParamError) {\n const result = validateMatchParams(path, parts, frame2);\n if (!result) continue;\n }\n wildcardMatch = frame2;\n break;\n }\n }\n if (node.optional) {\n const nextSkipped = skipped | 1 << depth;\n const nextDepth = depth + 1;\n for (let i = node.optional.length - 1; i >= 0; i--) {\n const segment = node.optional[i];\n stack.push({\n node: segment,\n index,\n skipped: nextSkipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n if (!isBeyondPath) {\n for (let i = node.optional.length - 1; i >= 0; i--) {\n const segment = node.optional[i];\n const { prefix, suffix } = segment;\n if (prefix || suffix) {\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (prefix && !casePart.startsWith(prefix)) continue;\n if (suffix && !casePart.endsWith(suffix)) continue;\n }\n stack.push({\n node: segment,\n index: index + 1,\n skipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals: optionals + 1,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n }\n if (!isBeyondPath && node.dynamic && part) {\n for (let i = node.dynamic.length - 1; i >= 0; i--) {\n const segment = node.dynamic[i];\n const { prefix, suffix } = segment;\n if (prefix || suffix) {\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (prefix && !casePart.startsWith(prefix)) continue;\n if (suffix && !casePart.endsWith(suffix)) continue;\n }\n stack.push({\n node: segment,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics,\n dynamics: dynamics + 1,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (!isBeyondPath && node.staticInsensitive) {\n const match = node.staticInsensitive.get(\n lowerPart ??= part.toLowerCase()\n );\n if (match) {\n stack.push({\n node: match,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics: statics + 1,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (!isBeyondPath && node.static) {\n const match = node.static.get(part);\n if (match) {\n stack.push({\n node: match,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics: statics + 1,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (node.pathless) {\n const nextDepth = depth + 1;\n for (let i = node.pathless.length - 1; i >= 0; i--) {\n const segment = node.pathless[i];\n stack.push({\n node: segment,\n index,\n skipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n }\n if (bestMatch && wildcardMatch) {\n return isFrameMoreSpecific(wildcardMatch, bestMatch) ? bestMatch : wildcardMatch;\n }\n if (bestMatch) return bestMatch;\n if (wildcardMatch) return wildcardMatch;\n if (fuzzy && bestFuzzy) {\n let sliceIndex = bestFuzzy.index;\n for (let i = 0; i < bestFuzzy.index; i++) {\n sliceIndex += parts[i].length;\n }\n const splat = sliceIndex === path.length ? \"/\" : path.slice(sliceIndex);\n bestFuzzy.rawParams ??= {};\n bestFuzzy.rawParams[\"**\"] = decodeURIComponent(splat);\n return bestFuzzy;\n }\n return null;\n}\nfunction validateMatchParams(path, parts, frame) {\n try {\n const [rawParams, state] = extractParams(path, parts, frame);\n frame.rawParams = rawParams;\n frame.extract = state;\n const parsed = frame.node.parse(rawParams);\n frame.parsedParams = Object.assign({}, frame.parsedParams, parsed);\n return true;\n } catch {\n return null;\n }\n}\nfunction isFrameMoreSpecific(prev, next) {\n if (!prev) return true;\n return next.statics > prev.statics || next.statics === prev.statics && (next.dynamics > prev.dynamics || next.dynamics === prev.dynamics && (next.optionals > prev.optionals || next.optionals === prev.optionals && ((next.node.kind === SEGMENT_TYPE_INDEX) > (prev.node.kind === SEGMENT_TYPE_INDEX) || next.node.kind === SEGMENT_TYPE_INDEX === (prev.node.kind === SEGMENT_TYPE_INDEX) && next.depth > prev.depth)));\n}\nexport {\n SEGMENT_TYPE_OPTIONAL_PARAM,\n SEGMENT_TYPE_PARAM,\n SEGMENT_TYPE_PATHNAME,\n SEGMENT_TYPE_WILDCARD,\n findFlatMatch,\n findRouteMatch,\n findSingleMatch,\n parseSegment,\n processRouteMasks,\n processRouteTree,\n trimPathRight\n};\n//# sourceMappingURL=new-process-route-tree.js.map\n","import { isServer } from \"@tanstack/router-core/isServer\";\nimport { last } from \"./utils.js\";\nimport { parseSegment, SEGMENT_TYPE_PATHNAME, SEGMENT_TYPE_WILDCARD, SEGMENT_TYPE_PARAM, SEGMENT_TYPE_OPTIONAL_PARAM } from \"./new-process-route-tree.js\";\nfunction joinPaths(paths) {\n return cleanPath(\n paths.filter((val) => {\n return val !== void 0;\n }).join(\"/\")\n );\n}\nfunction cleanPath(path) {\n return path.replace(/\\/{2,}/g, \"/\");\n}\nfunction trimPathLeft(path) {\n return path === \"/\" ? path : path.replace(/^\\/{1,}/, \"\");\n}\nfunction trimPathRight(path) {\n const len = path.length;\n return len > 1 && path[len - 1] === \"/\" ? path.replace(/\\/{1,}$/, \"\") : path;\n}\nfunction trimPath(path) {\n return trimPathRight(trimPathLeft(path));\n}\nfunction removeTrailingSlash(value, basepath) {\n if (value?.endsWith(\"/\") && value !== \"/\" && value !== `${basepath}/`) {\n return value.slice(0, -1);\n }\n return value;\n}\nfunction exactPathTest(pathName1, pathName2, basepath) {\n return removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath);\n}\nfunction resolvePath({\n base,\n to,\n trailingSlash = \"never\",\n cache\n}) {\n const isAbsolute = to.startsWith(\"/\");\n const isBase = !isAbsolute && to === \".\";\n let key;\n if (cache) {\n key = isAbsolute ? to : isBase ? base : base + \"\\0\" + to;\n const cached = cache.get(key);\n if (cached) return cached;\n }\n let baseSegments;\n if (isBase) {\n baseSegments = base.split(\"/\");\n } else if (isAbsolute) {\n baseSegments = to.split(\"/\");\n } else {\n baseSegments = base.split(\"/\");\n while (baseSegments.length > 1 && last(baseSegments) === \"\") {\n baseSegments.pop();\n }\n const toSegments = to.split(\"/\");\n for (let index = 0, length = toSegments.length; index < length; index++) {\n const value = toSegments[index];\n if (value === \"\") {\n if (!index) {\n baseSegments = [value];\n } else if (index === length - 1) {\n baseSegments.push(value);\n } else ;\n } else if (value === \"..\") {\n baseSegments.pop();\n } else if (value === \".\") ;\n else {\n baseSegments.push(value);\n }\n }\n }\n if (baseSegments.length > 1) {\n if (last(baseSegments) === \"\") {\n if (trailingSlash === \"never\") {\n baseSegments.pop();\n }\n } else if (trailingSlash === \"always\") {\n baseSegments.push(\"\");\n }\n }\n let segment;\n let joined = \"\";\n for (let i = 0; i < baseSegments.length; i++) {\n if (i > 0) joined += \"/\";\n const part = baseSegments[i];\n if (!part) continue;\n segment = parseSegment(part, 0, segment);\n const kind = segment[0];\n if (kind === SEGMENT_TYPE_PATHNAME) {\n joined += part;\n continue;\n }\n const end = segment[5];\n const prefix = part.substring(0, segment[1]);\n const suffix = part.substring(segment[4], end);\n const value = part.substring(segment[2], segment[3]);\n if (kind === SEGMENT_TYPE_PARAM) {\n joined += prefix || suffix ? `${prefix}{$${value}}${suffix}` : `$${value}`;\n } else if (kind === SEGMENT_TYPE_WILDCARD) {\n joined += prefix || suffix ? `${prefix}{$}${suffix}` : \"$\";\n } else {\n joined += `${prefix}{-$${value}}${suffix}`;\n }\n }\n joined = cleanPath(joined);\n const result = joined || \"/\";\n if (key && cache) cache.set(key, result);\n return result;\n}\nfunction compileDecodeCharMap(pathParamsAllowedCharacters) {\n const charMap = new Map(\n pathParamsAllowedCharacters.map((char) => [encodeURIComponent(char), char])\n );\n const pattern = Array.from(charMap.keys()).map((key) => key.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\"|\");\n const regex = new RegExp(pattern, \"g\");\n return (encoded) => encoded.replace(regex, (match) => charMap.get(match) ?? match);\n}\nfunction encodeParam(key, params, decoder) {\n const value = params[key];\n if (typeof value !== \"string\") return value;\n if (key === \"_splat\") {\n if (/^[a-zA-Z0-9\\-._~!/]*$/.test(value)) return value;\n return value.split(\"/\").map((segment) => encodePathParam(segment, decoder)).join(\"/\");\n } else {\n return encodePathParam(value, decoder);\n }\n}\nfunction interpolatePath({\n path,\n params,\n decoder,\n server\n}) {\n let isMissingParams = false;\n const usedParams = {};\n if (!path || path === \"/\")\n return { interpolatedPath: \"/\", usedParams, isMissingParams };\n if (!path.includes(\"$\"))\n return { interpolatedPath: path, usedParams, isMissingParams };\n if (isServer ?? server) {\n if (path.indexOf(\"{\") === -1) {\n const length2 = path.length;\n let cursor2 = 0;\n let joined2 = \"\";\n while (cursor2 < length2) {\n while (cursor2 < length2 && path.charCodeAt(cursor2) === 47) cursor2++;\n if (cursor2 >= length2) break;\n const start = cursor2;\n let end = path.indexOf(\"/\", cursor2);\n if (end === -1) end = length2;\n cursor2 = end;\n const part = path.substring(start, end);\n if (!part) continue;\n if (part.charCodeAt(0) === 36) {\n if (part.length === 1) {\n const splat = params._splat;\n usedParams._splat = splat;\n usedParams[\"*\"] = splat;\n if (!splat) {\n isMissingParams = true;\n continue;\n }\n const value = encodeParam(\"_splat\", params, decoder);\n joined2 += \"/\" + value;\n } else {\n const key = part.substring(1);\n if (!isMissingParams && !(key in params)) {\n isMissingParams = true;\n }\n usedParams[key] = params[key];\n const value = encodeParam(key, params, decoder) ?? \"undefined\";\n joined2 += \"/\" + value;\n }\n } else {\n joined2 += \"/\" + part;\n }\n }\n if (path.endsWith(\"/\")) joined2 += \"/\";\n const interpolatedPath2 = joined2 || \"/\";\n return { usedParams, interpolatedPath: interpolatedPath2, isMissingParams };\n }\n }\n const length = path.length;\n let cursor = 0;\n let segment;\n let joined = \"\";\n while (cursor < length) {\n const start = cursor;\n segment = parseSegment(path, start, segment);\n const end = segment[5];\n cursor = end + 1;\n if (start === end) continue;\n const kind = segment[0];\n if (kind === SEGMENT_TYPE_PATHNAME) {\n joined += \"/\" + path.substring(start, end);\n continue;\n }\n if (kind === SEGMENT_TYPE_WILDCARD) {\n const splat = params._splat;\n usedParams._splat = splat;\n usedParams[\"*\"] = splat;\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n if (!splat) {\n isMissingParams = true;\n if (prefix || suffix) {\n joined += \"/\" + prefix + suffix;\n }\n continue;\n }\n const value = encodeParam(\"_splat\", params, decoder);\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n if (kind === SEGMENT_TYPE_PARAM) {\n const key = path.substring(segment[2], segment[3]);\n if (!isMissingParams && !(key in params)) {\n isMissingParams = true;\n }\n usedParams[key] = params[key];\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n const value = encodeParam(key, params, decoder) ?? \"undefined\";\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n if (kind === SEGMENT_TYPE_OPTIONAL_PARAM) {\n const key = path.substring(segment[2], segment[3]);\n const valueRaw = params[key];\n if (valueRaw == null) continue;\n usedParams[key] = valueRaw;\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n const value = encodeParam(key, params, decoder) ?? \"\";\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n }\n if (path.endsWith(\"/\")) joined += \"/\";\n const interpolatedPath = joined || \"/\";\n return { usedParams, interpolatedPath, isMissingParams };\n}\nfunction encodePathParam(value, decoder) {\n const encoded = encodeURIComponent(value);\n return decoder?.(encoded) ?? encoded;\n}\nexport {\n cleanPath,\n compileDecodeCharMap,\n exactPathTest,\n interpolatePath,\n joinPaths,\n removeTrailingSlash,\n resolvePath,\n trimPath,\n trimPathLeft,\n trimPathRight\n};\n//# sourceMappingURL=path.js.map\n","const rootRouteId = \"__root__\";\nexport {\n rootRouteId\n};\n//# sourceMappingURL=root.js.map\n","import { a as createSignal, b as createEffect, g as createRenderEffect, u as useContext, S as ShadowDomTargetContext, k as delegateEvents, d as createMemo, t as template, i as insert, e as createComponent, h as className, s as setAttribute, m as mergeProps, l as useDevtoolsOnClose, f as spread, n as addEventListener, o as untrack, M as Match, F as For, p as Switch, q as onCleanup, r as Show } from \"./index-DX7UIGS3.js\";\nimport { clsx } from \"clsx\";\nimport invariant from \"tiny-invariant\";\nimport { rootRouteId, trimPath, interpolatePath } from \"@tanstack/router-core\";\nimport * as goober from \"goober\";\nconst isServer = typeof window === \"undefined\";\nfunction getStatusColor(match) {\n const colorMap = {\n pending: \"yellow\",\n success: \"green\",\n error: \"red\",\n notFound: \"purple\",\n redirected: \"gray\"\n };\n return match.isFetching && match.status === \"success\" ? match.isFetching === \"beforeLoad\" ? \"purple\" : \"blue\" : colorMap[match.status];\n}\nfunction getRouteStatusColor(matches, route) {\n const found = matches.find((d) => d.routeId === route.id);\n if (!found) return \"gray\";\n return getStatusColor(found);\n}\nfunction useIsMounted() {\n const [isMounted, setIsMounted] = createSignal(false);\n const effect = isServer ? createEffect : createRenderEffect;\n effect(() => {\n setIsMounted(true);\n });\n return isMounted;\n}\nconst displayValue = (value) => {\n const name = Object.getOwnPropertyNames(Object(value));\n const newValue = typeof value === \"bigint\" ? `${value.toString()}n` : value;\n try {\n return JSON.stringify(newValue, name);\n } catch (e) {\n return `unable to stringify`;\n }\n};\nfunction multiSortBy(arr, accessors = [(d) => d]) {\n return arr.map((d, i) => [d, i]).sort(([a, ai], [b, bi]) => {\n for (const accessor of accessors) {\n const ao = accessor(a);\n const bo = accessor(b);\n if (typeof ao === \"undefined\") {\n if (typeof bo === \"undefined\") {\n continue;\n }\n return 1;\n }\n if (ao === bo) {\n continue;\n }\n return ao > bo ? 1 : -1;\n }\n return ai - bi;\n }).map(([d]) => d);\n}\nconst tokens = {\n colors: {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000000\",\n white: \"#ffffff\",\n neutral: {\n 50: \"#f9fafb\",\n 100: \"#f2f4f7\",\n 200: \"#eaecf0\",\n 300: \"#d0d5dd\",\n 400: \"#98a2b3\",\n 500: \"#667085\",\n 600: \"#475467\",\n 700: \"#344054\",\n 800: \"#1d2939\",\n 900: \"#101828\"\n },\n darkGray: {\n 50: \"#525c7a\",\n 100: \"#49536e\",\n 200: \"#414962\",\n 300: \"#394056\",\n 400: \"#313749\",\n 500: \"#292e3d\",\n 600: \"#212530\",\n 700: \"#191c24\",\n 800: \"#111318\",\n 900: \"#0b0d10\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f2f4f7\",\n 200: \"#eaecf0\",\n 300: \"#d0d5dd\",\n 400: \"#98a2b3\",\n 500: \"#667085\",\n 600: \"#475467\",\n 700: \"#344054\",\n 800: \"#1d2939\",\n 900: \"#101828\"\n },\n blue: {\n 25: \"#F5FAFF\",\n 50: \"#EFF8FF\",\n 100: \"#D1E9FF\",\n 200: \"#B2DDFF\",\n 300: \"#84CAFF\",\n 400: \"#53B1FD\",\n 500: \"#2E90FA\",\n 600: \"#1570EF\",\n 700: \"#175CD3\",\n 800: \"#1849A9\",\n 900: \"#194185\"\n },\n green: {\n 25: \"#F6FEF9\",\n 50: \"#ECFDF3\",\n 100: \"#D1FADF\",\n 200: \"#A6F4C5\",\n 300: \"#6CE9A6\",\n 400: \"#32D583\",\n 500: \"#12B76A\",\n 600: \"#039855\",\n 700: \"#027A48\",\n 800: \"#05603A\",\n 900: \"#054F31\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\"\n },\n yellow: {\n 25: \"#FFFCF5\",\n 50: \"#FFFAEB\",\n 100: \"#FEF0C7\",\n 200: \"#FEDF89\",\n 300: \"#FEC84B\",\n 400: \"#FDB022\",\n 500: \"#F79009\",\n 600: \"#DC6803\",\n 700: \"#B54708\",\n 800: \"#93370D\",\n 900: \"#7A2E0E\"\n },\n purple: {\n 25: \"#FAFAFF\",\n 50: \"#F4F3FF\",\n 100: \"#EBE9FE\",\n 200: \"#D9D6FE\",\n 300: \"#BDB4FE\",\n 400: \"#9B8AFB\",\n 500: \"#7A5AF8\",\n 600: \"#6938EF\",\n 700: \"#5925DC\",\n 800: \"#4A1FB8\",\n 900: \"#3E1C96\"\n },\n teal: {\n 25: \"#F6FEFC\",\n 50: \"#F0FDF9\",\n 100: \"#CCFBEF\",\n 200: \"#99F6E0\",\n 300: \"#5FE9D0\",\n 400: \"#2ED3B7\",\n 500: \"#15B79E\",\n 600: \"#0E9384\",\n 700: \"#107569\",\n 800: \"#125D56\",\n 900: \"#134E48\"\n },\n pink: {\n 25: \"#fdf2f8\",\n 50: \"#fce7f3\",\n 100: \"#fbcfe8\",\n 200: \"#f9a8d4\",\n 300: \"#f472b6\",\n 400: \"#ec4899\",\n 500: \"#db2777\",\n 600: \"#be185d\",\n 700: \"#9d174d\",\n 800: \"#831843\",\n 900: \"#500724\"\n },\n cyan: {\n 25: \"#ecfeff\",\n 50: \"#cffafe\",\n 100: \"#a5f3fc\",\n 200: \"#67e8f9\",\n 300: \"#22d3ee\",\n 400: \"#06b6d4\",\n 500: \"#0891b2\",\n 600: \"#0e7490\",\n 700: \"#155e75\",\n 800: \"#164e63\",\n 900: \"#083344\"\n }\n },\n alpha: {\n 90: \"e5\",\n 70: \"b3\",\n 20: \"33\"\n },\n font: {\n size: {\n \"2xs\": \"calc(var(--tsrd-font-size) * 0.625)\",\n xs: \"calc(var(--tsrd-font-size) * 0.75)\",\n sm: \"calc(var(--tsrd-font-size) * 0.875)\",\n md: \"var(--tsrd-font-size)\"\n },\n lineHeight: {\n xs: \"calc(var(--tsrd-font-size) * 1)\",\n sm: \"calc(var(--tsrd-font-size) * 1.25)\"\n },\n weight: {\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\"\n },\n fontFamily: {\n sans: \"ui-sans-serif, Inter, system-ui, sans-serif, sans-serif\",\n mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`\n }\n },\n border: {\n radius: {\n xs: \"calc(var(--tsrd-font-size) * 0.125)\",\n sm: \"calc(var(--tsrd-font-size) * 0.25)\",\n md: \"calc(var(--tsrd-font-size) * 0.375)\",\n full: \"9999px\"\n }\n },\n size: {\n 0: \"0px\",\n 0.5: \"calc(var(--tsrd-font-size) * 0.125)\",\n 1: \"calc(var(--tsrd-font-size) * 0.25)\",\n 1.5: \"calc(var(--tsrd-font-size) * 0.375)\",\n 2: \"calc(var(--tsrd-font-size) * 0.5)\",\n 2.5: \"calc(var(--tsrd-font-size) * 0.625)\",\n 3: \"calc(var(--tsrd-font-size) * 0.75)\",\n 3.5: \"calc(var(--tsrd-font-size) * 0.875)\",\n 4: \"calc(var(--tsrd-font-size) * 1)\",\n 5: \"calc(var(--tsrd-font-size) * 1.25)\",\n 8: \"calc(var(--tsrd-font-size) * 2)\"\n }\n};\nconst stylesFactory$1 = (shadowDOMTarget) => {\n const {\n colors,\n font,\n size,\n alpha,\n border\n } = tokens;\n const {\n fontFamily,\n lineHeight,\n size: fontSize\n } = font;\n const css = shadowDOMTarget ? goober.css.bind({\n target: shadowDOMTarget\n }) : goober.css;\n return {\n devtoolsPanelContainer: css`\n direction: ltr;\n position: fixed;\n bottom: 0;\n right: 0;\n z-index: 99999;\n width: 100%;\n max-height: 90%;\n border-top: 1px solid ${colors.gray[700]};\n transform-origin: top;\n `,\n devtoolsPanelContainerVisibility: (isOpen) => {\n return css`\n visibility: ${isOpen ? \"visible\" : \"hidden\"};\n `;\n },\n devtoolsPanelContainerResizing: (isResizing) => {\n if (isResizing()) {\n return css`\n transition: none;\n `;\n }\n return css`\n transition: all 0.4s ease;\n `;\n },\n devtoolsPanelContainerAnimation: (isOpen, height) => {\n if (isOpen) {\n return css`\n pointer-events: auto;\n transform: translateY(0);\n `;\n }\n return css`\n pointer-events: none;\n transform: translateY(${height}px);\n `;\n },\n logo: css`\n cursor: pointer;\n display: flex;\n flex-direction: column;\n background-color: transparent;\n border: none;\n font-family: ${fontFamily.sans};\n gap: ${tokens.size[0.5]};\n padding: 0px;\n &:hover {\n opacity: 0.7;\n }\n &:focus-visible {\n outline-offset: 4px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n tanstackLogo: css`\n font-size: ${font.size.md};\n font-weight: ${font.weight.bold};\n line-height: ${font.lineHeight.xs};\n white-space: nowrap;\n color: ${colors.gray[300]};\n `,\n routerLogo: css`\n font-weight: ${font.weight.semibold};\n font-size: ${font.size.xs};\n background: linear-gradient(to right, #84cc16, #10b981);\n background-clip: text;\n -webkit-background-clip: text;\n line-height: 1;\n -webkit-text-fill-color: transparent;\n white-space: nowrap;\n `,\n devtoolsPanel: css`\n display: flex;\n font-size: ${fontSize.sm};\n font-family: ${fontFamily.sans};\n background-color: ${colors.darkGray[700]};\n color: ${colors.gray[300]};\n\n @media (max-width: 700px) {\n flex-direction: column;\n }\n @media (max-width: 600px) {\n font-size: ${fontSize.xs};\n }\n `,\n dragHandle: css`\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 4px;\n cursor: row-resize;\n z-index: 100000;\n &:hover {\n background-color: ${colors.purple[400]}${alpha[90]};\n }\n `,\n firstContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n border-right: 1px solid ${colors.gray[700]};\n display: flex;\n flex-direction: column;\n `,\n routerExplorerContainer: css`\n overflow-y: auto;\n flex: 1;\n `,\n routerExplorer: css`\n padding: ${tokens.size[2]};\n `,\n row: css`\n display: flex;\n align-items: center;\n padding: ${tokens.size[2]} ${tokens.size[2.5]};\n gap: ${tokens.size[2.5]};\n border-bottom: ${colors.darkGray[500]} 1px solid;\n align-items: center;\n `,\n detailsHeader: css`\n font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: ${colors.darkGray[600]};\n padding: 0px ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n font-size: ${font.size.xs};\n min-height: ${tokens.size[8]};\n line-height: ${font.lineHeight.xs};\n text-align: left;\n display: flex;\n align-items: center;\n `,\n maskedBadge: css`\n background: ${colors.yellow[900]}${alpha[70]};\n color: ${colors.yellow[300]};\n display: inline-block;\n padding: ${tokens.size[0]} ${tokens.size[2.5]};\n border-radius: ${border.radius.full};\n font-size: ${font.size.xs};\n font-weight: ${font.weight.normal};\n border: 1px solid ${colors.yellow[300]};\n `,\n maskedLocation: css`\n color: ${colors.yellow[300]};\n `,\n detailsContent: css`\n padding: ${tokens.size[1.5]} ${tokens.size[2]};\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: ${font.size.xs};\n `,\n routeMatchesToggle: css`\n display: flex;\n align-items: center;\n border: 1px solid ${colors.gray[500]};\n border-radius: ${border.radius.sm};\n overflow: hidden;\n `,\n routeMatchesToggleBtn: (active, showBorder) => {\n const base = css`\n appearance: none;\n border: none;\n font-size: 12px;\n padding: 4px 8px;\n background: transparent;\n cursor: pointer;\n font-family: ${fontFamily.sans};\n font-weight: ${font.weight.medium};\n `;\n const classes = [base];\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[400]};\n color: ${colors.gray[300]};\n `;\n classes.push(activeStyles);\n } else {\n const inactiveStyles = css`\n color: ${colors.gray[500]};\n background: ${colors.darkGray[800]}${alpha[20]};\n `;\n classes.push(inactiveStyles);\n }\n if (showBorder) {\n classes.push(css`\n border-right: 1px solid ${tokens.colors.gray[500]};\n `);\n }\n return classes;\n },\n detailsHeaderInfo: css`\n flex: 1;\n justify-content: flex-end;\n display: flex;\n align-items: center;\n font-weight: ${font.weight.normal};\n color: ${colors.gray[400]};\n `,\n matchRow: (active) => {\n const base = css`\n display: flex;\n border-bottom: 1px solid ${colors.darkGray[400]};\n cursor: pointer;\n align-items: center;\n padding: ${size[1]} ${size[2]};\n gap: ${size[2]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[300]};\n `;\n const classes = [base];\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[500]};\n `;\n classes.push(activeStyles);\n }\n return classes;\n },\n matchIndicator: (color) => {\n const base = css`\n flex: 0 0 auto;\n width: ${size[3]};\n height: ${size[3]};\n background: ${colors[color][900]};\n border: 1px solid ${colors[color][500]};\n border-radius: ${border.radius.full};\n transition: all 0.25s ease-out;\n box-sizing: border-box;\n `;\n const classes = [base];\n if (color === \"gray\") {\n const grayStyles = css`\n background: ${colors.gray[700]};\n border-color: ${colors.gray[400]};\n `;\n classes.push(grayStyles);\n }\n return classes;\n },\n matchID: css`\n flex: 1;\n line-height: ${lineHeight[\"xs\"]};\n `,\n ageTicker: (showWarning) => {\n const base = css`\n display: flex;\n gap: ${size[1]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[400]};\n font-variant-numeric: tabular-nums;\n line-height: ${lineHeight[\"xs\"]};\n `;\n const classes = [base];\n if (showWarning) {\n const warningStyles = css`\n color: ${colors.yellow[400]};\n `;\n classes.push(warningStyles);\n }\n return classes;\n },\n secondContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n border-right: 1px solid ${colors.gray[700]};\n display: flex;\n flex-direction: column;\n `,\n thirdContainer: css`\n flex: 1 1 500px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n height: 100%;\n border-right: 1px solid ${colors.gray[700]};\n\n @media (max-width: 700px) {\n border-top: 2px solid ${colors.gray[700]};\n }\n `,\n fourthContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n `,\n routesContainer: css`\n overflow-x: auto;\n overflow-y: visible;\n `,\n routesRowContainer: (active, isMatch) => {\n const base = css`\n display: flex;\n border-bottom: 1px solid ${colors.darkGray[400]};\n align-items: center;\n padding: ${size[1]} ${size[2]};\n gap: ${size[2]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[300]};\n cursor: ${isMatch ? \"pointer\" : \"default\"};\n line-height: ${lineHeight[\"xs\"]};\n `;\n const classes = [base];\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[500]};\n `;\n classes.push(activeStyles);\n }\n return classes;\n },\n routesRow: (isMatch) => {\n const base = css`\n flex: 1 0 auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: ${fontSize.xs};\n line-height: ${lineHeight[\"xs\"]};\n `;\n const classes = [base];\n if (!isMatch) {\n const matchStyles = css`\n color: ${colors.gray[400]};\n `;\n classes.push(matchStyles);\n }\n return classes;\n },\n routesRowInner: css`\n display: 'flex';\n align-items: 'center';\n flex-grow: 1;\n min-width: 0;\n `,\n routeParamInfo: css`\n color: ${colors.gray[400]};\n font-size: ${fontSize.xs};\n line-height: ${lineHeight[\"xs\"]};\n `,\n nestedRouteRow: (isRoot) => {\n const base = css`\n margin-left: ${isRoot ? 0 : size[3.5]};\n border-left: ${isRoot ? \"\" : `solid 1px ${colors.gray[700]}`};\n `;\n return base;\n },\n code: css`\n font-size: ${fontSize.xs};\n line-height: ${lineHeight[\"xs\"]};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `,\n matchesContainer: css`\n flex: 1 1 auto;\n overflow-y: auto;\n `,\n cachedMatchesContainer: css`\n flex: 1 1 auto;\n overflow-y: auto;\n max-height: 50%;\n `,\n historyContainer: css`\n display: flex;\n flex: 1 1 auto;\n overflow-y: auto;\n max-height: 50%;\n `,\n historyOverflowContainer: css`\n padding: ${size[1]} ${size[2]};\n font-size: ${tokens.font.size.xs};\n `,\n maskedBadgeContainer: css`\n flex: 1;\n justify-content: flex-end;\n display: flex;\n `,\n matchDetails: css`\n display: flex;\n flex-direction: column;\n padding: ${tokens.size[2]};\n font-size: ${tokens.font.size.xs};\n color: ${tokens.colors.gray[300]};\n line-height: ${tokens.font.lineHeight.sm};\n `,\n matchStatus: (status, isFetching) => {\n const colorMap = {\n pending: \"yellow\",\n success: \"green\",\n error: \"red\",\n notFound: \"purple\",\n redirected: \"gray\"\n };\n const color = isFetching && status === \"success\" ? isFetching === \"beforeLoad\" ? \"purple\" : \"blue\" : colorMap[status];\n return css`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n border-radius: ${tokens.border.radius.sm};\n font-weight: ${tokens.font.weight.normal};\n background-color: ${tokens.colors[color][900]}${tokens.alpha[90]};\n color: ${tokens.colors[color][300]};\n border: 1px solid ${tokens.colors[color][600]};\n margin-bottom: ${tokens.size[2]};\n transition: all 0.25s ease-out;\n `;\n },\n matchDetailsInfo: css`\n display: flex;\n justify-content: flex-end;\n flex: 1;\n `,\n matchDetailsInfoLabel: css`\n display: flex;\n `,\n mainCloseBtn: css`\n background: ${colors.darkGray[700]};\n padding: ${size[1]} ${size[2]} ${size[1]} ${size[1.5]};\n border-radius: ${border.radius.md};\n position: fixed;\n z-index: 99999;\n display: inline-flex;\n width: fit-content;\n cursor: pointer;\n appearance: none;\n border: 0;\n gap: 8px;\n align-items: center;\n border: 1px solid ${colors.gray[500]};\n font-size: ${font.size.xs};\n cursor: pointer;\n transition: all 0.25s ease-out;\n\n &:hover {\n background: ${colors.darkGray[500]};\n }\n `,\n mainCloseBtnPosition: (position) => {\n const base = css`\n ${position === \"top-left\" ? `top: ${size[2]}; left: ${size[2]};` : \"\"}\n ${position === \"top-right\" ? `top: ${size[2]}; right: ${size[2]};` : \"\"}\n ${position === \"bottom-left\" ? `bottom: ${size[2]}; left: ${size[2]};` : \"\"}\n ${position === \"bottom-right\" ? `bottom: ${size[2]}; right: ${size[2]};` : \"\"}\n `;\n return base;\n },\n mainCloseBtnAnimation: (isOpen) => {\n if (!isOpen) {\n return css`\n opacity: 1;\n pointer-events: auto;\n visibility: visible;\n `;\n }\n return css`\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n `;\n },\n routerLogoCloseButton: css`\n font-weight: ${font.weight.semibold};\n font-size: ${font.size.xs};\n background: linear-gradient(to right, #98f30c, #00f4a3);\n background-clip: text;\n -webkit-background-clip: text;\n line-height: 1;\n -webkit-text-fill-color: transparent;\n white-space: nowrap;\n `,\n mainCloseBtnDivider: css`\n width: 1px;\n background: ${tokens.colors.gray[600]};\n height: 100%;\n border-radius: 999999px;\n color: transparent;\n `,\n mainCloseBtnIconContainer: css`\n position: relative;\n width: ${size[5]};\n height: ${size[5]};\n background: pink;\n border-radius: 999999px;\n overflow: hidden;\n `,\n mainCloseBtnIconOuter: css`\n width: ${size[5]};\n height: ${size[5]};\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n filter: blur(3px) saturate(1.8) contrast(2);\n `,\n mainCloseBtnIconInner: css`\n width: ${size[4]};\n height: ${size[4]};\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n `,\n panelCloseBtn: css`\n position: absolute;\n cursor: pointer;\n z-index: 100001;\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n background-color: ${colors.darkGray[700]};\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n\n top: 0;\n right: ${size[2]};\n transform: translate(0, -100%);\n border-right: ${colors.darkGray[300]} 1px solid;\n border-left: ${colors.darkGray[300]} 1px solid;\n border-top: ${colors.darkGray[300]} 1px solid;\n border-bottom: none;\n border-radius: ${border.radius.sm} ${border.radius.sm} 0px 0px;\n padding: ${size[1]} ${size[1.5]} ${size[0.5]} ${size[1.5]};\n\n &::after {\n content: ' ';\n position: absolute;\n top: 100%;\n left: -${size[2.5]};\n height: ${size[1.5]};\n width: calc(100% + ${size[5]});\n }\n `,\n panelCloseBtnIcon: css`\n color: ${colors.gray[400]};\n width: ${size[2]};\n height: ${size[2]};\n `,\n navigateButton: css`\n background: none;\n border: none;\n padding: 0 0 0 4px;\n margin: 0;\n color: ${colors.gray[400]};\n font-size: ${fontSize.md};\n cursor: pointer;\n line-height: 1;\n vertical-align: middle;\n margin-right: 0.5ch;\n flex-shrink: 0;\n &:hover {\n color: ${colors.blue[300]};\n }\n `\n };\n};\nfunction useStyles$1() {\n const shadowDomTarget = useContext(ShadowDomTargetContext);\n const [_styles] = createSignal(stylesFactory$1(shadowDomTarget));\n return _styles;\n}\nconst getItem = (key) => {\n try {\n const itemValue = localStorage.getItem(key);\n if (typeof itemValue === \"string\") {\n return JSON.parse(itemValue);\n }\n return void 0;\n } catch {\n return void 0;\n }\n};\nfunction useLocalStorage(key, defaultValue) {\n const [value, setValue] = createSignal();\n createEffect(() => {\n const initialValue = getItem(key);\n if (typeof initialValue === \"undefined\" || initialValue === null) {\n setValue(\n typeof defaultValue === \"function\" ? defaultValue() : defaultValue\n );\n } else {\n setValue(initialValue);\n }\n });\n const setter = (updater) => {\n setValue((old) => {\n let newVal = updater;\n if (typeof updater == \"function\") {\n newVal = updater(old);\n }\n try {\n localStorage.setItem(key, JSON.stringify(newVal));\n } catch {\n }\n return newVal;\n });\n };\n return [value, setter];\n}\nvar _tmpl$$3 = /* @__PURE__ */ template(`<span><svg xmlns=http://www.w3.org/2000/svg width=12 height=12 fill=none viewBox=\"0 0 24 24\"><path stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 d=\"M9 18l6-6-6-6\">`), _tmpl$2$1 = /* @__PURE__ */ template(`<div>`), _tmpl$3$1 = /* @__PURE__ */ template(`<button><span> `), _tmpl$4$1 = /* @__PURE__ */ template(`<div><div><button> [<!> ... <!>]`), _tmpl$5$1 = /* @__PURE__ */ template(`<button><span></span> 🔄 `), _tmpl$6$1 = /* @__PURE__ */ template(`<span>:`), _tmpl$7$1 = /* @__PURE__ */ template(`<span>`);\nconst Expander = ({\n expanded,\n style = {}\n}) => {\n const styles = useStyles();\n return (() => {\n var _el$ = _tmpl$$3(), _el$2 = _el$.firstChild;\n createRenderEffect((_p$) => {\n var _v$ = styles().expander, _v$2 = clsx(styles().expanderIcon(expanded));\n _v$ !== _p$.e && className(_el$, _p$.e = _v$);\n _v$2 !== _p$.t && setAttribute(_el$2, \"class\", _p$.t = _v$2);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$;\n })();\n};\nfunction chunkArray(array, size) {\n if (size < 1) return [];\n let i = 0;\n const result = [];\n while (i < array.length) {\n result.push(array.slice(i, i + size));\n i = i + size;\n }\n return result;\n}\nfunction isIterable(x) {\n return Symbol.iterator in x;\n}\nfunction Explorer({\n value,\n defaultExpanded,\n pageSize = 100,\n filterSubEntries,\n ...rest\n}) {\n const [expanded, setExpanded] = createSignal(Boolean(defaultExpanded));\n const toggleExpanded = () => setExpanded((old) => !old);\n const type = createMemo(() => typeof value());\n const subEntries = createMemo(() => {\n let entries = [];\n const makeProperty = (sub) => {\n const subDefaultExpanded = defaultExpanded === true ? {\n [sub.label]: true\n } : defaultExpanded?.[sub.label];\n return {\n ...sub,\n value: () => sub.value,\n defaultExpanded: subDefaultExpanded\n };\n };\n if (Array.isArray(value())) {\n entries = value().map((d, i) => makeProperty({\n label: i.toString(),\n value: d\n }));\n } else if (value() !== null && typeof value() === \"object\" && isIterable(value()) && typeof value()[Symbol.iterator] === \"function\") {\n entries = Array.from(value(), (val, i) => makeProperty({\n label: i.toString(),\n value: val\n }));\n } else if (typeof value() === \"object\" && value() !== null) {\n entries = Object.entries(value()).map(([key, val]) => makeProperty({\n label: key,\n value: val\n }));\n }\n return filterSubEntries ? filterSubEntries(entries) : entries;\n });\n const subEntryPages = createMemo(() => chunkArray(subEntries(), pageSize));\n const [expandedPages, setExpandedPages] = createSignal([]);\n const [valueSnapshot, setValueSnapshot] = createSignal(void 0);\n const styles = useStyles();\n const refreshValueSnapshot = () => {\n setValueSnapshot(value()());\n };\n const handleEntry = (entry) => createComponent(Explorer, mergeProps({\n value,\n filterSubEntries\n }, rest, entry));\n return (() => {\n var _el$3 = _tmpl$2$1();\n insert(_el$3, (() => {\n var _c$ = createMemo(() => !!subEntryPages().length);\n return () => _c$() ? [(() => {\n var _el$4 = _tmpl$3$1(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild;\n _el$4.$$click = () => toggleExpanded();\n insert(_el$4, createComponent(Expander, {\n get expanded() {\n return expanded() ?? false;\n }\n }), _el$5);\n insert(_el$4, () => rest.label, _el$5);\n insert(_el$5, () => String(type).toLowerCase() === \"iterable\" ? \"(Iterable) \" : \"\", _el$6);\n insert(_el$5, () => subEntries().length, _el$6);\n insert(_el$5, () => subEntries().length > 1 ? `items` : `item`, null);\n createRenderEffect((_p$) => {\n var _v$3 = styles().expandButton, _v$4 = styles().info;\n _v$3 !== _p$.e && className(_el$4, _p$.e = _v$3);\n _v$4 !== _p$.t && className(_el$5, _p$.t = _v$4);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$4;\n })(), createMemo(() => createMemo(() => !!(expanded() ?? false))() ? createMemo(() => subEntryPages().length === 1)() ? (() => {\n var _el$7 = _tmpl$2$1();\n insert(_el$7, () => subEntries().map((entry, index) => handleEntry(entry)));\n createRenderEffect(() => className(_el$7, styles().subEntries));\n return _el$7;\n })() : (() => {\n var _el$8 = _tmpl$2$1();\n insert(_el$8, () => subEntryPages().map((entries, index) => {\n return (() => {\n var _el$9 = _tmpl$4$1(), _el$0 = _el$9.firstChild, _el$1 = _el$0.firstChild, _el$10 = _el$1.firstChild, _el$15 = _el$10.nextSibling, _el$12 = _el$15.nextSibling, _el$16 = _el$12.nextSibling;\n _el$16.nextSibling;\n _el$1.$$click = () => setExpandedPages((old) => old.includes(index) ? old.filter((d) => d !== index) : [...old, index]);\n insert(_el$1, createComponent(Expander, {\n get expanded() {\n return expandedPages().includes(index);\n }\n }), _el$10);\n insert(_el$1, index * pageSize, _el$15);\n insert(_el$1, index * pageSize + pageSize - 1, _el$16);\n insert(_el$0, (() => {\n var _c$3 = createMemo(() => !!expandedPages().includes(index));\n return () => _c$3() ? (() => {\n var _el$17 = _tmpl$2$1();\n insert(_el$17, () => entries.map((entry) => handleEntry(entry)));\n createRenderEffect(() => className(_el$17, styles().subEntries));\n return _el$17;\n })() : null;\n })(), null);\n createRenderEffect((_p$) => {\n var _v$5 = styles().entry, _v$6 = clsx(styles().labelButton, \"labelButton\");\n _v$5 !== _p$.e && className(_el$0, _p$.e = _v$5);\n _v$6 !== _p$.t && className(_el$1, _p$.t = _v$6);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$9;\n })();\n }));\n createRenderEffect(() => className(_el$8, styles().subEntries));\n return _el$8;\n })() : null)] : (() => {\n var _c$2 = createMemo(() => type() === \"function\");\n return () => _c$2() ? createComponent(Explorer, {\n get label() {\n return (() => {\n var _el$18 = _tmpl$5$1(), _el$19 = _el$18.firstChild;\n _el$18.$$click = refreshValueSnapshot;\n insert(_el$19, () => rest.label);\n createRenderEffect(() => className(_el$18, styles().refreshValueBtn));\n return _el$18;\n })();\n },\n value: valueSnapshot,\n defaultExpanded: {}\n }) : [(() => {\n var _el$20 = _tmpl$6$1(), _el$21 = _el$20.firstChild;\n insert(_el$20, () => rest.label, _el$21);\n return _el$20;\n })(), \" \", (() => {\n var _el$22 = _tmpl$7$1();\n insert(_el$22, () => displayValue(value()));\n createRenderEffect(() => className(_el$22, styles().value));\n return _el$22;\n })()];\n })();\n })());\n createRenderEffect(() => className(_el$3, styles().entry));\n return _el$3;\n })();\n}\nconst stylesFactory = (shadowDOMTarget) => {\n const {\n colors,\n font,\n size\n } = tokens;\n const {\n fontFamily,\n lineHeight,\n size: fontSize\n } = font;\n const css = shadowDOMTarget ? goober.css.bind({\n target: shadowDOMTarget\n }) : goober.css;\n return {\n entry: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n line-height: ${lineHeight.sm};\n outline: none;\n word-break: break-word;\n `,\n labelButton: css`\n cursor: pointer;\n color: inherit;\n font: inherit;\n outline: inherit;\n background: transparent;\n border: none;\n padding: 0;\n `,\n expander: css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${size[3]};\n height: ${size[3]};\n padding-left: 3px;\n box-sizing: content-box;\n `,\n expanderIcon: (expanded) => {\n if (expanded) {\n return css`\n transform: rotate(90deg);\n transition: transform 0.1s ease;\n `;\n }\n return css`\n transform: rotate(0deg);\n transition: transform 0.1s ease;\n `;\n },\n expandButton: css`\n display: flex;\n gap: ${size[1]};\n align-items: center;\n cursor: pointer;\n color: inherit;\n font: inherit;\n outline: inherit;\n background: transparent;\n border: none;\n padding: 0;\n `,\n value: css`\n color: ${colors.purple[400]};\n `,\n subEntries: css`\n margin-left: ${size[2]};\n padding-left: ${size[2]};\n border-left: 2px solid ${colors.darkGray[400]};\n `,\n info: css`\n color: ${colors.gray[500]};\n font-size: ${fontSize[\"2xs\"]};\n padding-left: ${size[1]};\n `,\n refreshValueBtn: css`\n appearance: none;\n border: 0;\n cursor: pointer;\n background: transparent;\n color: inherit;\n padding: 0;\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n `\n };\n};\nfunction useStyles() {\n const shadowDomTarget = useContext(ShadowDomTargetContext);\n const [_styles] = createSignal(stylesFactory(shadowDomTarget));\n return _styles;\n}\ndelegateEvents([\"click\"]);\nvar _tmpl$$2 = /* @__PURE__ */ template(`<div><div></div><div>/</div><div></div><div>/</div><div>`);\nfunction formatTime(ms) {\n const units = [\"s\", \"min\", \"h\", \"d\"];\n const values = [ms / 1e3, ms / 6e4, ms / 36e5, ms / 864e5];\n let chosenUnitIndex = 0;\n for (let i = 1; i < values.length; i++) {\n if (values[i] < 1) break;\n chosenUnitIndex = i;\n }\n const formatter = new Intl.NumberFormat(navigator.language, {\n compactDisplay: \"short\",\n notation: \"compact\",\n maximumFractionDigits: 0\n });\n return formatter.format(values[chosenUnitIndex]) + units[chosenUnitIndex];\n}\nfunction AgeTicker({\n match,\n router\n}) {\n const styles = useStyles$1();\n if (!match) {\n return null;\n }\n const route = router().looseRoutesById[match.routeId];\n if (!route.options.loader) {\n return null;\n }\n const age = Date.now() - match.updatedAt;\n const staleTime = route.options.staleTime ?? router().options.defaultStaleTime ?? 0;\n const gcTime = route.options.gcTime ?? router().options.defaultGcTime ?? 30 * 60 * 1e3;\n return (() => {\n var _el$ = _tmpl$$2(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling;\n insert(_el$2, () => formatTime(age));\n insert(_el$4, () => formatTime(staleTime));\n insert(_el$6, () => formatTime(gcTime));\n createRenderEffect(() => className(_el$, clsx(styles().ageTicker(age > staleTime))));\n return _el$;\n })();\n}\nvar _tmpl$$1 = /* @__PURE__ */ template(`<button type=button>➔`);\nfunction NavigateButton({\n to,\n params,\n search,\n router\n}) {\n const styles = useStyles$1();\n return (() => {\n var _el$ = _tmpl$$1();\n _el$.$$click = (e) => {\n e.stopPropagation();\n router().navigate({\n to,\n params,\n search\n });\n };\n setAttribute(_el$, \"title\", `Navigate to ${to}`);\n createRenderEffect(() => className(_el$, styles().navigateButton));\n return _el$;\n })();\n}\ndelegateEvents([\"click\"]);\nvar _tmpl$ = /* @__PURE__ */ template(`<button><div>TANSTACK</div><div>TanStack Router v1`), _tmpl$2 = /* @__PURE__ */ template(`<div><div>`), _tmpl$3 = /* @__PURE__ */ template(`<code> `), _tmpl$4 = /* @__PURE__ */ template(`<code>`), _tmpl$5 = /* @__PURE__ */ template(`<div><div role=button><div>`), _tmpl$6 = /* @__PURE__ */ template(`<div>`), _tmpl$7 = /* @__PURE__ */ template(`<div><ul>`), _tmpl$8 = /* @__PURE__ */ template(`<div><button><svg xmlns=http://www.w3.org/2000/svg width=10 height=6 fill=none viewBox=\"0 0 10 6\"><path stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=1.667 d=\"M1 1l4 4 4-4\"></path></svg></button><div><div></div><div><div></div></div></div><div><div><div><span>Pathname</span></div><div><code></code></div><div><div><button type=button>Routes</button><button type=button>Matches</button><button type=button>History</button></div><div><div>age / staleTime / gcTime</div></div></div><div>`), _tmpl$9 = /* @__PURE__ */ template(`<div><span>masked`), _tmpl$0 = /* @__PURE__ */ template(`<div role=button><div>`), _tmpl$1 = /* @__PURE__ */ template(`<li><div>`), _tmpl$10 = /* @__PURE__ */ template(`<li>This panel displays the most recent 15 navigations.`), _tmpl$11 = /* @__PURE__ */ template(`<div><div><div>Cached Matches</div><div>age / staleTime / gcTime</div></div><div>`), _tmpl$12 = /* @__PURE__ */ template(`<div><div>Match Details</div><div><div><div><div></div></div><div><div>ID:</div><div><code></code></div></div><div><div>State:</div><div></div></div><div><div>Last Updated:</div><div></div></div></div></div><div>Explorer</div><div>`), _tmpl$13 = /* @__PURE__ */ template(`<div>Loader Data`), _tmpl$14 = /* @__PURE__ */ template(`<div><div><span>Search Params</span></div><div>`), _tmpl$15 = /* @__PURE__ */ template(`<span style=margin-left:0.5rem;>`), _tmpl$16 = /* @__PURE__ */ template(`<button type=button style=cursor:pointer; aria-label=\"Copy value to clipboard\">`);\nconst HISTORY_LIMIT = 15;\nfunction Logo(props) {\n const {\n className: className$1,\n ...rest\n } = props;\n const styles = useStyles$1();\n return (() => {\n var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;\n spread(_el$, mergeProps(rest, {\n get [\"class\"]() {\n return clsx(styles().logo, className$1 ? className$1() : \"\");\n }\n }), false, true);\n createRenderEffect((_p$) => {\n var _v$ = styles().tanstackLogo, _v$2 = styles().routerLogo;\n _v$ !== _p$.e && className(_el$2, _p$.e = _v$);\n _v$2 !== _p$.t && className(_el$3, _p$.t = _v$2);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$;\n })();\n}\nfunction NavigateLink(props) {\n return (() => {\n var _el$4 = _tmpl$2(), _el$5 = _el$4.firstChild;\n _el$4.style.setProperty(\"display\", \"flex\");\n _el$4.style.setProperty(\"align-items\", \"center\");\n _el$4.style.setProperty(\"width\", \"100%\");\n insert(_el$4, () => props.left, _el$5);\n _el$5.style.setProperty(\"flex-grow\", \"1\");\n _el$5.style.setProperty(\"min-width\", \"0\");\n insert(_el$5, () => props.children);\n insert(_el$4, () => props.right, null);\n createRenderEffect(() => className(_el$4, props.class));\n return _el$4;\n })();\n}\nfunction RouteComp({\n routerState,\n router,\n route,\n isRoot,\n activeId,\n setActiveId\n}) {\n const styles = useStyles$1();\n const matches = createMemo(() => routerState().pendingMatches || routerState().matches);\n const match = createMemo(() => routerState().matches.find((d) => d.routeId === route.id));\n const param = createMemo(() => {\n try {\n if (match()?.params) {\n const p = match()?.params;\n const r = route.path || trimPath(route.id);\n if (r.startsWith(\"$\")) {\n const trimmed = r.slice(1);\n if (p[trimmed]) {\n return `(${p[trimmed]})`;\n }\n }\n }\n return \"\";\n } catch (error) {\n return \"\";\n }\n });\n const navigationTarget = createMemo(() => {\n if (isRoot) return void 0;\n if (!route.path) return void 0;\n const allParams = Object.assign({}, ...matches().map((m) => m.params));\n const interpolated = interpolatePath({\n path: route.fullPath,\n params: allParams,\n leaveWildcards: false,\n leaveParams: false,\n decodeCharMap: router().pathParamsDecodeCharMap\n });\n return !interpolated.isMissingParams ? interpolated.interpolatedPath : void 0;\n });\n return (() => {\n var _el$6 = _tmpl$5(), _el$7 = _el$6.firstChild, _el$8 = _el$7.firstChild;\n _el$7.$$click = () => {\n if (match()) {\n setActiveId(activeId() === route.id ? \"\" : route.id);\n }\n };\n insert(_el$7, createComponent(NavigateLink, {\n get [\"class\"]() {\n return clsx(styles().routesRow(!!match()));\n },\n get left() {\n return createComponent(Show, {\n get when() {\n return navigationTarget();\n },\n children: (navigate) => createComponent(NavigateButton, {\n get to() {\n return navigate();\n },\n router\n })\n });\n },\n get right() {\n return createComponent(AgeTicker, {\n get match() {\n return match();\n },\n router\n });\n },\n get children() {\n return [(() => {\n var _el$9 = _tmpl$3(), _el$0 = _el$9.firstChild;\n insert(_el$9, () => isRoot ? rootRouteId : route.path || trimPath(route.id), _el$0);\n createRenderEffect(() => className(_el$9, styles().code));\n return _el$9;\n })(), (() => {\n var _el$1 = _tmpl$4();\n insert(_el$1, param);\n createRenderEffect(() => className(_el$1, styles().routeParamInfo));\n return _el$1;\n })()];\n }\n }), null);\n insert(_el$6, (() => {\n var _c$ = createMemo(() => !!route.children?.length);\n return () => _c$() ? (() => {\n var _el$10 = _tmpl$6();\n insert(_el$10, () => [...route.children].sort((a, b) => {\n return a.rank - b.rank;\n }).map((r) => createComponent(RouteComp, {\n routerState,\n router,\n route: r,\n activeId,\n setActiveId\n })));\n createRenderEffect(() => className(_el$10, styles().nestedRouteRow(!!isRoot)));\n return _el$10;\n })() : null;\n })(), null);\n createRenderEffect((_p$) => {\n var _v$3 = `Open match details for ${route.id}`, _v$4 = clsx(styles().routesRowContainer(route.id === activeId(), !!match())), _v$5 = clsx(styles().matchIndicator(getRouteStatusColor(matches(), route)));\n _v$3 !== _p$.e && setAttribute(_el$7, \"aria-label\", _p$.e = _v$3);\n _v$4 !== _p$.t && className(_el$7, _p$.t = _v$4);\n _v$5 !== _p$.a && className(_el$8, _p$.a = _v$5);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0\n });\n return _el$6;\n })();\n}\nconst BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel2({\n ...props\n}) {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router,\n routerState,\n shadowDOMTarget,\n ...panelProps\n } = props;\n const {\n onCloseClick\n } = useDevtoolsOnClose();\n const styles = useStyles$1();\n const {\n className: className$1,\n style,\n ...otherPanelProps\n } = panelProps;\n invariant(router, \"No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.\");\n const [currentTab, setCurrentTab] = useLocalStorage(\"tanstackRouterDevtoolsActiveTab\", \"routes\");\n const [activeId, setActiveId] = useLocalStorage(\"tanstackRouterDevtoolsActiveRouteId\", \"\");\n const [history, setHistory] = createSignal([]);\n const [hasHistoryOverflowed, setHasHistoryOverflowed] = createSignal(false);\n createEffect(() => {\n const matches = routerState().matches;\n const currentMatch = matches[matches.length - 1];\n if (!currentMatch) {\n return;\n }\n const historyUntracked = untrack(() => history());\n const lastMatch = historyUntracked[0];\n const sameLocation = lastMatch && lastMatch.pathname === currentMatch.pathname && JSON.stringify(lastMatch.search ?? {}) === JSON.stringify(currentMatch.search ?? {});\n if (!lastMatch || !sameLocation) {\n if (historyUntracked.length >= HISTORY_LIMIT) {\n setHasHistoryOverflowed(true);\n }\n setHistory((prev) => {\n const newHistory = [currentMatch, ...prev];\n newHistory.splice(HISTORY_LIMIT);\n return newHistory;\n });\n }\n });\n const activeMatch = createMemo(() => {\n const matches = [...routerState().pendingMatches ?? [], ...routerState().matches, ...routerState().cachedMatches];\n return matches.find((d) => d.routeId === activeId() || d.id === activeId());\n });\n const hasSearch = createMemo(() => Object.keys(routerState().location.search).length);\n const explorerState = createMemo(() => {\n return {\n ...router(),\n state: routerState()\n };\n });\n const routerExplorerValue = createMemo(() => Object.fromEntries(multiSortBy(Object.keys(explorerState()), [\"state\", \"routesById\", \"routesByPath\", \"flatRoutes\", \"options\", \"manifest\"].map((d) => (dd) => dd !== d)).map((key) => [key, explorerState()[key]]).filter((d) => typeof d[1] !== \"function\" && ![\"__store\", \"basepath\", \"injectedHtml\", \"subscribers\", \"latestLoadPromise\", \"navigateTimeout\", \"resetNextScroll\", \"tempLocationKey\", \"latestLocation\", \"routeTree\", \"history\"].includes(d[0]))));\n const activeMatchLoaderData = createMemo(() => activeMatch()?.loaderData);\n const activeMatchValue = createMemo(() => activeMatch());\n const locationSearchValue = createMemo(() => routerState().location.search);\n return (() => {\n var _el$11 = _tmpl$8(), _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$14 = _el$12.nextSibling, _el$15 = _el$14.firstChild, _el$16 = _el$15.nextSibling, _el$17 = _el$16.firstChild, _el$18 = _el$14.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild;\n _el$20.firstChild;\n var _el$22 = _el$20.nextSibling, _el$23 = _el$22.firstChild, _el$24 = _el$22.nextSibling, _el$25 = _el$24.firstChild, _el$26 = _el$25.firstChild, _el$27 = _el$26.nextSibling, _el$28 = _el$27.nextSibling, _el$29 = _el$25.nextSibling, _el$30 = _el$24.nextSibling;\n spread(_el$11, mergeProps({\n get [\"class\"]() {\n return clsx(styles().devtoolsPanel, \"TanStackRouterDevtoolsPanel\", className$1 ? className$1() : \"\");\n },\n get style() {\n return style ? style() : \"\";\n }\n }, otherPanelProps), false, true);\n insert(_el$11, handleDragStart ? (() => {\n var _el$34 = _tmpl$6();\n addEventListener(_el$34, \"mousedown\", handleDragStart, true);\n createRenderEffect(() => className(_el$34, styles().dragHandle));\n return _el$34;\n })() : null, _el$12);\n _el$12.$$click = (e) => {\n if (setIsOpen) {\n setIsOpen(false);\n }\n onCloseClick(e);\n };\n insert(_el$15, createComponent(Logo, {\n \"aria-hidden\": true,\n onClick: (e) => {\n if (setIsOpen) {\n setIsOpen(false);\n }\n onCloseClick(e);\n }\n }));\n insert(_el$17, createComponent(Explorer, {\n label: \"Router\",\n value: routerExplorerValue,\n defaultExpanded: {\n state: {},\n context: {},\n options: {}\n },\n filterSubEntries: (subEntries) => {\n return subEntries.filter((d) => typeof d.value() !== \"function\");\n }\n }));\n insert(_el$20, (() => {\n var _c$2 = createMemo(() => !!routerState().location.maskedLocation);\n return () => _c$2() ? (() => {\n var _el$35 = _tmpl$9(), _el$36 = _el$35.firstChild;\n createRenderEffect((_p$) => {\n var _v$24 = styles().maskedBadgeContainer, _v$25 = styles().maskedBadge;\n _v$24 !== _p$.e && className(_el$35, _p$.e = _v$24);\n _v$25 !== _p$.t && className(_el$36, _p$.t = _v$25);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$35;\n })() : null;\n })(), null);\n insert(_el$23, () => routerState().location.pathname);\n insert(_el$22, (() => {\n var _c$3 = createMemo(() => !!routerState().location.maskedLocation);\n return () => _c$3() ? (() => {\n var _el$37 = _tmpl$4();\n insert(_el$37, () => routerState().location.maskedLocation?.pathname);\n createRenderEffect(() => className(_el$37, styles().maskedLocation));\n return _el$37;\n })() : null;\n })(), null);\n _el$26.$$click = () => {\n setCurrentTab(\"routes\");\n };\n _el$27.$$click = () => {\n setCurrentTab(\"matches\");\n };\n _el$28.$$click = () => {\n setCurrentTab(\"history\");\n };\n insert(_el$30, createComponent(Switch, {\n get children() {\n return [createComponent(Match, {\n get when() {\n return currentTab() === \"routes\";\n },\n get children() {\n return createComponent(RouteComp, {\n routerState,\n router,\n get route() {\n return router().routeTree;\n },\n isRoot: true,\n activeId,\n setActiveId\n });\n }\n }), createComponent(Match, {\n get when() {\n return currentTab() === \"matches\";\n },\n get children() {\n var _el$31 = _tmpl$6();\n insert(_el$31, () => (routerState().pendingMatches?.length ? routerState().pendingMatches : routerState().matches)?.map((match, _i) => {\n return (() => {\n var _el$38 = _tmpl$0(), _el$39 = _el$38.firstChild;\n _el$38.$$click = () => setActiveId(activeId() === match.id ? \"\" : match.id);\n insert(_el$38, createComponent(NavigateLink, {\n get left() {\n return createComponent(NavigateButton, {\n get to() {\n return match.pathname;\n },\n get params() {\n return match.params;\n },\n get search() {\n return match.search;\n },\n router\n });\n },\n get right() {\n return createComponent(AgeTicker, {\n match,\n router\n });\n },\n get children() {\n var _el$40 = _tmpl$4();\n insert(_el$40, () => `${match.routeId === rootRouteId ? rootRouteId : match.pathname}`);\n createRenderEffect(() => className(_el$40, styles().matchID));\n return _el$40;\n }\n }), null);\n createRenderEffect((_p$) => {\n var _v$26 = `Open match details for ${match.id}`, _v$27 = clsx(styles().matchRow(match === activeMatch())), _v$28 = clsx(styles().matchIndicator(getStatusColor(match)));\n _v$26 !== _p$.e && setAttribute(_el$38, \"aria-label\", _p$.e = _v$26);\n _v$27 !== _p$.t && className(_el$38, _p$.t = _v$27);\n _v$28 !== _p$.a && className(_el$39, _p$.a = _v$28);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0\n });\n return _el$38;\n })();\n }));\n return _el$31;\n }\n }), createComponent(Match, {\n get when() {\n return currentTab() === \"history\";\n },\n get children() {\n var _el$32 = _tmpl$7(), _el$33 = _el$32.firstChild;\n insert(_el$33, createComponent(For, {\n get each() {\n return history();\n },\n children: (match, index) => (() => {\n var _el$41 = _tmpl$1(), _el$42 = _el$41.firstChild;\n insert(_el$41, createComponent(NavigateLink, {\n get left() {\n return createComponent(NavigateButton, {\n get to() {\n return match.pathname;\n },\n get params() {\n return match.params;\n },\n get search() {\n return match.search;\n },\n router\n });\n },\n get right() {\n return createComponent(AgeTicker, {\n match,\n router\n });\n },\n get children() {\n var _el$43 = _tmpl$4();\n insert(_el$43, () => `${match.routeId === rootRouteId ? rootRouteId : match.pathname}`);\n createRenderEffect(() => className(_el$43, styles().matchID));\n return _el$43;\n }\n }), null);\n createRenderEffect((_p$) => {\n var _v$29 = clsx(styles().matchRow(match === activeMatch())), _v$30 = clsx(styles().matchIndicator(index() === 0 ? \"green\" : \"gray\"));\n _v$29 !== _p$.e && className(_el$41, _p$.e = _v$29);\n _v$30 !== _p$.t && className(_el$42, _p$.t = _v$30);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$41;\n })()\n }), null);\n insert(_el$33, (() => {\n var _c$4 = createMemo(() => !!hasHistoryOverflowed());\n return () => _c$4() ? (() => {\n var _el$44 = _tmpl$10();\n createRenderEffect(() => className(_el$44, styles().historyOverflowContainer));\n return _el$44;\n })() : null;\n })(), null);\n return _el$32;\n }\n })];\n }\n }));\n insert(_el$18, (() => {\n var _c$5 = createMemo(() => !!routerState().cachedMatches.length);\n return () => _c$5() ? (() => {\n var _el$45 = _tmpl$11(), _el$46 = _el$45.firstChild, _el$47 = _el$46.firstChild, _el$48 = _el$47.nextSibling, _el$49 = _el$46.nextSibling;\n insert(_el$49, () => routerState().cachedMatches.map((match) => {\n return (() => {\n var _el$50 = _tmpl$0(), _el$51 = _el$50.firstChild;\n _el$50.$$click = () => setActiveId(activeId() === match.id ? \"\" : match.id);\n insert(_el$50, createComponent(NavigateLink, {\n get left() {\n return createComponent(NavigateButton, {\n get to() {\n return match.pathname;\n },\n get params() {\n return match.params;\n },\n get search() {\n return match.search;\n },\n router\n });\n },\n get right() {\n return createComponent(AgeTicker, {\n match,\n router\n });\n },\n get children() {\n var _el$52 = _tmpl$4();\n insert(_el$52, () => `${match.id}`);\n createRenderEffect(() => className(_el$52, styles().matchID));\n return _el$52;\n }\n }), null);\n createRenderEffect((_p$) => {\n var _v$34 = `Open match details for ${match.id}`, _v$35 = clsx(styles().matchRow(match === activeMatch())), _v$36 = clsx(styles().matchIndicator(getStatusColor(match)));\n _v$34 !== _p$.e && setAttribute(_el$50, \"aria-label\", _p$.e = _v$34);\n _v$35 !== _p$.t && className(_el$50, _p$.t = _v$35);\n _v$36 !== _p$.a && className(_el$51, _p$.a = _v$36);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0\n });\n return _el$50;\n })();\n }));\n createRenderEffect((_p$) => {\n var _v$31 = styles().cachedMatchesContainer, _v$32 = styles().detailsHeader, _v$33 = styles().detailsHeaderInfo;\n _v$31 !== _p$.e && className(_el$45, _p$.e = _v$31);\n _v$32 !== _p$.t && className(_el$46, _p$.t = _v$32);\n _v$33 !== _p$.a && className(_el$48, _p$.a = _v$33);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0\n });\n return _el$45;\n })() : null;\n })(), null);\n insert(_el$11, (() => {\n var _c$6 = createMemo(() => !!(activeMatch() && activeMatch()?.status));\n return () => _c$6() ? (() => {\n var _el$53 = _tmpl$12(), _el$54 = _el$53.firstChild, _el$55 = _el$54.nextSibling, _el$56 = _el$55.firstChild, _el$57 = _el$56.firstChild, _el$58 = _el$57.firstChild, _el$59 = _el$57.nextSibling, _el$60 = _el$59.firstChild, _el$61 = _el$60.nextSibling, _el$62 = _el$61.firstChild, _el$63 = _el$59.nextSibling, _el$64 = _el$63.firstChild, _el$65 = _el$64.nextSibling, _el$66 = _el$63.nextSibling, _el$67 = _el$66.firstChild, _el$68 = _el$67.nextSibling, _el$69 = _el$55.nextSibling, _el$70 = _el$69.nextSibling;\n insert(_el$58, (() => {\n var _c$8 = createMemo(() => !!(activeMatch()?.status === \"success\" && activeMatch()?.isFetching));\n return () => _c$8() ? \"fetching\" : activeMatch()?.status;\n })());\n insert(_el$62, () => activeMatch()?.id);\n insert(_el$65, (() => {\n var _c$9 = createMemo(() => !!routerState().pendingMatches?.find((d) => d.id === activeMatch()?.id));\n return () => _c$9() ? \"Pending\" : routerState().matches.find((d) => d.id === activeMatch()?.id) ? \"Active\" : \"Cached\";\n })());\n insert(_el$68, (() => {\n var _c$0 = createMemo(() => !!activeMatch()?.updatedAt);\n return () => _c$0() ? new Date(activeMatch()?.updatedAt).toLocaleTimeString() : \"N/A\";\n })());\n insert(_el$53, (() => {\n var _c$1 = createMemo(() => !!activeMatchLoaderData());\n return () => _c$1() ? [(() => {\n var _el$71 = _tmpl$13();\n createRenderEffect(() => className(_el$71, styles().detailsHeader));\n return _el$71;\n })(), (() => {\n var _el$72 = _tmpl$6();\n insert(_el$72, createComponent(Explorer, {\n label: \"loaderData\",\n value: activeMatchLoaderData,\n defaultExpanded: {}\n }));\n createRenderEffect(() => className(_el$72, styles().detailsContent));\n return _el$72;\n })()] : null;\n })(), _el$69);\n insert(_el$70, createComponent(Explorer, {\n label: \"Match\",\n value: activeMatchValue,\n defaultExpanded: {}\n }));\n createRenderEffect((_p$) => {\n var _v$37 = styles().thirdContainer, _v$38 = styles().detailsHeader, _v$39 = styles().matchDetails, _v$40 = styles().matchStatus(activeMatch()?.status, activeMatch()?.isFetching), _v$41 = styles().matchDetailsInfoLabel, _v$42 = styles().matchDetailsInfo, _v$43 = styles().matchDetailsInfoLabel, _v$44 = styles().matchDetailsInfo, _v$45 = styles().matchDetailsInfoLabel, _v$46 = styles().matchDetailsInfo, _v$47 = styles().detailsHeader, _v$48 = styles().detailsContent;\n _v$37 !== _p$.e && className(_el$53, _p$.e = _v$37);\n _v$38 !== _p$.t && className(_el$54, _p$.t = _v$38);\n _v$39 !== _p$.a && className(_el$56, _p$.a = _v$39);\n _v$40 !== _p$.o && className(_el$57, _p$.o = _v$40);\n _v$41 !== _p$.i && className(_el$59, _p$.i = _v$41);\n _v$42 !== _p$.n && className(_el$61, _p$.n = _v$42);\n _v$43 !== _p$.s && className(_el$63, _p$.s = _v$43);\n _v$44 !== _p$.h && className(_el$65, _p$.h = _v$44);\n _v$45 !== _p$.r && className(_el$66, _p$.r = _v$45);\n _v$46 !== _p$.d && className(_el$68, _p$.d = _v$46);\n _v$47 !== _p$.l && className(_el$69, _p$.l = _v$47);\n _v$48 !== _p$.u && className(_el$70, _p$.u = _v$48);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0,\n o: void 0,\n i: void 0,\n n: void 0,\n s: void 0,\n h: void 0,\n r: void 0,\n d: void 0,\n l: void 0,\n u: void 0\n });\n return _el$53;\n })() : null;\n })(), null);\n insert(_el$11, (() => {\n var _c$7 = createMemo(() => !!hasSearch());\n return () => _c$7() ? (() => {\n var _el$73 = _tmpl$14(), _el$74 = _el$73.firstChild;\n _el$74.firstChild;\n var _el$76 = _el$74.nextSibling;\n insert(_el$74, typeof navigator !== \"undefined\" ? (() => {\n var _el$77 = _tmpl$15();\n insert(_el$77, createComponent(CopyButton, {\n getValue: () => {\n const search = routerState().location.search;\n return JSON.stringify(search);\n }\n }));\n return _el$77;\n })() : null, null);\n insert(_el$76, createComponent(Explorer, {\n value: locationSearchValue,\n get defaultExpanded() {\n return Object.keys(routerState().location.search).reduce((obj, next) => {\n obj[next] = {};\n return obj;\n }, {});\n }\n }));\n createRenderEffect((_p$) => {\n var _v$49 = styles().fourthContainer, _v$50 = styles().detailsHeader, _v$51 = styles().detailsContent;\n _v$49 !== _p$.e && className(_el$73, _p$.e = _v$49);\n _v$50 !== _p$.t && className(_el$74, _p$.t = _v$50);\n _v$51 !== _p$.a && className(_el$76, _p$.a = _v$51);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0\n });\n return _el$73;\n })() : null;\n })(), null);\n createRenderEffect((_p$) => {\n var _v$6 = styles().panelCloseBtn, _v$7 = styles().panelCloseBtnIcon, _v$8 = styles().firstContainer, _v$9 = styles().row, _v$0 = styles().routerExplorerContainer, _v$1 = styles().routerExplorer, _v$10 = styles().secondContainer, _v$11 = styles().matchesContainer, _v$12 = styles().detailsHeader, _v$13 = styles().detailsContent, _v$14 = styles().detailsHeader, _v$15 = styles().routeMatchesToggle, _v$16 = currentTab() === \"routes\", _v$17 = clsx(styles().routeMatchesToggleBtn(currentTab() === \"routes\", true)), _v$18 = currentTab() === \"matches\", _v$19 = clsx(styles().routeMatchesToggleBtn(currentTab() === \"matches\", true)), _v$20 = currentTab() === \"history\", _v$21 = clsx(styles().routeMatchesToggleBtn(currentTab() === \"history\", false)), _v$22 = styles().detailsHeaderInfo, _v$23 = clsx(styles().routesContainer);\n _v$6 !== _p$.e && className(_el$12, _p$.e = _v$6);\n _v$7 !== _p$.t && setAttribute(_el$13, \"class\", _p$.t = _v$7);\n _v$8 !== _p$.a && className(_el$14, _p$.a = _v$8);\n _v$9 !== _p$.o && className(_el$15, _p$.o = _v$9);\n _v$0 !== _p$.i && className(_el$16, _p$.i = _v$0);\n _v$1 !== _p$.n && className(_el$17, _p$.n = _v$1);\n _v$10 !== _p$.s && className(_el$18, _p$.s = _v$10);\n _v$11 !== _p$.h && className(_el$19, _p$.h = _v$11);\n _v$12 !== _p$.r && className(_el$20, _p$.r = _v$12);\n _v$13 !== _p$.d && className(_el$22, _p$.d = _v$13);\n _v$14 !== _p$.l && className(_el$24, _p$.l = _v$14);\n _v$15 !== _p$.u && className(_el$25, _p$.u = _v$15);\n _v$16 !== _p$.c && (_el$26.disabled = _p$.c = _v$16);\n _v$17 !== _p$.w && className(_el$26, _p$.w = _v$17);\n _v$18 !== _p$.m && (_el$27.disabled = _p$.m = _v$18);\n _v$19 !== _p$.f && className(_el$27, _p$.f = _v$19);\n _v$20 !== _p$.y && (_el$28.disabled = _p$.y = _v$20);\n _v$21 !== _p$.g && className(_el$28, _p$.g = _v$21);\n _v$22 !== _p$.p && className(_el$29, _p$.p = _v$22);\n _v$23 !== _p$.b && className(_el$30, _p$.b = _v$23);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0,\n o: void 0,\n i: void 0,\n n: void 0,\n s: void 0,\n h: void 0,\n r: void 0,\n d: void 0,\n l: void 0,\n u: void 0,\n c: void 0,\n w: void 0,\n m: void 0,\n f: void 0,\n y: void 0,\n g: void 0,\n p: void 0,\n b: void 0\n });\n return _el$11;\n })();\n};\nfunction CopyButton({\n getValue\n}) {\n const [copied, setCopied] = createSignal(false);\n let timeoutId = null;\n const handleCopy = async () => {\n if (typeof navigator === \"undefined\" || !navigator.clipboard?.writeText) {\n console.warn(\"TanStack Router Devtools: Clipboard API unavailable\");\n return;\n }\n try {\n const value = getValue();\n await navigator.clipboard.writeText(value);\n setCopied(true);\n if (timeoutId) clearTimeout(timeoutId);\n timeoutId = setTimeout(() => setCopied(false), 2500);\n } catch (e) {\n console.error(\"TanStack Router Devtools: Failed to copy\", e);\n }\n };\n onCleanup(() => {\n if (timeoutId) clearTimeout(timeoutId);\n });\n return (() => {\n var _el$78 = _tmpl$16();\n _el$78.$$click = handleCopy;\n insert(_el$78, () => copied() ? \"✅\" : \"📋\");\n createRenderEffect(() => setAttribute(_el$78, \"title\", copied() ? \"Copied!\" : \"Copy\"));\n return _el$78;\n })();\n}\ndelegateEvents([\"click\", \"mousedown\"]);\nconst BaseTanStackRouterDevtoolsPanel$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n BaseTanStackRouterDevtoolsPanel,\n default: BaseTanStackRouterDevtoolsPanel\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n BaseTanStackRouterDevtoolsPanel as B,\n useIsMounted as a,\n useStyles$1 as b,\n BaseTanStackRouterDevtoolsPanel$1 as c,\n useLocalStorage as u\n};\n//# sourceMappingURL=BaseTanStackRouterDevtoolsPanel-KIEU40vQ.js.map\n","import { c as createUniqueId, t as template, s as setAttribute, a as createSignal, b as createEffect, d as createMemo, e as createComponent, D as DevtoolsOnCloseContext, m as mergeProps, f as spread, i as insert, g as createRenderEffect, h as className, j as Dynamic } from \"./index-DX7UIGS3.js\";\nimport { clsx } from \"clsx\";\nimport { u as useLocalStorage, a as useIsMounted, b as useStyles, B as BaseTanStackRouterDevtoolsPanel } from \"./BaseTanStackRouterDevtoolsPanel-KIEU40vQ.js\";\nvar _tmpl$$1 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg enable-background=\"new 0 0 634 633\"viewBox=\"0 0 634 633\"><g transform=translate(1)><linearGradient x1=-641.486 x2=-641.486 y1=856.648 y2=855.931 gradientTransform=\"matrix(633 0 0 -633 406377 542258)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#6bdaff></stop><stop offset=0.319 stop-color=#f9ffb5></stop><stop offset=0.706 stop-color=#ffa770></stop><stop offset=1 stop-color=#ff7373></stop></linearGradient><circle cx=316.5 cy=316.5 r=316.5 fill-rule=evenodd clip-rule=evenodd></circle><defs><filter width=454 height=396.9 x=-137.5 y=412 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=-137.5 y=412 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=89.5 cy=610.5 fill=#015064 fill-rule=evenodd stroke=#00CFE2 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=316.5 y=412 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=316.5 y=412 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=543.5 cy=610.5 fill=#015064 fill-rule=evenodd stroke=#00CFE2 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=-137.5 y=450 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=-137.5 y=450 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=89.5 cy=648.5 fill=#015064 fill-rule=evenodd stroke=#00A8B8 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=316.5 y=450 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=316.5 y=450 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=543.5 cy=648.5 fill=#015064 fill-rule=evenodd stroke=#00A8B8 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=-137.5 y=486 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=-137.5 y=486 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=89.5 cy=684.5 fill=#015064 fill-rule=evenodd stroke=#007782 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=316.5 y=486 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=316.5 y=486 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=543.5 cy=684.5 fill=#015064 fill-rule=evenodd stroke=#007782 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=176.9 height=129.3 x=272.2 y=308 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=176.9 height=129.3 x=272.2 y=308 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><g><path fill=none stroke=#000 stroke-linecap=round stroke-linejoin=bevel stroke-width=11 d=\"M436 403.2l-5 28.6m-140-90.3l-10.9 62m52.8-19.4l-4.3 27.1\"></path><linearGradient x1=-645.656 x2=-646.499 y1=854.878 y2=854.788 gradientTransform=\"matrix(-184.159 -32.4722 11.4608 -64.9973 -128419.844 34938.836)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ee2700></stop><stop offset=1 stop-color=#ff008e></stop></linearGradient><path fill-rule=evenodd d=\"M344.1 363l97.7 17.2c5.8 2.1 8.2 6.2 7.1 12.1-1 5.9-4.7 9.2-11 9.9l-106-18.7-57.5-59.2c-3.2-4.8-2.9-9.1.8-12.8 3.7-3.7 8.3-4.4 13.7-2.1l55.2 53.6z\"clip-rule=evenodd></path><path fill=#D8D8D8 fill-rule=evenodd stroke=#FFF stroke-linecap=round stroke-linejoin=bevel stroke-width=7 d=\"M428.3 384.5l.9-6.5m-33.9 1.5l.9-6.5m-34 .5l.9-6.1m-38.9-16.1l4.2-3.9m-25.2-16.1l4.2-3.9\"clip-rule=evenodd></path></g><defs><filter width=280.6 height=317.4 x=73.2 y=113.9 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=280.6 height=317.4 x=73.2 y=113.9 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><g><linearGradient x1=-646.8 x2=-646.8 y1=854.844 y2=853.844 gradientTransform=\"matrix(-100.1751 48.8587 -97.9753 -200.879 19124.773 203538.61)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#a17500></stop><stop offset=1 stop-color=#5d2100></stop></linearGradient><path fill-rule=evenodd d=\"M192.3 203c8.1 37.3 14 73.6 17.8 109.1 3.8 35.4 2.8 75.2-2.9 119.2l61.2-16.7c-15.6-59-25.2-97.9-28.6-116.6-3.4-18.7-10.8-51.8-22.2-99.6l-25.3 4.6\"clip-rule=evenodd></path><linearGradient x1=-635.467 x2=-635.467 y1=852.115 y2=851.115 gradientTransform=\"matrix(92.6873 4.8575 2.0257 -38.6535 57323.695 36176.047)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M195 183.9s-12.6-22.1-36.5-29.9c-15.9-5.2-34.4-1.5-55.5 11.1 15.9 14.3 29.5 22.6 40.7 24.9 16.8 3.6 51.3-6.1 51.3-6.1z\"clip-rule=evenodd></path><linearGradient x1=-636.573 x2=-636.573 y1=855.444 y2=854.444 gradientTransform=\"matrix(109.9945 5.7646 6.3597 -121.3507 64719.133 107659.336)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M194.9 184.5s-47.5-8.5-83.2 15.7c-23.8 16.2-34.3 49.3-31.6 99.3 30.3-27.8 52.1-48.5 65.2-61.9 19.8-20 49.6-53.1 49.6-53.1z\"clip-rule=evenodd></path><linearGradient x1=-632.145 x2=-632.145 y1=854.174 y2=853.174 gradientTransform=\"matrix(62.9558 3.2994 3.5021 -66.8246 37035.367 59284.227)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M195 183.9c-.8-21.9 6-38 20.6-48.2 14.6-10.2 29.8-15.3 45.5-15.3-6.1 21.4-14.5 35.8-25.2 43.4-10.7 7.5-24.4 14.2-40.9 20.1z\"clip-rule=evenodd></path><linearGradient x1=-638.224 x2=-638.224 y1=853.801 y2=852.801 gradientTransform=\"matrix(152.4666 7.9904 3.0934 -59.0251 94939.86 55646.855)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M194.9 184.5c31.9-30 64.1-39.7 96.7-29 32.6 10.7 50.8 30.4 54.6 59.1-35.2-5.5-60.4-9.6-75.8-12.1-15.3-2.6-40.5-8.6-75.5-18z\"clip-rule=evenodd></path><linearGradient x1=-637.723 x2=-637.723 y1=855.103 y2=854.103 gradientTransform=\"matrix(136.467 7.1519 5.2165 -99.5377 82830.875 89859.578)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M194.9 184.5c35.8-7.6 65.6-.2 89.2 22 23.6 22.2 37.7 49 42.3 80.3-39.8-9.7-68.3-23.8-85.5-42.4-17.2-18.5-32.5-38.5-46-59.9z\"clip-rule=evenodd></path><linearGradient x1=-631.79 x2=-631.79 y1=855.872 y2=854.872 gradientTransform=\"matrix(60.8683 3.19 8.7771 -167.4773 31110.818 145537.61)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M194.9 184.5c-33.6 13.8-53.6 35.7-60.1 65.6-6.5 29.9-3.6 63.1 8.7 99.6 27.4-40.3 43.2-69.6 47.4-88 4.2-18.3 5.5-44.1 4-77.2z\"clip-rule=evenodd></path><path fill=none stroke=#2F8A00 stroke-linecap=round stroke-width=8 d=\"M196.5 182.3c-14.8 21.6-25.1 41.4-30.8 59.4-5.7 18-9.4 33-11.1 45.1\"></path><path fill=none stroke=#2F8A00 stroke-linecap=round stroke-width=8 d=\"M194.8 185.7c-24.4 1.7-43.8 9-58.1 21.8-14.3 12.8-24.7 25.4-31.3 37.8m99.1-68.9c29.7-6.7 52-8.4 67-5 15 3.4 26.9 8.7 35.8 15.9m-110.8-5.9c20.3 9.9 38.2 20.5 53.9 31.9 15.7 11.4 27.4 22.1 35.1 32\"></path></g><defs><filter width=532 height=633 x=50.5 y=399 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=532 height=633 x=50.5 y=399 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><linearGradient x1=-641.104 x2=-641.278 y1=856.577 y2=856.183 gradientTransform=\"matrix(532 0 0 -633 341484.5 542657)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#fff400></stop><stop offset=1 stop-color=#3c8700></stop></linearGradient><ellipse cx=316.5 cy=715.5 fill-rule=evenodd clip-rule=evenodd rx=266 ry=316.5></ellipse><defs><filter width=288 height=283 x=391 y=-24 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=288 height=283 x=391 y=-24 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><g><g transform=\"translate(397 -24)\"><linearGradient x1=-1036.672 x2=-1036.672 y1=880.018 y2=879.018 gradientTransform=\"matrix(227 0 0 -227 235493 199764)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffdf00></stop><stop offset=1 stop-color=#ff9d00></stop></linearGradient><circle cx=168.5 cy=113.5 r=113.5 fill-rule=evenodd clip-rule=evenodd></circle><linearGradient x1=-1017.329 x2=-1018.602 y1=658.003 y2=657.998 gradientTransform=\"matrix(30 0 0 -1 30558 771)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M30 113H0\"></path><linearGradient x1=-1014.501 x2=-1015.774 y1=839.985 y2=839.935 gradientTransform=\"matrix(26.5 0 0 -5.5 26925 4696.5)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M33.5 79.5L7 74\"></path><linearGradient x1=-1016.59 x2=-1017.862 y1=852.671 y2=852.595 gradientTransform=\"matrix(29 0 0 -8 29523 6971)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M34 146l-29 8\"></path><linearGradient x1=-1011.984 x2=-1013.257 y1=863.523 y2=863.229 gradientTransform=\"matrix(24 0 0 -13 24339 11407)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M45 177l-24 13\"></path><linearGradient x1=-1006.673 x2=-1007.946 y1=869.279 y2=868.376 gradientTransform=\"matrix(20 0 0 -19 20205 16720)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M67 204l-20 19\"></path><linearGradient x1=-992.85 x2=-993.317 y1=871.258 y2=870.258 gradientTransform=\"matrix(13.8339 0 0 -22.8467 13825.796 20131.938)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M94.4 227l-13.8 22.8\"></path><linearGradient x1=-953.835 x2=-953.965 y1=871.9 y2=870.9 gradientTransform=\"matrix(7.5 0 0 -24.5 7278 21605)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M127.5 243.5L120 268\"></path><linearGradient x1=244.504 x2=244.496 y1=871.898 y2=870.898 gradientTransform=\"matrix(.5 0 0 -24.5 45.5 21614)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M167.5 252.5l.5 24.5\">`);\nfunction TanStackLogo() {\n const id = createUniqueId();\n return (() => {\n var _el$ = _tmpl$$1(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.firstChild, _el$7 = _el$5.nextSibling, _el$8 = _el$7.firstChild, _el$9 = _el$7.nextSibling, _el$0 = _el$9.nextSibling, _el$1 = _el$0.firstChild, _el$10 = _el$0.nextSibling, _el$11 = _el$10.firstChild, _el$12 = _el$10.nextSibling, _el$13 = _el$12.nextSibling, _el$14 = _el$13.firstChild, _el$15 = _el$13.nextSibling, _el$16 = _el$15.firstChild, _el$17 = _el$15.nextSibling, _el$18 = _el$17.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$18.nextSibling, _el$21 = _el$20.firstChild, _el$22 = _el$20.nextSibling, _el$23 = _el$22.nextSibling, _el$24 = _el$23.firstChild, _el$25 = _el$23.nextSibling, _el$26 = _el$25.firstChild, _el$27 = _el$25.nextSibling, _el$28 = _el$27.nextSibling, _el$29 = _el$28.firstChild, _el$30 = _el$28.nextSibling, _el$31 = _el$30.firstChild, _el$32 = _el$30.nextSibling, _el$33 = _el$32.nextSibling, _el$34 = _el$33.firstChild, _el$35 = _el$33.nextSibling, _el$36 = _el$35.firstChild, _el$37 = _el$35.nextSibling, _el$38 = _el$37.firstChild, _el$39 = _el$38.nextSibling, _el$40 = _el$39.nextSibling, _el$41 = _el$37.nextSibling, _el$42 = _el$41.firstChild, _el$43 = _el$41.nextSibling, _el$44 = _el$43.firstChild, _el$45 = _el$43.nextSibling, _el$46 = _el$45.firstChild, _el$47 = _el$46.nextSibling, _el$48 = _el$47.nextSibling, _el$49 = _el$48.nextSibling, _el$50 = _el$49.nextSibling, _el$51 = _el$50.nextSibling, _el$52 = _el$51.nextSibling, _el$53 = _el$52.nextSibling, _el$54 = _el$53.nextSibling, _el$55 = _el$54.nextSibling, _el$56 = _el$55.nextSibling, _el$57 = _el$56.nextSibling, _el$58 = _el$57.nextSibling, _el$59 = _el$58.nextSibling, _el$60 = _el$45.nextSibling, _el$61 = _el$60.firstChild, _el$62 = _el$60.nextSibling, _el$63 = _el$62.firstChild, _el$64 = _el$62.nextSibling, _el$65 = _el$64.nextSibling, _el$66 = _el$65.nextSibling, _el$67 = _el$66.firstChild, _el$68 = _el$66.nextSibling, _el$69 = _el$68.firstChild, _el$70 = _el$68.nextSibling, _el$71 = _el$70.firstChild, _el$72 = _el$71.firstChild, _el$73 = _el$72.nextSibling, _el$74 = _el$73.nextSibling, _el$75 = _el$74.nextSibling, _el$76 = _el$75.nextSibling, _el$77 = _el$76.nextSibling, _el$78 = _el$77.nextSibling, _el$79 = _el$78.nextSibling, _el$80 = _el$79.nextSibling, _el$81 = _el$80.nextSibling, _el$82 = _el$81.nextSibling, _el$83 = _el$82.nextSibling, _el$84 = _el$83.nextSibling, _el$85 = _el$84.nextSibling, _el$86 = _el$85.nextSibling, _el$87 = _el$86.nextSibling, _el$88 = _el$87.nextSibling, _el$89 = _el$88.nextSibling;\n setAttribute(_el$3, \"id\", `a-${id}`);\n setAttribute(_el$4, \"fill\", `url(#a-${id})`);\n setAttribute(_el$6, \"id\", `b-${id}`);\n setAttribute(_el$7, \"id\", `c-${id}`);\n setAttribute(_el$8, \"filter\", `url(#b-${id})`);\n setAttribute(_el$9, \"mask\", `url(#c-${id})`);\n setAttribute(_el$1, \"id\", `d-${id}`);\n setAttribute(_el$10, \"id\", `e-${id}`);\n setAttribute(_el$11, \"filter\", `url(#d-${id})`);\n setAttribute(_el$12, \"mask\", `url(#e-${id})`);\n setAttribute(_el$14, \"id\", `f-${id}`);\n setAttribute(_el$15, \"id\", `g-${id}`);\n setAttribute(_el$16, \"filter\", `url(#f-${id})`);\n setAttribute(_el$17, \"mask\", `url(#g-${id})`);\n setAttribute(_el$19, \"id\", `h-${id}`);\n setAttribute(_el$20, \"id\", `i-${id}`);\n setAttribute(_el$21, \"filter\", `url(#h-${id})`);\n setAttribute(_el$22, \"mask\", `url(#i-${id})`);\n setAttribute(_el$24, \"id\", `j-${id}`);\n setAttribute(_el$25, \"id\", `k-${id}`);\n setAttribute(_el$26, \"filter\", `url(#j-${id})`);\n setAttribute(_el$27, \"mask\", `url(#k-${id})`);\n setAttribute(_el$29, \"id\", `l-${id}`);\n setAttribute(_el$30, \"id\", `m-${id}`);\n setAttribute(_el$31, \"filter\", `url(#l-${id})`);\n setAttribute(_el$32, \"mask\", `url(#m-${id})`);\n setAttribute(_el$34, \"id\", `n-${id}`);\n setAttribute(_el$35, \"id\", `o-${id}`);\n setAttribute(_el$36, \"filter\", `url(#n-${id})`);\n setAttribute(_el$37, \"mask\", `url(#o-${id})`);\n setAttribute(_el$39, \"id\", `p-${id}`);\n setAttribute(_el$40, \"fill\", `url(#p-${id})`);\n setAttribute(_el$42, \"id\", `q-${id}`);\n setAttribute(_el$43, \"id\", `r-${id}`);\n setAttribute(_el$44, \"filter\", `url(#q-${id})`);\n setAttribute(_el$45, \"mask\", `url(#r-${id})`);\n setAttribute(_el$46, \"id\", `s-${id}`);\n setAttribute(_el$47, \"fill\", `url(#s-${id})`);\n setAttribute(_el$48, \"id\", `t-${id}`);\n setAttribute(_el$49, \"fill\", `url(#t-${id})`);\n setAttribute(_el$50, \"id\", `u-${id}`);\n setAttribute(_el$51, \"fill\", `url(#u-${id})`);\n setAttribute(_el$52, \"id\", `v-${id}`);\n setAttribute(_el$53, \"fill\", `url(#v-${id})`);\n setAttribute(_el$54, \"id\", `w-${id}`);\n setAttribute(_el$55, \"fill\", `url(#w-${id})`);\n setAttribute(_el$56, \"id\", `x-${id}`);\n setAttribute(_el$57, \"fill\", `url(#x-${id})`);\n setAttribute(_el$58, \"id\", `y-${id}`);\n setAttribute(_el$59, \"fill\", `url(#y-${id})`);\n setAttribute(_el$61, \"id\", `z-${id}`);\n setAttribute(_el$62, \"id\", `A-${id}`);\n setAttribute(_el$63, \"filter\", `url(#z-${id})`);\n setAttribute(_el$64, \"id\", `B-${id}`);\n setAttribute(_el$65, \"fill\", `url(#B-${id})`);\n setAttribute(_el$65, \"mask\", `url(#A-${id})`);\n setAttribute(_el$67, \"id\", `C-${id}`);\n setAttribute(_el$68, \"id\", `D-${id}`);\n setAttribute(_el$69, \"filter\", `url(#C-${id})`);\n setAttribute(_el$70, \"mask\", `url(#D-${id})`);\n setAttribute(_el$72, \"id\", `E-${id}`);\n setAttribute(_el$73, \"fill\", `url(#E-${id})`);\n setAttribute(_el$74, \"id\", `F-${id}`);\n setAttribute(_el$75, \"stroke\", `url(#F-${id})`);\n setAttribute(_el$76, \"id\", `G-${id}`);\n setAttribute(_el$77, \"stroke\", `url(#G-${id})`);\n setAttribute(_el$78, \"id\", `H-${id}`);\n setAttribute(_el$79, \"stroke\", `url(#H-${id})`);\n setAttribute(_el$80, \"id\", `I-${id}`);\n setAttribute(_el$81, \"stroke\", `url(#I-${id})`);\n setAttribute(_el$82, \"id\", `J-${id}`);\n setAttribute(_el$83, \"stroke\", `url(#J-${id})`);\n setAttribute(_el$84, \"id\", `K-${id}`);\n setAttribute(_el$85, \"stroke\", `url(#K-${id})`);\n setAttribute(_el$86, \"id\", `L-${id}`);\n setAttribute(_el$87, \"stroke\", `url(#L-${id})`);\n setAttribute(_el$88, \"id\", `M-${id}`);\n setAttribute(_el$89, \"stroke\", `url(#M-${id})`);\n return _el$;\n })();\n}\nvar _tmpl$ = /* @__PURE__ */ template(`<button type=button><div><div></div><div></div></div><div>-</div><div>TanStack Router`);\nfunction FloatingTanStackRouterDevtools({\n initialIsOpen,\n panelProps = {},\n closeButtonProps = {},\n toggleButtonProps = {},\n position = \"bottom-left\",\n containerElement: Container = \"footer\",\n router,\n routerState,\n shadowDOMTarget\n}) {\n const [rootEl, setRootEl] = createSignal();\n let panelRef = void 0;\n const [isOpen, setIsOpen] = useLocalStorage(\"tanstackRouterDevtoolsOpen\", initialIsOpen);\n const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage(\"tanstackRouterDevtoolsHeight\", null);\n const [isResolvedOpen, setIsResolvedOpen] = createSignal(false);\n const [isResizing, setIsResizing] = createSignal(false);\n const isMounted = useIsMounted();\n const styles = useStyles();\n const handleDragStart = (panelElement, startEvent) => {\n if (startEvent.button !== 0) return;\n setIsResizing(true);\n const dragInfo = {\n originalHeight: panelElement?.getBoundingClientRect().height ?? 0,\n pageY: startEvent.pageY\n };\n const run = (moveEvent) => {\n const delta = dragInfo.pageY - moveEvent.pageY;\n const newHeight = dragInfo.originalHeight + delta;\n setDevtoolsHeight(newHeight);\n if (newHeight < 70) {\n setIsOpen(false);\n } else {\n setIsOpen(true);\n }\n };\n const unsub = () => {\n setIsResizing(false);\n document.removeEventListener(\"mousemove\", run);\n document.removeEventListener(\"mouseUp\", unsub);\n };\n document.addEventListener(\"mousemove\", run);\n document.addEventListener(\"mouseup\", unsub);\n };\n isOpen() ?? false;\n createEffect(() => {\n setIsResolvedOpen(isOpen() ?? false);\n });\n createEffect(() => {\n if (isResolvedOpen()) {\n const previousValue = rootEl()?.parentElement?.style.paddingBottom;\n const run = () => {\n const containerHeight = panelRef.getBoundingClientRect().height;\n if (rootEl()?.parentElement) {\n setRootEl((prev) => {\n if (prev?.parentElement) {\n prev.parentElement.style.paddingBottom = `${containerHeight}px`;\n }\n return prev;\n });\n }\n };\n run();\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"resize\", run);\n return () => {\n window.removeEventListener(\"resize\", run);\n if (rootEl()?.parentElement && typeof previousValue === \"string\") {\n setRootEl((prev) => {\n prev.parentElement.style.paddingBottom = previousValue;\n return prev;\n });\n }\n };\n }\n } else {\n if (rootEl()?.parentElement) {\n setRootEl((prev) => {\n if (prev?.parentElement) {\n prev.parentElement.removeAttribute(\"style\");\n }\n return prev;\n });\n }\n }\n return;\n });\n createEffect(() => {\n if (rootEl()) {\n const el = rootEl();\n const fontSize = getComputedStyle(el).fontSize;\n el?.style.setProperty(\"--tsrd-font-size\", fontSize);\n }\n });\n const {\n style: panelStyle = {},\n ...otherPanelProps\n } = panelProps;\n const {\n style: closeButtonStyle = {},\n onClick: onCloseClick,\n ...otherCloseButtonProps\n } = closeButtonProps;\n const {\n onClick: onToggleClick,\n class: toggleButtonClassName,\n ...otherToggleButtonProps\n } = toggleButtonProps;\n if (!isMounted()) return null;\n const resolvedHeight = createMemo(() => devtoolsHeight() ?? 500);\n const basePanelClass = createMemo(() => {\n return clsx(styles().devtoolsPanelContainer, styles().devtoolsPanelContainerVisibility(!!isOpen()), styles().devtoolsPanelContainerResizing(isResizing), styles().devtoolsPanelContainerAnimation(isResolvedOpen(), resolvedHeight() + 16));\n });\n const basePanelStyle = createMemo(() => {\n return {\n height: `${resolvedHeight()}px`,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n ...panelStyle || {}\n };\n });\n const buttonStyle = createMemo(() => {\n return clsx(styles().mainCloseBtn, styles().mainCloseBtnPosition(position), styles().mainCloseBtnAnimation(!!isOpen()), toggleButtonClassName);\n });\n return createComponent(Dynamic, {\n component: Container,\n ref: setRootEl,\n \"class\": \"TanStackRouterDevtools\",\n get children() {\n return [createComponent(DevtoolsOnCloseContext.Provider, {\n value: {\n onCloseClick: onCloseClick ?? (() => {\n })\n },\n get children() {\n return createComponent(BaseTanStackRouterDevtoolsPanel, mergeProps({\n ref(r$) {\n var _ref$ = panelRef;\n typeof _ref$ === \"function\" ? _ref$(r$) : panelRef = r$;\n }\n }, otherPanelProps, {\n router,\n routerState,\n className: basePanelClass,\n style: basePanelStyle,\n get isOpen() {\n return isResolvedOpen();\n },\n setIsOpen,\n handleDragStart: (e) => handleDragStart(panelRef, e),\n shadowDOMTarget\n }));\n }\n }), (() => {\n var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling, _el$6 = _el$5.nextSibling;\n spread(_el$, mergeProps(otherToggleButtonProps, {\n \"aria-label\": \"Open TanStack Router Devtools\",\n \"onClick\": (e) => {\n setIsOpen(true);\n onToggleClick && onToggleClick(e);\n },\n get [\"class\"]() {\n return buttonStyle();\n }\n }), false, true);\n insert(_el$3, createComponent(TanStackLogo, {}));\n insert(_el$4, createComponent(TanStackLogo, {}));\n createRenderEffect((_p$) => {\n var _v$ = styles().mainCloseBtnIconContainer, _v$2 = styles().mainCloseBtnIconOuter, _v$3 = styles().mainCloseBtnIconInner, _v$4 = styles().mainCloseBtnDivider, _v$5 = styles().routerLogoCloseButton;\n _v$ !== _p$.e && className(_el$2, _p$.e = _v$);\n _v$2 !== _p$.t && className(_el$3, _p$.t = _v$2);\n _v$3 !== _p$.a && className(_el$4, _p$.a = _v$3);\n _v$4 !== _p$.o && className(_el$5, _p$.o = _v$4);\n _v$5 !== _p$.i && className(_el$6, _p$.i = _v$5);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0,\n o: void 0,\n i: void 0\n });\n return _el$;\n })()];\n }\n });\n}\nexport {\n FloatingTanStackRouterDevtools,\n FloatingTanStackRouterDevtools as default\n};\n//# sourceMappingURL=FloatingTanStackRouterDevtools-kcMbkHXI.js.map\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8],"mappings":"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"}
1
+ {"version":3,"file":"vendor-tanstack-D0jMvSWD.js","names":["#mutations","#scopes","#mutationId","#queries","#queryCache","#mutationCache","#defaultOptions","#queryDefaults","#mutationDefaults","#mountCount","#unsubscribeFocus","#unsubscribeOnline","goober.css","_tmpl$$1","_tmpl$","useStyles"],"sources":["../../node_modules/.pnpm/@tanstack+query-core@5.100.8/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.100.8/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.100.8/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../node_modules/.pnpm/@tanstack+router-devtools-core@1.133.20_@tanstack+router-core@1.157.18_@types+node@24.1_949abfe5dd974be2685d1072ab0c1e2a/node_modules/@tanstack/router-devtools-core/dist/index-DX7UIGS3.js","../../node_modules/.pnpm/@tanstack+router-core@1.157.18/node_modules/@tanstack/router-core/dist/esm/new-process-route-tree.js","../../node_modules/.pnpm/@tanstack+router-core@1.157.18/node_modules/@tanstack/router-core/dist/esm/path.js","../../node_modules/.pnpm/@tanstack+router-core@1.157.18/node_modules/@tanstack/router-core/dist/esm/root.js","../../node_modules/.pnpm/@tanstack+router-devtools-core@1.133.20_@tanstack+router-core@1.157.18_@types+node@24.1_949abfe5dd974be2685d1072ab0c1e2a/node_modules/@tanstack/router-devtools-core/dist/BaseTanStackRouterDevtoolsPanel-KIEU40vQ.js","../../node_modules/.pnpm/@tanstack+router-devtools-core@1.133.20_@tanstack+router-core@1.157.18_@types+node@24.1_949abfe5dd974be2685d1072ab0c1e2a/node_modules/@tanstack/router-devtools-core/dist/FloatingTanStackRouterDevtools-kcMbkHXI.js"],"sourcesContent":["// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n client,\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options._type = \"infinite\";\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options._type = \"infinite\";\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","const sharedConfig = {\n context: void 0,\n registry: void 0,\n effects: void 0,\n done: false,\n getContextId() {\n return getContextId(this.context.count);\n },\n getNextContextId() {\n return getContextId(this.context.count++);\n }\n};\nfunction getContextId(count) {\n const num = String(count), len = num.length - 1;\n return sharedConfig.context.id + (len ? String.fromCharCode(96 + len) : \"\") + num;\n}\nfunction setHydrateContext(context) {\n sharedConfig.context = context;\n}\nconst IS_DEV = false;\nconst equalFn = (a, b) => a === b;\nconst $PROXY = Symbol(\"solid-proxy\");\nconst SUPPORTS_PROXY = typeof Proxy === \"function\";\nconst $TRACK = Symbol(\"solid-track\");\nconst signalOptions = {\n equals: equalFn\n};\nlet runEffects = runQueue;\nconst STALE = 1;\nconst PENDING = 2;\nconst UNOWNED = {\n owned: null,\n cleanups: null,\n context: null,\n owner: null\n};\nconst NO_INIT = {};\nvar Owner = null;\nlet Transition = null;\nlet ExternalSourceConfig = null;\nlet Listener = null;\nlet Updates = null;\nlet Effects = null;\nlet ExecCount = 0;\nfunction createRoot(fn, detachedOwner) {\n const listener = Listener, owner = Owner, unowned = fn.length === 0, current = detachedOwner === void 0 ? owner : detachedOwner, root = unowned ? UNOWNED : {\n owned: null,\n cleanups: null,\n context: current ? current.context : null,\n owner: current\n }, updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root)));\n Owner = root;\n Listener = null;\n try {\n return runUpdates(updateFn, true);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n}\nfunction createSignal(value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const s = {\n value,\n observers: null,\n observerSlots: null,\n comparator: options.equals || void 0\n };\n const setter = (value2) => {\n if (typeof value2 === \"function\") {\n value2 = value2(s.value);\n }\n return writeSignal(s, value2);\n };\n return [readSignal.bind(s), setter];\n}\nfunction createComputed(fn, value, options) {\n const c = createComputation(fn, value, true, STALE);\n updateComputation(c);\n}\nfunction createRenderEffect(fn, value, options) {\n const c = createComputation(fn, value, false, STALE);\n updateComputation(c);\n}\nfunction createEffect(fn, value, options) {\n runEffects = runUserEffects;\n const c = createComputation(fn, value, false, STALE);\n if (!options || !options.render) c.user = true;\n Effects ? Effects.push(c) : updateComputation(c);\n}\nfunction createMemo(fn, value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const c = createComputation(fn, value, true, 0);\n c.observers = null;\n c.observerSlots = null;\n c.comparator = options.equals || void 0;\n updateComputation(c);\n return readSignal.bind(c);\n}\nfunction isPromise(v) {\n return v && typeof v === \"object\" && \"then\" in v;\n}\nfunction createResource(pSource, pFetcher, pOptions) {\n let source;\n let fetcher;\n let options;\n {\n source = true;\n fetcher = pSource;\n options = {};\n }\n let pr = null, initP = NO_INIT, id = null, scheduled = false, resolved = \"initialValue\" in options, dynamic = typeof source === \"function\" && createMemo(source);\n const contexts = /* @__PURE__ */ new Set(), [value, setValue] = (options.storage || createSignal)(options.initialValue), [error, setError] = createSignal(void 0), [track, trigger] = createSignal(void 0, {\n equals: false\n }), [state, setState] = createSignal(resolved ? \"ready\" : \"unresolved\");\n if (sharedConfig.context) {\n id = sharedConfig.getNextContextId();\n if (options.ssrLoadFrom === \"initial\") initP = options.initialValue;\n else if (sharedConfig.load && sharedConfig.has(id)) initP = sharedConfig.load(id);\n }\n function loadEnd(p, v, error2, key) {\n if (pr === p) {\n pr = null;\n key !== void 0 && (resolved = true);\n if ((p === initP || v === initP) && options.onHydrated)\n queueMicrotask(\n () => options.onHydrated(key, {\n value: v\n })\n );\n initP = NO_INIT;\n completeLoad(v, error2);\n }\n return v;\n }\n function completeLoad(v, err) {\n runUpdates(() => {\n if (err === void 0) setValue(() => v);\n setState(err !== void 0 ? \"errored\" : resolved ? \"ready\" : \"unresolved\");\n setError(err);\n for (const c of contexts.keys()) c.decrement();\n contexts.clear();\n }, false);\n }\n function read() {\n const c = SuspenseContext, v = value(), err = error();\n if (err !== void 0 && !pr) throw err;\n if (Listener && !Listener.user && c) ;\n return v;\n }\n function load(refetching = true) {\n if (refetching !== false && scheduled) return;\n scheduled = false;\n const lookup = dynamic ? dynamic() : source;\n if (lookup == null || lookup === false) {\n loadEnd(pr, untrack(value));\n return;\n }\n const p = initP !== NO_INIT ? initP : untrack(\n () => fetcher(lookup, {\n value: value(),\n refetching\n })\n );\n if (!isPromise(p)) {\n loadEnd(pr, p, void 0, lookup);\n return p;\n }\n pr = p;\n if (\"value\" in p) {\n if (p.status === \"success\") loadEnd(pr, p.value, void 0, lookup);\n else loadEnd(pr, void 0, castError(p.value), lookup);\n return p;\n }\n scheduled = true;\n queueMicrotask(() => scheduled = false);\n runUpdates(() => {\n setState(resolved ? \"refreshing\" : \"pending\");\n trigger();\n }, false);\n return p.then(\n (v) => loadEnd(p, v, void 0, lookup),\n (e) => loadEnd(p, void 0, castError(e), lookup)\n );\n }\n Object.defineProperties(read, {\n state: {\n get: () => state()\n },\n error: {\n get: () => error()\n },\n loading: {\n get() {\n const s = state();\n return s === \"pending\" || s === \"refreshing\";\n }\n },\n latest: {\n get() {\n if (!resolved) return read();\n const err = error();\n if (err && !pr) throw err;\n return value();\n }\n }\n });\n if (dynamic) createComputed(() => load(false));\n else load(false);\n return [\n read,\n {\n refetch: load,\n mutate: setValue\n }\n ];\n}\nfunction untrack(fn) {\n if (Listener === null) return fn();\n const listener = Listener;\n Listener = null;\n try {\n if (ExternalSourceConfig) ;\n return fn();\n } finally {\n Listener = listener;\n }\n}\nfunction onCleanup(fn) {\n if (Owner === null) ;\n else if (Owner.cleanups === null) Owner.cleanups = [fn];\n else Owner.cleanups.push(fn);\n return fn;\n}\nconst [transPending, setTransPending] = /* @__PURE__ */ createSignal(false);\nfunction createContext(defaultValue, options) {\n const id = Symbol(\"context\");\n return {\n id,\n Provider: createProvider(id),\n defaultValue\n };\n}\nfunction useContext(context) {\n let value;\n return Owner && Owner.context && (value = Owner.context[context.id]) !== void 0 ? value : context.defaultValue;\n}\nfunction children(fn) {\n const children2 = createMemo(fn);\n const memo = createMemo(() => resolveChildren(children2()));\n memo.toArray = () => {\n const c = memo();\n return Array.isArray(c) ? c : c != null ? [c] : [];\n };\n return memo;\n}\nlet SuspenseContext;\nfunction readSignal() {\n if (this.sources && this.state) {\n if (this.state === STALE) updateComputation(this);\n else {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(this), false);\n Updates = updates;\n }\n }\n if (Listener) {\n const sSlot = this.observers ? this.observers.length : 0;\n if (!Listener.sources) {\n Listener.sources = [this];\n Listener.sourceSlots = [sSlot];\n } else {\n Listener.sources.push(this);\n Listener.sourceSlots.push(sSlot);\n }\n if (!this.observers) {\n this.observers = [Listener];\n this.observerSlots = [Listener.sources.length - 1];\n } else {\n this.observers.push(Listener);\n this.observerSlots.push(Listener.sources.length - 1);\n }\n }\n return this.value;\n}\nfunction writeSignal(node, value, isComp) {\n let current = node.value;\n if (!node.comparator || !node.comparator(current, value)) {\n node.value = value;\n if (node.observers && node.observers.length) {\n runUpdates(() => {\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n const TransitionRunning = Transition && Transition.running;\n if (TransitionRunning && Transition.disposed.has(o)) ;\n if (TransitionRunning ? !o.tState : !o.state) {\n if (o.pure) Updates.push(o);\n else Effects.push(o);\n if (o.observers) markDownstream(o);\n }\n if (!TransitionRunning) o.state = STALE;\n }\n if (Updates.length > 1e6) {\n Updates = [];\n if (IS_DEV) ;\n throw new Error();\n }\n }, false);\n }\n }\n return value;\n}\nfunction updateComputation(node) {\n if (!node.fn) return;\n cleanNode(node);\n const time = ExecCount;\n runComputation(\n node,\n node.value,\n time\n );\n}\nfunction runComputation(node, value, time) {\n let nextValue;\n const owner = Owner, listener = Listener;\n Listener = Owner = node;\n try {\n nextValue = node.fn(value);\n } catch (err) {\n if (node.pure) {\n {\n node.state = STALE;\n node.owned && node.owned.forEach(cleanNode);\n node.owned = null;\n }\n }\n node.updatedAt = time + 1;\n return handleError(err);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n if (!node.updatedAt || node.updatedAt <= time) {\n if (node.updatedAt != null && \"observers\" in node) {\n writeSignal(node, nextValue);\n } else node.value = nextValue;\n node.updatedAt = time;\n }\n}\nfunction createComputation(fn, init, pure, state = STALE, options) {\n const c = {\n fn,\n state,\n updatedAt: null,\n owned: null,\n sources: null,\n sourceSlots: null,\n cleanups: null,\n value: init,\n owner: Owner,\n context: Owner ? Owner.context : null,\n pure\n };\n if (Owner === null) ;\n else if (Owner !== UNOWNED) {\n {\n if (!Owner.owned) Owner.owned = [c];\n else Owner.owned.push(c);\n }\n }\n return c;\n}\nfunction runTop(node) {\n if (node.state === 0) return;\n if (node.state === PENDING) return lookUpstream(node);\n if (node.suspense && untrack(node.suspense.inFallback)) return node.suspense.effects.push(node);\n const ancestors = [node];\n while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) {\n if (node.state) ancestors.push(node);\n }\n for (let i = ancestors.length - 1; i >= 0; i--) {\n node = ancestors[i];\n if (node.state === STALE) {\n updateComputation(node);\n } else if (node.state === PENDING) {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(node, ancestors[0]), false);\n Updates = updates;\n }\n }\n}\nfunction runUpdates(fn, init) {\n if (Updates) return fn();\n let wait = false;\n if (!init) Updates = [];\n if (Effects) wait = true;\n else Effects = [];\n ExecCount++;\n try {\n const res = fn();\n completeUpdates(wait);\n return res;\n } catch (err) {\n if (!wait) Effects = null;\n Updates = null;\n handleError(err);\n }\n}\nfunction completeUpdates(wait) {\n if (Updates) {\n runQueue(Updates);\n Updates = null;\n }\n if (wait) return;\n const e = Effects;\n Effects = null;\n if (e.length) runUpdates(() => runEffects(e), false);\n}\nfunction runQueue(queue) {\n for (let i = 0; i < queue.length; i++) runTop(queue[i]);\n}\nfunction runUserEffects(queue) {\n let i, userLength = 0;\n for (i = 0; i < queue.length; i++) {\n const e = queue[i];\n if (!e.user) runTop(e);\n else queue[userLength++] = e;\n }\n if (sharedConfig.context) {\n if (sharedConfig.count) {\n sharedConfig.effects || (sharedConfig.effects = []);\n sharedConfig.effects.push(...queue.slice(0, userLength));\n return;\n }\n setHydrateContext();\n }\n if (sharedConfig.effects && (sharedConfig.done || !sharedConfig.count)) {\n queue = [...sharedConfig.effects, ...queue];\n userLength += sharedConfig.effects.length;\n delete sharedConfig.effects;\n }\n for (i = 0; i < userLength; i++) runTop(queue[i]);\n}\nfunction lookUpstream(node, ignore) {\n node.state = 0;\n for (let i = 0; i < node.sources.length; i += 1) {\n const source = node.sources[i];\n if (source.sources) {\n const state = source.state;\n if (state === STALE) {\n if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount))\n runTop(source);\n } else if (state === PENDING) lookUpstream(source, ignore);\n }\n }\n}\nfunction markDownstream(node) {\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n if (!o.state) {\n o.state = PENDING;\n if (o.pure) Updates.push(o);\n else Effects.push(o);\n o.observers && markDownstream(o);\n }\n }\n}\nfunction cleanNode(node) {\n let i;\n if (node.sources) {\n while (node.sources.length) {\n const source = node.sources.pop(), index = node.sourceSlots.pop(), obs = source.observers;\n if (obs && obs.length) {\n const n = obs.pop(), s = source.observerSlots.pop();\n if (index < obs.length) {\n n.sourceSlots[s] = index;\n obs[index] = n;\n source.observerSlots[index] = s;\n }\n }\n }\n }\n if (node.tOwned) {\n for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);\n delete node.tOwned;\n }\n if (node.owned) {\n for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);\n node.owned = null;\n }\n if (node.cleanups) {\n for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();\n node.cleanups = null;\n }\n node.state = 0;\n}\nfunction castError(err) {\n if (err instanceof Error) return err;\n return new Error(typeof err === \"string\" ? err : \"Unknown error\", {\n cause: err\n });\n}\nfunction handleError(err, owner = Owner) {\n const error = castError(err);\n throw error;\n}\nfunction resolveChildren(children2) {\n if (typeof children2 === \"function\" && !children2.length) return resolveChildren(children2());\n if (Array.isArray(children2)) {\n const results = [];\n for (let i = 0; i < children2.length; i++) {\n const result = resolveChildren(children2[i]);\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results;\n }\n return children2;\n}\nfunction createProvider(id, options) {\n return function provider(props) {\n let res;\n createRenderEffect(\n () => res = untrack(() => {\n Owner.context = {\n ...Owner.context,\n [id]: props.value\n };\n return children(() => props.children);\n }),\n void 0\n );\n return res;\n };\n}\nconst FALLBACK = Symbol(\"fallback\");\nfunction dispose(d) {\n for (let i = 0; i < d.length; i++) d[i]();\n}\nfunction mapArray(list, mapFn, options = {}) {\n let items = [], mapped = [], disposers = [], len = 0, indexes = mapFn.length > 1 ? [] : null;\n onCleanup(() => dispose(disposers));\n return () => {\n let newItems = list() || [], newLen = newItems.length, i, j;\n newItems[$TRACK];\n return untrack(() => {\n let newIndices, newIndicesNext, temp, tempdisposers, tempIndexes, start, end, newEnd, item;\n if (newLen === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n indexes && (indexes = []);\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot((disposer) => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n } else if (len === 0) {\n mapped = new Array(newLen);\n for (j = 0; j < newLen; j++) {\n items[j] = newItems[j];\n mapped[j] = createRoot(mapper);\n }\n len = newLen;\n } else {\n temp = new Array(newLen);\n tempdisposers = new Array(newLen);\n indexes && (tempIndexes = new Array(newLen));\n for (start = 0, end = Math.min(len, newLen); start < end && items[start] === newItems[start]; start++) ;\n for (end = len - 1, newEnd = newLen - 1; end >= start && newEnd >= start && items[end] === newItems[newEnd]; end--, newEnd--) {\n temp[newEnd] = mapped[end];\n tempdisposers[newEnd] = disposers[end];\n indexes && (tempIndexes[newEnd] = indexes[end]);\n }\n newIndices = /* @__PURE__ */ new Map();\n newIndicesNext = new Array(newEnd + 1);\n for (j = newEnd; j >= start; j--) {\n item = newItems[j];\n i = newIndices.get(item);\n newIndicesNext[j] = i === void 0 ? -1 : i;\n newIndices.set(item, j);\n }\n for (i = start; i <= end; i++) {\n item = items[i];\n j = newIndices.get(item);\n if (j !== void 0 && j !== -1) {\n temp[j] = mapped[i];\n tempdisposers[j] = disposers[i];\n indexes && (tempIndexes[j] = indexes[i]);\n j = newIndicesNext[j];\n newIndices.set(item, j);\n } else disposers[i]();\n }\n for (j = start; j < newLen; j++) {\n if (j in temp) {\n mapped[j] = temp[j];\n disposers[j] = tempdisposers[j];\n if (indexes) {\n indexes[j] = tempIndexes[j];\n indexes[j](j);\n }\n } else mapped[j] = createRoot(mapper);\n }\n mapped = mapped.slice(0, len = newLen);\n items = newItems.slice(0);\n }\n return mapped;\n });\n function mapper(disposer) {\n disposers[j] = disposer;\n if (indexes) {\n const [s, set] = createSignal(j);\n indexes[j] = set;\n return mapFn(newItems[j], s);\n }\n return mapFn(newItems[j]);\n }\n };\n}\nfunction createComponent(Comp, props) {\n return untrack(() => Comp(props || {}));\n}\nfunction trueFn() {\n return true;\n}\nconst propTraps = {\n get(_, property, receiver) {\n if (property === $PROXY) return receiver;\n return _.get(property);\n },\n has(_, property) {\n if (property === $PROXY) return true;\n return _.has(property);\n },\n set: trueFn,\n deleteProperty: trueFn,\n getOwnPropertyDescriptor(_, property) {\n return {\n configurable: true,\n enumerable: true,\n get() {\n return _.get(property);\n },\n set: trueFn,\n deleteProperty: trueFn\n };\n },\n ownKeys(_) {\n return _.keys();\n }\n};\nfunction resolveSource(s) {\n return !(s = typeof s === \"function\" ? s() : s) ? {} : s;\n}\nfunction resolveSources() {\n for (let i = 0, length = this.length; i < length; ++i) {\n const v = this[i]();\n if (v !== void 0) return v;\n }\n}\nfunction mergeProps(...sources) {\n let proxy = false;\n for (let i = 0; i < sources.length; i++) {\n const s = sources[i];\n proxy = proxy || !!s && $PROXY in s;\n sources[i] = typeof s === \"function\" ? (proxy = true, createMemo(s)) : s;\n }\n if (SUPPORTS_PROXY && proxy) {\n return new Proxy(\n {\n get(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n const v = resolveSource(sources[i])[property];\n if (v !== void 0) return v;\n }\n },\n has(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n if (property in resolveSource(sources[i])) return true;\n }\n return false;\n },\n keys() {\n const keys = [];\n for (let i = 0; i < sources.length; i++)\n keys.push(...Object.keys(resolveSource(sources[i])));\n return [...new Set(keys)];\n }\n },\n propTraps\n );\n }\n const sourcesMap = {};\n const defined = /* @__PURE__ */ Object.create(null);\n for (let i = sources.length - 1; i >= 0; i--) {\n const source = sources[i];\n if (!source) continue;\n const sourceKeys = Object.getOwnPropertyNames(source);\n for (let i2 = sourceKeys.length - 1; i2 >= 0; i2--) {\n const key = sourceKeys[i2];\n if (key === \"__proto__\" || key === \"constructor\") continue;\n const desc = Object.getOwnPropertyDescriptor(source, key);\n if (!defined[key]) {\n defined[key] = desc.get ? {\n enumerable: true,\n configurable: true,\n get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])\n } : desc.value !== void 0 ? desc : void 0;\n } else {\n const sources2 = sourcesMap[key];\n if (sources2) {\n if (desc.get) sources2.push(desc.get.bind(source));\n else if (desc.value !== void 0) sources2.push(() => desc.value);\n }\n }\n }\n }\n const target = {};\n const definedKeys = Object.keys(defined);\n for (let i = definedKeys.length - 1; i >= 0; i--) {\n const key = definedKeys[i], desc = defined[key];\n if (desc && desc.get) Object.defineProperty(target, key, desc);\n else target[key] = desc ? desc.value : void 0;\n }\n return target;\n}\nfunction splitProps(props, ...keys) {\n if (SUPPORTS_PROXY && $PROXY in props) {\n const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);\n const res = keys.map((k) => {\n return new Proxy(\n {\n get(property) {\n return k.includes(property) ? props[property] : void 0;\n },\n has(property) {\n return k.includes(property) && property in props;\n },\n keys() {\n return k.filter((property) => property in props);\n }\n },\n propTraps\n );\n });\n res.push(\n new Proxy(\n {\n get(property) {\n return blocked.has(property) ? void 0 : props[property];\n },\n has(property) {\n return blocked.has(property) ? false : property in props;\n },\n keys() {\n return Object.keys(props).filter((k) => !blocked.has(k));\n }\n },\n propTraps\n )\n );\n return res;\n }\n const otherObject = {};\n const objects = keys.map(() => ({}));\n for (const propName of Object.getOwnPropertyNames(props)) {\n const desc = Object.getOwnPropertyDescriptor(props, propName);\n const isDefaultDesc = !desc.get && !desc.set && desc.enumerable && desc.writable && desc.configurable;\n let blocked = false;\n let objectIndex = 0;\n for (const k of keys) {\n if (k.includes(propName)) {\n blocked = true;\n isDefaultDesc ? objects[objectIndex][propName] = desc.value : Object.defineProperty(objects[objectIndex], propName, desc);\n }\n ++objectIndex;\n }\n if (!blocked) {\n isDefaultDesc ? otherObject[propName] = desc.value : Object.defineProperty(otherObject, propName, desc);\n }\n }\n return [...objects, otherObject];\n}\nfunction lazy(fn) {\n let comp;\n let p;\n const wrap = (props) => {\n const ctx = sharedConfig.context;\n if (ctx) {\n const [s, set] = createSignal();\n sharedConfig.count || (sharedConfig.count = 0);\n sharedConfig.count++;\n (p || (p = fn())).then((mod) => {\n !sharedConfig.done && setHydrateContext(ctx);\n sharedConfig.count--;\n set(() => mod.default);\n setHydrateContext();\n });\n comp = s;\n } else if (!comp) {\n const [s] = createResource(() => (p || (p = fn())).then((mod) => mod.default));\n comp = s;\n }\n let Comp;\n return createMemo(\n () => (Comp = comp()) ? untrack(() => {\n if (IS_DEV) ;\n if (!ctx || sharedConfig.done) return Comp(props);\n const c = sharedConfig.context;\n setHydrateContext(ctx);\n const r = Comp(props);\n setHydrateContext(c);\n return r;\n }) : \"\"\n );\n };\n wrap.preload = () => p || ((p = fn()).then((mod) => comp = () => mod.default), p);\n return wrap;\n}\nlet counter = 0;\nfunction createUniqueId() {\n const ctx = sharedConfig.context;\n return ctx ? sharedConfig.getNextContextId() : `cl-${counter++}`;\n}\nconst narrowedError = (name) => `Stale read from <${name}>.`;\nfunction For(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(mapArray(() => props.each, props.children, fallback || void 0));\n}\nfunction Show(props) {\n const keyed = props.keyed;\n const conditionValue = createMemo(() => props.when, void 0, void 0);\n const condition = keyed ? conditionValue : createMemo(conditionValue, void 0, {\n equals: (a, b) => !a === !b\n });\n return createMemo(\n () => {\n const c = condition();\n if (c) {\n const child = props.children;\n const fn = typeof child === \"function\" && child.length > 0;\n return fn ? untrack(\n () => child(\n keyed ? c : () => {\n if (!untrack(condition)) throw narrowedError(\"Show\");\n return conditionValue();\n }\n )\n ) : child;\n }\n return props.fallback;\n },\n void 0,\n void 0\n );\n}\nfunction Switch(props) {\n const chs = children(() => props.children);\n const switchFunc = createMemo(() => {\n const ch = chs();\n const mps = Array.isArray(ch) ? ch : [ch];\n let func = () => void 0;\n for (let i = 0; i < mps.length; i++) {\n const index = i;\n const mp = mps[i];\n const prevFunc = func;\n const conditionValue = createMemo(\n () => prevFunc() ? void 0 : mp.when,\n void 0,\n void 0\n );\n const condition = mp.keyed ? conditionValue : createMemo(conditionValue, void 0, {\n equals: (a, b) => !a === !b\n });\n func = () => prevFunc() || (condition() ? [index, conditionValue, mp] : void 0);\n }\n return func;\n });\n return createMemo(\n () => {\n const sel = switchFunc()();\n if (!sel) return props.fallback;\n const [index, conditionValue, mp] = sel;\n const child = mp.children;\n const fn = typeof child === \"function\" && child.length > 0;\n return fn ? untrack(\n () => child(\n mp.keyed ? conditionValue() : () => {\n if (untrack(switchFunc)()?.[0] !== index) throw narrowedError(\"Match\");\n return conditionValue();\n }\n )\n ) : child;\n },\n void 0,\n void 0\n );\n}\nfunction Match(props) {\n return props;\n}\nconst booleans = [\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"disabled\",\n \"formnovalidate\",\n \"hidden\",\n \"indeterminate\",\n \"inert\",\n \"ismap\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"seamless\",\n \"selected\"\n];\nconst Properties = /* @__PURE__ */ new Set([\n \"className\",\n \"value\",\n \"readOnly\",\n \"formNoValidate\",\n \"isMap\",\n \"noModule\",\n \"playsInline\",\n ...booleans\n]);\nconst ChildProperties = /* @__PURE__ */ new Set([\n \"innerHTML\",\n \"textContent\",\n \"innerText\",\n \"children\"\n]);\nconst Aliases = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(null), {\n className: \"class\",\n htmlFor: \"for\"\n});\nconst PropAliases = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(null), {\n class: \"className\",\n formnovalidate: {\n $: \"formNoValidate\",\n BUTTON: 1,\n INPUT: 1\n },\n ismap: {\n $: \"isMap\",\n IMG: 1\n },\n nomodule: {\n $: \"noModule\",\n SCRIPT: 1\n },\n playsinline: {\n $: \"playsInline\",\n VIDEO: 1\n },\n readonly: {\n $: \"readOnly\",\n INPUT: 1,\n TEXTAREA: 1\n }\n});\nfunction getPropAlias(prop, tagName) {\n const a = PropAliases[prop];\n return typeof a === \"object\" ? a[tagName] ? a[\"$\"] : void 0 : a;\n}\nconst DelegatedEvents = /* @__PURE__ */ new Set([\n \"beforeinput\",\n \"click\",\n \"dblclick\",\n \"contextmenu\",\n \"focusin\",\n \"focusout\",\n \"input\",\n \"keydown\",\n \"keyup\",\n \"mousedown\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"mouseup\",\n \"pointerdown\",\n \"pointermove\",\n \"pointerout\",\n \"pointerover\",\n \"pointerup\",\n \"touchend\",\n \"touchmove\",\n \"touchstart\"\n]);\nconst SVGElements = /* @__PURE__ */ new Set([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animate\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"circle\",\n \"clipPath\",\n \"color-profile\",\n \"cursor\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"filter\",\n \"font\",\n \"font-face\",\n \"font-face-format\",\n \"font-face-name\",\n \"font-face-src\",\n \"font-face-uri\",\n \"foreignObject\",\n \"g\",\n \"glyph\",\n \"glyphRef\",\n \"hkern\",\n \"image\",\n \"line\",\n \"linearGradient\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"missing-glyph\",\n \"mpath\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"radialGradient\",\n \"rect\",\n \"set\",\n \"stop\",\n \"svg\",\n \"switch\",\n \"symbol\",\n \"text\",\n \"textPath\",\n \"tref\",\n \"tspan\",\n \"use\",\n \"view\",\n \"vkern\"\n]);\nconst SVGNamespace = {\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\"\n};\nfunction reconcileArrays(parentNode, a, b) {\n let bLength = b.length, aEnd = a.length, bEnd = bLength, aStart = 0, bStart = 0, after = a[aEnd - 1].nextSibling, map = null;\n while (aStart < aEnd || bStart < bEnd) {\n if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n continue;\n }\n while (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n if (aEnd === aStart) {\n const node = bEnd < bLength ? bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart] : after;\n while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);\n } else if (bEnd === bStart) {\n while (aStart < aEnd) {\n if (!map || !map.has(a[aStart])) a[aStart].remove();\n aStart++;\n }\n } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {\n const node = a[--aEnd].nextSibling;\n parentNode.insertBefore(b[bStart++], a[aStart++].nextSibling);\n parentNode.insertBefore(b[--bEnd], node);\n a[aEnd] = b[bEnd];\n } else {\n if (!map) {\n map = /* @__PURE__ */ new Map();\n let i = bStart;\n while (i < bEnd) map.set(b[i], i++);\n }\n const index = map.get(a[aStart]);\n if (index != null) {\n if (bStart < index && index < bEnd) {\n let i = aStart, sequence = 1, t;\n while (++i < aEnd && i < bEnd) {\n if ((t = map.get(a[i])) == null || t !== index + sequence) break;\n sequence++;\n }\n if (sequence > index - bStart) {\n const node = a[aStart];\n while (bStart < index) parentNode.insertBefore(b[bStart++], node);\n } else parentNode.replaceChild(b[bStart++], a[aStart++]);\n } else aStart++;\n } else a[aStart++].remove();\n }\n }\n}\nconst $$EVENTS = \"_$DX_DELEGATE\";\nfunction render(code, element, init, options = {}) {\n let disposer;\n createRoot((dispose2) => {\n disposer = dispose2;\n element === document ? code() : insert(element, code(), element.firstChild ? null : void 0, init);\n }, options.owner);\n return () => {\n disposer();\n element.textContent = \"\";\n };\n}\nfunction template(html, isImportNode, isSVG, isMathML) {\n let node;\n const create = () => {\n const t = document.createElement(\"template\");\n t.innerHTML = html;\n return t.content.firstChild;\n };\n const fn = isImportNode ? () => untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);\n fn.cloneNode = fn;\n return fn;\n}\nfunction delegateEvents(eventNames, document2 = window.document) {\n const e = document2[$$EVENTS] || (document2[$$EVENTS] = /* @__PURE__ */ new Set());\n for (let i = 0, l = eventNames.length; i < l; i++) {\n const name = eventNames[i];\n if (!e.has(name)) {\n e.add(name);\n document2.addEventListener(name, eventHandler);\n }\n }\n}\nfunction setAttribute(node, name, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttribute(name);\n else node.setAttribute(name, value);\n}\nfunction setAttributeNS(node, namespace, name, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttributeNS(namespace, name);\n else node.setAttributeNS(namespace, name, value);\n}\nfunction setBoolAttribute(node, name, value) {\n if (isHydrating(node)) return;\n value ? node.setAttribute(name, \"\") : node.removeAttribute(name);\n}\nfunction className(node, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttribute(\"class\");\n else node.className = value;\n}\nfunction addEventListener(node, name, handler, delegate) {\n if (delegate) {\n if (Array.isArray(handler)) {\n node[`$$${name}`] = handler[0];\n node[`$$${name}Data`] = handler[1];\n } else node[`$$${name}`] = handler;\n } else if (Array.isArray(handler)) {\n const handlerFn = handler[0];\n node.addEventListener(name, handler[0] = (e) => handlerFn.call(node, handler[1], e));\n } else node.addEventListener(name, handler, typeof handler !== \"function\" && handler);\n}\nfunction classList(node, value, prev = {}) {\n const classKeys = Object.keys(value || {}), prevKeys = Object.keys(prev);\n let i, len;\n for (i = 0, len = prevKeys.length; i < len; i++) {\n const key = prevKeys[i];\n if (!key || key === \"undefined\" || value[key]) continue;\n toggleClassKey(node, key, false);\n delete prev[key];\n }\n for (i = 0, len = classKeys.length; i < len; i++) {\n const key = classKeys[i], classValue = !!value[key];\n if (!key || key === \"undefined\" || prev[key] === classValue || !classValue) continue;\n toggleClassKey(node, key, true);\n prev[key] = classValue;\n }\n return prev;\n}\nfunction style(node, value, prev) {\n if (!value) return prev ? setAttribute(node, \"style\") : value;\n const nodeStyle = node.style;\n if (typeof value === \"string\") return nodeStyle.cssText = value;\n typeof prev === \"string\" && (nodeStyle.cssText = prev = void 0);\n prev || (prev = {});\n value || (value = {});\n let v, s;\n for (s in prev) {\n value[s] == null && nodeStyle.removeProperty(s);\n delete prev[s];\n }\n for (s in value) {\n v = value[s];\n if (v !== prev[s]) {\n nodeStyle.setProperty(s, v);\n prev[s] = v;\n }\n }\n return prev;\n}\nfunction spread(node, props = {}, isSVG, skipChildren) {\n const prevProps = {};\n if (!skipChildren) {\n createRenderEffect(\n () => prevProps.children = insertExpression(node, props.children, prevProps.children)\n );\n }\n createRenderEffect(() => typeof props.ref === \"function\" && use(props.ref, node));\n createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));\n return prevProps;\n}\nfunction use(fn, element, arg) {\n return untrack(() => fn(element, arg));\n}\nfunction insert(parent, accessor, marker, initial) {\n if (marker !== void 0 && !initial) initial = [];\n if (typeof accessor !== \"function\") return insertExpression(parent, accessor, initial, marker);\n createRenderEffect((current) => insertExpression(parent, accessor(), current, marker), initial);\n}\nfunction assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = false) {\n props || (props = {});\n for (const prop in prevProps) {\n if (!(prop in props)) {\n if (prop === \"children\") continue;\n prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef, props);\n }\n }\n for (const prop in props) {\n if (prop === \"children\") {\n continue;\n }\n const value = props[prop];\n prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef, props);\n }\n}\nfunction getNextElement(template2) {\n let node, key, hydrating = isHydrating();\n if (!hydrating || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {\n return template2();\n }\n if (sharedConfig.completed) sharedConfig.completed.add(node);\n sharedConfig.registry.delete(key);\n return node;\n}\nfunction isHydrating(node) {\n return !!sharedConfig.context && !sharedConfig.done && (!node || node.isConnected);\n}\nfunction toPropertyName(name) {\n return name.toLowerCase().replace(/-([a-z])/g, (_, w) => w.toUpperCase());\n}\nfunction toggleClassKey(node, key, value) {\n const classNames = key.trim().split(/\\s+/);\n for (let i = 0, nameLen = classNames.length; i < nameLen; i++)\n node.classList.toggle(classNames[i], value);\n}\nfunction assignProp(node, prop, value, prev, isSVG, skipRef, props) {\n let isCE, isProp, isChildProp, propAlias, forceProp;\n if (prop === \"style\") return style(node, value, prev);\n if (prop === \"classList\") return classList(node, value, prev);\n if (value === prev) return prev;\n if (prop === \"ref\") {\n if (!skipRef) value(node);\n } else if (prop.slice(0, 3) === \"on:\") {\n const e = prop.slice(3);\n prev && node.removeEventListener(e, prev, typeof prev !== \"function\" && prev);\n value && node.addEventListener(e, value, typeof value !== \"function\" && value);\n } else if (prop.slice(0, 10) === \"oncapture:\") {\n const e = prop.slice(10);\n prev && node.removeEventListener(e, prev, true);\n value && node.addEventListener(e, value, true);\n } else if (prop.slice(0, 2) === \"on\") {\n const name = prop.slice(2).toLowerCase();\n const delegate = DelegatedEvents.has(name);\n if (!delegate && prev) {\n const h = Array.isArray(prev) ? prev[0] : prev;\n node.removeEventListener(name, h);\n }\n if (delegate || value) {\n addEventListener(node, name, value, delegate);\n delegate && delegateEvents([name]);\n }\n } else if (prop.slice(0, 5) === \"attr:\") {\n setAttribute(node, prop.slice(5), value);\n } else if (prop.slice(0, 5) === \"bool:\") {\n setBoolAttribute(node, prop.slice(5), value);\n } else if ((forceProp = prop.slice(0, 5) === \"prop:\") || (isChildProp = ChildProperties.has(prop)) || !isSVG && ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes(\"-\") || \"is\" in props)) {\n if (forceProp) {\n prop = prop.slice(5);\n isProp = true;\n } else if (isHydrating(node)) return value;\n if (prop === \"class\" || prop === \"className\") className(node, value);\n else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;\n else node[propAlias || prop] = value;\n } else {\n const ns = isSVG && prop.indexOf(\":\") > -1 && SVGNamespace[prop.split(\":\")[0]];\n if (ns) setAttributeNS(node, ns, prop, value);\n else setAttribute(node, Aliases[prop] || prop, value);\n }\n return value;\n}\nfunction eventHandler(e) {\n if (sharedConfig.registry && sharedConfig.events) {\n if (sharedConfig.events.find(([el, ev]) => ev === e)) return;\n }\n let node = e.target;\n const key = `$$${e.type}`;\n const oriTarget = e.target;\n const oriCurrentTarget = e.currentTarget;\n const retarget = (value) => Object.defineProperty(e, \"target\", {\n configurable: true,\n value\n });\n const handleNode = () => {\n const handler = node[key];\n if (handler && !node.disabled) {\n const data = node[`${key}Data`];\n data !== void 0 ? handler.call(node, data, e) : handler.call(node, e);\n if (e.cancelBubble) return;\n }\n node.host && typeof node.host !== \"string\" && !node.host._$host && node.contains(e.target) && retarget(node.host);\n return true;\n };\n const walkUpTree = () => {\n while (handleNode() && (node = node._$host || node.parentNode || node.host)) ;\n };\n Object.defineProperty(e, \"currentTarget\", {\n configurable: true,\n get() {\n return node || document;\n }\n });\n if (sharedConfig.registry && !sharedConfig.done) sharedConfig.done = _$HY.done = true;\n if (e.composedPath) {\n const path = e.composedPath();\n retarget(path[0]);\n for (let i = 0; i < path.length - 2; i++) {\n node = path[i];\n if (!handleNode()) break;\n if (node._$host) {\n node = node._$host;\n walkUpTree();\n break;\n }\n if (node.parentNode === oriCurrentTarget) {\n break;\n }\n }\n } else walkUpTree();\n retarget(oriTarget);\n}\nfunction insertExpression(parent, value, current, marker, unwrapArray) {\n const hydrating = isHydrating(parent);\n if (hydrating) {\n !current && (current = [...parent.childNodes]);\n let cleaned = [];\n for (let i = 0; i < current.length; i++) {\n const node = current[i];\n if (node.nodeType === 8 && node.data.slice(0, 2) === \"!$\") node.remove();\n else cleaned.push(node);\n }\n current = cleaned;\n }\n while (typeof current === \"function\") current = current();\n if (value === current) return current;\n const t = typeof value, multi = marker !== void 0;\n parent = multi && current[0] && current[0].parentNode || parent;\n if (t === \"string\" || t === \"number\") {\n if (hydrating) return current;\n if (t === \"number\") {\n value = value.toString();\n if (value === current) return current;\n }\n if (multi) {\n let node = current[0];\n if (node && node.nodeType === 3) {\n node.data !== value && (node.data = value);\n } else node = document.createTextNode(value);\n current = cleanChildren(parent, current, marker, node);\n } else {\n if (current !== \"\" && typeof current === \"string\") {\n current = parent.firstChild.data = value;\n } else current = parent.textContent = value;\n }\n } else if (value == null || t === \"boolean\") {\n if (hydrating) return current;\n current = cleanChildren(parent, current, marker);\n } else if (t === \"function\") {\n createRenderEffect(() => {\n let v = value();\n while (typeof v === \"function\") v = v();\n current = insertExpression(parent, v, current, marker);\n });\n return () => current;\n } else if (Array.isArray(value)) {\n const array = [];\n const currentArray = current && Array.isArray(current);\n if (normalizeIncomingArray(array, value, current, unwrapArray)) {\n createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));\n return () => current;\n }\n if (hydrating) {\n if (!array.length) return current;\n if (marker === void 0) return current = [...parent.childNodes];\n let node = array[0];\n if (node.parentNode !== parent) return current;\n const nodes = [node];\n while ((node = node.nextSibling) !== marker) nodes.push(node);\n return current = nodes;\n }\n if (array.length === 0) {\n current = cleanChildren(parent, current, marker);\n if (multi) return current;\n } else if (currentArray) {\n if (current.length === 0) {\n appendNodes(parent, array, marker);\n } else reconcileArrays(parent, current, array);\n } else {\n current && cleanChildren(parent);\n appendNodes(parent, array);\n }\n current = array;\n } else if (value.nodeType) {\n if (hydrating && value.parentNode) return current = multi ? [value] : value;\n if (Array.isArray(current)) {\n if (multi) return current = cleanChildren(parent, current, marker, value);\n cleanChildren(parent, current, null, value);\n } else if (current == null || current === \"\" || !parent.firstChild) {\n parent.appendChild(value);\n } else parent.replaceChild(value, parent.firstChild);\n current = value;\n } else ;\n return current;\n}\nfunction normalizeIncomingArray(normalized, array, current, unwrap) {\n let dynamic = false;\n for (let i = 0, len = array.length; i < len; i++) {\n let item = array[i], prev = current && current[normalized.length], t;\n if (item == null || item === true || item === false) ;\n else if ((t = typeof item) === \"object\" && item.nodeType) {\n normalized.push(item);\n } else if (Array.isArray(item)) {\n dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;\n } else if (t === \"function\") {\n if (unwrap) {\n while (typeof item === \"function\") item = item();\n dynamic = normalizeIncomingArray(\n normalized,\n Array.isArray(item) ? item : [item],\n Array.isArray(prev) ? prev : [prev]\n ) || dynamic;\n } else {\n normalized.push(item);\n dynamic = true;\n }\n } else {\n const value = String(item);\n if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);\n else normalized.push(document.createTextNode(value));\n }\n }\n return dynamic;\n}\nfunction appendNodes(parent, array, marker = null) {\n for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);\n}\nfunction cleanChildren(parent, current, marker, replacement) {\n if (marker === void 0) return parent.textContent = \"\";\n const node = replacement || document.createTextNode(\"\");\n if (current.length) {\n let inserted = false;\n for (let i = current.length - 1; i >= 0; i--) {\n const el = current[i];\n if (node !== el) {\n const isParent = el.parentNode === parent;\n if (!inserted && !i)\n isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);\n else isParent && el.remove();\n } else inserted = true;\n }\n } else parent.insertBefore(node, marker);\n return [node];\n}\nfunction getHydrationKey() {\n return sharedConfig.getNextContextId();\n}\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nfunction createElement(tagName, isSVG = false) {\n return isSVG ? document.createElementNS(SVG_NAMESPACE, tagName) : document.createElement(tagName);\n}\nfunction createDynamic(component, props) {\n const cached = createMemo(component);\n return createMemo(() => {\n const component2 = cached();\n switch (typeof component2) {\n case \"function\":\n return untrack(() => component2(props));\n case \"string\":\n const isSvg = SVGElements.has(component2);\n const el = sharedConfig.context ? getNextElement() : createElement(component2, isSvg);\n spread(el, props, isSvg);\n return el;\n }\n });\n}\nfunction Dynamic(props) {\n const [, others] = splitProps(props, [\"component\"]);\n return createDynamic(() => props.component, others);\n}\nconst ShadowDomTargetContext = createContext(\n void 0\n);\nconst DevtoolsOnCloseContext = createContext(void 0);\nconst useDevtoolsOnClose = () => {\n const context = useContext(DevtoolsOnCloseContext);\n if (!context) {\n throw new Error(\n \"useDevtoolsOnClose must be used within a TanStackRouterDevtools component\"\n );\n }\n return context;\n};\nclass TanStackRouterDevtoolsCore {\n #router;\n #routerState;\n #position;\n #initialIsOpen;\n #shadowDOMTarget;\n #panelProps;\n #closeButtonProps;\n #toggleButtonProps;\n #containerElement;\n #isMounted = false;\n #Component;\n #dispose;\n constructor(config) {\n this.#router = createSignal(config.router);\n this.#routerState = createSignal(config.routerState);\n this.#position = config.position ?? \"bottom-left\";\n this.#initialIsOpen = config.initialIsOpen ?? false;\n this.#shadowDOMTarget = config.shadowDOMTarget;\n this.#panelProps = config.panelProps;\n this.#closeButtonProps = config.closeButtonProps;\n this.#toggleButtonProps = config.toggleButtonProps;\n this.#containerElement = config.containerElement;\n }\n mount(el) {\n if (this.#isMounted) {\n throw new Error(\"Devtools is already mounted\");\n }\n const dispose2 = render(() => {\n const [router] = this.#router;\n const [routerState] = this.#routerState;\n const position = this.#position;\n const initialIsOpen = this.#initialIsOpen;\n const shadowDOMTarget = this.#shadowDOMTarget;\n const panelProps = this.#panelProps;\n const closeButtonProps = this.#closeButtonProps;\n const toggleButtonProps = this.#toggleButtonProps;\n const containerElement = this.#containerElement;\n let Devtools;\n if (this.#Component) {\n Devtools = this.#Component;\n } else {\n Devtools = lazy(() => import(\"./FloatingTanStackRouterDevtools-kcMbkHXI.js\"));\n this.#Component = Devtools;\n }\n return createComponent(ShadowDomTargetContext.Provider, {\n value: shadowDOMTarget,\n get children() {\n return createComponent(Devtools, {\n position,\n initialIsOpen,\n router,\n routerState,\n shadowDOMTarget,\n panelProps,\n closeButtonProps,\n toggleButtonProps,\n containerElement\n });\n }\n });\n }, el);\n this.#isMounted = true;\n this.#dispose = dispose2;\n }\n unmount() {\n if (!this.#isMounted) {\n throw new Error(\"Devtools is not mounted\");\n }\n this.#dispose?.();\n this.#isMounted = false;\n }\n setRouter(router) {\n this.#router[1](router);\n }\n setRouterState(routerState) {\n this.#routerState[1](routerState);\n }\n setOptions(options) {\n if (options.position !== void 0) {\n this.#position = options.position;\n }\n if (options.initialIsOpen !== void 0) {\n this.#initialIsOpen = options.initialIsOpen;\n }\n if (options.shadowDOMTarget !== void 0) {\n this.#shadowDOMTarget = options.shadowDOMTarget;\n }\n if (options.containerElement !== void 0) {\n this.#containerElement = options.containerElement;\n }\n }\n}\nclass TanStackRouterDevtoolsPanelCore {\n #router;\n #routerState;\n #style;\n #className;\n #shadowDOMTarget;\n #isMounted = false;\n #setIsOpen;\n #dispose;\n #Component;\n constructor(config) {\n const {\n router,\n routerState,\n shadowDOMTarget,\n setIsOpen,\n style: style2,\n className: className2\n } = config;\n this.#router = createSignal(router);\n this.#routerState = createSignal(routerState);\n this.#style = createSignal(style2);\n this.#className = createSignal(className2);\n this.#shadowDOMTarget = shadowDOMTarget;\n this.#setIsOpen = setIsOpen;\n }\n mount(el) {\n if (this.#isMounted) {\n throw new Error(\"Devtools is already mounted\");\n }\n const dispose2 = render(() => {\n const [router] = this.#router;\n const [routerState] = this.#routerState;\n const [style2] = this.#style;\n const [className2] = this.#className;\n const shadowDOMTarget = this.#shadowDOMTarget;\n const setIsOpen = this.#setIsOpen;\n let BaseTanStackRouterDevtoolsPanel;\n if (this.#Component) {\n BaseTanStackRouterDevtoolsPanel = this.#Component;\n } else {\n BaseTanStackRouterDevtoolsPanel = lazy(() => import(\"./BaseTanStackRouterDevtoolsPanel-KIEU40vQ.js\").then((n) => n.c));\n this.#Component = BaseTanStackRouterDevtoolsPanel;\n }\n return createComponent(ShadowDomTargetContext.Provider, {\n value: shadowDOMTarget,\n get children() {\n return createComponent(DevtoolsOnCloseContext.Provider, {\n value: {\n onCloseClick: () => {\n }\n },\n get children() {\n return createComponent(BaseTanStackRouterDevtoolsPanel, {\n router,\n routerState,\n shadowDOMTarget,\n setIsOpen,\n style: style2,\n className: className2\n });\n }\n });\n }\n });\n }, el);\n this.#isMounted = true;\n this.#dispose = dispose2;\n }\n unmount() {\n if (!this.#isMounted) {\n throw new Error(\"Devtools is not mounted\");\n }\n this.#dispose?.();\n this.#isMounted = false;\n }\n setRouter(router) {\n this.#router[1](router);\n }\n setRouterState(routerState) {\n this.#routerState[1](routerState);\n }\n setStyle(style2) {\n this.#style[1](style2);\n }\n setClassName(className2) {\n this.#className[1](className2);\n }\n setOptions(options) {\n if (options.shadowDOMTarget !== void 0) {\n this.#shadowDOMTarget = options.shadowDOMTarget;\n }\n if (options.router !== void 0) {\n this.setRouter(options.router);\n }\n if (options.routerState !== void 0) {\n this.setRouterState(options.routerState);\n }\n if (options.style !== void 0) {\n this.setStyle(options.style);\n }\n if (options.className !== void 0) {\n this.setClassName(options.className);\n }\n }\n}\nexport {\n DevtoolsOnCloseContext as D,\n For as F,\n Match as M,\n ShadowDomTargetContext as S,\n TanStackRouterDevtoolsCore as T,\n createSignal as a,\n createEffect as b,\n createUniqueId as c,\n createMemo as d,\n createComponent as e,\n spread as f,\n createRenderEffect as g,\n className as h,\n insert as i,\n Dynamic as j,\n delegateEvents as k,\n useDevtoolsOnClose as l,\n mergeProps as m,\n addEventListener as n,\n untrack as o,\n Switch as p,\n onCleanup as q,\n Show as r,\n setAttribute as s,\n template as t,\n useContext as u,\n TanStackRouterDevtoolsPanelCore as v\n};\n//# sourceMappingURL=index-DX7UIGS3.js.map\n","import invariant from \"tiny-invariant\";\nimport { createLRUCache } from \"./lru-cache.js\";\nimport { last } from \"./utils.js\";\nconst SEGMENT_TYPE_PATHNAME = 0;\nconst SEGMENT_TYPE_PARAM = 1;\nconst SEGMENT_TYPE_WILDCARD = 2;\nconst SEGMENT_TYPE_OPTIONAL_PARAM = 3;\nconst SEGMENT_TYPE_INDEX = 4;\nconst SEGMENT_TYPE_PATHLESS = 5;\nfunction getOpenAndCloseBraces(part) {\n const openBrace = part.indexOf(\"{\");\n if (openBrace === -1) return null;\n const closeBrace = part.indexOf(\"}\", openBrace);\n if (closeBrace === -1) return null;\n const afterOpen = openBrace + 1;\n if (afterOpen >= part.length) return null;\n return [openBrace, closeBrace];\n}\nfunction parseSegment(path, start, output = new Uint16Array(6)) {\n const next = path.indexOf(\"/\", start);\n const end = next === -1 ? path.length : next;\n const part = path.substring(start, end);\n if (!part || !part.includes(\"$\")) {\n output[0] = SEGMENT_TYPE_PATHNAME;\n output[1] = start;\n output[2] = start;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n }\n if (part === \"$\") {\n const total = path.length;\n output[0] = SEGMENT_TYPE_WILDCARD;\n output[1] = start;\n output[2] = start;\n output[3] = total;\n output[4] = total;\n output[5] = total;\n return output;\n }\n if (part.charCodeAt(0) === 36) {\n output[0] = SEGMENT_TYPE_PARAM;\n output[1] = start;\n output[2] = start + 1;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n }\n const braces = getOpenAndCloseBraces(part);\n if (braces) {\n const [openBrace, closeBrace] = braces;\n const firstChar = part.charCodeAt(openBrace + 1);\n if (firstChar === 45) {\n if (openBrace + 2 < part.length && part.charCodeAt(openBrace + 2) === 36) {\n const paramStart = openBrace + 3;\n const paramEnd = closeBrace;\n if (paramStart < paramEnd) {\n output[0] = SEGMENT_TYPE_OPTIONAL_PARAM;\n output[1] = start + openBrace;\n output[2] = start + paramStart;\n output[3] = start + paramEnd;\n output[4] = start + closeBrace + 1;\n output[5] = end;\n return output;\n }\n }\n } else if (firstChar === 36) {\n const dollarPos = openBrace + 1;\n const afterDollar = openBrace + 2;\n if (afterDollar === closeBrace) {\n output[0] = SEGMENT_TYPE_WILDCARD;\n output[1] = start + openBrace;\n output[2] = start + dollarPos;\n output[3] = start + afterDollar;\n output[4] = start + closeBrace + 1;\n output[5] = path.length;\n return output;\n }\n output[0] = SEGMENT_TYPE_PARAM;\n output[1] = start + openBrace;\n output[2] = start + afterDollar;\n output[3] = start + closeBrace;\n output[4] = start + closeBrace + 1;\n output[5] = end;\n return output;\n }\n }\n output[0] = SEGMENT_TYPE_PATHNAME;\n output[1] = start;\n output[2] = start;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n}\nfunction parseSegments(defaultCaseSensitive, data, route, start, node, depth, onRoute) {\n onRoute?.(route);\n let cursor = start;\n {\n const path = route.fullPath ?? route.from;\n const length = path.length;\n const caseSensitive = route.options?.caseSensitive ?? defaultCaseSensitive;\n const skipOnParamError = !!(route.options?.params?.parse && route.options?.skipRouteOnParseError?.params);\n while (cursor < length) {\n const segment = parseSegment(path, cursor, data);\n let nextNode;\n const start2 = cursor;\n const end = segment[5];\n cursor = end + 1;\n depth++;\n const kind = segment[0];\n switch (kind) {\n case SEGMENT_TYPE_PATHNAME: {\n const value = path.substring(segment[2], segment[3]);\n if (caseSensitive) {\n const existingNode = node.static?.get(value);\n if (existingNode) {\n nextNode = existingNode;\n } else {\n node.static ??= /* @__PURE__ */ new Map();\n const next = createStaticNode(\n route.fullPath ?? route.from\n );\n next.parent = node;\n next.depth = depth;\n nextNode = next;\n node.static.set(value, next);\n }\n } else {\n const name = value.toLowerCase();\n const existingNode = node.staticInsensitive?.get(name);\n if (existingNode) {\n nextNode = existingNode;\n } else {\n node.staticInsensitive ??= /* @__PURE__ */ new Map();\n const next = createStaticNode(\n route.fullPath ?? route.from\n );\n next.parent = node;\n next.depth = depth;\n nextNode = next;\n node.staticInsensitive.set(name, next);\n }\n }\n break;\n }\n case SEGMENT_TYPE_PARAM: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const existingNode = !skipOnParamError && node.dynamic?.find(\n (s) => !s.skipOnParamError && s.caseSensitive === actuallyCaseSensitive && s.prefix === prefix && s.suffix === suffix\n );\n if (existingNode) {\n nextNode = existingNode;\n } else {\n const next = createDynamicNode(\n SEGMENT_TYPE_PARAM,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.depth = depth;\n next.parent = node;\n node.dynamic ??= [];\n node.dynamic.push(next);\n }\n break;\n }\n case SEGMENT_TYPE_OPTIONAL_PARAM: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const existingNode = !skipOnParamError && node.optional?.find(\n (s) => !s.skipOnParamError && s.caseSensitive === actuallyCaseSensitive && s.prefix === prefix && s.suffix === suffix\n );\n if (existingNode) {\n nextNode = existingNode;\n } else {\n const next = createDynamicNode(\n SEGMENT_TYPE_OPTIONAL_PARAM,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.parent = node;\n next.depth = depth;\n node.optional ??= [];\n node.optional.push(next);\n }\n break;\n }\n case SEGMENT_TYPE_WILDCARD: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const next = createDynamicNode(\n SEGMENT_TYPE_WILDCARD,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.parent = node;\n next.depth = depth;\n node.wildcard ??= [];\n node.wildcard.push(next);\n }\n }\n node = nextNode;\n }\n if (skipOnParamError && route.children && !route.isRoot && route.id && route.id.charCodeAt(route.id.lastIndexOf(\"/\") + 1) === 95) {\n const pathlessNode = createStaticNode(\n route.fullPath ?? route.from\n );\n pathlessNode.kind = SEGMENT_TYPE_PATHLESS;\n pathlessNode.parent = node;\n depth++;\n pathlessNode.depth = depth;\n node.pathless ??= [];\n node.pathless.push(pathlessNode);\n node = pathlessNode;\n }\n const isLeaf = (route.path || !route.children) && !route.isRoot;\n if (isLeaf && path.endsWith(\"/\")) {\n const indexNode = createStaticNode(\n route.fullPath ?? route.from\n );\n indexNode.kind = SEGMENT_TYPE_INDEX;\n indexNode.parent = node;\n depth++;\n indexNode.depth = depth;\n node.index = indexNode;\n node = indexNode;\n }\n node.parse = route.options?.params?.parse ?? null;\n node.skipOnParamError = skipOnParamError;\n node.parsingPriority = route.options?.skipRouteOnParseError?.priority ?? 0;\n if (isLeaf && !node.route) {\n node.route = route;\n node.fullPath = route.fullPath ?? route.from;\n }\n }\n if (route.children)\n for (const child of route.children) {\n parseSegments(\n defaultCaseSensitive,\n data,\n child,\n cursor,\n node,\n depth,\n onRoute\n );\n }\n}\nfunction sortDynamic(a, b) {\n if (a.skipOnParamError && !b.skipOnParamError) return -1;\n if (!a.skipOnParamError && b.skipOnParamError) return 1;\n if (a.skipOnParamError && b.skipOnParamError && (a.parsingPriority || b.parsingPriority))\n return b.parsingPriority - a.parsingPriority;\n if (a.prefix && b.prefix && a.prefix !== b.prefix) {\n if (a.prefix.startsWith(b.prefix)) return -1;\n if (b.prefix.startsWith(a.prefix)) return 1;\n }\n if (a.suffix && b.suffix && a.suffix !== b.suffix) {\n if (a.suffix.endsWith(b.suffix)) return -1;\n if (b.suffix.endsWith(a.suffix)) return 1;\n }\n if (a.prefix && !b.prefix) return -1;\n if (!a.prefix && b.prefix) return 1;\n if (a.suffix && !b.suffix) return -1;\n if (!a.suffix && b.suffix) return 1;\n if (a.caseSensitive && !b.caseSensitive) return -1;\n if (!a.caseSensitive && b.caseSensitive) return 1;\n return 0;\n}\nfunction sortTreeNodes(node) {\n if (node.pathless) {\n for (const child of node.pathless) {\n sortTreeNodes(child);\n }\n }\n if (node.static) {\n for (const child of node.static.values()) {\n sortTreeNodes(child);\n }\n }\n if (node.staticInsensitive) {\n for (const child of node.staticInsensitive.values()) {\n sortTreeNodes(child);\n }\n }\n if (node.dynamic?.length) {\n node.dynamic.sort(sortDynamic);\n for (const child of node.dynamic) {\n sortTreeNodes(child);\n }\n }\n if (node.optional?.length) {\n node.optional.sort(sortDynamic);\n for (const child of node.optional) {\n sortTreeNodes(child);\n }\n }\n if (node.wildcard?.length) {\n node.wildcard.sort(sortDynamic);\n for (const child of node.wildcard) {\n sortTreeNodes(child);\n }\n }\n}\nfunction createStaticNode(fullPath) {\n return {\n kind: SEGMENT_TYPE_PATHNAME,\n depth: 0,\n pathless: null,\n index: null,\n static: null,\n staticInsensitive: null,\n dynamic: null,\n optional: null,\n wildcard: null,\n route: null,\n fullPath,\n parent: null,\n parse: null,\n skipOnParamError: false,\n parsingPriority: 0\n };\n}\nfunction createDynamicNode(kind, fullPath, caseSensitive, prefix, suffix) {\n return {\n kind,\n depth: 0,\n pathless: null,\n index: null,\n static: null,\n staticInsensitive: null,\n dynamic: null,\n optional: null,\n wildcard: null,\n route: null,\n fullPath,\n parent: null,\n parse: null,\n skipOnParamError: false,\n parsingPriority: 0,\n caseSensitive,\n prefix,\n suffix\n };\n}\nfunction processRouteMasks(routeList, processedTree) {\n const segmentTree = createStaticNode(\"/\");\n const data = new Uint16Array(6);\n for (const route of routeList) {\n parseSegments(false, data, route, 1, segmentTree, 0);\n }\n sortTreeNodes(segmentTree);\n processedTree.masksTree = segmentTree;\n processedTree.flatCache = createLRUCache(1e3);\n}\nfunction findFlatMatch(path, processedTree) {\n path ||= \"/\";\n const cached = processedTree.flatCache.get(path);\n if (cached) return cached;\n const result = findMatch(path, processedTree.masksTree);\n processedTree.flatCache.set(path, result);\n return result;\n}\nfunction findSingleMatch(from, caseSensitive, fuzzy, path, processedTree) {\n from ||= \"/\";\n path ||= \"/\";\n const key = caseSensitive ? `case\\0${from}` : from;\n let tree = processedTree.singleCache.get(key);\n if (!tree) {\n tree = createStaticNode(\"/\");\n const data = new Uint16Array(6);\n parseSegments(caseSensitive, data, { from }, 1, tree, 0);\n processedTree.singleCache.set(key, tree);\n }\n return findMatch(path, tree, fuzzy);\n}\nfunction findRouteMatch(path, processedTree, fuzzy = false) {\n const key = fuzzy ? path : `nofuzz\\0${path}`;\n const cached = processedTree.matchCache.get(key);\n if (cached !== void 0) return cached;\n path ||= \"/\";\n let result;\n try {\n result = findMatch(\n path,\n processedTree.segmentTree,\n fuzzy\n );\n } catch (err) {\n if (err instanceof URIError) {\n result = null;\n } else {\n throw err;\n }\n }\n if (result) result.branch = buildRouteBranch(result.route);\n processedTree.matchCache.set(key, result);\n return result;\n}\nfunction trimPathRight(path) {\n return path === \"/\" ? path : path.replace(/\\/{1,}$/, \"\");\n}\nfunction processRouteTree(routeTree, caseSensitive = false, initRoute) {\n const segmentTree = createStaticNode(routeTree.fullPath);\n const data = new Uint16Array(6);\n const routesById = {};\n const routesByPath = {};\n let index = 0;\n parseSegments(caseSensitive, data, routeTree, 1, segmentTree, 0, (route) => {\n initRoute?.(route, index);\n invariant(\n !(route.id in routesById),\n `Duplicate routes found with id: ${String(route.id)}`\n );\n routesById[route.id] = route;\n if (index !== 0 && route.path) {\n const trimmedFullPath = trimPathRight(route.fullPath);\n if (!routesByPath[trimmedFullPath] || route.fullPath.endsWith(\"/\")) {\n routesByPath[trimmedFullPath] = route;\n }\n }\n index++;\n });\n sortTreeNodes(segmentTree);\n const processedTree = {\n segmentTree,\n singleCache: createLRUCache(1e3),\n matchCache: createLRUCache(1e3),\n flatCache: null,\n masksTree: null\n };\n return {\n processedTree,\n routesById,\n routesByPath\n };\n}\nfunction findMatch(path, segmentTree, fuzzy = false) {\n const parts = path.split(\"/\");\n const leaf = getNodeMatch(path, parts, segmentTree, fuzzy);\n if (!leaf) return null;\n const [rawParams] = extractParams(path, parts, leaf);\n return {\n route: leaf.node.route,\n rawParams,\n parsedParams: leaf.parsedParams\n };\n}\nfunction extractParams(path, parts, leaf) {\n const list = buildBranch(leaf.node);\n let nodeParts = null;\n const rawParams = {};\n let partIndex = leaf.extract?.part ?? 0;\n let nodeIndex = leaf.extract?.node ?? 0;\n let pathIndex = leaf.extract?.path ?? 0;\n let segmentCount = leaf.extract?.segment ?? 0;\n for (; nodeIndex < list.length; partIndex++, nodeIndex++, pathIndex++, segmentCount++) {\n const node = list[nodeIndex];\n if (node.kind === SEGMENT_TYPE_INDEX) break;\n if (node.kind === SEGMENT_TYPE_PATHLESS) {\n segmentCount--;\n partIndex--;\n pathIndex--;\n continue;\n }\n const part = parts[partIndex];\n const currentPathIndex = pathIndex;\n if (part) pathIndex += part.length;\n if (node.kind === SEGMENT_TYPE_PARAM) {\n nodeParts ??= leaf.node.fullPath.split(\"/\");\n const nodePart = nodeParts[segmentCount];\n const preLength = node.prefix?.length ?? 0;\n const isCurlyBraced = nodePart.charCodeAt(preLength) === 123;\n if (isCurlyBraced) {\n const sufLength = node.suffix?.length ?? 0;\n const name = nodePart.substring(\n preLength + 2,\n nodePart.length - sufLength - 1\n );\n const value = part.substring(preLength, part.length - sufLength);\n rawParams[name] = decodeURIComponent(value);\n } else {\n const name = nodePart.substring(1);\n rawParams[name] = decodeURIComponent(part);\n }\n } else if (node.kind === SEGMENT_TYPE_OPTIONAL_PARAM) {\n if (leaf.skipped & 1 << nodeIndex) {\n partIndex--;\n pathIndex = currentPathIndex - 1;\n continue;\n }\n nodeParts ??= leaf.node.fullPath.split(\"/\");\n const nodePart = nodeParts[segmentCount];\n const preLength = node.prefix?.length ?? 0;\n const sufLength = node.suffix?.length ?? 0;\n const name = nodePart.substring(\n preLength + 3,\n nodePart.length - sufLength - 1\n );\n const value = node.suffix || node.prefix ? part.substring(preLength, part.length - sufLength) : part;\n if (value) rawParams[name] = decodeURIComponent(value);\n } else if (node.kind === SEGMENT_TYPE_WILDCARD) {\n const n = node;\n const value = path.substring(\n currentPathIndex + (n.prefix?.length ?? 0),\n path.length - (n.suffix?.length ?? 0)\n );\n const splat = decodeURIComponent(value);\n rawParams[\"*\"] = splat;\n rawParams._splat = splat;\n break;\n }\n }\n if (leaf.rawParams) Object.assign(rawParams, leaf.rawParams);\n return [\n rawParams,\n {\n part: partIndex,\n node: nodeIndex,\n path: pathIndex,\n segment: segmentCount\n }\n ];\n}\nfunction buildRouteBranch(route) {\n const list = [route];\n while (route.parentRoute) {\n route = route.parentRoute;\n list.push(route);\n }\n list.reverse();\n return list;\n}\nfunction buildBranch(node) {\n const list = Array(node.depth + 1);\n do {\n list[node.depth] = node;\n node = node.parent;\n } while (node);\n return list;\n}\nfunction getNodeMatch(path, parts, segmentTree, fuzzy) {\n if (path === \"/\" && segmentTree.index)\n return { node: segmentTree.index, skipped: 0 };\n const trailingSlash = !last(parts);\n const pathIsIndex = trailingSlash && path !== \"/\";\n const partsLength = parts.length - (trailingSlash ? 1 : 0);\n const stack = [\n {\n node: segmentTree,\n index: 1,\n skipped: 0,\n depth: 1,\n statics: 1,\n dynamics: 0,\n optionals: 0\n }\n ];\n let wildcardMatch = null;\n let bestFuzzy = null;\n let bestMatch = null;\n while (stack.length) {\n const frame = stack.pop();\n const { node, index, skipped, depth, statics, dynamics, optionals } = frame;\n let { extract, rawParams, parsedParams } = frame;\n if (node.skipOnParamError) {\n const result = validateMatchParams(path, parts, frame);\n if (!result) continue;\n rawParams = frame.rawParams;\n extract = frame.extract;\n parsedParams = frame.parsedParams;\n }\n if (fuzzy && node.route && node.kind !== SEGMENT_TYPE_INDEX && isFrameMoreSpecific(bestFuzzy, frame)) {\n bestFuzzy = frame;\n }\n const isBeyondPath = index === partsLength;\n if (isBeyondPath) {\n if (node.route && !pathIsIndex && isFrameMoreSpecific(bestMatch, frame)) {\n bestMatch = frame;\n }\n if (!node.optional && !node.wildcard && !node.index && !node.pathless)\n continue;\n }\n const part = isBeyondPath ? void 0 : parts[index];\n let lowerPart;\n if (isBeyondPath && node.index) {\n const indexFrame = {\n node: node.index,\n index,\n skipped,\n depth: depth + 1,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n };\n let indexValid = true;\n if (node.index.skipOnParamError) {\n const result = validateMatchParams(path, parts, indexFrame);\n if (!result) indexValid = false;\n }\n if (indexValid) {\n if (statics === partsLength && !dynamics && !optionals && !skipped) {\n return indexFrame;\n }\n if (isFrameMoreSpecific(bestMatch, indexFrame)) {\n bestMatch = indexFrame;\n }\n }\n }\n if (node.wildcard && isFrameMoreSpecific(wildcardMatch, frame)) {\n for (const segment of node.wildcard) {\n const { prefix, suffix } = segment;\n if (prefix) {\n if (isBeyondPath) continue;\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (!casePart.startsWith(prefix)) continue;\n }\n if (suffix) {\n if (isBeyondPath) continue;\n const end = parts.slice(index).join(\"/\").slice(-suffix.length);\n const casePart = segment.caseSensitive ? end : end.toLowerCase();\n if (casePart !== suffix) continue;\n }\n const frame2 = {\n node: segment,\n index: partsLength,\n skipped,\n depth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n };\n if (segment.skipOnParamError) {\n const result = validateMatchParams(path, parts, frame2);\n if (!result) continue;\n }\n wildcardMatch = frame2;\n break;\n }\n }\n if (node.optional) {\n const nextSkipped = skipped | 1 << depth;\n const nextDepth = depth + 1;\n for (let i = node.optional.length - 1; i >= 0; i--) {\n const segment = node.optional[i];\n stack.push({\n node: segment,\n index,\n skipped: nextSkipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n if (!isBeyondPath) {\n for (let i = node.optional.length - 1; i >= 0; i--) {\n const segment = node.optional[i];\n const { prefix, suffix } = segment;\n if (prefix || suffix) {\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (prefix && !casePart.startsWith(prefix)) continue;\n if (suffix && !casePart.endsWith(suffix)) continue;\n }\n stack.push({\n node: segment,\n index: index + 1,\n skipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals: optionals + 1,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n }\n if (!isBeyondPath && node.dynamic && part) {\n for (let i = node.dynamic.length - 1; i >= 0; i--) {\n const segment = node.dynamic[i];\n const { prefix, suffix } = segment;\n if (prefix || suffix) {\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (prefix && !casePart.startsWith(prefix)) continue;\n if (suffix && !casePart.endsWith(suffix)) continue;\n }\n stack.push({\n node: segment,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics,\n dynamics: dynamics + 1,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (!isBeyondPath && node.staticInsensitive) {\n const match = node.staticInsensitive.get(\n lowerPart ??= part.toLowerCase()\n );\n if (match) {\n stack.push({\n node: match,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics: statics + 1,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (!isBeyondPath && node.static) {\n const match = node.static.get(part);\n if (match) {\n stack.push({\n node: match,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics: statics + 1,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (node.pathless) {\n const nextDepth = depth + 1;\n for (let i = node.pathless.length - 1; i >= 0; i--) {\n const segment = node.pathless[i];\n stack.push({\n node: segment,\n index,\n skipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n }\n if (bestMatch && wildcardMatch) {\n return isFrameMoreSpecific(wildcardMatch, bestMatch) ? bestMatch : wildcardMatch;\n }\n if (bestMatch) return bestMatch;\n if (wildcardMatch) return wildcardMatch;\n if (fuzzy && bestFuzzy) {\n let sliceIndex = bestFuzzy.index;\n for (let i = 0; i < bestFuzzy.index; i++) {\n sliceIndex += parts[i].length;\n }\n const splat = sliceIndex === path.length ? \"/\" : path.slice(sliceIndex);\n bestFuzzy.rawParams ??= {};\n bestFuzzy.rawParams[\"**\"] = decodeURIComponent(splat);\n return bestFuzzy;\n }\n return null;\n}\nfunction validateMatchParams(path, parts, frame) {\n try {\n const [rawParams, state] = extractParams(path, parts, frame);\n frame.rawParams = rawParams;\n frame.extract = state;\n const parsed = frame.node.parse(rawParams);\n frame.parsedParams = Object.assign({}, frame.parsedParams, parsed);\n return true;\n } catch {\n return null;\n }\n}\nfunction isFrameMoreSpecific(prev, next) {\n if (!prev) return true;\n return next.statics > prev.statics || next.statics === prev.statics && (next.dynamics > prev.dynamics || next.dynamics === prev.dynamics && (next.optionals > prev.optionals || next.optionals === prev.optionals && ((next.node.kind === SEGMENT_TYPE_INDEX) > (prev.node.kind === SEGMENT_TYPE_INDEX) || next.node.kind === SEGMENT_TYPE_INDEX === (prev.node.kind === SEGMENT_TYPE_INDEX) && next.depth > prev.depth)));\n}\nexport {\n SEGMENT_TYPE_OPTIONAL_PARAM,\n SEGMENT_TYPE_PARAM,\n SEGMENT_TYPE_PATHNAME,\n SEGMENT_TYPE_WILDCARD,\n findFlatMatch,\n findRouteMatch,\n findSingleMatch,\n parseSegment,\n processRouteMasks,\n processRouteTree,\n trimPathRight\n};\n//# sourceMappingURL=new-process-route-tree.js.map\n","import { isServer } from \"@tanstack/router-core/isServer\";\nimport { last } from \"./utils.js\";\nimport { parseSegment, SEGMENT_TYPE_PATHNAME, SEGMENT_TYPE_WILDCARD, SEGMENT_TYPE_PARAM, SEGMENT_TYPE_OPTIONAL_PARAM } from \"./new-process-route-tree.js\";\nfunction joinPaths(paths) {\n return cleanPath(\n paths.filter((val) => {\n return val !== void 0;\n }).join(\"/\")\n );\n}\nfunction cleanPath(path) {\n return path.replace(/\\/{2,}/g, \"/\");\n}\nfunction trimPathLeft(path) {\n return path === \"/\" ? path : path.replace(/^\\/{1,}/, \"\");\n}\nfunction trimPathRight(path) {\n const len = path.length;\n return len > 1 && path[len - 1] === \"/\" ? path.replace(/\\/{1,}$/, \"\") : path;\n}\nfunction trimPath(path) {\n return trimPathRight(trimPathLeft(path));\n}\nfunction removeTrailingSlash(value, basepath) {\n if (value?.endsWith(\"/\") && value !== \"/\" && value !== `${basepath}/`) {\n return value.slice(0, -1);\n }\n return value;\n}\nfunction exactPathTest(pathName1, pathName2, basepath) {\n return removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath);\n}\nfunction resolvePath({\n base,\n to,\n trailingSlash = \"never\",\n cache\n}) {\n const isAbsolute = to.startsWith(\"/\");\n const isBase = !isAbsolute && to === \".\";\n let key;\n if (cache) {\n key = isAbsolute ? to : isBase ? base : base + \"\\0\" + to;\n const cached = cache.get(key);\n if (cached) return cached;\n }\n let baseSegments;\n if (isBase) {\n baseSegments = base.split(\"/\");\n } else if (isAbsolute) {\n baseSegments = to.split(\"/\");\n } else {\n baseSegments = base.split(\"/\");\n while (baseSegments.length > 1 && last(baseSegments) === \"\") {\n baseSegments.pop();\n }\n const toSegments = to.split(\"/\");\n for (let index = 0, length = toSegments.length; index < length; index++) {\n const value = toSegments[index];\n if (value === \"\") {\n if (!index) {\n baseSegments = [value];\n } else if (index === length - 1) {\n baseSegments.push(value);\n } else ;\n } else if (value === \"..\") {\n baseSegments.pop();\n } else if (value === \".\") ;\n else {\n baseSegments.push(value);\n }\n }\n }\n if (baseSegments.length > 1) {\n if (last(baseSegments) === \"\") {\n if (trailingSlash === \"never\") {\n baseSegments.pop();\n }\n } else if (trailingSlash === \"always\") {\n baseSegments.push(\"\");\n }\n }\n let segment;\n let joined = \"\";\n for (let i = 0; i < baseSegments.length; i++) {\n if (i > 0) joined += \"/\";\n const part = baseSegments[i];\n if (!part) continue;\n segment = parseSegment(part, 0, segment);\n const kind = segment[0];\n if (kind === SEGMENT_TYPE_PATHNAME) {\n joined += part;\n continue;\n }\n const end = segment[5];\n const prefix = part.substring(0, segment[1]);\n const suffix = part.substring(segment[4], end);\n const value = part.substring(segment[2], segment[3]);\n if (kind === SEGMENT_TYPE_PARAM) {\n joined += prefix || suffix ? `${prefix}{$${value}}${suffix}` : `$${value}`;\n } else if (kind === SEGMENT_TYPE_WILDCARD) {\n joined += prefix || suffix ? `${prefix}{$}${suffix}` : \"$\";\n } else {\n joined += `${prefix}{-$${value}}${suffix}`;\n }\n }\n joined = cleanPath(joined);\n const result = joined || \"/\";\n if (key && cache) cache.set(key, result);\n return result;\n}\nfunction compileDecodeCharMap(pathParamsAllowedCharacters) {\n const charMap = new Map(\n pathParamsAllowedCharacters.map((char) => [encodeURIComponent(char), char])\n );\n const pattern = Array.from(charMap.keys()).map((key) => key.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\"|\");\n const regex = new RegExp(pattern, \"g\");\n return (encoded) => encoded.replace(regex, (match) => charMap.get(match) ?? match);\n}\nfunction encodeParam(key, params, decoder) {\n const value = params[key];\n if (typeof value !== \"string\") return value;\n if (key === \"_splat\") {\n if (/^[a-zA-Z0-9\\-._~!/]*$/.test(value)) return value;\n return value.split(\"/\").map((segment) => encodePathParam(segment, decoder)).join(\"/\");\n } else {\n return encodePathParam(value, decoder);\n }\n}\nfunction interpolatePath({\n path,\n params,\n decoder,\n server\n}) {\n let isMissingParams = false;\n const usedParams = {};\n if (!path || path === \"/\")\n return { interpolatedPath: \"/\", usedParams, isMissingParams };\n if (!path.includes(\"$\"))\n return { interpolatedPath: path, usedParams, isMissingParams };\n if (isServer ?? server) {\n if (path.indexOf(\"{\") === -1) {\n const length2 = path.length;\n let cursor2 = 0;\n let joined2 = \"\";\n while (cursor2 < length2) {\n while (cursor2 < length2 && path.charCodeAt(cursor2) === 47) cursor2++;\n if (cursor2 >= length2) break;\n const start = cursor2;\n let end = path.indexOf(\"/\", cursor2);\n if (end === -1) end = length2;\n cursor2 = end;\n const part = path.substring(start, end);\n if (!part) continue;\n if (part.charCodeAt(0) === 36) {\n if (part.length === 1) {\n const splat = params._splat;\n usedParams._splat = splat;\n usedParams[\"*\"] = splat;\n if (!splat) {\n isMissingParams = true;\n continue;\n }\n const value = encodeParam(\"_splat\", params, decoder);\n joined2 += \"/\" + value;\n } else {\n const key = part.substring(1);\n if (!isMissingParams && !(key in params)) {\n isMissingParams = true;\n }\n usedParams[key] = params[key];\n const value = encodeParam(key, params, decoder) ?? \"undefined\";\n joined2 += \"/\" + value;\n }\n } else {\n joined2 += \"/\" + part;\n }\n }\n if (path.endsWith(\"/\")) joined2 += \"/\";\n const interpolatedPath2 = joined2 || \"/\";\n return { usedParams, interpolatedPath: interpolatedPath2, isMissingParams };\n }\n }\n const length = path.length;\n let cursor = 0;\n let segment;\n let joined = \"\";\n while (cursor < length) {\n const start = cursor;\n segment = parseSegment(path, start, segment);\n const end = segment[5];\n cursor = end + 1;\n if (start === end) continue;\n const kind = segment[0];\n if (kind === SEGMENT_TYPE_PATHNAME) {\n joined += \"/\" + path.substring(start, end);\n continue;\n }\n if (kind === SEGMENT_TYPE_WILDCARD) {\n const splat = params._splat;\n usedParams._splat = splat;\n usedParams[\"*\"] = splat;\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n if (!splat) {\n isMissingParams = true;\n if (prefix || suffix) {\n joined += \"/\" + prefix + suffix;\n }\n continue;\n }\n const value = encodeParam(\"_splat\", params, decoder);\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n if (kind === SEGMENT_TYPE_PARAM) {\n const key = path.substring(segment[2], segment[3]);\n if (!isMissingParams && !(key in params)) {\n isMissingParams = true;\n }\n usedParams[key] = params[key];\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n const value = encodeParam(key, params, decoder) ?? \"undefined\";\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n if (kind === SEGMENT_TYPE_OPTIONAL_PARAM) {\n const key = path.substring(segment[2], segment[3]);\n const valueRaw = params[key];\n if (valueRaw == null) continue;\n usedParams[key] = valueRaw;\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n const value = encodeParam(key, params, decoder) ?? \"\";\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n }\n if (path.endsWith(\"/\")) joined += \"/\";\n const interpolatedPath = joined || \"/\";\n return { usedParams, interpolatedPath, isMissingParams };\n}\nfunction encodePathParam(value, decoder) {\n const encoded = encodeURIComponent(value);\n return decoder?.(encoded) ?? encoded;\n}\nexport {\n cleanPath,\n compileDecodeCharMap,\n exactPathTest,\n interpolatePath,\n joinPaths,\n removeTrailingSlash,\n resolvePath,\n trimPath,\n trimPathLeft,\n trimPathRight\n};\n//# sourceMappingURL=path.js.map\n","const rootRouteId = \"__root__\";\nexport {\n rootRouteId\n};\n//# sourceMappingURL=root.js.map\n","import { a as createSignal, b as createEffect, g as createRenderEffect, u as useContext, S as ShadowDomTargetContext, k as delegateEvents, d as createMemo, t as template, i as insert, e as createComponent, h as className, s as setAttribute, m as mergeProps, l as useDevtoolsOnClose, f as spread, n as addEventListener, o as untrack, M as Match, F as For, p as Switch, q as onCleanup, r as Show } from \"./index-DX7UIGS3.js\";\nimport { clsx } from \"clsx\";\nimport invariant from \"tiny-invariant\";\nimport { rootRouteId, trimPath, interpolatePath } from \"@tanstack/router-core\";\nimport * as goober from \"goober\";\nconst isServer = typeof window === \"undefined\";\nfunction getStatusColor(match) {\n const colorMap = {\n pending: \"yellow\",\n success: \"green\",\n error: \"red\",\n notFound: \"purple\",\n redirected: \"gray\"\n };\n return match.isFetching && match.status === \"success\" ? match.isFetching === \"beforeLoad\" ? \"purple\" : \"blue\" : colorMap[match.status];\n}\nfunction getRouteStatusColor(matches, route) {\n const found = matches.find((d) => d.routeId === route.id);\n if (!found) return \"gray\";\n return getStatusColor(found);\n}\nfunction useIsMounted() {\n const [isMounted, setIsMounted] = createSignal(false);\n const effect = isServer ? createEffect : createRenderEffect;\n effect(() => {\n setIsMounted(true);\n });\n return isMounted;\n}\nconst displayValue = (value) => {\n const name = Object.getOwnPropertyNames(Object(value));\n const newValue = typeof value === \"bigint\" ? `${value.toString()}n` : value;\n try {\n return JSON.stringify(newValue, name);\n } catch (e) {\n return `unable to stringify`;\n }\n};\nfunction multiSortBy(arr, accessors = [(d) => d]) {\n return arr.map((d, i) => [d, i]).sort(([a, ai], [b, bi]) => {\n for (const accessor of accessors) {\n const ao = accessor(a);\n const bo = accessor(b);\n if (typeof ao === \"undefined\") {\n if (typeof bo === \"undefined\") {\n continue;\n }\n return 1;\n }\n if (ao === bo) {\n continue;\n }\n return ao > bo ? 1 : -1;\n }\n return ai - bi;\n }).map(([d]) => d);\n}\nconst tokens = {\n colors: {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000000\",\n white: \"#ffffff\",\n neutral: {\n 50: \"#f9fafb\",\n 100: \"#f2f4f7\",\n 200: \"#eaecf0\",\n 300: \"#d0d5dd\",\n 400: \"#98a2b3\",\n 500: \"#667085\",\n 600: \"#475467\",\n 700: \"#344054\",\n 800: \"#1d2939\",\n 900: \"#101828\"\n },\n darkGray: {\n 50: \"#525c7a\",\n 100: \"#49536e\",\n 200: \"#414962\",\n 300: \"#394056\",\n 400: \"#313749\",\n 500: \"#292e3d\",\n 600: \"#212530\",\n 700: \"#191c24\",\n 800: \"#111318\",\n 900: \"#0b0d10\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f2f4f7\",\n 200: \"#eaecf0\",\n 300: \"#d0d5dd\",\n 400: \"#98a2b3\",\n 500: \"#667085\",\n 600: \"#475467\",\n 700: \"#344054\",\n 800: \"#1d2939\",\n 900: \"#101828\"\n },\n blue: {\n 25: \"#F5FAFF\",\n 50: \"#EFF8FF\",\n 100: \"#D1E9FF\",\n 200: \"#B2DDFF\",\n 300: \"#84CAFF\",\n 400: \"#53B1FD\",\n 500: \"#2E90FA\",\n 600: \"#1570EF\",\n 700: \"#175CD3\",\n 800: \"#1849A9\",\n 900: \"#194185\"\n },\n green: {\n 25: \"#F6FEF9\",\n 50: \"#ECFDF3\",\n 100: \"#D1FADF\",\n 200: \"#A6F4C5\",\n 300: \"#6CE9A6\",\n 400: \"#32D583\",\n 500: \"#12B76A\",\n 600: \"#039855\",\n 700: \"#027A48\",\n 800: \"#05603A\",\n 900: \"#054F31\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\"\n },\n yellow: {\n 25: \"#FFFCF5\",\n 50: \"#FFFAEB\",\n 100: \"#FEF0C7\",\n 200: \"#FEDF89\",\n 300: \"#FEC84B\",\n 400: \"#FDB022\",\n 500: \"#F79009\",\n 600: \"#DC6803\",\n 700: \"#B54708\",\n 800: \"#93370D\",\n 900: \"#7A2E0E\"\n },\n purple: {\n 25: \"#FAFAFF\",\n 50: \"#F4F3FF\",\n 100: \"#EBE9FE\",\n 200: \"#D9D6FE\",\n 300: \"#BDB4FE\",\n 400: \"#9B8AFB\",\n 500: \"#7A5AF8\",\n 600: \"#6938EF\",\n 700: \"#5925DC\",\n 800: \"#4A1FB8\",\n 900: \"#3E1C96\"\n },\n teal: {\n 25: \"#F6FEFC\",\n 50: \"#F0FDF9\",\n 100: \"#CCFBEF\",\n 200: \"#99F6E0\",\n 300: \"#5FE9D0\",\n 400: \"#2ED3B7\",\n 500: \"#15B79E\",\n 600: \"#0E9384\",\n 700: \"#107569\",\n 800: \"#125D56\",\n 900: \"#134E48\"\n },\n pink: {\n 25: \"#fdf2f8\",\n 50: \"#fce7f3\",\n 100: \"#fbcfe8\",\n 200: \"#f9a8d4\",\n 300: \"#f472b6\",\n 400: \"#ec4899\",\n 500: \"#db2777\",\n 600: \"#be185d\",\n 700: \"#9d174d\",\n 800: \"#831843\",\n 900: \"#500724\"\n },\n cyan: {\n 25: \"#ecfeff\",\n 50: \"#cffafe\",\n 100: \"#a5f3fc\",\n 200: \"#67e8f9\",\n 300: \"#22d3ee\",\n 400: \"#06b6d4\",\n 500: \"#0891b2\",\n 600: \"#0e7490\",\n 700: \"#155e75\",\n 800: \"#164e63\",\n 900: \"#083344\"\n }\n },\n alpha: {\n 90: \"e5\",\n 70: \"b3\",\n 20: \"33\"\n },\n font: {\n size: {\n \"2xs\": \"calc(var(--tsrd-font-size) * 0.625)\",\n xs: \"calc(var(--tsrd-font-size) * 0.75)\",\n sm: \"calc(var(--tsrd-font-size) * 0.875)\",\n md: \"var(--tsrd-font-size)\"\n },\n lineHeight: {\n xs: \"calc(var(--tsrd-font-size) * 1)\",\n sm: \"calc(var(--tsrd-font-size) * 1.25)\"\n },\n weight: {\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\"\n },\n fontFamily: {\n sans: \"ui-sans-serif, Inter, system-ui, sans-serif, sans-serif\",\n mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`\n }\n },\n border: {\n radius: {\n xs: \"calc(var(--tsrd-font-size) * 0.125)\",\n sm: \"calc(var(--tsrd-font-size) * 0.25)\",\n md: \"calc(var(--tsrd-font-size) * 0.375)\",\n full: \"9999px\"\n }\n },\n size: {\n 0: \"0px\",\n 0.5: \"calc(var(--tsrd-font-size) * 0.125)\",\n 1: \"calc(var(--tsrd-font-size) * 0.25)\",\n 1.5: \"calc(var(--tsrd-font-size) * 0.375)\",\n 2: \"calc(var(--tsrd-font-size) * 0.5)\",\n 2.5: \"calc(var(--tsrd-font-size) * 0.625)\",\n 3: \"calc(var(--tsrd-font-size) * 0.75)\",\n 3.5: \"calc(var(--tsrd-font-size) * 0.875)\",\n 4: \"calc(var(--tsrd-font-size) * 1)\",\n 5: \"calc(var(--tsrd-font-size) * 1.25)\",\n 8: \"calc(var(--tsrd-font-size) * 2)\"\n }\n};\nconst stylesFactory$1 = (shadowDOMTarget) => {\n const {\n colors,\n font,\n size,\n alpha,\n border\n } = tokens;\n const {\n fontFamily,\n lineHeight,\n size: fontSize\n } = font;\n const css = shadowDOMTarget ? goober.css.bind({\n target: shadowDOMTarget\n }) : goober.css;\n return {\n devtoolsPanelContainer: css`\n direction: ltr;\n position: fixed;\n bottom: 0;\n right: 0;\n z-index: 99999;\n width: 100%;\n max-height: 90%;\n border-top: 1px solid ${colors.gray[700]};\n transform-origin: top;\n `,\n devtoolsPanelContainerVisibility: (isOpen) => {\n return css`\n visibility: ${isOpen ? \"visible\" : \"hidden\"};\n `;\n },\n devtoolsPanelContainerResizing: (isResizing) => {\n if (isResizing()) {\n return css`\n transition: none;\n `;\n }\n return css`\n transition: all 0.4s ease;\n `;\n },\n devtoolsPanelContainerAnimation: (isOpen, height) => {\n if (isOpen) {\n return css`\n pointer-events: auto;\n transform: translateY(0);\n `;\n }\n return css`\n pointer-events: none;\n transform: translateY(${height}px);\n `;\n },\n logo: css`\n cursor: pointer;\n display: flex;\n flex-direction: column;\n background-color: transparent;\n border: none;\n font-family: ${fontFamily.sans};\n gap: ${tokens.size[0.5]};\n padding: 0px;\n &:hover {\n opacity: 0.7;\n }\n &:focus-visible {\n outline-offset: 4px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n tanstackLogo: css`\n font-size: ${font.size.md};\n font-weight: ${font.weight.bold};\n line-height: ${font.lineHeight.xs};\n white-space: nowrap;\n color: ${colors.gray[300]};\n `,\n routerLogo: css`\n font-weight: ${font.weight.semibold};\n font-size: ${font.size.xs};\n background: linear-gradient(to right, #84cc16, #10b981);\n background-clip: text;\n -webkit-background-clip: text;\n line-height: 1;\n -webkit-text-fill-color: transparent;\n white-space: nowrap;\n `,\n devtoolsPanel: css`\n display: flex;\n font-size: ${fontSize.sm};\n font-family: ${fontFamily.sans};\n background-color: ${colors.darkGray[700]};\n color: ${colors.gray[300]};\n\n @media (max-width: 700px) {\n flex-direction: column;\n }\n @media (max-width: 600px) {\n font-size: ${fontSize.xs};\n }\n `,\n dragHandle: css`\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 4px;\n cursor: row-resize;\n z-index: 100000;\n &:hover {\n background-color: ${colors.purple[400]}${alpha[90]};\n }\n `,\n firstContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n border-right: 1px solid ${colors.gray[700]};\n display: flex;\n flex-direction: column;\n `,\n routerExplorerContainer: css`\n overflow-y: auto;\n flex: 1;\n `,\n routerExplorer: css`\n padding: ${tokens.size[2]};\n `,\n row: css`\n display: flex;\n align-items: center;\n padding: ${tokens.size[2]} ${tokens.size[2.5]};\n gap: ${tokens.size[2.5]};\n border-bottom: ${colors.darkGray[500]} 1px solid;\n align-items: center;\n `,\n detailsHeader: css`\n font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: ${colors.darkGray[600]};\n padding: 0px ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n font-size: ${font.size.xs};\n min-height: ${tokens.size[8]};\n line-height: ${font.lineHeight.xs};\n text-align: left;\n display: flex;\n align-items: center;\n `,\n maskedBadge: css`\n background: ${colors.yellow[900]}${alpha[70]};\n color: ${colors.yellow[300]};\n display: inline-block;\n padding: ${tokens.size[0]} ${tokens.size[2.5]};\n border-radius: ${border.radius.full};\n font-size: ${font.size.xs};\n font-weight: ${font.weight.normal};\n border: 1px solid ${colors.yellow[300]};\n `,\n maskedLocation: css`\n color: ${colors.yellow[300]};\n `,\n detailsContent: css`\n padding: ${tokens.size[1.5]} ${tokens.size[2]};\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: ${font.size.xs};\n `,\n routeMatchesToggle: css`\n display: flex;\n align-items: center;\n border: 1px solid ${colors.gray[500]};\n border-radius: ${border.radius.sm};\n overflow: hidden;\n `,\n routeMatchesToggleBtn: (active, showBorder) => {\n const base = css`\n appearance: none;\n border: none;\n font-size: 12px;\n padding: 4px 8px;\n background: transparent;\n cursor: pointer;\n font-family: ${fontFamily.sans};\n font-weight: ${font.weight.medium};\n `;\n const classes = [base];\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[400]};\n color: ${colors.gray[300]};\n `;\n classes.push(activeStyles);\n } else {\n const inactiveStyles = css`\n color: ${colors.gray[500]};\n background: ${colors.darkGray[800]}${alpha[20]};\n `;\n classes.push(inactiveStyles);\n }\n if (showBorder) {\n classes.push(css`\n border-right: 1px solid ${tokens.colors.gray[500]};\n `);\n }\n return classes;\n },\n detailsHeaderInfo: css`\n flex: 1;\n justify-content: flex-end;\n display: flex;\n align-items: center;\n font-weight: ${font.weight.normal};\n color: ${colors.gray[400]};\n `,\n matchRow: (active) => {\n const base = css`\n display: flex;\n border-bottom: 1px solid ${colors.darkGray[400]};\n cursor: pointer;\n align-items: center;\n padding: ${size[1]} ${size[2]};\n gap: ${size[2]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[300]};\n `;\n const classes = [base];\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[500]};\n `;\n classes.push(activeStyles);\n }\n return classes;\n },\n matchIndicator: (color) => {\n const base = css`\n flex: 0 0 auto;\n width: ${size[3]};\n height: ${size[3]};\n background: ${colors[color][900]};\n border: 1px solid ${colors[color][500]};\n border-radius: ${border.radius.full};\n transition: all 0.25s ease-out;\n box-sizing: border-box;\n `;\n const classes = [base];\n if (color === \"gray\") {\n const grayStyles = css`\n background: ${colors.gray[700]};\n border-color: ${colors.gray[400]};\n `;\n classes.push(grayStyles);\n }\n return classes;\n },\n matchID: css`\n flex: 1;\n line-height: ${lineHeight[\"xs\"]};\n `,\n ageTicker: (showWarning) => {\n const base = css`\n display: flex;\n gap: ${size[1]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[400]};\n font-variant-numeric: tabular-nums;\n line-height: ${lineHeight[\"xs\"]};\n `;\n const classes = [base];\n if (showWarning) {\n const warningStyles = css`\n color: ${colors.yellow[400]};\n `;\n classes.push(warningStyles);\n }\n return classes;\n },\n secondContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n border-right: 1px solid ${colors.gray[700]};\n display: flex;\n flex-direction: column;\n `,\n thirdContainer: css`\n flex: 1 1 500px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n height: 100%;\n border-right: 1px solid ${colors.gray[700]};\n\n @media (max-width: 700px) {\n border-top: 2px solid ${colors.gray[700]};\n }\n `,\n fourthContainer: css`\n flex: 1 1 500px;\n min-height: 40%;\n max-height: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n `,\n routesContainer: css`\n overflow-x: auto;\n overflow-y: visible;\n `,\n routesRowContainer: (active, isMatch) => {\n const base = css`\n display: flex;\n border-bottom: 1px solid ${colors.darkGray[400]};\n align-items: center;\n padding: ${size[1]} ${size[2]};\n gap: ${size[2]};\n font-size: ${fontSize.xs};\n color: ${colors.gray[300]};\n cursor: ${isMatch ? \"pointer\" : \"default\"};\n line-height: ${lineHeight[\"xs\"]};\n `;\n const classes = [base];\n if (active) {\n const activeStyles = css`\n background: ${colors.darkGray[500]};\n `;\n classes.push(activeStyles);\n }\n return classes;\n },\n routesRow: (isMatch) => {\n const base = css`\n flex: 1 0 auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: ${fontSize.xs};\n line-height: ${lineHeight[\"xs\"]};\n `;\n const classes = [base];\n if (!isMatch) {\n const matchStyles = css`\n color: ${colors.gray[400]};\n `;\n classes.push(matchStyles);\n }\n return classes;\n },\n routesRowInner: css`\n display: 'flex';\n align-items: 'center';\n flex-grow: 1;\n min-width: 0;\n `,\n routeParamInfo: css`\n color: ${colors.gray[400]};\n font-size: ${fontSize.xs};\n line-height: ${lineHeight[\"xs\"]};\n `,\n nestedRouteRow: (isRoot) => {\n const base = css`\n margin-left: ${isRoot ? 0 : size[3.5]};\n border-left: ${isRoot ? \"\" : `solid 1px ${colors.gray[700]}`};\n `;\n return base;\n },\n code: css`\n font-size: ${fontSize.xs};\n line-height: ${lineHeight[\"xs\"]};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `,\n matchesContainer: css`\n flex: 1 1 auto;\n overflow-y: auto;\n `,\n cachedMatchesContainer: css`\n flex: 1 1 auto;\n overflow-y: auto;\n max-height: 50%;\n `,\n historyContainer: css`\n display: flex;\n flex: 1 1 auto;\n overflow-y: auto;\n max-height: 50%;\n `,\n historyOverflowContainer: css`\n padding: ${size[1]} ${size[2]};\n font-size: ${tokens.font.size.xs};\n `,\n maskedBadgeContainer: css`\n flex: 1;\n justify-content: flex-end;\n display: flex;\n `,\n matchDetails: css`\n display: flex;\n flex-direction: column;\n padding: ${tokens.size[2]};\n font-size: ${tokens.font.size.xs};\n color: ${tokens.colors.gray[300]};\n line-height: ${tokens.font.lineHeight.sm};\n `,\n matchStatus: (status, isFetching) => {\n const colorMap = {\n pending: \"yellow\",\n success: \"green\",\n error: \"red\",\n notFound: \"purple\",\n redirected: \"gray\"\n };\n const color = isFetching && status === \"success\" ? isFetching === \"beforeLoad\" ? \"purple\" : \"blue\" : colorMap[status];\n return css`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n border-radius: ${tokens.border.radius.sm};\n font-weight: ${tokens.font.weight.normal};\n background-color: ${tokens.colors[color][900]}${tokens.alpha[90]};\n color: ${tokens.colors[color][300]};\n border: 1px solid ${tokens.colors[color][600]};\n margin-bottom: ${tokens.size[2]};\n transition: all 0.25s ease-out;\n `;\n },\n matchDetailsInfo: css`\n display: flex;\n justify-content: flex-end;\n flex: 1;\n `,\n matchDetailsInfoLabel: css`\n display: flex;\n `,\n mainCloseBtn: css`\n background: ${colors.darkGray[700]};\n padding: ${size[1]} ${size[2]} ${size[1]} ${size[1.5]};\n border-radius: ${border.radius.md};\n position: fixed;\n z-index: 99999;\n display: inline-flex;\n width: fit-content;\n cursor: pointer;\n appearance: none;\n border: 0;\n gap: 8px;\n align-items: center;\n border: 1px solid ${colors.gray[500]};\n font-size: ${font.size.xs};\n cursor: pointer;\n transition: all 0.25s ease-out;\n\n &:hover {\n background: ${colors.darkGray[500]};\n }\n `,\n mainCloseBtnPosition: (position) => {\n const base = css`\n ${position === \"top-left\" ? `top: ${size[2]}; left: ${size[2]};` : \"\"}\n ${position === \"top-right\" ? `top: ${size[2]}; right: ${size[2]};` : \"\"}\n ${position === \"bottom-left\" ? `bottom: ${size[2]}; left: ${size[2]};` : \"\"}\n ${position === \"bottom-right\" ? `bottom: ${size[2]}; right: ${size[2]};` : \"\"}\n `;\n return base;\n },\n mainCloseBtnAnimation: (isOpen) => {\n if (!isOpen) {\n return css`\n opacity: 1;\n pointer-events: auto;\n visibility: visible;\n `;\n }\n return css`\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n `;\n },\n routerLogoCloseButton: css`\n font-weight: ${font.weight.semibold};\n font-size: ${font.size.xs};\n background: linear-gradient(to right, #98f30c, #00f4a3);\n background-clip: text;\n -webkit-background-clip: text;\n line-height: 1;\n -webkit-text-fill-color: transparent;\n white-space: nowrap;\n `,\n mainCloseBtnDivider: css`\n width: 1px;\n background: ${tokens.colors.gray[600]};\n height: 100%;\n border-radius: 999999px;\n color: transparent;\n `,\n mainCloseBtnIconContainer: css`\n position: relative;\n width: ${size[5]};\n height: ${size[5]};\n background: pink;\n border-radius: 999999px;\n overflow: hidden;\n `,\n mainCloseBtnIconOuter: css`\n width: ${size[5]};\n height: ${size[5]};\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n filter: blur(3px) saturate(1.8) contrast(2);\n `,\n mainCloseBtnIconInner: css`\n width: ${size[4]};\n height: ${size[4]};\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n `,\n panelCloseBtn: css`\n position: absolute;\n cursor: pointer;\n z-index: 100001;\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n background-color: ${colors.darkGray[700]};\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n\n top: 0;\n right: ${size[2]};\n transform: translate(0, -100%);\n border-right: ${colors.darkGray[300]} 1px solid;\n border-left: ${colors.darkGray[300]} 1px solid;\n border-top: ${colors.darkGray[300]} 1px solid;\n border-bottom: none;\n border-radius: ${border.radius.sm} ${border.radius.sm} 0px 0px;\n padding: ${size[1]} ${size[1.5]} ${size[0.5]} ${size[1.5]};\n\n &::after {\n content: ' ';\n position: absolute;\n top: 100%;\n left: -${size[2.5]};\n height: ${size[1.5]};\n width: calc(100% + ${size[5]});\n }\n `,\n panelCloseBtnIcon: css`\n color: ${colors.gray[400]};\n width: ${size[2]};\n height: ${size[2]};\n `,\n navigateButton: css`\n background: none;\n border: none;\n padding: 0 0 0 4px;\n margin: 0;\n color: ${colors.gray[400]};\n font-size: ${fontSize.md};\n cursor: pointer;\n line-height: 1;\n vertical-align: middle;\n margin-right: 0.5ch;\n flex-shrink: 0;\n &:hover {\n color: ${colors.blue[300]};\n }\n `\n };\n};\nfunction useStyles$1() {\n const shadowDomTarget = useContext(ShadowDomTargetContext);\n const [_styles] = createSignal(stylesFactory$1(shadowDomTarget));\n return _styles;\n}\nconst getItem = (key) => {\n try {\n const itemValue = localStorage.getItem(key);\n if (typeof itemValue === \"string\") {\n return JSON.parse(itemValue);\n }\n return void 0;\n } catch {\n return void 0;\n }\n};\nfunction useLocalStorage(key, defaultValue) {\n const [value, setValue] = createSignal();\n createEffect(() => {\n const initialValue = getItem(key);\n if (typeof initialValue === \"undefined\" || initialValue === null) {\n setValue(\n typeof defaultValue === \"function\" ? defaultValue() : defaultValue\n );\n } else {\n setValue(initialValue);\n }\n });\n const setter = (updater) => {\n setValue((old) => {\n let newVal = updater;\n if (typeof updater == \"function\") {\n newVal = updater(old);\n }\n try {\n localStorage.setItem(key, JSON.stringify(newVal));\n } catch {\n }\n return newVal;\n });\n };\n return [value, setter];\n}\nvar _tmpl$$3 = /* @__PURE__ */ template(`<span><svg xmlns=http://www.w3.org/2000/svg width=12 height=12 fill=none viewBox=\"0 0 24 24\"><path stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 d=\"M9 18l6-6-6-6\">`), _tmpl$2$1 = /* @__PURE__ */ template(`<div>`), _tmpl$3$1 = /* @__PURE__ */ template(`<button><span> `), _tmpl$4$1 = /* @__PURE__ */ template(`<div><div><button> [<!> ... <!>]`), _tmpl$5$1 = /* @__PURE__ */ template(`<button><span></span> 🔄 `), _tmpl$6$1 = /* @__PURE__ */ template(`<span>:`), _tmpl$7$1 = /* @__PURE__ */ template(`<span>`);\nconst Expander = ({\n expanded,\n style = {}\n}) => {\n const styles = useStyles();\n return (() => {\n var _el$ = _tmpl$$3(), _el$2 = _el$.firstChild;\n createRenderEffect((_p$) => {\n var _v$ = styles().expander, _v$2 = clsx(styles().expanderIcon(expanded));\n _v$ !== _p$.e && className(_el$, _p$.e = _v$);\n _v$2 !== _p$.t && setAttribute(_el$2, \"class\", _p$.t = _v$2);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$;\n })();\n};\nfunction chunkArray(array, size) {\n if (size < 1) return [];\n let i = 0;\n const result = [];\n while (i < array.length) {\n result.push(array.slice(i, i + size));\n i = i + size;\n }\n return result;\n}\nfunction isIterable(x) {\n return Symbol.iterator in x;\n}\nfunction Explorer({\n value,\n defaultExpanded,\n pageSize = 100,\n filterSubEntries,\n ...rest\n}) {\n const [expanded, setExpanded] = createSignal(Boolean(defaultExpanded));\n const toggleExpanded = () => setExpanded((old) => !old);\n const type = createMemo(() => typeof value());\n const subEntries = createMemo(() => {\n let entries = [];\n const makeProperty = (sub) => {\n const subDefaultExpanded = defaultExpanded === true ? {\n [sub.label]: true\n } : defaultExpanded?.[sub.label];\n return {\n ...sub,\n value: () => sub.value,\n defaultExpanded: subDefaultExpanded\n };\n };\n if (Array.isArray(value())) {\n entries = value().map((d, i) => makeProperty({\n label: i.toString(),\n value: d\n }));\n } else if (value() !== null && typeof value() === \"object\" && isIterable(value()) && typeof value()[Symbol.iterator] === \"function\") {\n entries = Array.from(value(), (val, i) => makeProperty({\n label: i.toString(),\n value: val\n }));\n } else if (typeof value() === \"object\" && value() !== null) {\n entries = Object.entries(value()).map(([key, val]) => makeProperty({\n label: key,\n value: val\n }));\n }\n return filterSubEntries ? filterSubEntries(entries) : entries;\n });\n const subEntryPages = createMemo(() => chunkArray(subEntries(), pageSize));\n const [expandedPages, setExpandedPages] = createSignal([]);\n const [valueSnapshot, setValueSnapshot] = createSignal(void 0);\n const styles = useStyles();\n const refreshValueSnapshot = () => {\n setValueSnapshot(value()());\n };\n const handleEntry = (entry) => createComponent(Explorer, mergeProps({\n value,\n filterSubEntries\n }, rest, entry));\n return (() => {\n var _el$3 = _tmpl$2$1();\n insert(_el$3, (() => {\n var _c$ = createMemo(() => !!subEntryPages().length);\n return () => _c$() ? [(() => {\n var _el$4 = _tmpl$3$1(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild;\n _el$4.$$click = () => toggleExpanded();\n insert(_el$4, createComponent(Expander, {\n get expanded() {\n return expanded() ?? false;\n }\n }), _el$5);\n insert(_el$4, () => rest.label, _el$5);\n insert(_el$5, () => String(type).toLowerCase() === \"iterable\" ? \"(Iterable) \" : \"\", _el$6);\n insert(_el$5, () => subEntries().length, _el$6);\n insert(_el$5, () => subEntries().length > 1 ? `items` : `item`, null);\n createRenderEffect((_p$) => {\n var _v$3 = styles().expandButton, _v$4 = styles().info;\n _v$3 !== _p$.e && className(_el$4, _p$.e = _v$3);\n _v$4 !== _p$.t && className(_el$5, _p$.t = _v$4);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$4;\n })(), createMemo(() => createMemo(() => !!(expanded() ?? false))() ? createMemo(() => subEntryPages().length === 1)() ? (() => {\n var _el$7 = _tmpl$2$1();\n insert(_el$7, () => subEntries().map((entry, index) => handleEntry(entry)));\n createRenderEffect(() => className(_el$7, styles().subEntries));\n return _el$7;\n })() : (() => {\n var _el$8 = _tmpl$2$1();\n insert(_el$8, () => subEntryPages().map((entries, index) => {\n return (() => {\n var _el$9 = _tmpl$4$1(), _el$0 = _el$9.firstChild, _el$1 = _el$0.firstChild, _el$10 = _el$1.firstChild, _el$15 = _el$10.nextSibling, _el$12 = _el$15.nextSibling, _el$16 = _el$12.nextSibling;\n _el$16.nextSibling;\n _el$1.$$click = () => setExpandedPages((old) => old.includes(index) ? old.filter((d) => d !== index) : [...old, index]);\n insert(_el$1, createComponent(Expander, {\n get expanded() {\n return expandedPages().includes(index);\n }\n }), _el$10);\n insert(_el$1, index * pageSize, _el$15);\n insert(_el$1, index * pageSize + pageSize - 1, _el$16);\n insert(_el$0, (() => {\n var _c$3 = createMemo(() => !!expandedPages().includes(index));\n return () => _c$3() ? (() => {\n var _el$17 = _tmpl$2$1();\n insert(_el$17, () => entries.map((entry) => handleEntry(entry)));\n createRenderEffect(() => className(_el$17, styles().subEntries));\n return _el$17;\n })() : null;\n })(), null);\n createRenderEffect((_p$) => {\n var _v$5 = styles().entry, _v$6 = clsx(styles().labelButton, \"labelButton\");\n _v$5 !== _p$.e && className(_el$0, _p$.e = _v$5);\n _v$6 !== _p$.t && className(_el$1, _p$.t = _v$6);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$9;\n })();\n }));\n createRenderEffect(() => className(_el$8, styles().subEntries));\n return _el$8;\n })() : null)] : (() => {\n var _c$2 = createMemo(() => type() === \"function\");\n return () => _c$2() ? createComponent(Explorer, {\n get label() {\n return (() => {\n var _el$18 = _tmpl$5$1(), _el$19 = _el$18.firstChild;\n _el$18.$$click = refreshValueSnapshot;\n insert(_el$19, () => rest.label);\n createRenderEffect(() => className(_el$18, styles().refreshValueBtn));\n return _el$18;\n })();\n },\n value: valueSnapshot,\n defaultExpanded: {}\n }) : [(() => {\n var _el$20 = _tmpl$6$1(), _el$21 = _el$20.firstChild;\n insert(_el$20, () => rest.label, _el$21);\n return _el$20;\n })(), \" \", (() => {\n var _el$22 = _tmpl$7$1();\n insert(_el$22, () => displayValue(value()));\n createRenderEffect(() => className(_el$22, styles().value));\n return _el$22;\n })()];\n })();\n })());\n createRenderEffect(() => className(_el$3, styles().entry));\n return _el$3;\n })();\n}\nconst stylesFactory = (shadowDOMTarget) => {\n const {\n colors,\n font,\n size\n } = tokens;\n const {\n fontFamily,\n lineHeight,\n size: fontSize\n } = font;\n const css = shadowDOMTarget ? goober.css.bind({\n target: shadowDOMTarget\n }) : goober.css;\n return {\n entry: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n line-height: ${lineHeight.sm};\n outline: none;\n word-break: break-word;\n `,\n labelButton: css`\n cursor: pointer;\n color: inherit;\n font: inherit;\n outline: inherit;\n background: transparent;\n border: none;\n padding: 0;\n `,\n expander: css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: ${size[3]};\n height: ${size[3]};\n padding-left: 3px;\n box-sizing: content-box;\n `,\n expanderIcon: (expanded) => {\n if (expanded) {\n return css`\n transform: rotate(90deg);\n transition: transform 0.1s ease;\n `;\n }\n return css`\n transform: rotate(0deg);\n transition: transform 0.1s ease;\n `;\n },\n expandButton: css`\n display: flex;\n gap: ${size[1]};\n align-items: center;\n cursor: pointer;\n color: inherit;\n font: inherit;\n outline: inherit;\n background: transparent;\n border: none;\n padding: 0;\n `,\n value: css`\n color: ${colors.purple[400]};\n `,\n subEntries: css`\n margin-left: ${size[2]};\n padding-left: ${size[2]};\n border-left: 2px solid ${colors.darkGray[400]};\n `,\n info: css`\n color: ${colors.gray[500]};\n font-size: ${fontSize[\"2xs\"]};\n padding-left: ${size[1]};\n `,\n refreshValueBtn: css`\n appearance: none;\n border: 0;\n cursor: pointer;\n background: transparent;\n color: inherit;\n padding: 0;\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n `\n };\n};\nfunction useStyles() {\n const shadowDomTarget = useContext(ShadowDomTargetContext);\n const [_styles] = createSignal(stylesFactory(shadowDomTarget));\n return _styles;\n}\ndelegateEvents([\"click\"]);\nvar _tmpl$$2 = /* @__PURE__ */ template(`<div><div></div><div>/</div><div></div><div>/</div><div>`);\nfunction formatTime(ms) {\n const units = [\"s\", \"min\", \"h\", \"d\"];\n const values = [ms / 1e3, ms / 6e4, ms / 36e5, ms / 864e5];\n let chosenUnitIndex = 0;\n for (let i = 1; i < values.length; i++) {\n if (values[i] < 1) break;\n chosenUnitIndex = i;\n }\n const formatter = new Intl.NumberFormat(navigator.language, {\n compactDisplay: \"short\",\n notation: \"compact\",\n maximumFractionDigits: 0\n });\n return formatter.format(values[chosenUnitIndex]) + units[chosenUnitIndex];\n}\nfunction AgeTicker({\n match,\n router\n}) {\n const styles = useStyles$1();\n if (!match) {\n return null;\n }\n const route = router().looseRoutesById[match.routeId];\n if (!route.options.loader) {\n return null;\n }\n const age = Date.now() - match.updatedAt;\n const staleTime = route.options.staleTime ?? router().options.defaultStaleTime ?? 0;\n const gcTime = route.options.gcTime ?? router().options.defaultGcTime ?? 30 * 60 * 1e3;\n return (() => {\n var _el$ = _tmpl$$2(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling;\n insert(_el$2, () => formatTime(age));\n insert(_el$4, () => formatTime(staleTime));\n insert(_el$6, () => formatTime(gcTime));\n createRenderEffect(() => className(_el$, clsx(styles().ageTicker(age > staleTime))));\n return _el$;\n })();\n}\nvar _tmpl$$1 = /* @__PURE__ */ template(`<button type=button>➔`);\nfunction NavigateButton({\n to,\n params,\n search,\n router\n}) {\n const styles = useStyles$1();\n return (() => {\n var _el$ = _tmpl$$1();\n _el$.$$click = (e) => {\n e.stopPropagation();\n router().navigate({\n to,\n params,\n search\n });\n };\n setAttribute(_el$, \"title\", `Navigate to ${to}`);\n createRenderEffect(() => className(_el$, styles().navigateButton));\n return _el$;\n })();\n}\ndelegateEvents([\"click\"]);\nvar _tmpl$ = /* @__PURE__ */ template(`<button><div>TANSTACK</div><div>TanStack Router v1`), _tmpl$2 = /* @__PURE__ */ template(`<div><div>`), _tmpl$3 = /* @__PURE__ */ template(`<code> `), _tmpl$4 = /* @__PURE__ */ template(`<code>`), _tmpl$5 = /* @__PURE__ */ template(`<div><div role=button><div>`), _tmpl$6 = /* @__PURE__ */ template(`<div>`), _tmpl$7 = /* @__PURE__ */ template(`<div><ul>`), _tmpl$8 = /* @__PURE__ */ template(`<div><button><svg xmlns=http://www.w3.org/2000/svg width=10 height=6 fill=none viewBox=\"0 0 10 6\"><path stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=1.667 d=\"M1 1l4 4 4-4\"></path></svg></button><div><div></div><div><div></div></div></div><div><div><div><span>Pathname</span></div><div><code></code></div><div><div><button type=button>Routes</button><button type=button>Matches</button><button type=button>History</button></div><div><div>age / staleTime / gcTime</div></div></div><div>`), _tmpl$9 = /* @__PURE__ */ template(`<div><span>masked`), _tmpl$0 = /* @__PURE__ */ template(`<div role=button><div>`), _tmpl$1 = /* @__PURE__ */ template(`<li><div>`), _tmpl$10 = /* @__PURE__ */ template(`<li>This panel displays the most recent 15 navigations.`), _tmpl$11 = /* @__PURE__ */ template(`<div><div><div>Cached Matches</div><div>age / staleTime / gcTime</div></div><div>`), _tmpl$12 = /* @__PURE__ */ template(`<div><div>Match Details</div><div><div><div><div></div></div><div><div>ID:</div><div><code></code></div></div><div><div>State:</div><div></div></div><div><div>Last Updated:</div><div></div></div></div></div><div>Explorer</div><div>`), _tmpl$13 = /* @__PURE__ */ template(`<div>Loader Data`), _tmpl$14 = /* @__PURE__ */ template(`<div><div><span>Search Params</span></div><div>`), _tmpl$15 = /* @__PURE__ */ template(`<span style=margin-left:0.5rem;>`), _tmpl$16 = /* @__PURE__ */ template(`<button type=button style=cursor:pointer; aria-label=\"Copy value to clipboard\">`);\nconst HISTORY_LIMIT = 15;\nfunction Logo(props) {\n const {\n className: className$1,\n ...rest\n } = props;\n const styles = useStyles$1();\n return (() => {\n var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;\n spread(_el$, mergeProps(rest, {\n get [\"class\"]() {\n return clsx(styles().logo, className$1 ? className$1() : \"\");\n }\n }), false, true);\n createRenderEffect((_p$) => {\n var _v$ = styles().tanstackLogo, _v$2 = styles().routerLogo;\n _v$ !== _p$.e && className(_el$2, _p$.e = _v$);\n _v$2 !== _p$.t && className(_el$3, _p$.t = _v$2);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$;\n })();\n}\nfunction NavigateLink(props) {\n return (() => {\n var _el$4 = _tmpl$2(), _el$5 = _el$4.firstChild;\n _el$4.style.setProperty(\"display\", \"flex\");\n _el$4.style.setProperty(\"align-items\", \"center\");\n _el$4.style.setProperty(\"width\", \"100%\");\n insert(_el$4, () => props.left, _el$5);\n _el$5.style.setProperty(\"flex-grow\", \"1\");\n _el$5.style.setProperty(\"min-width\", \"0\");\n insert(_el$5, () => props.children);\n insert(_el$4, () => props.right, null);\n createRenderEffect(() => className(_el$4, props.class));\n return _el$4;\n })();\n}\nfunction RouteComp({\n routerState,\n router,\n route,\n isRoot,\n activeId,\n setActiveId\n}) {\n const styles = useStyles$1();\n const matches = createMemo(() => routerState().pendingMatches || routerState().matches);\n const match = createMemo(() => routerState().matches.find((d) => d.routeId === route.id));\n const param = createMemo(() => {\n try {\n if (match()?.params) {\n const p = match()?.params;\n const r = route.path || trimPath(route.id);\n if (r.startsWith(\"$\")) {\n const trimmed = r.slice(1);\n if (p[trimmed]) {\n return `(${p[trimmed]})`;\n }\n }\n }\n return \"\";\n } catch (error) {\n return \"\";\n }\n });\n const navigationTarget = createMemo(() => {\n if (isRoot) return void 0;\n if (!route.path) return void 0;\n const allParams = Object.assign({}, ...matches().map((m) => m.params));\n const interpolated = interpolatePath({\n path: route.fullPath,\n params: allParams,\n leaveWildcards: false,\n leaveParams: false,\n decodeCharMap: router().pathParamsDecodeCharMap\n });\n return !interpolated.isMissingParams ? interpolated.interpolatedPath : void 0;\n });\n return (() => {\n var _el$6 = _tmpl$5(), _el$7 = _el$6.firstChild, _el$8 = _el$7.firstChild;\n _el$7.$$click = () => {\n if (match()) {\n setActiveId(activeId() === route.id ? \"\" : route.id);\n }\n };\n insert(_el$7, createComponent(NavigateLink, {\n get [\"class\"]() {\n return clsx(styles().routesRow(!!match()));\n },\n get left() {\n return createComponent(Show, {\n get when() {\n return navigationTarget();\n },\n children: (navigate) => createComponent(NavigateButton, {\n get to() {\n return navigate();\n },\n router\n })\n });\n },\n get right() {\n return createComponent(AgeTicker, {\n get match() {\n return match();\n },\n router\n });\n },\n get children() {\n return [(() => {\n var _el$9 = _tmpl$3(), _el$0 = _el$9.firstChild;\n insert(_el$9, () => isRoot ? rootRouteId : route.path || trimPath(route.id), _el$0);\n createRenderEffect(() => className(_el$9, styles().code));\n return _el$9;\n })(), (() => {\n var _el$1 = _tmpl$4();\n insert(_el$1, param);\n createRenderEffect(() => className(_el$1, styles().routeParamInfo));\n return _el$1;\n })()];\n }\n }), null);\n insert(_el$6, (() => {\n var _c$ = createMemo(() => !!route.children?.length);\n return () => _c$() ? (() => {\n var _el$10 = _tmpl$6();\n insert(_el$10, () => [...route.children].sort((a, b) => {\n return a.rank - b.rank;\n }).map((r) => createComponent(RouteComp, {\n routerState,\n router,\n route: r,\n activeId,\n setActiveId\n })));\n createRenderEffect(() => className(_el$10, styles().nestedRouteRow(!!isRoot)));\n return _el$10;\n })() : null;\n })(), null);\n createRenderEffect((_p$) => {\n var _v$3 = `Open match details for ${route.id}`, _v$4 = clsx(styles().routesRowContainer(route.id === activeId(), !!match())), _v$5 = clsx(styles().matchIndicator(getRouteStatusColor(matches(), route)));\n _v$3 !== _p$.e && setAttribute(_el$7, \"aria-label\", _p$.e = _v$3);\n _v$4 !== _p$.t && className(_el$7, _p$.t = _v$4);\n _v$5 !== _p$.a && className(_el$8, _p$.a = _v$5);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0\n });\n return _el$6;\n })();\n}\nconst BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel2({\n ...props\n}) {\n const {\n isOpen = true,\n setIsOpen,\n handleDragStart,\n router,\n routerState,\n shadowDOMTarget,\n ...panelProps\n } = props;\n const {\n onCloseClick\n } = useDevtoolsOnClose();\n const styles = useStyles$1();\n const {\n className: className$1,\n style,\n ...otherPanelProps\n } = panelProps;\n invariant(router, \"No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.\");\n const [currentTab, setCurrentTab] = useLocalStorage(\"tanstackRouterDevtoolsActiveTab\", \"routes\");\n const [activeId, setActiveId] = useLocalStorage(\"tanstackRouterDevtoolsActiveRouteId\", \"\");\n const [history, setHistory] = createSignal([]);\n const [hasHistoryOverflowed, setHasHistoryOverflowed] = createSignal(false);\n createEffect(() => {\n const matches = routerState().matches;\n const currentMatch = matches[matches.length - 1];\n if (!currentMatch) {\n return;\n }\n const historyUntracked = untrack(() => history());\n const lastMatch = historyUntracked[0];\n const sameLocation = lastMatch && lastMatch.pathname === currentMatch.pathname && JSON.stringify(lastMatch.search ?? {}) === JSON.stringify(currentMatch.search ?? {});\n if (!lastMatch || !sameLocation) {\n if (historyUntracked.length >= HISTORY_LIMIT) {\n setHasHistoryOverflowed(true);\n }\n setHistory((prev) => {\n const newHistory = [currentMatch, ...prev];\n newHistory.splice(HISTORY_LIMIT);\n return newHistory;\n });\n }\n });\n const activeMatch = createMemo(() => {\n const matches = [...routerState().pendingMatches ?? [], ...routerState().matches, ...routerState().cachedMatches];\n return matches.find((d) => d.routeId === activeId() || d.id === activeId());\n });\n const hasSearch = createMemo(() => Object.keys(routerState().location.search).length);\n const explorerState = createMemo(() => {\n return {\n ...router(),\n state: routerState()\n };\n });\n const routerExplorerValue = createMemo(() => Object.fromEntries(multiSortBy(Object.keys(explorerState()), [\"state\", \"routesById\", \"routesByPath\", \"flatRoutes\", \"options\", \"manifest\"].map((d) => (dd) => dd !== d)).map((key) => [key, explorerState()[key]]).filter((d) => typeof d[1] !== \"function\" && ![\"__store\", \"basepath\", \"injectedHtml\", \"subscribers\", \"latestLoadPromise\", \"navigateTimeout\", \"resetNextScroll\", \"tempLocationKey\", \"latestLocation\", \"routeTree\", \"history\"].includes(d[0]))));\n const activeMatchLoaderData = createMemo(() => activeMatch()?.loaderData);\n const activeMatchValue = createMemo(() => activeMatch());\n const locationSearchValue = createMemo(() => routerState().location.search);\n return (() => {\n var _el$11 = _tmpl$8(), _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$14 = _el$12.nextSibling, _el$15 = _el$14.firstChild, _el$16 = _el$15.nextSibling, _el$17 = _el$16.firstChild, _el$18 = _el$14.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild;\n _el$20.firstChild;\n var _el$22 = _el$20.nextSibling, _el$23 = _el$22.firstChild, _el$24 = _el$22.nextSibling, _el$25 = _el$24.firstChild, _el$26 = _el$25.firstChild, _el$27 = _el$26.nextSibling, _el$28 = _el$27.nextSibling, _el$29 = _el$25.nextSibling, _el$30 = _el$24.nextSibling;\n spread(_el$11, mergeProps({\n get [\"class\"]() {\n return clsx(styles().devtoolsPanel, \"TanStackRouterDevtoolsPanel\", className$1 ? className$1() : \"\");\n },\n get style() {\n return style ? style() : \"\";\n }\n }, otherPanelProps), false, true);\n insert(_el$11, handleDragStart ? (() => {\n var _el$34 = _tmpl$6();\n addEventListener(_el$34, \"mousedown\", handleDragStart, true);\n createRenderEffect(() => className(_el$34, styles().dragHandle));\n return _el$34;\n })() : null, _el$12);\n _el$12.$$click = (e) => {\n if (setIsOpen) {\n setIsOpen(false);\n }\n onCloseClick(e);\n };\n insert(_el$15, createComponent(Logo, {\n \"aria-hidden\": true,\n onClick: (e) => {\n if (setIsOpen) {\n setIsOpen(false);\n }\n onCloseClick(e);\n }\n }));\n insert(_el$17, createComponent(Explorer, {\n label: \"Router\",\n value: routerExplorerValue,\n defaultExpanded: {\n state: {},\n context: {},\n options: {}\n },\n filterSubEntries: (subEntries) => {\n return subEntries.filter((d) => typeof d.value() !== \"function\");\n }\n }));\n insert(_el$20, (() => {\n var _c$2 = createMemo(() => !!routerState().location.maskedLocation);\n return () => _c$2() ? (() => {\n var _el$35 = _tmpl$9(), _el$36 = _el$35.firstChild;\n createRenderEffect((_p$) => {\n var _v$24 = styles().maskedBadgeContainer, _v$25 = styles().maskedBadge;\n _v$24 !== _p$.e && className(_el$35, _p$.e = _v$24);\n _v$25 !== _p$.t && className(_el$36, _p$.t = _v$25);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$35;\n })() : null;\n })(), null);\n insert(_el$23, () => routerState().location.pathname);\n insert(_el$22, (() => {\n var _c$3 = createMemo(() => !!routerState().location.maskedLocation);\n return () => _c$3() ? (() => {\n var _el$37 = _tmpl$4();\n insert(_el$37, () => routerState().location.maskedLocation?.pathname);\n createRenderEffect(() => className(_el$37, styles().maskedLocation));\n return _el$37;\n })() : null;\n })(), null);\n _el$26.$$click = () => {\n setCurrentTab(\"routes\");\n };\n _el$27.$$click = () => {\n setCurrentTab(\"matches\");\n };\n _el$28.$$click = () => {\n setCurrentTab(\"history\");\n };\n insert(_el$30, createComponent(Switch, {\n get children() {\n return [createComponent(Match, {\n get when() {\n return currentTab() === \"routes\";\n },\n get children() {\n return createComponent(RouteComp, {\n routerState,\n router,\n get route() {\n return router().routeTree;\n },\n isRoot: true,\n activeId,\n setActiveId\n });\n }\n }), createComponent(Match, {\n get when() {\n return currentTab() === \"matches\";\n },\n get children() {\n var _el$31 = _tmpl$6();\n insert(_el$31, () => (routerState().pendingMatches?.length ? routerState().pendingMatches : routerState().matches)?.map((match, _i) => {\n return (() => {\n var _el$38 = _tmpl$0(), _el$39 = _el$38.firstChild;\n _el$38.$$click = () => setActiveId(activeId() === match.id ? \"\" : match.id);\n insert(_el$38, createComponent(NavigateLink, {\n get left() {\n return createComponent(NavigateButton, {\n get to() {\n return match.pathname;\n },\n get params() {\n return match.params;\n },\n get search() {\n return match.search;\n },\n router\n });\n },\n get right() {\n return createComponent(AgeTicker, {\n match,\n router\n });\n },\n get children() {\n var _el$40 = _tmpl$4();\n insert(_el$40, () => `${match.routeId === rootRouteId ? rootRouteId : match.pathname}`);\n createRenderEffect(() => className(_el$40, styles().matchID));\n return _el$40;\n }\n }), null);\n createRenderEffect((_p$) => {\n var _v$26 = `Open match details for ${match.id}`, _v$27 = clsx(styles().matchRow(match === activeMatch())), _v$28 = clsx(styles().matchIndicator(getStatusColor(match)));\n _v$26 !== _p$.e && setAttribute(_el$38, \"aria-label\", _p$.e = _v$26);\n _v$27 !== _p$.t && className(_el$38, _p$.t = _v$27);\n _v$28 !== _p$.a && className(_el$39, _p$.a = _v$28);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0\n });\n return _el$38;\n })();\n }));\n return _el$31;\n }\n }), createComponent(Match, {\n get when() {\n return currentTab() === \"history\";\n },\n get children() {\n var _el$32 = _tmpl$7(), _el$33 = _el$32.firstChild;\n insert(_el$33, createComponent(For, {\n get each() {\n return history();\n },\n children: (match, index) => (() => {\n var _el$41 = _tmpl$1(), _el$42 = _el$41.firstChild;\n insert(_el$41, createComponent(NavigateLink, {\n get left() {\n return createComponent(NavigateButton, {\n get to() {\n return match.pathname;\n },\n get params() {\n return match.params;\n },\n get search() {\n return match.search;\n },\n router\n });\n },\n get right() {\n return createComponent(AgeTicker, {\n match,\n router\n });\n },\n get children() {\n var _el$43 = _tmpl$4();\n insert(_el$43, () => `${match.routeId === rootRouteId ? rootRouteId : match.pathname}`);\n createRenderEffect(() => className(_el$43, styles().matchID));\n return _el$43;\n }\n }), null);\n createRenderEffect((_p$) => {\n var _v$29 = clsx(styles().matchRow(match === activeMatch())), _v$30 = clsx(styles().matchIndicator(index() === 0 ? \"green\" : \"gray\"));\n _v$29 !== _p$.e && className(_el$41, _p$.e = _v$29);\n _v$30 !== _p$.t && className(_el$42, _p$.t = _v$30);\n return _p$;\n }, {\n e: void 0,\n t: void 0\n });\n return _el$41;\n })()\n }), null);\n insert(_el$33, (() => {\n var _c$4 = createMemo(() => !!hasHistoryOverflowed());\n return () => _c$4() ? (() => {\n var _el$44 = _tmpl$10();\n createRenderEffect(() => className(_el$44, styles().historyOverflowContainer));\n return _el$44;\n })() : null;\n })(), null);\n return _el$32;\n }\n })];\n }\n }));\n insert(_el$18, (() => {\n var _c$5 = createMemo(() => !!routerState().cachedMatches.length);\n return () => _c$5() ? (() => {\n var _el$45 = _tmpl$11(), _el$46 = _el$45.firstChild, _el$47 = _el$46.firstChild, _el$48 = _el$47.nextSibling, _el$49 = _el$46.nextSibling;\n insert(_el$49, () => routerState().cachedMatches.map((match) => {\n return (() => {\n var _el$50 = _tmpl$0(), _el$51 = _el$50.firstChild;\n _el$50.$$click = () => setActiveId(activeId() === match.id ? \"\" : match.id);\n insert(_el$50, createComponent(NavigateLink, {\n get left() {\n return createComponent(NavigateButton, {\n get to() {\n return match.pathname;\n },\n get params() {\n return match.params;\n },\n get search() {\n return match.search;\n },\n router\n });\n },\n get right() {\n return createComponent(AgeTicker, {\n match,\n router\n });\n },\n get children() {\n var _el$52 = _tmpl$4();\n insert(_el$52, () => `${match.id}`);\n createRenderEffect(() => className(_el$52, styles().matchID));\n return _el$52;\n }\n }), null);\n createRenderEffect((_p$) => {\n var _v$34 = `Open match details for ${match.id}`, _v$35 = clsx(styles().matchRow(match === activeMatch())), _v$36 = clsx(styles().matchIndicator(getStatusColor(match)));\n _v$34 !== _p$.e && setAttribute(_el$50, \"aria-label\", _p$.e = _v$34);\n _v$35 !== _p$.t && className(_el$50, _p$.t = _v$35);\n _v$36 !== _p$.a && className(_el$51, _p$.a = _v$36);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0\n });\n return _el$50;\n })();\n }));\n createRenderEffect((_p$) => {\n var _v$31 = styles().cachedMatchesContainer, _v$32 = styles().detailsHeader, _v$33 = styles().detailsHeaderInfo;\n _v$31 !== _p$.e && className(_el$45, _p$.e = _v$31);\n _v$32 !== _p$.t && className(_el$46, _p$.t = _v$32);\n _v$33 !== _p$.a && className(_el$48, _p$.a = _v$33);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0\n });\n return _el$45;\n })() : null;\n })(), null);\n insert(_el$11, (() => {\n var _c$6 = createMemo(() => !!(activeMatch() && activeMatch()?.status));\n return () => _c$6() ? (() => {\n var _el$53 = _tmpl$12(), _el$54 = _el$53.firstChild, _el$55 = _el$54.nextSibling, _el$56 = _el$55.firstChild, _el$57 = _el$56.firstChild, _el$58 = _el$57.firstChild, _el$59 = _el$57.nextSibling, _el$60 = _el$59.firstChild, _el$61 = _el$60.nextSibling, _el$62 = _el$61.firstChild, _el$63 = _el$59.nextSibling, _el$64 = _el$63.firstChild, _el$65 = _el$64.nextSibling, _el$66 = _el$63.nextSibling, _el$67 = _el$66.firstChild, _el$68 = _el$67.nextSibling, _el$69 = _el$55.nextSibling, _el$70 = _el$69.nextSibling;\n insert(_el$58, (() => {\n var _c$8 = createMemo(() => !!(activeMatch()?.status === \"success\" && activeMatch()?.isFetching));\n return () => _c$8() ? \"fetching\" : activeMatch()?.status;\n })());\n insert(_el$62, () => activeMatch()?.id);\n insert(_el$65, (() => {\n var _c$9 = createMemo(() => !!routerState().pendingMatches?.find((d) => d.id === activeMatch()?.id));\n return () => _c$9() ? \"Pending\" : routerState().matches.find((d) => d.id === activeMatch()?.id) ? \"Active\" : \"Cached\";\n })());\n insert(_el$68, (() => {\n var _c$0 = createMemo(() => !!activeMatch()?.updatedAt);\n return () => _c$0() ? new Date(activeMatch()?.updatedAt).toLocaleTimeString() : \"N/A\";\n })());\n insert(_el$53, (() => {\n var _c$1 = createMemo(() => !!activeMatchLoaderData());\n return () => _c$1() ? [(() => {\n var _el$71 = _tmpl$13();\n createRenderEffect(() => className(_el$71, styles().detailsHeader));\n return _el$71;\n })(), (() => {\n var _el$72 = _tmpl$6();\n insert(_el$72, createComponent(Explorer, {\n label: \"loaderData\",\n value: activeMatchLoaderData,\n defaultExpanded: {}\n }));\n createRenderEffect(() => className(_el$72, styles().detailsContent));\n return _el$72;\n })()] : null;\n })(), _el$69);\n insert(_el$70, createComponent(Explorer, {\n label: \"Match\",\n value: activeMatchValue,\n defaultExpanded: {}\n }));\n createRenderEffect((_p$) => {\n var _v$37 = styles().thirdContainer, _v$38 = styles().detailsHeader, _v$39 = styles().matchDetails, _v$40 = styles().matchStatus(activeMatch()?.status, activeMatch()?.isFetching), _v$41 = styles().matchDetailsInfoLabel, _v$42 = styles().matchDetailsInfo, _v$43 = styles().matchDetailsInfoLabel, _v$44 = styles().matchDetailsInfo, _v$45 = styles().matchDetailsInfoLabel, _v$46 = styles().matchDetailsInfo, _v$47 = styles().detailsHeader, _v$48 = styles().detailsContent;\n _v$37 !== _p$.e && className(_el$53, _p$.e = _v$37);\n _v$38 !== _p$.t && className(_el$54, _p$.t = _v$38);\n _v$39 !== _p$.a && className(_el$56, _p$.a = _v$39);\n _v$40 !== _p$.o && className(_el$57, _p$.o = _v$40);\n _v$41 !== _p$.i && className(_el$59, _p$.i = _v$41);\n _v$42 !== _p$.n && className(_el$61, _p$.n = _v$42);\n _v$43 !== _p$.s && className(_el$63, _p$.s = _v$43);\n _v$44 !== _p$.h && className(_el$65, _p$.h = _v$44);\n _v$45 !== _p$.r && className(_el$66, _p$.r = _v$45);\n _v$46 !== _p$.d && className(_el$68, _p$.d = _v$46);\n _v$47 !== _p$.l && className(_el$69, _p$.l = _v$47);\n _v$48 !== _p$.u && className(_el$70, _p$.u = _v$48);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0,\n o: void 0,\n i: void 0,\n n: void 0,\n s: void 0,\n h: void 0,\n r: void 0,\n d: void 0,\n l: void 0,\n u: void 0\n });\n return _el$53;\n })() : null;\n })(), null);\n insert(_el$11, (() => {\n var _c$7 = createMemo(() => !!hasSearch());\n return () => _c$7() ? (() => {\n var _el$73 = _tmpl$14(), _el$74 = _el$73.firstChild;\n _el$74.firstChild;\n var _el$76 = _el$74.nextSibling;\n insert(_el$74, typeof navigator !== \"undefined\" ? (() => {\n var _el$77 = _tmpl$15();\n insert(_el$77, createComponent(CopyButton, {\n getValue: () => {\n const search = routerState().location.search;\n return JSON.stringify(search);\n }\n }));\n return _el$77;\n })() : null, null);\n insert(_el$76, createComponent(Explorer, {\n value: locationSearchValue,\n get defaultExpanded() {\n return Object.keys(routerState().location.search).reduce((obj, next) => {\n obj[next] = {};\n return obj;\n }, {});\n }\n }));\n createRenderEffect((_p$) => {\n var _v$49 = styles().fourthContainer, _v$50 = styles().detailsHeader, _v$51 = styles().detailsContent;\n _v$49 !== _p$.e && className(_el$73, _p$.e = _v$49);\n _v$50 !== _p$.t && className(_el$74, _p$.t = _v$50);\n _v$51 !== _p$.a && className(_el$76, _p$.a = _v$51);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0\n });\n return _el$73;\n })() : null;\n })(), null);\n createRenderEffect((_p$) => {\n var _v$6 = styles().panelCloseBtn, _v$7 = styles().panelCloseBtnIcon, _v$8 = styles().firstContainer, _v$9 = styles().row, _v$0 = styles().routerExplorerContainer, _v$1 = styles().routerExplorer, _v$10 = styles().secondContainer, _v$11 = styles().matchesContainer, _v$12 = styles().detailsHeader, _v$13 = styles().detailsContent, _v$14 = styles().detailsHeader, _v$15 = styles().routeMatchesToggle, _v$16 = currentTab() === \"routes\", _v$17 = clsx(styles().routeMatchesToggleBtn(currentTab() === \"routes\", true)), _v$18 = currentTab() === \"matches\", _v$19 = clsx(styles().routeMatchesToggleBtn(currentTab() === \"matches\", true)), _v$20 = currentTab() === \"history\", _v$21 = clsx(styles().routeMatchesToggleBtn(currentTab() === \"history\", false)), _v$22 = styles().detailsHeaderInfo, _v$23 = clsx(styles().routesContainer);\n _v$6 !== _p$.e && className(_el$12, _p$.e = _v$6);\n _v$7 !== _p$.t && setAttribute(_el$13, \"class\", _p$.t = _v$7);\n _v$8 !== _p$.a && className(_el$14, _p$.a = _v$8);\n _v$9 !== _p$.o && className(_el$15, _p$.o = _v$9);\n _v$0 !== _p$.i && className(_el$16, _p$.i = _v$0);\n _v$1 !== _p$.n && className(_el$17, _p$.n = _v$1);\n _v$10 !== _p$.s && className(_el$18, _p$.s = _v$10);\n _v$11 !== _p$.h && className(_el$19, _p$.h = _v$11);\n _v$12 !== _p$.r && className(_el$20, _p$.r = _v$12);\n _v$13 !== _p$.d && className(_el$22, _p$.d = _v$13);\n _v$14 !== _p$.l && className(_el$24, _p$.l = _v$14);\n _v$15 !== _p$.u && className(_el$25, _p$.u = _v$15);\n _v$16 !== _p$.c && (_el$26.disabled = _p$.c = _v$16);\n _v$17 !== _p$.w && className(_el$26, _p$.w = _v$17);\n _v$18 !== _p$.m && (_el$27.disabled = _p$.m = _v$18);\n _v$19 !== _p$.f && className(_el$27, _p$.f = _v$19);\n _v$20 !== _p$.y && (_el$28.disabled = _p$.y = _v$20);\n _v$21 !== _p$.g && className(_el$28, _p$.g = _v$21);\n _v$22 !== _p$.p && className(_el$29, _p$.p = _v$22);\n _v$23 !== _p$.b && className(_el$30, _p$.b = _v$23);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0,\n o: void 0,\n i: void 0,\n n: void 0,\n s: void 0,\n h: void 0,\n r: void 0,\n d: void 0,\n l: void 0,\n u: void 0,\n c: void 0,\n w: void 0,\n m: void 0,\n f: void 0,\n y: void 0,\n g: void 0,\n p: void 0,\n b: void 0\n });\n return _el$11;\n })();\n};\nfunction CopyButton({\n getValue\n}) {\n const [copied, setCopied] = createSignal(false);\n let timeoutId = null;\n const handleCopy = async () => {\n if (typeof navigator === \"undefined\" || !navigator.clipboard?.writeText) {\n console.warn(\"TanStack Router Devtools: Clipboard API unavailable\");\n return;\n }\n try {\n const value = getValue();\n await navigator.clipboard.writeText(value);\n setCopied(true);\n if (timeoutId) clearTimeout(timeoutId);\n timeoutId = setTimeout(() => setCopied(false), 2500);\n } catch (e) {\n console.error(\"TanStack Router Devtools: Failed to copy\", e);\n }\n };\n onCleanup(() => {\n if (timeoutId) clearTimeout(timeoutId);\n });\n return (() => {\n var _el$78 = _tmpl$16();\n _el$78.$$click = handleCopy;\n insert(_el$78, () => copied() ? \"✅\" : \"📋\");\n createRenderEffect(() => setAttribute(_el$78, \"title\", copied() ? \"Copied!\" : \"Copy\"));\n return _el$78;\n })();\n}\ndelegateEvents([\"click\", \"mousedown\"]);\nconst BaseTanStackRouterDevtoolsPanel$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n BaseTanStackRouterDevtoolsPanel,\n default: BaseTanStackRouterDevtoolsPanel\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n BaseTanStackRouterDevtoolsPanel as B,\n useIsMounted as a,\n useStyles$1 as b,\n BaseTanStackRouterDevtoolsPanel$1 as c,\n useLocalStorage as u\n};\n//# sourceMappingURL=BaseTanStackRouterDevtoolsPanel-KIEU40vQ.js.map\n","import { c as createUniqueId, t as template, s as setAttribute, a as createSignal, b as createEffect, d as createMemo, e as createComponent, D as DevtoolsOnCloseContext, m as mergeProps, f as spread, i as insert, g as createRenderEffect, h as className, j as Dynamic } from \"./index-DX7UIGS3.js\";\nimport { clsx } from \"clsx\";\nimport { u as useLocalStorage, a as useIsMounted, b as useStyles, B as BaseTanStackRouterDevtoolsPanel } from \"./BaseTanStackRouterDevtoolsPanel-KIEU40vQ.js\";\nvar _tmpl$$1 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg enable-background=\"new 0 0 634 633\"viewBox=\"0 0 634 633\"><g transform=translate(1)><linearGradient x1=-641.486 x2=-641.486 y1=856.648 y2=855.931 gradientTransform=\"matrix(633 0 0 -633 406377 542258)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#6bdaff></stop><stop offset=0.319 stop-color=#f9ffb5></stop><stop offset=0.706 stop-color=#ffa770></stop><stop offset=1 stop-color=#ff7373></stop></linearGradient><circle cx=316.5 cy=316.5 r=316.5 fill-rule=evenodd clip-rule=evenodd></circle><defs><filter width=454 height=396.9 x=-137.5 y=412 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=-137.5 y=412 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=89.5 cy=610.5 fill=#015064 fill-rule=evenodd stroke=#00CFE2 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=316.5 y=412 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=316.5 y=412 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=543.5 cy=610.5 fill=#015064 fill-rule=evenodd stroke=#00CFE2 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=-137.5 y=450 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=-137.5 y=450 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=89.5 cy=648.5 fill=#015064 fill-rule=evenodd stroke=#00A8B8 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=316.5 y=450 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=316.5 y=450 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=543.5 cy=648.5 fill=#015064 fill-rule=evenodd stroke=#00A8B8 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=-137.5 y=486 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=-137.5 y=486 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=89.5 cy=684.5 fill=#015064 fill-rule=evenodd stroke=#007782 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=454 height=396.9 x=316.5 y=486 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=454 height=396.9 x=316.5 y=486 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><ellipse cx=543.5 cy=684.5 fill=#015064 fill-rule=evenodd stroke=#007782 stroke-width=25 clip-rule=evenodd rx=214.5 ry=186></ellipse><defs><filter width=176.9 height=129.3 x=272.2 y=308 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=176.9 height=129.3 x=272.2 y=308 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><g><path fill=none stroke=#000 stroke-linecap=round stroke-linejoin=bevel stroke-width=11 d=\"M436 403.2l-5 28.6m-140-90.3l-10.9 62m52.8-19.4l-4.3 27.1\"></path><linearGradient x1=-645.656 x2=-646.499 y1=854.878 y2=854.788 gradientTransform=\"matrix(-184.159 -32.4722 11.4608 -64.9973 -128419.844 34938.836)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ee2700></stop><stop offset=1 stop-color=#ff008e></stop></linearGradient><path fill-rule=evenodd d=\"M344.1 363l97.7 17.2c5.8 2.1 8.2 6.2 7.1 12.1-1 5.9-4.7 9.2-11 9.9l-106-18.7-57.5-59.2c-3.2-4.8-2.9-9.1.8-12.8 3.7-3.7 8.3-4.4 13.7-2.1l55.2 53.6z\"clip-rule=evenodd></path><path fill=#D8D8D8 fill-rule=evenodd stroke=#FFF stroke-linecap=round stroke-linejoin=bevel stroke-width=7 d=\"M428.3 384.5l.9-6.5m-33.9 1.5l.9-6.5m-34 .5l.9-6.1m-38.9-16.1l4.2-3.9m-25.2-16.1l4.2-3.9\"clip-rule=evenodd></path></g><defs><filter width=280.6 height=317.4 x=73.2 y=113.9 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=280.6 height=317.4 x=73.2 y=113.9 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><g><linearGradient x1=-646.8 x2=-646.8 y1=854.844 y2=853.844 gradientTransform=\"matrix(-100.1751 48.8587 -97.9753 -200.879 19124.773 203538.61)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#a17500></stop><stop offset=1 stop-color=#5d2100></stop></linearGradient><path fill-rule=evenodd d=\"M192.3 203c8.1 37.3 14 73.6 17.8 109.1 3.8 35.4 2.8 75.2-2.9 119.2l61.2-16.7c-15.6-59-25.2-97.9-28.6-116.6-3.4-18.7-10.8-51.8-22.2-99.6l-25.3 4.6\"clip-rule=evenodd></path><linearGradient x1=-635.467 x2=-635.467 y1=852.115 y2=851.115 gradientTransform=\"matrix(92.6873 4.8575 2.0257 -38.6535 57323.695 36176.047)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M195 183.9s-12.6-22.1-36.5-29.9c-15.9-5.2-34.4-1.5-55.5 11.1 15.9 14.3 29.5 22.6 40.7 24.9 16.8 3.6 51.3-6.1 51.3-6.1z\"clip-rule=evenodd></path><linearGradient x1=-636.573 x2=-636.573 y1=855.444 y2=854.444 gradientTransform=\"matrix(109.9945 5.7646 6.3597 -121.3507 64719.133 107659.336)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M194.9 184.5s-47.5-8.5-83.2 15.7c-23.8 16.2-34.3 49.3-31.6 99.3 30.3-27.8 52.1-48.5 65.2-61.9 19.8-20 49.6-53.1 49.6-53.1z\"clip-rule=evenodd></path><linearGradient x1=-632.145 x2=-632.145 y1=854.174 y2=853.174 gradientTransform=\"matrix(62.9558 3.2994 3.5021 -66.8246 37035.367 59284.227)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M195 183.9c-.8-21.9 6-38 20.6-48.2 14.6-10.2 29.8-15.3 45.5-15.3-6.1 21.4-14.5 35.8-25.2 43.4-10.7 7.5-24.4 14.2-40.9 20.1z\"clip-rule=evenodd></path><linearGradient x1=-638.224 x2=-638.224 y1=853.801 y2=852.801 gradientTransform=\"matrix(152.4666 7.9904 3.0934 -59.0251 94939.86 55646.855)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M194.9 184.5c31.9-30 64.1-39.7 96.7-29 32.6 10.7 50.8 30.4 54.6 59.1-35.2-5.5-60.4-9.6-75.8-12.1-15.3-2.6-40.5-8.6-75.5-18z\"clip-rule=evenodd></path><linearGradient x1=-637.723 x2=-637.723 y1=855.103 y2=854.103 gradientTransform=\"matrix(136.467 7.1519 5.2165 -99.5377 82830.875 89859.578)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M194.9 184.5c35.8-7.6 65.6-.2 89.2 22 23.6 22.2 37.7 49 42.3 80.3-39.8-9.7-68.3-23.8-85.5-42.4-17.2-18.5-32.5-38.5-46-59.9z\"clip-rule=evenodd></path><linearGradient x1=-631.79 x2=-631.79 y1=855.872 y2=854.872 gradientTransform=\"matrix(60.8683 3.19 8.7771 -167.4773 31110.818 145537.61)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#2f8a00></stop><stop offset=1 stop-color=#90ff57></stop></linearGradient><path fill-rule=evenodd stroke=#2F8A00 stroke-width=13 d=\"M194.9 184.5c-33.6 13.8-53.6 35.7-60.1 65.6-6.5 29.9-3.6 63.1 8.7 99.6 27.4-40.3 43.2-69.6 47.4-88 4.2-18.3 5.5-44.1 4-77.2z\"clip-rule=evenodd></path><path fill=none stroke=#2F8A00 stroke-linecap=round stroke-width=8 d=\"M196.5 182.3c-14.8 21.6-25.1 41.4-30.8 59.4-5.7 18-9.4 33-11.1 45.1\"></path><path fill=none stroke=#2F8A00 stroke-linecap=round stroke-width=8 d=\"M194.8 185.7c-24.4 1.7-43.8 9-58.1 21.8-14.3 12.8-24.7 25.4-31.3 37.8m99.1-68.9c29.7-6.7 52-8.4 67-5 15 3.4 26.9 8.7 35.8 15.9m-110.8-5.9c20.3 9.9 38.2 20.5 53.9 31.9 15.7 11.4 27.4 22.1 35.1 32\"></path></g><defs><filter width=532 height=633 x=50.5 y=399 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=532 height=633 x=50.5 y=399 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><linearGradient x1=-641.104 x2=-641.278 y1=856.577 y2=856.183 gradientTransform=\"matrix(532 0 0 -633 341484.5 542657)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#fff400></stop><stop offset=1 stop-color=#3c8700></stop></linearGradient><ellipse cx=316.5 cy=715.5 fill-rule=evenodd clip-rule=evenodd rx=266 ry=316.5></ellipse><defs><filter width=288 height=283 x=391 y=-24 filterUnits=userSpaceOnUse><feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\"></feColorMatrix></filter></defs><mask width=288 height=283 x=391 y=-24 maskUnits=userSpaceOnUse><g><circle cx=316.5 cy=316.5 r=316.5 fill=#FFF fill-rule=evenodd clip-rule=evenodd></circle></g></mask><g><g transform=\"translate(397 -24)\"><linearGradient x1=-1036.672 x2=-1036.672 y1=880.018 y2=879.018 gradientTransform=\"matrix(227 0 0 -227 235493 199764)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffdf00></stop><stop offset=1 stop-color=#ff9d00></stop></linearGradient><circle cx=168.5 cy=113.5 r=113.5 fill-rule=evenodd clip-rule=evenodd></circle><linearGradient x1=-1017.329 x2=-1018.602 y1=658.003 y2=657.998 gradientTransform=\"matrix(30 0 0 -1 30558 771)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M30 113H0\"></path><linearGradient x1=-1014.501 x2=-1015.774 y1=839.985 y2=839.935 gradientTransform=\"matrix(26.5 0 0 -5.5 26925 4696.5)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M33.5 79.5L7 74\"></path><linearGradient x1=-1016.59 x2=-1017.862 y1=852.671 y2=852.595 gradientTransform=\"matrix(29 0 0 -8 29523 6971)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M34 146l-29 8\"></path><linearGradient x1=-1011.984 x2=-1013.257 y1=863.523 y2=863.229 gradientTransform=\"matrix(24 0 0 -13 24339 11407)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M45 177l-24 13\"></path><linearGradient x1=-1006.673 x2=-1007.946 y1=869.279 y2=868.376 gradientTransform=\"matrix(20 0 0 -19 20205 16720)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M67 204l-20 19\"></path><linearGradient x1=-992.85 x2=-993.317 y1=871.258 y2=870.258 gradientTransform=\"matrix(13.8339 0 0 -22.8467 13825.796 20131.938)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M94.4 227l-13.8 22.8\"></path><linearGradient x1=-953.835 x2=-953.965 y1=871.9 y2=870.9 gradientTransform=\"matrix(7.5 0 0 -24.5 7278 21605)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M127.5 243.5L120 268\"></path><linearGradient x1=244.504 x2=244.496 y1=871.898 y2=870.898 gradientTransform=\"matrix(.5 0 0 -24.5 45.5 21614)\"gradientUnits=userSpaceOnUse><stop offset=0 stop-color=#ffa400></stop><stop offset=1 stop-color=#ff5e00></stop></linearGradient><path fill=none stroke-linecap=round stroke-linejoin=bevel stroke-width=12 d=\"M167.5 252.5l.5 24.5\">`);\nfunction TanStackLogo() {\n const id = createUniqueId();\n return (() => {\n var _el$ = _tmpl$$1(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.nextSibling, _el$6 = _el$5.firstChild, _el$7 = _el$5.nextSibling, _el$8 = _el$7.firstChild, _el$9 = _el$7.nextSibling, _el$0 = _el$9.nextSibling, _el$1 = _el$0.firstChild, _el$10 = _el$0.nextSibling, _el$11 = _el$10.firstChild, _el$12 = _el$10.nextSibling, _el$13 = _el$12.nextSibling, _el$14 = _el$13.firstChild, _el$15 = _el$13.nextSibling, _el$16 = _el$15.firstChild, _el$17 = _el$15.nextSibling, _el$18 = _el$17.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$18.nextSibling, _el$21 = _el$20.firstChild, _el$22 = _el$20.nextSibling, _el$23 = _el$22.nextSibling, _el$24 = _el$23.firstChild, _el$25 = _el$23.nextSibling, _el$26 = _el$25.firstChild, _el$27 = _el$25.nextSibling, _el$28 = _el$27.nextSibling, _el$29 = _el$28.firstChild, _el$30 = _el$28.nextSibling, _el$31 = _el$30.firstChild, _el$32 = _el$30.nextSibling, _el$33 = _el$32.nextSibling, _el$34 = _el$33.firstChild, _el$35 = _el$33.nextSibling, _el$36 = _el$35.firstChild, _el$37 = _el$35.nextSibling, _el$38 = _el$37.firstChild, _el$39 = _el$38.nextSibling, _el$40 = _el$39.nextSibling, _el$41 = _el$37.nextSibling, _el$42 = _el$41.firstChild, _el$43 = _el$41.nextSibling, _el$44 = _el$43.firstChild, _el$45 = _el$43.nextSibling, _el$46 = _el$45.firstChild, _el$47 = _el$46.nextSibling, _el$48 = _el$47.nextSibling, _el$49 = _el$48.nextSibling, _el$50 = _el$49.nextSibling, _el$51 = _el$50.nextSibling, _el$52 = _el$51.nextSibling, _el$53 = _el$52.nextSibling, _el$54 = _el$53.nextSibling, _el$55 = _el$54.nextSibling, _el$56 = _el$55.nextSibling, _el$57 = _el$56.nextSibling, _el$58 = _el$57.nextSibling, _el$59 = _el$58.nextSibling, _el$60 = _el$45.nextSibling, _el$61 = _el$60.firstChild, _el$62 = _el$60.nextSibling, _el$63 = _el$62.firstChild, _el$64 = _el$62.nextSibling, _el$65 = _el$64.nextSibling, _el$66 = _el$65.nextSibling, _el$67 = _el$66.firstChild, _el$68 = _el$66.nextSibling, _el$69 = _el$68.firstChild, _el$70 = _el$68.nextSibling, _el$71 = _el$70.firstChild, _el$72 = _el$71.firstChild, _el$73 = _el$72.nextSibling, _el$74 = _el$73.nextSibling, _el$75 = _el$74.nextSibling, _el$76 = _el$75.nextSibling, _el$77 = _el$76.nextSibling, _el$78 = _el$77.nextSibling, _el$79 = _el$78.nextSibling, _el$80 = _el$79.nextSibling, _el$81 = _el$80.nextSibling, _el$82 = _el$81.nextSibling, _el$83 = _el$82.nextSibling, _el$84 = _el$83.nextSibling, _el$85 = _el$84.nextSibling, _el$86 = _el$85.nextSibling, _el$87 = _el$86.nextSibling, _el$88 = _el$87.nextSibling, _el$89 = _el$88.nextSibling;\n setAttribute(_el$3, \"id\", `a-${id}`);\n setAttribute(_el$4, \"fill\", `url(#a-${id})`);\n setAttribute(_el$6, \"id\", `b-${id}`);\n setAttribute(_el$7, \"id\", `c-${id}`);\n setAttribute(_el$8, \"filter\", `url(#b-${id})`);\n setAttribute(_el$9, \"mask\", `url(#c-${id})`);\n setAttribute(_el$1, \"id\", `d-${id}`);\n setAttribute(_el$10, \"id\", `e-${id}`);\n setAttribute(_el$11, \"filter\", `url(#d-${id})`);\n setAttribute(_el$12, \"mask\", `url(#e-${id})`);\n setAttribute(_el$14, \"id\", `f-${id}`);\n setAttribute(_el$15, \"id\", `g-${id}`);\n setAttribute(_el$16, \"filter\", `url(#f-${id})`);\n setAttribute(_el$17, \"mask\", `url(#g-${id})`);\n setAttribute(_el$19, \"id\", `h-${id}`);\n setAttribute(_el$20, \"id\", `i-${id}`);\n setAttribute(_el$21, \"filter\", `url(#h-${id})`);\n setAttribute(_el$22, \"mask\", `url(#i-${id})`);\n setAttribute(_el$24, \"id\", `j-${id}`);\n setAttribute(_el$25, \"id\", `k-${id}`);\n setAttribute(_el$26, \"filter\", `url(#j-${id})`);\n setAttribute(_el$27, \"mask\", `url(#k-${id})`);\n setAttribute(_el$29, \"id\", `l-${id}`);\n setAttribute(_el$30, \"id\", `m-${id}`);\n setAttribute(_el$31, \"filter\", `url(#l-${id})`);\n setAttribute(_el$32, \"mask\", `url(#m-${id})`);\n setAttribute(_el$34, \"id\", `n-${id}`);\n setAttribute(_el$35, \"id\", `o-${id}`);\n setAttribute(_el$36, \"filter\", `url(#n-${id})`);\n setAttribute(_el$37, \"mask\", `url(#o-${id})`);\n setAttribute(_el$39, \"id\", `p-${id}`);\n setAttribute(_el$40, \"fill\", `url(#p-${id})`);\n setAttribute(_el$42, \"id\", `q-${id}`);\n setAttribute(_el$43, \"id\", `r-${id}`);\n setAttribute(_el$44, \"filter\", `url(#q-${id})`);\n setAttribute(_el$45, \"mask\", `url(#r-${id})`);\n setAttribute(_el$46, \"id\", `s-${id}`);\n setAttribute(_el$47, \"fill\", `url(#s-${id})`);\n setAttribute(_el$48, \"id\", `t-${id}`);\n setAttribute(_el$49, \"fill\", `url(#t-${id})`);\n setAttribute(_el$50, \"id\", `u-${id}`);\n setAttribute(_el$51, \"fill\", `url(#u-${id})`);\n setAttribute(_el$52, \"id\", `v-${id}`);\n setAttribute(_el$53, \"fill\", `url(#v-${id})`);\n setAttribute(_el$54, \"id\", `w-${id}`);\n setAttribute(_el$55, \"fill\", `url(#w-${id})`);\n setAttribute(_el$56, \"id\", `x-${id}`);\n setAttribute(_el$57, \"fill\", `url(#x-${id})`);\n setAttribute(_el$58, \"id\", `y-${id}`);\n setAttribute(_el$59, \"fill\", `url(#y-${id})`);\n setAttribute(_el$61, \"id\", `z-${id}`);\n setAttribute(_el$62, \"id\", `A-${id}`);\n setAttribute(_el$63, \"filter\", `url(#z-${id})`);\n setAttribute(_el$64, \"id\", `B-${id}`);\n setAttribute(_el$65, \"fill\", `url(#B-${id})`);\n setAttribute(_el$65, \"mask\", `url(#A-${id})`);\n setAttribute(_el$67, \"id\", `C-${id}`);\n setAttribute(_el$68, \"id\", `D-${id}`);\n setAttribute(_el$69, \"filter\", `url(#C-${id})`);\n setAttribute(_el$70, \"mask\", `url(#D-${id})`);\n setAttribute(_el$72, \"id\", `E-${id}`);\n setAttribute(_el$73, \"fill\", `url(#E-${id})`);\n setAttribute(_el$74, \"id\", `F-${id}`);\n setAttribute(_el$75, \"stroke\", `url(#F-${id})`);\n setAttribute(_el$76, \"id\", `G-${id}`);\n setAttribute(_el$77, \"stroke\", `url(#G-${id})`);\n setAttribute(_el$78, \"id\", `H-${id}`);\n setAttribute(_el$79, \"stroke\", `url(#H-${id})`);\n setAttribute(_el$80, \"id\", `I-${id}`);\n setAttribute(_el$81, \"stroke\", `url(#I-${id})`);\n setAttribute(_el$82, \"id\", `J-${id}`);\n setAttribute(_el$83, \"stroke\", `url(#J-${id})`);\n setAttribute(_el$84, \"id\", `K-${id}`);\n setAttribute(_el$85, \"stroke\", `url(#K-${id})`);\n setAttribute(_el$86, \"id\", `L-${id}`);\n setAttribute(_el$87, \"stroke\", `url(#L-${id})`);\n setAttribute(_el$88, \"id\", `M-${id}`);\n setAttribute(_el$89, \"stroke\", `url(#M-${id})`);\n return _el$;\n })();\n}\nvar _tmpl$ = /* @__PURE__ */ template(`<button type=button><div><div></div><div></div></div><div>-</div><div>TanStack Router`);\nfunction FloatingTanStackRouterDevtools({\n initialIsOpen,\n panelProps = {},\n closeButtonProps = {},\n toggleButtonProps = {},\n position = \"bottom-left\",\n containerElement: Container = \"footer\",\n router,\n routerState,\n shadowDOMTarget\n}) {\n const [rootEl, setRootEl] = createSignal();\n let panelRef = void 0;\n const [isOpen, setIsOpen] = useLocalStorage(\"tanstackRouterDevtoolsOpen\", initialIsOpen);\n const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage(\"tanstackRouterDevtoolsHeight\", null);\n const [isResolvedOpen, setIsResolvedOpen] = createSignal(false);\n const [isResizing, setIsResizing] = createSignal(false);\n const isMounted = useIsMounted();\n const styles = useStyles();\n const handleDragStart = (panelElement, startEvent) => {\n if (startEvent.button !== 0) return;\n setIsResizing(true);\n const dragInfo = {\n originalHeight: panelElement?.getBoundingClientRect().height ?? 0,\n pageY: startEvent.pageY\n };\n const run = (moveEvent) => {\n const delta = dragInfo.pageY - moveEvent.pageY;\n const newHeight = dragInfo.originalHeight + delta;\n setDevtoolsHeight(newHeight);\n if (newHeight < 70) {\n setIsOpen(false);\n } else {\n setIsOpen(true);\n }\n };\n const unsub = () => {\n setIsResizing(false);\n document.removeEventListener(\"mousemove\", run);\n document.removeEventListener(\"mouseUp\", unsub);\n };\n document.addEventListener(\"mousemove\", run);\n document.addEventListener(\"mouseup\", unsub);\n };\n isOpen() ?? false;\n createEffect(() => {\n setIsResolvedOpen(isOpen() ?? false);\n });\n createEffect(() => {\n if (isResolvedOpen()) {\n const previousValue = rootEl()?.parentElement?.style.paddingBottom;\n const run = () => {\n const containerHeight = panelRef.getBoundingClientRect().height;\n if (rootEl()?.parentElement) {\n setRootEl((prev) => {\n if (prev?.parentElement) {\n prev.parentElement.style.paddingBottom = `${containerHeight}px`;\n }\n return prev;\n });\n }\n };\n run();\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"resize\", run);\n return () => {\n window.removeEventListener(\"resize\", run);\n if (rootEl()?.parentElement && typeof previousValue === \"string\") {\n setRootEl((prev) => {\n prev.parentElement.style.paddingBottom = previousValue;\n return prev;\n });\n }\n };\n }\n } else {\n if (rootEl()?.parentElement) {\n setRootEl((prev) => {\n if (prev?.parentElement) {\n prev.parentElement.removeAttribute(\"style\");\n }\n return prev;\n });\n }\n }\n return;\n });\n createEffect(() => {\n if (rootEl()) {\n const el = rootEl();\n const fontSize = getComputedStyle(el).fontSize;\n el?.style.setProperty(\"--tsrd-font-size\", fontSize);\n }\n });\n const {\n style: panelStyle = {},\n ...otherPanelProps\n } = panelProps;\n const {\n style: closeButtonStyle = {},\n onClick: onCloseClick,\n ...otherCloseButtonProps\n } = closeButtonProps;\n const {\n onClick: onToggleClick,\n class: toggleButtonClassName,\n ...otherToggleButtonProps\n } = toggleButtonProps;\n if (!isMounted()) return null;\n const resolvedHeight = createMemo(() => devtoolsHeight() ?? 500);\n const basePanelClass = createMemo(() => {\n return clsx(styles().devtoolsPanelContainer, styles().devtoolsPanelContainerVisibility(!!isOpen()), styles().devtoolsPanelContainerResizing(isResizing), styles().devtoolsPanelContainerAnimation(isResolvedOpen(), resolvedHeight() + 16));\n });\n const basePanelStyle = createMemo(() => {\n return {\n height: `${resolvedHeight()}px`,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n ...panelStyle || {}\n };\n });\n const buttonStyle = createMemo(() => {\n return clsx(styles().mainCloseBtn, styles().mainCloseBtnPosition(position), styles().mainCloseBtnAnimation(!!isOpen()), toggleButtonClassName);\n });\n return createComponent(Dynamic, {\n component: Container,\n ref: setRootEl,\n \"class\": \"TanStackRouterDevtools\",\n get children() {\n return [createComponent(DevtoolsOnCloseContext.Provider, {\n value: {\n onCloseClick: onCloseClick ?? (() => {\n })\n },\n get children() {\n return createComponent(BaseTanStackRouterDevtoolsPanel, mergeProps({\n ref(r$) {\n var _ref$ = panelRef;\n typeof _ref$ === \"function\" ? _ref$(r$) : panelRef = r$;\n }\n }, otherPanelProps, {\n router,\n routerState,\n className: basePanelClass,\n style: basePanelStyle,\n get isOpen() {\n return isResolvedOpen();\n },\n setIsOpen,\n handleDragStart: (e) => handleDragStart(panelRef, e),\n shadowDOMTarget\n }));\n }\n }), (() => {\n var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling, _el$6 = _el$5.nextSibling;\n spread(_el$, mergeProps(otherToggleButtonProps, {\n \"aria-label\": \"Open TanStack Router Devtools\",\n \"onClick\": (e) => {\n setIsOpen(true);\n onToggleClick && onToggleClick(e);\n },\n get [\"class\"]() {\n return buttonStyle();\n }\n }), false, true);\n insert(_el$3, createComponent(TanStackLogo, {}));\n insert(_el$4, createComponent(TanStackLogo, {}));\n createRenderEffect((_p$) => {\n var _v$ = styles().mainCloseBtnIconContainer, _v$2 = styles().mainCloseBtnIconOuter, _v$3 = styles().mainCloseBtnIconInner, _v$4 = styles().mainCloseBtnDivider, _v$5 = styles().routerLogoCloseButton;\n _v$ !== _p$.e && className(_el$2, _p$.e = _v$);\n _v$2 !== _p$.t && className(_el$3, _p$.t = _v$2);\n _v$3 !== _p$.a && className(_el$4, _p$.a = _v$3);\n _v$4 !== _p$.o && className(_el$5, _p$.o = _v$4);\n _v$5 !== _p$.i && className(_el$6, _p$.i = _v$5);\n return _p$;\n }, {\n e: void 0,\n t: void 0,\n a: void 0,\n o: void 0,\n i: void 0\n });\n return _el$;\n })()];\n }\n });\n}\nexport {\n FloatingTanStackRouterDevtools,\n FloatingTanStackRouterDevtools as default\n};\n//# sourceMappingURL=FloatingTanStackRouterDevtools-kcMbkHXI.js.map\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8],"mappings":"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"}