@tanstack/query-devtools 5.0.0-alpha.27 → 5.0.0-alpha.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/.tsbuildinfo +1 -1
- package/build/cjs/index.js +9 -5
- package/build/cjs/index.js.map +1 -1
- package/build/esm/{index.js → index.mjs} +10 -6
- package/build/esm/index.mjs.map +1 -0
- package/build/source/Devtools.jsx +1 -1
- package/build/source/index.jsx +9 -2
- package/build/types/index.d.ts +2 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/umd/index.js +2 -2
- package/build/umd/index.js.map +1 -1
- package/package.json +10 -8
- package/src/Devtools.tsx +1 -1
- package/src/index.tsx +10 -3
- package/build/esm/index.js.map +0 -1
package/build/umd/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/.pnpm/solid-js@1.6.16/node_modules/solid-js/dist/solid.js","../../../../node_modules/.pnpm/solid-js@1.6.16/node_modules/solid-js/web/dist/web.js","../../../../node_modules/.pnpm/@tanstack+match-sorter-utils@8.8.4/node_modules/@tanstack/match-sorter-utils/build/lib/index.mjs","../../../../node_modules/.pnpm/@emotion+sheet@1.2.1/node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Enum.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Utility.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Tokenizer.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Parser.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Serializer.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Middleware.js","../../../../node_modules/.pnpm/@emotion+memoize@0.8.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../../node_modules/.pnpm/@emotion+cache@11.10.8/node_modules/@emotion/cache/dist/emotion-cache.esm.js","../../../../node_modules/.pnpm/@emotion+weak-memoize@0.3.0/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js","../../../../node_modules/.pnpm/@emotion+unitless@0.8.0/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../../node_modules/.pnpm/@emotion+serialize@1.1.1/node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../../../../node_modules/.pnpm/@emotion+hash@0.9.0/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../../../node_modules/.pnpm/@emotion+utils@1.2.0/node_modules/@emotion/utils/dist/emotion-utils.esm.js","../../../../node_modules/.pnpm/@emotion+css@11.10.8/node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.esm.js","../../../../node_modules/.pnpm/@emotion+css@11.10.8/node_modules/@emotion/css/dist/emotion-css.esm.js","../../src/theme.ts","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/double-indexed-kv.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/registry.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/class-registry.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/util.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/custom-transformer-registry.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/is.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/pathstringifier.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/transformer.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/accessDeep.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/plainer.js","../../../../node_modules/.pnpm/is-what@4.1.8/node_modules/is-what/dist/index.es.js","../../../../node_modules/.pnpm/copy-anything@3.0.2/node_modules/copy-anything/dist/index.es.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/index.js","../../src/utils.tsx","../../src/icons/index.tsx","../../../../node_modules/.pnpm/@solid-primitives+keyed@1.2.0_solid-js@1.6.16/node_modules/@solid-primitives/keyed/dist/index.js","../../src/Explorer.tsx","../../src/Context.ts","../../../../node_modules/.pnpm/@solid-primitives+transition-group@1.0.2_solid-js@1.6.16/node_modules/@solid-primitives/transition-group/dist/index.js","../../../../node_modules/.pnpm/@solid-primitives+utils@6.1.0_solid-js@1.6.16/node_modules/@solid-primitives/utils/dist/chunk/G4OJDHGR.js","../../../../node_modules/.pnpm/@solid-primitives+refs@1.0.2_solid-js@1.6.16/node_modules/@solid-primitives/refs/dist/index.js","../../../../node_modules/.pnpm/solid-transition-group@0.2.2_solid-js@1.6.16/node_modules/solid-transition-group/dist/index.js","../../../../node_modules/.pnpm/@solid-primitives+storage@1.3.9_solid-js@1.6.16/node_modules/@solid-primitives/storage/dist/index.js","../../../../node_modules/.pnpm/@solid-primitives+resize-observer@2.0.15_solid-js@1.6.16/node_modules/@solid-primitives/resize-observer/dist/index.js","../../src/Devtools.tsx","../../src/fonts.ts","../../src/index.tsx"],"sourcesContent":["let taskIdCounter = 1,\n isCallbackScheduled = false,\n isPerformingWork = false,\n taskQueue = [],\n currentTask = null,\n shouldYieldToHost = null,\n yieldInterval = 5,\n deadline = 0,\n maxYieldInterval = 300,\n scheduleCallback = null,\n scheduledCallback = null;\nconst maxSigned31BitInt = 1073741823;\nfunction setupScheduler() {\n const channel = new MessageChannel(),\n port = channel.port2;\n scheduleCallback = () => port.postMessage(null);\n channel.port1.onmessage = () => {\n if (scheduledCallback !== null) {\n const currentTime = performance.now();\n deadline = currentTime + yieldInterval;\n const hasTimeRemaining = true;\n try {\n const hasMoreWork = scheduledCallback(hasTimeRemaining, currentTime);\n if (!hasMoreWork) {\n scheduledCallback = null;\n } else port.postMessage(null);\n } catch (error) {\n port.postMessage(null);\n throw error;\n }\n }\n };\n if (navigator && navigator.scheduling && navigator.scheduling.isInputPending) {\n const scheduling = navigator.scheduling;\n shouldYieldToHost = () => {\n const currentTime = performance.now();\n if (currentTime >= deadline) {\n if (scheduling.isInputPending()) {\n return true;\n }\n return currentTime >= maxYieldInterval;\n } else {\n return false;\n }\n };\n } else {\n shouldYieldToHost = () => performance.now() >= deadline;\n }\n}\nfunction enqueue(taskQueue, task) {\n function findIndex() {\n let m = 0;\n let n = taskQueue.length - 1;\n while (m <= n) {\n const k = n + m >> 1;\n const cmp = task.expirationTime - taskQueue[k].expirationTime;\n if (cmp > 0) m = k + 1;else if (cmp < 0) n = k - 1;else return k;\n }\n return m;\n }\n taskQueue.splice(findIndex(), 0, task);\n}\nfunction requestCallback(fn, options) {\n if (!scheduleCallback) setupScheduler();\n let startTime = performance.now(),\n timeout = maxSigned31BitInt;\n if (options && options.timeout) timeout = options.timeout;\n const newTask = {\n id: taskIdCounter++,\n fn,\n startTime,\n expirationTime: startTime + timeout\n };\n enqueue(taskQueue, newTask);\n if (!isCallbackScheduled && !isPerformingWork) {\n isCallbackScheduled = true;\n scheduledCallback = flushWork;\n scheduleCallback();\n }\n return newTask;\n}\nfunction cancelCallback(task) {\n task.fn = null;\n}\nfunction flushWork(hasTimeRemaining, initialTime) {\n isCallbackScheduled = false;\n isPerformingWork = true;\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } finally {\n currentTask = null;\n isPerformingWork = false;\n }\n}\nfunction workLoop(hasTimeRemaining, initialTime) {\n let currentTime = initialTime;\n currentTask = taskQueue[0] || null;\n while (currentTask !== null) {\n if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {\n break;\n }\n const callback = currentTask.fn;\n if (callback !== null) {\n currentTask.fn = null;\n const didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n callback(didUserCallbackTimeout);\n currentTime = performance.now();\n if (currentTask === taskQueue[0]) {\n taskQueue.shift();\n }\n } else taskQueue.shift();\n currentTask = taskQueue[0] || null;\n }\n return currentTask !== null;\n}\n\nconst sharedConfig = {};\nfunction setHydrateContext(context) {\n sharedConfig.context = context;\n}\nfunction nextHydrateContext() {\n return {\n ...sharedConfig.context,\n id: `${sharedConfig.context.id}${sharedConfig.context.count++}-`,\n count: 0\n };\n}\n\nconst equalFn = (a, b) => a === b;\nconst $PROXY = Symbol(\"solid-proxy\");\nconst $TRACK = Symbol(\"solid-track\");\nconst $DEVCOMP = Symbol(\"solid-dev-component\");\nconst signalOptions = {\n equals: equalFn\n};\nlet ERROR = null;\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 Scheduler = null;\nlet ExternalSourceFactory = null;\nlet Listener = null;\nlet Updates = null;\nlet Effects = null;\nlet ExecCount = 0;\nconst [transPending, setTransPending] = /*@__PURE__*/createSignal(false);\nfunction createRoot(fn, detachedOwner) {\n const listener = Listener,\n owner = Owner,\n unowned = fn.length === 0,\n root = unowned ? UNOWNED : {\n owned: null,\n cleanups: null,\n context: null,\n owner: detachedOwner === undefined ? owner : detachedOwner\n },\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 || undefined\n };\n const setter = value => {\n if (typeof value === \"function\") {\n if (Transition && Transition.running && Transition.sources.has(s)) value = value(s.tValue);else value = value(s.value);\n }\n return writeSignal(s, value);\n };\n return [readSignal.bind(s), setter];\n}\nfunction createComputed(fn, value, options) {\n const c = createComputation(fn, value, true, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createRenderEffect(fn, value, options) {\n const c = createComputation(fn, value, false, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createEffect(fn, value, options) {\n runEffects = runUserEffects;\n const c = createComputation(fn, value, false, STALE),\n s = SuspenseContext && lookup(Owner, SuspenseContext.id);\n if (s) c.suspense = s;\n c.user = true;\n Effects ? Effects.push(c) : updateComputation(c);\n}\nfunction createReaction(onInvalidate, options) {\n let fn;\n const c = createComputation(() => {\n fn ? fn() : untrack(onInvalidate);\n fn = undefined;\n }, undefined, false, 0),\n s = SuspenseContext && lookup(Owner, SuspenseContext.id);\n if (s) c.suspense = s;\n c.user = true;\n return tracking => {\n fn = tracking;\n updateComputation(c);\n };\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 || undefined;\n if (Scheduler && Transition && Transition.running) {\n c.tState = STALE;\n Updates.push(c);\n } else updateComputation(c);\n return readSignal.bind(c);\n}\nfunction createResource(pSource, pFetcher, pOptions) {\n let source;\n let fetcher;\n let options;\n if (arguments.length === 2 && typeof pFetcher === \"object\" || arguments.length === 1) {\n source = true;\n fetcher = pSource;\n options = pFetcher || {};\n } else {\n source = pSource;\n fetcher = pFetcher;\n options = pOptions || {};\n }\n let pr = null,\n initP = NO_INIT,\n id = null,\n loadedUnderTransition = false,\n scheduled = false,\n resolved = (\"initialValue\" in options),\n dynamic = typeof source === \"function\" && createMemo(source);\n const contexts = new Set(),\n [value, setValue] = (options.storage || createSignal)(options.initialValue),\n [error, setError] = createSignal(undefined),\n [track, trigger] = createSignal(undefined, {\n equals: false\n }),\n [state, setState] = createSignal(resolved ? \"ready\" : \"unresolved\");\n if (sharedConfig.context) {\n id = `${sharedConfig.context.id}${sharedConfig.context.count++}`;\n let v;\n if (options.ssrLoadFrom === \"initial\") initP = options.initialValue;else if (sharedConfig.load && (v = sharedConfig.load(id))) initP = v[0];\n }\n function loadEnd(p, v, error, key) {\n if (pr === p) {\n pr = null;\n resolved = true;\n if ((p === initP || v === initP) && options.onHydrated) queueMicrotask(() => options.onHydrated(key, {\n value: v\n }));\n initP = NO_INIT;\n if (Transition && p && loadedUnderTransition) {\n Transition.promises.delete(p);\n loadedUnderTransition = false;\n runUpdates(() => {\n Transition.running = true;\n completeLoad(v, error);\n }, false);\n } else completeLoad(v, error);\n }\n return v;\n }\n function completeLoad(v, err) {\n runUpdates(() => {\n if (err === undefined) setValue(() => v);\n setState(err !== undefined ? \"errored\" : \"ready\");\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 && lookup(Owner, SuspenseContext.id),\n v = value(),\n err = error();\n if (err !== undefined && !pr) throw err;\n if (Listener && !Listener.user && c) {\n createComputed(() => {\n track();\n if (pr) {\n if (c.resolved && Transition && loadedUnderTransition) Transition.promises.add(pr);else if (!contexts.has(c)) {\n c.increment();\n contexts.add(c);\n }\n }\n });\n }\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 loadedUnderTransition = Transition && Transition.running;\n if (lookup == null || lookup === false) {\n loadEnd(pr, untrack(value));\n return;\n }\n if (Transition && pr) Transition.promises.delete(pr);\n const p = initP !== NO_INIT ? initP : untrack(() => fetcher(lookup, {\n value: value(),\n refetching\n }));\n if (typeof p !== \"object\" || !(p && \"then\" in p)) {\n loadEnd(pr, p, undefined, lookup);\n return p;\n }\n pr = p;\n scheduled = true;\n queueMicrotask(() => scheduled = false);\n runUpdates(() => {\n setState(resolved ? \"refreshing\" : \"pending\");\n trigger();\n }, false);\n return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e), lookup));\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));else load(false);\n return [read, {\n refetch: load,\n mutate: setValue\n }];\n}\nfunction createDeferred(source, options) {\n let t,\n timeout = options ? options.timeoutMs : undefined;\n const node = createComputation(() => {\n if (!t || !t.fn) t = requestCallback(() => setDeferred(() => node.value), timeout !== undefined ? {\n timeout\n } : undefined);\n return source();\n }, undefined, true);\n const [deferred, setDeferred] = createSignal(node.value, options);\n updateComputation(node);\n setDeferred(() => node.value);\n return deferred;\n}\nfunction createSelector(source, fn = equalFn, options) {\n const subs = new Map();\n const node = createComputation(p => {\n const v = source();\n for (const [key, val] of subs.entries()) if (fn(key, v) !== fn(key, p)) {\n for (const c of val.values()) {\n c.state = STALE;\n if (c.pure) Updates.push(c);else Effects.push(c);\n }\n }\n return v;\n }, undefined, true, STALE);\n updateComputation(node);\n return key => {\n const listener = Listener;\n if (listener) {\n let l;\n if (l = subs.get(key)) l.add(listener);else subs.set(key, l = new Set([listener]));\n onCleanup(() => {\n l.delete(listener);\n !l.size && subs.delete(key);\n });\n }\n return fn(key, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value);\n };\n}\nfunction batch(fn) {\n return runUpdates(fn, false);\n}\nfunction untrack(fn) {\n if (Listener === null) return fn();\n const listener = Listener;\n Listener = null;\n try {\n return fn();\n } finally {\n Listener = listener;\n }\n}\nfunction on(deps, fn, options) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let defer = options && options.defer;\n return prevValue => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++) input[i] = deps[i]();\n } else input = deps();\n if (defer) {\n defer = false;\n return undefined;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\nfunction onMount(fn) {\n createEffect(() => untrack(fn));\n}\nfunction onCleanup(fn) {\n if (Owner === null) ;else if (Owner.cleanups === null) Owner.cleanups = [fn];else Owner.cleanups.push(fn);\n return fn;\n}\nfunction onError(fn) {\n ERROR || (ERROR = Symbol(\"error\"));\n if (Owner === null) ;else if (Owner.context === null) Owner.context = {\n [ERROR]: [fn]\n };else if (!Owner.context[ERROR]) Owner.context[ERROR] = [fn];else Owner.context[ERROR].push(fn);\n}\nfunction getListener() {\n return Listener;\n}\nfunction getOwner() {\n return Owner;\n}\nfunction runWithOwner(o, fn) {\n const prev = Owner;\n const prevListener = Listener;\n Owner = o;\n Listener = null;\n try {\n return runUpdates(fn, true);\n } catch (err) {\n handleError(err);\n } finally {\n Owner = prev;\n Listener = prevListener;\n }\n}\nfunction enableScheduling(scheduler = requestCallback) {\n Scheduler = scheduler;\n}\nfunction startTransition(fn) {\n if (Transition && Transition.running) {\n fn();\n return Transition.done;\n }\n const l = Listener;\n const o = Owner;\n return Promise.resolve().then(() => {\n Listener = l;\n Owner = o;\n let t;\n if (Scheduler || SuspenseContext) {\n t = Transition || (Transition = {\n sources: new Set(),\n effects: [],\n promises: new Set(),\n disposed: new Set(),\n queue: new Set(),\n running: true\n });\n t.done || (t.done = new Promise(res => t.resolve = res));\n t.running = true;\n }\n runUpdates(fn, false);\n Listener = Owner = null;\n return t ? t.done : undefined;\n });\n}\nfunction useTransition() {\n return [transPending, startTransition];\n}\nfunction resumeEffects(e) {\n Effects.push.apply(Effects, e);\n e.length = 0;\n}\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 ctx;\n return (ctx = lookup(Owner, context.id)) !== undefined ? ctx : context.defaultValue;\n}\nfunction children(fn) {\n const children = createMemo(fn);\n const memo = createMemo(() => resolveChildren(children()));\n memo.toArray = () => {\n const c = memo();\n return Array.isArray(c) ? c : c != null ? [c] : [];\n };\n return memo;\n}\nlet SuspenseContext;\nfunction getSuspenseContext() {\n return SuspenseContext || (SuspenseContext = createContext({}));\n}\nfunction enableExternalSource(factory) {\n if (ExternalSourceFactory) {\n const oldFactory = ExternalSourceFactory;\n ExternalSourceFactory = (fn, trigger) => {\n const oldSource = oldFactory(fn, trigger);\n const source = factory(x => oldSource.track(x), trigger);\n return {\n track: x => source.track(x),\n dispose() {\n source.dispose();\n oldSource.dispose();\n }\n };\n };\n } else {\n ExternalSourceFactory = factory;\n }\n}\nfunction readSignal() {\n const runningTransition = Transition && Transition.running;\n if (this.sources && (!runningTransition && this.state || runningTransition && this.tState)) {\n if (!runningTransition && this.state === STALE || runningTransition && this.tState === STALE) updateComputation(this);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 if (runningTransition && Transition.sources.has(this)) return this.tValue;\n return this.value;\n}\nfunction writeSignal(node, value, isComp) {\n let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value;\n if (!node.comparator || !node.comparator(current, value)) {\n if (Transition) {\n const TransitionRunning = Transition.running;\n if (TransitionRunning || !isComp && Transition.sources.has(node)) {\n Transition.sources.add(node);\n node.tValue = value;\n }\n if (!TransitionRunning) node.value = value;\n } else 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)) continue;\n if (TransitionRunning && !o.tState || !TransitionRunning && !o.state) {\n if (o.pure) Updates.push(o);else Effects.push(o);\n if (o.observers) markDownstream(o);\n }\n if (TransitionRunning) o.tState = STALE;else o.state = STALE;\n }\n if (Updates.length > 10e5) {\n Updates = [];\n if (false) ;\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 owner = Owner,\n listener = Listener,\n time = ExecCount;\n Listener = Owner = node;\n runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time);\n if (Transition && !Transition.running && Transition.sources.has(node)) {\n queueMicrotask(() => {\n runUpdates(() => {\n Transition && (Transition.running = true);\n Listener = Owner = node;\n runComputation(node, node.tValue, time);\n Listener = Owner = null;\n }, false);\n });\n }\n Listener = listener;\n Owner = owner;\n}\nfunction runComputation(node, value, time) {\n let nextValue;\n try {\n nextValue = node.fn(value);\n } catch (err) {\n if (node.pure) {\n if (Transition && Transition.running) {\n node.tState = STALE;\n node.tOwned && node.tOwned.forEach(cleanNode);\n node.tOwned = undefined;\n } else {\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 }\n if (!node.updatedAt || node.updatedAt <= time) {\n if (node.updatedAt != null && \"observers\" in node) {\n writeSignal(node, nextValue, true);\n } else if (Transition && Transition.running && node.pure) {\n Transition.sources.add(node);\n node.tValue = 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: state,\n updatedAt: null,\n owned: null,\n sources: null,\n sourceSlots: null,\n cleanups: null,\n value: init,\n owner: Owner,\n context: null,\n pure\n };\n if (Transition && Transition.running) {\n c.state = 0;\n c.tState = state;\n }\n if (Owner === null) ;else if (Owner !== UNOWNED) {\n if (Transition && Transition.running && Owner.pure) {\n if (!Owner.tOwned) Owner.tOwned = [c];else Owner.tOwned.push(c);\n } else {\n if (!Owner.owned) Owner.owned = [c];else Owner.owned.push(c);\n }\n }\n if (ExternalSourceFactory) {\n const [track, trigger] = createSignal(undefined, {\n equals: false\n });\n const ordinary = ExternalSourceFactory(c.fn, trigger);\n onCleanup(() => ordinary.dispose());\n const triggerInTransition = () => startTransition(trigger).then(() => inTransition.dispose());\n const inTransition = ExternalSourceFactory(c.fn, triggerInTransition);\n c.fn = x => {\n track();\n return Transition && Transition.running ? inTransition.track(x) : ordinary.track(x);\n };\n }\n return c;\n}\nfunction runTop(node) {\n const runningTransition = Transition && Transition.running;\n if (!runningTransition && node.state === 0 || runningTransition && node.tState === 0) return;\n if (!runningTransition && node.state === PENDING || runningTransition && node.tState === 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 (runningTransition && Transition.disposed.has(node)) return;\n if (!runningTransition && node.state || runningTransition && node.tState) ancestors.push(node);\n }\n for (let i = ancestors.length - 1; i >= 0; i--) {\n node = ancestors[i];\n if (runningTransition) {\n let top = node,\n prev = ancestors[i + 1];\n while ((top = top.owner) && top !== prev) {\n if (Transition.disposed.has(top)) return;\n }\n }\n if (!runningTransition && node.state === STALE || runningTransition && node.tState === STALE) {\n updateComputation(node);\n } else if (!runningTransition && node.state === PENDING || runningTransition && node.tState === 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;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 if (Scheduler && Transition && Transition.running) scheduleQueue(Updates);else runQueue(Updates);\n Updates = null;\n }\n if (wait) return;\n let res;\n if (Transition) {\n if (!Transition.promises.size && !Transition.queue.size) {\n const sources = Transition.sources;\n const disposed = Transition.disposed;\n Effects.push.apply(Effects, Transition.effects);\n res = Transition.resolve;\n for (const e of Effects) {\n \"tState\" in e && (e.state = e.tState);\n delete e.tState;\n }\n Transition = null;\n runUpdates(() => {\n for (const d of disposed) cleanNode(d);\n for (const v of sources) {\n v.value = v.tValue;\n if (v.owned) {\n for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);\n }\n if (v.tOwned) v.owned = v.tOwned;\n delete v.tValue;\n delete v.tOwned;\n v.tState = 0;\n }\n setTransPending(false);\n }, false);\n } else if (Transition.running) {\n Transition.running = false;\n Transition.effects.push.apply(Transition.effects, Effects);\n Effects = null;\n setTransPending(true);\n return;\n }\n }\n const e = Effects;\n Effects = null;\n if (e.length) runUpdates(() => runEffects(e), false);\n if (res) res();\n}\nfunction runQueue(queue) {\n for (let i = 0; i < queue.length; i++) runTop(queue[i]);\n}\nfunction scheduleQueue(queue) {\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i];\n const tasks = Transition.queue;\n if (!tasks.has(item)) {\n tasks.add(item);\n Scheduler(() => {\n tasks.delete(item);\n runUpdates(() => {\n Transition.running = true;\n runTop(item);\n }, false);\n Transition && (Transition.running = false);\n });\n }\n }\n}\nfunction runUserEffects(queue) {\n let i,\n userLength = 0;\n for (i = 0; i < queue.length; i++) {\n const e = queue[i];\n if (!e.user) runTop(e);else queue[userLength++] = e;\n }\n if (sharedConfig.context) setHydrateContext();\n for (i = 0; i < userLength; i++) runTop(queue[i]);\n}\nfunction lookUpstream(node, ignore) {\n const runningTransition = Transition && Transition.running;\n if (runningTransition) node.tState = 0;else 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 if (!runningTransition && source.state === STALE || runningTransition && source.tState === STALE) {\n if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) runTop(source);\n } else if (!runningTransition && source.state === PENDING || runningTransition && source.tState === PENDING) lookUpstream(source, ignore);\n }\n }\n}\nfunction markDownstream(node) {\n const runningTransition = Transition && Transition.running;\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n if (!runningTransition && !o.state || runningTransition && !o.tState) {\n if (runningTransition) o.tState = PENDING;else o.state = PENDING;\n if (o.pure) Updates.push(o);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(),\n index = node.sourceSlots.pop(),\n obs = source.observers;\n if (obs && obs.length) {\n const n = obs.pop(),\n 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 (Transition && Transition.running && node.pure) {\n if (node.tOwned) {\n for (i = 0; i < node.tOwned.length; i++) cleanNode(node.tOwned[i]);\n delete node.tOwned;\n }\n reset(node, true);\n } else if (node.owned) {\n for (i = 0; i < node.owned.length; i++) cleanNode(node.owned[i]);\n node.owned = null;\n }\n if (node.cleanups) {\n for (i = 0; i < node.cleanups.length; i++) node.cleanups[i]();\n node.cleanups = null;\n }\n if (Transition && Transition.running) node.tState = 0;else node.state = 0;\n node.context = null;\n}\nfunction reset(node, top) {\n if (!top) {\n node.tState = 0;\n Transition.disposed.add(node);\n }\n if (node.owned) {\n for (let i = 0; i < node.owned.length; i++) reset(node.owned[i]);\n }\n}\nfunction castError(err) {\n if (err instanceof Error || typeof err === \"string\") return err;\n return new Error(\"Unknown error\");\n}\nfunction runErrors(fns, err) {\n for (const f of fns) f(err);\n}\nfunction handleError(err) {\n err = castError(err);\n const fns = ERROR && lookup(Owner, ERROR);\n if (!fns) throw err;\n if (Effects) Effects.push({\n fn() {\n runErrors(fns, err);\n },\n state: STALE\n });else runErrors(fns, err);\n}\nfunction lookup(owner, key) {\n return owner ? owner.context && owner.context[key] !== undefined ? owner.context[key] : lookup(owner.owner, key) : undefined;\n}\nfunction resolveChildren(children) {\n if (typeof children === \"function\" && !children.length) return resolveChildren(children());\n if (Array.isArray(children)) {\n const results = [];\n for (let i = 0; i < children.length; i++) {\n const result = resolveChildren(children[i]);\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results;\n }\n return children;\n}\nfunction createProvider(id, options) {\n return function provider(props) {\n let res;\n createRenderEffect(() => res = untrack(() => {\n Owner.context = {\n [id]: props.value\n };\n return children(() => props.children);\n }), undefined);\n return res;\n };\n}\n\nfunction observable(input) {\n return {\n subscribe(observer) {\n if (!(observer instanceof Object) || observer == null) {\n throw new TypeError(\"Expected the observer to be an object.\");\n }\n const handler = typeof observer === \"function\" ? observer : observer.next && observer.next.bind(observer);\n if (!handler) {\n return {\n unsubscribe() {}\n };\n }\n const dispose = createRoot(disposer => {\n createEffect(() => {\n const v = input();\n untrack(() => handler(v));\n });\n return disposer;\n });\n if (getOwner()) onCleanup(dispose);\n return {\n unsubscribe() {\n dispose();\n }\n };\n },\n [Symbol.observable || \"@@observable\"]() {\n return this;\n }\n };\n}\nfunction from(producer) {\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n if (\"subscribe\" in producer) {\n const unsub = producer.subscribe(v => set(() => v));\n onCleanup(() => \"unsubscribe\" in unsub ? unsub.unsubscribe() : unsub());\n } else {\n const clean = producer(set);\n onCleanup(clean);\n }\n return s;\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 = [],\n mapped = [],\n disposers = [],\n len = 0,\n indexes = mapFn.length > 1 ? [] : null;\n onCleanup(() => dispose(disposers));\n return () => {\n let newItems = list() || [],\n i,\n j;\n newItems[$TRACK];\n return untrack(() => {\n let newLen = newItems.length,\n newIndices,\n newIndicesNext,\n temp,\n tempdisposers,\n tempIndexes,\n start,\n end,\n newEnd,\n 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 }\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 = 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 === undefined ? -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 !== undefined && 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 indexArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n signals = [],\n len = 0,\n i;\n onCleanup(() => dispose(disposers));\n return () => {\n const newItems = list() || [];\n newItems[$TRACK];\n return untrack(() => {\n if (newItems.length === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n signals = [];\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 return mapped;\n }\n if (items[0] === FALLBACK) {\n disposers[0]();\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n }\n for (i = 0; i < newItems.length; i++) {\n if (i < items.length && items[i] !== newItems[i]) {\n signals[i](() => newItems[i]);\n } else if (i >= items.length) {\n mapped[i] = createRoot(mapper);\n }\n }\n for (; i < items.length; i++) {\n disposers[i]();\n }\n len = signals.length = disposers.length = newItems.length;\n items = newItems.slice(0);\n return mapped = mapped.slice(0, len);\n });\n function mapper(disposer) {\n disposers[i] = disposer;\n const [s, set] = createSignal(newItems[i]);\n signals[i] = set;\n return mapFn(s, i);\n }\n };\n}\n\nlet hydrationEnabled = false;\nfunction enableHydration() {\n hydrationEnabled = true;\n}\nfunction createComponent(Comp, props) {\n if (hydrationEnabled) {\n if (sharedConfig.context) {\n const c = sharedConfig.context;\n setHydrateContext(nextHydrateContext());\n const r = untrack(() => Comp(props || {}));\n setHydrateContext(c);\n return r;\n }\n }\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 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 (proxy) {\n return new Proxy({\n get(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n const v = resolveSource(sources[i])[property];\n if (v !== undefined) 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++) keys.push(...Object.keys(resolveSource(sources[i])));\n return [...new Set(keys)];\n }\n }, propTraps);\n }\n const target = {};\n for (let i = sources.length - 1; i >= 0; i--) {\n if (sources[i]) {\n const descriptors = Object.getOwnPropertyDescriptors(sources[i]);\n for (const key in descriptors) {\n if (key in target) continue;\n Object.defineProperty(target, key, {\n enumerable: true,\n get() {\n for (let i = sources.length - 1; i >= 0; i--) {\n const v = (sources[i] || {})[key];\n if (v !== undefined) return v;\n }\n }\n });\n }\n }\n }\n return target;\n}\nfunction splitProps(props, ...keys) {\n const blocked = new Set(keys.flat());\n if ($PROXY in props) {\n const res = keys.map(k => {\n return new Proxy({\n get(property) {\n return k.includes(property) ? props[property] : undefined;\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 }, propTraps);\n });\n res.push(new Proxy({\n get(property) {\n return blocked.has(property) ? undefined : 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 }, propTraps));\n return res;\n }\n const descriptors = Object.getOwnPropertyDescriptors(props);\n keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));\n return keys.map(k => {\n const clone = {};\n for (let i = 0; i < k.length; i++) {\n const key = k[i];\n if (!(key in props)) continue;\n Object.defineProperty(clone, key, descriptors[key] ? descriptors[key] : {\n get() {\n return props[key];\n },\n set() {\n return true;\n },\n enumerable: true\n });\n }\n return clone;\n });\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 (p || (p = fn())).then(mod => {\n setHydrateContext(ctx);\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(() => (Comp = comp()) && untrack(() => {\n if (false) ;\n if (!ctx) 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 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 ? `${ctx.id}${ctx.count++}` : `cl-${counter++}`;\n}\n\nfunction For(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(mapArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Index(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(indexArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Show(props) {\n let strictEqual = false;\n const keyed = props.keyed;\n const condition = createMemo(() => props.when, undefined, {\n equals: (a, b) => strictEqual ? a === b : !a === !b\n });\n return createMemo(() => {\n const c = condition();\n if (c) {\n const child = props.children;\n const fn = typeof child === \"function\" && child.length > 0;\n strictEqual = keyed || fn;\n return fn ? untrack(() => child(c)) : child;\n }\n return props.fallback;\n }, undefined, undefined);\n}\nfunction Switch(props) {\n let strictEqual = false;\n let keyed = false;\n const equals = (a, b) => a[0] === b[0] && (strictEqual ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2];\n const conditions = children(() => props.children),\n evalConditions = createMemo(() => {\n let conds = conditions();\n if (!Array.isArray(conds)) conds = [conds];\n for (let i = 0; i < conds.length; i++) {\n const c = conds[i].when;\n if (c) {\n keyed = !!conds[i].keyed;\n return [i, c, conds[i]];\n }\n }\n return [-1];\n }, undefined, {\n equals\n });\n return createMemo(() => {\n const [index, when, cond] = evalConditions();\n if (index < 0) return props.fallback;\n const c = cond.children;\n const fn = typeof c === \"function\" && c.length > 0;\n strictEqual = keyed || fn;\n return fn ? untrack(() => c(when)) : c;\n }, undefined, undefined);\n}\nfunction Match(props) {\n return props;\n}\nlet Errors;\nfunction resetErrorBoundaries() {\n Errors && [...Errors].forEach(fn => fn());\n}\nfunction ErrorBoundary(props) {\n let err;\n let v;\n if (sharedConfig.context && sharedConfig.load && (v = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count))) err = v[0];\n const [errored, setErrored] = createSignal(err, undefined);\n Errors || (Errors = new Set());\n Errors.add(setErrored);\n onCleanup(() => Errors.delete(setErrored));\n return createMemo(() => {\n let e;\n if (e = errored()) {\n const f = props.fallback;\n const res = typeof f === \"function\" && f.length ? untrack(() => f(e, () => setErrored())) : f;\n onError(setErrored);\n return res;\n }\n onError(setErrored);\n return props.children;\n }, undefined, undefined);\n}\n\nconst suspenseListEquals = (a, b) => a.showContent === b.showContent && a.showFallback === b.showFallback;\nconst SuspenseListContext = createContext();\nfunction SuspenseList(props) {\n let [wrapper, setWrapper] = createSignal(() => ({\n inFallback: false\n })),\n show;\n const listContext = useContext(SuspenseListContext);\n const [registry, setRegistry] = createSignal([]);\n if (listContext) {\n show = listContext.register(createMemo(() => wrapper()().inFallback));\n }\n const resolved = createMemo(prev => {\n const reveal = props.revealOrder,\n tail = props.tail,\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {},\n reg = registry(),\n reverse = reveal === \"backwards\";\n if (reveal === \"together\") {\n const all = reg.every(inFallback => !inFallback());\n const res = reg.map(() => ({\n showContent: all && showContent,\n showFallback\n }));\n res.inFallback = !all;\n return res;\n }\n let stop = false;\n let inFallback = prev.inFallback;\n const res = [];\n for (let i = 0, len = reg.length; i < len; i++) {\n const n = reverse ? len - i - 1 : i,\n s = reg[n]();\n if (!stop && !s) {\n res[n] = {\n showContent,\n showFallback\n };\n } else {\n const next = !stop;\n if (next) inFallback = true;\n res[n] = {\n showContent: next,\n showFallback: !tail || next && tail === \"collapsed\" ? showFallback : false\n };\n stop = true;\n }\n }\n if (!stop) inFallback = false;\n res.inFallback = inFallback;\n return res;\n }, {\n inFallback: false\n });\n setWrapper(() => resolved);\n return createComponent(SuspenseListContext.Provider, {\n value: {\n register: inFallback => {\n let index;\n setRegistry(registry => {\n index = registry.length;\n return [...registry, inFallback];\n });\n return createMemo(() => resolved()[index], undefined, {\n equals: suspenseListEquals\n });\n }\n },\n get children() {\n return props.children;\n }\n });\n}\nfunction Suspense(props) {\n let counter = 0,\n show,\n ctx,\n p,\n flicker,\n error;\n const [inFallback, setFallback] = createSignal(false),\n SuspenseContext = getSuspenseContext(),\n store = {\n increment: () => {\n if (++counter === 1) setFallback(true);\n },\n decrement: () => {\n if (--counter === 0) setFallback(false);\n },\n inFallback,\n effects: [],\n resolved: false\n },\n owner = getOwner();\n if (sharedConfig.context && sharedConfig.load) {\n const key = sharedConfig.context.id + sharedConfig.context.count;\n let ref = sharedConfig.load(key);\n if (ref && (p = ref[0]) && p !== \"$$f\") {\n if (typeof p !== \"object\" || !(\"then\" in p)) p = Promise.resolve(p);\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n flicker = s;\n p.then(err => {\n if (err || sharedConfig.done) {\n err && (error = err);\n return set();\n }\n sharedConfig.gather(key);\n setHydrateContext(ctx);\n set();\n setHydrateContext();\n });\n }\n }\n const listContext = useContext(SuspenseListContext);\n if (listContext) show = listContext.register(store.inFallback);\n let dispose;\n onCleanup(() => dispose && dispose());\n return createComponent(SuspenseContext.Provider, {\n value: store,\n get children() {\n return createMemo(() => {\n if (error) throw error;\n ctx = sharedConfig.context;\n if (flicker) {\n flicker();\n return flicker = undefined;\n }\n if (ctx && p === \"$$f\") setHydrateContext();\n const rendered = createMemo(() => props.children);\n return createMemo(prev => {\n const inFallback = store.inFallback(),\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {};\n if ((!inFallback || p && p !== \"$$f\") && showContent) {\n store.resolved = true;\n dispose && dispose();\n dispose = ctx = p = undefined;\n resumeEffects(store.effects);\n return rendered();\n }\n if (!showFallback) return;\n if (dispose) return prev;\n return createRoot(disposer => {\n dispose = disposer;\n if (ctx) {\n setHydrateContext({\n id: ctx.id + \"f\",\n count: 0\n });\n ctx = undefined;\n }\n return props.fallback;\n }, owner);\n });\n });\n }\n });\n}\n\nlet DEV;\n\nexport { $DEVCOMP, $PROXY, $TRACK, DEV, ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, batch, cancelCallback, children, createComponent, createComputed, createContext, createDeferred, createEffect, createMemo, createReaction, createRenderEffect, createResource, createRoot, createSelector, createSignal, createUniqueId, enableExternalSource, enableHydration, enableScheduling, equalFn, from, getListener, getOwner, indexArray, lazy, mapArray, mergeProps, observable, on, onCleanup, onError, onMount, requestCallback, resetErrorBoundaries, runWithOwner, sharedConfig, splitProps, startTransition, untrack, useContext, useTransition };\n","import { createRoot, createRenderEffect, sharedConfig, untrack, enableHydration, createMemo, createSignal, onMount, onCleanup, splitProps, $DEVCOMP } from 'solid-js';\nexport { ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, createComponent, createRenderEffect as effect, getOwner, createMemo as memo, mergeProps, untrack } from 'solid-js';\n\nconst booleans = [\"allowfullscreen\", \"async\", \"autofocus\", \"autoplay\", \"checked\", \"controls\", \"default\", \"disabled\", \"formnovalidate\", \"hidden\", \"indeterminate\", \"ismap\", \"loop\", \"multiple\", \"muted\", \"nomodule\", \"novalidate\", \"open\", \"playsinline\", \"readonly\", \"required\", \"reversed\", \"seamless\", \"selected\"];\nconst Properties = /*#__PURE__*/new Set([\"className\", \"value\", \"readOnly\", \"formNoValidate\", \"isMap\", \"noModule\", \"playsInline\", ...booleans]);\nconst ChildProperties = /*#__PURE__*/new Set([\"innerHTML\", \"textContent\", \"innerText\", \"children\"]);\nconst Aliases = /*#__PURE__*/Object.assign(Object.create(null), {\n className: \"class\",\n htmlFor: \"for\"\n});\nconst PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {\n class: \"className\",\n formnovalidate: \"formNoValidate\",\n ismap: \"isMap\",\n nomodule: \"noModule\",\n playsinline: \"playsInline\",\n readonly: \"readOnly\"\n});\nconst DelegatedEvents = /*#__PURE__*/new Set([\"beforeinput\", \"click\", \"dblclick\", \"contextmenu\", \"focusin\", \"focusout\", \"input\", \"keydown\", \"keyup\", \"mousedown\", \"mousemove\", \"mouseout\", \"mouseover\", \"mouseup\", \"pointerdown\", \"pointermove\", \"pointerout\", \"pointerover\", \"pointerup\", \"touchend\", \"touchmove\", \"touchstart\"]);\nconst SVGElements = /*#__PURE__*/new Set([\n\"altGlyph\", \"altGlyphDef\", \"altGlyphItem\", \"animate\", \"animateColor\", \"animateMotion\", \"animateTransform\", \"circle\", \"clipPath\", \"color-profile\", \"cursor\", \"defs\", \"desc\", \"ellipse\", \"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feImage\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\", \"filter\", \"font\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"foreignObject\", \"g\", \"glyph\", \"glyphRef\", \"hkern\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"metadata\", \"missing-glyph\", \"mpath\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\",\n\"set\", \"stop\",\n\"svg\", \"switch\", \"symbol\", \"text\", \"textPath\",\n\"tref\", \"tspan\", \"use\", \"view\", \"vkern\"]);\nconst SVGNamespace = {\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\"\n};\nconst DOMElements = /*#__PURE__*/new Set([\"html\", \"base\", \"head\", \"link\", \"meta\", \"style\", \"title\", \"body\", \"address\", \"article\", \"aside\", \"footer\", \"header\", \"main\", \"nav\", \"section\", \"body\", \"blockquote\", \"dd\", \"div\", \"dl\", \"dt\", \"figcaption\", \"figure\", \"hr\", \"li\", \"ol\", \"p\", \"pre\", \"ul\", \"a\", \"abbr\", \"b\", \"bdi\", \"bdo\", \"br\", \"cite\", \"code\", \"data\", \"dfn\", \"em\", \"i\", \"kbd\", \"mark\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"small\", \"span\", \"strong\", \"sub\", \"sup\", \"time\", \"u\", \"var\", \"wbr\", \"area\", \"audio\", \"img\", \"map\", \"track\", \"video\", \"embed\", \"iframe\", \"object\", \"param\", \"picture\", \"portal\", \"source\", \"svg\", \"math\", \"canvas\", \"noscript\", \"script\", \"del\", \"ins\", \"caption\", \"col\", \"colgroup\", \"table\", \"tbody\", \"td\", \"tfoot\", \"th\", \"thead\", \"tr\", \"button\", \"datalist\", \"fieldset\", \"form\", \"input\", \"label\", \"legend\", \"meter\", \"optgroup\", \"option\", \"output\", \"progress\", \"select\", \"textarea\", \"details\", \"dialog\", \"menu\", \"summary\", \"details\", \"slot\", \"template\", \"acronym\", \"applet\", \"basefont\", \"bgsound\", \"big\", \"blink\", \"center\", \"content\", \"dir\", \"font\", \"frame\", \"frameset\", \"hgroup\", \"image\", \"keygen\", \"marquee\", \"menuitem\", \"nobr\", \"noembed\", \"noframes\", \"plaintext\", \"rb\", \"rtc\", \"shadow\", \"spacer\", \"strike\", \"tt\", \"xmp\", \"a\", \"abbr\", \"acronym\", \"address\", \"applet\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"basefont\", \"bdi\", \"bdo\", \"bgsound\", \"big\", \"blink\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"center\", \"cite\", \"code\", \"col\", \"colgroup\", \"content\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"dir\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"font\", \"footer\", \"form\", \"frame\", \"frameset\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"image\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"nobr\", \"noembed\", \"noframes\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"plaintext\", \"portal\", \"pre\", \"progress\", \"q\", \"rb\", \"rp\", \"rt\", \"rtc\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"shadow\", \"slot\", \"small\", \"source\", \"spacer\", \"span\", \"strike\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"tt\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"xmp\", \"input\"]);\n\nfunction reconcileArrays(parentNode, a, b) {\n let bLength = b.length,\n aEnd = a.length,\n bEnd = bLength,\n aStart = 0,\n bStart = 0,\n after = a[aEnd - 1].nextSibling,\n 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 = 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,\n sequence = 1,\n 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}\n\nconst $$EVENTS = \"_$DX_DELEGATE\";\nfunction render(code, element, init, options = {}) {\n let disposer;\n createRoot(dispose => {\n disposer = dispose;\n element === document ? code() : insert(element, code(), element.firstChild ? null : undefined, init);\n }, options.owner);\n return () => {\n disposer();\n element.textContent = \"\";\n };\n}\nfunction template(html, check, isSVG) {\n const t = document.createElement(\"template\");\n t.innerHTML = html;\n if (check && t.innerHTML.split(\"<\").length - 1 !== check) throw `The browser resolved template HTML does not match JSX input:\\n${t.innerHTML}\\n\\n${html}. Is your HTML properly formed?`;\n let node = t.content.firstChild;\n if (isSVG) node = node.firstChild;\n return node;\n}\nfunction delegateEvents(eventNames, document = window.document) {\n const e = document[$$EVENTS] || (document[$$EVENTS] = 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 document.addEventListener(name, eventHandler);\n }\n }\n}\nfunction clearDelegatedEvents(document = window.document) {\n if (document[$$EVENTS]) {\n for (let name of document[$$EVENTS].keys()) document.removeEventListener(name, eventHandler);\n delete document[$$EVENTS];\n }\n}\nfunction setAttribute(node, name, value) {\n if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);\n}\nfunction setAttributeNS(node, namespace, name, value) {\n if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);\n}\nfunction className(node, value) {\n if (value == null) node.removeAttribute(\"class\");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);\n}\nfunction classList(node, value, prev = {}) {\n const classKeys = Object.keys(value || {}),\n 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],\n 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 = undefined);\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(() => prevProps.children = insertExpression(node, props.children, prevProps.children));\n }\n createRenderEffect(() => props.ref && props.ref(node));\n createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));\n return prevProps;\n}\nfunction dynamicProperty(props, key) {\n const src = props[key];\n Object.defineProperty(props, key, {\n get() {\n return src();\n },\n enumerable: true\n });\n return props;\n}\nfunction innerHTML(parent, content) {\n !sharedConfig.context && (parent.innerHTML = content);\n}\nfunction use(fn, element, arg) {\n return untrack(() => fn(element, arg));\n}\nfunction insert(parent, accessor, marker, initial) {\n if (marker !== undefined && !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);\n }\n }\n for (const prop in props) {\n if (prop === \"children\") {\n if (!skipChildren) insertExpression(node, props.children);\n continue;\n }\n const value = props[prop];\n prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef);\n }\n}\nfunction hydrate$1(code, element, options = {}) {\n sharedConfig.completed = globalThis._$HY.completed;\n sharedConfig.events = globalThis._$HY.events;\n sharedConfig.load = globalThis._$HY.load;\n sharedConfig.gather = root => gatherHydratable(element, root);\n sharedConfig.registry = new Map();\n sharedConfig.context = {\n id: options.renderId || \"\",\n count: 0\n };\n gatherHydratable(element, options.renderId);\n const dispose = render(code, element, [...element.childNodes], options);\n sharedConfig.context = null;\n return dispose;\n}\nfunction getNextElement(template) {\n let node, key;\n if (!sharedConfig.context || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {\n if (sharedConfig.context) console.warn(\"Unable to find DOM nodes for hydration key:\", key);\n if (!template) throw new Error(\"Unrecoverable Hydration Mismatch. No template for key: \" + key);\n return template.cloneNode(true);\n }\n if (sharedConfig.completed) sharedConfig.completed.add(node);\n sharedConfig.registry.delete(key);\n return node;\n}\nfunction getNextMatch(el, nodeName) {\n while (el && el.localName !== nodeName) el = el.nextSibling;\n return el;\n}\nfunction getNextMarker(start) {\n let end = start,\n count = 0,\n current = [];\n if (sharedConfig.context) {\n while (end) {\n if (end.nodeType === 8) {\n const v = end.nodeValue;\n if (v === \"#\") count++;else if (v === \"/\") {\n if (count === 0) return [end, current];\n count--;\n }\n }\n current.push(end);\n end = end.nextSibling;\n }\n }\n return [end, current];\n}\nfunction runHydrationEvents() {\n if (sharedConfig.events && !sharedConfig.events.queued) {\n queueMicrotask(() => {\n const {\n completed,\n events\n } = sharedConfig;\n events.queued = false;\n while (events.length) {\n const [el, e] = events[0];\n if (!completed.has(el)) return;\n eventHandler(e);\n events.shift();\n }\n });\n sharedConfig.events.queued = true;\n }\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++) node.classList.toggle(classNames[i], value);\n}\nfunction assignProp(node, prop, value, prev, isSVG, skipRef) {\n let isCE, isProp, isChildProp;\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);\n value && node.addEventListener(e, 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 ((isChildProp = ChildProperties.has(prop)) || !isSVG && (PropAliases[prop] || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes(\"-\"))) {\n if (prop === \"class\" || prop === \"className\") className(node, value);else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[PropAliases[prop] || prop] = value;\n } else {\n const ns = isSVG && prop.indexOf(\":\") > -1 && SVGNamespace[prop.split(\":\")[0]];\n if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);\n }\n return value;\n}\nfunction eventHandler(e) {\n const key = `$$${e.type}`;\n let node = e.composedPath && e.composedPath()[0] || e.target;\n if (e.target !== node) {\n Object.defineProperty(e, \"target\", {\n configurable: true,\n value: node\n });\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 while (node) {\n const handler = node[key];\n if (handler && !node.disabled) {\n const data = node[`${key}Data`];\n data !== undefined ? handler.call(node, data, e) : handler.call(node, e);\n if (e.cancelBubble) return;\n }\n node = node._$host || node.parentNode || node.host;\n }\n}\nfunction insertExpression(parent, value, current, marker, unwrapArray) {\n if (sharedConfig.context) {\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 === \"!\") node.remove();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,\n multi = marker !== undefined;\n parent = multi && current[0] && current[0].parentNode || parent;\n if (t === \"string\" || t === \"number\") {\n if (sharedConfig.context) return current;\n if (t === \"number\") value = value.toString();\n if (multi) {\n let node = current[0];\n if (node && node.nodeType === 3) {\n 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 (sharedConfig.context) 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 (sharedConfig.context) {\n if (!array.length) return current;\n for (let i = 0; i < array.length; i++) {\n if (array[i].parentNode) return current = array;\n }\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 instanceof Node) {\n if (sharedConfig.context && 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 console.warn(`Unrecognized value. Skipped inserting`, value);\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],\n prev = current && current[i];\n if (item instanceof Node) {\n normalized.push(item);\n } else if (item == null || item === true || item === false) ; else if (Array.isArray(item)) {\n dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;\n } else if ((typeof item) === \"function\") {\n if (unwrap) {\n while (typeof item === \"function\") item = item();\n dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;\n } else {\n normalized.push(item);\n dynamic = true;\n }\n } else {\n const value = String(item);\n if (prev && prev.nodeType === 3) {\n prev.data = value;\n 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 === undefined) 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) isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);else isParent && el.remove();\n } else inserted = true;\n }\n } else parent.insertBefore(node, marker);\n return [node];\n}\nfunction gatherHydratable(element, root) {\n const templates = element.querySelectorAll(`*[data-hk]`);\n for (let i = 0; i < templates.length; i++) {\n const node = templates[i];\n const key = node.getAttribute(\"data-hk\");\n if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key)) sharedConfig.registry.set(key, node);\n }\n}\nfunction getHydrationKey() {\n const hydrate = sharedConfig.context;\n return `${hydrate.id}${hydrate.count++}`;\n}\nfunction NoHydration(props) {\n return sharedConfig.context ? undefined : props.children;\n}\nfunction Hydration(props) {\n return props.children;\n}\nfunction voidFn() {}\n\nfunction throwInBrowser(func) {\n const err = new Error(`${func.name} is not supported in the browser, returning undefined`);\n console.error(err);\n}\nfunction renderToString(fn, options) {\n throwInBrowser(renderToString);\n}\nfunction renderToStringAsync(fn, options) {\n throwInBrowser(renderToStringAsync);\n}\nfunction renderToStream(fn, options) {\n throwInBrowser(renderToStream);\n}\nfunction ssr(template, ...nodes) {}\nfunction ssrElement(name, props, children, needsId) {}\nfunction ssrClassList(value) {}\nfunction ssrStyle(value) {}\nfunction ssrAttribute(key, value) {}\nfunction ssrHydrationKey() {}\nfunction resolveSSRNode(node) {}\nfunction escape(html) {}\nfunction ssrSpread(props, isSVG, skipChildren) {}\n\nconst isServer = false;\nconst isDev = false;\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}\nconst hydrate = (...args) => {\n enableHydration();\n return hydrate$1(...args);\n};\nfunction Portal(props) {\n const {\n useShadow\n } = props,\n marker = document.createTextNode(\"\"),\n mount = () => props.mount || document.body,\n content = createMemo(renderPortal());\n function renderPortal() {\n if (sharedConfig.context) {\n const [s, set] = createSignal(false);\n onMount(() => set(true));\n return () => s() && props.children;\n } else return () => props.children;\n }\n createRenderEffect(() => {\n const el = mount();\n if (el instanceof HTMLHeadElement) {\n const [clean, setClean] = createSignal(false);\n const cleanup = () => setClean(true);\n createRoot(dispose => insert(el, () => !clean() ? content() : dispose(), null));\n onCleanup(() => {\n if (sharedConfig.context) queueMicrotask(cleanup);else cleanup();\n });\n } else {\n const container = createElement(props.isSVG ? \"g\" : \"div\", props.isSVG),\n renderRoot = useShadow && container.attachShadow ? container.attachShadow({\n mode: \"open\"\n }) : container;\n Object.defineProperty(container, \"_$host\", {\n get() {\n return marker.parentNode;\n },\n configurable: true\n });\n insert(renderRoot, content);\n el.appendChild(container);\n props.ref && props.ref(container);\n onCleanup(() => el.removeChild(container));\n }\n });\n return marker;\n}\nfunction Dynamic(props) {\n const [p, others] = splitProps(props, [\"component\"]);\n const cached = createMemo(() => p.component);\n return createMemo(() => {\n const component = cached();\n switch (typeof component) {\n case \"function\":\n Object.assign(component, {\n [$DEVCOMP]: true\n });\n return untrack(() => component(others));\n case \"string\":\n const isSvg = SVGElements.has(component);\n const el = sharedConfig.context ? getNextElement() : createElement(component, isSvg);\n spread(el, others, isSvg);\n return el;\n }\n });\n}\n\nexport { Aliases, voidFn as Assets, ChildProperties, DOMElements, DelegatedEvents, Dynamic, Hydration, voidFn as HydrationScript, NoHydration, Portal, PropAliases, Properties, SVGElements, SVGNamespace, addEventListener, assign, classList, className, clearDelegatedEvents, delegateEvents, dynamicProperty, escape, voidFn as generateHydrationScript, voidFn as getAssets, getHydrationKey, getNextElement, getNextMarker, getNextMatch, hydrate, innerHTML, insert, isDev, isServer, render, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, runHydrationEvents, setAttribute, setAttributeNS, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, style, template, use, voidFn as useAssets };\n","/**\n * match-sorter-utils\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nconst characterMap = {\n À: 'A',\n Á: 'A',\n Â: 'A',\n Ã: 'A',\n Ä: 'A',\n Å: 'A',\n Ấ: 'A',\n Ắ: 'A',\n Ẳ: 'A',\n Ẵ: 'A',\n Ặ: 'A',\n Æ: 'AE',\n Ầ: 'A',\n Ằ: 'A',\n Ȃ: 'A',\n Ç: 'C',\n Ḉ: 'C',\n È: 'E',\n É: 'E',\n Ê: 'E',\n Ë: 'E',\n Ế: 'E',\n Ḗ: 'E',\n Ề: 'E',\n Ḕ: 'E',\n Ḝ: 'E',\n Ȇ: 'E',\n Ì: 'I',\n Í: 'I',\n Î: 'I',\n Ï: 'I',\n Ḯ: 'I',\n Ȋ: 'I',\n Ð: 'D',\n Ñ: 'N',\n Ò: 'O',\n Ó: 'O',\n Ô: 'O',\n Õ: 'O',\n Ö: 'O',\n Ø: 'O',\n Ố: 'O',\n Ṍ: 'O',\n Ṓ: 'O',\n Ȏ: 'O',\n Ù: 'U',\n Ú: 'U',\n Û: 'U',\n Ü: 'U',\n Ý: 'Y',\n à: 'a',\n á: 'a',\n â: 'a',\n ã: 'a',\n ä: 'a',\n å: 'a',\n ấ: 'a',\n ắ: 'a',\n ẳ: 'a',\n ẵ: 'a',\n ặ: 'a',\n æ: 'ae',\n ầ: 'a',\n ằ: 'a',\n ȃ: 'a',\n ç: 'c',\n ḉ: 'c',\n è: 'e',\n é: 'e',\n ê: 'e',\n ë: 'e',\n ế: 'e',\n ḗ: 'e',\n ề: 'e',\n ḕ: 'e',\n ḝ: 'e',\n ȇ: 'e',\n ì: 'i',\n í: 'i',\n î: 'i',\n ï: 'i',\n ḯ: 'i',\n ȋ: 'i',\n ð: 'd',\n ñ: 'n',\n ò: 'o',\n ó: 'o',\n ô: 'o',\n õ: 'o',\n ö: 'o',\n ø: 'o',\n ố: 'o',\n ṍ: 'o',\n ṓ: 'o',\n ȏ: 'o',\n ù: 'u',\n ú: 'u',\n û: 'u',\n ü: 'u',\n ý: 'y',\n ÿ: 'y',\n Ā: 'A',\n ā: 'a',\n Ă: 'A',\n ă: 'a',\n Ą: 'A',\n ą: 'a',\n Ć: 'C',\n ć: 'c',\n Ĉ: 'C',\n ĉ: 'c',\n Ċ: 'C',\n ċ: 'c',\n Č: 'C',\n č: 'c',\n C̆: 'C',\n c̆: 'c',\n Ď: 'D',\n ď: 'd',\n Đ: 'D',\n đ: 'd',\n Ē: 'E',\n ē: 'e',\n Ĕ: 'E',\n ĕ: 'e',\n Ė: 'E',\n ė: 'e',\n Ę: 'E',\n ę: 'e',\n Ě: 'E',\n ě: 'e',\n Ĝ: 'G',\n Ǵ: 'G',\n ĝ: 'g',\n ǵ: 'g',\n Ğ: 'G',\n ğ: 'g',\n Ġ: 'G',\n ġ: 'g',\n Ģ: 'G',\n ģ: 'g',\n Ĥ: 'H',\n ĥ: 'h',\n Ħ: 'H',\n ħ: 'h',\n Ḫ: 'H',\n ḫ: 'h',\n Ĩ: 'I',\n ĩ: 'i',\n Ī: 'I',\n ī: 'i',\n Ĭ: 'I',\n ĭ: 'i',\n Į: 'I',\n į: 'i',\n İ: 'I',\n ı: 'i',\n IJ: 'IJ',\n ij: 'ij',\n Ĵ: 'J',\n ĵ: 'j',\n Ķ: 'K',\n ķ: 'k',\n Ḱ: 'K',\n ḱ: 'k',\n K̆: 'K',\n k̆: 'k',\n Ĺ: 'L',\n ĺ: 'l',\n Ļ: 'L',\n ļ: 'l',\n Ľ: 'L',\n ľ: 'l',\n Ŀ: 'L',\n ŀ: 'l',\n Ł: 'l',\n ł: 'l',\n Ḿ: 'M',\n ḿ: 'm',\n M̆: 'M',\n m̆: 'm',\n Ń: 'N',\n ń: 'n',\n Ņ: 'N',\n ņ: 'n',\n Ň: 'N',\n ň: 'n',\n ʼn: 'n',\n N̆: 'N',\n n̆: 'n',\n Ō: 'O',\n ō: 'o',\n Ŏ: 'O',\n ŏ: 'o',\n Ő: 'O',\n ő: 'o',\n Œ: 'OE',\n œ: 'oe',\n P̆: 'P',\n p̆: 'p',\n Ŕ: 'R',\n ŕ: 'r',\n Ŗ: 'R',\n ŗ: 'r',\n Ř: 'R',\n ř: 'r',\n R̆: 'R',\n r̆: 'r',\n Ȓ: 'R',\n ȓ: 'r',\n Ś: 'S',\n ś: 's',\n Ŝ: 'S',\n ŝ: 's',\n Ş: 'S',\n Ș: 'S',\n ș: 's',\n ş: 's',\n Š: 'S',\n š: 's',\n Ţ: 'T',\n ţ: 't',\n ț: 't',\n Ț: 'T',\n Ť: 'T',\n ť: 't',\n Ŧ: 'T',\n ŧ: 't',\n T̆: 'T',\n t̆: 't',\n Ũ: 'U',\n ũ: 'u',\n Ū: 'U',\n ū: 'u',\n Ŭ: 'U',\n ŭ: 'u',\n Ů: 'U',\n ů: 'u',\n Ű: 'U',\n ű: 'u',\n Ų: 'U',\n ų: 'u',\n Ȗ: 'U',\n ȗ: 'u',\n V̆: 'V',\n v̆: 'v',\n Ŵ: 'W',\n ŵ: 'w',\n Ẃ: 'W',\n ẃ: 'w',\n X̆: 'X',\n x̆: 'x',\n Ŷ: 'Y',\n ŷ: 'y',\n Ÿ: 'Y',\n Y̆: 'Y',\n y̆: 'y',\n Ź: 'Z',\n ź: 'z',\n Ż: 'Z',\n ż: 'z',\n Ž: 'Z',\n ž: 'z',\n ſ: 's',\n ƒ: 'f',\n Ơ: 'O',\n ơ: 'o',\n Ư: 'U',\n ư: 'u',\n Ǎ: 'A',\n ǎ: 'a',\n Ǐ: 'I',\n ǐ: 'i',\n Ǒ: 'O',\n ǒ: 'o',\n Ǔ: 'U',\n ǔ: 'u',\n Ǖ: 'U',\n ǖ: 'u',\n Ǘ: 'U',\n ǘ: 'u',\n Ǚ: 'U',\n ǚ: 'u',\n Ǜ: 'U',\n ǜ: 'u',\n Ứ: 'U',\n ứ: 'u',\n Ṹ: 'U',\n ṹ: 'u',\n Ǻ: 'A',\n ǻ: 'a',\n Ǽ: 'AE',\n ǽ: 'ae',\n Ǿ: 'O',\n ǿ: 'o',\n Þ: 'TH',\n þ: 'th',\n Ṕ: 'P',\n ṕ: 'p',\n Ṥ: 'S',\n ṥ: 's',\n X́: 'X',\n x́: 'x',\n Ѓ: 'Г',\n ѓ: 'г',\n Ќ: 'К',\n ќ: 'к',\n A̋: 'A',\n a̋: 'a',\n E̋: 'E',\n e̋: 'e',\n I̋: 'I',\n i̋: 'i',\n Ǹ: 'N',\n ǹ: 'n',\n Ồ: 'O',\n ồ: 'o',\n Ṑ: 'O',\n ṑ: 'o',\n Ừ: 'U',\n ừ: 'u',\n Ẁ: 'W',\n ẁ: 'w',\n Ỳ: 'Y',\n ỳ: 'y',\n Ȁ: 'A',\n ȁ: 'a',\n Ȅ: 'E',\n ȅ: 'e',\n Ȉ: 'I',\n ȉ: 'i',\n Ȍ: 'O',\n ȍ: 'o',\n Ȑ: 'R',\n ȑ: 'r',\n Ȕ: 'U',\n ȕ: 'u',\n B̌: 'B',\n b̌: 'b',\n Č̣: 'C',\n č̣: 'c',\n Ê̌: 'E',\n ê̌: 'e',\n F̌: 'F',\n f̌: 'f',\n Ǧ: 'G',\n ǧ: 'g',\n Ȟ: 'H',\n ȟ: 'h',\n J̌: 'J',\n ǰ: 'j',\n Ǩ: 'K',\n ǩ: 'k',\n M̌: 'M',\n m̌: 'm',\n P̌: 'P',\n p̌: 'p',\n Q̌: 'Q',\n q̌: 'q',\n Ř̩: 'R',\n ř̩: 'r',\n Ṧ: 'S',\n ṧ: 's',\n V̌: 'V',\n v̌: 'v',\n W̌: 'W',\n w̌: 'w',\n X̌: 'X',\n x̌: 'x',\n Y̌: 'Y',\n y̌: 'y',\n A̧: 'A',\n a̧: 'a',\n B̧: 'B',\n b̧: 'b',\n Ḑ: 'D',\n ḑ: 'd',\n Ȩ: 'E',\n ȩ: 'e',\n Ɛ̧: 'E',\n ɛ̧: 'e',\n Ḩ: 'H',\n ḩ: 'h',\n I̧: 'I',\n i̧: 'i',\n Ɨ̧: 'I',\n ɨ̧: 'i',\n M̧: 'M',\n m̧: 'm',\n O̧: 'O',\n o̧: 'o',\n Q̧: 'Q',\n q̧: 'q',\n U̧: 'U',\n u̧: 'u',\n X̧: 'X',\n x̧: 'x',\n Z̧: 'Z',\n z̧: 'z'\n};\nconst chars = Object.keys(characterMap).join('|');\nconst allAccents = new RegExp(chars, 'g');\nfunction removeAccents(str) {\n return str.replace(allAccents, match => {\n return characterMap[match];\n });\n}\n\n/**\n * @name match-sorter\n * @license MIT license.\n * @copyright (c) 2099 Kent C. Dodds\n * @author Kent C. Dodds <me@kentcdodds.com> (https://kentcdodds.com)\n */\nconst rankings = {\n CASE_SENSITIVE_EQUAL: 7,\n EQUAL: 6,\n STARTS_WITH: 5,\n WORD_STARTS_WITH: 4,\n CONTAINS: 3,\n ACRONYM: 2,\n MATCHES: 1,\n NO_MATCH: 0\n};\n/**\n * Gets the highest ranking for value for the given item based on its values for the given keys\n * @param {*} item - the item to rank\n * @param {Array} keys - the keys to get values from the item for the ranking\n * @param {String} value - the value to rank against\n * @param {Object} options - options to control the ranking\n * @return {{rank: Number, accessorIndex: Number, accessorThreshold: Number}} - the highest ranking\n */\nfunction rankItem(item, value, options) {\n var _options$threshold;\n options = options || {};\n options.threshold = (_options$threshold = options.threshold) != null ? _options$threshold : rankings.MATCHES;\n if (!options.accessors) {\n // if keys is not specified, then we assume the item given is ready to be matched\n const rank = getMatchRanking(item, value, options);\n return {\n // ends up being duplicate of 'item' in matches but consistent\n rankedValue: item,\n rank,\n accessorIndex: -1,\n accessorThreshold: options.threshold,\n passed: rank >= options.threshold\n };\n }\n const valuesToRank = getAllValuesToRank(item, options.accessors);\n const rankingInfo = {\n rankedValue: item,\n rank: rankings.NO_MATCH,\n accessorIndex: -1,\n accessorThreshold: options.threshold,\n passed: false\n };\n for (let i = 0; i < valuesToRank.length; i++) {\n const rankValue = valuesToRank[i];\n let newRank = getMatchRanking(rankValue.itemValue, value, options);\n const {\n minRanking,\n maxRanking,\n threshold = options.threshold\n } = rankValue.attributes;\n if (newRank < minRanking && newRank >= rankings.MATCHES) {\n newRank = minRanking;\n } else if (newRank > maxRanking) {\n newRank = maxRanking;\n }\n newRank = Math.min(newRank, maxRanking);\n if (newRank >= threshold && newRank > rankingInfo.rank) {\n rankingInfo.rank = newRank;\n rankingInfo.passed = true;\n rankingInfo.accessorIndex = i;\n rankingInfo.accessorThreshold = threshold;\n rankingInfo.rankedValue = rankValue.itemValue;\n }\n }\n return rankingInfo;\n}\n\n/**\n * Gives a rankings score based on how well the two strings match.\n * @param {String} testString - the string to test against\n * @param {String} stringToRank - the string to rank\n * @param {Object} options - options for the match (like keepDiacritics for comparison)\n * @returns {Number} the ranking for how well stringToRank matches testString\n */\nfunction getMatchRanking(testString, stringToRank, options) {\n testString = prepareValueForComparison(testString, options);\n stringToRank = prepareValueForComparison(stringToRank, options);\n\n // too long\n if (stringToRank.length > testString.length) {\n return rankings.NO_MATCH;\n }\n\n // case sensitive equals\n if (testString === stringToRank) {\n return rankings.CASE_SENSITIVE_EQUAL;\n }\n\n // Lower casing before further comparison\n testString = testString.toLowerCase();\n stringToRank = stringToRank.toLowerCase();\n\n // case insensitive equals\n if (testString === stringToRank) {\n return rankings.EQUAL;\n }\n\n // starts with\n if (testString.startsWith(stringToRank)) {\n return rankings.STARTS_WITH;\n }\n\n // word starts with\n if (testString.includes(` ${stringToRank}`)) {\n return rankings.WORD_STARTS_WITH;\n }\n\n // contains\n if (testString.includes(stringToRank)) {\n return rankings.CONTAINS;\n } else if (stringToRank.length === 1) {\n // If the only character in the given stringToRank\n // isn't even contained in the testString, then\n // it's definitely not a match.\n return rankings.NO_MATCH;\n }\n\n // acronym\n if (getAcronym(testString).includes(stringToRank)) {\n return rankings.ACRONYM;\n }\n\n // will return a number between rankings.MATCHES and\n // rankings.MATCHES + 1 depending on how close of a match it is.\n return getClosenessRanking(testString, stringToRank);\n}\n\n/**\n * Generates an acronym for a string.\n *\n * @param {String} string the string for which to produce the acronym\n * @returns {String} the acronym\n */\nfunction getAcronym(string) {\n let acronym = '';\n const wordsInString = string.split(' ');\n wordsInString.forEach(wordInString => {\n const splitByHyphenWords = wordInString.split('-');\n splitByHyphenWords.forEach(splitByHyphenWord => {\n acronym += splitByHyphenWord.substr(0, 1);\n });\n });\n return acronym;\n}\n\n/**\n * Returns a score based on how spread apart the\n * characters from the stringToRank are within the testString.\n * A number close to rankings.MATCHES represents a loose match. A number close\n * to rankings.MATCHES + 1 represents a tighter match.\n * @param {String} testString - the string to test against\n * @param {String} stringToRank - the string to rank\n * @returns {Number} the number between rankings.MATCHES and\n * rankings.MATCHES + 1 for how well stringToRank matches testString\n */\nfunction getClosenessRanking(testString, stringToRank) {\n let matchingInOrderCharCount = 0;\n let charNumber = 0;\n function findMatchingCharacter(matchChar, string, index) {\n for (let j = index, J = string.length; j < J; j++) {\n const stringChar = string[j];\n if (stringChar === matchChar) {\n matchingInOrderCharCount += 1;\n return j + 1;\n }\n }\n return -1;\n }\n function getRanking(spread) {\n const spreadPercentage = 1 / spread;\n const inOrderPercentage = matchingInOrderCharCount / stringToRank.length;\n const ranking = rankings.MATCHES + inOrderPercentage * spreadPercentage;\n return ranking;\n }\n const firstIndex = findMatchingCharacter(stringToRank[0], testString, 0);\n if (firstIndex < 0) {\n return rankings.NO_MATCH;\n }\n charNumber = firstIndex;\n for (let i = 1, I = stringToRank.length; i < I; i++) {\n const matchChar = stringToRank[i];\n charNumber = findMatchingCharacter(matchChar, testString, charNumber);\n const found = charNumber > -1;\n if (!found) {\n return rankings.NO_MATCH;\n }\n }\n const spread = charNumber - firstIndex;\n return getRanking(spread);\n}\n\n/**\n * Sorts items that have a rank, index, and accessorIndex\n * @param {Object} a - the first item to sort\n * @param {Object} b - the second item to sort\n * @return {Number} -1 if a should come first, 1 if b should come first, 0 if equal\n */\nfunction compareItems(a, b) {\n return a.rank === b.rank ? 0 : a.rank > b.rank ? -1 : 1;\n}\n\n/**\n * Prepares value for comparison by stringifying it, removing diacritics (if specified)\n * @param {String} value - the value to clean\n * @param {Object} options - {keepDiacritics: whether to remove diacritics}\n * @return {String} the prepared value\n */\nfunction prepareValueForComparison(value, _ref) {\n let {\n keepDiacritics\n } = _ref;\n // value might not actually be a string at this point (we don't get to choose)\n // so part of preparing the value for comparison is ensure that it is a string\n value = `${value}`; // toString\n if (!keepDiacritics) {\n value = removeAccents(value);\n }\n return value;\n}\n\n/**\n * Gets value for key in item at arbitrarily nested keypath\n * @param {Object} item - the item\n * @param {Object|Function} key - the potentially nested keypath or property callback\n * @return {Array} - an array containing the value(s) at the nested keypath\n */\nfunction getItemValues(item, accessor) {\n let accessorFn = accessor;\n if (typeof accessor === 'object') {\n accessorFn = accessor.accessor;\n }\n const value = accessorFn(item);\n\n // because `value` can also be undefined\n if (value == null) {\n return [];\n }\n if (Array.isArray(value)) {\n return value;\n }\n return [String(value)];\n}\n\n/**\n * Gets all the values for the given keys in the given item and returns an array of those values\n * @param item - the item from which the values will be retrieved\n * @param keys - the keys to use to retrieve the values\n * @return objects with {itemValue, attributes}\n */\nfunction getAllValuesToRank(item, accessors) {\n const allValues = [];\n for (let j = 0, J = accessors.length; j < J; j++) {\n const accessor = accessors[j];\n const attributes = getAccessorAttributes(accessor);\n const itemValues = getItemValues(item, accessor);\n for (let i = 0, I = itemValues.length; i < I; i++) {\n allValues.push({\n itemValue: itemValues[i],\n attributes\n });\n }\n }\n return allValues;\n}\nconst defaultKeyAttributes = {\n maxRanking: Infinity,\n minRanking: -Infinity\n};\n/**\n * Gets all the attributes for the given accessor\n * @param accessor - the accessor from which the attributes will be retrieved\n * @return object containing the accessor's attributes\n */\nfunction getAccessorAttributes(accessor) {\n if (typeof accessor === 'function') {\n return defaultKeyAttributes;\n }\n return {\n ...defaultKeyAttributes,\n ...accessor\n };\n}\n\nexport { compareItems, rankItem, rankings };\n//# sourceMappingURL=index.mjs.map\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport weakMemoize from '@emotion/weak-memoize';\nimport memoize from '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar isBrowser = typeof document !== 'undefined';\nvar getServerStylisCache = isBrowser ? undefined : weakMemoize(function () {\n return memoize(function () {\n var cache = {};\n return function (name) {\n return cache[name];\n };\n });\n});\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (isBrowser && key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n if (isBrowser) {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n if (isBrowser) {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n } else {\n var _finalizingPlugins = [stringify];\n\n var _serializer = middleware(omnipresentPlugins.concat(stylisPlugins, _finalizingPlugins));\n\n var _stylis = function _stylis(styles) {\n return serialize(compile(styles), _serializer);\n }; // $FlowFixMe\n\n\n var serverStylisCache = getServerStylisCache(stylisPlugins)(key);\n\n var getRules = function getRules(selector, serialized) {\n var name = serialized.name;\n\n if (serverStylisCache[name] === undefined) {\n serverStylisCache[name] = _stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n }\n\n return serverStylisCache[name];\n };\n\n _insert = function _insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n var rules = getRules(selector, serialized);\n\n if (cache.compat === undefined) {\n // in regular mode, we don't set the styles on the inserted cache\n // since we don't need to and that would be wasting memory\n // we return them so that they are rendered in a style tag\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n\n if ( // using === development instead of !== production\n // because if people do ssr in tests, the source maps showing up would be annoying\n process.env.NODE_ENV === 'development' && serialized.map !== undefined) {\n return rules + serialized.map;\n }\n\n return rules;\n } else {\n // in compat mode, we put the styles on the inserted cache so\n // that emotion-server can pull out the styles\n // except when we don't want to cache it which was in Global but now\n // is nowhere but we don't want to do a major right now\n // and just in case we're going to leave the case here\n // it's also not affecting client side bundle size\n // so it's really not a big deal\n if (shouldCache) {\n cache.inserted[name] = rules;\n } else {\n return rules;\n }\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var isBrowser = typeof document !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var stylesForSSR = '';\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n if (!isBrowser && maybeStyles !== undefined) {\n stylesForSSR += maybeStyles;\n }\n\n current = current.next;\n } while (current !== undefined);\n\n if (!isBrowser && stylesForSSR.length !== 0) {\n return stylesForSSR;\n }\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import createCache from '@emotion/cache';\nimport { serializeStyles } from '@emotion/serialize';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\n\nfunction insertWithoutScoping(cache, serialized) {\n if (cache.inserted[serialized.name] === undefined) {\n return cache.insert('', serialized, cache.sheet, true);\n }\n}\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar createEmotion = function createEmotion(options) {\n var cache = createCache(options); // $FlowFixMe\n\n cache.sheet.speedy = function (value) {\n if (process.env.NODE_ENV !== 'production' && this.ctr !== 0) {\n throw new Error('speedy must be changed before any rules are inserted');\n }\n\n this.isSpeedy = value;\n };\n\n cache.compat = true;\n\n var css = function css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered, undefined);\n insertStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var keyframes = function keyframes() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n var animation = \"animation-\" + serialized.name;\n insertWithoutScoping(cache, {\n name: serialized.name,\n styles: \"@keyframes \" + animation + \"{\" + serialized.styles + \"}\"\n });\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n insertWithoutScoping(cache, serialized);\n };\n\n var cx = function cx() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n return {\n css: css,\n cx: cx,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n hydrate: function hydrate(ids) {\n ids.forEach(function (key) {\n cache.inserted[key] = true;\n });\n },\n flush: function flush() {\n cache.registered = {};\n cache.inserted = {};\n cache.sheet.flush();\n },\n // $FlowFixMe\n sheet: cache.sheet,\n cache: cache,\n getRegisteredStyles: getRegisteredStyles.bind(null, cache.registered),\n merge: merge.bind(null, cache.registered, css)\n };\n};\n\nvar classnames = function classnames(args) {\n var cls = '';\n\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nexport default createEmotion;\n","import '@emotion/cache';\nimport '@emotion/serialize';\nimport '@emotion/utils';\nimport createEmotion from '../create-instance/dist/emotion-css-create-instance.esm.js';\n\nvar _createEmotion = createEmotion({\n key: 'css'\n}),\n flush = _createEmotion.flush,\n hydrate = _createEmotion.hydrate,\n cx = _createEmotion.cx,\n merge = _createEmotion.merge,\n getRegisteredStyles = _createEmotion.getRegisteredStyles,\n injectGlobal = _createEmotion.injectGlobal,\n keyframes = _createEmotion.keyframes,\n css = _createEmotion.css,\n sheet = _createEmotion.sheet,\n cache = _createEmotion.cache;\n\nexport { cache, css, cx, flush, getRegisteredStyles, hydrate, injectGlobal, keyframes, merge, sheet };\n","const ShadowVariants = {\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n sm: '0 1px 3px 0 color, 0 1px 2px -1px color',\n md: '0 4px 6px -1px color, 0 2px 4px -2px color',\n lg: '0 10px 15px -3px color, 0 4px 6px -4px color',\n xl: '0 20px 25px -5px color, 0 8px 10px -6px color',\n '2xl': '0 25px 50px -12px color',\n inner: 'inset 0 2px 4px 0 color',\n none: 'none',\n}\n\ntype ShadowVariantType = keyof typeof ShadowVariants\n\nconst getShadow = (variant: ShadowVariantType, color: string = ''): string => {\n return ShadowVariants[variant].replace(/color/g, color)\n}\n\nconst Shadow = {\n xs: (color: string = 'rgb(0 0 0 / 0.1)') => getShadow('xs', color),\n sm: (color: string = 'rgb(0 0 0 / 0.1)') => getShadow('sm', color),\n md: (color: string = 'rgb(0 0 0 / 0.1)') => getShadow('md', color),\n lg: (color: string = 'rgb(0 0 0 / 0.1)') => getShadow('lg', color),\n xl: (color: string = 'rgb(0 0 0 / 0.1)') => getShadow('xl', color),\n '2xl': (color: string = 'rgb(0 0 0 / 0.25)') => getShadow('2xl', color),\n inner: (color: string = 'rgb(0 0 0 / 0.05)') => getShadow('inner', color),\n none: () => getShadow('none'),\n}\n\nexport const 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 25: '#FFFBFA',\n 50: '#FEF3F2',\n 100: '#FEE4E2',\n 200: '#FECDCA',\n 300: '#FDA29B',\n 400: '#F97066',\n 500: '#F04438',\n 600: '#D92D20',\n 700: '#B42318',\n 800: '#912018',\n 900: '#7A271A',\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 100: 'ff',\n 90: 'e5',\n 80: 'cc',\n 70: 'b3',\n 60: '99',\n 50: '80',\n 40: '66',\n 30: '4d',\n 20: '33',\n 10: '1a',\n 0: '00',\n },\n font: {\n size: {\n '2xs': '0.625rem',\n xs: '0.75rem',\n sm: '0.875rem',\n md: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n '5xl': '3rem',\n '6xl': '3.75rem',\n '7xl': '4.5rem',\n '8xl': '6rem',\n '9xl': '8rem',\n },\n lineHeight: {\n xs: '1rem',\n sm: '1.25rem',\n md: '1.5rem',\n lg: '1.75rem',\n xl: '1.75rem',\n '2xl': '2rem',\n '3xl': '2.25rem',\n '4xl': '2.5rem',\n '5xl': '1',\n '6xl': '1',\n '7xl': '1',\n '8xl': '1',\n '9xl': '1',\n },\n weight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n },\n breakpoints: {\n xs: '320px',\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n border: {\n radius: {\n none: '0px',\n xs: '0.125rem',\n sm: '0.25rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n full: '9999px',\n },\n },\n size: {\n 0: '0px',\n 0.25: '0.0625rem',\n 0.5: '0.125rem',\n 1: '0.25rem',\n 1.5: '0.375rem',\n 2: '0.5rem',\n 2.5: '0.625rem',\n 3: '0.75rem',\n 3.5: '0.875rem',\n 4: '1rem',\n 4.5: '1.125rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n 11: '2.75rem',\n 12: '3rem',\n 14: '3.5rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 28: '7rem',\n 32: '8rem',\n 36: '9rem',\n 40: '10rem',\n 44: '11rem',\n 48: '12rem',\n 52: '13rem',\n 56: '14rem',\n 60: '15rem',\n 64: '16rem',\n 72: '18rem',\n 80: '20rem',\n 96: '24rem',\n },\n shadow: Shadow,\n zIndices: {\n hide: -1,\n auto: 'auto',\n base: 0,\n docked: 10,\n dropdown: 1000,\n sticky: 1100,\n banner: 1200,\n overlay: 1300,\n modal: 1400,\n popover: 1500,\n skipLink: 1600,\n toast: 1700,\n tooltip: 1800,\n },\n}\n\nexport type ThemeConfigType = typeof tokens\nexport type ThemeColorsAll = {\n [key in keyof ThemeConfigType['colors']]: key\n}[keyof ThemeConfigType['colors']]\nexport type AtomicThemeColors =\n | 'white'\n | 'black'\n | 'transparent'\n | 'current'\n | 'inherit'\nexport type ThemeColors = Exclude<ThemeColorsAll, AtomicThemeColors>\n","var DoubleIndexedKV = /** @class */ (function () {\n function DoubleIndexedKV() {\n this.keyToValue = new Map();\n this.valueToKey = new Map();\n }\n DoubleIndexedKV.prototype.set = function (key, value) {\n this.keyToValue.set(key, value);\n this.valueToKey.set(value, key);\n };\n DoubleIndexedKV.prototype.getByKey = function (key) {\n return this.keyToValue.get(key);\n };\n DoubleIndexedKV.prototype.getByValue = function (value) {\n return this.valueToKey.get(value);\n };\n DoubleIndexedKV.prototype.clear = function () {\n this.keyToValue.clear();\n this.valueToKey.clear();\n };\n return DoubleIndexedKV;\n}());\nexport { DoubleIndexedKV };\n//# sourceMappingURL=double-indexed-kv.js.map","import { DoubleIndexedKV } from './double-indexed-kv';\nvar Registry = /** @class */ (function () {\n function Registry(generateIdentifier) {\n this.generateIdentifier = generateIdentifier;\n this.kv = new DoubleIndexedKV();\n }\n Registry.prototype.register = function (value, identifier) {\n if (this.kv.getByValue(value)) {\n return;\n }\n if (!identifier) {\n identifier = this.generateIdentifier(value);\n }\n this.kv.set(identifier, value);\n };\n Registry.prototype.clear = function () {\n this.kv.clear();\n };\n Registry.prototype.getIdentifier = function (value) {\n return this.kv.getByValue(value);\n };\n Registry.prototype.getValue = function (identifier) {\n return this.kv.getByKey(identifier);\n };\n return Registry;\n}());\nexport { Registry };\n//# sourceMappingURL=registry.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Registry } from './registry';\nvar ClassRegistry = /** @class */ (function (_super) {\n __extends(ClassRegistry, _super);\n function ClassRegistry() {\n var _this = _super.call(this, function (c) { return c.name; }) || this;\n _this.classToAllowedProps = new Map();\n return _this;\n }\n ClassRegistry.prototype.register = function (value, options) {\n if (typeof options === 'object') {\n if (options.allowProps) {\n this.classToAllowedProps.set(value, options.allowProps);\n }\n _super.prototype.register.call(this, value, options.identifier);\n }\n else {\n _super.prototype.register.call(this, value, options);\n }\n };\n ClassRegistry.prototype.getAllowedProps = function (value) {\n return this.classToAllowedProps.get(value);\n };\n return ClassRegistry;\n}(Registry));\nexport { ClassRegistry };\n//# sourceMappingURL=class-registry.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nfunction valuesOfObj(record) {\n if ('values' in Object) {\n // eslint-disable-next-line es5/no-es6-methods\n return Object.values(record);\n }\n var values = [];\n // eslint-disable-next-line no-restricted-syntax\n for (var key in record) {\n if (record.hasOwnProperty(key)) {\n values.push(record[key]);\n }\n }\n return values;\n}\nexport function find(record, predicate) {\n var values = valuesOfObj(record);\n if ('find' in values) {\n // eslint-disable-next-line es5/no-es6-methods\n return values.find(predicate);\n }\n var valuesNotNever = values;\n for (var i = 0; i < valuesNotNever.length; i++) {\n var value = valuesNotNever[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\nexport function forEach(record, run) {\n Object.entries(record).forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n return run(value, key);\n });\n}\nexport function includes(arr, value) {\n return arr.indexOf(value) !== -1;\n}\nexport function findArr(record, predicate) {\n for (var i = 0; i < record.length; i++) {\n var value = record[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\n//# sourceMappingURL=util.js.map","import { find } from './util';\nvar CustomTransformerRegistry = /** @class */ (function () {\n function CustomTransformerRegistry() {\n this.transfomers = {};\n }\n CustomTransformerRegistry.prototype.register = function (transformer) {\n this.transfomers[transformer.name] = transformer;\n };\n CustomTransformerRegistry.prototype.findApplicable = function (v) {\n return find(this.transfomers, function (transformer) {\n return transformer.isApplicable(v);\n });\n };\n CustomTransformerRegistry.prototype.findByName = function (name) {\n return this.transfomers[name];\n };\n return CustomTransformerRegistry;\n}());\nexport { CustomTransformerRegistry };\n//# sourceMappingURL=custom-transformer-registry.js.map","var getType = function (payload) {\n return Object.prototype.toString.call(payload).slice(8, -1);\n};\nexport var isUndefined = function (payload) {\n return typeof payload === 'undefined';\n};\nexport var isNull = function (payload) { return payload === null; };\nexport var isPlainObject = function (payload) {\n if (typeof payload !== 'object' || payload === null)\n return false;\n if (payload === Object.prototype)\n return false;\n if (Object.getPrototypeOf(payload) === null)\n return true;\n return (payload.constructor === Object &&\n Object.getPrototypeOf(payload) === Object.prototype);\n};\nexport var isEmptyObject = function (payload) {\n return isPlainObject(payload) && Object.keys(payload).length === 0;\n};\nexport var isArray = function (payload) {\n return Array.isArray(payload);\n};\nexport var isString = function (payload) {\n return typeof payload === 'string';\n};\nexport var isNumber = function (payload) {\n return typeof payload === 'number' && !isNaN(payload);\n};\nexport var isBoolean = function (payload) {\n return typeof payload === 'boolean';\n};\nexport var isRegExp = function (payload) {\n return payload instanceof RegExp;\n};\nexport var isMap = function (payload) {\n return payload instanceof Map;\n};\nexport var isSet = function (payload) {\n return payload instanceof Set;\n};\nexport var isSymbol = function (payload) {\n return getType(payload) === 'Symbol';\n};\nexport var isDate = function (payload) {\n return payload instanceof Date && !isNaN(payload.valueOf());\n};\nexport var isError = function (payload) {\n return payload instanceof Error;\n};\nexport var isNaNValue = function (payload) {\n return typeof payload === 'number' && isNaN(payload);\n};\nexport var isPrimitive = function (payload) {\n return isBoolean(payload) ||\n isNull(payload) ||\n isUndefined(payload) ||\n isNumber(payload) ||\n isString(payload) ||\n isSymbol(payload);\n};\nexport var isBigint = function (payload) {\n return typeof payload === 'bigint';\n};\nexport var isInfinite = function (payload) {\n return payload === Infinity || payload === -Infinity;\n};\nexport var isTypedArray = function (payload) {\n return ArrayBuffer.isView(payload) && !(payload instanceof DataView);\n};\nexport var isURL = function (payload) { return payload instanceof URL; };\n//# sourceMappingURL=is.js.map","export var escapeKey = function (key) { return key.replace(/\\./g, '\\\\.'); };\nexport var stringifyPath = function (path) {\n return path\n .map(String)\n .map(escapeKey)\n .join('.');\n};\nexport var parsePath = function (string) {\n var result = [];\n var segment = '';\n for (var i = 0; i < string.length; i++) {\n var char = string.charAt(i);\n var isEscapedDot = char === '\\\\' && string.charAt(i + 1) === '.';\n if (isEscapedDot) {\n segment += '.';\n i++;\n continue;\n }\n var isEndOfSegment = char === '.';\n if (isEndOfSegment) {\n result.push(segment);\n segment = '';\n continue;\n }\n segment += char;\n }\n var lastSegment = segment;\n result.push(lastSegment);\n return result;\n};\n//# sourceMappingURL=pathstringifier.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nimport { isBigint, isDate, isInfinite, isMap, isNaNValue, isRegExp, isSet, isUndefined, isSymbol, isArray, isError, isTypedArray, isURL, } from './is';\nimport { findArr } from './util';\nfunction simpleTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable: isApplicable,\n annotation: annotation,\n transform: transform,\n untransform: untransform\n };\n}\nvar simpleRules = [\n simpleTransformation(isUndefined, 'undefined', function () { return null; }, function () { return undefined; }),\n simpleTransformation(isBigint, 'bigint', function (v) { return v.toString(); }, function (v) {\n if (typeof BigInt !== 'undefined') {\n return BigInt(v);\n }\n console.error('Please add a BigInt polyfill.');\n return v;\n }),\n simpleTransformation(isDate, 'Date', function (v) { return v.toISOString(); }, function (v) { return new Date(v); }),\n simpleTransformation(isError, 'Error', function (v, superJson) {\n var baseError = {\n name: v.name,\n message: v.message\n };\n superJson.allowedErrorProps.forEach(function (prop) {\n baseError[prop] = v[prop];\n });\n return baseError;\n }, function (v, superJson) {\n var e = new Error(v.message);\n e.name = v.name;\n e.stack = v.stack;\n superJson.allowedErrorProps.forEach(function (prop) {\n e[prop] = v[prop];\n });\n return e;\n }),\n simpleTransformation(isRegExp, 'regexp', function (v) { return '' + v; }, function (regex) {\n var body = regex.slice(1, regex.lastIndexOf('/'));\n var flags = regex.slice(regex.lastIndexOf('/') + 1);\n return new RegExp(body, flags);\n }),\n simpleTransformation(isSet, 'set', \n // (sets only exist in es6+)\n // eslint-disable-next-line es5/no-es6-methods\n function (v) { return __spreadArray([], __read(v.values())); }, function (v) { return new Set(v); }),\n simpleTransformation(isMap, 'map', function (v) { return __spreadArray([], __read(v.entries())); }, function (v) { return new Map(v); }),\n simpleTransformation(function (v) { return isNaNValue(v) || isInfinite(v); }, 'number', function (v) {\n if (isNaNValue(v)) {\n return 'NaN';\n }\n if (v > 0) {\n return 'Infinity';\n }\n else {\n return '-Infinity';\n }\n }, Number),\n simpleTransformation(function (v) { return v === 0 && 1 / v === -Infinity; }, 'number', function () {\n return '-0';\n }, Number),\n simpleTransformation(isURL, 'URL', function (v) { return v.toString(); }, function (v) { return new URL(v); }),\n];\nfunction compositeTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable: isApplicable,\n annotation: annotation,\n transform: transform,\n untransform: untransform\n };\n}\nvar symbolRule = compositeTransformation(function (s, superJson) {\n if (isSymbol(s)) {\n var isRegistered = !!superJson.symbolRegistry.getIdentifier(s);\n return isRegistered;\n }\n return false;\n}, function (s, superJson) {\n var identifier = superJson.symbolRegistry.getIdentifier(s);\n return ['symbol', identifier];\n}, function (v) { return v.description; }, function (_, a, superJson) {\n var value = superJson.symbolRegistry.getValue(a[1]);\n if (!value) {\n throw new Error('Trying to deserialize unknown symbol');\n }\n return value;\n});\nvar constructorToName = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n Uint8ClampedArray,\n].reduce(function (obj, ctor) {\n obj[ctor.name] = ctor;\n return obj;\n}, {});\nvar typedArrayRule = compositeTransformation(isTypedArray, function (v) { return ['typed-array', v.constructor.name]; }, function (v) { return __spreadArray([], __read(v)); }, function (v, a) {\n var ctor = constructorToName[a[1]];\n if (!ctor) {\n throw new Error('Trying to deserialize unknown typed array');\n }\n return new ctor(v);\n});\nexport function isInstanceOfRegisteredClass(potentialClass, superJson) {\n if (potentialClass === null || potentialClass === void 0 ? void 0 : potentialClass.constructor) {\n var isRegistered = !!superJson.classRegistry.getIdentifier(potentialClass.constructor);\n return isRegistered;\n }\n return false;\n}\nvar classRule = compositeTransformation(isInstanceOfRegisteredClass, function (clazz, superJson) {\n var identifier = superJson.classRegistry.getIdentifier(clazz.constructor);\n return ['class', identifier];\n}, function (clazz, superJson) {\n var allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);\n if (!allowedProps) {\n return __assign({}, clazz);\n }\n var result = {};\n allowedProps.forEach(function (prop) {\n result[prop] = clazz[prop];\n });\n return result;\n}, function (v, a, superJson) {\n var clazz = superJson.classRegistry.getValue(a[1]);\n if (!clazz) {\n throw new Error('Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564');\n }\n return Object.assign(Object.create(clazz.prototype), v);\n});\nvar customRule = compositeTransformation(function (value, superJson) {\n return !!superJson.customTransformerRegistry.findApplicable(value);\n}, function (value, superJson) {\n var transformer = superJson.customTransformerRegistry.findApplicable(value);\n return ['custom', transformer.name];\n}, function (value, superJson) {\n var transformer = superJson.customTransformerRegistry.findApplicable(value);\n return transformer.serialize(value);\n}, function (v, a, superJson) {\n var transformer = superJson.customTransformerRegistry.findByName(a[1]);\n if (!transformer) {\n throw new Error('Trying to deserialize unknown custom value');\n }\n return transformer.deserialize(v);\n});\nvar compositeRules = [classRule, symbolRule, customRule, typedArrayRule];\nexport var transformValue = function (value, superJson) {\n var applicableCompositeRule = findArr(compositeRules, function (rule) {\n return rule.isApplicable(value, superJson);\n });\n if (applicableCompositeRule) {\n return {\n value: applicableCompositeRule.transform(value, superJson),\n type: applicableCompositeRule.annotation(value, superJson)\n };\n }\n var applicableSimpleRule = findArr(simpleRules, function (rule) {\n return rule.isApplicable(value, superJson);\n });\n if (applicableSimpleRule) {\n return {\n value: applicableSimpleRule.transform(value, superJson),\n type: applicableSimpleRule.annotation\n };\n }\n return undefined;\n};\nvar simpleRulesByAnnotation = {};\nsimpleRules.forEach(function (rule) {\n simpleRulesByAnnotation[rule.annotation] = rule;\n});\nexport var untransformValue = function (json, type, superJson) {\n if (isArray(type)) {\n switch (type[0]) {\n case 'symbol':\n return symbolRule.untransform(json, type, superJson);\n case 'class':\n return classRule.untransform(json, type, superJson);\n case 'custom':\n return customRule.untransform(json, type, superJson);\n case 'typed-array':\n return typedArrayRule.untransform(json, type, superJson);\n default:\n throw new Error('Unknown transformation: ' + type);\n }\n }\n else {\n var transformation = simpleRulesByAnnotation[type];\n if (!transformation) {\n throw new Error('Unknown transformation: ' + type);\n }\n return transformation.untransform(json, superJson);\n }\n};\n//# sourceMappingURL=transformer.js.map","import { isMap, isArray, isPlainObject, isSet } from './is';\nimport { includes } from './util';\nvar getNthKey = function (value, n) {\n var keys = value.keys();\n while (n > 0) {\n keys.next();\n n--;\n }\n return keys.next().value;\n};\nfunction validatePath(path) {\n if (includes(path, '__proto__')) {\n throw new Error('__proto__ is not allowed as a property');\n }\n if (includes(path, 'prototype')) {\n throw new Error('prototype is not allowed as a property');\n }\n if (includes(path, 'constructor')) {\n throw new Error('constructor is not allowed as a property');\n }\n}\nexport var getDeep = function (object, path) {\n validatePath(path);\n for (var i = 0; i < path.length; i++) {\n var key = path[i];\n if (isSet(object)) {\n object = getNthKey(object, +key);\n }\n else if (isMap(object)) {\n var row = +key;\n var type = +path[++i] === 0 ? 'key' : 'value';\n var keyOfRow = getNthKey(object, row);\n switch (type) {\n case 'key':\n object = keyOfRow;\n break;\n case 'value':\n object = object.get(keyOfRow);\n break;\n }\n }\n else {\n object = object[key];\n }\n }\n return object;\n};\nexport var setDeep = function (object, path, mapper) {\n validatePath(path);\n if (path.length === 0) {\n return mapper(object);\n }\n var parent = object;\n for (var i = 0; i < path.length - 1; i++) {\n var key = path[i];\n if (isArray(parent)) {\n var index = +key;\n parent = parent[index];\n }\n else if (isPlainObject(parent)) {\n parent = parent[key];\n }\n else if (isSet(parent)) {\n var row = +key;\n parent = getNthKey(parent, row);\n }\n else if (isMap(parent)) {\n var isEnd = i === path.length - 2;\n if (isEnd) {\n break;\n }\n var row = +key;\n var type = +path[++i] === 0 ? 'key' : 'value';\n var keyOfRow = getNthKey(parent, row);\n switch (type) {\n case 'key':\n parent = keyOfRow;\n break;\n case 'value':\n parent = parent.get(keyOfRow);\n break;\n }\n }\n }\n var lastKey = path[path.length - 1];\n if (isArray(parent)) {\n parent[+lastKey] = mapper(parent[+lastKey]);\n }\n else if (isPlainObject(parent)) {\n parent[lastKey] = mapper(parent[lastKey]);\n }\n if (isSet(parent)) {\n var oldValue = getNthKey(parent, +lastKey);\n var newValue = mapper(oldValue);\n if (oldValue !== newValue) {\n parent[\"delete\"](oldValue);\n parent.add(newValue);\n }\n }\n if (isMap(parent)) {\n var row = +path[path.length - 2];\n var keyToRow = getNthKey(parent, row);\n var type = +lastKey === 0 ? 'key' : 'value';\n switch (type) {\n case 'key': {\n var newKey = mapper(keyToRow);\n parent.set(newKey, parent.get(keyToRow));\n if (newKey !== keyToRow) {\n parent[\"delete\"](keyToRow);\n }\n break;\n }\n case 'value': {\n parent.set(keyToRow, mapper(parent.get(keyToRow)));\n break;\n }\n }\n }\n return object;\n};\n//# sourceMappingURL=accessDeep.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nimport { isArray, isEmptyObject, isMap, isPlainObject, isPrimitive, isSet, } from './is';\nimport { escapeKey, stringifyPath } from './pathstringifier';\nimport { isInstanceOfRegisteredClass, transformValue, untransformValue, } from './transformer';\nimport { includes, forEach } from './util';\nimport { parsePath } from './pathstringifier';\nimport { getDeep, setDeep } from './accessDeep';\nfunction traverse(tree, walker, origin) {\n if (origin === void 0) { origin = []; }\n if (!tree) {\n return;\n }\n if (!isArray(tree)) {\n forEach(tree, function (subtree, key) {\n return traverse(subtree, walker, __spreadArray(__spreadArray([], __read(origin)), __read(parsePath(key))));\n });\n return;\n }\n var _a = __read(tree, 2), nodeValue = _a[0], children = _a[1];\n if (children) {\n forEach(children, function (child, key) {\n traverse(child, walker, __spreadArray(__spreadArray([], __read(origin)), __read(parsePath(key))));\n });\n }\n walker(nodeValue, origin);\n}\nexport function applyValueAnnotations(plain, annotations, superJson) {\n traverse(annotations, function (type, path) {\n plain = setDeep(plain, path, function (v) { return untransformValue(v, type, superJson); });\n });\n return plain;\n}\nexport function applyReferentialEqualityAnnotations(plain, annotations) {\n function apply(identicalPaths, path) {\n var object = getDeep(plain, parsePath(path));\n identicalPaths.map(parsePath).forEach(function (identicalObjectPath) {\n plain = setDeep(plain, identicalObjectPath, function () { return object; });\n });\n }\n if (isArray(annotations)) {\n var _a = __read(annotations, 2), root = _a[0], other = _a[1];\n root.forEach(function (identicalPath) {\n plain = setDeep(plain, parsePath(identicalPath), function () { return plain; });\n });\n if (other) {\n forEach(other, apply);\n }\n }\n else {\n forEach(annotations, apply);\n }\n return plain;\n}\nvar isDeep = function (object, superJson) {\n return isPlainObject(object) ||\n isArray(object) ||\n isMap(object) ||\n isSet(object) ||\n isInstanceOfRegisteredClass(object, superJson);\n};\nfunction addIdentity(object, path, identities) {\n var existingSet = identities.get(object);\n if (existingSet) {\n existingSet.push(path);\n }\n else {\n identities.set(object, [path]);\n }\n}\nexport function generateReferentialEqualityAnnotations(identitites) {\n var result = {};\n var rootEqualityPaths = undefined;\n identitites.forEach(function (paths) {\n if (paths.length <= 1) {\n return;\n }\n var _a = __read(paths\n .map(function (path) { return path.map(String); })\n .sort(function (a, b) { return a.length - b.length; })), shortestPath = _a[0], identicalPaths = _a.slice(1);\n if (shortestPath.length === 0) {\n rootEqualityPaths = identicalPaths.map(stringifyPath);\n }\n else {\n result[stringifyPath(shortestPath)] = identicalPaths.map(stringifyPath);\n }\n });\n if (rootEqualityPaths) {\n if (isEmptyObject(result)) {\n return [rootEqualityPaths];\n }\n else {\n return [rootEqualityPaths, result];\n }\n }\n else {\n return isEmptyObject(result) ? undefined : result;\n }\n}\nexport var walker = function (object, identities, superJson, path, objectsInThisPath) {\n var _a;\n if (path === void 0) { path = []; }\n if (objectsInThisPath === void 0) { objectsInThisPath = []; }\n if (!isPrimitive(object)) {\n addIdentity(object, path, identities);\n }\n if (!isDeep(object, superJson)) {\n var transformed_1 = transformValue(object, superJson);\n if (transformed_1) {\n return {\n transformedValue: transformed_1.value,\n annotations: [transformed_1.type]\n };\n }\n else {\n return {\n transformedValue: object\n };\n }\n }\n if (includes(objectsInThisPath, object)) {\n return {\n transformedValue: null\n };\n }\n var transformationResult = transformValue(object, superJson);\n var transformed = (_a = transformationResult === null || transformationResult === void 0 ? void 0 : transformationResult.value) !== null && _a !== void 0 ? _a : object;\n if (!isPrimitive(object)) {\n objectsInThisPath = __spreadArray(__spreadArray([], __read(objectsInThisPath)), [object]);\n }\n var transformedValue = isArray(transformed) ? [] : {};\n var innerAnnotations = {};\n forEach(transformed, function (value, index) {\n var recursiveResult = walker(value, identities, superJson, __spreadArray(__spreadArray([], __read(path)), [index]), objectsInThisPath);\n transformedValue[index] = recursiveResult.transformedValue;\n if (isArray(recursiveResult.annotations)) {\n innerAnnotations[index] = recursiveResult.annotations;\n }\n else if (isPlainObject(recursiveResult.annotations)) {\n forEach(recursiveResult.annotations, function (tree, key) {\n innerAnnotations[escapeKey(index) + '.' + key] = tree;\n });\n }\n });\n if (isEmptyObject(innerAnnotations)) {\n return {\n transformedValue: transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type]\n : undefined\n };\n }\n else {\n return {\n transformedValue: transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type, innerAnnotations]\n : innerAnnotations\n };\n }\n};\n//# sourceMappingURL=plainer.js.map","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n const prototype = Object.getPrototypeOf(payload);\r\n return prototype.constructor === Object && prototype === Object.prototype;\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a an empty object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is { [K in any]: never }}\r\n */\r\nfunction isEmptyObject(payload) {\r\n return isPlainObject(payload) && Object.keys(payload).length === 0;\r\n}\r\n/**\r\n * Returns whether the payload is a an empty object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\r\nfunction isFullObject(payload) {\r\n return isPlainObject(payload) && Object.keys(payload).length > 0;\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function (regular or async)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is AnyFunction}\r\n */\r\nfunction isFunction(payload) {\r\n return typeof payload === 'function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {any} payload\r\n * @returns {payload is any[]}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a an array with at least 1 item\r\n *\r\n * @param {*} payload\r\n * @returns {payload is any[]}\r\n */\r\nfunction isFullArray(payload) {\r\n return isArray(payload) && payload.length > 0;\r\n}\r\n/**\r\n * Returns whether the payload is a an empty array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is []}\r\n */\r\nfunction isEmptyArray(payload) {\r\n return isArray(payload) && payload.length === 0;\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number (but not NaN)\r\n *\r\n * This will return `false` for `NaN`!!\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return getType(payload) === 'Number' && !isNaN(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a positive number (but not 0)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isPositiveNumber(payload) {\r\n return isNumber(payload) && payload > 0;\r\n}\r\n/**\r\n * Returns whether the payload is a negative number (but not 0)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNegativeNumber(payload) {\r\n return isNumber(payload) && payload < 0;\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression (RegExp)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a Map\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Map<any, any>}\r\n */\r\nfunction isMap(payload) {\r\n return getType(payload) === 'Map';\r\n}\r\n/**\r\n * Returns whether the payload is a WeakMap\r\n *\r\n * @param {*} payload\r\n * @returns {payload is WeakMap<any, any>}\r\n */\r\nfunction isWeakMap(payload) {\r\n return getType(payload) === 'WeakMap';\r\n}\r\n/**\r\n * Returns whether the payload is a Set\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Set<any>}\r\n */\r\nfunction isSet(payload) {\r\n return getType(payload) === 'Set';\r\n}\r\n/**\r\n * Returns whether the payload is a WeakSet\r\n *\r\n * @param {*} payload\r\n * @returns {payload is WeakSet<any>}\r\n */\r\nfunction isWeakSet(payload) {\r\n return getType(payload) === 'WeakSet';\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return getType(payload) === 'Symbol';\r\n}\r\n/**\r\n * Returns whether the payload is a Date, and that the date is valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return getType(payload) === 'Date' && !isNaN(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a Blob\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Blob}\r\n */\r\nfunction isBlob(payload) {\r\n return getType(payload) === 'Blob';\r\n}\r\n/**\r\n * Returns whether the payload is a File\r\n *\r\n * @param {*} payload\r\n * @returns {payload is File}\r\n */\r\nfunction isFile(payload) {\r\n return getType(payload) === 'File';\r\n}\r\n/**\r\n * Returns whether the payload is a Promise\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Promise<any>}\r\n */\r\nfunction isPromise(payload) {\r\n return getType(payload) === 'Promise';\r\n}\r\n/**\r\n * Returns whether the payload is an Error\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Error}\r\n */\r\nfunction isError(payload) {\r\n return getType(payload) === 'Error';\r\n}\r\n/**\r\n * Returns whether the payload is literally the value `NaN` (it's `NaN` and also a `number`)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is typeof NaN}\r\n */\r\nfunction isNaNValue(payload) {\r\n return getType(payload) === 'Number' && isNaN(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Returns true whether the payload is null or undefined\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is null | undefined)}\r\n */\r\nconst isNullOrUndefined = isOneOf(isNull, isUndefined);\r\nfunction isOneOf(a, b, c, d, e) {\r\n return (value) => a(value) || b(value) || (!!c && c(value)) || (!!d && d(value)) || (!!e && e(value));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(type, 'prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n const name = type.name;\r\n return getType(payload) === name || Boolean(payload && payload.constructor === type);\r\n}\n\nexport { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isFile, isFullArray, isFullObject, isFullString, isFunction, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet };\n","import { isArray, isPlainObject } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject, includeNonenumerable) {\r\n const propType = {}.propertyIsEnumerable.call(originalObject, key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (includeNonenumerable && propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true,\r\n });\r\n }\r\n}\r\n/**\r\n * Copy (clone) an object and all its props recursively to get rid of any prop referenced of the original object. Arrays are also cloned, however objects inside arrays are still linked.\r\n *\r\n * @export\r\n * @template T\r\n * @param {T} target Target can be anything\r\n * @param {Options} [options = {}] Options can be `props` or `nonenumerable`\r\n * @returns {T} the target with replaced values\r\n * @export\r\n */\r\nfunction copy(target, options = {}) {\r\n if (isArray(target)) {\r\n return target.map((item) => copy(item, options));\r\n }\r\n if (!isPlainObject(target)) {\r\n return target;\r\n }\r\n const props = Object.getOwnPropertyNames(target);\r\n const symbols = Object.getOwnPropertySymbols(target);\r\n return [...props, ...symbols].reduce((carry, key) => {\r\n if (isArray(options.props) && !options.props.includes(key)) {\r\n return carry;\r\n }\r\n const val = target[key];\r\n const newVal = copy(val, options);\r\n assignProp(carry, key, newVal, target, options.nonenumerable);\r\n return carry;\r\n }, {});\r\n}\n\nexport { copy };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nimport { ClassRegistry } from './class-registry';\nimport { Registry } from './registry';\nimport { CustomTransformerRegistry, } from './custom-transformer-registry';\nimport { walker, applyReferentialEqualityAnnotations, applyValueAnnotations, generateReferentialEqualityAnnotations, } from './plainer';\nimport { copy } from 'copy-anything';\nvar SuperJSON = /** @class */ (function () {\n function SuperJSON() {\n this.classRegistry = new ClassRegistry();\n this.symbolRegistry = new Registry(function (s) { var _a; return (_a = s.description) !== null && _a !== void 0 ? _a : ''; });\n this.customTransformerRegistry = new CustomTransformerRegistry();\n this.allowedErrorProps = [];\n }\n SuperJSON.prototype.serialize = function (object) {\n var identities = new Map();\n var output = walker(object, identities, this);\n var res = {\n json: output.transformedValue\n };\n if (output.annotations) {\n res.meta = __assign(__assign({}, res.meta), { values: output.annotations });\n }\n var equalityAnnotations = generateReferentialEqualityAnnotations(identities);\n if (equalityAnnotations) {\n res.meta = __assign(__assign({}, res.meta), { referentialEqualities: equalityAnnotations });\n }\n return res;\n };\n SuperJSON.prototype.deserialize = function (payload) {\n var json = payload.json, meta = payload.meta;\n var result = copy(json);\n if (meta === null || meta === void 0 ? void 0 : meta.values) {\n result = applyValueAnnotations(result, meta.values, this);\n }\n if (meta === null || meta === void 0 ? void 0 : meta.referentialEqualities) {\n result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities);\n }\n return result;\n };\n SuperJSON.prototype.stringify = function (object) {\n return JSON.stringify(this.serialize(object));\n };\n SuperJSON.prototype.parse = function (string) {\n return this.deserialize(JSON.parse(string));\n };\n SuperJSON.prototype.registerClass = function (v, options) {\n this.classRegistry.register(v, options);\n };\n SuperJSON.prototype.registerSymbol = function (v, identifier) {\n this.symbolRegistry.register(v, identifier);\n };\n SuperJSON.prototype.registerCustom = function (transformer, name) {\n this.customTransformerRegistry.register(__assign({ name: name }, transformer));\n };\n SuperJSON.prototype.allowErrorProps = function () {\n var _a;\n var props = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n props[_i] = arguments[_i];\n }\n (_a = this.allowedErrorProps).push.apply(_a, __spreadArray([], __read(props)));\n };\n SuperJSON.defaultInstance = new SuperJSON();\n SuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance);\n SuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance);\n SuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance);\n SuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance);\n SuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance);\n SuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance);\n SuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance);\n SuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance);\n return SuperJSON;\n}());\nexport default SuperJSON;\nexport var serialize = SuperJSON.serialize;\nexport var deserialize = SuperJSON.deserialize;\nexport var stringify = SuperJSON.stringify;\nexport var parse = SuperJSON.parse;\nexport var registerClass = SuperJSON.registerClass;\nexport var registerCustom = SuperJSON.registerCustom;\nexport var registerSymbol = SuperJSON.registerSymbol;\nexport var allowErrorProps = SuperJSON.allowErrorProps;\n//# sourceMappingURL=index.js.map","import type { Query } from '@tanstack/query-core'\nimport SuperJSON from 'superjson'\n\nexport function getQueryStatusLabel(query: Query) {\n return query.state.fetchStatus === 'fetching'\n ? 'fetching'\n : !query.getObserversCount()\n ? 'inactive'\n : query.state.fetchStatus === 'paused'\n ? 'paused'\n : query.isStale()\n ? 'stale'\n : 'fresh'\n}\n\nexport const queryStatusLabels = [\n 'fresh',\n 'stale',\n 'paused',\n 'inactive',\n 'fetching',\n] as const\nexport type IQueryStatusLabel = (typeof queryStatusLabels)[number]\n\nexport function getQueryStatusColor({\n queryState,\n observerCount,\n isStale,\n}: {\n queryState: Query['state']\n observerCount: number\n isStale: boolean\n}) {\n return queryState.fetchStatus === 'fetching'\n ? 'blue'\n : !observerCount\n ? 'gray'\n : queryState.fetchStatus === 'paused'\n ? 'purple'\n : isStale\n ? 'yellow'\n : 'green'\n}\n\nexport function getQueryStatusColorByLabel(label: IQueryStatusLabel) {\n return label === 'fresh'\n ? 'green'\n : label === 'stale'\n ? 'yellow'\n : label === 'paused'\n ? 'purple'\n : label === 'inactive'\n ? 'gray'\n : 'blue'\n}\n\n/**\n * Displays a string regardless the type of the data\n * @param {unknown} value Value to be stringified\n * @param {boolean} beautify Formats json to multiline\n */\nexport const displayValue = (value: unknown, beautify: boolean = false) => {\n const { json } = SuperJSON.serialize(value)\n\n return JSON.stringify(json, null, beautify ? 2 : undefined)\n}\n\n// Sorting functions\ntype SortFn = (a: Query, b: Query) => number\n\nconst getStatusRank = (q: Query) =>\n q.state.fetchStatus !== 'idle'\n ? 0\n : !q.getObserversCount()\n ? 3\n : q.isStale()\n ? 2\n : 1\n\nconst queryHashSort: SortFn = (a, b) => a.queryHash.localeCompare(b.queryHash)\n\nconst dateSort: SortFn = (a, b) =>\n a.state.dataUpdatedAt < b.state.dataUpdatedAt ? 1 : -1\n\nconst statusAndDateSort: SortFn = (a, b) => {\n if (getStatusRank(a) === getStatusRank(b)) {\n return dateSort(a, b)\n }\n\n return getStatusRank(a) > getStatusRank(b) ? 1 : -1\n}\n\nexport const sortFns: Record<string, SortFn> = {\n status: statusAndDateSort,\n 'query hash': queryHashSort,\n 'last updated': dateSort,\n}\n\nexport const convertRemToPixels = (rem: number) => {\n return rem * parseFloat(getComputedStyle(document.documentElement).fontSize)\n}\n\nexport const convertPixelsToRem = (px: number) => px / convertRemToPixels(1)\n","import { tokens } from '../theme'\n\nexport function Search() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13 13L9.00007 9M10.3333 5.66667C10.3333 8.244 8.244 10.3333 5.66667 10.3333C3.08934 10.3333 1 8.244 1 5.66667C1 3.08934 3.08934 1 5.66667 1C8.244 1 10.3333 3.08934 10.3333 5.66667Z\"\n stroke=\"#98A2B3\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ChevronDown() {\n return (\n <svg\n width=\"10\"\n height=\"6\"\n viewBox=\"0 0 10 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1 1L5 5L9 1\"\n stroke=\"#98A2B3\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ArrowUp() {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 13.3333V2.66667M8 2.66667L4 6.66667M8 2.66667L12 6.66667\"\n stroke=\"#98A2B3\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ArrowDown() {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 2.66667V13.3333M8 13.3333L4 9.33333M8 13.3333L12 9.33333\"\n stroke=\"#98A2B3\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function Wifi() {\n return (\n <svg\n stroke=\"#98A2B3\"\n fill=\"#98A2B3\"\n stroke-width=\"0\"\n viewBox=\"0 0 24 24\"\n height=\"1em\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path fill=\"none\" d=\"M0 0h24v24H0z\"></path>\n <path d=\"M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3a4.237 4.237 0 00-6 0zm-4-4l2 2a7.074 7.074 0 0110 0l2-2C15.14 9.14 8.87 9.14 5 13z\"></path>\n </svg>\n )\n}\n\nexport function Offline() {\n return (\n <svg\n stroke={tokens.colors.yellow[500]}\n fill={tokens.colors.yellow[500]}\n stroke-width=\"0\"\n viewBox=\"0 0 24 24\"\n height=\"1em\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill=\"none\"\n d=\"M24 .01c0-.01 0-.01 0 0L0 0v24h24V.01zM0 0h24v24H0V0zm0 0h24v24H0V0z\"\n ></path>\n <path d=\"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7l2-2zm-4 4a9.793 9.793 0 00-4.49-2.56l3.53 3.53.96-.97zM2 3.05L5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24A9.684 9.684 0 005 13v.01L6.99 15a7.042 7.042 0 014.92-2.06L18.98 20l1.27-1.26L3.29 1.79 2 3.05zM9 17l3 3 3-3a4.237 4.237 0 00-6 0z\"></path>\n </svg>\n )\n}\n\nexport function Settings() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.3951 19.3711L9.97955 20.6856C10.1533 21.0768 10.4368 21.4093 10.7958 21.6426C11.1547 21.8759 11.5737 22.0001 12.0018 22C12.4299 22.0001 12.8488 21.8759 13.2078 21.6426C13.5667 21.4093 13.8503 21.0768 14.024 20.6856L14.6084 19.3711C14.8165 18.9047 15.1664 18.5159 15.6084 18.26C16.0532 18.0034 16.5678 17.8941 17.0784 17.9478L18.5084 18.1C18.9341 18.145 19.3637 18.0656 19.7451 17.8713C20.1265 17.6771 20.4434 17.3763 20.6573 17.0056C20.8715 16.635 20.9735 16.2103 20.9511 15.7829C20.9286 15.3555 20.7825 14.9438 20.5307 14.5978L19.684 13.4344C19.3825 13.0171 19.2214 12.5148 19.224 12C19.2239 11.4866 19.3865 10.9864 19.6884 10.5711L20.5351 9.40778C20.787 9.06175 20.933 8.65007 20.9555 8.22267C20.978 7.79528 20.8759 7.37054 20.6618 7C20.4479 6.62923 20.131 6.32849 19.7496 6.13423C19.3681 5.93997 18.9386 5.86053 18.5129 5.90556L17.0829 6.05778C16.5722 6.11141 16.0577 6.00212 15.6129 5.74556C15.17 5.48825 14.82 5.09736 14.6129 4.62889L14.024 3.31444C13.8503 2.92317 13.5667 2.59072 13.2078 2.3574C12.8488 2.12408 12.4299 1.99993 12.0018 2C11.5737 1.99993 11.1547 2.12408 10.7958 2.3574C10.4368 2.59072 10.1533 2.92317 9.97955 3.31444L9.3951 4.62889C9.18803 5.09736 8.83798 5.48825 8.3951 5.74556C7.95032 6.00212 7.43577 6.11141 6.9251 6.05778L5.49066 5.90556C5.06499 5.86053 4.6354 5.93997 4.25397 6.13423C3.87255 6.32849 3.55567 6.62923 3.34177 7C3.12759 7.37054 3.02555 7.79528 3.04804 8.22267C3.07052 8.65007 3.21656 9.06175 3.46844 9.40778L4.3151 10.5711C4.61704 10.9864 4.77964 11.4866 4.77955 12C4.77964 12.5134 4.61704 13.0137 4.3151 13.4289L3.46844 14.5922C3.21656 14.9382 3.07052 15.3499 3.04804 15.7773C3.02555 16.2047 3.12759 16.6295 3.34177 17C3.55589 17.3706 3.8728 17.6712 4.25417 17.8654C4.63554 18.0596 5.06502 18.1392 5.49066 18.0944L6.92066 17.9422C7.43133 17.8886 7.94587 17.9979 8.39066 18.2544C8.83519 18.511 9.18687 18.902 9.3951 19.3711Z\"\n stroke=\"#98A2B3\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 15C13.6568 15 15 13.6569 15 12C15 10.3431 13.6568 9 12 9C10.3431 9 8.99998 10.3431 8.99998 12C8.99998 13.6569 10.3431 15 12 15Z\"\n stroke=\"#98A2B3\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function Copier() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n class=\"copier\"\n d=\"M8 8V5.2C8 4.0799 8 3.51984 8.21799 3.09202C8.40973 2.71569 8.71569 2.40973 9.09202 2.21799C9.51984 2 10.0799 2 11.2 2H18.8C19.9201 2 20.4802 2 20.908 2.21799C21.2843 2.40973 21.5903 2.71569 21.782 3.09202C22 3.51984 22 4.0799 22 5.2V12.8C22 13.9201 22 14.4802 21.782 14.908C21.5903 15.2843 21.2843 15.5903 20.908 15.782C20.4802 16 19.9201 16 18.8 16H16M5.2 22H12.8C13.9201 22 14.4802 22 14.908 21.782C15.2843 21.5903 15.5903 21.2843 15.782 20.908C16 20.4802 16 19.9201 16 18.8V11.2C16 10.0799 16 9.51984 15.782 9.09202C15.5903 8.71569 15.2843 8.40973 14.908 8.21799C14.4802 8 13.9201 8 12.8 8H5.2C4.0799 8 3.51984 8 3.09202 8.21799C2.71569 8.40973 2.40973 8.71569 2.21799 9.09202C2 9.51984 2 10.0799 2 11.2V18.8C2 19.9201 2 20.4802 2.21799 20.908C2.40973 21.2843 2.71569 21.5903 3.09202 21.782C3.51984 22 4.07989 22 5.2 22Z\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke=\"#98A2B3\"\n />\n </svg>\n )\n}\n\nexport function CopiedCopier() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.5 12L10.5 15L16.5 9M7.8 21H16.2C17.8802 21 18.7202 21 19.362 20.673C19.9265 20.3854 20.3854 19.9265 20.673 19.362C21 18.7202 21 17.8802 21 16.2V7.8C21 6.11984 21 5.27976 20.673 4.63803C20.3854 4.07354 19.9265 3.6146 19.362 3.32698C18.7202 3 17.8802 3 16.2 3H7.8C6.11984 3 5.27976 3 4.63803 3.32698C4.07354 3.6146 3.6146 4.07354 3.32698 4.63803C3 5.27976 3 6.11984 3 7.8V16.2C3 17.8802 3 18.7202 3.32698 19.362C3.6146 19.9265 4.07354 20.3854 4.63803 20.673C5.27976 21 6.11984 21 7.8 21Z\"\n stroke=\"#12B76A\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ErrorCopier() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 9L15 15M15 9L9 15M7.8 21H16.2C17.8802 21 18.7202 21 19.362 20.673C19.9265 20.3854 20.3854 19.9265 20.673 19.362C21 18.7202 21 17.8802 21 16.2V7.8C21 6.11984 21 5.27976 20.673 4.63803C20.3854 4.07354 19.9265 3.6146 19.362 3.32698C18.7202 3 17.8802 3 16.2 3H7.8C6.11984 3 5.27976 3 4.63803 3.32698C4.07354 3.6146 3.6146 4.07354 3.32698 4.63803C3 5.27976 3 6.11984 3 7.8V16.2C3 17.8802 3 18.7202 3.32698 19.362C3.6146 19.9265 4.07354 20.3854 4.63803 20.673C5.27976 21 6.11984 21 7.8 21Z\"\n stroke=\"#F04438\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function TanstackLogo() {\n return (\n <svg version=\"1.0\" viewBox=\"0 0 633 633\">\n <linearGradient\n id=\"a\"\n x1=\"-666.45\"\n x2=\"-666.45\"\n y1=\"163.28\"\n y2=\"163.99\"\n gradientTransform=\"matrix(633 0 0 633 422177 -103358)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#6BDAFF\" offset=\"0\" />\n <stop stop-color=\"#F9FFB5\" offset=\".32\" />\n <stop stop-color=\"#FFA770\" offset=\".71\" />\n <stop stop-color=\"#FF7373\" offset=\"1\" />\n </linearGradient>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"url(#a)\" />\n\n <defs>\n <filter\n id=\"am\"\n x=\"-137.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"b\"\n x=\"-137.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#am)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#b)\">\n <ellipse\n cx=\"89.5\"\n cy=\"610.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00CFE2\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"ah\"\n x=\"316.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"k\"\n x=\"316.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ah)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#k)\">\n <ellipse\n cx=\"543.5\"\n cy=\"610.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00CFE2\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"ae\"\n x=\"-137.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"j\"\n x=\"-137.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ae)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#j)\">\n <ellipse\n cx=\"89.5\"\n cy=\"648.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00A8B8\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"ai\"\n x=\"316.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"i\"\n x=\"316.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ai)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#i)\">\n <ellipse\n cx=\"543.5\"\n cy=\"648.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00A8B8\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"aj\"\n x=\"-137.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"h\"\n x=\"-137.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#aj)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#h)\">\n <ellipse\n cx=\"89.5\"\n cy=\"684.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#007782\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"ag\"\n x=\"316.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"g\"\n x=\"316.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ag)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#g)\">\n <ellipse\n cx=\"543.5\"\n cy=\"684.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#007782\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"af\"\n x=\"272.2\"\n y=\"308\"\n width=\"176.9\"\n height=\"129.3\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"f\"\n x=\"272.2\"\n y=\"308\"\n width=\"176.9\"\n height=\"129.3\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#af)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#f)\">\n <line\n x1=\"436\"\n x2=\"431\"\n y1=\"403.2\"\n y2=\"431.8\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"11\"\n />\n\n <line\n x1=\"291\"\n x2=\"280\"\n y1=\"341.5\"\n y2=\"403.5\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"11\"\n />\n\n <line\n x1=\"332.9\"\n x2=\"328.6\"\n y1=\"384.1\"\n y2=\"411.2\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"11\"\n />\n\n <linearGradient\n id=\"m\"\n x1=\"-670.75\"\n x2=\"-671.59\"\n y1=\"164.4\"\n y2=\"164.49\"\n gradientTransform=\"matrix(-184.16 -32.472 -11.461 64.997 -121359 -32126)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#EE2700\" offset=\"0\" />\n <stop stop-color=\"#FF008E\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m344.1 363 97.7 17.2c5.8 2.1 8.2 6.1 7.1 12.1s-4.7 9.2-11 9.9l-106-18.7-57.5-59.2c-3.2-4.8-2.9-9.1 0.8-12.8s8.3-4.4 13.7-2.1l55.2 53.6z\"\n clip-rule=\"evenodd\"\n fill=\"url(#m)\"\n fill-rule=\"evenodd\"\n />\n\n <line\n x1=\"428.2\"\n x2=\"429.1\"\n y1=\"384.5\"\n y2=\"378\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"395.2\"\n x2=\"396.1\"\n y1=\"379.5\"\n y2=\"373\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"362.2\"\n x2=\"363.1\"\n y1=\"373.5\"\n y2=\"367.4\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"324.2\"\n x2=\"328.4\"\n y1=\"351.3\"\n y2=\"347.4\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"303.2\"\n x2=\"307.4\"\n y1=\"331.3\"\n y2=\"327.4\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n </g>\n <defs>\n <filter\n id=\"ak\"\n x=\"73.2\"\n y=\"113.8\"\n width=\"280.6\"\n height=\"317.4\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"e\"\n x=\"73.2\"\n y=\"113.8\"\n width=\"280.6\"\n height=\"317.4\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ak)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#e)\">\n <linearGradient\n id=\"n\"\n x1=\"-672.16\"\n x2=\"-672.16\"\n y1=\"165.03\"\n y2=\"166.03\"\n gradientTransform=\"matrix(-100.18 48.861 97.976 200.88 -83342 -93.059)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#A17500\" offset=\"0\" />\n <stop stop-color=\"#5D2100\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m192.3 203c8.1 37.3 14 73.6 17.8 109.1 3.8 35.4 2.8 75.1-3 119.2l61.2-16.7c-15.6-59-25.2-97.9-28.6-116.6s-10.8-51.9-22.1-99.6l-25.3 4.6\"\n clip-rule=\"evenodd\"\n fill=\"url(#n)\"\n fill-rule=\"evenodd\"\n />\n <g stroke=\"#2F8A00\">\n <linearGradient\n id=\"r\"\n x1=\"-660.23\"\n x2=\"-660.23\"\n y1=\"166.72\"\n y2=\"167.72\"\n gradientTransform=\"matrix(92.683 4.8573 -2.0259 38.657 61680 -3088.6)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n 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\"\n clip-rule=\"evenodd\"\n fill=\"url(#r)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id=\"s\"\n x1=\"-661.36\"\n x2=\"-661.36\"\n y1=\"164.18\"\n y2=\"165.18\"\n gradientTransform=\"matrix(110 5.7648 -6.3599 121.35 73933 -15933)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5s-47.5-8.5-83.2 15.7c-23.8 16.2-34.3 49.3-31.6 99.4 30.3-27.8 52.1-48.5 65.2-61.9 19.8-20.2 49.6-53.2 49.6-53.2z\"\n clip-rule=\"evenodd\"\n fill=\"url(#s)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id=\"q\"\n x1=\"-656.79\"\n x2=\"-656.79\"\n y1=\"165.15\"\n y2=\"166.15\"\n gradientTransform=\"matrix(62.954 3.2993 -3.5023 66.828 42156 -8754.1)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m195 183.9c-0.8-21.9 6-38 20.6-48.2s29.8-15.4 45.5-15.3c-6.1 21.4-14.5 35.8-25.2 43.4s-24.4 14.2-40.9 20.1z\"\n clip-rule=\"evenodd\"\n fill=\"url(#q)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id=\"p\"\n x1=\"-663.07\"\n x2=\"-663.07\"\n y1=\"165.44\"\n y2=\"166.44\"\n gradientTransform=\"matrix(152.47 7.9907 -3.0936 59.029 101884 -4318.7)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5c31.9-30 64.1-39.7 96.7-29s50.8 30.4 54.6 59.1c-35.2-5.5-60.4-9.6-75.8-12.1-15.3-2.6-40.5-8.6-75.5-18z\"\n clip-rule=\"evenodd\"\n fill=\"url(#p)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id=\"o\"\n x1=\"-662.57\"\n x2=\"-662.57\"\n y1=\"164.44\"\n y2=\"165.44\"\n gradientTransform=\"matrix(136.46 7.1517 -5.2163 99.533 91536 -11442)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5c35.8-7.6 65.6-0.2 89.2 22s37.7 49 42.3 80.3c-39.8-9.7-68.3-23.8-85.5-42.4s-32.5-38.5-46-59.9z\"\n clip-rule=\"evenodd\"\n fill=\"url(#o)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id=\"l\"\n x1=\"-656.43\"\n x2=\"-656.43\"\n y1=\"163.86\"\n y2=\"164.86\"\n gradientTransform=\"matrix(60.866 3.1899 -8.7773 167.48 41560 -25168)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5c-33.6 13.8-53.6 35.7-60.1 65.6s-3.6 63.1 8.7 99.6c27.4-40.3 43.2-69.6 47.4-88s5.6-44.1 4-77.2z\"\n clip-rule=\"evenodd\"\n fill=\"url(#l)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n <path\n d=\"m196.5 182.3c-14.8 21.6-25.1 41.4-30.8 59.4s-9.5 33-11.1 45.1\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n <path\n d=\"m194.9 185.7c-24.4 1.7-43.8 9-58.1 21.8s-24.7 25.4-31.3 37.8\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n <path\n d=\"m204.5 176.4c29.7-6.7 52-8.4 67-5.1s26.9 8.6 35.8 15.9\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n <path\n d=\"m196.5 181.4c20.3 9.9 38.2 20.5 53.9 31.9s27.4 22.1 35.1 32\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n </g>\n </g>\n <defs>\n <filter\n id=\"al\"\n x=\"50.5\"\n y=\"399\"\n width=\"532\"\n height=\"633\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"d\"\n x=\"50.5\"\n y=\"399\"\n width=\"532\"\n height=\"633\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#al)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#d)\">\n <linearGradient\n id=\"u\"\n x1=\"-666.06\"\n x2=\"-666.23\"\n y1=\"163.36\"\n y2=\"163.75\"\n gradientTransform=\"matrix(532 0 0 633 354760 -102959)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFF400\" offset=\"0\" />\n <stop stop-color=\"#3C8700\" offset=\"1\" />\n </linearGradient>\n\n <ellipse cx=\"316.5\" cy=\"715.5\" rx=\"266\" ry=\"316.5\" fill=\"url(#u)\" />\n </g>\n <defs>\n <filter\n id=\"ad\"\n x=\"391\"\n y=\"-24\"\n width=\"288\"\n height=\"283\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"c\"\n x=\"391\"\n y=\"-24\"\n width=\"288\"\n height=\"283\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ad)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#c)\">\n <linearGradient\n id=\"t\"\n x1=\"-664.56\"\n x2=\"-664.56\"\n y1=\"163.79\"\n y2=\"164.79\"\n gradientTransform=\"matrix(227 0 0 227 151421 -37204)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFDF00\" offset=\"0\" />\n <stop stop-color=\"#FF9D00\" offset=\"1\" />\n </linearGradient>\n <circle cx=\"565.5\" cy=\"89.5\" r=\"113.5\" fill=\"url(#t)\" />\n\n <linearGradient\n id=\"v\"\n x1=\"-644.5\"\n x2=\"-645.77\"\n y1=\"342\"\n y2=\"342\"\n gradientTransform=\"matrix(30 0 0 1 19770 -253)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"427\"\n x2=\"397\"\n y1=\"89\"\n y2=\"89\"\n fill=\"none\"\n stroke=\"url(#v)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"aa\"\n x1=\"-641.56\"\n x2=\"-642.83\"\n y1=\"196.02\"\n y2=\"196.07\"\n gradientTransform=\"matrix(26.5 0 0 5.5 17439 -1025.5)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"430.5\"\n x2=\"404\"\n y1=\"55.5\"\n y2=\"50\"\n fill=\"none\"\n stroke=\"url(#aa)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"w\"\n x1=\"-643.73\"\n x2=\"-645\"\n y1=\"185.83\"\n y2=\"185.9\"\n gradientTransform=\"matrix(29 0 0 8 19107 -1361)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"431\"\n x2=\"402\"\n y1=\"122\"\n y2=\"130\"\n fill=\"none\"\n stroke=\"url(#w)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"ac\"\n x1=\"-638.94\"\n x2=\"-640.22\"\n y1=\"177.09\"\n y2=\"177.39\"\n gradientTransform=\"matrix(24 0 0 13 15783 -2145)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"442\"\n x2=\"418\"\n y1=\"153\"\n y2=\"166\"\n fill=\"none\"\n stroke=\"url(#ac)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"ab\"\n x1=\"-633.42\"\n x2=\"-634.7\"\n y1=\"172.41\"\n y2=\"173.31\"\n gradientTransform=\"matrix(20 0 0 19 13137 -3096)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"464\"\n x2=\"444\"\n y1=\"180\"\n y2=\"199\"\n fill=\"none\"\n stroke=\"url(#ab)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"y\"\n x1=\"-619.05\"\n x2=\"-619.52\"\n y1=\"170.82\"\n y2=\"171.82\"\n gradientTransform=\"matrix(13.83 0 0 22.85 9050 -3703.4)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"491.4\"\n x2=\"477.5\"\n y1=\"203\"\n y2=\"225.9\"\n fill=\"none\"\n stroke=\"url(#y)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"x\"\n x1=\"-578.5\"\n x2=\"-578.63\"\n y1=\"170.31\"\n y2=\"171.31\"\n gradientTransform=\"matrix(7.5 0 0 24.5 4860 -3953)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"524.5\"\n x2=\"517\"\n y1=\"219.5\"\n y2=\"244\"\n fill=\"none\"\n stroke=\"url(#x)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"z\"\n x1=\"666.5\"\n x2=\"666.5\"\n y1=\"170.31\"\n y2=\"171.31\"\n gradientTransform=\"matrix(.5 0 0 24.5 231.5 -3944)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"564.5\"\n x2=\"565\"\n y1=\"228.5\"\n y2=\"253\"\n fill=\"none\"\n stroke=\"url(#z)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n </g>\n </svg>\n )\n}\n","import { onCleanup, $TRACK, untrack, createRoot, createSignal, createMemo, mapArray, on } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/index.ts\nvar FALLBACK = Symbol(\"fallback\");\nfunction dispose(list) {\n for (const o of list)\n o.dispose();\n}\nfunction keyArray(items, keyFn, mapFn, options = {}) {\n if (isServer) {\n const itemsRef = items();\n let s = [];\n if (itemsRef && itemsRef.length) {\n for (let i = 0, len = itemsRef.length; i < len; i++)\n s.push(\n mapFn(\n () => itemsRef[i],\n () => i\n )\n );\n } else if (options.fallback)\n s = [options.fallback()];\n return () => s;\n }\n const prev = /* @__PURE__ */ new Map();\n onCleanup(() => dispose(prev.values()));\n return () => {\n const list = items() || [];\n list[$TRACK];\n return untrack(() => {\n if (!list.length) {\n dispose(prev.values());\n prev.clear();\n if (!options.fallback)\n return [];\n const fb2 = createRoot((dispose2) => {\n prev.set(FALLBACK, { dispose: dispose2 });\n return options.fallback();\n });\n return [fb2];\n }\n const result = new Array(list.length);\n const fb = prev.get(FALLBACK);\n if (!prev.size || fb) {\n fb?.dispose();\n prev.delete(FALLBACK);\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n const key = keyFn(item, i);\n addNewItem(result, item, i, key);\n }\n return result;\n }\n const prevKeys = new Set(prev.keys());\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n const key = keyFn(item, i);\n prevKeys.delete(key);\n const lookup = prev.get(key);\n if (lookup) {\n result[i] = lookup.mapped;\n lookup.setIndex?.(i);\n lookup.setItem(() => item);\n } else\n addNewItem(result, item, i, key);\n }\n for (const key of prevKeys) {\n prev.get(key)?.dispose();\n prev.delete(key);\n }\n return result;\n });\n };\n function addNewItem(list, item, i, key) {\n createRoot((dispose2) => {\n const [getItem, setItem] = createSignal(item);\n const save = { setItem, dispose: dispose2 };\n if (mapFn.length > 1) {\n const [index, setIndex] = createSignal(i);\n save.setIndex = setIndex;\n save.mapped = mapFn(getItem, index);\n } else\n save.mapped = mapFn(getItem);\n prev.set(key, save);\n list[i] = save.mapped;\n });\n }\n}\nfunction Key(props) {\n const { by } = props;\n return createMemo(\n keyArray(\n () => props.each,\n typeof by === \"function\" ? by : (v) => v[by],\n props.children,\n \"fallback\" in props ? { fallback: () => props.fallback } : void 0\n )\n );\n}\nfunction Entries(props) {\n const mapFn = props.children;\n return createMemo(\n mapArray(\n () => props.of && Object.keys(props.of),\n mapFn.length < 3 ? (key) => mapFn(\n key,\n () => props.of[key]\n ) : (key, i) => mapFn(key, () => props.of[key], i),\n \"fallback\" in props ? { fallback: () => props.fallback } : void 0\n )\n );\n}\nfunction Rerun(props) {\n const key = typeof props.on === \"function\" || Array.isArray(props.on) ? props.on : () => props.on;\n return createMemo(\n on(key, (a, b) => {\n const child = props.children;\n return typeof child === \"function\" && child.length > 0 ? child(a, b) : child;\n })\n );\n}\n\nexport { Entries, Key, Rerun, keyArray };\n","import { displayValue } from './utils'\nimport superjson from 'superjson'\nimport { css, cx } from '@emotion/css'\nimport { tokens } from './theme'\nimport { createMemo, createSignal, Index, Match, Show, Switch } from 'solid-js'\nimport { Key } from '@solid-primitives/keyed'\nimport { CopiedCopier, Copier, ErrorCopier } from './icons'\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nexport function chunkArray<T extends { label: string; value: unknown }>(\n array: T[],\n size: number,\n): T[][] {\n if (size < 1) return []\n let i = 0\n const result: T[][] = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\nconst Expander = (props: { expanded: boolean }) => {\n const styles = getStyles()\n\n return (\n <span\n class={cx(\n styles.expander,\n css`\n transform: rotate(${props.expanded ? 90 : 0}deg);\n `,\n )}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 12L10 8L6 4\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n )\n}\n\ntype CopyState = 'NoCopy' | 'SuccessCopy' | 'ErrorCopy'\nconst CopyButton = (props: { value: unknown }) => {\n const styles = getStyles()\n const [copyState, setCopyState] = createSignal<CopyState>('NoCopy')\n\n return (\n <button\n class={styles.copyButton}\n aria-label={`${\n copyState() === 'NoCopy'\n ? 'Copy object to clipboard'\n : copyState() === 'SuccessCopy'\n ? 'Object copied to clipboard'\n : 'Error copying object to clipboard'\n }`}\n onClick={\n copyState() === 'NoCopy'\n ? () => {\n navigator.clipboard\n .writeText(superjson.stringify(props.value))\n .then(\n () => {\n setCopyState('SuccessCopy')\n setTimeout(() => {\n setCopyState('NoCopy')\n }, 1500)\n },\n (err) => {\n console.error('Failed to copy: ', err)\n setCopyState('ErrorCopy')\n setTimeout(() => {\n setCopyState('NoCopy')\n }, 1500)\n },\n )\n }\n : undefined\n }\n >\n <Switch>\n <Match when={copyState() === 'NoCopy'}>\n <Copier />\n </Match>\n <Match when={copyState() === 'SuccessCopy'}>\n <CopiedCopier />\n </Match>\n <Match when={copyState() === 'ErrorCopy'}>\n <ErrorCopier />\n </Match>\n </Switch>\n </button>\n )\n}\n\ntype ExplorerProps = {\n copyable?: boolean\n label: string\n value: unknown\n defaultExpanded?: string[]\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer(props: ExplorerProps) {\n const styles = getStyles()\n\n const [expanded, setExpanded] = createSignal(\n (props.defaultExpanded || []).includes(props.label),\n )\n const toggleExpanded = () => setExpanded((old) => !old)\n const [expandedPages, setExpandedPages] = createSignal<number[]>([])\n\n const subEntries = createMemo(() => {\n if (Array.isArray(props.value)) {\n return props.value.map((d, i) => ({\n label: i.toString(),\n value: d,\n }))\n } else if (\n props.value !== null &&\n typeof props.value === 'object' &&\n isIterable(props.value) &&\n typeof props.value[Symbol.iterator] === 'function'\n ) {\n if (props.value instanceof Map) {\n return Array.from(props.value, ([key, val]) => ({\n label: key,\n value: val,\n }))\n }\n return Array.from(props.value, (val, i) => ({\n label: i.toString(),\n value: val,\n }))\n } else if (typeof props.value === 'object' && props.value !== null) {\n return Object.entries(props.value).map(([key, val]) => ({\n label: key,\n value: val,\n }))\n }\n return []\n })\n\n const type = createMemo<string>(() => {\n if (Array.isArray(props.value)) {\n return 'array'\n } else if (\n props.value !== null &&\n typeof props.value === 'object' &&\n isIterable(props.value) &&\n typeof props.value[Symbol.iterator] === 'function'\n ) {\n return 'Iterable'\n } else if (typeof props.value === 'object' && props.value !== null) {\n return 'object'\n }\n return typeof props.value\n })\n\n const subEntryPages = createMemo(() => chunkArray(subEntries(), 100))\n\n return (\n <div class={styles.entry}>\n <Show when={subEntryPages().length}>\n <button class={styles.expanderButton} onClick={() => toggleExpanded()}>\n <Expander expanded={expanded()} /> <span>{props.label}</span>{' '}\n <span class={styles.info}>\n {String(type()).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries().length} {subEntries().length > 1 ? `items` : `item`}\n </span>\n </button>\n <Show when={props.copyable}>\n <CopyButton value={props.value} />\n </Show>\n <Show when={expanded()}>\n <Show when={subEntryPages().length === 1}>\n <div class={styles.subEntry}>\n <Key each={subEntries()} by={(item) => item.label}>\n {(entry) => {\n return (\n <Explorer\n defaultExpanded={props.defaultExpanded}\n label={entry().label}\n value={entry().value}\n copyable={props.copyable}\n />\n )\n }}\n </Key>\n </div>\n </Show>\n <Show when={subEntryPages().length > 1}>\n <div class={styles.subEntry}>\n <Index each={subEntryPages()}>\n {(entries, index) => (\n <div>\n <div class={styles.entry}>\n <button\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n class={styles.expanderButton}\n >\n <Expander expanded={expandedPages().includes(index)} />{' '}\n [{index * 100}...\n {index * 100 + 100 - 1}]\n </button>\n <Show when={expandedPages().includes(index)}>\n <div class={styles.subEntry}>\n <Key each={entries()} by={(entry) => entry.label}>\n {(entry) => (\n <Explorer\n defaultExpanded={props.defaultExpanded}\n label={entry().label}\n value={entry().value}\n copyable={props.copyable}\n />\n )}\n </Key>\n </div>\n </Show>\n </div>\n </div>\n )}\n </Index>\n </div>\n </Show>\n </Show>\n </Show>\n <Show when={subEntryPages().length === 0}>\n <span class={styles.label}>{props.label}:</span>{' '}\n <span class={styles.value}>{displayValue(props.value)}</span>\n </Show>\n </div>\n )\n}\n\nconst getStyles = () => {\n const { colors, font, size, border } = tokens\n\n return {\n entry: css`\n & * {\n font-size: ${font.size.sm};\n font-family: 'Menlo', 'Fira Code', monospace;\n line-height: 1.7;\n }\n position: relative;\n outline: none;\n word-break: break-word;\n `,\n subEntry: css`\n margin: 0 0 0 0.5em;\n padding-left: 0.75em;\n border-left: 2px solid ${colors.darkGray[400]};\n `,\n expander: css`\n & path {\n stroke: ${colors.gray[400]};\n }\n display: inline-flex;\n align-items: center;\n transition: all 0.1s ease;\n `,\n expanderButton: css`\n cursor: pointer;\n color: inherit;\n font: inherit;\n outline: inherit;\n line-height: ${font.size.sm};\n background: transparent;\n border: none;\n padding: 0;\n display: inline-flex;\n align-items: center;\n gap: ${size[1]};\n\n &:focus-visible {\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n info: css`\n color: ${colors.gray[500]};\n font-size: ${font.size.xs};\n line-height: ${font.size.xs};\n margin-left: ${size[1]};\n `,\n label: css`\n color: ${colors.gray[300]};\n `,\n value: css`\n color: ${colors.purple[400]};\n `,\n copyButton: css`\n background-color: transparent;\n border: none;\n display: inline-flex;\n padding: 0px;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n width: ${size[3.5]};\n height: ${size[3.5]};\n position: relative;\n top: 4px;\n left: ${size[2]};\n z-index: 1;\n\n &:hover svg .copier {\n stroke: ${colors.gray[500]} !important;\n }\n\n &:focus-visible {\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n outline-offset: 2px;\n }\n `,\n }\n}\n","import type { QueryClient, onlineManager, Query } from '@tanstack/query-core'\nimport { createContext, useContext } from 'solid-js'\n\ntype XPosition = 'left' | 'right'\ntype YPosition = 'top' | 'bottom'\nexport type DevtoolsPosition = XPosition | YPosition\nexport type DevtoolsButtonPosition = `${YPosition}-${XPosition}`\n\nexport interface DevToolsErrorType {\n /**\n * The name of the error.\n */\n name: string\n /**\n * How the error is initialized.\n */\n initializer: (query: Query) => Error\n}\n\nexport interface QueryDevtoolsProps {\n readonly client: QueryClient\n queryFlavor: string\n version: string\n onlineManager: typeof onlineManager\n\n buttonPosition?: DevtoolsButtonPosition\n position?: DevtoolsPosition\n initialIsOpen?: boolean\n errorTypes?: DevToolsErrorType[]\n}\n\nexport const QueryDevtoolsContext = createContext<QueryDevtoolsProps>({\n client: undefined as unknown as QueryClient,\n onlineManager: undefined as unknown as typeof onlineManager,\n queryFlavor: '',\n version: '',\n})\n\nexport function useQueryDevtoolsContext() {\n return useContext(QueryDevtoolsContext)\n}\n","import { untrack, createSignal, useTransition, createComputed, batch, createMemo, $TRACK } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/index.ts\nvar noop = () => {\n};\nvar noopTransition = (el, done) => done();\nfunction createSwitchTransition(source, options) {\n const initSource = untrack(source);\n const initReturned = initSource ? [initSource] : [];\n if (isServer) {\n return () => initReturned;\n }\n const { onEnter = noopTransition, onExit = noopTransition } = options;\n const [returned, setReturned] = createSignal(\n options.appear ? [] : initReturned\n );\n const [isTransitionPending] = useTransition();\n let next;\n let isExiting = false;\n function exitTransition(el, after) {\n if (!el)\n return after && after();\n isExiting = true;\n onExit(el, () => {\n batch(() => {\n isExiting = false;\n setReturned((p) => p.filter((e) => e !== el));\n after && after();\n });\n });\n }\n function enterTransition(after) {\n const el = next;\n if (!el)\n return after && after();\n next = void 0;\n setReturned((p) => [el, ...p]);\n onEnter(el, after ?? noop);\n }\n const triggerTransitions = options.mode === \"out-in\" ? (\n // exit -> enter\n (prev) => isExiting || exitTransition(prev, enterTransition)\n ) : options.mode === \"in-out\" ? (\n // enter -> exit\n (prev) => enterTransition(() => exitTransition(prev))\n ) : (\n // exit & enter\n (prev) => {\n enterTransition();\n exitTransition(prev);\n }\n );\n createComputed(\n (prev) => {\n const el = source();\n if (untrack(isTransitionPending)) {\n isTransitionPending();\n return prev;\n }\n if (el !== prev) {\n next = el;\n batch(() => untrack(() => triggerTransitions(prev)));\n }\n return el;\n },\n options.appear ? void 0 : initSource\n );\n return returned;\n}\nfunction createListTransition(source, options) {\n const initSource = untrack(source);\n if (isServer) {\n const copy = initSource.slice();\n return () => copy;\n }\n const { onChange } = options;\n let prevSet = new Set(options.appear ? void 0 : initSource);\n const exiting = /* @__PURE__ */ new WeakSet();\n const [toRemove, setToRemove] = createSignal([], { equals: false });\n const [isTransitionPending] = useTransition();\n const finishRemoved = options.exitMethod === \"remove\" ? noop : (els) => {\n setToRemove((p) => (p.push.apply(p, els), p));\n for (const el of els)\n exiting.delete(el);\n };\n const handleRemoved = options.exitMethod === \"remove\" ? noop : options.exitMethod === \"keep-index\" ? (els, el, i) => els.splice(i, 0, el) : (els, el) => els.push(el);\n return createMemo(\n (prev) => {\n const elsToRemove = toRemove();\n const sourceList = source();\n sourceList[$TRACK];\n if (untrack(isTransitionPending)) {\n isTransitionPending();\n return prev;\n }\n if (elsToRemove.length) {\n const next = prev.filter((e) => !elsToRemove.includes(e));\n elsToRemove.length = 0;\n onChange({ list: next, added: [], removed: [], unchanged: next, finishRemoved });\n return next;\n }\n return untrack(() => {\n const nextSet = new Set(sourceList);\n const next = sourceList.slice();\n const added = [];\n const removed = [];\n const unchanged = [];\n for (const el of sourceList) {\n (prevSet.has(el) ? unchanged : added).push(el);\n }\n let nothingChanged = !added.length;\n for (let i = 0; i < prev.length; i++) {\n const el = prev[i];\n if (!nextSet.has(el)) {\n if (!exiting.has(el)) {\n removed.push(el);\n exiting.add(el);\n }\n handleRemoved(next, el, i);\n }\n if (nothingChanged && el !== next[i])\n nothingChanged = false;\n }\n if (!removed.length && nothingChanged)\n return prev;\n onChange({ list: next, added, removed, unchanged, finishRemoved });\n prevSet = nextSet;\n return next;\n });\n },\n options.appear ? [] : initSource.slice()\n );\n}\n\nexport { createListTransition, createSwitchTransition };\n","import { DEV, untrack, getOwner, onCleanup, createSignal, sharedConfig, onMount } from 'solid-js';\nimport { isServer } from 'solid-js/web';\nexport { isServer } from 'solid-js/web';\n\n// src/index.ts\nvar noop = () => void 0;\nvar trueFn = () => true;\nvar falseFn = () => false;\nvar isClient = !isServer;\nvar isDev = isClient && !!DEV;\nvar isProd = !isDev;\nvar ofClass = (v, c) => v instanceof c || v && v.constructor === c;\nfunction isObject(value) {\n return value !== null && (typeof value === \"object\" || typeof value === \"function\");\n}\nvar isNonNullable = (i) => i != null;\nvar filterNonNullable = (arr) => arr.filter(isNonNullable);\nvar compare = (a, b) => a < b ? -1 : a > b ? 1 : 0;\nvar arrayEquals = (a, b) => a === b || a.length === b.length && a.every((e, i) => e === b[i]);\nfunction chain(callbacks) {\n return (...args) => {\n for (const callback of callbacks)\n callback && callback(...args);\n };\n}\nfunction reverseChain(callbacks) {\n return (...args) => {\n for (let i = callbacks.length - 1; i >= 0; i--) {\n const callback = callbacks[i];\n callback && callback(...args);\n }\n };\n}\nvar clamp = (n, min, max) => Math.min(Math.max(n, min), max);\nvar access = (v) => typeof v === \"function\" && !v.length ? v() : v;\nvar asArray = (value) => Array.isArray(value) ? value : value ? [value] : [];\nvar accessArray = (list) => list.map((v) => access(v));\nvar withAccess = (value, fn) => {\n const _value = access(value);\n typeof _value != null && fn(_value);\n};\nvar asAccessor = (v) => typeof v === \"function\" ? v : () => v;\nfunction accessWith(valueOrFn, ...args) {\n return typeof valueOrFn === \"function\" ? valueOrFn(...args) : valueOrFn;\n}\nfunction defer(deps, fn, initialValue) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let shouldDefer = true;\n return (prevValue) => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++)\n input[i] = deps[i]();\n } else\n input = deps();\n if (shouldDefer) {\n shouldDefer = false;\n prevInput = input;\n return initialValue;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\nvar entries = Object.entries;\nvar keys = Object.keys;\nvar tryOnCleanup = isDev ? (fn) => getOwner() ? onCleanup(fn) : fn : onCleanup;\nvar createCallbackStack = () => {\n let stack = [];\n const clear = () => stack = [];\n return {\n push: (...callbacks) => stack.push(...callbacks),\n execute(arg0, arg1, arg2, arg3) {\n stack.forEach((cb) => cb(arg0, arg1, arg2, arg3));\n clear();\n },\n clear\n };\n};\nfunction createMicrotask(fn) {\n let calls = 0;\n let args;\n return (...a) => {\n args = a, calls++;\n queueMicrotask(() => --calls === 0 && fn(...args));\n };\n}\nfunction createHydratableSignal(serverValue, update, options) {\n if (isServer) {\n return createSignal(serverValue, options);\n }\n if (sharedConfig.context) {\n const [state, setState] = createSignal(serverValue, options);\n onMount(() => setState(() => update()));\n return [state, setState];\n }\n return createSignal(update(), options);\n}\nvar createHydrateSignal = createHydratableSignal;\nfunction handleDiffArray(current, prev, handleAdded, handleRemoved) {\n const currLength = current.length;\n const prevLength = prev.length;\n let i = 0;\n if (!prevLength) {\n for (; i < currLength; i++)\n handleAdded(current[i]);\n return;\n }\n if (!currLength) {\n for (; i < prevLength; i++)\n handleRemoved(prev[i]);\n return;\n }\n for (; i < prevLength; i++) {\n if (prev[i] !== current[i])\n break;\n }\n let prevEl;\n let currEl;\n prev = prev.slice(i);\n current = current.slice(i);\n for (prevEl of prev) {\n if (!current.includes(prevEl))\n handleRemoved(prevEl);\n }\n for (currEl of current) {\n if (!prev.includes(currEl))\n handleAdded(currEl);\n }\n}\n\nexport { access, accessArray, accessWith, arrayEquals, asAccessor, asArray, chain, clamp, compare, createCallbackStack, createHydratableSignal, createHydrateSignal, createMicrotask, defer, entries, falseFn, filterNonNullable, handleDiffArray, isClient, isDev, isNonNullable, isObject, isProd, keys, noop, ofClass, reverseChain, trueFn, tryOnCleanup, withAccess };\n","import { chain, arrayEquals } from '@solid-primitives/utils';\nimport { createMemo, children, createComputed, untrack, onCleanup } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/index.ts\nfunction mergeRefs(...refs) {\n return chain(refs);\n}\nvar defaultElementPredicate = isServer ? (item) => item != null && typeof item === \"object\" && \"t\" in item : (item) => item instanceof Element;\nfunction getResolvedElements(value, predicate) {\n if (predicate(value))\n return value;\n if (typeof value === \"function\" && !value.length)\n return getResolvedElements(value(), predicate);\n if (Array.isArray(value)) {\n const results = [];\n for (const item of value) {\n const result = getResolvedElements(item, predicate);\n if (result)\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results.length ? results : null;\n }\n return null;\n}\nfunction resolveElements(fn, predicate = defaultElementPredicate, serverPredicate = defaultElementPredicate) {\n const children2 = createMemo(fn);\n const memo = createMemo(\n () => getResolvedElements(children2(), isServer ? serverPredicate : predicate)\n );\n memo.toArray = () => {\n const value = memo();\n return Array.isArray(value) ? value : value ? [value] : [];\n };\n return memo;\n}\nfunction getFirstChild(value, predicate) {\n if (predicate(value))\n return value;\n if (typeof value === \"function\" && !value.length)\n return getFirstChild(value(), predicate);\n if (Array.isArray(value)) {\n for (const item of value) {\n const result = getFirstChild(item, predicate);\n if (result)\n return result;\n }\n }\n return null;\n}\nfunction resolveFirst(fn, predicate = defaultElementPredicate, serverPredicate = defaultElementPredicate) {\n const children2 = createMemo(fn);\n return createMemo(() => getFirstChild(children2(), isServer ? serverPredicate : predicate));\n}\nfunction Refs(props) {\n if (isServer) {\n return props.children;\n }\n const cb = props.ref, resolved = children(() => props.children);\n let prev = [];\n createComputed(() => {\n const els = resolved.toArray().filter(defaultElementPredicate);\n if (!arrayEquals(prev, els))\n untrack(() => cb(els));\n prev = els;\n }, []);\n onCleanup(() => prev.length && cb([]));\n return resolved;\n}\nfunction Ref(props) {\n if (isServer) {\n return props.children;\n }\n const cb = props.ref, resolved = children(() => props.children);\n let prev;\n createComputed(() => {\n const el = resolved.toArray().find(defaultElementPredicate);\n if (el !== prev)\n untrack(() => cb(el));\n prev = el;\n });\n onCleanup(() => prev && cb(void 0));\n return resolved;\n}\n\nexport { Ref, Refs, defaultElementPredicate, getFirstChild, getResolvedElements, mergeRefs, resolveElements, resolveFirst };\n","// src/common.ts\nimport { createMemo } from \"solid-js\";\nfunction createClassnames(props) {\n return createMemo(() => {\n const name = props.name || \"s\";\n return {\n enterActiveClasses: (props.enterActiveClass || name + \"-enter-active\").split(\" \"),\n enterClasses: (props.enterClass || name + \"-enter\").split(\" \"),\n enterToClasses: (props.enterToClass || name + \"-enter-to\").split(\" \"),\n exitActiveClasses: (props.exitActiveClass || name + \"-exit-active\").split(\" \"),\n exitClasses: (props.exitClass || name + \"-exit\").split(\" \"),\n exitToClasses: (props.exitToClass || name + \"-exit-to\").split(\" \"),\n moveClasses: (props.moveClass || name + \"-move\").split(\" \")\n };\n });\n}\nfunction nextFrame(fn) {\n requestAnimationFrame(() => requestAnimationFrame(fn));\n}\nfunction enterTransition(classnames, events, el, done) {\n const { enterClasses, enterActiveClasses, enterToClasses } = classnames, { onBeforeEnter, onEnter, onAfterEnter } = events;\n onBeforeEnter?.(el);\n el.classList.add(...enterClasses);\n el.classList.add(...enterActiveClasses);\n queueMicrotask(() => {\n if (!el.parentNode)\n return done?.();\n onEnter?.(el, () => endTransition());\n });\n nextFrame(() => {\n el.classList.remove(...enterClasses);\n el.classList.add(...enterToClasses);\n if (!onEnter || onEnter.length < 2) {\n el.addEventListener(\"transitionend\", endTransition);\n el.addEventListener(\"animationend\", endTransition);\n }\n });\n function endTransition(e) {\n if (!e || e.target === el) {\n done?.();\n el.removeEventListener(\"transitionend\", endTransition);\n el.removeEventListener(\"animationend\", endTransition);\n el.classList.remove(...enterActiveClasses);\n el.classList.remove(...enterToClasses);\n onAfterEnter?.(el);\n }\n }\n}\nfunction exitTransition(classnames, events, el, done) {\n const { exitClasses, exitActiveClasses, exitToClasses } = classnames, { onBeforeExit, onExit, onAfterExit } = events;\n if (!el.parentNode)\n return done?.();\n onBeforeExit?.(el);\n el.classList.add(...exitClasses);\n el.classList.add(...exitActiveClasses);\n onExit?.(el, () => endTransition());\n nextFrame(() => {\n el.classList.remove(...exitClasses);\n el.classList.add(...exitToClasses);\n if (!onExit || onExit.length < 2) {\n el.addEventListener(\"transitionend\", endTransition);\n el.addEventListener(\"animationend\", endTransition);\n }\n });\n function endTransition(e) {\n if (!e || e.target === el) {\n done?.();\n el.removeEventListener(\"transitionend\", endTransition);\n el.removeEventListener(\"animationend\", endTransition);\n el.classList.remove(...exitActiveClasses);\n el.classList.remove(...exitToClasses);\n onAfterExit?.(el);\n }\n }\n}\n\n// src/Transition.ts\nimport { createSwitchTransition } from \"@solid-primitives/transition-group\";\nimport { resolveFirst } from \"@solid-primitives/refs\";\nvar TRANSITION_MODE_MAP = {\n inout: \"in-out\",\n outin: \"out-in\"\n};\nvar Transition = (props) => {\n const classnames = createClassnames(props);\n return createSwitchTransition(\n resolveFirst(() => props.children),\n {\n mode: TRANSITION_MODE_MAP[props.mode],\n appear: props.appear,\n onEnter(el, done) {\n enterTransition(classnames(), props, el, done);\n },\n onExit(el, done) {\n exitTransition(classnames(), props, el, done);\n }\n }\n );\n};\n\n// src/TransitionGroup.ts\nimport { createListTransition } from \"@solid-primitives/transition-group\";\nimport { resolveElements } from \"@solid-primitives/refs\";\nvar TransitionGroup = (props) => {\n const classnames = createClassnames(props);\n return createListTransition(resolveElements(() => props.children).toArray, {\n appear: props.appear,\n exitMethod: \"keep-index\",\n onChange({ added, removed, finishRemoved, list }) {\n const classes = classnames();\n for (const el of added) {\n enterTransition(classes, props, el);\n }\n const toMove = [];\n for (const el of list) {\n if (el.isConnected && (el instanceof HTMLElement || el instanceof SVGElement)) {\n toMove.push({ el, rect: el.getBoundingClientRect() });\n }\n }\n queueMicrotask(() => {\n const moved = [];\n for (const { el, rect } of toMove) {\n if (el.isConnected) {\n const newRect = el.getBoundingClientRect(), dX = rect.left - newRect.left, dY = rect.top - newRect.top;\n if (dX || dY) {\n el.style.transform = `translate(${dX}px, ${dY}px)`;\n el.style.transitionDuration = \"0s\";\n moved.push(el);\n }\n }\n }\n document.body.offsetHeight;\n for (const el of moved) {\n let endTransition2 = function(e) {\n if (e.target === el || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", endTransition2);\n el.classList.remove(...classes.moveClasses);\n }\n };\n var endTransition = endTransition2;\n el.classList.add(...classes.moveClasses);\n el.style.transform = el.style.transitionDuration = \"\";\n el.addEventListener(\"transitionend\", endTransition2);\n }\n });\n for (const el of removed) {\n exitTransition(classes, props, el, () => finishRemoved([el]));\n }\n }\n });\n};\nexport {\n Transition,\n TransitionGroup\n};\n","import { createSignal, onMount, onCleanup, createEffect } from 'solid-js';\nimport { createHydrateSignal } from '@solid-primitives/utils';\n\n// src/storage.ts\nfunction createStorage(props) {\n const [error, setError] = createSignal();\n const handleError = props?.throw ? (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n throw err;\n } : (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n };\n const apis = props?.api ? Array.isArray(props.api) ? props.api : [props.api] : [globalThis.localStorage].filter(Boolean);\n const prefix = props?.prefix ? `${props.prefix}.` : \"\";\n const signals = /* @__PURE__ */ new Map();\n const store = new Proxy(\n {},\n {\n get(_, key) {\n let node = signals.get(key);\n if (!node) {\n node = createSignal(void 0, { equals: false });\n signals.set(key, node);\n }\n node[0]();\n const value = apis.reduce(\n (result, api) => {\n if (result !== null || !api) {\n return result;\n }\n try {\n return api.getItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error reading ${prefix}${key} from ${api[\"name\"]}`);\n return null;\n }\n },\n null\n );\n if (value !== null && props?.deserializer) {\n return props.deserializer(value, key, props.options);\n }\n return value;\n }\n }\n );\n const setter = (key, value, options) => {\n const filteredValue = props?.serializer ? props.serializer(value, key, options ?? props.options) : value;\n const apiKey = `${prefix}${key}`;\n apis.forEach((api) => {\n try {\n api.getItem(apiKey) !== filteredValue && api.setItem(apiKey, filteredValue);\n } catch (err) {\n handleError(err, `Error setting ${prefix}${key} to ${filteredValue} in ${api.name}`);\n }\n });\n const node = signals.get(key);\n node && node[1]();\n };\n const remove = (key) => apis.forEach((api) => {\n try {\n api.removeItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error removing ${prefix}${key} from ${api.name}`);\n }\n });\n const clear = () => apis.forEach((api) => {\n try {\n api.clear();\n } catch (err) {\n handleError(err, `Error clearing ${api.name}`);\n }\n });\n const toJSON = () => {\n const result = {};\n const addValue = (key, value) => {\n if (!result.hasOwnProperty(key)) {\n const filteredValue = value && props?.deserializer ? props.deserializer(value, key, props.options) : value;\n if (filteredValue) {\n result[key] = filteredValue;\n }\n }\n };\n apis.forEach((api) => {\n if (typeof api.getAll === \"function\") {\n let values;\n try {\n values = api.getAll();\n } catch (err) {\n handleError(err, `Error getting all values from in ${api.name}`);\n }\n for (const key of values) {\n addValue(key, values[key]);\n }\n } else {\n let index = 0, key;\n try {\n while (key = api.key(index++)) {\n if (!result.hasOwnProperty(key)) {\n addValue(key, api.getItem(key));\n }\n }\n } catch (err) {\n handleError(err, `Error getting all values from ${api.name}`);\n }\n }\n });\n return result;\n };\n props?.sync !== false && onMount(() => {\n const listener = (ev) => {\n let changed = false;\n apis.forEach((api) => {\n try {\n if (api !== ev.storageArea && ev.key && ev.newValue !== api.getItem(ev.key)) {\n ev.newValue ? api.setItem(ev.key, ev.newValue) : api.removeItem(ev.key);\n changed = true;\n }\n } catch (err) {\n handleError(\n err,\n `Error synching api ${api.name} from storage event (${ev.key}=${ev.newValue})`\n );\n }\n });\n changed && ev.key && signals.get(ev.key)?.[1]();\n };\n if (\"addEventListener\" in globalThis) {\n globalThis.addEventListener(\"storage\", listener);\n onCleanup(() => globalThis.removeEventListener(\"storage\", listener));\n } else {\n apis.forEach((api) => api.addEventListener?.(\"storage\", listener));\n onCleanup(() => apis.forEach((api) => api.removeEventListener?.(\"storage\", listener)));\n }\n });\n return [\n store,\n setter,\n {\n clear,\n error,\n remove,\n toJSON\n }\n ];\n}\nfunction createAsyncStorage(props) {\n const [error, setError] = createSignal();\n const handleError = props?.throw ? (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n throw err;\n } : (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n };\n const apis = props?.api ? Array.isArray(props.api) ? props.api : [props.api] : [];\n const prefix = props?.prefix ? `${props.prefix}.` : \"\";\n const signals = /* @__PURE__ */ new Map();\n const store = new Proxy({}, {\n get(_, key) {\n let node = signals.get(key);\n if (!node) {\n node = createSignal(void 0, { equals: false });\n signals.set(key, node);\n }\n node[0]();\n return apis.reduce((result, api) => {\n if (result !== null || !api) {\n return result;\n }\n let value;\n try {\n value = api.getItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error getting ${prefix}${key} from ${api.name}`);\n }\n if (value instanceof Promise) {\n return value.then(\n (newValue) => newValue && props?.deserializer ? props.deserializer(newValue, key, props.options) : newValue\n );\n }\n return value !== null && props?.deserializer ? Promise.resolve(props.deserializer(value, key, props.options)) : Promise.resolve(value);\n }, null);\n }\n });\n const setter = (key, value, options) => {\n const filteredValue = props?.serializer ? props.serializer(value, key, options ?? props.options) : value;\n return Promise.all(\n apis.map((api) => {\n try {\n api.setItem(`${prefix}${key}`, filteredValue, options ?? props?.options);\n } catch (err) {\n handleError(err, `Error setting ${prefix}${key} to ${filteredValue} in ${api.name}`);\n }\n })\n ).then(() => {\n const node = signals.get(key);\n node && node[1]();\n });\n };\n const remove = (key) => {\n Promise.all(\n apis.map((api) => {\n try {\n api.removeItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error removing ${prefix}${key} from ${api.name}`);\n }\n })\n ).then(() => {\n const node = signals.get(key);\n node && node[1]();\n });\n };\n const clear = () => Promise.all(\n apis.map(async (api) => {\n let index = 0, key;\n while (key = await api.key(index++)) {\n try {\n await api.removeItem(key);\n } catch (err) {\n handleError(err, `Error removing ${key} from ${api.name} during clear()`);\n }\n }\n })\n ).then(() => {\n return;\n });\n const toJSON = async () => {\n const result = {};\n const addValue = (key, value) => {\n if (!result.hasOwnProperty(key)) {\n const filteredValue = value && props?.deserializer ? props.deserializer(value, key, props.options) : value;\n if (filteredValue) {\n result[key] = filteredValue;\n }\n }\n };\n await Promise.all(\n apis.map(async (api) => {\n if (typeof api.getAll === \"function\") {\n try {\n const values = await api.getAll();\n for (const key of values) {\n addValue(key, values[key]);\n }\n } catch (err) {\n handleError(err, `Error attempting to get all keys from ${api.name}`);\n }\n } else {\n let index = 0, key;\n try {\n while (key = await api.key(index++)) {\n addValue(key, await api.getItem(key));\n }\n } catch (err) {\n handleError(err, `Error attempting to get all keys from ${api.name}`);\n }\n }\n })\n );\n return result;\n };\n props?.sync !== false && onMount(() => {\n const listener = (ev) => {\n let changed = false;\n apis.forEach(async (api) => {\n try {\n if (api !== ev.storageArea && ev.key && ev.newValue !== await api.getItem(ev.key)) {\n ev.newValue ? api.setItem(ev.key, ev.newValue) : api.removeItem(ev.key);\n changed = true;\n }\n } catch (err) {\n handleError(err, \"Error attempting to sync on event\");\n }\n });\n changed && ev.key && signals.get(ev.key)?.[1]();\n };\n if (\"addEventListener\" in globalThis) {\n globalThis.addEventListener(\"storage\", listener);\n onCleanup(() => globalThis.removeEventListener(\"storage\", listener));\n } else {\n apis.forEach((api) => api.addEventListener?.(\"storage\", listener));\n onCleanup(() => apis.forEach((api) => api.removeEventListener?.(\"storage\", listener)));\n }\n });\n return [\n store,\n setter,\n {\n remove,\n clear,\n error,\n toJSON\n }\n ];\n}\nfunction createStorageSignal(key, initialValue, props) {\n const [error, setError] = createSignal();\n const apis = props?.api ? Array.isArray(props.api) ? props.api : [props.api] : [globalThis.localStorage].filter(Boolean);\n const prefix = props?.prefix ? `${props.prefix}.` : \"\";\n const read = () => apis.reduce((result, api) => {\n if (result !== null || !api) {\n return result;\n }\n let value = null;\n try {\n value = api.getItem(`${prefix}${key}`);\n } catch (err) {\n setError(\n err instanceof Error ? err : new Error(`Error reading ${prefix}${key} from ${api.name}`)\n );\n if (props?.throw) {\n throw err;\n }\n }\n if (value !== null && props?.deserializer) {\n return props.deserializer(value + \"\", key, props.options);\n }\n return value;\n }, null);\n const [accessor, setter] = createHydrateSignal(\n initialValue,\n () => read() ?? initialValue,\n props\n );\n createEffect(() => {\n const value = accessor();\n const filteredValue = props?.serializer ? props.serializer(value, key, props.options) : value + \"\";\n const apiKey = `${prefix}${key}`;\n try {\n if (value === null) {\n apis.forEach((api) => api.getItem(apiKey) !== null && api.removeItem(apiKey));\n } else {\n apis.forEach(\n (api) => api.getItem(apiKey) !== filteredValue && api.setItem(apiKey, filteredValue, props?.options)\n );\n }\n } catch (err) {\n setError(\n err instanceof Error ? err : new Error(`Error ${value === null ? \"removing\" : \"writing\"} value`)\n );\n if (props?.throw) {\n throw err;\n }\n }\n });\n const refetch = () => {\n const value = read();\n setter(value);\n };\n props?.sync !== false && onMount(() => {\n const listener = (ev) => {\n let changed = false;\n try {\n apis.forEach((api) => {\n if (api !== ev.storageArea && ev.key && ev.newValue !== api.getItem(ev.key)) {\n ev.newValue ? api.setItem(ev.key, ev.newValue) : api.removeItem(ev.key);\n changed = true;\n }\n });\n } catch (err) {\n setError(err instanceof Error ? err : new Error(\"Error synching api after event\"));\n if (props?.throw) {\n throw err;\n }\n }\n changed && refetch();\n };\n if (\"addEventListener\" in globalThis) {\n globalThis.addEventListener(\"storage\", listener);\n onCleanup(() => globalThis.removeEventListener(\"storage\", listener));\n } else {\n apis.forEach((api) => api.addEventListener?.(\"storage\", listener));\n onCleanup(() => apis.forEach((api) => api.removeEventListener?.(\"storage\", listener)));\n }\n });\n return [Object.assign(accessor, { error }), setter, refetch];\n}\nvar createLocalStorage = createStorage;\nvar createSessionStorage = (props) => createStorage({ ...props, api: globalThis.sessionStorage });\n\n// src/tools.ts\nvar addClearMethod = (storage) => {\n if (typeof storage.clear === \"function\") {\n return storage;\n }\n storage.clear = () => {\n let key;\n while (key = storage.key(0)) {\n storage.removeItem(key);\n }\n };\n return storage;\n};\n\n// src/cookies.ts\nvar serializeCookieOptions = (options) => {\n if (!options) {\n return \"\";\n }\n let memo = \"\";\n for (const key in options) {\n if (!options.hasOwnProperty(key)) {\n continue;\n }\n const value = options[key];\n memo += value instanceof Date ? `; ${key}=${value.toUTCString()}` : typeof value === \"boolean\" ? `; ${key}` : `; ${key}=${value}`;\n }\n return memo;\n};\nvar cookieStorage = addClearMethod({\n _cookies: [globalThis.document, \"cookie\"],\n getItem: (key) => cookieStorage._cookies[0][cookieStorage._cookies[1]].match(\"(^|;)\\\\s*\" + key + \"\\\\s*=\\\\s*([^;]+)\")?.pop() ?? null,\n setItem: (key, value, options) => {\n const oldValue = cookieStorage.getItem(key);\n cookieStorage._cookies[0][cookieStorage._cookies[1]] = `${key}=${value}${serializeCookieOptions(\n options\n )}`;\n const storageEvent = Object.assign(new Event(\"storage\"), {\n key,\n oldValue,\n newValue: value,\n url: globalThis.document.URL,\n storageArea: cookieStorage\n });\n window.dispatchEvent(storageEvent);\n },\n removeItem: (key) => {\n cookieStorage._cookies[0][cookieStorage._cookies[1]] = `${key}=deleted${serializeCookieOptions({\n expires: new Date(0)\n })}`;\n },\n key: (index) => {\n let key = null;\n let count = 0;\n cookieStorage._cookies[0][cookieStorage._cookies[1]].replace(\n /(?:^|;)\\s*(.+?)\\s*=\\s*[^;]+/g,\n (_, found) => {\n if (!key && found && count++ === index) {\n key = found;\n }\n return \"\";\n }\n );\n return key;\n },\n get length() {\n let length = 0;\n cookieStorage._cookies[0][cookieStorage._cookies[1]].replace(\n /(?:^|;)\\s*.+?\\s*=\\s*[^;]+/g,\n (found) => {\n length += found ? 1 : 0;\n return \"\";\n }\n );\n return length;\n }\n});\nvar createCookieStorage = (props) => createStorage({ ...props, api: cookieStorage });\n\nexport { addClearMethod, cookieStorage, createAsyncStorage, createCookieStorage, createLocalStorage, createSessionStorage, createStorage, createStorageSignal };\n","import { makeEventListener } from '@solid-primitives/event-listener';\nimport { createHydratableSingletonRoot } from '@solid-primitives/rootless';\nimport { createHydratableStaticStore, createStaticStore } from '@solid-primitives/static-store';\nimport { noop, filterNonNullable, asArray, access, handleDiffArray } from '@solid-primitives/utils';\nimport { onCleanup, createEffect, sharedConfig } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/index.ts\nfunction makeResizeObserver(callback, options) {\n if (isServer) {\n return { observe: noop, unobserve: noop };\n }\n const observer = new ResizeObserver(callback);\n onCleanup(observer.disconnect.bind(observer));\n return {\n observe: (ref) => observer.observe(ref, options),\n unobserve: observer.unobserve.bind(observer)\n };\n}\nfunction createResizeObserver(targets, onResize, options) {\n if (isServer)\n return;\n const previousMap = /* @__PURE__ */ new WeakMap(), { observe, unobserve } = makeResizeObserver((entries) => {\n for (const entry of entries) {\n const { contentRect, target } = entry, width = Math.round(contentRect.width), height = Math.round(contentRect.height), previous = previousMap.get(target);\n if (!previous || previous.width !== width || previous.height !== height) {\n onResize(contentRect, target, entry);\n previousMap.set(target, { width, height });\n }\n }\n }, options);\n createEffect((prev) => {\n const refs = filterNonNullable(asArray(access(targets)));\n handleDiffArray(refs, prev, observe, unobserve);\n return refs;\n }, []);\n}\nvar WINDOW_SIZE_FALLBACK = { width: 0, height: 0 };\nfunction getWindowSize() {\n if (isServer)\n return { ...WINDOW_SIZE_FALLBACK };\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n}\nfunction createWindowSize() {\n if (isServer) {\n return WINDOW_SIZE_FALLBACK;\n }\n const [size, setSize] = createHydratableStaticStore(WINDOW_SIZE_FALLBACK, getWindowSize);\n makeEventListener(window, \"resize\", () => setSize(getWindowSize()));\n return size;\n}\nvar useWindowSize = /* @__PURE__ */ createHydratableSingletonRoot(createWindowSize);\nvar ELEMENT_SIZE_FALLBACK = { width: null, height: null };\nfunction getElementSize(target) {\n if (isServer || !target) {\n return { ...ELEMENT_SIZE_FALLBACK };\n }\n const { width, height } = target.getBoundingClientRect();\n return { width, height };\n}\nfunction createElementSize(target) {\n if (isServer) {\n return ELEMENT_SIZE_FALLBACK;\n }\n const [size, setSize] = createStaticStore(\n sharedConfig.context ? ELEMENT_SIZE_FALLBACK : getElementSize(access(target))\n );\n const ro = new ResizeObserver(([e]) => {\n const { width, height } = e.contentRect;\n setSize({ width, height });\n });\n onCleanup(() => ro.disconnect());\n createEffect(() => {\n const el = access(target);\n if (el) {\n ro.observe(el);\n onCleanup(() => ro.unobserve(el));\n }\n });\n return size;\n}\n\nexport { createElementSize, createResizeObserver, createWindowSize, getElementSize, getWindowSize, makeResizeObserver, useWindowSize };\n","import type { Accessor, Component, JSX, Setter } from 'solid-js'\nimport { For } from 'solid-js'\nimport {\n createEffect,\n createMemo,\n createSignal,\n on,\n onCleanup,\n onMount,\n Show,\n} from 'solid-js'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { css, cx } from '@emotion/css'\nimport { tokens } from './theme'\nimport type { Query, QueryCache, QueryState } from '@tanstack/query-core'\nimport {\n getQueryStatusLabel,\n getQueryStatusColor,\n displayValue,\n getQueryStatusColorByLabel,\n sortFns,\n convertRemToPixels,\n} from './utils'\nimport {\n ArrowDown,\n ArrowUp,\n ChevronDown,\n Offline,\n Search,\n Settings,\n TanstackLogo,\n Wifi,\n} from './icons'\nimport Explorer from './Explorer'\nimport type {\n QueryDevtoolsProps,\n DevtoolsPosition,\n DevtoolsButtonPosition,\n DevToolsErrorType,\n} from './Context'\nimport { QueryDevtoolsContext, useQueryDevtoolsContext } from './Context'\nimport { TransitionGroup } from 'solid-transition-group'\nimport { loadFonts } from './fonts'\nimport { Key } from '@solid-primitives/keyed'\nimport type { StorageObject, StorageSetter } from '@solid-primitives/storage'\nimport { createLocalStorage } from '@solid-primitives/storage'\nimport { createResizeObserver } from '@solid-primitives/resize-observer'\n\ninterface DevtoolsPanelProps {\n localStore: StorageObject<string>\n setLocalStore: StorageSetter<string, unknown>\n}\n\ninterface QueryStatusProps {\n label: string\n color: 'green' | 'yellow' | 'gray' | 'blue' | 'purple'\n count: number\n}\n\nconst firstBreakpoint = 1024\nconst secondBreakpoint = 796\nconst thirdBreakpoint = 700\n\nconst BUTTON_POSITION: DevtoolsButtonPosition = 'bottom-right'\nconst POSITION: DevtoolsPosition = 'bottom'\nconst INITIAL_IS_OPEN = false\nconst DEFAULT_HEIGHT = 500\nconst DEFAULT_WIDTH = 500\nconst DEFAULT_SORT_FN_NAME = Object.keys(sortFns)[0]\nconst DEFAULT_SORT_ORDER = 1\n\nconst [selectedQueryHash, setSelectedQueryHash] = createSignal<string | null>(\n null,\n)\nconst [panelWidth, setPanelWidth] = createSignal(0)\n\nexport const DevtoolsComponent: Component<QueryDevtoolsProps> = (props) => {\n return (\n <QueryDevtoolsContext.Provider value={props}>\n <Devtools />\n </QueryDevtoolsContext.Provider>\n )\n}\n\nexport const Devtools = () => {\n loadFonts()\n\n const styles = getStyles()\n\n const [localStore, setLocalStore] = createLocalStorage({\n prefix: 'TanstackQueryDevtools',\n })\n\n const buttonPosition = createMemo(() => {\n return useQueryDevtoolsContext().buttonPosition || BUTTON_POSITION\n })\n\n const isOpen = createMemo(() => {\n return localStore.open === 'true'\n ? true\n : localStore.open === 'false'\n ? false\n : useQueryDevtoolsContext().initialIsOpen || INITIAL_IS_OPEN\n })\n\n const position = createMemo(() => {\n return localStore.position || useQueryDevtoolsContext().position || POSITION\n })\n\n return (\n <div\n // styles for animating the panel in and out\n class={css`\n & .TSQD-panel-exit-active,\n & .TSQD-panel-enter-active {\n transition: opacity 0.3s, transform 0.3s;\n }\n\n & .TSQD-panel-exit-to,\n & .TSQD-panel-enter {\n ${position() === 'top'\n ? `transform: translateY(-${Number(\n localStore.height || DEFAULT_HEIGHT,\n )}px);`\n : position() === 'left'\n ? `transform: translateX(-${Number(\n localStore.width || DEFAULT_WIDTH,\n )}px);`\n : position() === 'right'\n ? `transform: translateX(${Number(\n localStore.width || DEFAULT_WIDTH,\n )}px);`\n : `transform: translateY(${Number(\n localStore.height || DEFAULT_HEIGHT,\n )}px);`}\n }\n\n & .TSQD-button-exit-active,\n & .TSQD-button-enter-active {\n transition: opacity 0.3s, transform 0.3s;\n }\n\n & .TSQD-button-exit-to,\n & .TSQD-button-enter {\n transform: ${buttonPosition() === 'top-left'\n ? `translateX(-72px);`\n : buttonPosition() === 'top-right'\n ? `translateX(72px);`\n : `translateY(72px);`};\n }\n `}\n >\n <TransitionGroup name=\"TSQD-panel\">\n <Show when={isOpen()}>\n <DevtoolsPanel\n localStore={localStore}\n setLocalStore={setLocalStore}\n />\n </Show>\n </TransitionGroup>\n <TransitionGroup name=\"TSQD-button\">\n <Show when={!isOpen()}>\n <div\n class={cx(\n styles.devtoolsBtn,\n styles[`devtoolsBtn-position-${buttonPosition()}`],\n )}\n >\n <div aria-hidden=\"true\">\n <TanstackLogo />\n </div>\n <button\n aria-label=\"Open Tanstack query devtools\"\n onClick={() => setLocalStore('open', 'true')}\n >\n <TanstackLogo />\n </button>\n </div>\n </Show>\n </TransitionGroup>\n </div>\n )\n}\n\nexport const DevtoolsPanel: Component<DevtoolsPanelProps> = (props) => {\n const styles = getStyles()\n const [isResizing, setIsResizing] = createSignal(false)\n\n const sort = createMemo(() => props.localStore.sort || DEFAULT_SORT_FN_NAME)\n const sortOrder = createMemo(\n () => Number(props.localStore.sortOrder) || DEFAULT_SORT_ORDER,\n ) as () => 1 | -1\n\n const [offline, setOffline] = createSignal(false)\n const [settingsOpen, setSettingsOpen] = createSignal(false)\n\n const position = createMemo(\n () =>\n (props.localStore.position ||\n useQueryDevtoolsContext().position ||\n POSITION) as DevtoolsPosition,\n )\n\n const sortFn = createMemo(() => sortFns[sort() as string])\n\n const onlineManager = createMemo(\n () => useQueryDevtoolsContext().onlineManager,\n )\n\n const cache = createMemo(() => {\n return useQueryDevtoolsContext().client.getQueryCache()\n })\n\n const queryCount = createSubscribeToQueryCacheBatcher((queryCache) => {\n return queryCache().getAll().length\n }, false)\n\n const queries = createMemo(\n on(\n () => [queryCount(), props.localStore.filter, sort(), sortOrder()],\n () => {\n const curr = cache().getAll()\n\n const filtered = props.localStore.filter\n ? curr.filter(\n (item) =>\n rankItem(item.queryHash, props.localStore.filter || '').passed,\n )\n : [...curr]\n\n const sorted = sortFn()\n ? filtered.sort((a, b) => sortFn()!(a, b) * sortOrder())\n : filtered\n return sorted\n },\n ),\n )\n\n const handleDragStart: JSX.EventHandler<HTMLDivElement, MouseEvent> = (\n event,\n ) => {\n const panelElement = event.currentTarget.parentElement\n if (!panelElement) return\n setIsResizing(true)\n const { height, width } = panelElement.getBoundingClientRect()\n const startX = event.clientX\n const startY = event.clientY\n let newSize = 0\n const minHeight = convertRemToPixels(3.5)\n const minWidth = convertRemToPixels(12)\n const runDrag = (moveEvent: MouseEvent) => {\n moveEvent.preventDefault()\n\n if (position() === 'left' || position() === 'right') {\n const valToAdd =\n position() === 'right'\n ? startX - moveEvent.clientX\n : moveEvent.clientX - startX\n newSize = Math.round(width + valToAdd)\n if (newSize < minWidth) {\n newSize = minWidth\n }\n props.setLocalStore('width', String(Math.round(newSize)))\n\n const newWidth = panelElement.getBoundingClientRect().width\n // If the panel size didn't decrease, this means we have reached the minimum width\n // of the panel so we restore the original width in local storage\n // Restoring the width helps in smooth open/close transitions\n if (Number(props.localStore.width) < newWidth) {\n props.setLocalStore('width', String(newWidth))\n }\n } else {\n const valToAdd =\n position() === 'bottom'\n ? startY - moveEvent.clientY\n : moveEvent.clientY - startY\n newSize = Math.round(height + valToAdd)\n // If the panel size is less than the minimum height,\n // we set the size to the minimum height\n if (newSize < minHeight) {\n newSize = minHeight\n setSelectedQueryHash(null)\n }\n props.setLocalStore('height', String(Math.round(newSize)))\n }\n }\n\n const unsub = () => {\n if (isResizing()) {\n setIsResizing(false)\n }\n document.removeEventListener('mousemove', runDrag, false)\n document.removeEventListener('mouseUp', unsub, false)\n }\n\n document.addEventListener('mousemove', runDrag, false)\n document.addEventListener('mouseup', unsub, false)\n }\n\n setupQueryCacheSubscription()\n\n let queriesContainerRef!: HTMLDivElement\n let panelRef!: HTMLDivElement\n\n onMount(() => {\n createResizeObserver(panelRef, ({ width }, el) => {\n if (el === panelRef) {\n setPanelWidth(width)\n }\n })\n })\n\n const setDevtoolsPosition = (pos: DevtoolsPosition) => {\n props.setLocalStore('position', pos)\n setSettingsOpen(false)\n }\n\n return (\n <aside\n // Some context for styles here\n // background-color - Changes to a lighter color create a harder contrast\n // between the queries and query detail panel\n // -\n // min-width - When the panel is in the left or right position, the panel\n // width is set to min-content to allow the panel to shrink to the lowest possible width\n class={`${styles.panel} ${styles[`panel-position-${position()}`]} ${css`\n flex-direction: ${panelWidth() < secondBreakpoint ? 'column' : 'row'};\n background-color: ${panelWidth() < secondBreakpoint\n ? tokens.colors.gray[600]\n : tokens.colors.darkGray[900]};\n ${panelWidth() < thirdBreakpoint &&\n (position() === 'right' || position() === 'left')\n ? `\n min-width: min-content;\n `\n : ''}\n `}`}\n style={{\n height:\n position() === 'bottom' || position() === 'top'\n ? `${props.localStore.height || DEFAULT_HEIGHT}px`\n : 'auto',\n width:\n position() === 'right' || position() === 'left'\n ? `${props.localStore.width || DEFAULT_WIDTH}px`\n : 'auto',\n }}\n ref={panelRef}\n aria-label=\"Tanstack query devtools\"\n >\n <div\n class={cx(\n styles.dragHandle,\n styles[`dragHandle-position-${position()}`],\n )}\n onMouseDown={handleDragStart}\n ></div>\n <button\n aria-label=\"Close tanstack query devtools\"\n class={cx(styles.closeBtn, styles[`closeBtn-position-${position()}`])}\n onClick={() => props.setLocalStore('open', 'false')}\n >\n <ChevronDown />\n </button>\n <div\n ref={queriesContainerRef}\n // When the panels are stacked we use the height style\n // to divide the panels into two equal parts\n class={`${styles.queriesContainer} ${css`\n ${panelWidth() < secondBreakpoint && selectedQueryHash()\n ? `\n height: 50%;\n max-height: 50%;\n `\n : ''}\n `}`}\n >\n <div class={cx(styles.row)}>\n <button\n class={styles.logo}\n onClick={() => props.setLocalStore('open', 'false')}\n aria-label=\"Close Tanstack query devtools\"\n >\n <span class={styles.tanstackLogo}>TANSTACK</span>\n <span class={styles.queryFlavorLogo}>\n {useQueryDevtoolsContext().queryFlavor} v\n {useQueryDevtoolsContext().version}\n </span>\n </button>\n <QueryStatusCount />\n </div>\n <div\n class={cx(\n styles.row,\n css`\n gap: ${tokens.size[2.5]};\n `,\n )}\n >\n <div class={styles.filtersContainer}>\n <div class={styles.filterInput}>\n <Search />\n <input\n aria-label=\"Filter queries by query key\"\n type=\"text\"\n placeholder=\"Filter\"\n onInput={(e) =>\n props.setLocalStore('filter', e.currentTarget.value)\n }\n value={props.localStore.filter || ''}\n />\n </div>\n <div class={styles.filterSelect}>\n <select\n value={sort()}\n onChange={(e) =>\n props.setLocalStore('sort', e.currentTarget.value)\n }\n >\n {Object.keys(sortFns).map((key) => (\n <option value={key}>Sort by {key}</option>\n ))}\n </select>\n <ChevronDown />\n </div>\n <button\n onClick={() => {\n props.setLocalStore('sortOrder', String(sortOrder() * -1))\n }}\n aria-label={`Sort order ${\n sortOrder() === -1 ? 'descending' : 'ascending'\n }`}\n aria-pressed={sortOrder() === -1}\n >\n <Show when={sortOrder() === 1}>\n <span>Asc</span>\n <ArrowUp />\n </Show>\n <Show when={sortOrder() === -1}>\n <span>Desc</span>\n <ArrowDown />\n </Show>\n </button>\n </div>\n\n <div class={styles.actionsContainer}>\n <button\n onClick={() => {\n if (offline()) {\n onlineManager().setOnline(undefined)\n setOffline(false)\n window.dispatchEvent(new Event('online'))\n } else {\n onlineManager().setOnline(false)\n setOffline(true)\n }\n }}\n class={styles.actionsBtn}\n aria-label={`${\n offline()\n ? 'Unset offline mocking behavior'\n : 'Mock offline behavior'\n }`}\n aria-pressed={offline()}\n >\n {offline() ? <Offline /> : <Wifi />}\n </button>\n <div style={{ position: 'relative' }}>\n <button\n onClick={() => setSettingsOpen((prev) => !prev)}\n class={styles.actionsBtn}\n id=\"TSQD-settings-menu-btn\"\n aria-label={`${\n settingsOpen() ? 'Close' : 'Open'\n } settings menu`}\n aria-haspopup=\"true\"\n aria-controls=\"TSQD-settings-menu\"\n >\n <Settings />\n </button>\n <Show when={settingsOpen()}>\n <div\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"TSQD-settings-menu-btn\"\n id=\"TSQD-settings-menu\"\n class={styles.settingsMenu}\n >\n <div class={styles.settingsMenuHeader}>Position</div>\n <div class={styles.settingsMenuSection}>\n <button\n onClick={() => {\n setDevtoolsPosition('top')\n }}\n aria-label=\"Position top\"\n >\n <ArrowUp />\n <span>Top</span>\n </button>\n <button\n onClick={() => {\n setDevtoolsPosition('bottom')\n }}\n aria-label=\"Position bottom\"\n >\n <ArrowDown />\n <span>Bottom</span>\n </button>\n <button\n onClick={() => {\n setDevtoolsPosition('left')\n }}\n aria-label=\"Position left\"\n >\n <ArrowDown />\n <span>Left</span>\n </button>\n <button\n onClick={() => {\n setDevtoolsPosition('right')\n }}\n aria-label=\"Position right\"\n >\n <ArrowDown />\n <span>Right</span>\n </button>\n </div>\n </div>\n </Show>\n </div>\n </div>\n </div>\n <div class={styles.overflowQueryContainer}>\n <div>\n <Key by={(q) => q.queryHash} each={queries()}>\n {(query) => <QueryRow query={query()} />}\n </Key>\n </div>\n </div>\n </div>\n <Show when={selectedQueryHash()}>\n <QueryDetails />\n </Show>\n </aside>\n )\n}\n\nexport const QueryRow: Component<{ query: Query }> = (props) => {\n const styles = getStyles()\n\n const queryState = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache().find({\n queryKey: props.query.queryKey,\n })?.state,\n )\n\n const isDisabled = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .find({\n queryKey: props.query.queryKey,\n })\n ?.isDisabled() ?? false,\n )\n\n const isStale = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .find({\n queryKey: props.query.queryKey,\n })\n ?.isStale() ?? false,\n )\n\n const observers = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .find({\n queryKey: props.query.queryKey,\n })\n ?.getObserversCount() ?? 0,\n )\n\n const color = createMemo(() =>\n getQueryStatusColor({\n queryState: queryState()!,\n observerCount: observers(),\n isStale: isStale(),\n }),\n )\n\n return (\n <Show when={queryState()}>\n <button\n onClick={() =>\n setSelectedQueryHash(\n props.query.queryHash === selectedQueryHash()\n ? null\n : props.query.queryHash,\n )\n }\n class={cx(\n styles.queryRow,\n selectedQueryHash() === props.query.queryHash &&\n styles.selectedQueryRow,\n )}\n aria-label={`Query key ${props.query.queryHash}`}\n >\n <div\n class={cx(\n 'TSQDObserverCount',\n color() === 'gray'\n ? css`\n background-color: ${tokens.colors[color()][700]};\n color: ${tokens.colors[color()][300]};\n `\n : css`\n background-color: ${tokens.colors[color()][900]};\n color: ${tokens.colors[color()][300]} !important;\n `,\n )}\n >\n {observers()}\n </div>\n <code class=\"TSQDQueryHash\">{props.query.queryHash}</code>\n <Show when={isDisabled()}>\n <div class=\"TSQDQueryDisabled\">disabled</div>\n </Show>\n </button>\n </Show>\n )\n}\n\nexport const QueryStatusCount: Component = () => {\n const stale = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'stale').length,\n )\n\n const fresh = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'fresh').length,\n )\n\n const fetching = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'fetching').length,\n )\n\n const paused = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'paused').length,\n )\n\n const inactive = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'inactive').length,\n )\n\n const styles = getStyles()\n\n return (\n <div class={styles.queryStatusContainer}>\n <QueryStatus label=\"Fresh\" color=\"green\" count={fresh()} />\n <QueryStatus label=\"Fetching\" color=\"blue\" count={fetching()} />\n <QueryStatus label=\"Paused\" color=\"purple\" count={paused()} />\n <QueryStatus label=\"Stale\" color=\"yellow\" count={stale()} />\n <QueryStatus label=\"Inactive\" color=\"gray\" count={inactive()} />\n </div>\n )\n}\n\nexport const QueryStatus: Component<QueryStatusProps> = (props) => {\n const styles = getStyles()\n\n let tagRef!: HTMLButtonElement\n\n const [mouseOver, setMouseOver] = createSignal(false)\n const [focused, setFocused] = createSignal(false)\n\n const showLabel = createMemo(() => {\n if (selectedQueryHash()) {\n if (panelWidth() < firstBreakpoint && panelWidth() > secondBreakpoint) {\n return false\n }\n }\n if (panelWidth() < thirdBreakpoint) {\n return false\n }\n\n return true\n })\n\n return (\n <button\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n onMouseEnter={() => setMouseOver(true)}\n onMouseLeave={() => {\n setMouseOver(false)\n setFocused(false)\n }}\n disabled={showLabel()}\n ref={tagRef}\n class={cx(\n styles.queryStatusTag,\n !showLabel()\n ? css`\n cursor: pointer;\n &:hover {\n background: ${tokens.colors.darkGray[400]}${tokens.alpha[80]};\n }\n `\n : null,\n )}\n {...(mouseOver() || focused()\n ? {\n 'aria-describedby': 'TSQD-status-tooltip',\n }\n : {})}\n >\n <Show when={!showLabel() && (mouseOver() || focused())}>\n <div\n role=\"tooltip\"\n id=\"TSQD-status-tooltip\"\n class={cx(styles.statusTooltip)}\n >\n {props.label}\n </div>\n </Show>\n <span\n class={css`\n width: ${tokens.size[2]};\n height: ${tokens.size[2]};\n border-radius: ${tokens.border.radius.full};\n background-color: ${tokens.colors[props.color][500]};\n `}\n />\n <Show when={showLabel()}>\n <span>{props.label}</span>\n </Show>\n <span\n class={cx(\n styles.queryStatusCount,\n props.count > 0 && props.color !== 'gray'\n ? css`\n background-color: ${tokens.colors[props.color][900]};\n color: ${tokens.colors[props.color][300]} !important;\n `\n : css`\n color: ${tokens.colors['gray'][400]} !important;\n `,\n )}\n >\n {props.count}\n </span>\n </button>\n )\n}\n\nconst QueryDetails = () => {\n const styles = getStyles()\n const queryClient = useQueryDevtoolsContext().client\n\n const [restoringLoading, setRestoringLoading] = createSignal(false)\n\n const errorTypes = createMemo(() => {\n return useQueryDevtoolsContext().errorTypes || []\n })\n\n const activeQuery = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash()),\n false,\n )\n\n const activeQueryFresh = createSubscribeToQueryCacheBatcher((queryCache) => {\n return queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())\n }, false)\n\n const activeQueryState = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())?.state,\n false,\n )\n\n const activeQueryStateData = createSubscribeToQueryCacheBatcher(\n (queryCache) => {\n return queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())?.state.data\n },\n false,\n )\n\n const statusLabel = createSubscribeToQueryCacheBatcher((queryCache) => {\n const query = queryCache()\n .getAll()\n .find((q) => q.queryHash === selectedQueryHash())\n if (!query) return 'inactive'\n return getQueryStatusLabel(query)\n })\n\n const queryStatus = createSubscribeToQueryCacheBatcher((queryCache) => {\n const query = queryCache()\n .getAll()\n .find((q) => q.queryHash === selectedQueryHash())\n if (!query) return 'pending'\n return query.state.status\n })\n\n const observerCount = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())\n ?.getObserversCount() ?? 0,\n )\n\n const color = createMemo(() => getQueryStatusColorByLabel(statusLabel()))\n\n const handleRefetch = () => {\n const promise = activeQuery()?.fetch()\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n promise?.catch(() => {})\n }\n\n const triggerError = (errorType?: DevToolsErrorType) => {\n const error =\n errorType?.initializer(activeQuery()!) ??\n new Error('Unknown error from devtools')\n\n const __previousQueryOptions = activeQuery()!.options\n\n activeQuery()!.setState({\n status: 'error',\n error,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n fetchMeta: {\n ...activeQuery()!.state.fetchMeta,\n __previousQueryOptions,\n } as any,\n } as QueryState<unknown, Error>)\n }\n\n const restoreQueryAfterLoadingOrError = () => {\n activeQuery()?.fetch(\n (activeQuery()?.state.fetchMeta as any).__previousQueryOptions,\n {\n // Make sure this fetch will cancel the previous one\n cancelRefetch: true,\n },\n )\n }\n\n createEffect(() => {\n if (statusLabel() !== 'fetching') {\n setRestoringLoading(false)\n }\n })\n\n return (\n <Show when={activeQuery() && activeQueryState()}>\n <div class={styles.detailsContainer}>\n <div class={styles.detailsHeader}>Query Details</div>\n <div class={styles.detailsBody}>\n <div>\n <pre>\n <code>{displayValue(activeQuery()!.queryKey, true)}</code>\n </pre>\n <span\n class={cx(\n styles.queryDetailsStatus,\n color() === 'gray'\n ? css`\n background-color: ${tokens.colors[color()][700]};\n color: ${tokens.colors[color()][300]};\n border-color: ${tokens.colors[color()][600]};\n `\n : css`\n background-color: ${tokens.colors[color()][900]};\n color: ${tokens.colors[color()][300]};\n border-color: ${tokens.colors[color()][600]};\n `,\n )}\n >\n {statusLabel()}\n </span>\n </div>\n <div>\n <span>Observers:</span>\n <span>{observerCount()}</span>\n </div>\n <div>\n <span>Last Updated:</span>\n <span>\n {new Date(activeQueryState()!.dataUpdatedAt).toLocaleTimeString()}\n </span>\n </div>\n </div>\n <div class={styles.detailsHeader}>Actions</div>\n <div class={styles.actionsBody}>\n <button\n class={css`\n color: ${tokens.colors.blue[400]};\n `}\n onClick={handleRefetch}\n disabled={statusLabel() === 'fetching'}\n >\n <span\n class={css`\n background-color: ${tokens.colors.blue[400]};\n `}\n ></span>\n Refetch\n </button>\n <button\n class={css`\n color: ${tokens.colors.yellow[400]};\n `}\n onClick={() => queryClient.invalidateQueries(activeQuery())}\n >\n <span\n class={css`\n background-color: ${tokens.colors.yellow[400]};\n `}\n ></span>\n Invalidate\n </button>\n <button\n class={css`\n color: ${tokens.colors.gray[300]};\n `}\n onClick={() => queryClient.resetQueries(activeQuery())}\n >\n <span\n class={css`\n background-color: ${tokens.colors.gray[400]};\n `}\n ></span>\n Reset\n </button>\n <button\n class={css`\n color: ${tokens.colors.cyan[400]};\n `}\n disabled={restoringLoading()}\n onClick={() => {\n if (activeQuery()?.state.data === undefined) {\n setRestoringLoading(true)\n restoreQueryAfterLoadingOrError()\n } else {\n const activeQueryVal = activeQuery()\n if (!activeQueryVal) return\n const __previousQueryOptions = activeQueryVal.options\n // Trigger a fetch in order to trigger suspense as well.\n activeQueryVal.fetch({\n ...__previousQueryOptions,\n queryFn: () => {\n return new Promise(() => {\n // Never resolve\n })\n },\n gcTime: -1,\n })\n activeQueryVal.setState({\n data: undefined,\n status: 'pending',\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n fetchMeta: {\n ...activeQueryVal.state.fetchMeta,\n __previousQueryOptions,\n } as any,\n } as QueryState<unknown, Error>)\n }\n }}\n >\n <span\n class={css`\n background-color: ${tokens.colors.cyan[400]};\n `}\n ></span>\n {statusLabel() === 'fetching' ? 'Restore' : 'Trigger'} Loading\n </button>\n <Show when={errorTypes().length === 0 || queryStatus() === 'error'}>\n <button\n class={css`\n color: ${tokens.colors.red[400]};\n `}\n onClick={() => {\n if (!activeQuery()!.state.error) {\n triggerError()\n } else {\n queryClient.resetQueries(activeQuery())\n }\n }}\n >\n <span\n class={css`\n background-color: ${tokens.colors.red[400]};\n `}\n ></span>\n {queryStatus() === 'error' ? 'Restore' : 'Trigger'} Error\n </button>\n </Show>\n <Show\n when={!(errorTypes().length === 0 || queryStatus() === 'error')}\n >\n <div class={styles.actionsSelect}>\n <span\n class={css`\n background-color: ${tokens.colors.red[400]};\n `}\n ></span>\n Trigger Error\n <select\n disabled={queryStatus() === 'pending'}\n onChange={(e) => {\n const errorType = errorTypes().find(\n (t) => t.name === e.currentTarget.value,\n )\n\n triggerError(errorType)\n }}\n >\n <option value=\"\" disabled selected></option>\n <For each={errorTypes()}>\n {(errorType) => (\n <option value={errorType.name}>{errorType.name}</option>\n )}\n </For>\n </select>\n <ChevronDown />\n </div>\n </Show>\n </div>\n <div class={styles.detailsHeader}>Data Explorer</div>\n <div\n style={{\n padding: '0.5rem',\n }}\n >\n <Explorer\n label=\"Data\"\n defaultExpanded={['Data']}\n value={activeQueryStateData()}\n copyable={true}\n />\n </div>\n <div class={styles.detailsHeader}>Query Explorer</div>\n <div\n style={{\n padding: '0.5rem',\n }}\n >\n <Explorer\n label=\"Query\"\n defaultExpanded={['Query', 'queryKey']}\n value={activeQueryFresh()}\n />\n </div>\n </div>\n </Show>\n )\n}\n\nconst signalsMap = new Map<(q: Accessor<QueryCache>) => any, Setter<any>>()\n\nconst setupQueryCacheSubscription = () => {\n const queryCache = createMemo(() => {\n const client = useQueryDevtoolsContext().client\n return client.getQueryCache()\n })\n\n const unsub = queryCache().subscribe(() => {\n for (const [callback, setter] of signalsMap.entries()) {\n queueMicrotask(() => {\n setter(callback(queryCache))\n })\n }\n })\n\n onCleanup(() => {\n signalsMap.clear()\n unsub()\n })\n\n return unsub\n}\n\nconst createSubscribeToQueryCacheBatcher = <T,>(\n callback: (queryCache: Accessor<QueryCache>) => Exclude<T, Function>,\n equalityCheck: boolean = true,\n) => {\n const queryCache = createMemo(() => {\n const client = useQueryDevtoolsContext().client\n return client.getQueryCache()\n })\n\n const [value, setValue] = createSignal<T>(\n callback(queryCache),\n !equalityCheck ? { equals: false } : undefined,\n )\n\n createEffect(() => {\n setValue(callback(queryCache))\n })\n\n // @ts-ignore\n signalsMap.set(callback, setValue)\n\n onCleanup(() => {\n // @ts-ignore\n signalsMap.delete(callback)\n })\n\n return value\n}\n\nconst getStyles = () => {\n const { colors, font, size, alpha, shadow, border } = tokens\n\n return {\n devtoolsBtn: css`\n z-index: 100000;\n position: fixed;\n padding: 4px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 9999px;\n box-shadow: ${shadow.md()};\n overflow: hidden;\n\n & div {\n position: absolute;\n top: -8px;\n left: -8px;\n right: -8px;\n bottom: -8px;\n border-radius: 9999px;\n\n & svg {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n filter: blur(6px) saturate(1.2) contrast(1.1);\n }\n\n &:focus-within {\n outline-offset: 2px;\n outline: 3px solid ${colors.green[600]};\n }\n\n & button {\n position: relative;\n z-index: 1;\n padding: 0;\n border-radius: 9999px;\n background-color: transparent;\n border: none;\n height: 40px;\n display: flex;\n width: 40px;\n overflow: hidden;\n cursor: pointer;\n outline: none;\n & svg {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n }\n `,\n panel: css`\n position: fixed;\n z-index: 9999;\n display: flex;\n gap: ${tokens.size[0.5]};\n & * {\n font-family: 'Inter', sans-serif;\n color: ${colors.gray[300]};\n box-sizing: border-box;\n }\n `,\n 'devtoolsBtn-position-bottom-right': css`\n bottom: 12px;\n right: 12px;\n `,\n 'devtoolsBtn-position-bottom-left': css`\n bottom: 12px;\n left: 12px;\n `,\n 'devtoolsBtn-position-top-left': css`\n top: 12px;\n left: 12px;\n `,\n 'devtoolsBtn-position-top-right': css`\n top: 12px;\n right: 12px;\n `,\n 'panel-position-top': css`\n top: 0;\n right: 0;\n left: 0;\n max-height: 90%;\n min-height: 3.5rem;\n border-bottom: ${colors.darkGray[300]} 1px solid;\n `,\n 'panel-position-bottom': css`\n bottom: 0;\n right: 0;\n left: 0;\n max-height: 90%;\n min-height: 3.5rem;\n border-top: ${colors.darkGray[300]} 1px solid;\n `,\n 'panel-position-right': css`\n bottom: 0;\n right: 0;\n top: 0;\n border-left: ${colors.darkGray[300]} 1px solid;\n max-width: 90%;\n `,\n 'panel-position-left': css`\n bottom: 0;\n left: 0;\n top: 0;\n border-right: ${colors.darkGray[300]} 1px solid;\n max-width: 90%;\n `,\n closeBtn: css`\n position: absolute;\n cursor: pointer;\n z-index: 5;\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n &:focus-visible {\n outline: 2px solid ${colors.blue[600]};\n }\n `,\n 'closeBtn-position-top': css`\n bottom: 0;\n right: ${size[3]};\n transform: translate(0, 100%);\n background-color: ${colors.darkGray[700]};\n border-right: ${colors.darkGray[300]} 1px solid;\n border-left: ${colors.darkGray[300]} 1px solid;\n border-top: none;\n border-bottom: ${colors.darkGray[300]} 1px solid;\n border-radius: 0px 0px ${border.radius.sm} ${border.radius.sm};\n padding: ${size[1.5]} ${size[2.5]} ${size[2]} ${size[2.5]};\n\n &::after {\n content: ' ';\n position: absolute;\n bottom: 100%;\n left: -${size[2.5]};\n height: ${size[1.5]};\n width: calc(100% + ${size[5]});\n }\n\n & svg {\n transform: rotate(180deg);\n }\n `,\n 'closeBtn-position-bottom': css`\n top: 0;\n right: ${size[3]};\n transform: translate(0, -100%);\n background-color: ${colors.darkGray[700]};\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[2]} ${size[2.5]} ${size[1.5]} ${size[2.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 'closeBtn-position-right': css`\n bottom: ${size[3]};\n left: 0;\n transform: translate(-100%, 0);\n background-color: ${colors.darkGray[700]};\n border-right: none;\n border-left: ${colors.darkGray[300]} 1px solid;\n border-top: ${colors.darkGray[300]} 1px solid;\n border-bottom: ${colors.darkGray[300]} 1px solid;\n border-radius: ${border.radius.sm} 0px 0px ${border.radius.sm};\n padding: ${size[2.5]} ${size[1]} ${size[2.5]} ${size[1.5]};\n\n &::after {\n content: ' ';\n position: absolute;\n left: 100%;\n height: calc(100% + ${size[5]});\n width: ${size[1.5]};\n }\n\n & svg {\n transform: rotate(-90deg);\n }\n `,\n 'closeBtn-position-left': css`\n bottom: ${size[3]};\n right: 0;\n transform: translate(100%, 0);\n background-color: ${colors.darkGray[700]};\n border-left: none;\n border-right: ${colors.darkGray[300]} 1px solid;\n border-top: ${colors.darkGray[300]} 1px solid;\n border-bottom: ${colors.darkGray[300]} 1px solid;\n border-radius: 0px ${border.radius.sm} ${border.radius.sm} 0px;\n padding: ${size[2.5]} ${size[1.5]} ${size[2.5]} ${size[1]};\n\n &::after {\n content: ' ';\n position: absolute;\n right: 100%;\n height: calc(100% + ${size[5]});\n width: ${size[1.5]};\n }\n\n & svg {\n transform: rotate(90deg);\n }\n `,\n queriesContainer: css`\n flex: 1 1 700px;\n background-color: ${colors.darkGray[700]};\n display: flex;\n flex-direction: column;\n `,\n dragHandle: css`\n position: absolute;\n transition: background-color 0.125s ease;\n &:hover {\n background-color: ${colors.gray[400]}${alpha[90]};\n }\n z-index: 4;\n `,\n 'dragHandle-position-top': css`\n bottom: 0;\n width: 100%;\n height: ${tokens.size[1]};\n cursor: ns-resize;\n `,\n 'dragHandle-position-bottom': css`\n top: 0;\n width: 100%;\n height: ${tokens.size[1]};\n cursor: ns-resize;\n `,\n 'dragHandle-position-right': css`\n left: 0;\n width: ${tokens.size[1]};\n height: 100%;\n cursor: ew-resize;\n `,\n 'dragHandle-position-left': css`\n right: 0;\n width: ${tokens.size[1]};\n height: 100%;\n cursor: ew-resize;\n `,\n row: css`\n display: flex;\n justify-content: space-between;\n padding: ${tokens.size[2.5]} ${tokens.size[3]};\n gap: ${tokens.size[4]};\n border-bottom: ${colors.darkGray[500]} 1px solid;\n align-items: center;\n & > button {\n padding: 0;\n background: transparent;\n border: none;\n display: flex;\n flex-direction: column;\n }\n `,\n logo: css`\n cursor: pointer;\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.lg};\n font-weight: ${font.weight.extrabold};\n line-height: ${font.lineHeight.sm};\n white-space: nowrap;\n `,\n queryFlavorLogo: css`\n font-weight: ${font.weight.semibold};\n font-size: ${font.size.sm};\n background: linear-gradient(to right, #dd524b, #e9a03b);\n background-clip: text;\n line-height: ${font.lineHeight.xs};\n -webkit-text-fill-color: transparent;\n white-space: nowrap;\n `,\n queryStatusContainer: css`\n display: flex;\n gap: ${tokens.size[2]};\n height: min-content;\n `,\n queryStatusTag: css`\n display: flex;\n gap: ${tokens.size[1.5]};\n background: ${colors.darkGray[500]};\n border-radius: ${tokens.border.radius.md};\n font-size: ${font.size.sm};\n padding: ${tokens.size[1]};\n padding-left: ${tokens.size[2.5]};\n align-items: center;\n line-height: ${font.lineHeight.md};\n font-weight: ${font.weight.medium};\n border: none;\n user-select: none;\n position: relative;\n &:focus-visible {\n outline-offset: 2px;\n outline: 2px solid ${colors.blue[800]};\n }\n & span:nth-child(2) {\n color: ${colors.gray[300]}${alpha[80]};\n }\n `,\n statusTooltip: css`\n position: absolute;\n z-index: 1;\n background-color: ${colors.darkGray[500]};\n top: 100%;\n left: 50%;\n transform: translate(-50%, calc(${tokens.size[2]}));\n padding: ${tokens.size[0.5]} ${tokens.size[3]};\n border-radius: ${tokens.border.radius.md};\n font-size: ${font.size.sm};\n border: 2px solid ${colors.gray[600]};\n color: ${tokens.colors['gray'][300]};\n\n &::before {\n top: 0px;\n content: ' ';\n display: block;\n left: 50%;\n transform: translate(-50%, -100%);\n position: absolute;\n border-color: transparent transparent ${colors.gray[600]} transparent;\n border-style: solid;\n border-width: 7px;\n /* transform: rotate(180deg); */\n }\n\n &::after {\n top: 0px;\n content: ' ';\n display: block;\n left: 50%;\n transform: translate(-50%, calc(-100% + 2.5px));\n position: absolute;\n border-color: transparent transparent ${colors.darkGray[500]}\n transparent;\n border-style: solid;\n border-width: 7px;\n }\n `,\n selectedQueryRow: css`\n background-color: ${colors.darkGray[500]};\n `,\n queryStatusCount: css`\n padding: 0 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${colors.gray[400]};\n background-color: ${colors.darkGray[300]};\n border-radius: 3px;\n font-variant-numeric: tabular-nums;\n `,\n filtersContainer: css`\n display: flex;\n gap: ${tokens.size[2.5]};\n & > button {\n cursor: pointer;\n padding: ${tokens.size[1.5]} ${tokens.size[2.5]};\n padding-right: ${tokens.size[1.5]};\n border-radius: ${tokens.border.radius.md};\n background-color: ${colors.darkGray[400]};\n font-size: ${font.size.sm};\n display: flex;\n align-items: center;\n line-height: ${font.lineHeight.sm};\n gap: ${tokens.size[1.5]};\n max-width: 160px;\n border: 1px solid ${colors.darkGray[200]};\n &:focus-visible {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n }\n `,\n filterInput: css`\n padding: ${tokens.size[1.5]} ${tokens.size[2.5]};\n border-radius: ${tokens.border.radius.md};\n background-color: ${colors.darkGray[400]};\n display: flex;\n box-sizing: content-box;\n align-items: center;\n gap: ${tokens.size[1.5]};\n max-width: 160px;\n min-width: 100px;\n border: 1px solid ${colors.darkGray[200]};\n height: min-content;\n & > svg {\n width: ${tokens.size[3.5]};\n height: ${tokens.size[3.5]};\n }\n & input {\n font-size: ${font.size.sm};\n width: 100%;\n background-color: ${colors.darkGray[400]};\n border: none;\n padding: 0;\n line-height: ${font.lineHeight.sm};\n color: ${colors.gray[300]};\n &::placeholder {\n color: ${colors.gray[300]};\n }\n &:focus {\n outline: none;\n }\n }\n\n &:focus-within {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n filterSelect: css`\n padding: ${tokens.size[1.5]} ${tokens.size[2.5]};\n border-radius: ${tokens.border.radius.md};\n background-color: ${colors.darkGray[400]};\n display: flex;\n align-items: center;\n gap: ${tokens.size[1.5]};\n box-sizing: content-box;\n max-width: 160px;\n border: 1px solid ${colors.darkGray[200]};\n height: min-content;\n & > svg {\n width: ${tokens.size[3]};\n height: ${tokens.size[3]};\n }\n & > select {\n appearance: none;\n min-width: 100px;\n line-height: ${font.lineHeight.sm};\n font-size: ${font.size.sm};\n background-color: ${colors.darkGray[400]};\n border: none;\n &:focus {\n outline: none;\n }\n }\n &:focus-within {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n actionsContainer: css`\n display: flex;\n gap: ${tokens.size[2.5]};\n `,\n actionsBtn: css`\n border-radius: ${tokens.border.radius.md};\n background-color: ${colors.darkGray[400]};\n width: 2.125rem; // 34px\n height: 2.125rem; // 34px\n justify-content: center;\n display: flex;\n align-items: center;\n gap: ${tokens.size[1.5]};\n max-width: 160px;\n border: 1px solid ${colors.darkGray[200]};\n cursor: pointer;\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n & svg {\n width: ${tokens.size[4]};\n height: ${tokens.size[4]};\n }\n &:focus-visible {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n overflowQueryContainer: css`\n flex: 1;\n overflow-y: auto;\n & > div {\n display: flex;\n flex-direction: column;\n }\n `,\n queryRow: css`\n display: flex;\n align-items: center;\n padding: 0;\n background-color: inherit;\n border: none;\n cursor: pointer;\n &:focus-visible {\n outline-offset: -2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n &:hover .TSQDQueryHash {\n background-color: ${colors.darkGray[600]};\n }\n\n & .TSQDObserverCount {\n padding: 0 ${tokens.size[1]};\n user-select: none;\n min-width: ${tokens.size[8]};\n align-self: stretch !important;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: ${font.size.sm};\n font-weight: ${font.weight.medium};\n border-bottom: 1px solid ${colors.darkGray[700]};\n }\n & .TSQDQueryHash {\n user-select: text;\n font-size: ${font.size.sm};\n display: flex;\n align-items: center;\n min-height: ${tokens.size[8]};\n flex: 1;\n padding: ${tokens.size[1]} ${tokens.size[2]};\n font-family: 'Menlo', 'Fira Code', monospace !important;\n border-bottom: 1px solid ${colors.darkGray[400]};\n text-align: left;\n text-overflow: clip;\n word-break: break-word;\n }\n\n & .TSQDQueryDisabled {\n align-self: stretch;\n align-self: stretch !important;\n display: flex;\n align-items: center;\n padding: 0 ${tokens.size[3]};\n color: ${colors.gray[300]};\n background-color: ${colors.darkGray[600]};\n border-bottom: 1px solid ${colors.darkGray[400]};\n font-size: ${font.size.sm};\n }\n `,\n detailsContainer: css`\n flex: 1 1 700px;\n background-color: ${colors.darkGray[700]};\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n display: flex;\n `,\n detailsHeader: css`\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: ${colors.darkGray[600]};\n padding: ${tokens.size[2]} ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n font-size: ${font.size.sm};\n `,\n detailsBody: css`\n margin: ${tokens.size[2]} 0px ${tokens.size[3]} 0px;\n & > div {\n display: flex;\n align-items: stretch;\n padding: 0 ${tokens.size[2]};\n line-height: ${font.lineHeight.sm};\n justify-content: space-between;\n & > span {\n font-size: ${font.size.sm};\n }\n & > span:nth-child(2) {\n font-variant-numeric: tabular-nums;\n }\n }\n\n & > div:first-child {\n margin-bottom: ${tokens.size[2]};\n }\n\n & code {\n font-family: 'Menlo', 'Fira Code', monospace !important;\n margin: 0;\n font-size: ${font.size.sm};\n line-height: ${font.lineHeight.sm};\n }\n `,\n queryDetailsStatus: css`\n border: 1px solid ${colors.darkGray[200]};\n border-radius: ${tokens.border.radius.md};\n font-weight: ${font.weight.medium};\n padding: ${tokens.size[1]} ${tokens.size[2.5]};\n `,\n actionsBody: css`\n flex-wrap: wrap;\n margin: ${tokens.size[3]} 0px ${tokens.size[3]} 0px;\n display: flex;\n gap: ${tokens.size[2]};\n padding: 0px ${tokens.size[2]};\n & > button {\n font-size: ${font.size.sm};\n padding: ${tokens.size[2]} ${tokens.size[2]};\n display: flex;\n border-radius: ${tokens.border.radius.md};\n border: 1px solid ${colors.darkGray[400]};\n background-color: ${colors.darkGray[600]};\n align-items: center;\n gap: ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n line-height: ${font.lineHeight.sm};\n cursor: pointer;\n &:focus-visible {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n & > span {\n width: ${size[2]};\n height: ${size[2]};\n border-radius: ${tokens.border.radius.full};\n }\n }\n `,\n actionsSelect: css`\n font-size: ${font.size.sm};\n padding: ${tokens.size[2]} ${tokens.size[2]};\n display: flex;\n border-radius: ${tokens.border.radius.md};\n overflow: hidden;\n border: 1px solid ${colors.darkGray[400]};\n background-color: ${colors.darkGray[600]};\n align-items: center;\n gap: ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n line-height: ${font.lineHeight.sm};\n color: ${tokens.colors.red[400]};\n cursor: pointer;\n position: relative;\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n & > span {\n width: ${size[2]};\n height: ${size[2]};\n border-radius: ${tokens.border.radius.full};\n }\n &:focus-within {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n & select {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n appearance: none;\n background-color: transparent;\n border: none;\n color: transparent;\n outline: none;\n }\n\n & svg path {\n stroke: ${tokens.colors.red[400]} !important;\n }\n `,\n settingsMenu: css`\n position: absolute;\n top: calc(100% + ${tokens.size[2]});\n border-radius: ${tokens.border.radius.lg};\n border: 1px solid ${colors.gray[600]};\n right: 0;\n min-width: ${tokens.size[44]};\n background-color: ${colors.darkGray[400]};\n font-size: ${font.size.sm};\n color: ${colors.gray[500]};\n z-index: 2;\n `,\n settingsMenuHeader: css`\n padding: ${tokens.size[1.5]} ${tokens.size[2.5]};\n color: ${colors.gray[300]};\n font-weight: ${font.weight.medium};\n `,\n settingsMenuSection: css`\n border-top: 1px solid ${colors.gray[600]};\n display: flex;\n flex-direction: column;\n padding: ${tokens.size[1]} ${tokens.size[1]};\n\n & > button {\n cursor: pointer;\n background-color: transparent;\n border: none;\n padding: ${tokens.size[2]} ${tokens.size[1.5]};\n font-size: ${font.size.sm};\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: ${tokens.size[2]};\n border-radius: ${tokens.border.radius.md};\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n\n &:focus-visible {\n outline-offset: 2px;\n outline: 2px solid ${colors.blue[800]};\n }\n }\n\n & button:nth-child(4) svg {\n transform: rotate(-90deg);\n }\n\n & button:nth-child(3) svg {\n transform: rotate(90deg);\n }\n `,\n }\n}\n","export const loadFonts = () => {\n const link = document.createElement('link')\n link.href =\n 'https://fonts.googleapis.com/css2?family=Fira+Code&family=Inter:wght@100;200;300;400;500;600;700;800;900&family=Roboto&display=swap'\n link.rel = 'stylesheet'\n document.head.appendChild(link)\n}\n","import type {\n QueryClient,\n onlineManager as TonlineManager,\n} from '@tanstack/query-core'\nimport { DevtoolsComponent } from './Devtools'\nimport { render } from 'solid-js/web'\nimport type {\n DevtoolsButtonPosition,\n DevtoolsPosition,\n QueryDevtoolsProps,\n DevToolsErrorType,\n} from './Context'\nimport type { Signal } from 'solid-js'\nimport { createSignal } from 'solid-js'\n\nexport type { DevtoolsButtonPosition, DevtoolsPosition, DevToolsErrorType }\nexport interface TanstackQueryDevtoolsConfig extends QueryDevtoolsProps {}\n\nclass TanstackQueryDevtools {\n client: QueryClient\n onlineManager: typeof TonlineManager\n queryFlavor: string\n version: string\n isMounted = false\n buttonPosition: Signal<DevtoolsButtonPosition | undefined>\n position: Signal<DevtoolsPosition | undefined>\n initialIsOpen: Signal<boolean | undefined>\n errorTypes: Signal<DevToolsErrorType[] | undefined>\n dispose?: () => void\n\n constructor(config: TanstackQueryDevtoolsConfig) {\n const {\n client,\n queryFlavor,\n version,\n onlineManager,\n buttonPosition,\n position,\n initialIsOpen,\n errorTypes,\n } = config\n this.client = client\n this.queryFlavor = queryFlavor\n this.version = version\n this.onlineManager = onlineManager\n this.buttonPosition = createSignal(buttonPosition)\n this.position = createSignal(position)\n this.initialIsOpen = createSignal(initialIsOpen)\n this.errorTypes = createSignal(errorTypes)\n }\n\n setButtonPosition(position: DevtoolsButtonPosition) {\n this.buttonPosition[1](position)\n }\n\n setPosition(position: DevtoolsPosition) {\n this.position[1](position)\n }\n\n setInitialIsOpen(isOpen: boolean) {\n this.initialIsOpen[1](isOpen)\n }\n\n setErrorTypes(errorTypes: DevToolsErrorType[]) {\n this.errorTypes[1](errorTypes)\n }\n\n mount<T extends HTMLElement>(el: T) {\n if (this.isMounted) {\n throw new Error('Devtools is already mounted')\n }\n const dispose = render(() => {\n const [btnPosition] = this.buttonPosition\n const [pos] = this.position\n const [isOpen] = this.initialIsOpen\n const [errors] = this.errorTypes\n return (\n <DevtoolsComponent\n client={this.client}\n queryFlavor={this.queryFlavor}\n version={this.version}\n onlineManager={this.onlineManager}\n {...{\n get buttonPosition() {\n return btnPosition()\n },\n get position() {\n return pos()\n },\n get initialIsOpen() {\n return isOpen()\n },\n get errorTypes() {\n return errors()\n },\n }}\n />\n )\n }, el)\n this.isMounted = true\n this.dispose = dispose\n }\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}\n\nexport { TanstackQueryDevtools }\n"],"names":["sharedConfig","$PROXY","Symbol","$TRACK","signalOptions","equals","a","b","runEffects","runQueue","STALE","PENDING","UNOWNED","owned","cleanups","context","owner","Owner","Transition","Listener","Updates","Effects","ExecCount","transPending","setTransPending","createSignal","createRoot","fn","detachedOwner","listener","unowned","length","root","undefined","updateFn","untrack","cleanNode","runUpdates","value","options","s","observers","observerSlots","comparator","Object","assign","readSignal","bind","writeSignal","createRenderEffect","updateComputation","createComputation","createEffect","runUserEffects","c","user","push","createMemo","onMount","onCleanup","startTransition","l","o","Promise","resolve","then","useContext","ctx","lookup","id","defaultValue","children","memo","resolveChildren","toArray","Array","isArray","runningTransition","this","sources","state","updates","lookUpstream","sSlot","sourceSlots","node","isComp","current","i","TransitionRunning","running","disposed","has","tState","pure","markDownstream","Error","time","nextValue","err","forEach","updatedAt","handleError","runComputation","init","runTop","suspense","inFallback","effects","ancestors","wait","res","e","completeUpdates","queue","userLength","ignore","source","pop","index","obs","n","castError","key","results","result","apply","createProvider","props","FALLBACK","dispose","d","createComponent","Comp","trueFn","propTraps","get","_","property","receiver","set","deleteProperty","getOwnPropertyDescriptor","configurable","enumerable","ownKeys","keys","resolveSource","mergeProps","proxy","Proxy","v","Set","target","descriptors","getOwnPropertyDescriptors","defineProperty","For","fallback","list","mapFn","items","mapped","disposers","len","indexes","j","newItems","newIndices","newIndicesNext","temp","tempdisposers","tempIndexes","start","end","newEnd","item","newLen","disposer","mapper","Math","min","Map","slice","mapArray","each","Index","signals","indexArray","Show","strictEqual","keyed","condition","when","child","Switch","conditions","evalConditions","conds","cond","Match","Properties","ChildProperties","Aliases","create","className","htmlFor","PropAliases","class","formnovalidate","ismap","nomodule","playsinline","readonly","DelegatedEvents","SVGNamespace","xlink","xml","$$EVENTS","template","html","check","isSVG","t","document","createElement","innerHTML","split","content","firstChild","delegateEvents","eventNames","window","name","add","addEventListener","eventHandler","setAttribute","removeAttribute","handler","delegate","handlerFn","call","spread","skipChildren","prevProps","insertExpression","ref","skipRef","prop","assignProp","use","element","arg","insert","parent","accessor","marker","initial","toggleClassKey","classNames","trim","nameLen","classList","toggle","prev","isCE","isProp","isChildProp","nodeStyle","style","cssText","removeProperty","setProperty","classKeys","prevKeys","classValue","removeEventListener","toLowerCase","h","nodeName","includes","replace","w","toUpperCase","ns","indexOf","namespace","removeAttributeNS","setAttributeNS","type","composedPath","registry","done","_$HY","disabled","data","cancelBubble","_$host","parentNode","host","unwrapArray","childNodes","cleaned","nodeType","remove","multi","toString","createTextNode","cleanChildren","textContent","array","currentArray","normalizeIncomingArray","appendNodes","bLength","aEnd","bEnd","aStart","bStart","after","nextSibling","map","insertBefore","sequence","replaceChild","reconcileArrays","Node","appendChild","console","warn","normalized","unwrap","dynamic","String","replacement","inserted","el","isParent","characterMap","chars","join","allAccents","RegExp","rankings","CASE_SENSITIVE_EQUAL","EQUAL","STARTS_WITH","WORD_STARTS_WITH","CONTAINS","ACRONYM","MATCHES","NO_MATCH","rankItem","_options$threshold","threshold","accessors","rank","getMatchRanking","rankedValue","accessorIndex","accessorThreshold","passed","valuesToRank","allValues","J","attributes","getAccessorAttributes","itemValues","getItemValues","I","itemValue","getAllValuesToRank","rankingInfo","rankValue","newRank","minRanking","maxRanking","testString","stringToRank","prepareValueForComparison","startsWith","string","acronym","wordInString","splitByHyphenWord","substr","getAcronym","matchingInOrderCharCount","charNumber","findMatchingCharacter","matchChar","getRanking","spreadPercentage","inOrderPercentage","firstIndex","getClosenessRanking","_ref","keepDiacritics","match","accessorFn","defaultKeyAttributes","Infinity","StyleSheet","_this","_insertTag","tag","before","tags","insertionPoint","prepend","container","isSpeedy","speedy","process","env","NODE_ENV","ctr","nonce","_proto","prototype","hydrate","nodes","rule","createStyleElement","isImportRule","charCodeAt","_alreadyInsertedOrderInsensitiveRule","error","sheet","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","test","flush","removeChild","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","abs","from","fromCharCode","pattern","indexof","search","charat","begin","strlen","sizeof","append","line","column","position","character","characters","return","copy","next","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rules","rulesets","pseudo","points","declarations","offset","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","k","x","y","z","serialize","callback","output","stringify","middleware","collection","memoize","cache","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","WeakMap","compat","isImplicitRule","parentRules","removeLabel","isIgnoringComment","nullifyElement","incorrectImportAlarm","isPrependedWithRegularRules","prefix","hash","func","isBrowser","getServerStylisCache","ret","defaultStylisPlugins","combine","exec","createCache","ssrStyles","querySelectorAll","getAttribute","head","stylisPlugins","_insert","nodesToHydrate","attrib","omnipresentPlugins","unsafePseudoClasses","commentContainer","unsafePseudoClass","createUnsafeSelectorsAlarm","currentSheet","finalizingPlugins","serializer","concat","selector","serialized","shouldCache","styles","_finalizingPlugins","_serializer","serverStylisCache","registered","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","ILLEGAL_ESCAPE_SEQUENCE_ERROR","UNDEFINED_AS_OBJECT_KEY_ERROR","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","contentValuePattern","contentValues","oldProcessStyleValue","msPattern","hyphenPattern","hyphenatedCache","charAt","processed","str","_char","noComponentSelectorMessage","handleInterpolation","mergedProps","interpolation","__emotion_styles","anim","obj","_key","interpolated","_i","createStringFromObject","previousCursor","matched","replaced","fakeVarName","cached","sourceMapPattern","labelPattern","serializeStyles","args","stringMode","sourceMap","strings","raw","lastIndex","identifierName","hashString","getRegisteredStyles","registeredStyles","rawClassName","insertStyles","isStringTag","registerStyles","stylesForSSR","maybeStyles","insertWithoutScoping","merge","css","classnames","cls","toAdd","_createEmotion","_len","arguments","cx","_len4","_key4","injectGlobal","_len3","_key3","keyframes","_len2","_key2","animation","ids","createEmotion","ShadowVariants","xs","sm","md","lg","xl","inner","none","getShadow","variant","color","tokens","colors","inherit","transparent","black","white","neutral","darkGray","gray","blue","green","red","yellow","purple","teal","pink","cyan","alpha","font","weight","thin","extralight","light","normal","medium","semibold","bold","extrabold","breakpoints","border","radius","full","shadow","zIndices","hide","auto","base","docked","dropdown","sticky","banner","overlay","modal","popover","skipLink","toast","tooltip","DoubleIndexedKV","keyToValue","valueToKey","getByKey","getByValue","clear","Registry","generateIdentifier","kv","getIdentifier","getValue","ClassRegistry","_super","classToAllowedProps","__extends","allowProps","register","getAllowedProps","find","record","predicate","values","hasOwnProperty","valuesOfObj","valuesNotNever","run","entries","_a","_b","__read","arr","findArr","CustomTransformerRegistry","transfomers","transformer","findApplicable","isApplicable","findByName","isUndefined","payload","isPlainObject","getPrototypeOf","constructor","isEmptyObject","isMap","isSet","isSymbol","getType","isNaNValue","isNaN","isPrimitive","isBoolean","isNull","isNumber","isString","escapeKey","stringifyPath","path","parsePath","segment","char","lastSegment","simpleTransformation","annotation","transform","untransform","simpleRules","BigInt","Date","valueOf","toISOString","superJson","baseError","message","allowedErrorProps","stack","regex","body","lastIndexOf","flags","Number","URL","compositeTransformation","symbolRule","symbolRegistry","description","constructorToName","Int8Array","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","Uint8ClampedArray","reduce","ctor","typedArrayRule","ArrayBuffer","isView","DataView","__spreadArray","isInstanceOfRegisteredClass","potentialClass","classRegistry","classRule","clazz","allowedProps","__assign","customRule","customTransformerRegistry","deserialize","compositeRules","transformValue","applicableCompositeRule","applicableSimpleRule","simpleRulesByAnnotation","untransformValue","json","transformation","getNthKey","validatePath","getDeep","object","row","keyOfRow","setDeep","lastKey","oldValue","newValue","keyToRow","newKey","traverse","tree","walker","origin","nodeValue","subtree","applyValueAnnotations","plain","annotations","identities","objectsInThisPath","existingSet","addIdentity","isDeep","transformed_1","transformedValue","transformationResult","transformed","innerAnnotations","recursiveResult","getOwnPropertyNames","getOwnPropertySymbols","carry","newVal","originalObject","includeNonenumerable","propType","propertyIsEnumerable","writable","nonenumerable","SuperJSON","meta","rootEqualityPaths","equalityAnnotations","paths","sort","shortestPath","identicalPaths","referentialEqualities","identicalObjectPath","other","identicalPath","applyReferentialEqualityAnnotations","JSON","defaultInstance","registerClass","registerSymbol","registerCustom","allowErrorProps","getQueryStatusLabel","query","fetchStatus","getObserversCount","isStale","displayValue","beautify","getStatusRank","q","dateSort","dataUpdatedAt","sortFns","status","queryHash","localeCompare","convertRemToPixels","rem","parseFloat","getComputedStyle","documentElement","fontSize","Search","_tmpl$","cloneNode","ChevronDown","_tmpl$2","ArrowUp","_tmpl$3","ArrowDown","_tmpl$4","Wifi","_tmpl$5","Offline","_el$6","_tmpl$6","_$effect","_p$","_v$","_v$2","_$setAttribute","Settings","_tmpl$7","Copier","_tmpl$8","CopiedCopier","_tmpl$9","ErrorCopier","_tmpl$10","TanstackLogo","_tmpl$11","Key","by","keyFn","dispose2","fb","delete","addNewItem","setIndex","setItem","getItem","save","keyArray","Expander","getStyles","_el$","_$className","expander","expanded","CopyButton","copyState","setCopyState","_el$2","_$addEventListener","navigator","clipboard","writeText","superjson","setTimeout","_$insert","_$createComponent","copyButton","isIterable","iterator","Explorer","setExpanded","defaultExpanded","label","expandedPages","setExpandedPages","subEntries","val","subEntryPages","chunkArray","_el$3","_el$4","_el$5","_el$8","_el$9","$$click","old","expanderButton","_v$4","info","_v$3","copyable","_el$10","entry","subEntry","_el$11","_el$15","_el$16","_el$17","_el$18","_el$22","_el$23","filter","_el$24","_v$6","_v$5","_el$12","_el$13","_el$14","_$delegateEvents","QueryDevtoolsContext","Provider","createContext","client","onlineManager","queryFlavor","version","useQueryDevtoolsContext","noop","createListTransition","initSource","onChange","prevSet","appear","exiting","WeakSet","toRemove","setToRemove","isTransitionPending","finishRemoved","exitMethod","els","p","handleRemoved","splice","elsToRemove","sourceList","added","removed","unchanged","nextSet","nothingChanged","isNonNullable","filterNonNullable","access","asArray","defaultElementPredicate","Element","getResolvedElements","resolveElements","serverPredicate","children2","nextFrame","requestAnimationFrame","enterTransition","events","enterClasses","enterActiveClasses","enterToClasses","onBeforeEnter","onEnter","onAfterEnter","endTransition","queueMicrotask","exitTransition","exitClasses","exitActiveClasses","exitToClasses","onBeforeExit","onExit","onAfterExit","TransitionGroup","enterActiveClass","enterClass","enterToClass","exitActiveClass","exitClass","exitToClass","moveClasses","moveClass","createClassnames","classes","toMove","isConnected","HTMLElement","SVGElement","rect","getBoundingClientRect","moved","newRect","dX","left","dY","top","transitionDuration","offsetHeight","endTransition2","propertyName","storage","createLocalStorage","setError","throw","apis","api","globalThis","localStorage","Boolean","store","deserializer","sync","ev","changed","storageArea","removeItem","filteredValue","apiKey","toJSON","addValue","getAll","serializeCookieOptions","toUTCString","cookieStorage","_cookies","storageEvent","Event","url","dispatchEvent","expires","found","createResizeObserver","targets","onResize","previousMap","observe","unobserve","observer","ResizeObserver","disconnect","makeResizeObserver","contentRect","width","round","height","refs","handleAdded","currLength","prevLength","prevEl","currEl","handleDiffArray","secondBreakpoint","POSITION","DEFAULT_SORT_FN_NAME","selectedQueryHash","setSelectedQueryHash","panelWidth","setPanelWidth","DevtoolsComponent","Devtools","link","href","rel","loadFonts","localStore","setLocalStore","buttonPosition","isOpen","open","initialIsOpen","DevtoolsPanel","devtoolsBtn","isResizing","setIsResizing","sortOrder","offline","setOffline","settingsOpen","setSettingsOpen","sortFn","getQueryCache","queryCount","createSubscribeToQueryCacheBatcher","queryCache","queries","deps","prevInput","defer","prevValue","input","on","curr","filtered","handleDragStart","event","panelElement","currentTarget","parentElement","startX","clientX","startY","clientY","newSize","minHeight","minWidth","runDrag","moveEvent","preventDefault","valToAdd","newWidth","unsub","queriesContainerRef","panelRef","setupQueryCacheSubscription","setDevtoolsPosition","pos","_el$7","_el$19","_el$20","_el$25","_el$26","_el$38","_el$39","_$use","$$mousedown","QueryStatusCount","$$input","_el$40","setOnline","_c$","_$memo","_el$27","_el$28","_el$29","_el$30","_el$31","_el$32","_el$33","_el$34","_el$35","_el$36","_el$37","settingsMenu","settingsMenuHeader","settingsMenuSection","QueryRow","QueryDetails","panel","_v$7","dragHandle","_v$8","closeBtn","_v$9","queriesContainer","_v$10","_v$11","logo","_v$12","tanstackLogo","_v$13","queryFlavorLogo","_v$14","_v$15","filtersContainer","_v$16","filterInput","_v$17","filterSelect","_v$18","_v$19","_v$20","actionsContainer","_v$21","actionsBtn","_v$22","_v$23","_v$24","_v$25","_v$26","overflowQueryContainer","queryState","queryKey","isDisabled","observerCount","getQueryStatusColor","_el$42","_el$43","_el$44","_v$27","queryRow","selectedQueryRow","_v$28","_v$29","stale","fresh","fetching","paused","inactive","_el$46","QueryStatus","queryStatusContainer","tagRef","mouseOver","setMouseOver","focused","setFocused","showLabel","_el$47","_tmpl$12","_el$49","_el$51","_$spread","_$mergeProps","queryStatusTag","_el$48","statusTooltip","_el$50","_v$30","_v$31","queryStatusCount","queryClient","restoringLoading","setRestoringLoading","errorTypes","activeQuery","activeQueryFresh","activeQueryState","activeQueryStateData","statusLabel","queryStatus","getQueryStatusColorByLabel","handleRefetch","promise","fetch","catch","triggerError","errorType","initializer","__previousQueryOptions","setState","fetchMeta","_el$52","_tmpl$15","_el$53","_el$54","_el$55","_el$56","_el$57","_el$58","_el$59","_el$61","_el$64","_el$65","_el$66","_el$67","_el$68","_el$69","_el$70","_el$71","_el$72","_el$73","_el$74","_el$75","_el$84","_el$85","_el$86","_el$87","toLocaleTimeString","invalidateQueries","resetQueries","cancelRefetch","activeQueryVal","queryFn","gcTime","_el$76","_tmpl$13","_el$77","_el$78","_v$32","_v$33","_el$79","_tmpl$14","_el$80","_el$82","_el$88","_tmpl$16","actionsSelect","_v$35","_v$36","_v$34","detailsContainer","_v$38","detailsHeader","_v$39","detailsBody","_v$40","queryDetailsStatus","_v$41","_v$42","actionsBody","_v$43","_v$44","_v$45","_v$46","_v$47","_v$48","_v$49","_v$50","_v$51","_v$52","_v$53","_v$54","_v$37","signalsMap","subscribe","setter","equalityCheck","setValue","config","_defineProperty","setButtonPosition","setPosition","setInitialIsOpen","setErrorTypes","mount","isMounted","code","render","btnPosition","errors","_self$","unmount"],"mappings":"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MlF,EAAOoE,aAAa9O,EAAM4K,QACrF+E,GAAW,CACpB,CACD,MAAMjF,EAAOoE,aAAa9O,EAAM4K,GACjC,MAAO,CAAC5K,EACV;;;;;;;;;;sGC1dA,MAAM8P,GAAe,CACnB,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,KACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,KACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,KACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,KACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,I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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../node_modules/.pnpm/solid-js@1.6.16/node_modules/solid-js/dist/solid.js","../../../../node_modules/.pnpm/solid-js@1.6.16/node_modules/solid-js/web/dist/web.js","../../../../node_modules/.pnpm/@tanstack+match-sorter-utils@8.8.4/node_modules/@tanstack/match-sorter-utils/build/lib/index.mjs","../../../../node_modules/.pnpm/@emotion+sheet@1.2.1/node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Enum.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Utility.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Tokenizer.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Parser.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Serializer.js","../../../../node_modules/.pnpm/stylis@4.1.4/node_modules/stylis/src/Middleware.js","../../../../node_modules/.pnpm/@emotion+memoize@0.8.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../../node_modules/.pnpm/@emotion+cache@11.10.8/node_modules/@emotion/cache/dist/emotion-cache.esm.js","../../../../node_modules/.pnpm/@emotion+weak-memoize@0.3.0/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js","../../../../node_modules/.pnpm/@emotion+unitless@0.8.0/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../../node_modules/.pnpm/@emotion+serialize@1.1.1/node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../../../../node_modules/.pnpm/@emotion+hash@0.9.0/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../../../node_modules/.pnpm/@emotion+utils@1.2.0/node_modules/@emotion/utils/dist/emotion-utils.esm.js","../../../../node_modules/.pnpm/@emotion+css@11.10.8/node_modules/@emotion/css/create-instance/dist/emotion-css-create-instance.esm.js","../../../../node_modules/.pnpm/@emotion+css@11.10.8/node_modules/@emotion/css/dist/emotion-css.esm.js","../../src/theme.ts","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/double-indexed-kv.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/registry.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/class-registry.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/util.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/custom-transformer-registry.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/is.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/pathstringifier.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/transformer.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/accessDeep.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/plainer.js","../../../../node_modules/.pnpm/is-what@4.1.8/node_modules/is-what/dist/index.es.js","../../../../node_modules/.pnpm/copy-anything@3.0.2/node_modules/copy-anything/dist/index.es.js","../../../../node_modules/.pnpm/superjson@1.12.3/node_modules/superjson/dist/esm/index.js","../../src/utils.tsx","../../src/icons/index.tsx","../../../../node_modules/.pnpm/@solid-primitives+keyed@1.2.0_solid-js@1.6.16/node_modules/@solid-primitives/keyed/dist/index.js","../../src/Explorer.tsx","../../src/Context.ts","../../../../node_modules/.pnpm/@solid-primitives+transition-group@1.0.2_solid-js@1.6.16/node_modules/@solid-primitives/transition-group/dist/index.js","../../../../node_modules/.pnpm/@solid-primitives+utils@6.1.0_solid-js@1.6.16/node_modules/@solid-primitives/utils/dist/chunk/G4OJDHGR.js","../../../../node_modules/.pnpm/@solid-primitives+refs@1.0.2_solid-js@1.6.16/node_modules/@solid-primitives/refs/dist/index.js","../../../../node_modules/.pnpm/solid-transition-group@0.2.2_solid-js@1.6.16/node_modules/solid-transition-group/dist/index.js","../../../../node_modules/.pnpm/@solid-primitives+storage@1.3.9_solid-js@1.6.16/node_modules/@solid-primitives/storage/dist/index.js","../../../../node_modules/.pnpm/@solid-primitives+resize-observer@2.0.15_solid-js@1.6.16/node_modules/@solid-primitives/resize-observer/dist/index.js","../../src/Devtools.tsx","../../src/fonts.ts","../../src/index.tsx"],"sourcesContent":["let taskIdCounter = 1,\n isCallbackScheduled = false,\n isPerformingWork = false,\n taskQueue = [],\n currentTask = null,\n shouldYieldToHost = null,\n yieldInterval = 5,\n deadline = 0,\n maxYieldInterval = 300,\n scheduleCallback = null,\n scheduledCallback = null;\nconst maxSigned31BitInt = 1073741823;\nfunction setupScheduler() {\n const channel = new MessageChannel(),\n port = channel.port2;\n scheduleCallback = () => port.postMessage(null);\n channel.port1.onmessage = () => {\n if (scheduledCallback !== null) {\n const currentTime = performance.now();\n deadline = currentTime + yieldInterval;\n const hasTimeRemaining = true;\n try {\n const hasMoreWork = scheduledCallback(hasTimeRemaining, currentTime);\n if (!hasMoreWork) {\n scheduledCallback = null;\n } else port.postMessage(null);\n } catch (error) {\n port.postMessage(null);\n throw error;\n }\n }\n };\n if (navigator && navigator.scheduling && navigator.scheduling.isInputPending) {\n const scheduling = navigator.scheduling;\n shouldYieldToHost = () => {\n const currentTime = performance.now();\n if (currentTime >= deadline) {\n if (scheduling.isInputPending()) {\n return true;\n }\n return currentTime >= maxYieldInterval;\n } else {\n return false;\n }\n };\n } else {\n shouldYieldToHost = () => performance.now() >= deadline;\n }\n}\nfunction enqueue(taskQueue, task) {\n function findIndex() {\n let m = 0;\n let n = taskQueue.length - 1;\n while (m <= n) {\n const k = n + m >> 1;\n const cmp = task.expirationTime - taskQueue[k].expirationTime;\n if (cmp > 0) m = k + 1;else if (cmp < 0) n = k - 1;else return k;\n }\n return m;\n }\n taskQueue.splice(findIndex(), 0, task);\n}\nfunction requestCallback(fn, options) {\n if (!scheduleCallback) setupScheduler();\n let startTime = performance.now(),\n timeout = maxSigned31BitInt;\n if (options && options.timeout) timeout = options.timeout;\n const newTask = {\n id: taskIdCounter++,\n fn,\n startTime,\n expirationTime: startTime + timeout\n };\n enqueue(taskQueue, newTask);\n if (!isCallbackScheduled && !isPerformingWork) {\n isCallbackScheduled = true;\n scheduledCallback = flushWork;\n scheduleCallback();\n }\n return newTask;\n}\nfunction cancelCallback(task) {\n task.fn = null;\n}\nfunction flushWork(hasTimeRemaining, initialTime) {\n isCallbackScheduled = false;\n isPerformingWork = true;\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } finally {\n currentTask = null;\n isPerformingWork = false;\n }\n}\nfunction workLoop(hasTimeRemaining, initialTime) {\n let currentTime = initialTime;\n currentTask = taskQueue[0] || null;\n while (currentTask !== null) {\n if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {\n break;\n }\n const callback = currentTask.fn;\n if (callback !== null) {\n currentTask.fn = null;\n const didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n callback(didUserCallbackTimeout);\n currentTime = performance.now();\n if (currentTask === taskQueue[0]) {\n taskQueue.shift();\n }\n } else taskQueue.shift();\n currentTask = taskQueue[0] || null;\n }\n return currentTask !== null;\n}\n\nconst sharedConfig = {};\nfunction setHydrateContext(context) {\n sharedConfig.context = context;\n}\nfunction nextHydrateContext() {\n return {\n ...sharedConfig.context,\n id: `${sharedConfig.context.id}${sharedConfig.context.count++}-`,\n count: 0\n };\n}\n\nconst equalFn = (a, b) => a === b;\nconst $PROXY = Symbol(\"solid-proxy\");\nconst $TRACK = Symbol(\"solid-track\");\nconst $DEVCOMP = Symbol(\"solid-dev-component\");\nconst signalOptions = {\n equals: equalFn\n};\nlet ERROR = null;\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 Scheduler = null;\nlet ExternalSourceFactory = null;\nlet Listener = null;\nlet Updates = null;\nlet Effects = null;\nlet ExecCount = 0;\nconst [transPending, setTransPending] = /*@__PURE__*/createSignal(false);\nfunction createRoot(fn, detachedOwner) {\n const listener = Listener,\n owner = Owner,\n unowned = fn.length === 0,\n root = unowned ? UNOWNED : {\n owned: null,\n cleanups: null,\n context: null,\n owner: detachedOwner === undefined ? owner : detachedOwner\n },\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 || undefined\n };\n const setter = value => {\n if (typeof value === \"function\") {\n if (Transition && Transition.running && Transition.sources.has(s)) value = value(s.tValue);else value = value(s.value);\n }\n return writeSignal(s, value);\n };\n return [readSignal.bind(s), setter];\n}\nfunction createComputed(fn, value, options) {\n const c = createComputation(fn, value, true, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createRenderEffect(fn, value, options) {\n const c = createComputation(fn, value, false, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createEffect(fn, value, options) {\n runEffects = runUserEffects;\n const c = createComputation(fn, value, false, STALE),\n s = SuspenseContext && lookup(Owner, SuspenseContext.id);\n if (s) c.suspense = s;\n c.user = true;\n Effects ? Effects.push(c) : updateComputation(c);\n}\nfunction createReaction(onInvalidate, options) {\n let fn;\n const c = createComputation(() => {\n fn ? fn() : untrack(onInvalidate);\n fn = undefined;\n }, undefined, false, 0),\n s = SuspenseContext && lookup(Owner, SuspenseContext.id);\n if (s) c.suspense = s;\n c.user = true;\n return tracking => {\n fn = tracking;\n updateComputation(c);\n };\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 || undefined;\n if (Scheduler && Transition && Transition.running) {\n c.tState = STALE;\n Updates.push(c);\n } else updateComputation(c);\n return readSignal.bind(c);\n}\nfunction createResource(pSource, pFetcher, pOptions) {\n let source;\n let fetcher;\n let options;\n if (arguments.length === 2 && typeof pFetcher === \"object\" || arguments.length === 1) {\n source = true;\n fetcher = pSource;\n options = pFetcher || {};\n } else {\n source = pSource;\n fetcher = pFetcher;\n options = pOptions || {};\n }\n let pr = null,\n initP = NO_INIT,\n id = null,\n loadedUnderTransition = false,\n scheduled = false,\n resolved = (\"initialValue\" in options),\n dynamic = typeof source === \"function\" && createMemo(source);\n const contexts = new Set(),\n [value, setValue] = (options.storage || createSignal)(options.initialValue),\n [error, setError] = createSignal(undefined),\n [track, trigger] = createSignal(undefined, {\n equals: false\n }),\n [state, setState] = createSignal(resolved ? \"ready\" : \"unresolved\");\n if (sharedConfig.context) {\n id = `${sharedConfig.context.id}${sharedConfig.context.count++}`;\n let v;\n if (options.ssrLoadFrom === \"initial\") initP = options.initialValue;else if (sharedConfig.load && (v = sharedConfig.load(id))) initP = v[0];\n }\n function loadEnd(p, v, error, key) {\n if (pr === p) {\n pr = null;\n resolved = true;\n if ((p === initP || v === initP) && options.onHydrated) queueMicrotask(() => options.onHydrated(key, {\n value: v\n }));\n initP = NO_INIT;\n if (Transition && p && loadedUnderTransition) {\n Transition.promises.delete(p);\n loadedUnderTransition = false;\n runUpdates(() => {\n Transition.running = true;\n completeLoad(v, error);\n }, false);\n } else completeLoad(v, error);\n }\n return v;\n }\n function completeLoad(v, err) {\n runUpdates(() => {\n if (err === undefined) setValue(() => v);\n setState(err !== undefined ? \"errored\" : \"ready\");\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 && lookup(Owner, SuspenseContext.id),\n v = value(),\n err = error();\n if (err !== undefined && !pr) throw err;\n if (Listener && !Listener.user && c) {\n createComputed(() => {\n track();\n if (pr) {\n if (c.resolved && Transition && loadedUnderTransition) Transition.promises.add(pr);else if (!contexts.has(c)) {\n c.increment();\n contexts.add(c);\n }\n }\n });\n }\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 loadedUnderTransition = Transition && Transition.running;\n if (lookup == null || lookup === false) {\n loadEnd(pr, untrack(value));\n return;\n }\n if (Transition && pr) Transition.promises.delete(pr);\n const p = initP !== NO_INIT ? initP : untrack(() => fetcher(lookup, {\n value: value(),\n refetching\n }));\n if (typeof p !== \"object\" || !(p && \"then\" in p)) {\n loadEnd(pr, p, undefined, lookup);\n return p;\n }\n pr = p;\n scheduled = true;\n queueMicrotask(() => scheduled = false);\n runUpdates(() => {\n setState(resolved ? \"refreshing\" : \"pending\");\n trigger();\n }, false);\n return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e), lookup));\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));else load(false);\n return [read, {\n refetch: load,\n mutate: setValue\n }];\n}\nfunction createDeferred(source, options) {\n let t,\n timeout = options ? options.timeoutMs : undefined;\n const node = createComputation(() => {\n if (!t || !t.fn) t = requestCallback(() => setDeferred(() => node.value), timeout !== undefined ? {\n timeout\n } : undefined);\n return source();\n }, undefined, true);\n const [deferred, setDeferred] = createSignal(node.value, options);\n updateComputation(node);\n setDeferred(() => node.value);\n return deferred;\n}\nfunction createSelector(source, fn = equalFn, options) {\n const subs = new Map();\n const node = createComputation(p => {\n const v = source();\n for (const [key, val] of subs.entries()) if (fn(key, v) !== fn(key, p)) {\n for (const c of val.values()) {\n c.state = STALE;\n if (c.pure) Updates.push(c);else Effects.push(c);\n }\n }\n return v;\n }, undefined, true, STALE);\n updateComputation(node);\n return key => {\n const listener = Listener;\n if (listener) {\n let l;\n if (l = subs.get(key)) l.add(listener);else subs.set(key, l = new Set([listener]));\n onCleanup(() => {\n l.delete(listener);\n !l.size && subs.delete(key);\n });\n }\n return fn(key, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value);\n };\n}\nfunction batch(fn) {\n return runUpdates(fn, false);\n}\nfunction untrack(fn) {\n if (Listener === null) return fn();\n const listener = Listener;\n Listener = null;\n try {\n return fn();\n } finally {\n Listener = listener;\n }\n}\nfunction on(deps, fn, options) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let defer = options && options.defer;\n return prevValue => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++) input[i] = deps[i]();\n } else input = deps();\n if (defer) {\n defer = false;\n return undefined;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\nfunction onMount(fn) {\n createEffect(() => untrack(fn));\n}\nfunction onCleanup(fn) {\n if (Owner === null) ;else if (Owner.cleanups === null) Owner.cleanups = [fn];else Owner.cleanups.push(fn);\n return fn;\n}\nfunction onError(fn) {\n ERROR || (ERROR = Symbol(\"error\"));\n if (Owner === null) ;else if (Owner.context === null) Owner.context = {\n [ERROR]: [fn]\n };else if (!Owner.context[ERROR]) Owner.context[ERROR] = [fn];else Owner.context[ERROR].push(fn);\n}\nfunction getListener() {\n return Listener;\n}\nfunction getOwner() {\n return Owner;\n}\nfunction runWithOwner(o, fn) {\n const prev = Owner;\n const prevListener = Listener;\n Owner = o;\n Listener = null;\n try {\n return runUpdates(fn, true);\n } catch (err) {\n handleError(err);\n } finally {\n Owner = prev;\n Listener = prevListener;\n }\n}\nfunction enableScheduling(scheduler = requestCallback) {\n Scheduler = scheduler;\n}\nfunction startTransition(fn) {\n if (Transition && Transition.running) {\n fn();\n return Transition.done;\n }\n const l = Listener;\n const o = Owner;\n return Promise.resolve().then(() => {\n Listener = l;\n Owner = o;\n let t;\n if (Scheduler || SuspenseContext) {\n t = Transition || (Transition = {\n sources: new Set(),\n effects: [],\n promises: new Set(),\n disposed: new Set(),\n queue: new Set(),\n running: true\n });\n t.done || (t.done = new Promise(res => t.resolve = res));\n t.running = true;\n }\n runUpdates(fn, false);\n Listener = Owner = null;\n return t ? t.done : undefined;\n });\n}\nfunction useTransition() {\n return [transPending, startTransition];\n}\nfunction resumeEffects(e) {\n Effects.push.apply(Effects, e);\n e.length = 0;\n}\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 ctx;\n return (ctx = lookup(Owner, context.id)) !== undefined ? ctx : context.defaultValue;\n}\nfunction children(fn) {\n const children = createMemo(fn);\n const memo = createMemo(() => resolveChildren(children()));\n memo.toArray = () => {\n const c = memo();\n return Array.isArray(c) ? c : c != null ? [c] : [];\n };\n return memo;\n}\nlet SuspenseContext;\nfunction getSuspenseContext() {\n return SuspenseContext || (SuspenseContext = createContext({}));\n}\nfunction enableExternalSource(factory) {\n if (ExternalSourceFactory) {\n const oldFactory = ExternalSourceFactory;\n ExternalSourceFactory = (fn, trigger) => {\n const oldSource = oldFactory(fn, trigger);\n const source = factory(x => oldSource.track(x), trigger);\n return {\n track: x => source.track(x),\n dispose() {\n source.dispose();\n oldSource.dispose();\n }\n };\n };\n } else {\n ExternalSourceFactory = factory;\n }\n}\nfunction readSignal() {\n const runningTransition = Transition && Transition.running;\n if (this.sources && (!runningTransition && this.state || runningTransition && this.tState)) {\n if (!runningTransition && this.state === STALE || runningTransition && this.tState === STALE) updateComputation(this);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 if (runningTransition && Transition.sources.has(this)) return this.tValue;\n return this.value;\n}\nfunction writeSignal(node, value, isComp) {\n let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value;\n if (!node.comparator || !node.comparator(current, value)) {\n if (Transition) {\n const TransitionRunning = Transition.running;\n if (TransitionRunning || !isComp && Transition.sources.has(node)) {\n Transition.sources.add(node);\n node.tValue = value;\n }\n if (!TransitionRunning) node.value = value;\n } else 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)) continue;\n if (TransitionRunning && !o.tState || !TransitionRunning && !o.state) {\n if (o.pure) Updates.push(o);else Effects.push(o);\n if (o.observers) markDownstream(o);\n }\n if (TransitionRunning) o.tState = STALE;else o.state = STALE;\n }\n if (Updates.length > 10e5) {\n Updates = [];\n if (false) ;\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 owner = Owner,\n listener = Listener,\n time = ExecCount;\n Listener = Owner = node;\n runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time);\n if (Transition && !Transition.running && Transition.sources.has(node)) {\n queueMicrotask(() => {\n runUpdates(() => {\n Transition && (Transition.running = true);\n Listener = Owner = node;\n runComputation(node, node.tValue, time);\n Listener = Owner = null;\n }, false);\n });\n }\n Listener = listener;\n Owner = owner;\n}\nfunction runComputation(node, value, time) {\n let nextValue;\n try {\n nextValue = node.fn(value);\n } catch (err) {\n if (node.pure) {\n if (Transition && Transition.running) {\n node.tState = STALE;\n node.tOwned && node.tOwned.forEach(cleanNode);\n node.tOwned = undefined;\n } else {\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 }\n if (!node.updatedAt || node.updatedAt <= time) {\n if (node.updatedAt != null && \"observers\" in node) {\n writeSignal(node, nextValue, true);\n } else if (Transition && Transition.running && node.pure) {\n Transition.sources.add(node);\n node.tValue = 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: state,\n updatedAt: null,\n owned: null,\n sources: null,\n sourceSlots: null,\n cleanups: null,\n value: init,\n owner: Owner,\n context: null,\n pure\n };\n if (Transition && Transition.running) {\n c.state = 0;\n c.tState = state;\n }\n if (Owner === null) ;else if (Owner !== UNOWNED) {\n if (Transition && Transition.running && Owner.pure) {\n if (!Owner.tOwned) Owner.tOwned = [c];else Owner.tOwned.push(c);\n } else {\n if (!Owner.owned) Owner.owned = [c];else Owner.owned.push(c);\n }\n }\n if (ExternalSourceFactory) {\n const [track, trigger] = createSignal(undefined, {\n equals: false\n });\n const ordinary = ExternalSourceFactory(c.fn, trigger);\n onCleanup(() => ordinary.dispose());\n const triggerInTransition = () => startTransition(trigger).then(() => inTransition.dispose());\n const inTransition = ExternalSourceFactory(c.fn, triggerInTransition);\n c.fn = x => {\n track();\n return Transition && Transition.running ? inTransition.track(x) : ordinary.track(x);\n };\n }\n return c;\n}\nfunction runTop(node) {\n const runningTransition = Transition && Transition.running;\n if (!runningTransition && node.state === 0 || runningTransition && node.tState === 0) return;\n if (!runningTransition && node.state === PENDING || runningTransition && node.tState === 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 (runningTransition && Transition.disposed.has(node)) return;\n if (!runningTransition && node.state || runningTransition && node.tState) ancestors.push(node);\n }\n for (let i = ancestors.length - 1; i >= 0; i--) {\n node = ancestors[i];\n if (runningTransition) {\n let top = node,\n prev = ancestors[i + 1];\n while ((top = top.owner) && top !== prev) {\n if (Transition.disposed.has(top)) return;\n }\n }\n if (!runningTransition && node.state === STALE || runningTransition && node.tState === STALE) {\n updateComputation(node);\n } else if (!runningTransition && node.state === PENDING || runningTransition && node.tState === 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;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 if (Scheduler && Transition && Transition.running) scheduleQueue(Updates);else runQueue(Updates);\n Updates = null;\n }\n if (wait) return;\n let res;\n if (Transition) {\n if (!Transition.promises.size && !Transition.queue.size) {\n const sources = Transition.sources;\n const disposed = Transition.disposed;\n Effects.push.apply(Effects, Transition.effects);\n res = Transition.resolve;\n for (const e of Effects) {\n \"tState\" in e && (e.state = e.tState);\n delete e.tState;\n }\n Transition = null;\n runUpdates(() => {\n for (const d of disposed) cleanNode(d);\n for (const v of sources) {\n v.value = v.tValue;\n if (v.owned) {\n for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);\n }\n if (v.tOwned) v.owned = v.tOwned;\n delete v.tValue;\n delete v.tOwned;\n v.tState = 0;\n }\n setTransPending(false);\n }, false);\n } else if (Transition.running) {\n Transition.running = false;\n Transition.effects.push.apply(Transition.effects, Effects);\n Effects = null;\n setTransPending(true);\n return;\n }\n }\n const e = Effects;\n Effects = null;\n if (e.length) runUpdates(() => runEffects(e), false);\n if (res) res();\n}\nfunction runQueue(queue) {\n for (let i = 0; i < queue.length; i++) runTop(queue[i]);\n}\nfunction scheduleQueue(queue) {\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i];\n const tasks = Transition.queue;\n if (!tasks.has(item)) {\n tasks.add(item);\n Scheduler(() => {\n tasks.delete(item);\n runUpdates(() => {\n Transition.running = true;\n runTop(item);\n }, false);\n Transition && (Transition.running = false);\n });\n }\n }\n}\nfunction runUserEffects(queue) {\n let i,\n userLength = 0;\n for (i = 0; i < queue.length; i++) {\n const e = queue[i];\n if (!e.user) runTop(e);else queue[userLength++] = e;\n }\n if (sharedConfig.context) setHydrateContext();\n for (i = 0; i < userLength; i++) runTop(queue[i]);\n}\nfunction lookUpstream(node, ignore) {\n const runningTransition = Transition && Transition.running;\n if (runningTransition) node.tState = 0;else 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 if (!runningTransition && source.state === STALE || runningTransition && source.tState === STALE) {\n if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) runTop(source);\n } else if (!runningTransition && source.state === PENDING || runningTransition && source.tState === PENDING) lookUpstream(source, ignore);\n }\n }\n}\nfunction markDownstream(node) {\n const runningTransition = Transition && Transition.running;\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n if (!runningTransition && !o.state || runningTransition && !o.tState) {\n if (runningTransition) o.tState = PENDING;else o.state = PENDING;\n if (o.pure) Updates.push(o);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(),\n index = node.sourceSlots.pop(),\n obs = source.observers;\n if (obs && obs.length) {\n const n = obs.pop(),\n 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 (Transition && Transition.running && node.pure) {\n if (node.tOwned) {\n for (i = 0; i < node.tOwned.length; i++) cleanNode(node.tOwned[i]);\n delete node.tOwned;\n }\n reset(node, true);\n } else if (node.owned) {\n for (i = 0; i < node.owned.length; i++) cleanNode(node.owned[i]);\n node.owned = null;\n }\n if (node.cleanups) {\n for (i = 0; i < node.cleanups.length; i++) node.cleanups[i]();\n node.cleanups = null;\n }\n if (Transition && Transition.running) node.tState = 0;else node.state = 0;\n node.context = null;\n}\nfunction reset(node, top) {\n if (!top) {\n node.tState = 0;\n Transition.disposed.add(node);\n }\n if (node.owned) {\n for (let i = 0; i < node.owned.length; i++) reset(node.owned[i]);\n }\n}\nfunction castError(err) {\n if (err instanceof Error || typeof err === \"string\") return err;\n return new Error(\"Unknown error\");\n}\nfunction runErrors(fns, err) {\n for (const f of fns) f(err);\n}\nfunction handleError(err) {\n err = castError(err);\n const fns = ERROR && lookup(Owner, ERROR);\n if (!fns) throw err;\n if (Effects) Effects.push({\n fn() {\n runErrors(fns, err);\n },\n state: STALE\n });else runErrors(fns, err);\n}\nfunction lookup(owner, key) {\n return owner ? owner.context && owner.context[key] !== undefined ? owner.context[key] : lookup(owner.owner, key) : undefined;\n}\nfunction resolveChildren(children) {\n if (typeof children === \"function\" && !children.length) return resolveChildren(children());\n if (Array.isArray(children)) {\n const results = [];\n for (let i = 0; i < children.length; i++) {\n const result = resolveChildren(children[i]);\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results;\n }\n return children;\n}\nfunction createProvider(id, options) {\n return function provider(props) {\n let res;\n createRenderEffect(() => res = untrack(() => {\n Owner.context = {\n [id]: props.value\n };\n return children(() => props.children);\n }), undefined);\n return res;\n };\n}\n\nfunction observable(input) {\n return {\n subscribe(observer) {\n if (!(observer instanceof Object) || observer == null) {\n throw new TypeError(\"Expected the observer to be an object.\");\n }\n const handler = typeof observer === \"function\" ? observer : observer.next && observer.next.bind(observer);\n if (!handler) {\n return {\n unsubscribe() {}\n };\n }\n const dispose = createRoot(disposer => {\n createEffect(() => {\n const v = input();\n untrack(() => handler(v));\n });\n return disposer;\n });\n if (getOwner()) onCleanup(dispose);\n return {\n unsubscribe() {\n dispose();\n }\n };\n },\n [Symbol.observable || \"@@observable\"]() {\n return this;\n }\n };\n}\nfunction from(producer) {\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n if (\"subscribe\" in producer) {\n const unsub = producer.subscribe(v => set(() => v));\n onCleanup(() => \"unsubscribe\" in unsub ? unsub.unsubscribe() : unsub());\n } else {\n const clean = producer(set);\n onCleanup(clean);\n }\n return s;\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 = [],\n mapped = [],\n disposers = [],\n len = 0,\n indexes = mapFn.length > 1 ? [] : null;\n onCleanup(() => dispose(disposers));\n return () => {\n let newItems = list() || [],\n i,\n j;\n newItems[$TRACK];\n return untrack(() => {\n let newLen = newItems.length,\n newIndices,\n newIndicesNext,\n temp,\n tempdisposers,\n tempIndexes,\n start,\n end,\n newEnd,\n 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 }\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 = 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 === undefined ? -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 !== undefined && 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 indexArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n signals = [],\n len = 0,\n i;\n onCleanup(() => dispose(disposers));\n return () => {\n const newItems = list() || [];\n newItems[$TRACK];\n return untrack(() => {\n if (newItems.length === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n signals = [];\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 return mapped;\n }\n if (items[0] === FALLBACK) {\n disposers[0]();\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n }\n for (i = 0; i < newItems.length; i++) {\n if (i < items.length && items[i] !== newItems[i]) {\n signals[i](() => newItems[i]);\n } else if (i >= items.length) {\n mapped[i] = createRoot(mapper);\n }\n }\n for (; i < items.length; i++) {\n disposers[i]();\n }\n len = signals.length = disposers.length = newItems.length;\n items = newItems.slice(0);\n return mapped = mapped.slice(0, len);\n });\n function mapper(disposer) {\n disposers[i] = disposer;\n const [s, set] = createSignal(newItems[i]);\n signals[i] = set;\n return mapFn(s, i);\n }\n };\n}\n\nlet hydrationEnabled = false;\nfunction enableHydration() {\n hydrationEnabled = true;\n}\nfunction createComponent(Comp, props) {\n if (hydrationEnabled) {\n if (sharedConfig.context) {\n const c = sharedConfig.context;\n setHydrateContext(nextHydrateContext());\n const r = untrack(() => Comp(props || {}));\n setHydrateContext(c);\n return r;\n }\n }\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 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 (proxy) {\n return new Proxy({\n get(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n const v = resolveSource(sources[i])[property];\n if (v !== undefined) 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++) keys.push(...Object.keys(resolveSource(sources[i])));\n return [...new Set(keys)];\n }\n }, propTraps);\n }\n const target = {};\n for (let i = sources.length - 1; i >= 0; i--) {\n if (sources[i]) {\n const descriptors = Object.getOwnPropertyDescriptors(sources[i]);\n for (const key in descriptors) {\n if (key in target) continue;\n Object.defineProperty(target, key, {\n enumerable: true,\n get() {\n for (let i = sources.length - 1; i >= 0; i--) {\n const v = (sources[i] || {})[key];\n if (v !== undefined) return v;\n }\n }\n });\n }\n }\n }\n return target;\n}\nfunction splitProps(props, ...keys) {\n const blocked = new Set(keys.flat());\n if ($PROXY in props) {\n const res = keys.map(k => {\n return new Proxy({\n get(property) {\n return k.includes(property) ? props[property] : undefined;\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 }, propTraps);\n });\n res.push(new Proxy({\n get(property) {\n return blocked.has(property) ? undefined : 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 }, propTraps));\n return res;\n }\n const descriptors = Object.getOwnPropertyDescriptors(props);\n keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));\n return keys.map(k => {\n const clone = {};\n for (let i = 0; i < k.length; i++) {\n const key = k[i];\n if (!(key in props)) continue;\n Object.defineProperty(clone, key, descriptors[key] ? descriptors[key] : {\n get() {\n return props[key];\n },\n set() {\n return true;\n },\n enumerable: true\n });\n }\n return clone;\n });\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 (p || (p = fn())).then(mod => {\n setHydrateContext(ctx);\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(() => (Comp = comp()) && untrack(() => {\n if (false) ;\n if (!ctx) 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 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 ? `${ctx.id}${ctx.count++}` : `cl-${counter++}`;\n}\n\nfunction For(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(mapArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Index(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(indexArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Show(props) {\n let strictEqual = false;\n const keyed = props.keyed;\n const condition = createMemo(() => props.when, undefined, {\n equals: (a, b) => strictEqual ? a === b : !a === !b\n });\n return createMemo(() => {\n const c = condition();\n if (c) {\n const child = props.children;\n const fn = typeof child === \"function\" && child.length > 0;\n strictEqual = keyed || fn;\n return fn ? untrack(() => child(c)) : child;\n }\n return props.fallback;\n }, undefined, undefined);\n}\nfunction Switch(props) {\n let strictEqual = false;\n let keyed = false;\n const equals = (a, b) => a[0] === b[0] && (strictEqual ? a[1] === b[1] : !a[1] === !b[1]) && a[2] === b[2];\n const conditions = children(() => props.children),\n evalConditions = createMemo(() => {\n let conds = conditions();\n if (!Array.isArray(conds)) conds = [conds];\n for (let i = 0; i < conds.length; i++) {\n const c = conds[i].when;\n if (c) {\n keyed = !!conds[i].keyed;\n return [i, c, conds[i]];\n }\n }\n return [-1];\n }, undefined, {\n equals\n });\n return createMemo(() => {\n const [index, when, cond] = evalConditions();\n if (index < 0) return props.fallback;\n const c = cond.children;\n const fn = typeof c === \"function\" && c.length > 0;\n strictEqual = keyed || fn;\n return fn ? untrack(() => c(when)) : c;\n }, undefined, undefined);\n}\nfunction Match(props) {\n return props;\n}\nlet Errors;\nfunction resetErrorBoundaries() {\n Errors && [...Errors].forEach(fn => fn());\n}\nfunction ErrorBoundary(props) {\n let err;\n let v;\n if (sharedConfig.context && sharedConfig.load && (v = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count))) err = v[0];\n const [errored, setErrored] = createSignal(err, undefined);\n Errors || (Errors = new Set());\n Errors.add(setErrored);\n onCleanup(() => Errors.delete(setErrored));\n return createMemo(() => {\n let e;\n if (e = errored()) {\n const f = props.fallback;\n const res = typeof f === \"function\" && f.length ? untrack(() => f(e, () => setErrored())) : f;\n onError(setErrored);\n return res;\n }\n onError(setErrored);\n return props.children;\n }, undefined, undefined);\n}\n\nconst suspenseListEquals = (a, b) => a.showContent === b.showContent && a.showFallback === b.showFallback;\nconst SuspenseListContext = createContext();\nfunction SuspenseList(props) {\n let [wrapper, setWrapper] = createSignal(() => ({\n inFallback: false\n })),\n show;\n const listContext = useContext(SuspenseListContext);\n const [registry, setRegistry] = createSignal([]);\n if (listContext) {\n show = listContext.register(createMemo(() => wrapper()().inFallback));\n }\n const resolved = createMemo(prev => {\n const reveal = props.revealOrder,\n tail = props.tail,\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {},\n reg = registry(),\n reverse = reveal === \"backwards\";\n if (reveal === \"together\") {\n const all = reg.every(inFallback => !inFallback());\n const res = reg.map(() => ({\n showContent: all && showContent,\n showFallback\n }));\n res.inFallback = !all;\n return res;\n }\n let stop = false;\n let inFallback = prev.inFallback;\n const res = [];\n for (let i = 0, len = reg.length; i < len; i++) {\n const n = reverse ? len - i - 1 : i,\n s = reg[n]();\n if (!stop && !s) {\n res[n] = {\n showContent,\n showFallback\n };\n } else {\n const next = !stop;\n if (next) inFallback = true;\n res[n] = {\n showContent: next,\n showFallback: !tail || next && tail === \"collapsed\" ? showFallback : false\n };\n stop = true;\n }\n }\n if (!stop) inFallback = false;\n res.inFallback = inFallback;\n return res;\n }, {\n inFallback: false\n });\n setWrapper(() => resolved);\n return createComponent(SuspenseListContext.Provider, {\n value: {\n register: inFallback => {\n let index;\n setRegistry(registry => {\n index = registry.length;\n return [...registry, inFallback];\n });\n return createMemo(() => resolved()[index], undefined, {\n equals: suspenseListEquals\n });\n }\n },\n get children() {\n return props.children;\n }\n });\n}\nfunction Suspense(props) {\n let counter = 0,\n show,\n ctx,\n p,\n flicker,\n error;\n const [inFallback, setFallback] = createSignal(false),\n SuspenseContext = getSuspenseContext(),\n store = {\n increment: () => {\n if (++counter === 1) setFallback(true);\n },\n decrement: () => {\n if (--counter === 0) setFallback(false);\n },\n inFallback,\n effects: [],\n resolved: false\n },\n owner = getOwner();\n if (sharedConfig.context && sharedConfig.load) {\n const key = sharedConfig.context.id + sharedConfig.context.count;\n let ref = sharedConfig.load(key);\n if (ref && (p = ref[0]) && p !== \"$$f\") {\n if (typeof p !== \"object\" || !(\"then\" in p)) p = Promise.resolve(p);\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n flicker = s;\n p.then(err => {\n if (err || sharedConfig.done) {\n err && (error = err);\n return set();\n }\n sharedConfig.gather(key);\n setHydrateContext(ctx);\n set();\n setHydrateContext();\n });\n }\n }\n const listContext = useContext(SuspenseListContext);\n if (listContext) show = listContext.register(store.inFallback);\n let dispose;\n onCleanup(() => dispose && dispose());\n return createComponent(SuspenseContext.Provider, {\n value: store,\n get children() {\n return createMemo(() => {\n if (error) throw error;\n ctx = sharedConfig.context;\n if (flicker) {\n flicker();\n return flicker = undefined;\n }\n if (ctx && p === \"$$f\") setHydrateContext();\n const rendered = createMemo(() => props.children);\n return createMemo(prev => {\n const inFallback = store.inFallback(),\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {};\n if ((!inFallback || p && p !== \"$$f\") && showContent) {\n store.resolved = true;\n dispose && dispose();\n dispose = ctx = p = undefined;\n resumeEffects(store.effects);\n return rendered();\n }\n if (!showFallback) return;\n if (dispose) return prev;\n return createRoot(disposer => {\n dispose = disposer;\n if (ctx) {\n setHydrateContext({\n id: ctx.id + \"f\",\n count: 0\n });\n ctx = undefined;\n }\n return props.fallback;\n }, owner);\n });\n });\n }\n });\n}\n\nlet DEV;\n\nexport { $DEVCOMP, $PROXY, $TRACK, DEV, ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, batch, cancelCallback, children, createComponent, createComputed, createContext, createDeferred, createEffect, createMemo, createReaction, createRenderEffect, createResource, createRoot, createSelector, createSignal, createUniqueId, enableExternalSource, enableHydration, enableScheduling, equalFn, from, getListener, getOwner, indexArray, lazy, mapArray, mergeProps, observable, on, onCleanup, onError, onMount, requestCallback, resetErrorBoundaries, runWithOwner, sharedConfig, splitProps, startTransition, untrack, useContext, useTransition };\n","import { createRoot, createRenderEffect, sharedConfig, untrack, enableHydration, createMemo, createSignal, onMount, onCleanup, splitProps, $DEVCOMP } from 'solid-js';\nexport { ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, createComponent, createRenderEffect as effect, getOwner, createMemo as memo, mergeProps, untrack } from 'solid-js';\n\nconst booleans = [\"allowfullscreen\", \"async\", \"autofocus\", \"autoplay\", \"checked\", \"controls\", \"default\", \"disabled\", \"formnovalidate\", \"hidden\", \"indeterminate\", \"ismap\", \"loop\", \"multiple\", \"muted\", \"nomodule\", \"novalidate\", \"open\", \"playsinline\", \"readonly\", \"required\", \"reversed\", \"seamless\", \"selected\"];\nconst Properties = /*#__PURE__*/new Set([\"className\", \"value\", \"readOnly\", \"formNoValidate\", \"isMap\", \"noModule\", \"playsInline\", ...booleans]);\nconst ChildProperties = /*#__PURE__*/new Set([\"innerHTML\", \"textContent\", \"innerText\", \"children\"]);\nconst Aliases = /*#__PURE__*/Object.assign(Object.create(null), {\n className: \"class\",\n htmlFor: \"for\"\n});\nconst PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {\n class: \"className\",\n formnovalidate: \"formNoValidate\",\n ismap: \"isMap\",\n nomodule: \"noModule\",\n playsinline: \"playsInline\",\n readonly: \"readOnly\"\n});\nconst DelegatedEvents = /*#__PURE__*/new Set([\"beforeinput\", \"click\", \"dblclick\", \"contextmenu\", \"focusin\", \"focusout\", \"input\", \"keydown\", \"keyup\", \"mousedown\", \"mousemove\", \"mouseout\", \"mouseover\", \"mouseup\", \"pointerdown\", \"pointermove\", \"pointerout\", \"pointerover\", \"pointerup\", \"touchend\", \"touchmove\", \"touchstart\"]);\nconst SVGElements = /*#__PURE__*/new Set([\n\"altGlyph\", \"altGlyphDef\", \"altGlyphItem\", \"animate\", \"animateColor\", \"animateMotion\", \"animateTransform\", \"circle\", \"clipPath\", \"color-profile\", \"cursor\", \"defs\", \"desc\", \"ellipse\", \"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feImage\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\", \"filter\", \"font\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"foreignObject\", \"g\", \"glyph\", \"glyphRef\", \"hkern\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"metadata\", \"missing-glyph\", \"mpath\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\",\n\"set\", \"stop\",\n\"svg\", \"switch\", \"symbol\", \"text\", \"textPath\",\n\"tref\", \"tspan\", \"use\", \"view\", \"vkern\"]);\nconst SVGNamespace = {\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\"\n};\nconst DOMElements = /*#__PURE__*/new Set([\"html\", \"base\", \"head\", \"link\", \"meta\", \"style\", \"title\", \"body\", \"address\", \"article\", \"aside\", \"footer\", \"header\", \"main\", \"nav\", \"section\", \"body\", \"blockquote\", \"dd\", \"div\", \"dl\", \"dt\", \"figcaption\", \"figure\", \"hr\", \"li\", \"ol\", \"p\", \"pre\", \"ul\", \"a\", \"abbr\", \"b\", \"bdi\", \"bdo\", \"br\", \"cite\", \"code\", \"data\", \"dfn\", \"em\", \"i\", \"kbd\", \"mark\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"small\", \"span\", \"strong\", \"sub\", \"sup\", \"time\", \"u\", \"var\", \"wbr\", \"area\", \"audio\", \"img\", \"map\", \"track\", \"video\", \"embed\", \"iframe\", \"object\", \"param\", \"picture\", \"portal\", \"source\", \"svg\", \"math\", \"canvas\", \"noscript\", \"script\", \"del\", \"ins\", \"caption\", \"col\", \"colgroup\", \"table\", \"tbody\", \"td\", \"tfoot\", \"th\", \"thead\", \"tr\", \"button\", \"datalist\", \"fieldset\", \"form\", \"input\", \"label\", \"legend\", \"meter\", \"optgroup\", \"option\", \"output\", \"progress\", \"select\", \"textarea\", \"details\", \"dialog\", \"menu\", \"summary\", \"details\", \"slot\", \"template\", \"acronym\", \"applet\", \"basefont\", \"bgsound\", \"big\", \"blink\", \"center\", \"content\", \"dir\", \"font\", \"frame\", \"frameset\", \"hgroup\", \"image\", \"keygen\", \"marquee\", \"menuitem\", \"nobr\", \"noembed\", \"noframes\", \"plaintext\", \"rb\", \"rtc\", \"shadow\", \"spacer\", \"strike\", \"tt\", \"xmp\", \"a\", \"abbr\", \"acronym\", \"address\", \"applet\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"basefont\", \"bdi\", \"bdo\", \"bgsound\", \"big\", \"blink\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"center\", \"cite\", \"code\", \"col\", \"colgroup\", \"content\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"dir\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"font\", \"footer\", \"form\", \"frame\", \"frameset\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"image\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"nobr\", \"noembed\", \"noframes\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"plaintext\", \"portal\", \"pre\", \"progress\", \"q\", \"rb\", \"rp\", \"rt\", \"rtc\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"shadow\", \"slot\", \"small\", \"source\", \"spacer\", \"span\", \"strike\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"tt\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"xmp\", \"input\"]);\n\nfunction reconcileArrays(parentNode, a, b) {\n let bLength = b.length,\n aEnd = a.length,\n bEnd = bLength,\n aStart = 0,\n bStart = 0,\n after = a[aEnd - 1].nextSibling,\n 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 = 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,\n sequence = 1,\n 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}\n\nconst $$EVENTS = \"_$DX_DELEGATE\";\nfunction render(code, element, init, options = {}) {\n let disposer;\n createRoot(dispose => {\n disposer = dispose;\n element === document ? code() : insert(element, code(), element.firstChild ? null : undefined, init);\n }, options.owner);\n return () => {\n disposer();\n element.textContent = \"\";\n };\n}\nfunction template(html, check, isSVG) {\n const t = document.createElement(\"template\");\n t.innerHTML = html;\n if (check && t.innerHTML.split(\"<\").length - 1 !== check) throw `The browser resolved template HTML does not match JSX input:\\n${t.innerHTML}\\n\\n${html}. Is your HTML properly formed?`;\n let node = t.content.firstChild;\n if (isSVG) node = node.firstChild;\n return node;\n}\nfunction delegateEvents(eventNames, document = window.document) {\n const e = document[$$EVENTS] || (document[$$EVENTS] = 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 document.addEventListener(name, eventHandler);\n }\n }\n}\nfunction clearDelegatedEvents(document = window.document) {\n if (document[$$EVENTS]) {\n for (let name of document[$$EVENTS].keys()) document.removeEventListener(name, eventHandler);\n delete document[$$EVENTS];\n }\n}\nfunction setAttribute(node, name, value) {\n if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);\n}\nfunction setAttributeNS(node, namespace, name, value) {\n if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);\n}\nfunction className(node, value) {\n if (value == null) node.removeAttribute(\"class\");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);\n}\nfunction classList(node, value, prev = {}) {\n const classKeys = Object.keys(value || {}),\n 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],\n 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 = undefined);\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(() => prevProps.children = insertExpression(node, props.children, prevProps.children));\n }\n createRenderEffect(() => props.ref && props.ref(node));\n createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));\n return prevProps;\n}\nfunction dynamicProperty(props, key) {\n const src = props[key];\n Object.defineProperty(props, key, {\n get() {\n return src();\n },\n enumerable: true\n });\n return props;\n}\nfunction innerHTML(parent, content) {\n !sharedConfig.context && (parent.innerHTML = content);\n}\nfunction use(fn, element, arg) {\n return untrack(() => fn(element, arg));\n}\nfunction insert(parent, accessor, marker, initial) {\n if (marker !== undefined && !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);\n }\n }\n for (const prop in props) {\n if (prop === \"children\") {\n if (!skipChildren) insertExpression(node, props.children);\n continue;\n }\n const value = props[prop];\n prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef);\n }\n}\nfunction hydrate$1(code, element, options = {}) {\n sharedConfig.completed = globalThis._$HY.completed;\n sharedConfig.events = globalThis._$HY.events;\n sharedConfig.load = globalThis._$HY.load;\n sharedConfig.gather = root => gatherHydratable(element, root);\n sharedConfig.registry = new Map();\n sharedConfig.context = {\n id: options.renderId || \"\",\n count: 0\n };\n gatherHydratable(element, options.renderId);\n const dispose = render(code, element, [...element.childNodes], options);\n sharedConfig.context = null;\n return dispose;\n}\nfunction getNextElement(template) {\n let node, key;\n if (!sharedConfig.context || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {\n if (sharedConfig.context) console.warn(\"Unable to find DOM nodes for hydration key:\", key);\n if (!template) throw new Error(\"Unrecoverable Hydration Mismatch. No template for key: \" + key);\n return template.cloneNode(true);\n }\n if (sharedConfig.completed) sharedConfig.completed.add(node);\n sharedConfig.registry.delete(key);\n return node;\n}\nfunction getNextMatch(el, nodeName) {\n while (el && el.localName !== nodeName) el = el.nextSibling;\n return el;\n}\nfunction getNextMarker(start) {\n let end = start,\n count = 0,\n current = [];\n if (sharedConfig.context) {\n while (end) {\n if (end.nodeType === 8) {\n const v = end.nodeValue;\n if (v === \"#\") count++;else if (v === \"/\") {\n if (count === 0) return [end, current];\n count--;\n }\n }\n current.push(end);\n end = end.nextSibling;\n }\n }\n return [end, current];\n}\nfunction runHydrationEvents() {\n if (sharedConfig.events && !sharedConfig.events.queued) {\n queueMicrotask(() => {\n const {\n completed,\n events\n } = sharedConfig;\n events.queued = false;\n while (events.length) {\n const [el, e] = events[0];\n if (!completed.has(el)) return;\n eventHandler(e);\n events.shift();\n }\n });\n sharedConfig.events.queued = true;\n }\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++) node.classList.toggle(classNames[i], value);\n}\nfunction assignProp(node, prop, value, prev, isSVG, skipRef) {\n let isCE, isProp, isChildProp;\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);\n value && node.addEventListener(e, 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 ((isChildProp = ChildProperties.has(prop)) || !isSVG && (PropAliases[prop] || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes(\"-\"))) {\n if (prop === \"class\" || prop === \"className\") className(node, value);else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[PropAliases[prop] || prop] = value;\n } else {\n const ns = isSVG && prop.indexOf(\":\") > -1 && SVGNamespace[prop.split(\":\")[0]];\n if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);\n }\n return value;\n}\nfunction eventHandler(e) {\n const key = `$$${e.type}`;\n let node = e.composedPath && e.composedPath()[0] || e.target;\n if (e.target !== node) {\n Object.defineProperty(e, \"target\", {\n configurable: true,\n value: node\n });\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 while (node) {\n const handler = node[key];\n if (handler && !node.disabled) {\n const data = node[`${key}Data`];\n data !== undefined ? handler.call(node, data, e) : handler.call(node, e);\n if (e.cancelBubble) return;\n }\n node = node._$host || node.parentNode || node.host;\n }\n}\nfunction insertExpression(parent, value, current, marker, unwrapArray) {\n if (sharedConfig.context) {\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 === \"!\") node.remove();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,\n multi = marker !== undefined;\n parent = multi && current[0] && current[0].parentNode || parent;\n if (t === \"string\" || t === \"number\") {\n if (sharedConfig.context) return current;\n if (t === \"number\") value = value.toString();\n if (multi) {\n let node = current[0];\n if (node && node.nodeType === 3) {\n 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 (sharedConfig.context) 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 (sharedConfig.context) {\n if (!array.length) return current;\n for (let i = 0; i < array.length; i++) {\n if (array[i].parentNode) return current = array;\n }\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 instanceof Node) {\n if (sharedConfig.context && 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 console.warn(`Unrecognized value. Skipped inserting`, value);\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],\n prev = current && current[i];\n if (item instanceof Node) {\n normalized.push(item);\n } else if (item == null || item === true || item === false) ; else if (Array.isArray(item)) {\n dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;\n } else if ((typeof item) === \"function\") {\n if (unwrap) {\n while (typeof item === \"function\") item = item();\n dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;\n } else {\n normalized.push(item);\n dynamic = true;\n }\n } else {\n const value = String(item);\n if (prev && prev.nodeType === 3) {\n prev.data = value;\n 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 === undefined) 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) isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);else isParent && el.remove();\n } else inserted = true;\n }\n } else parent.insertBefore(node, marker);\n return [node];\n}\nfunction gatherHydratable(element, root) {\n const templates = element.querySelectorAll(`*[data-hk]`);\n for (let i = 0; i < templates.length; i++) {\n const node = templates[i];\n const key = node.getAttribute(\"data-hk\");\n if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key)) sharedConfig.registry.set(key, node);\n }\n}\nfunction getHydrationKey() {\n const hydrate = sharedConfig.context;\n return `${hydrate.id}${hydrate.count++}`;\n}\nfunction NoHydration(props) {\n return sharedConfig.context ? undefined : props.children;\n}\nfunction Hydration(props) {\n return props.children;\n}\nfunction voidFn() {}\n\nfunction throwInBrowser(func) {\n const err = new Error(`${func.name} is not supported in the browser, returning undefined`);\n console.error(err);\n}\nfunction renderToString(fn, options) {\n throwInBrowser(renderToString);\n}\nfunction renderToStringAsync(fn, options) {\n throwInBrowser(renderToStringAsync);\n}\nfunction renderToStream(fn, options) {\n throwInBrowser(renderToStream);\n}\nfunction ssr(template, ...nodes) {}\nfunction ssrElement(name, props, children, needsId) {}\nfunction ssrClassList(value) {}\nfunction ssrStyle(value) {}\nfunction ssrAttribute(key, value) {}\nfunction ssrHydrationKey() {}\nfunction resolveSSRNode(node) {}\nfunction escape(html) {}\nfunction ssrSpread(props, isSVG, skipChildren) {}\n\nconst isServer = false;\nconst isDev = false;\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}\nconst hydrate = (...args) => {\n enableHydration();\n return hydrate$1(...args);\n};\nfunction Portal(props) {\n const {\n useShadow\n } = props,\n marker = document.createTextNode(\"\"),\n mount = () => props.mount || document.body,\n content = createMemo(renderPortal());\n function renderPortal() {\n if (sharedConfig.context) {\n const [s, set] = createSignal(false);\n onMount(() => set(true));\n return () => s() && props.children;\n } else return () => props.children;\n }\n createRenderEffect(() => {\n const el = mount();\n if (el instanceof HTMLHeadElement) {\n const [clean, setClean] = createSignal(false);\n const cleanup = () => setClean(true);\n createRoot(dispose => insert(el, () => !clean() ? content() : dispose(), null));\n onCleanup(() => {\n if (sharedConfig.context) queueMicrotask(cleanup);else cleanup();\n });\n } else {\n const container = createElement(props.isSVG ? \"g\" : \"div\", props.isSVG),\n renderRoot = useShadow && container.attachShadow ? container.attachShadow({\n mode: \"open\"\n }) : container;\n Object.defineProperty(container, \"_$host\", {\n get() {\n return marker.parentNode;\n },\n configurable: true\n });\n insert(renderRoot, content);\n el.appendChild(container);\n props.ref && props.ref(container);\n onCleanup(() => el.removeChild(container));\n }\n });\n return marker;\n}\nfunction Dynamic(props) {\n const [p, others] = splitProps(props, [\"component\"]);\n const cached = createMemo(() => p.component);\n return createMemo(() => {\n const component = cached();\n switch (typeof component) {\n case \"function\":\n Object.assign(component, {\n [$DEVCOMP]: true\n });\n return untrack(() => component(others));\n case \"string\":\n const isSvg = SVGElements.has(component);\n const el = sharedConfig.context ? getNextElement() : createElement(component, isSvg);\n spread(el, others, isSvg);\n return el;\n }\n });\n}\n\nexport { Aliases, voidFn as Assets, ChildProperties, DOMElements, DelegatedEvents, Dynamic, Hydration, voidFn as HydrationScript, NoHydration, Portal, PropAliases, Properties, SVGElements, SVGNamespace, addEventListener, assign, classList, className, clearDelegatedEvents, delegateEvents, dynamicProperty, escape, voidFn as generateHydrationScript, voidFn as getAssets, getHydrationKey, getNextElement, getNextMarker, getNextMatch, hydrate, innerHTML, insert, isDev, isServer, render, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, runHydrationEvents, setAttribute, setAttributeNS, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, style, template, use, voidFn as useAssets };\n","/**\n * match-sorter-utils\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nconst characterMap = {\n À: 'A',\n Á: 'A',\n Â: 'A',\n Ã: 'A',\n Ä: 'A',\n Å: 'A',\n Ấ: 'A',\n Ắ: 'A',\n Ẳ: 'A',\n Ẵ: 'A',\n Ặ: 'A',\n Æ: 'AE',\n Ầ: 'A',\n Ằ: 'A',\n Ȃ: 'A',\n Ç: 'C',\n Ḉ: 'C',\n È: 'E',\n É: 'E',\n Ê: 'E',\n Ë: 'E',\n Ế: 'E',\n Ḗ: 'E',\n Ề: 'E',\n Ḕ: 'E',\n Ḝ: 'E',\n Ȇ: 'E',\n Ì: 'I',\n Í: 'I',\n Î: 'I',\n Ï: 'I',\n Ḯ: 'I',\n Ȋ: 'I',\n Ð: 'D',\n Ñ: 'N',\n Ò: 'O',\n Ó: 'O',\n Ô: 'O',\n Õ: 'O',\n Ö: 'O',\n Ø: 'O',\n Ố: 'O',\n Ṍ: 'O',\n Ṓ: 'O',\n Ȏ: 'O',\n Ù: 'U',\n Ú: 'U',\n Û: 'U',\n Ü: 'U',\n Ý: 'Y',\n à: 'a',\n á: 'a',\n â: 'a',\n ã: 'a',\n ä: 'a',\n å: 'a',\n ấ: 'a',\n ắ: 'a',\n ẳ: 'a',\n ẵ: 'a',\n ặ: 'a',\n æ: 'ae',\n ầ: 'a',\n ằ: 'a',\n ȃ: 'a',\n ç: 'c',\n ḉ: 'c',\n è: 'e',\n é: 'e',\n ê: 'e',\n ë: 'e',\n ế: 'e',\n ḗ: 'e',\n ề: 'e',\n ḕ: 'e',\n ḝ: 'e',\n ȇ: 'e',\n ì: 'i',\n í: 'i',\n î: 'i',\n ï: 'i',\n ḯ: 'i',\n ȋ: 'i',\n ð: 'd',\n ñ: 'n',\n ò: 'o',\n ó: 'o',\n ô: 'o',\n õ: 'o',\n ö: 'o',\n ø: 'o',\n ố: 'o',\n ṍ: 'o',\n ṓ: 'o',\n ȏ: 'o',\n ù: 'u',\n ú: 'u',\n û: 'u',\n ü: 'u',\n ý: 'y',\n ÿ: 'y',\n Ā: 'A',\n ā: 'a',\n Ă: 'A',\n ă: 'a',\n Ą: 'A',\n ą: 'a',\n Ć: 'C',\n ć: 'c',\n Ĉ: 'C',\n ĉ: 'c',\n Ċ: 'C',\n ċ: 'c',\n Č: 'C',\n č: 'c',\n C̆: 'C',\n c̆: 'c',\n Ď: 'D',\n ď: 'd',\n Đ: 'D',\n đ: 'd',\n Ē: 'E',\n ē: 'e',\n Ĕ: 'E',\n ĕ: 'e',\n Ė: 'E',\n ė: 'e',\n Ę: 'E',\n ę: 'e',\n Ě: 'E',\n ě: 'e',\n Ĝ: 'G',\n Ǵ: 'G',\n ĝ: 'g',\n ǵ: 'g',\n Ğ: 'G',\n ğ: 'g',\n Ġ: 'G',\n ġ: 'g',\n Ģ: 'G',\n ģ: 'g',\n Ĥ: 'H',\n ĥ: 'h',\n Ħ: 'H',\n ħ: 'h',\n Ḫ: 'H',\n ḫ: 'h',\n Ĩ: 'I',\n ĩ: 'i',\n Ī: 'I',\n ī: 'i',\n Ĭ: 'I',\n ĭ: 'i',\n Į: 'I',\n į: 'i',\n İ: 'I',\n ı: 'i',\n IJ: 'IJ',\n ij: 'ij',\n Ĵ: 'J',\n ĵ: 'j',\n Ķ: 'K',\n ķ: 'k',\n Ḱ: 'K',\n ḱ: 'k',\n K̆: 'K',\n k̆: 'k',\n Ĺ: 'L',\n ĺ: 'l',\n Ļ: 'L',\n ļ: 'l',\n Ľ: 'L',\n ľ: 'l',\n Ŀ: 'L',\n ŀ: 'l',\n Ł: 'l',\n ł: 'l',\n Ḿ: 'M',\n ḿ: 'm',\n M̆: 'M',\n m̆: 'm',\n Ń: 'N',\n ń: 'n',\n Ņ: 'N',\n ņ: 'n',\n Ň: 'N',\n ň: 'n',\n ʼn: 'n',\n N̆: 'N',\n n̆: 'n',\n Ō: 'O',\n ō: 'o',\n Ŏ: 'O',\n ŏ: 'o',\n Ő: 'O',\n ő: 'o',\n Œ: 'OE',\n œ: 'oe',\n P̆: 'P',\n p̆: 'p',\n Ŕ: 'R',\n ŕ: 'r',\n Ŗ: 'R',\n ŗ: 'r',\n Ř: 'R',\n ř: 'r',\n R̆: 'R',\n r̆: 'r',\n Ȓ: 'R',\n ȓ: 'r',\n Ś: 'S',\n ś: 's',\n Ŝ: 'S',\n ŝ: 's',\n Ş: 'S',\n Ș: 'S',\n ș: 's',\n ş: 's',\n Š: 'S',\n š: 's',\n Ţ: 'T',\n ţ: 't',\n ț: 't',\n Ț: 'T',\n Ť: 'T',\n ť: 't',\n Ŧ: 'T',\n ŧ: 't',\n T̆: 'T',\n t̆: 't',\n Ũ: 'U',\n ũ: 'u',\n Ū: 'U',\n ū: 'u',\n Ŭ: 'U',\n ŭ: 'u',\n Ů: 'U',\n ů: 'u',\n Ű: 'U',\n ű: 'u',\n Ų: 'U',\n ų: 'u',\n Ȗ: 'U',\n ȗ: 'u',\n V̆: 'V',\n v̆: 'v',\n Ŵ: 'W',\n ŵ: 'w',\n Ẃ: 'W',\n ẃ: 'w',\n X̆: 'X',\n x̆: 'x',\n Ŷ: 'Y',\n ŷ: 'y',\n Ÿ: 'Y',\n Y̆: 'Y',\n y̆: 'y',\n Ź: 'Z',\n ź: 'z',\n Ż: 'Z',\n ż: 'z',\n Ž: 'Z',\n ž: 'z',\n ſ: 's',\n ƒ: 'f',\n Ơ: 'O',\n ơ: 'o',\n Ư: 'U',\n ư: 'u',\n Ǎ: 'A',\n ǎ: 'a',\n Ǐ: 'I',\n ǐ: 'i',\n Ǒ: 'O',\n ǒ: 'o',\n Ǔ: 'U',\n ǔ: 'u',\n Ǖ: 'U',\n ǖ: 'u',\n Ǘ: 'U',\n ǘ: 'u',\n Ǚ: 'U',\n ǚ: 'u',\n Ǜ: 'U',\n ǜ: 'u',\n Ứ: 'U',\n ứ: 'u',\n Ṹ: 'U',\n ṹ: 'u',\n Ǻ: 'A',\n ǻ: 'a',\n Ǽ: 'AE',\n ǽ: 'ae',\n Ǿ: 'O',\n ǿ: 'o',\n Þ: 'TH',\n þ: 'th',\n Ṕ: 'P',\n ṕ: 'p',\n Ṥ: 'S',\n ṥ: 's',\n X́: 'X',\n x́: 'x',\n Ѓ: 'Г',\n ѓ: 'г',\n Ќ: 'К',\n ќ: 'к',\n A̋: 'A',\n a̋: 'a',\n E̋: 'E',\n e̋: 'e',\n I̋: 'I',\n i̋: 'i',\n Ǹ: 'N',\n ǹ: 'n',\n Ồ: 'O',\n ồ: 'o',\n Ṑ: 'O',\n ṑ: 'o',\n Ừ: 'U',\n ừ: 'u',\n Ẁ: 'W',\n ẁ: 'w',\n Ỳ: 'Y',\n ỳ: 'y',\n Ȁ: 'A',\n ȁ: 'a',\n Ȅ: 'E',\n ȅ: 'e',\n Ȉ: 'I',\n ȉ: 'i',\n Ȍ: 'O',\n ȍ: 'o',\n Ȑ: 'R',\n ȑ: 'r',\n Ȕ: 'U',\n ȕ: 'u',\n B̌: 'B',\n b̌: 'b',\n Č̣: 'C',\n č̣: 'c',\n Ê̌: 'E',\n ê̌: 'e',\n F̌: 'F',\n f̌: 'f',\n Ǧ: 'G',\n ǧ: 'g',\n Ȟ: 'H',\n ȟ: 'h',\n J̌: 'J',\n ǰ: 'j',\n Ǩ: 'K',\n ǩ: 'k',\n M̌: 'M',\n m̌: 'm',\n P̌: 'P',\n p̌: 'p',\n Q̌: 'Q',\n q̌: 'q',\n Ř̩: 'R',\n ř̩: 'r',\n Ṧ: 'S',\n ṧ: 's',\n V̌: 'V',\n v̌: 'v',\n W̌: 'W',\n w̌: 'w',\n X̌: 'X',\n x̌: 'x',\n Y̌: 'Y',\n y̌: 'y',\n A̧: 'A',\n a̧: 'a',\n B̧: 'B',\n b̧: 'b',\n Ḑ: 'D',\n ḑ: 'd',\n Ȩ: 'E',\n ȩ: 'e',\n Ɛ̧: 'E',\n ɛ̧: 'e',\n Ḩ: 'H',\n ḩ: 'h',\n I̧: 'I',\n i̧: 'i',\n Ɨ̧: 'I',\n ɨ̧: 'i',\n M̧: 'M',\n m̧: 'm',\n O̧: 'O',\n o̧: 'o',\n Q̧: 'Q',\n q̧: 'q',\n U̧: 'U',\n u̧: 'u',\n X̧: 'X',\n x̧: 'x',\n Z̧: 'Z',\n z̧: 'z'\n};\nconst chars = Object.keys(characterMap).join('|');\nconst allAccents = new RegExp(chars, 'g');\nfunction removeAccents(str) {\n return str.replace(allAccents, match => {\n return characterMap[match];\n });\n}\n\n/**\n * @name match-sorter\n * @license MIT license.\n * @copyright (c) 2099 Kent C. Dodds\n * @author Kent C. Dodds <me@kentcdodds.com> (https://kentcdodds.com)\n */\nconst rankings = {\n CASE_SENSITIVE_EQUAL: 7,\n EQUAL: 6,\n STARTS_WITH: 5,\n WORD_STARTS_WITH: 4,\n CONTAINS: 3,\n ACRONYM: 2,\n MATCHES: 1,\n NO_MATCH: 0\n};\n/**\n * Gets the highest ranking for value for the given item based on its values for the given keys\n * @param {*} item - the item to rank\n * @param {Array} keys - the keys to get values from the item for the ranking\n * @param {String} value - the value to rank against\n * @param {Object} options - options to control the ranking\n * @return {{rank: Number, accessorIndex: Number, accessorThreshold: Number}} - the highest ranking\n */\nfunction rankItem(item, value, options) {\n var _options$threshold;\n options = options || {};\n options.threshold = (_options$threshold = options.threshold) != null ? _options$threshold : rankings.MATCHES;\n if (!options.accessors) {\n // if keys is not specified, then we assume the item given is ready to be matched\n const rank = getMatchRanking(item, value, options);\n return {\n // ends up being duplicate of 'item' in matches but consistent\n rankedValue: item,\n rank,\n accessorIndex: -1,\n accessorThreshold: options.threshold,\n passed: rank >= options.threshold\n };\n }\n const valuesToRank = getAllValuesToRank(item, options.accessors);\n const rankingInfo = {\n rankedValue: item,\n rank: rankings.NO_MATCH,\n accessorIndex: -1,\n accessorThreshold: options.threshold,\n passed: false\n };\n for (let i = 0; i < valuesToRank.length; i++) {\n const rankValue = valuesToRank[i];\n let newRank = getMatchRanking(rankValue.itemValue, value, options);\n const {\n minRanking,\n maxRanking,\n threshold = options.threshold\n } = rankValue.attributes;\n if (newRank < minRanking && newRank >= rankings.MATCHES) {\n newRank = minRanking;\n } else if (newRank > maxRanking) {\n newRank = maxRanking;\n }\n newRank = Math.min(newRank, maxRanking);\n if (newRank >= threshold && newRank > rankingInfo.rank) {\n rankingInfo.rank = newRank;\n rankingInfo.passed = true;\n rankingInfo.accessorIndex = i;\n rankingInfo.accessorThreshold = threshold;\n rankingInfo.rankedValue = rankValue.itemValue;\n }\n }\n return rankingInfo;\n}\n\n/**\n * Gives a rankings score based on how well the two strings match.\n * @param {String} testString - the string to test against\n * @param {String} stringToRank - the string to rank\n * @param {Object} options - options for the match (like keepDiacritics for comparison)\n * @returns {Number} the ranking for how well stringToRank matches testString\n */\nfunction getMatchRanking(testString, stringToRank, options) {\n testString = prepareValueForComparison(testString, options);\n stringToRank = prepareValueForComparison(stringToRank, options);\n\n // too long\n if (stringToRank.length > testString.length) {\n return rankings.NO_MATCH;\n }\n\n // case sensitive equals\n if (testString === stringToRank) {\n return rankings.CASE_SENSITIVE_EQUAL;\n }\n\n // Lower casing before further comparison\n testString = testString.toLowerCase();\n stringToRank = stringToRank.toLowerCase();\n\n // case insensitive equals\n if (testString === stringToRank) {\n return rankings.EQUAL;\n }\n\n // starts with\n if (testString.startsWith(stringToRank)) {\n return rankings.STARTS_WITH;\n }\n\n // word starts with\n if (testString.includes(` ${stringToRank}`)) {\n return rankings.WORD_STARTS_WITH;\n }\n\n // contains\n if (testString.includes(stringToRank)) {\n return rankings.CONTAINS;\n } else if (stringToRank.length === 1) {\n // If the only character in the given stringToRank\n // isn't even contained in the testString, then\n // it's definitely not a match.\n return rankings.NO_MATCH;\n }\n\n // acronym\n if (getAcronym(testString).includes(stringToRank)) {\n return rankings.ACRONYM;\n }\n\n // will return a number between rankings.MATCHES and\n // rankings.MATCHES + 1 depending on how close of a match it is.\n return getClosenessRanking(testString, stringToRank);\n}\n\n/**\n * Generates an acronym for a string.\n *\n * @param {String} string the string for which to produce the acronym\n * @returns {String} the acronym\n */\nfunction getAcronym(string) {\n let acronym = '';\n const wordsInString = string.split(' ');\n wordsInString.forEach(wordInString => {\n const splitByHyphenWords = wordInString.split('-');\n splitByHyphenWords.forEach(splitByHyphenWord => {\n acronym += splitByHyphenWord.substr(0, 1);\n });\n });\n return acronym;\n}\n\n/**\n * Returns a score based on how spread apart the\n * characters from the stringToRank are within the testString.\n * A number close to rankings.MATCHES represents a loose match. A number close\n * to rankings.MATCHES + 1 represents a tighter match.\n * @param {String} testString - the string to test against\n * @param {String} stringToRank - the string to rank\n * @returns {Number} the number between rankings.MATCHES and\n * rankings.MATCHES + 1 for how well stringToRank matches testString\n */\nfunction getClosenessRanking(testString, stringToRank) {\n let matchingInOrderCharCount = 0;\n let charNumber = 0;\n function findMatchingCharacter(matchChar, string, index) {\n for (let j = index, J = string.length; j < J; j++) {\n const stringChar = string[j];\n if (stringChar === matchChar) {\n matchingInOrderCharCount += 1;\n return j + 1;\n }\n }\n return -1;\n }\n function getRanking(spread) {\n const spreadPercentage = 1 / spread;\n const inOrderPercentage = matchingInOrderCharCount / stringToRank.length;\n const ranking = rankings.MATCHES + inOrderPercentage * spreadPercentage;\n return ranking;\n }\n const firstIndex = findMatchingCharacter(stringToRank[0], testString, 0);\n if (firstIndex < 0) {\n return rankings.NO_MATCH;\n }\n charNumber = firstIndex;\n for (let i = 1, I = stringToRank.length; i < I; i++) {\n const matchChar = stringToRank[i];\n charNumber = findMatchingCharacter(matchChar, testString, charNumber);\n const found = charNumber > -1;\n if (!found) {\n return rankings.NO_MATCH;\n }\n }\n const spread = charNumber - firstIndex;\n return getRanking(spread);\n}\n\n/**\n * Sorts items that have a rank, index, and accessorIndex\n * @param {Object} a - the first item to sort\n * @param {Object} b - the second item to sort\n * @return {Number} -1 if a should come first, 1 if b should come first, 0 if equal\n */\nfunction compareItems(a, b) {\n return a.rank === b.rank ? 0 : a.rank > b.rank ? -1 : 1;\n}\n\n/**\n * Prepares value for comparison by stringifying it, removing diacritics (if specified)\n * @param {String} value - the value to clean\n * @param {Object} options - {keepDiacritics: whether to remove diacritics}\n * @return {String} the prepared value\n */\nfunction prepareValueForComparison(value, _ref) {\n let {\n keepDiacritics\n } = _ref;\n // value might not actually be a string at this point (we don't get to choose)\n // so part of preparing the value for comparison is ensure that it is a string\n value = `${value}`; // toString\n if (!keepDiacritics) {\n value = removeAccents(value);\n }\n return value;\n}\n\n/**\n * Gets value for key in item at arbitrarily nested keypath\n * @param {Object} item - the item\n * @param {Object|Function} key - the potentially nested keypath or property callback\n * @return {Array} - an array containing the value(s) at the nested keypath\n */\nfunction getItemValues(item, accessor) {\n let accessorFn = accessor;\n if (typeof accessor === 'object') {\n accessorFn = accessor.accessor;\n }\n const value = accessorFn(item);\n\n // because `value` can also be undefined\n if (value == null) {\n return [];\n }\n if (Array.isArray(value)) {\n return value;\n }\n return [String(value)];\n}\n\n/**\n * Gets all the values for the given keys in the given item and returns an array of those values\n * @param item - the item from which the values will be retrieved\n * @param keys - the keys to use to retrieve the values\n * @return objects with {itemValue, attributes}\n */\nfunction getAllValuesToRank(item, accessors) {\n const allValues = [];\n for (let j = 0, J = accessors.length; j < J; j++) {\n const accessor = accessors[j];\n const attributes = getAccessorAttributes(accessor);\n const itemValues = getItemValues(item, accessor);\n for (let i = 0, I = itemValues.length; i < I; i++) {\n allValues.push({\n itemValue: itemValues[i],\n attributes\n });\n }\n }\n return allValues;\n}\nconst defaultKeyAttributes = {\n maxRanking: Infinity,\n minRanking: -Infinity\n};\n/**\n * Gets all the attributes for the given accessor\n * @param accessor - the accessor from which the attributes will be retrieved\n * @return object containing the accessor's attributes\n */\nfunction getAccessorAttributes(accessor) {\n if (typeof accessor === 'function') {\n return defaultKeyAttributes;\n }\n return {\n ...defaultKeyAttributes,\n ...accessor\n };\n}\n\nexport { compareItems, rankItem, rankings };\n//# sourceMappingURL=index.mjs.map\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport weakMemoize from '@emotion/weak-memoize';\nimport memoize from '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar isBrowser = typeof document !== 'undefined';\nvar getServerStylisCache = isBrowser ? undefined : weakMemoize(function () {\n return memoize(function () {\n var cache = {};\n return function (name) {\n return cache[name];\n };\n });\n});\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (isBrowser && key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n if (isBrowser) {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n if (isBrowser) {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n } else {\n var _finalizingPlugins = [stringify];\n\n var _serializer = middleware(omnipresentPlugins.concat(stylisPlugins, _finalizingPlugins));\n\n var _stylis = function _stylis(styles) {\n return serialize(compile(styles), _serializer);\n }; // $FlowFixMe\n\n\n var serverStylisCache = getServerStylisCache(stylisPlugins)(key);\n\n var getRules = function getRules(selector, serialized) {\n var name = serialized.name;\n\n if (serverStylisCache[name] === undefined) {\n serverStylisCache[name] = _stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n }\n\n return serverStylisCache[name];\n };\n\n _insert = function _insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n var rules = getRules(selector, serialized);\n\n if (cache.compat === undefined) {\n // in regular mode, we don't set the styles on the inserted cache\n // since we don't need to and that would be wasting memory\n // we return them so that they are rendered in a style tag\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n\n if ( // using === development instead of !== production\n // because if people do ssr in tests, the source maps showing up would be annoying\n process.env.NODE_ENV === 'development' && serialized.map !== undefined) {\n return rules + serialized.map;\n }\n\n return rules;\n } else {\n // in compat mode, we put the styles on the inserted cache so\n // that emotion-server can pull out the styles\n // except when we don't want to cache it which was in Global but now\n // is nowhere but we don't want to do a major right now\n // and just in case we're going to leave the case here\n // it's also not affecting client side bundle size\n // so it's really not a big deal\n if (shouldCache) {\n cache.inserted[name] = rules;\n } else {\n return rules;\n }\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var isBrowser = typeof document !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var stylesForSSR = '';\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n if (!isBrowser && maybeStyles !== undefined) {\n stylesForSSR += maybeStyles;\n }\n\n current = current.next;\n } while (current !== undefined);\n\n if (!isBrowser && stylesForSSR.length !== 0) {\n return stylesForSSR;\n }\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import createCache from '@emotion/cache';\nimport { serializeStyles } from '@emotion/serialize';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\n\nfunction insertWithoutScoping(cache, serialized) {\n if (cache.inserted[serialized.name] === undefined) {\n return cache.insert('', serialized, cache.sheet, true);\n }\n}\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar createEmotion = function createEmotion(options) {\n var cache = createCache(options); // $FlowFixMe\n\n cache.sheet.speedy = function (value) {\n if (process.env.NODE_ENV !== 'production' && this.ctr !== 0) {\n throw new Error('speedy must be changed before any rules are inserted');\n }\n\n this.isSpeedy = value;\n };\n\n cache.compat = true;\n\n var css = function css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered, undefined);\n insertStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var keyframes = function keyframes() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n var animation = \"animation-\" + serialized.name;\n insertWithoutScoping(cache, {\n name: serialized.name,\n styles: \"@keyframes \" + animation + \"{\" + serialized.styles + \"}\"\n });\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n insertWithoutScoping(cache, serialized);\n };\n\n var cx = function cx() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n return {\n css: css,\n cx: cx,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n hydrate: function hydrate(ids) {\n ids.forEach(function (key) {\n cache.inserted[key] = true;\n });\n },\n flush: function flush() {\n cache.registered = {};\n cache.inserted = {};\n cache.sheet.flush();\n },\n // $FlowFixMe\n sheet: cache.sheet,\n cache: cache,\n getRegisteredStyles: getRegisteredStyles.bind(null, cache.registered),\n merge: merge.bind(null, cache.registered, css)\n };\n};\n\nvar classnames = function classnames(args) {\n var cls = '';\n\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nexport default createEmotion;\n","import '@emotion/cache';\nimport '@emotion/serialize';\nimport '@emotion/utils';\nimport createEmotion from '../create-instance/dist/emotion-css-create-instance.esm.js';\n\nvar _createEmotion = createEmotion({\n key: 'css'\n}),\n flush = _createEmotion.flush,\n hydrate = _createEmotion.hydrate,\n cx = _createEmotion.cx,\n merge = _createEmotion.merge,\n getRegisteredStyles = _createEmotion.getRegisteredStyles,\n injectGlobal = _createEmotion.injectGlobal,\n keyframes = _createEmotion.keyframes,\n css = _createEmotion.css,\n sheet = _createEmotion.sheet,\n cache = _createEmotion.cache;\n\nexport { cache, css, cx, flush, getRegisteredStyles, hydrate, injectGlobal, keyframes, merge, sheet };\n","const ShadowVariants = {\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n sm: '0 1px 3px 0 color, 0 1px 2px -1px color',\n md: '0 4px 6px -1px color, 0 2px 4px -2px color',\n lg: '0 10px 15px -3px color, 0 4px 6px -4px color',\n xl: '0 20px 25px -5px color, 0 8px 10px -6px color',\n '2xl': '0 25px 50px -12px color',\n inner: 'inset 0 2px 4px 0 color',\n none: 'none',\n}\n\ntype ShadowVariantType = keyof typeof ShadowVariants\n\nconst getShadow = (variant: ShadowVariantType, color: string = ''): string => {\n return ShadowVariants[variant].replace(/color/g, color)\n}\n\nconst Shadow = {\n xs: (color: string = 'rgb(0 0 0 / 0.1)') => getShadow('xs', color),\n sm: (color: string = 'rgb(0 0 0 / 0.1)') => getShadow('sm', color),\n md: (color: string = 'rgb(0 0 0 / 0.1)') => getShadow('md', color),\n lg: (color: string = 'rgb(0 0 0 / 0.1)') => getShadow('lg', color),\n xl: (color: string = 'rgb(0 0 0 / 0.1)') => getShadow('xl', color),\n '2xl': (color: string = 'rgb(0 0 0 / 0.25)') => getShadow('2xl', color),\n inner: (color: string = 'rgb(0 0 0 / 0.05)') => getShadow('inner', color),\n none: () => getShadow('none'),\n}\n\nexport const 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 25: '#FFFBFA',\n 50: '#FEF3F2',\n 100: '#FEE4E2',\n 200: '#FECDCA',\n 300: '#FDA29B',\n 400: '#F97066',\n 500: '#F04438',\n 600: '#D92D20',\n 700: '#B42318',\n 800: '#912018',\n 900: '#7A271A',\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 100: 'ff',\n 90: 'e5',\n 80: 'cc',\n 70: 'b3',\n 60: '99',\n 50: '80',\n 40: '66',\n 30: '4d',\n 20: '33',\n 10: '1a',\n 0: '00',\n },\n font: {\n size: {\n '2xs': '0.625rem',\n xs: '0.75rem',\n sm: '0.875rem',\n md: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n '5xl': '3rem',\n '6xl': '3.75rem',\n '7xl': '4.5rem',\n '8xl': '6rem',\n '9xl': '8rem',\n },\n lineHeight: {\n xs: '1rem',\n sm: '1.25rem',\n md: '1.5rem',\n lg: '1.75rem',\n xl: '1.75rem',\n '2xl': '2rem',\n '3xl': '2.25rem',\n '4xl': '2.5rem',\n '5xl': '1',\n '6xl': '1',\n '7xl': '1',\n '8xl': '1',\n '9xl': '1',\n },\n weight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n },\n breakpoints: {\n xs: '320px',\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n border: {\n radius: {\n none: '0px',\n xs: '0.125rem',\n sm: '0.25rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n full: '9999px',\n },\n },\n size: {\n 0: '0px',\n 0.25: '0.0625rem',\n 0.5: '0.125rem',\n 1: '0.25rem',\n 1.5: '0.375rem',\n 2: '0.5rem',\n 2.5: '0.625rem',\n 3: '0.75rem',\n 3.5: '0.875rem',\n 4: '1rem',\n 4.5: '1.125rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 7: '1.75rem',\n 8: '2rem',\n 9: '2.25rem',\n 10: '2.5rem',\n 11: '2.75rem',\n 12: '3rem',\n 14: '3.5rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 28: '7rem',\n 32: '8rem',\n 36: '9rem',\n 40: '10rem',\n 44: '11rem',\n 48: '12rem',\n 52: '13rem',\n 56: '14rem',\n 60: '15rem',\n 64: '16rem',\n 72: '18rem',\n 80: '20rem',\n 96: '24rem',\n },\n shadow: Shadow,\n zIndices: {\n hide: -1,\n auto: 'auto',\n base: 0,\n docked: 10,\n dropdown: 1000,\n sticky: 1100,\n banner: 1200,\n overlay: 1300,\n modal: 1400,\n popover: 1500,\n skipLink: 1600,\n toast: 1700,\n tooltip: 1800,\n },\n}\n\nexport type ThemeConfigType = typeof tokens\nexport type ThemeColorsAll = {\n [key in keyof ThemeConfigType['colors']]: key\n}[keyof ThemeConfigType['colors']]\nexport type AtomicThemeColors =\n | 'white'\n | 'black'\n | 'transparent'\n | 'current'\n | 'inherit'\nexport type ThemeColors = Exclude<ThemeColorsAll, AtomicThemeColors>\n","var DoubleIndexedKV = /** @class */ (function () {\n function DoubleIndexedKV() {\n this.keyToValue = new Map();\n this.valueToKey = new Map();\n }\n DoubleIndexedKV.prototype.set = function (key, value) {\n this.keyToValue.set(key, value);\n this.valueToKey.set(value, key);\n };\n DoubleIndexedKV.prototype.getByKey = function (key) {\n return this.keyToValue.get(key);\n };\n DoubleIndexedKV.prototype.getByValue = function (value) {\n return this.valueToKey.get(value);\n };\n DoubleIndexedKV.prototype.clear = function () {\n this.keyToValue.clear();\n this.valueToKey.clear();\n };\n return DoubleIndexedKV;\n}());\nexport { DoubleIndexedKV };\n//# sourceMappingURL=double-indexed-kv.js.map","import { DoubleIndexedKV } from './double-indexed-kv';\nvar Registry = /** @class */ (function () {\n function Registry(generateIdentifier) {\n this.generateIdentifier = generateIdentifier;\n this.kv = new DoubleIndexedKV();\n }\n Registry.prototype.register = function (value, identifier) {\n if (this.kv.getByValue(value)) {\n return;\n }\n if (!identifier) {\n identifier = this.generateIdentifier(value);\n }\n this.kv.set(identifier, value);\n };\n Registry.prototype.clear = function () {\n this.kv.clear();\n };\n Registry.prototype.getIdentifier = function (value) {\n return this.kv.getByValue(value);\n };\n Registry.prototype.getValue = function (identifier) {\n return this.kv.getByKey(identifier);\n };\n return Registry;\n}());\nexport { Registry };\n//# sourceMappingURL=registry.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Registry } from './registry';\nvar ClassRegistry = /** @class */ (function (_super) {\n __extends(ClassRegistry, _super);\n function ClassRegistry() {\n var _this = _super.call(this, function (c) { return c.name; }) || this;\n _this.classToAllowedProps = new Map();\n return _this;\n }\n ClassRegistry.prototype.register = function (value, options) {\n if (typeof options === 'object') {\n if (options.allowProps) {\n this.classToAllowedProps.set(value, options.allowProps);\n }\n _super.prototype.register.call(this, value, options.identifier);\n }\n else {\n _super.prototype.register.call(this, value, options);\n }\n };\n ClassRegistry.prototype.getAllowedProps = function (value) {\n return this.classToAllowedProps.get(value);\n };\n return ClassRegistry;\n}(Registry));\nexport { ClassRegistry };\n//# sourceMappingURL=class-registry.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nfunction valuesOfObj(record) {\n if ('values' in Object) {\n // eslint-disable-next-line es5/no-es6-methods\n return Object.values(record);\n }\n var values = [];\n // eslint-disable-next-line no-restricted-syntax\n for (var key in record) {\n if (record.hasOwnProperty(key)) {\n values.push(record[key]);\n }\n }\n return values;\n}\nexport function find(record, predicate) {\n var values = valuesOfObj(record);\n if ('find' in values) {\n // eslint-disable-next-line es5/no-es6-methods\n return values.find(predicate);\n }\n var valuesNotNever = values;\n for (var i = 0; i < valuesNotNever.length; i++) {\n var value = valuesNotNever[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\nexport function forEach(record, run) {\n Object.entries(record).forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n return run(value, key);\n });\n}\nexport function includes(arr, value) {\n return arr.indexOf(value) !== -1;\n}\nexport function findArr(record, predicate) {\n for (var i = 0; i < record.length; i++) {\n var value = record[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\n//# sourceMappingURL=util.js.map","import { find } from './util';\nvar CustomTransformerRegistry = /** @class */ (function () {\n function CustomTransformerRegistry() {\n this.transfomers = {};\n }\n CustomTransformerRegistry.prototype.register = function (transformer) {\n this.transfomers[transformer.name] = transformer;\n };\n CustomTransformerRegistry.prototype.findApplicable = function (v) {\n return find(this.transfomers, function (transformer) {\n return transformer.isApplicable(v);\n });\n };\n CustomTransformerRegistry.prototype.findByName = function (name) {\n return this.transfomers[name];\n };\n return CustomTransformerRegistry;\n}());\nexport { CustomTransformerRegistry };\n//# sourceMappingURL=custom-transformer-registry.js.map","var getType = function (payload) {\n return Object.prototype.toString.call(payload).slice(8, -1);\n};\nexport var isUndefined = function (payload) {\n return typeof payload === 'undefined';\n};\nexport var isNull = function (payload) { return payload === null; };\nexport var isPlainObject = function (payload) {\n if (typeof payload !== 'object' || payload === null)\n return false;\n if (payload === Object.prototype)\n return false;\n if (Object.getPrototypeOf(payload) === null)\n return true;\n return (payload.constructor === Object &&\n Object.getPrototypeOf(payload) === Object.prototype);\n};\nexport var isEmptyObject = function (payload) {\n return isPlainObject(payload) && Object.keys(payload).length === 0;\n};\nexport var isArray = function (payload) {\n return Array.isArray(payload);\n};\nexport var isString = function (payload) {\n return typeof payload === 'string';\n};\nexport var isNumber = function (payload) {\n return typeof payload === 'number' && !isNaN(payload);\n};\nexport var isBoolean = function (payload) {\n return typeof payload === 'boolean';\n};\nexport var isRegExp = function (payload) {\n return payload instanceof RegExp;\n};\nexport var isMap = function (payload) {\n return payload instanceof Map;\n};\nexport var isSet = function (payload) {\n return payload instanceof Set;\n};\nexport var isSymbol = function (payload) {\n return getType(payload) === 'Symbol';\n};\nexport var isDate = function (payload) {\n return payload instanceof Date && !isNaN(payload.valueOf());\n};\nexport var isError = function (payload) {\n return payload instanceof Error;\n};\nexport var isNaNValue = function (payload) {\n return typeof payload === 'number' && isNaN(payload);\n};\nexport var isPrimitive = function (payload) {\n return isBoolean(payload) ||\n isNull(payload) ||\n isUndefined(payload) ||\n isNumber(payload) ||\n isString(payload) ||\n isSymbol(payload);\n};\nexport var isBigint = function (payload) {\n return typeof payload === 'bigint';\n};\nexport var isInfinite = function (payload) {\n return payload === Infinity || payload === -Infinity;\n};\nexport var isTypedArray = function (payload) {\n return ArrayBuffer.isView(payload) && !(payload instanceof DataView);\n};\nexport var isURL = function (payload) { return payload instanceof URL; };\n//# sourceMappingURL=is.js.map","export var escapeKey = function (key) { return key.replace(/\\./g, '\\\\.'); };\nexport var stringifyPath = function (path) {\n return path\n .map(String)\n .map(escapeKey)\n .join('.');\n};\nexport var parsePath = function (string) {\n var result = [];\n var segment = '';\n for (var i = 0; i < string.length; i++) {\n var char = string.charAt(i);\n var isEscapedDot = char === '\\\\' && string.charAt(i + 1) === '.';\n if (isEscapedDot) {\n segment += '.';\n i++;\n continue;\n }\n var isEndOfSegment = char === '.';\n if (isEndOfSegment) {\n result.push(segment);\n segment = '';\n continue;\n }\n segment += char;\n }\n var lastSegment = segment;\n result.push(lastSegment);\n return result;\n};\n//# sourceMappingURL=pathstringifier.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nimport { isBigint, isDate, isInfinite, isMap, isNaNValue, isRegExp, isSet, isUndefined, isSymbol, isArray, isError, isTypedArray, isURL, } from './is';\nimport { findArr } from './util';\nfunction simpleTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable: isApplicable,\n annotation: annotation,\n transform: transform,\n untransform: untransform\n };\n}\nvar simpleRules = [\n simpleTransformation(isUndefined, 'undefined', function () { return null; }, function () { return undefined; }),\n simpleTransformation(isBigint, 'bigint', function (v) { return v.toString(); }, function (v) {\n if (typeof BigInt !== 'undefined') {\n return BigInt(v);\n }\n console.error('Please add a BigInt polyfill.');\n return v;\n }),\n simpleTransformation(isDate, 'Date', function (v) { return v.toISOString(); }, function (v) { return new Date(v); }),\n simpleTransformation(isError, 'Error', function (v, superJson) {\n var baseError = {\n name: v.name,\n message: v.message\n };\n superJson.allowedErrorProps.forEach(function (prop) {\n baseError[prop] = v[prop];\n });\n return baseError;\n }, function (v, superJson) {\n var e = new Error(v.message);\n e.name = v.name;\n e.stack = v.stack;\n superJson.allowedErrorProps.forEach(function (prop) {\n e[prop] = v[prop];\n });\n return e;\n }),\n simpleTransformation(isRegExp, 'regexp', function (v) { return '' + v; }, function (regex) {\n var body = regex.slice(1, regex.lastIndexOf('/'));\n var flags = regex.slice(regex.lastIndexOf('/') + 1);\n return new RegExp(body, flags);\n }),\n simpleTransformation(isSet, 'set', \n // (sets only exist in es6+)\n // eslint-disable-next-line es5/no-es6-methods\n function (v) { return __spreadArray([], __read(v.values())); }, function (v) { return new Set(v); }),\n simpleTransformation(isMap, 'map', function (v) { return __spreadArray([], __read(v.entries())); }, function (v) { return new Map(v); }),\n simpleTransformation(function (v) { return isNaNValue(v) || isInfinite(v); }, 'number', function (v) {\n if (isNaNValue(v)) {\n return 'NaN';\n }\n if (v > 0) {\n return 'Infinity';\n }\n else {\n return '-Infinity';\n }\n }, Number),\n simpleTransformation(function (v) { return v === 0 && 1 / v === -Infinity; }, 'number', function () {\n return '-0';\n }, Number),\n simpleTransformation(isURL, 'URL', function (v) { return v.toString(); }, function (v) { return new URL(v); }),\n];\nfunction compositeTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable: isApplicable,\n annotation: annotation,\n transform: transform,\n untransform: untransform\n };\n}\nvar symbolRule = compositeTransformation(function (s, superJson) {\n if (isSymbol(s)) {\n var isRegistered = !!superJson.symbolRegistry.getIdentifier(s);\n return isRegistered;\n }\n return false;\n}, function (s, superJson) {\n var identifier = superJson.symbolRegistry.getIdentifier(s);\n return ['symbol', identifier];\n}, function (v) { return v.description; }, function (_, a, superJson) {\n var value = superJson.symbolRegistry.getValue(a[1]);\n if (!value) {\n throw new Error('Trying to deserialize unknown symbol');\n }\n return value;\n});\nvar constructorToName = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n Uint8ClampedArray,\n].reduce(function (obj, ctor) {\n obj[ctor.name] = ctor;\n return obj;\n}, {});\nvar typedArrayRule = compositeTransformation(isTypedArray, function (v) { return ['typed-array', v.constructor.name]; }, function (v) { return __spreadArray([], __read(v)); }, function (v, a) {\n var ctor = constructorToName[a[1]];\n if (!ctor) {\n throw new Error('Trying to deserialize unknown typed array');\n }\n return new ctor(v);\n});\nexport function isInstanceOfRegisteredClass(potentialClass, superJson) {\n if (potentialClass === null || potentialClass === void 0 ? void 0 : potentialClass.constructor) {\n var isRegistered = !!superJson.classRegistry.getIdentifier(potentialClass.constructor);\n return isRegistered;\n }\n return false;\n}\nvar classRule = compositeTransformation(isInstanceOfRegisteredClass, function (clazz, superJson) {\n var identifier = superJson.classRegistry.getIdentifier(clazz.constructor);\n return ['class', identifier];\n}, function (clazz, superJson) {\n var allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);\n if (!allowedProps) {\n return __assign({}, clazz);\n }\n var result = {};\n allowedProps.forEach(function (prop) {\n result[prop] = clazz[prop];\n });\n return result;\n}, function (v, a, superJson) {\n var clazz = superJson.classRegistry.getValue(a[1]);\n if (!clazz) {\n throw new Error('Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564');\n }\n return Object.assign(Object.create(clazz.prototype), v);\n});\nvar customRule = compositeTransformation(function (value, superJson) {\n return !!superJson.customTransformerRegistry.findApplicable(value);\n}, function (value, superJson) {\n var transformer = superJson.customTransformerRegistry.findApplicable(value);\n return ['custom', transformer.name];\n}, function (value, superJson) {\n var transformer = superJson.customTransformerRegistry.findApplicable(value);\n return transformer.serialize(value);\n}, function (v, a, superJson) {\n var transformer = superJson.customTransformerRegistry.findByName(a[1]);\n if (!transformer) {\n throw new Error('Trying to deserialize unknown custom value');\n }\n return transformer.deserialize(v);\n});\nvar compositeRules = [classRule, symbolRule, customRule, typedArrayRule];\nexport var transformValue = function (value, superJson) {\n var applicableCompositeRule = findArr(compositeRules, function (rule) {\n return rule.isApplicable(value, superJson);\n });\n if (applicableCompositeRule) {\n return {\n value: applicableCompositeRule.transform(value, superJson),\n type: applicableCompositeRule.annotation(value, superJson)\n };\n }\n var applicableSimpleRule = findArr(simpleRules, function (rule) {\n return rule.isApplicable(value, superJson);\n });\n if (applicableSimpleRule) {\n return {\n value: applicableSimpleRule.transform(value, superJson),\n type: applicableSimpleRule.annotation\n };\n }\n return undefined;\n};\nvar simpleRulesByAnnotation = {};\nsimpleRules.forEach(function (rule) {\n simpleRulesByAnnotation[rule.annotation] = rule;\n});\nexport var untransformValue = function (json, type, superJson) {\n if (isArray(type)) {\n switch (type[0]) {\n case 'symbol':\n return symbolRule.untransform(json, type, superJson);\n case 'class':\n return classRule.untransform(json, type, superJson);\n case 'custom':\n return customRule.untransform(json, type, superJson);\n case 'typed-array':\n return typedArrayRule.untransform(json, type, superJson);\n default:\n throw new Error('Unknown transformation: ' + type);\n }\n }\n else {\n var transformation = simpleRulesByAnnotation[type];\n if (!transformation) {\n throw new Error('Unknown transformation: ' + type);\n }\n return transformation.untransform(json, superJson);\n }\n};\n//# sourceMappingURL=transformer.js.map","import { isMap, isArray, isPlainObject, isSet } from './is';\nimport { includes } from './util';\nvar getNthKey = function (value, n) {\n var keys = value.keys();\n while (n > 0) {\n keys.next();\n n--;\n }\n return keys.next().value;\n};\nfunction validatePath(path) {\n if (includes(path, '__proto__')) {\n throw new Error('__proto__ is not allowed as a property');\n }\n if (includes(path, 'prototype')) {\n throw new Error('prototype is not allowed as a property');\n }\n if (includes(path, 'constructor')) {\n throw new Error('constructor is not allowed as a property');\n }\n}\nexport var getDeep = function (object, path) {\n validatePath(path);\n for (var i = 0; i < path.length; i++) {\n var key = path[i];\n if (isSet(object)) {\n object = getNthKey(object, +key);\n }\n else if (isMap(object)) {\n var row = +key;\n var type = +path[++i] === 0 ? 'key' : 'value';\n var keyOfRow = getNthKey(object, row);\n switch (type) {\n case 'key':\n object = keyOfRow;\n break;\n case 'value':\n object = object.get(keyOfRow);\n break;\n }\n }\n else {\n object = object[key];\n }\n }\n return object;\n};\nexport var setDeep = function (object, path, mapper) {\n validatePath(path);\n if (path.length === 0) {\n return mapper(object);\n }\n var parent = object;\n for (var i = 0; i < path.length - 1; i++) {\n var key = path[i];\n if (isArray(parent)) {\n var index = +key;\n parent = parent[index];\n }\n else if (isPlainObject(parent)) {\n parent = parent[key];\n }\n else if (isSet(parent)) {\n var row = +key;\n parent = getNthKey(parent, row);\n }\n else if (isMap(parent)) {\n var isEnd = i === path.length - 2;\n if (isEnd) {\n break;\n }\n var row = +key;\n var type = +path[++i] === 0 ? 'key' : 'value';\n var keyOfRow = getNthKey(parent, row);\n switch (type) {\n case 'key':\n parent = keyOfRow;\n break;\n case 'value':\n parent = parent.get(keyOfRow);\n break;\n }\n }\n }\n var lastKey = path[path.length - 1];\n if (isArray(parent)) {\n parent[+lastKey] = mapper(parent[+lastKey]);\n }\n else if (isPlainObject(parent)) {\n parent[lastKey] = mapper(parent[lastKey]);\n }\n if (isSet(parent)) {\n var oldValue = getNthKey(parent, +lastKey);\n var newValue = mapper(oldValue);\n if (oldValue !== newValue) {\n parent[\"delete\"](oldValue);\n parent.add(newValue);\n }\n }\n if (isMap(parent)) {\n var row = +path[path.length - 2];\n var keyToRow = getNthKey(parent, row);\n var type = +lastKey === 0 ? 'key' : 'value';\n switch (type) {\n case 'key': {\n var newKey = mapper(keyToRow);\n parent.set(newKey, parent.get(keyToRow));\n if (newKey !== keyToRow) {\n parent[\"delete\"](keyToRow);\n }\n break;\n }\n case 'value': {\n parent.set(keyToRow, mapper(parent.get(keyToRow)));\n break;\n }\n }\n }\n return object;\n};\n//# sourceMappingURL=accessDeep.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nimport { isArray, isEmptyObject, isMap, isPlainObject, isPrimitive, isSet, } from './is';\nimport { escapeKey, stringifyPath } from './pathstringifier';\nimport { isInstanceOfRegisteredClass, transformValue, untransformValue, } from './transformer';\nimport { includes, forEach } from './util';\nimport { parsePath } from './pathstringifier';\nimport { getDeep, setDeep } from './accessDeep';\nfunction traverse(tree, walker, origin) {\n if (origin === void 0) { origin = []; }\n if (!tree) {\n return;\n }\n if (!isArray(tree)) {\n forEach(tree, function (subtree, key) {\n return traverse(subtree, walker, __spreadArray(__spreadArray([], __read(origin)), __read(parsePath(key))));\n });\n return;\n }\n var _a = __read(tree, 2), nodeValue = _a[0], children = _a[1];\n if (children) {\n forEach(children, function (child, key) {\n traverse(child, walker, __spreadArray(__spreadArray([], __read(origin)), __read(parsePath(key))));\n });\n }\n walker(nodeValue, origin);\n}\nexport function applyValueAnnotations(plain, annotations, superJson) {\n traverse(annotations, function (type, path) {\n plain = setDeep(plain, path, function (v) { return untransformValue(v, type, superJson); });\n });\n return plain;\n}\nexport function applyReferentialEqualityAnnotations(plain, annotations) {\n function apply(identicalPaths, path) {\n var object = getDeep(plain, parsePath(path));\n identicalPaths.map(parsePath).forEach(function (identicalObjectPath) {\n plain = setDeep(plain, identicalObjectPath, function () { return object; });\n });\n }\n if (isArray(annotations)) {\n var _a = __read(annotations, 2), root = _a[0], other = _a[1];\n root.forEach(function (identicalPath) {\n plain = setDeep(plain, parsePath(identicalPath), function () { return plain; });\n });\n if (other) {\n forEach(other, apply);\n }\n }\n else {\n forEach(annotations, apply);\n }\n return plain;\n}\nvar isDeep = function (object, superJson) {\n return isPlainObject(object) ||\n isArray(object) ||\n isMap(object) ||\n isSet(object) ||\n isInstanceOfRegisteredClass(object, superJson);\n};\nfunction addIdentity(object, path, identities) {\n var existingSet = identities.get(object);\n if (existingSet) {\n existingSet.push(path);\n }\n else {\n identities.set(object, [path]);\n }\n}\nexport function generateReferentialEqualityAnnotations(identitites) {\n var result = {};\n var rootEqualityPaths = undefined;\n identitites.forEach(function (paths) {\n if (paths.length <= 1) {\n return;\n }\n var _a = __read(paths\n .map(function (path) { return path.map(String); })\n .sort(function (a, b) { return a.length - b.length; })), shortestPath = _a[0], identicalPaths = _a.slice(1);\n if (shortestPath.length === 0) {\n rootEqualityPaths = identicalPaths.map(stringifyPath);\n }\n else {\n result[stringifyPath(shortestPath)] = identicalPaths.map(stringifyPath);\n }\n });\n if (rootEqualityPaths) {\n if (isEmptyObject(result)) {\n return [rootEqualityPaths];\n }\n else {\n return [rootEqualityPaths, result];\n }\n }\n else {\n return isEmptyObject(result) ? undefined : result;\n }\n}\nexport var walker = function (object, identities, superJson, path, objectsInThisPath) {\n var _a;\n if (path === void 0) { path = []; }\n if (objectsInThisPath === void 0) { objectsInThisPath = []; }\n if (!isPrimitive(object)) {\n addIdentity(object, path, identities);\n }\n if (!isDeep(object, superJson)) {\n var transformed_1 = transformValue(object, superJson);\n if (transformed_1) {\n return {\n transformedValue: transformed_1.value,\n annotations: [transformed_1.type]\n };\n }\n else {\n return {\n transformedValue: object\n };\n }\n }\n if (includes(objectsInThisPath, object)) {\n return {\n transformedValue: null\n };\n }\n var transformationResult = transformValue(object, superJson);\n var transformed = (_a = transformationResult === null || transformationResult === void 0 ? void 0 : transformationResult.value) !== null && _a !== void 0 ? _a : object;\n if (!isPrimitive(object)) {\n objectsInThisPath = __spreadArray(__spreadArray([], __read(objectsInThisPath)), [object]);\n }\n var transformedValue = isArray(transformed) ? [] : {};\n var innerAnnotations = {};\n forEach(transformed, function (value, index) {\n var recursiveResult = walker(value, identities, superJson, __spreadArray(__spreadArray([], __read(path)), [index]), objectsInThisPath);\n transformedValue[index] = recursiveResult.transformedValue;\n if (isArray(recursiveResult.annotations)) {\n innerAnnotations[index] = recursiveResult.annotations;\n }\n else if (isPlainObject(recursiveResult.annotations)) {\n forEach(recursiveResult.annotations, function (tree, key) {\n innerAnnotations[escapeKey(index) + '.' + key] = tree;\n });\n }\n });\n if (isEmptyObject(innerAnnotations)) {\n return {\n transformedValue: transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type]\n : undefined\n };\n }\n else {\n return {\n transformedValue: transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type, innerAnnotations]\n : innerAnnotations\n };\n }\n};\n//# sourceMappingURL=plainer.js.map","/**\r\n * Returns the object type of the given payload\r\n *\r\n * @param {*} payload\r\n * @returns {string}\r\n */\r\nfunction getType(payload) {\r\n return Object.prototype.toString.call(payload).slice(8, -1);\r\n}\r\n/**\r\n * Returns whether the payload is undefined\r\n *\r\n * @param {*} payload\r\n * @returns {payload is undefined}\r\n */\r\nfunction isUndefined(payload) {\r\n return getType(payload) === 'Undefined';\r\n}\r\n/**\r\n * Returns whether the payload is null\r\n *\r\n * @param {*} payload\r\n * @returns {payload is null}\r\n */\r\nfunction isNull(payload) {\r\n return getType(payload) === 'Null';\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\r\nfunction isPlainObject(payload) {\r\n if (getType(payload) !== 'Object')\r\n return false;\r\n const prototype = Object.getPrototypeOf(payload);\r\n return prototype.constructor === Object && prototype === Object.prototype;\r\n}\r\n/**\r\n * Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\r\nfunction isObject(payload) {\r\n return isPlainObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a an empty object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is { [K in any]: never }}\r\n */\r\nfunction isEmptyObject(payload) {\r\n return isPlainObject(payload) && Object.keys(payload).length === 0;\r\n}\r\n/**\r\n * Returns whether the payload is a an empty object (excluding special classes or objects with other prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\r\nfunction isFullObject(payload) {\r\n return isPlainObject(payload) && Object.keys(payload).length > 0;\r\n}\r\n/**\r\n * Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is PlainObject}\r\n */\r\nfunction isAnyObject(payload) {\r\n return getType(payload) === 'Object';\r\n}\r\n/**\r\n * Returns whether the payload is an object like a type passed in < >\r\n *\r\n * Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an `id` prop.\r\n *\r\n * @template T this must be passed in < >\r\n * @param {*} payload\r\n * @returns {payload is T}\r\n */\r\nfunction isObjectLike(payload) {\r\n return isAnyObject(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a function (regular or async)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is AnyFunction}\r\n */\r\nfunction isFunction(payload) {\r\n return typeof payload === 'function';\r\n}\r\n/**\r\n * Returns whether the payload is an array\r\n *\r\n * @param {any} payload\r\n * @returns {payload is any[]}\r\n */\r\nfunction isArray(payload) {\r\n return getType(payload) === 'Array';\r\n}\r\n/**\r\n * Returns whether the payload is a an array with at least 1 item\r\n *\r\n * @param {*} payload\r\n * @returns {payload is any[]}\r\n */\r\nfunction isFullArray(payload) {\r\n return isArray(payload) && payload.length > 0;\r\n}\r\n/**\r\n * Returns whether the payload is a an empty array\r\n *\r\n * @param {*} payload\r\n * @returns {payload is []}\r\n */\r\nfunction isEmptyArray(payload) {\r\n return isArray(payload) && payload.length === 0;\r\n}\r\n/**\r\n * Returns whether the payload is a string\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isString(payload) {\r\n return getType(payload) === 'String';\r\n}\r\n/**\r\n * Returns whether the payload is a string, BUT returns false for ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isFullString(payload) {\r\n return isString(payload) && payload !== '';\r\n}\r\n/**\r\n * Returns whether the payload is ''\r\n *\r\n * @param {*} payload\r\n * @returns {payload is string}\r\n */\r\nfunction isEmptyString(payload) {\r\n return payload === '';\r\n}\r\n/**\r\n * Returns whether the payload is a number (but not NaN)\r\n *\r\n * This will return `false` for `NaN`!!\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNumber(payload) {\r\n return getType(payload) === 'Number' && !isNaN(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a positive number (but not 0)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isPositiveNumber(payload) {\r\n return isNumber(payload) && payload > 0;\r\n}\r\n/**\r\n * Returns whether the payload is a negative number (but not 0)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is number}\r\n */\r\nfunction isNegativeNumber(payload) {\r\n return isNumber(payload) && payload < 0;\r\n}\r\n/**\r\n * Returns whether the payload is a boolean\r\n *\r\n * @param {*} payload\r\n * @returns {payload is boolean}\r\n */\r\nfunction isBoolean(payload) {\r\n return getType(payload) === 'Boolean';\r\n}\r\n/**\r\n * Returns whether the payload is a regular expression (RegExp)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is RegExp}\r\n */\r\nfunction isRegExp(payload) {\r\n return getType(payload) === 'RegExp';\r\n}\r\n/**\r\n * Returns whether the payload is a Map\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Map<any, any>}\r\n */\r\nfunction isMap(payload) {\r\n return getType(payload) === 'Map';\r\n}\r\n/**\r\n * Returns whether the payload is a WeakMap\r\n *\r\n * @param {*} payload\r\n * @returns {payload is WeakMap<any, any>}\r\n */\r\nfunction isWeakMap(payload) {\r\n return getType(payload) === 'WeakMap';\r\n}\r\n/**\r\n * Returns whether the payload is a Set\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Set<any>}\r\n */\r\nfunction isSet(payload) {\r\n return getType(payload) === 'Set';\r\n}\r\n/**\r\n * Returns whether the payload is a WeakSet\r\n *\r\n * @param {*} payload\r\n * @returns {payload is WeakSet<any>}\r\n */\r\nfunction isWeakSet(payload) {\r\n return getType(payload) === 'WeakSet';\r\n}\r\n/**\r\n * Returns whether the payload is a Symbol\r\n *\r\n * @param {*} payload\r\n * @returns {payload is symbol}\r\n */\r\nfunction isSymbol(payload) {\r\n return getType(payload) === 'Symbol';\r\n}\r\n/**\r\n * Returns whether the payload is a Date, and that the date is valid\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Date}\r\n */\r\nfunction isDate(payload) {\r\n return getType(payload) === 'Date' && !isNaN(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a Blob\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Blob}\r\n */\r\nfunction isBlob(payload) {\r\n return getType(payload) === 'Blob';\r\n}\r\n/**\r\n * Returns whether the payload is a File\r\n *\r\n * @param {*} payload\r\n * @returns {payload is File}\r\n */\r\nfunction isFile(payload) {\r\n return getType(payload) === 'File';\r\n}\r\n/**\r\n * Returns whether the payload is a Promise\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Promise<any>}\r\n */\r\nfunction isPromise(payload) {\r\n return getType(payload) === 'Promise';\r\n}\r\n/**\r\n * Returns whether the payload is an Error\r\n *\r\n * @param {*} payload\r\n * @returns {payload is Error}\r\n */\r\nfunction isError(payload) {\r\n return getType(payload) === 'Error';\r\n}\r\n/**\r\n * Returns whether the payload is literally the value `NaN` (it's `NaN` and also a `number`)\r\n *\r\n * @param {*} payload\r\n * @returns {payload is typeof NaN}\r\n */\r\nfunction isNaNValue(payload) {\r\n return getType(payload) === 'Number' && isNaN(payload);\r\n}\r\n/**\r\n * Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is boolean | null | undefined | number | string | symbol)}\r\n */\r\nfunction isPrimitive(payload) {\r\n return (isBoolean(payload) ||\r\n isNull(payload) ||\r\n isUndefined(payload) ||\r\n isNumber(payload) ||\r\n isString(payload) ||\r\n isSymbol(payload));\r\n}\r\n/**\r\n * Returns true whether the payload is null or undefined\r\n *\r\n * @param {*} payload\r\n * @returns {(payload is null | undefined)}\r\n */\r\nconst isNullOrUndefined = isOneOf(isNull, isUndefined);\r\nfunction isOneOf(a, b, c, d, e) {\r\n return (value) => a(value) || b(value) || (!!c && c(value)) || (!!d && d(value)) || (!!e && e(value));\r\n}\r\n/**\r\n * Does a generic check to check that the given payload is of a given type.\r\n * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!);\r\n * It will, however, differentiate between object and null\r\n *\r\n * @template T\r\n * @param {*} payload\r\n * @param {T} type\r\n * @throws {TypeError} Will throw type error if type is an invalid type\r\n * @returns {payload is T}\r\n */\r\nfunction isType(payload, type) {\r\n if (!(type instanceof Function)) {\r\n throw new TypeError('Type must be a function');\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(type, 'prototype')) {\r\n throw new TypeError('Type is not a class');\r\n }\r\n // Classes usually have names (as functions usually have names)\r\n const name = type.name;\r\n return getType(payload) === name || Boolean(payload && payload.constructor === type);\r\n}\n\nexport { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyArray, isEmptyObject, isEmptyString, isError, isFile, isFullArray, isFullObject, isFullString, isFunction, isMap, isNaNValue, isNegativeNumber, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isOneOf, isPlainObject, isPositiveNumber, isPrimitive, isPromise, isRegExp, isSet, isString, isSymbol, isType, isUndefined, isWeakMap, isWeakSet };\n","import { isArray, isPlainObject } from 'is-what';\n\nfunction assignProp(carry, key, newVal, originalObject, includeNonenumerable) {\r\n const propType = {}.propertyIsEnumerable.call(originalObject, key)\r\n ? 'enumerable'\r\n : 'nonenumerable';\r\n if (propType === 'enumerable')\r\n carry[key] = newVal;\r\n if (includeNonenumerable && propType === 'nonenumerable') {\r\n Object.defineProperty(carry, key, {\r\n value: newVal,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true,\r\n });\r\n }\r\n}\r\n/**\r\n * Copy (clone) an object and all its props recursively to get rid of any prop referenced of the original object. Arrays are also cloned, however objects inside arrays are still linked.\r\n *\r\n * @export\r\n * @template T\r\n * @param {T} target Target can be anything\r\n * @param {Options} [options = {}] Options can be `props` or `nonenumerable`\r\n * @returns {T} the target with replaced values\r\n * @export\r\n */\r\nfunction copy(target, options = {}) {\r\n if (isArray(target)) {\r\n return target.map((item) => copy(item, options));\r\n }\r\n if (!isPlainObject(target)) {\r\n return target;\r\n }\r\n const props = Object.getOwnPropertyNames(target);\r\n const symbols = Object.getOwnPropertySymbols(target);\r\n return [...props, ...symbols].reduce((carry, key) => {\r\n if (isArray(options.props) && !options.props.includes(key)) {\r\n return carry;\r\n }\r\n const val = target[key];\r\n const newVal = copy(val, options);\r\n assignProp(carry, key, newVal, target, options.nonenumerable);\r\n return carry;\r\n }, {});\r\n}\n\nexport { copy };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nimport { ClassRegistry } from './class-registry';\nimport { Registry } from './registry';\nimport { CustomTransformerRegistry, } from './custom-transformer-registry';\nimport { walker, applyReferentialEqualityAnnotations, applyValueAnnotations, generateReferentialEqualityAnnotations, } from './plainer';\nimport { copy } from 'copy-anything';\nvar SuperJSON = /** @class */ (function () {\n function SuperJSON() {\n this.classRegistry = new ClassRegistry();\n this.symbolRegistry = new Registry(function (s) { var _a; return (_a = s.description) !== null && _a !== void 0 ? _a : ''; });\n this.customTransformerRegistry = new CustomTransformerRegistry();\n this.allowedErrorProps = [];\n }\n SuperJSON.prototype.serialize = function (object) {\n var identities = new Map();\n var output = walker(object, identities, this);\n var res = {\n json: output.transformedValue\n };\n if (output.annotations) {\n res.meta = __assign(__assign({}, res.meta), { values: output.annotations });\n }\n var equalityAnnotations = generateReferentialEqualityAnnotations(identities);\n if (equalityAnnotations) {\n res.meta = __assign(__assign({}, res.meta), { referentialEqualities: equalityAnnotations });\n }\n return res;\n };\n SuperJSON.prototype.deserialize = function (payload) {\n var json = payload.json, meta = payload.meta;\n var result = copy(json);\n if (meta === null || meta === void 0 ? void 0 : meta.values) {\n result = applyValueAnnotations(result, meta.values, this);\n }\n if (meta === null || meta === void 0 ? void 0 : meta.referentialEqualities) {\n result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities);\n }\n return result;\n };\n SuperJSON.prototype.stringify = function (object) {\n return JSON.stringify(this.serialize(object));\n };\n SuperJSON.prototype.parse = function (string) {\n return this.deserialize(JSON.parse(string));\n };\n SuperJSON.prototype.registerClass = function (v, options) {\n this.classRegistry.register(v, options);\n };\n SuperJSON.prototype.registerSymbol = function (v, identifier) {\n this.symbolRegistry.register(v, identifier);\n };\n SuperJSON.prototype.registerCustom = function (transformer, name) {\n this.customTransformerRegistry.register(__assign({ name: name }, transformer));\n };\n SuperJSON.prototype.allowErrorProps = function () {\n var _a;\n var props = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n props[_i] = arguments[_i];\n }\n (_a = this.allowedErrorProps).push.apply(_a, __spreadArray([], __read(props)));\n };\n SuperJSON.defaultInstance = new SuperJSON();\n SuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance);\n SuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance);\n SuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance);\n SuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance);\n SuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance);\n SuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance);\n SuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance);\n SuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance);\n return SuperJSON;\n}());\nexport default SuperJSON;\nexport var serialize = SuperJSON.serialize;\nexport var deserialize = SuperJSON.deserialize;\nexport var stringify = SuperJSON.stringify;\nexport var parse = SuperJSON.parse;\nexport var registerClass = SuperJSON.registerClass;\nexport var registerCustom = SuperJSON.registerCustom;\nexport var registerSymbol = SuperJSON.registerSymbol;\nexport var allowErrorProps = SuperJSON.allowErrorProps;\n//# sourceMappingURL=index.js.map","import type { Query } from '@tanstack/query-core'\nimport SuperJSON from 'superjson'\n\nexport function getQueryStatusLabel(query: Query) {\n return query.state.fetchStatus === 'fetching'\n ? 'fetching'\n : !query.getObserversCount()\n ? 'inactive'\n : query.state.fetchStatus === 'paused'\n ? 'paused'\n : query.isStale()\n ? 'stale'\n : 'fresh'\n}\n\nexport const queryStatusLabels = [\n 'fresh',\n 'stale',\n 'paused',\n 'inactive',\n 'fetching',\n] as const\nexport type IQueryStatusLabel = (typeof queryStatusLabels)[number]\n\nexport function getQueryStatusColor({\n queryState,\n observerCount,\n isStale,\n}: {\n queryState: Query['state']\n observerCount: number\n isStale: boolean\n}) {\n return queryState.fetchStatus === 'fetching'\n ? 'blue'\n : !observerCount\n ? 'gray'\n : queryState.fetchStatus === 'paused'\n ? 'purple'\n : isStale\n ? 'yellow'\n : 'green'\n}\n\nexport function getQueryStatusColorByLabel(label: IQueryStatusLabel) {\n return label === 'fresh'\n ? 'green'\n : label === 'stale'\n ? 'yellow'\n : label === 'paused'\n ? 'purple'\n : label === 'inactive'\n ? 'gray'\n : 'blue'\n}\n\n/**\n * Displays a string regardless the type of the data\n * @param {unknown} value Value to be stringified\n * @param {boolean} beautify Formats json to multiline\n */\nexport const displayValue = (value: unknown, beautify: boolean = false) => {\n const { json } = SuperJSON.serialize(value)\n\n return JSON.stringify(json, null, beautify ? 2 : undefined)\n}\n\n// Sorting functions\ntype SortFn = (a: Query, b: Query) => number\n\nconst getStatusRank = (q: Query) =>\n q.state.fetchStatus !== 'idle'\n ? 0\n : !q.getObserversCount()\n ? 3\n : q.isStale()\n ? 2\n : 1\n\nconst queryHashSort: SortFn = (a, b) => a.queryHash.localeCompare(b.queryHash)\n\nconst dateSort: SortFn = (a, b) =>\n a.state.dataUpdatedAt < b.state.dataUpdatedAt ? 1 : -1\n\nconst statusAndDateSort: SortFn = (a, b) => {\n if (getStatusRank(a) === getStatusRank(b)) {\n return dateSort(a, b)\n }\n\n return getStatusRank(a) > getStatusRank(b) ? 1 : -1\n}\n\nexport const sortFns: Record<string, SortFn> = {\n status: statusAndDateSort,\n 'query hash': queryHashSort,\n 'last updated': dateSort,\n}\n\nexport const convertRemToPixels = (rem: number) => {\n return rem * parseFloat(getComputedStyle(document.documentElement).fontSize)\n}\n\nexport const convertPixelsToRem = (px: number) => px / convertRemToPixels(1)\n","import { tokens } from '../theme'\n\nexport function Search() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13 13L9.00007 9M10.3333 5.66667C10.3333 8.244 8.244 10.3333 5.66667 10.3333C3.08934 10.3333 1 8.244 1 5.66667C1 3.08934 3.08934 1 5.66667 1C8.244 1 10.3333 3.08934 10.3333 5.66667Z\"\n stroke=\"#98A2B3\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ChevronDown() {\n return (\n <svg\n width=\"10\"\n height=\"6\"\n viewBox=\"0 0 10 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1 1L5 5L9 1\"\n stroke=\"#98A2B3\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ArrowUp() {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 13.3333V2.66667M8 2.66667L4 6.66667M8 2.66667L12 6.66667\"\n stroke=\"#98A2B3\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ArrowDown() {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 2.66667V13.3333M8 13.3333L4 9.33333M8 13.3333L12 9.33333\"\n stroke=\"#98A2B3\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function Wifi() {\n return (\n <svg\n stroke=\"#98A2B3\"\n fill=\"#98A2B3\"\n stroke-width=\"0\"\n viewBox=\"0 0 24 24\"\n height=\"1em\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path fill=\"none\" d=\"M0 0h24v24H0z\"></path>\n <path d=\"M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3a4.237 4.237 0 00-6 0zm-4-4l2 2a7.074 7.074 0 0110 0l2-2C15.14 9.14 8.87 9.14 5 13z\"></path>\n </svg>\n )\n}\n\nexport function Offline() {\n return (\n <svg\n stroke={tokens.colors.yellow[500]}\n fill={tokens.colors.yellow[500]}\n stroke-width=\"0\"\n viewBox=\"0 0 24 24\"\n height=\"1em\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill=\"none\"\n d=\"M24 .01c0-.01 0-.01 0 0L0 0v24h24V.01zM0 0h24v24H0V0zm0 0h24v24H0V0z\"\n ></path>\n <path d=\"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7l2-2zm-4 4a9.793 9.793 0 00-4.49-2.56l3.53 3.53.96-.97zM2 3.05L5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24A9.684 9.684 0 005 13v.01L6.99 15a7.042 7.042 0 014.92-2.06L18.98 20l1.27-1.26L3.29 1.79 2 3.05zM9 17l3 3 3-3a4.237 4.237 0 00-6 0z\"></path>\n </svg>\n )\n}\n\nexport function Settings() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.3951 19.3711L9.97955 20.6856C10.1533 21.0768 10.4368 21.4093 10.7958 21.6426C11.1547 21.8759 11.5737 22.0001 12.0018 22C12.4299 22.0001 12.8488 21.8759 13.2078 21.6426C13.5667 21.4093 13.8503 21.0768 14.024 20.6856L14.6084 19.3711C14.8165 18.9047 15.1664 18.5159 15.6084 18.26C16.0532 18.0034 16.5678 17.8941 17.0784 17.9478L18.5084 18.1C18.9341 18.145 19.3637 18.0656 19.7451 17.8713C20.1265 17.6771 20.4434 17.3763 20.6573 17.0056C20.8715 16.635 20.9735 16.2103 20.9511 15.7829C20.9286 15.3555 20.7825 14.9438 20.5307 14.5978L19.684 13.4344C19.3825 13.0171 19.2214 12.5148 19.224 12C19.2239 11.4866 19.3865 10.9864 19.6884 10.5711L20.5351 9.40778C20.787 9.06175 20.933 8.65007 20.9555 8.22267C20.978 7.79528 20.8759 7.37054 20.6618 7C20.4479 6.62923 20.131 6.32849 19.7496 6.13423C19.3681 5.93997 18.9386 5.86053 18.5129 5.90556L17.0829 6.05778C16.5722 6.11141 16.0577 6.00212 15.6129 5.74556C15.17 5.48825 14.82 5.09736 14.6129 4.62889L14.024 3.31444C13.8503 2.92317 13.5667 2.59072 13.2078 2.3574C12.8488 2.12408 12.4299 1.99993 12.0018 2C11.5737 1.99993 11.1547 2.12408 10.7958 2.3574C10.4368 2.59072 10.1533 2.92317 9.97955 3.31444L9.3951 4.62889C9.18803 5.09736 8.83798 5.48825 8.3951 5.74556C7.95032 6.00212 7.43577 6.11141 6.9251 6.05778L5.49066 5.90556C5.06499 5.86053 4.6354 5.93997 4.25397 6.13423C3.87255 6.32849 3.55567 6.62923 3.34177 7C3.12759 7.37054 3.02555 7.79528 3.04804 8.22267C3.07052 8.65007 3.21656 9.06175 3.46844 9.40778L4.3151 10.5711C4.61704 10.9864 4.77964 11.4866 4.77955 12C4.77964 12.5134 4.61704 13.0137 4.3151 13.4289L3.46844 14.5922C3.21656 14.9382 3.07052 15.3499 3.04804 15.7773C3.02555 16.2047 3.12759 16.6295 3.34177 17C3.55589 17.3706 3.8728 17.6712 4.25417 17.8654C4.63554 18.0596 5.06502 18.1392 5.49066 18.0944L6.92066 17.9422C7.43133 17.8886 7.94587 17.9979 8.39066 18.2544C8.83519 18.511 9.18687 18.902 9.3951 19.3711Z\"\n stroke=\"#98A2B3\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 15C13.6568 15 15 13.6569 15 12C15 10.3431 13.6568 9 12 9C10.3431 9 8.99998 10.3431 8.99998 12C8.99998 13.6569 10.3431 15 12 15Z\"\n stroke=\"#98A2B3\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function Copier() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n class=\"copier\"\n d=\"M8 8V5.2C8 4.0799 8 3.51984 8.21799 3.09202C8.40973 2.71569 8.71569 2.40973 9.09202 2.21799C9.51984 2 10.0799 2 11.2 2H18.8C19.9201 2 20.4802 2 20.908 2.21799C21.2843 2.40973 21.5903 2.71569 21.782 3.09202C22 3.51984 22 4.0799 22 5.2V12.8C22 13.9201 22 14.4802 21.782 14.908C21.5903 15.2843 21.2843 15.5903 20.908 15.782C20.4802 16 19.9201 16 18.8 16H16M5.2 22H12.8C13.9201 22 14.4802 22 14.908 21.782C15.2843 21.5903 15.5903 21.2843 15.782 20.908C16 20.4802 16 19.9201 16 18.8V11.2C16 10.0799 16 9.51984 15.782 9.09202C15.5903 8.71569 15.2843 8.40973 14.908 8.21799C14.4802 8 13.9201 8 12.8 8H5.2C4.0799 8 3.51984 8 3.09202 8.21799C2.71569 8.40973 2.40973 8.71569 2.21799 9.09202C2 9.51984 2 10.0799 2 11.2V18.8C2 19.9201 2 20.4802 2.21799 20.908C2.40973 21.2843 2.71569 21.5903 3.09202 21.782C3.51984 22 4.07989 22 5.2 22Z\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke=\"#98A2B3\"\n />\n </svg>\n )\n}\n\nexport function CopiedCopier() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.5 12L10.5 15L16.5 9M7.8 21H16.2C17.8802 21 18.7202 21 19.362 20.673C19.9265 20.3854 20.3854 19.9265 20.673 19.362C21 18.7202 21 17.8802 21 16.2V7.8C21 6.11984 21 5.27976 20.673 4.63803C20.3854 4.07354 19.9265 3.6146 19.362 3.32698C18.7202 3 17.8802 3 16.2 3H7.8C6.11984 3 5.27976 3 4.63803 3.32698C4.07354 3.6146 3.6146 4.07354 3.32698 4.63803C3 5.27976 3 6.11984 3 7.8V16.2C3 17.8802 3 18.7202 3.32698 19.362C3.6146 19.9265 4.07354 20.3854 4.63803 20.673C5.27976 21 6.11984 21 7.8 21Z\"\n stroke=\"#12B76A\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ErrorCopier() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 9L15 15M15 9L9 15M7.8 21H16.2C17.8802 21 18.7202 21 19.362 20.673C19.9265 20.3854 20.3854 19.9265 20.673 19.362C21 18.7202 21 17.8802 21 16.2V7.8C21 6.11984 21 5.27976 20.673 4.63803C20.3854 4.07354 19.9265 3.6146 19.362 3.32698C18.7202 3 17.8802 3 16.2 3H7.8C6.11984 3 5.27976 3 4.63803 3.32698C4.07354 3.6146 3.6146 4.07354 3.32698 4.63803C3 5.27976 3 6.11984 3 7.8V16.2C3 17.8802 3 18.7202 3.32698 19.362C3.6146 19.9265 4.07354 20.3854 4.63803 20.673C5.27976 21 6.11984 21 7.8 21Z\"\n stroke=\"#F04438\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function TanstackLogo() {\n return (\n <svg version=\"1.0\" viewBox=\"0 0 633 633\">\n <linearGradient\n id=\"a\"\n x1=\"-666.45\"\n x2=\"-666.45\"\n y1=\"163.28\"\n y2=\"163.99\"\n gradientTransform=\"matrix(633 0 0 633 422177 -103358)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#6BDAFF\" offset=\"0\" />\n <stop stop-color=\"#F9FFB5\" offset=\".32\" />\n <stop stop-color=\"#FFA770\" offset=\".71\" />\n <stop stop-color=\"#FF7373\" offset=\"1\" />\n </linearGradient>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"url(#a)\" />\n\n <defs>\n <filter\n id=\"am\"\n x=\"-137.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"b\"\n x=\"-137.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#am)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#b)\">\n <ellipse\n cx=\"89.5\"\n cy=\"610.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00CFE2\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"ah\"\n x=\"316.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"k\"\n x=\"316.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ah)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#k)\">\n <ellipse\n cx=\"543.5\"\n cy=\"610.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00CFE2\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"ae\"\n x=\"-137.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"j\"\n x=\"-137.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ae)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#j)\">\n <ellipse\n cx=\"89.5\"\n cy=\"648.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00A8B8\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"ai\"\n x=\"316.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"i\"\n x=\"316.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ai)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#i)\">\n <ellipse\n cx=\"543.5\"\n cy=\"648.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00A8B8\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"aj\"\n x=\"-137.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"h\"\n x=\"-137.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#aj)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#h)\">\n <ellipse\n cx=\"89.5\"\n cy=\"684.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#007782\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"ag\"\n x=\"316.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"g\"\n x=\"316.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ag)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#g)\">\n <ellipse\n cx=\"543.5\"\n cy=\"684.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#007782\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id=\"af\"\n x=\"272.2\"\n y=\"308\"\n width=\"176.9\"\n height=\"129.3\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"f\"\n x=\"272.2\"\n y=\"308\"\n width=\"176.9\"\n height=\"129.3\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#af)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#f)\">\n <line\n x1=\"436\"\n x2=\"431\"\n y1=\"403.2\"\n y2=\"431.8\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"11\"\n />\n\n <line\n x1=\"291\"\n x2=\"280\"\n y1=\"341.5\"\n y2=\"403.5\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"11\"\n />\n\n <line\n x1=\"332.9\"\n x2=\"328.6\"\n y1=\"384.1\"\n y2=\"411.2\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"11\"\n />\n\n <linearGradient\n id=\"m\"\n x1=\"-670.75\"\n x2=\"-671.59\"\n y1=\"164.4\"\n y2=\"164.49\"\n gradientTransform=\"matrix(-184.16 -32.472 -11.461 64.997 -121359 -32126)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#EE2700\" offset=\"0\" />\n <stop stop-color=\"#FF008E\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m344.1 363 97.7 17.2c5.8 2.1 8.2 6.1 7.1 12.1s-4.7 9.2-11 9.9l-106-18.7-57.5-59.2c-3.2-4.8-2.9-9.1 0.8-12.8s8.3-4.4 13.7-2.1l55.2 53.6z\"\n clip-rule=\"evenodd\"\n fill=\"url(#m)\"\n fill-rule=\"evenodd\"\n />\n\n <line\n x1=\"428.2\"\n x2=\"429.1\"\n y1=\"384.5\"\n y2=\"378\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"395.2\"\n x2=\"396.1\"\n y1=\"379.5\"\n y2=\"373\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"362.2\"\n x2=\"363.1\"\n y1=\"373.5\"\n y2=\"367.4\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"324.2\"\n x2=\"328.4\"\n y1=\"351.3\"\n y2=\"347.4\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"303.2\"\n x2=\"307.4\"\n y1=\"331.3\"\n y2=\"327.4\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n </g>\n <defs>\n <filter\n id=\"ak\"\n x=\"73.2\"\n y=\"113.8\"\n width=\"280.6\"\n height=\"317.4\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"e\"\n x=\"73.2\"\n y=\"113.8\"\n width=\"280.6\"\n height=\"317.4\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ak)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#e)\">\n <linearGradient\n id=\"n\"\n x1=\"-672.16\"\n x2=\"-672.16\"\n y1=\"165.03\"\n y2=\"166.03\"\n gradientTransform=\"matrix(-100.18 48.861 97.976 200.88 -83342 -93.059)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#A17500\" offset=\"0\" />\n <stop stop-color=\"#5D2100\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m192.3 203c8.1 37.3 14 73.6 17.8 109.1 3.8 35.4 2.8 75.1-3 119.2l61.2-16.7c-15.6-59-25.2-97.9-28.6-116.6s-10.8-51.9-22.1-99.6l-25.3 4.6\"\n clip-rule=\"evenodd\"\n fill=\"url(#n)\"\n fill-rule=\"evenodd\"\n />\n <g stroke=\"#2F8A00\">\n <linearGradient\n id=\"r\"\n x1=\"-660.23\"\n x2=\"-660.23\"\n y1=\"166.72\"\n y2=\"167.72\"\n gradientTransform=\"matrix(92.683 4.8573 -2.0259 38.657 61680 -3088.6)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n 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\"\n clip-rule=\"evenodd\"\n fill=\"url(#r)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id=\"s\"\n x1=\"-661.36\"\n x2=\"-661.36\"\n y1=\"164.18\"\n y2=\"165.18\"\n gradientTransform=\"matrix(110 5.7648 -6.3599 121.35 73933 -15933)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5s-47.5-8.5-83.2 15.7c-23.8 16.2-34.3 49.3-31.6 99.4 30.3-27.8 52.1-48.5 65.2-61.9 19.8-20.2 49.6-53.2 49.6-53.2z\"\n clip-rule=\"evenodd\"\n fill=\"url(#s)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id=\"q\"\n x1=\"-656.79\"\n x2=\"-656.79\"\n y1=\"165.15\"\n y2=\"166.15\"\n gradientTransform=\"matrix(62.954 3.2993 -3.5023 66.828 42156 -8754.1)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m195 183.9c-0.8-21.9 6-38 20.6-48.2s29.8-15.4 45.5-15.3c-6.1 21.4-14.5 35.8-25.2 43.4s-24.4 14.2-40.9 20.1z\"\n clip-rule=\"evenodd\"\n fill=\"url(#q)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id=\"p\"\n x1=\"-663.07\"\n x2=\"-663.07\"\n y1=\"165.44\"\n y2=\"166.44\"\n gradientTransform=\"matrix(152.47 7.9907 -3.0936 59.029 101884 -4318.7)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5c31.9-30 64.1-39.7 96.7-29s50.8 30.4 54.6 59.1c-35.2-5.5-60.4-9.6-75.8-12.1-15.3-2.6-40.5-8.6-75.5-18z\"\n clip-rule=\"evenodd\"\n fill=\"url(#p)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id=\"o\"\n x1=\"-662.57\"\n x2=\"-662.57\"\n y1=\"164.44\"\n y2=\"165.44\"\n gradientTransform=\"matrix(136.46 7.1517 -5.2163 99.533 91536 -11442)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5c35.8-7.6 65.6-0.2 89.2 22s37.7 49 42.3 80.3c-39.8-9.7-68.3-23.8-85.5-42.4s-32.5-38.5-46-59.9z\"\n clip-rule=\"evenodd\"\n fill=\"url(#o)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id=\"l\"\n x1=\"-656.43\"\n x2=\"-656.43\"\n y1=\"163.86\"\n y2=\"164.86\"\n gradientTransform=\"matrix(60.866 3.1899 -8.7773 167.48 41560 -25168)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5c-33.6 13.8-53.6 35.7-60.1 65.6s-3.6 63.1 8.7 99.6c27.4-40.3 43.2-69.6 47.4-88s5.6-44.1 4-77.2z\"\n clip-rule=\"evenodd\"\n fill=\"url(#l)\"\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n <path\n d=\"m196.5 182.3c-14.8 21.6-25.1 41.4-30.8 59.4s-9.5 33-11.1 45.1\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n <path\n d=\"m194.9 185.7c-24.4 1.7-43.8 9-58.1 21.8s-24.7 25.4-31.3 37.8\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n <path\n d=\"m204.5 176.4c29.7-6.7 52-8.4 67-5.1s26.9 8.6 35.8 15.9\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n <path\n d=\"m196.5 181.4c20.3 9.9 38.2 20.5 53.9 31.9s27.4 22.1 35.1 32\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n </g>\n </g>\n <defs>\n <filter\n id=\"al\"\n x=\"50.5\"\n y=\"399\"\n width=\"532\"\n height=\"633\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"d\"\n x=\"50.5\"\n y=\"399\"\n width=\"532\"\n height=\"633\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#al)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#d)\">\n <linearGradient\n id=\"u\"\n x1=\"-666.06\"\n x2=\"-666.23\"\n y1=\"163.36\"\n y2=\"163.75\"\n gradientTransform=\"matrix(532 0 0 633 354760 -102959)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFF400\" offset=\"0\" />\n <stop stop-color=\"#3C8700\" offset=\"1\" />\n </linearGradient>\n\n <ellipse cx=\"316.5\" cy=\"715.5\" rx=\"266\" ry=\"316.5\" fill=\"url(#u)\" />\n </g>\n <defs>\n <filter\n id=\"ad\"\n x=\"391\"\n y=\"-24\"\n width=\"288\"\n height=\"283\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id=\"c\"\n x=\"391\"\n y=\"-24\"\n width=\"288\"\n height=\"283\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter=\"url(#ad)\">\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask=\"url(#c)\">\n <linearGradient\n id=\"t\"\n x1=\"-664.56\"\n x2=\"-664.56\"\n y1=\"163.79\"\n y2=\"164.79\"\n gradientTransform=\"matrix(227 0 0 227 151421 -37204)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFDF00\" offset=\"0\" />\n <stop stop-color=\"#FF9D00\" offset=\"1\" />\n </linearGradient>\n <circle cx=\"565.5\" cy=\"89.5\" r=\"113.5\" fill=\"url(#t)\" />\n\n <linearGradient\n id=\"v\"\n x1=\"-644.5\"\n x2=\"-645.77\"\n y1=\"342\"\n y2=\"342\"\n gradientTransform=\"matrix(30 0 0 1 19770 -253)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"427\"\n x2=\"397\"\n y1=\"89\"\n y2=\"89\"\n fill=\"none\"\n stroke=\"url(#v)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"aa\"\n x1=\"-641.56\"\n x2=\"-642.83\"\n y1=\"196.02\"\n y2=\"196.07\"\n gradientTransform=\"matrix(26.5 0 0 5.5 17439 -1025.5)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"430.5\"\n x2=\"404\"\n y1=\"55.5\"\n y2=\"50\"\n fill=\"none\"\n stroke=\"url(#aa)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"w\"\n x1=\"-643.73\"\n x2=\"-645\"\n y1=\"185.83\"\n y2=\"185.9\"\n gradientTransform=\"matrix(29 0 0 8 19107 -1361)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"431\"\n x2=\"402\"\n y1=\"122\"\n y2=\"130\"\n fill=\"none\"\n stroke=\"url(#w)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"ac\"\n x1=\"-638.94\"\n x2=\"-640.22\"\n y1=\"177.09\"\n y2=\"177.39\"\n gradientTransform=\"matrix(24 0 0 13 15783 -2145)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"442\"\n x2=\"418\"\n y1=\"153\"\n y2=\"166\"\n fill=\"none\"\n stroke=\"url(#ac)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"ab\"\n x1=\"-633.42\"\n x2=\"-634.7\"\n y1=\"172.41\"\n y2=\"173.31\"\n gradientTransform=\"matrix(20 0 0 19 13137 -3096)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"464\"\n x2=\"444\"\n y1=\"180\"\n y2=\"199\"\n fill=\"none\"\n stroke=\"url(#ab)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"y\"\n x1=\"-619.05\"\n x2=\"-619.52\"\n y1=\"170.82\"\n y2=\"171.82\"\n gradientTransform=\"matrix(13.83 0 0 22.85 9050 -3703.4)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"491.4\"\n x2=\"477.5\"\n y1=\"203\"\n y2=\"225.9\"\n fill=\"none\"\n stroke=\"url(#y)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"x\"\n x1=\"-578.5\"\n x2=\"-578.63\"\n y1=\"170.31\"\n y2=\"171.31\"\n gradientTransform=\"matrix(7.5 0 0 24.5 4860 -3953)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"524.5\"\n x2=\"517\"\n y1=\"219.5\"\n y2=\"244\"\n fill=\"none\"\n stroke=\"url(#x)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id=\"z\"\n x1=\"666.5\"\n x2=\"666.5\"\n y1=\"170.31\"\n y2=\"171.31\"\n gradientTransform=\"matrix(.5 0 0 24.5 231.5 -3944)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"564.5\"\n x2=\"565\"\n y1=\"228.5\"\n y2=\"253\"\n fill=\"none\"\n stroke=\"url(#z)\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n </g>\n </svg>\n )\n}\n","import { onCleanup, $TRACK, untrack, createRoot, createSignal, createMemo, mapArray, on } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/index.ts\nvar FALLBACK = Symbol(\"fallback\");\nfunction dispose(list) {\n for (const o of list)\n o.dispose();\n}\nfunction keyArray(items, keyFn, mapFn, options = {}) {\n if (isServer) {\n const itemsRef = items();\n let s = [];\n if (itemsRef && itemsRef.length) {\n for (let i = 0, len = itemsRef.length; i < len; i++)\n s.push(\n mapFn(\n () => itemsRef[i],\n () => i\n )\n );\n } else if (options.fallback)\n s = [options.fallback()];\n return () => s;\n }\n const prev = /* @__PURE__ */ new Map();\n onCleanup(() => dispose(prev.values()));\n return () => {\n const list = items() || [];\n list[$TRACK];\n return untrack(() => {\n if (!list.length) {\n dispose(prev.values());\n prev.clear();\n if (!options.fallback)\n return [];\n const fb2 = createRoot((dispose2) => {\n prev.set(FALLBACK, { dispose: dispose2 });\n return options.fallback();\n });\n return [fb2];\n }\n const result = new Array(list.length);\n const fb = prev.get(FALLBACK);\n if (!prev.size || fb) {\n fb?.dispose();\n prev.delete(FALLBACK);\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n const key = keyFn(item, i);\n addNewItem(result, item, i, key);\n }\n return result;\n }\n const prevKeys = new Set(prev.keys());\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n const key = keyFn(item, i);\n prevKeys.delete(key);\n const lookup = prev.get(key);\n if (lookup) {\n result[i] = lookup.mapped;\n lookup.setIndex?.(i);\n lookup.setItem(() => item);\n } else\n addNewItem(result, item, i, key);\n }\n for (const key of prevKeys) {\n prev.get(key)?.dispose();\n prev.delete(key);\n }\n return result;\n });\n };\n function addNewItem(list, item, i, key) {\n createRoot((dispose2) => {\n const [getItem, setItem] = createSignal(item);\n const save = { setItem, dispose: dispose2 };\n if (mapFn.length > 1) {\n const [index, setIndex] = createSignal(i);\n save.setIndex = setIndex;\n save.mapped = mapFn(getItem, index);\n } else\n save.mapped = mapFn(getItem);\n prev.set(key, save);\n list[i] = save.mapped;\n });\n }\n}\nfunction Key(props) {\n const { by } = props;\n return createMemo(\n keyArray(\n () => props.each,\n typeof by === \"function\" ? by : (v) => v[by],\n props.children,\n \"fallback\" in props ? { fallback: () => props.fallback } : void 0\n )\n );\n}\nfunction Entries(props) {\n const mapFn = props.children;\n return createMemo(\n mapArray(\n () => props.of && Object.keys(props.of),\n mapFn.length < 3 ? (key) => mapFn(\n key,\n () => props.of[key]\n ) : (key, i) => mapFn(key, () => props.of[key], i),\n \"fallback\" in props ? { fallback: () => props.fallback } : void 0\n )\n );\n}\nfunction Rerun(props) {\n const key = typeof props.on === \"function\" || Array.isArray(props.on) ? props.on : () => props.on;\n return createMemo(\n on(key, (a, b) => {\n const child = props.children;\n return typeof child === \"function\" && child.length > 0 ? child(a, b) : child;\n })\n );\n}\n\nexport { Entries, Key, Rerun, keyArray };\n","import { displayValue } from './utils'\nimport superjson from 'superjson'\nimport { css, cx } from '@emotion/css'\nimport { tokens } from './theme'\nimport { createMemo, createSignal, Index, Match, Show, Switch } from 'solid-js'\nimport { Key } from '@solid-primitives/keyed'\nimport { CopiedCopier, Copier, ErrorCopier } from './icons'\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nexport function chunkArray<T extends { label: string; value: unknown }>(\n array: T[],\n size: number,\n): T[][] {\n if (size < 1) return []\n let i = 0\n const result: T[][] = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\nconst Expander = (props: { expanded: boolean }) => {\n const styles = getStyles()\n\n return (\n <span\n class={cx(\n styles.expander,\n css`\n transform: rotate(${props.expanded ? 90 : 0}deg);\n `,\n )}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 12L10 8L6 4\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n )\n}\n\ntype CopyState = 'NoCopy' | 'SuccessCopy' | 'ErrorCopy'\nconst CopyButton = (props: { value: unknown }) => {\n const styles = getStyles()\n const [copyState, setCopyState] = createSignal<CopyState>('NoCopy')\n\n return (\n <button\n class={styles.copyButton}\n aria-label={`${\n copyState() === 'NoCopy'\n ? 'Copy object to clipboard'\n : copyState() === 'SuccessCopy'\n ? 'Object copied to clipboard'\n : 'Error copying object to clipboard'\n }`}\n onClick={\n copyState() === 'NoCopy'\n ? () => {\n navigator.clipboard\n .writeText(superjson.stringify(props.value))\n .then(\n () => {\n setCopyState('SuccessCopy')\n setTimeout(() => {\n setCopyState('NoCopy')\n }, 1500)\n },\n (err) => {\n console.error('Failed to copy: ', err)\n setCopyState('ErrorCopy')\n setTimeout(() => {\n setCopyState('NoCopy')\n }, 1500)\n },\n )\n }\n : undefined\n }\n >\n <Switch>\n <Match when={copyState() === 'NoCopy'}>\n <Copier />\n </Match>\n <Match when={copyState() === 'SuccessCopy'}>\n <CopiedCopier />\n </Match>\n <Match when={copyState() === 'ErrorCopy'}>\n <ErrorCopier />\n </Match>\n </Switch>\n </button>\n )\n}\n\ntype ExplorerProps = {\n copyable?: boolean\n label: string\n value: unknown\n defaultExpanded?: string[]\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer(props: ExplorerProps) {\n const styles = getStyles()\n\n const [expanded, setExpanded] = createSignal(\n (props.defaultExpanded || []).includes(props.label),\n )\n const toggleExpanded = () => setExpanded((old) => !old)\n const [expandedPages, setExpandedPages] = createSignal<number[]>([])\n\n const subEntries = createMemo(() => {\n if (Array.isArray(props.value)) {\n return props.value.map((d, i) => ({\n label: i.toString(),\n value: d,\n }))\n } else if (\n props.value !== null &&\n typeof props.value === 'object' &&\n isIterable(props.value) &&\n typeof props.value[Symbol.iterator] === 'function'\n ) {\n if (props.value instanceof Map) {\n return Array.from(props.value, ([key, val]) => ({\n label: key,\n value: val,\n }))\n }\n return Array.from(props.value, (val, i) => ({\n label: i.toString(),\n value: val,\n }))\n } else if (typeof props.value === 'object' && props.value !== null) {\n return Object.entries(props.value).map(([key, val]) => ({\n label: key,\n value: val,\n }))\n }\n return []\n })\n\n const type = createMemo<string>(() => {\n if (Array.isArray(props.value)) {\n return 'array'\n } else if (\n props.value !== null &&\n typeof props.value === 'object' &&\n isIterable(props.value) &&\n typeof props.value[Symbol.iterator] === 'function'\n ) {\n return 'Iterable'\n } else if (typeof props.value === 'object' && props.value !== null) {\n return 'object'\n }\n return typeof props.value\n })\n\n const subEntryPages = createMemo(() => chunkArray(subEntries(), 100))\n\n return (\n <div class={styles.entry}>\n <Show when={subEntryPages().length}>\n <button class={styles.expanderButton} onClick={() => toggleExpanded()}>\n <Expander expanded={expanded()} /> <span>{props.label}</span>{' '}\n <span class={styles.info}>\n {String(type()).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries().length} {subEntries().length > 1 ? `items` : `item`}\n </span>\n </button>\n <Show when={props.copyable}>\n <CopyButton value={props.value} />\n </Show>\n <Show when={expanded()}>\n <Show when={subEntryPages().length === 1}>\n <div class={styles.subEntry}>\n <Key each={subEntries()} by={(item) => item.label}>\n {(entry) => {\n return (\n <Explorer\n defaultExpanded={props.defaultExpanded}\n label={entry().label}\n value={entry().value}\n copyable={props.copyable}\n />\n )\n }}\n </Key>\n </div>\n </Show>\n <Show when={subEntryPages().length > 1}>\n <div class={styles.subEntry}>\n <Index each={subEntryPages()}>\n {(entries, index) => (\n <div>\n <div class={styles.entry}>\n <button\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n class={styles.expanderButton}\n >\n <Expander expanded={expandedPages().includes(index)} />{' '}\n [{index * 100}...\n {index * 100 + 100 - 1}]\n </button>\n <Show when={expandedPages().includes(index)}>\n <div class={styles.subEntry}>\n <Key each={entries()} by={(entry) => entry.label}>\n {(entry) => (\n <Explorer\n defaultExpanded={props.defaultExpanded}\n label={entry().label}\n value={entry().value}\n copyable={props.copyable}\n />\n )}\n </Key>\n </div>\n </Show>\n </div>\n </div>\n )}\n </Index>\n </div>\n </Show>\n </Show>\n </Show>\n <Show when={subEntryPages().length === 0}>\n <span class={styles.label}>{props.label}:</span>{' '}\n <span class={styles.value}>{displayValue(props.value)}</span>\n </Show>\n </div>\n )\n}\n\nconst getStyles = () => {\n const { colors, font, size, border } = tokens\n\n return {\n entry: css`\n & * {\n font-size: ${font.size.sm};\n font-family: 'Menlo', 'Fira Code', monospace;\n line-height: 1.7;\n }\n position: relative;\n outline: none;\n word-break: break-word;\n `,\n subEntry: css`\n margin: 0 0 0 0.5em;\n padding-left: 0.75em;\n border-left: 2px solid ${colors.darkGray[400]};\n `,\n expander: css`\n & path {\n stroke: ${colors.gray[400]};\n }\n display: inline-flex;\n align-items: center;\n transition: all 0.1s ease;\n `,\n expanderButton: css`\n cursor: pointer;\n color: inherit;\n font: inherit;\n outline: inherit;\n line-height: ${font.size.sm};\n background: transparent;\n border: none;\n padding: 0;\n display: inline-flex;\n align-items: center;\n gap: ${size[1]};\n\n &:focus-visible {\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n info: css`\n color: ${colors.gray[500]};\n font-size: ${font.size.xs};\n line-height: ${font.size.xs};\n margin-left: ${size[1]};\n `,\n label: css`\n color: ${colors.gray[300]};\n `,\n value: css`\n color: ${colors.purple[400]};\n `,\n copyButton: css`\n background-color: transparent;\n border: none;\n display: inline-flex;\n padding: 0px;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n width: ${size[3.5]};\n height: ${size[3.5]};\n position: relative;\n top: 4px;\n left: ${size[2]};\n z-index: 1;\n\n &:hover svg .copier {\n stroke: ${colors.gray[500]} !important;\n }\n\n &:focus-visible {\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n outline-offset: 2px;\n }\n `,\n }\n}\n","import type { QueryClient, onlineManager, Query } from '@tanstack/query-core'\nimport { createContext, useContext } from 'solid-js'\n\ntype XPosition = 'left' | 'right'\ntype YPosition = 'top' | 'bottom'\nexport type DevtoolsPosition = XPosition | YPosition\nexport type DevtoolsButtonPosition = `${YPosition}-${XPosition}`\n\nexport interface DevToolsErrorType {\n /**\n * The name of the error.\n */\n name: string\n /**\n * How the error is initialized.\n */\n initializer: (query: Query) => Error\n}\n\nexport interface QueryDevtoolsProps {\n readonly client: QueryClient\n queryFlavor: string\n version: string\n onlineManager: typeof onlineManager\n\n buttonPosition?: DevtoolsButtonPosition\n position?: DevtoolsPosition\n initialIsOpen?: boolean\n errorTypes?: DevToolsErrorType[]\n}\n\nexport const QueryDevtoolsContext = createContext<QueryDevtoolsProps>({\n client: undefined as unknown as QueryClient,\n onlineManager: undefined as unknown as typeof onlineManager,\n queryFlavor: '',\n version: '',\n})\n\nexport function useQueryDevtoolsContext() {\n return useContext(QueryDevtoolsContext)\n}\n","import { untrack, createSignal, useTransition, createComputed, batch, createMemo, $TRACK } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/index.ts\nvar noop = () => {\n};\nvar noopTransition = (el, done) => done();\nfunction createSwitchTransition(source, options) {\n const initSource = untrack(source);\n const initReturned = initSource ? [initSource] : [];\n if (isServer) {\n return () => initReturned;\n }\n const { onEnter = noopTransition, onExit = noopTransition } = options;\n const [returned, setReturned] = createSignal(\n options.appear ? [] : initReturned\n );\n const [isTransitionPending] = useTransition();\n let next;\n let isExiting = false;\n function exitTransition(el, after) {\n if (!el)\n return after && after();\n isExiting = true;\n onExit(el, () => {\n batch(() => {\n isExiting = false;\n setReturned((p) => p.filter((e) => e !== el));\n after && after();\n });\n });\n }\n function enterTransition(after) {\n const el = next;\n if (!el)\n return after && after();\n next = void 0;\n setReturned((p) => [el, ...p]);\n onEnter(el, after ?? noop);\n }\n const triggerTransitions = options.mode === \"out-in\" ? (\n // exit -> enter\n (prev) => isExiting || exitTransition(prev, enterTransition)\n ) : options.mode === \"in-out\" ? (\n // enter -> exit\n (prev) => enterTransition(() => exitTransition(prev))\n ) : (\n // exit & enter\n (prev) => {\n enterTransition();\n exitTransition(prev);\n }\n );\n createComputed(\n (prev) => {\n const el = source();\n if (untrack(isTransitionPending)) {\n isTransitionPending();\n return prev;\n }\n if (el !== prev) {\n next = el;\n batch(() => untrack(() => triggerTransitions(prev)));\n }\n return el;\n },\n options.appear ? void 0 : initSource\n );\n return returned;\n}\nfunction createListTransition(source, options) {\n const initSource = untrack(source);\n if (isServer) {\n const copy = initSource.slice();\n return () => copy;\n }\n const { onChange } = options;\n let prevSet = new Set(options.appear ? void 0 : initSource);\n const exiting = /* @__PURE__ */ new WeakSet();\n const [toRemove, setToRemove] = createSignal([], { equals: false });\n const [isTransitionPending] = useTransition();\n const finishRemoved = options.exitMethod === \"remove\" ? noop : (els) => {\n setToRemove((p) => (p.push.apply(p, els), p));\n for (const el of els)\n exiting.delete(el);\n };\n const handleRemoved = options.exitMethod === \"remove\" ? noop : options.exitMethod === \"keep-index\" ? (els, el, i) => els.splice(i, 0, el) : (els, el) => els.push(el);\n return createMemo(\n (prev) => {\n const elsToRemove = toRemove();\n const sourceList = source();\n sourceList[$TRACK];\n if (untrack(isTransitionPending)) {\n isTransitionPending();\n return prev;\n }\n if (elsToRemove.length) {\n const next = prev.filter((e) => !elsToRemove.includes(e));\n elsToRemove.length = 0;\n onChange({ list: next, added: [], removed: [], unchanged: next, finishRemoved });\n return next;\n }\n return untrack(() => {\n const nextSet = new Set(sourceList);\n const next = sourceList.slice();\n const added = [];\n const removed = [];\n const unchanged = [];\n for (const el of sourceList) {\n (prevSet.has(el) ? unchanged : added).push(el);\n }\n let nothingChanged = !added.length;\n for (let i = 0; i < prev.length; i++) {\n const el = prev[i];\n if (!nextSet.has(el)) {\n if (!exiting.has(el)) {\n removed.push(el);\n exiting.add(el);\n }\n handleRemoved(next, el, i);\n }\n if (nothingChanged && el !== next[i])\n nothingChanged = false;\n }\n if (!removed.length && nothingChanged)\n return prev;\n onChange({ list: next, added, removed, unchanged, finishRemoved });\n prevSet = nextSet;\n return next;\n });\n },\n options.appear ? [] : initSource.slice()\n );\n}\n\nexport { createListTransition, createSwitchTransition };\n","import { DEV, untrack, getOwner, onCleanup, createSignal, sharedConfig, onMount } from 'solid-js';\nimport { isServer } from 'solid-js/web';\nexport { isServer } from 'solid-js/web';\n\n// src/index.ts\nvar noop = () => void 0;\nvar trueFn = () => true;\nvar falseFn = () => false;\nvar isClient = !isServer;\nvar isDev = isClient && !!DEV;\nvar isProd = !isDev;\nvar ofClass = (v, c) => v instanceof c || v && v.constructor === c;\nfunction isObject(value) {\n return value !== null && (typeof value === \"object\" || typeof value === \"function\");\n}\nvar isNonNullable = (i) => i != null;\nvar filterNonNullable = (arr) => arr.filter(isNonNullable);\nvar compare = (a, b) => a < b ? -1 : a > b ? 1 : 0;\nvar arrayEquals = (a, b) => a === b || a.length === b.length && a.every((e, i) => e === b[i]);\nfunction chain(callbacks) {\n return (...args) => {\n for (const callback of callbacks)\n callback && callback(...args);\n };\n}\nfunction reverseChain(callbacks) {\n return (...args) => {\n for (let i = callbacks.length - 1; i >= 0; i--) {\n const callback = callbacks[i];\n callback && callback(...args);\n }\n };\n}\nvar clamp = (n, min, max) => Math.min(Math.max(n, min), max);\nvar access = (v) => typeof v === \"function\" && !v.length ? v() : v;\nvar asArray = (value) => Array.isArray(value) ? value : value ? [value] : [];\nvar accessArray = (list) => list.map((v) => access(v));\nvar withAccess = (value, fn) => {\n const _value = access(value);\n typeof _value != null && fn(_value);\n};\nvar asAccessor = (v) => typeof v === \"function\" ? v : () => v;\nfunction accessWith(valueOrFn, ...args) {\n return typeof valueOrFn === \"function\" ? valueOrFn(...args) : valueOrFn;\n}\nfunction defer(deps, fn, initialValue) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let shouldDefer = true;\n return (prevValue) => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++)\n input[i] = deps[i]();\n } else\n input = deps();\n if (shouldDefer) {\n shouldDefer = false;\n prevInput = input;\n return initialValue;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\nvar entries = Object.entries;\nvar keys = Object.keys;\nvar tryOnCleanup = isDev ? (fn) => getOwner() ? onCleanup(fn) : fn : onCleanup;\nvar createCallbackStack = () => {\n let stack = [];\n const clear = () => stack = [];\n return {\n push: (...callbacks) => stack.push(...callbacks),\n execute(arg0, arg1, arg2, arg3) {\n stack.forEach((cb) => cb(arg0, arg1, arg2, arg3));\n clear();\n },\n clear\n };\n};\nfunction createMicrotask(fn) {\n let calls = 0;\n let args;\n return (...a) => {\n args = a, calls++;\n queueMicrotask(() => --calls === 0 && fn(...args));\n };\n}\nfunction createHydratableSignal(serverValue, update, options) {\n if (isServer) {\n return createSignal(serverValue, options);\n }\n if (sharedConfig.context) {\n const [state, setState] = createSignal(serverValue, options);\n onMount(() => setState(() => update()));\n return [state, setState];\n }\n return createSignal(update(), options);\n}\nvar createHydrateSignal = createHydratableSignal;\nfunction handleDiffArray(current, prev, handleAdded, handleRemoved) {\n const currLength = current.length;\n const prevLength = prev.length;\n let i = 0;\n if (!prevLength) {\n for (; i < currLength; i++)\n handleAdded(current[i]);\n return;\n }\n if (!currLength) {\n for (; i < prevLength; i++)\n handleRemoved(prev[i]);\n return;\n }\n for (; i < prevLength; i++) {\n if (prev[i] !== current[i])\n break;\n }\n let prevEl;\n let currEl;\n prev = prev.slice(i);\n current = current.slice(i);\n for (prevEl of prev) {\n if (!current.includes(prevEl))\n handleRemoved(prevEl);\n }\n for (currEl of current) {\n if (!prev.includes(currEl))\n handleAdded(currEl);\n }\n}\n\nexport { access, accessArray, accessWith, arrayEquals, asAccessor, asArray, chain, clamp, compare, createCallbackStack, createHydratableSignal, createHydrateSignal, createMicrotask, defer, entries, falseFn, filterNonNullable, handleDiffArray, isClient, isDev, isNonNullable, isObject, isProd, keys, noop, ofClass, reverseChain, trueFn, tryOnCleanup, withAccess };\n","import { chain, arrayEquals } from '@solid-primitives/utils';\nimport { createMemo, children, createComputed, untrack, onCleanup } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/index.ts\nfunction mergeRefs(...refs) {\n return chain(refs);\n}\nvar defaultElementPredicate = isServer ? (item) => item != null && typeof item === \"object\" && \"t\" in item : (item) => item instanceof Element;\nfunction getResolvedElements(value, predicate) {\n if (predicate(value))\n return value;\n if (typeof value === \"function\" && !value.length)\n return getResolvedElements(value(), predicate);\n if (Array.isArray(value)) {\n const results = [];\n for (const item of value) {\n const result = getResolvedElements(item, predicate);\n if (result)\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results.length ? results : null;\n }\n return null;\n}\nfunction resolveElements(fn, predicate = defaultElementPredicate, serverPredicate = defaultElementPredicate) {\n const children2 = createMemo(fn);\n const memo = createMemo(\n () => getResolvedElements(children2(), isServer ? serverPredicate : predicate)\n );\n memo.toArray = () => {\n const value = memo();\n return Array.isArray(value) ? value : value ? [value] : [];\n };\n return memo;\n}\nfunction getFirstChild(value, predicate) {\n if (predicate(value))\n return value;\n if (typeof value === \"function\" && !value.length)\n return getFirstChild(value(), predicate);\n if (Array.isArray(value)) {\n for (const item of value) {\n const result = getFirstChild(item, predicate);\n if (result)\n return result;\n }\n }\n return null;\n}\nfunction resolveFirst(fn, predicate = defaultElementPredicate, serverPredicate = defaultElementPredicate) {\n const children2 = createMemo(fn);\n return createMemo(() => getFirstChild(children2(), isServer ? serverPredicate : predicate));\n}\nfunction Refs(props) {\n if (isServer) {\n return props.children;\n }\n const cb = props.ref, resolved = children(() => props.children);\n let prev = [];\n createComputed(() => {\n const els = resolved.toArray().filter(defaultElementPredicate);\n if (!arrayEquals(prev, els))\n untrack(() => cb(els));\n prev = els;\n }, []);\n onCleanup(() => prev.length && cb([]));\n return resolved;\n}\nfunction Ref(props) {\n if (isServer) {\n return props.children;\n }\n const cb = props.ref, resolved = children(() => props.children);\n let prev;\n createComputed(() => {\n const el = resolved.toArray().find(defaultElementPredicate);\n if (el !== prev)\n untrack(() => cb(el));\n prev = el;\n });\n onCleanup(() => prev && cb(void 0));\n return resolved;\n}\n\nexport { Ref, Refs, defaultElementPredicate, getFirstChild, getResolvedElements, mergeRefs, resolveElements, resolveFirst };\n","// src/common.ts\nimport { createMemo } from \"solid-js\";\nfunction createClassnames(props) {\n return createMemo(() => {\n const name = props.name || \"s\";\n return {\n enterActiveClasses: (props.enterActiveClass || name + \"-enter-active\").split(\" \"),\n enterClasses: (props.enterClass || name + \"-enter\").split(\" \"),\n enterToClasses: (props.enterToClass || name + \"-enter-to\").split(\" \"),\n exitActiveClasses: (props.exitActiveClass || name + \"-exit-active\").split(\" \"),\n exitClasses: (props.exitClass || name + \"-exit\").split(\" \"),\n exitToClasses: (props.exitToClass || name + \"-exit-to\").split(\" \"),\n moveClasses: (props.moveClass || name + \"-move\").split(\" \")\n };\n });\n}\nfunction nextFrame(fn) {\n requestAnimationFrame(() => requestAnimationFrame(fn));\n}\nfunction enterTransition(classnames, events, el, done) {\n const { enterClasses, enterActiveClasses, enterToClasses } = classnames, { onBeforeEnter, onEnter, onAfterEnter } = events;\n onBeforeEnter?.(el);\n el.classList.add(...enterClasses);\n el.classList.add(...enterActiveClasses);\n queueMicrotask(() => {\n if (!el.parentNode)\n return done?.();\n onEnter?.(el, () => endTransition());\n });\n nextFrame(() => {\n el.classList.remove(...enterClasses);\n el.classList.add(...enterToClasses);\n if (!onEnter || onEnter.length < 2) {\n el.addEventListener(\"transitionend\", endTransition);\n el.addEventListener(\"animationend\", endTransition);\n }\n });\n function endTransition(e) {\n if (!e || e.target === el) {\n done?.();\n el.removeEventListener(\"transitionend\", endTransition);\n el.removeEventListener(\"animationend\", endTransition);\n el.classList.remove(...enterActiveClasses);\n el.classList.remove(...enterToClasses);\n onAfterEnter?.(el);\n }\n }\n}\nfunction exitTransition(classnames, events, el, done) {\n const { exitClasses, exitActiveClasses, exitToClasses } = classnames, { onBeforeExit, onExit, onAfterExit } = events;\n if (!el.parentNode)\n return done?.();\n onBeforeExit?.(el);\n el.classList.add(...exitClasses);\n el.classList.add(...exitActiveClasses);\n onExit?.(el, () => endTransition());\n nextFrame(() => {\n el.classList.remove(...exitClasses);\n el.classList.add(...exitToClasses);\n if (!onExit || onExit.length < 2) {\n el.addEventListener(\"transitionend\", endTransition);\n el.addEventListener(\"animationend\", endTransition);\n }\n });\n function endTransition(e) {\n if (!e || e.target === el) {\n done?.();\n el.removeEventListener(\"transitionend\", endTransition);\n el.removeEventListener(\"animationend\", endTransition);\n el.classList.remove(...exitActiveClasses);\n el.classList.remove(...exitToClasses);\n onAfterExit?.(el);\n }\n }\n}\n\n// src/Transition.ts\nimport { createSwitchTransition } from \"@solid-primitives/transition-group\";\nimport { resolveFirst } from \"@solid-primitives/refs\";\nvar TRANSITION_MODE_MAP = {\n inout: \"in-out\",\n outin: \"out-in\"\n};\nvar Transition = (props) => {\n const classnames = createClassnames(props);\n return createSwitchTransition(\n resolveFirst(() => props.children),\n {\n mode: TRANSITION_MODE_MAP[props.mode],\n appear: props.appear,\n onEnter(el, done) {\n enterTransition(classnames(), props, el, done);\n },\n onExit(el, done) {\n exitTransition(classnames(), props, el, done);\n }\n }\n );\n};\n\n// src/TransitionGroup.ts\nimport { createListTransition } from \"@solid-primitives/transition-group\";\nimport { resolveElements } from \"@solid-primitives/refs\";\nvar TransitionGroup = (props) => {\n const classnames = createClassnames(props);\n return createListTransition(resolveElements(() => props.children).toArray, {\n appear: props.appear,\n exitMethod: \"keep-index\",\n onChange({ added, removed, finishRemoved, list }) {\n const classes = classnames();\n for (const el of added) {\n enterTransition(classes, props, el);\n }\n const toMove = [];\n for (const el of list) {\n if (el.isConnected && (el instanceof HTMLElement || el instanceof SVGElement)) {\n toMove.push({ el, rect: el.getBoundingClientRect() });\n }\n }\n queueMicrotask(() => {\n const moved = [];\n for (const { el, rect } of toMove) {\n if (el.isConnected) {\n const newRect = el.getBoundingClientRect(), dX = rect.left - newRect.left, dY = rect.top - newRect.top;\n if (dX || dY) {\n el.style.transform = `translate(${dX}px, ${dY}px)`;\n el.style.transitionDuration = \"0s\";\n moved.push(el);\n }\n }\n }\n document.body.offsetHeight;\n for (const el of moved) {\n let endTransition2 = function(e) {\n if (e.target === el || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", endTransition2);\n el.classList.remove(...classes.moveClasses);\n }\n };\n var endTransition = endTransition2;\n el.classList.add(...classes.moveClasses);\n el.style.transform = el.style.transitionDuration = \"\";\n el.addEventListener(\"transitionend\", endTransition2);\n }\n });\n for (const el of removed) {\n exitTransition(classes, props, el, () => finishRemoved([el]));\n }\n }\n });\n};\nexport {\n Transition,\n TransitionGroup\n};\n","import { createSignal, onMount, onCleanup, createEffect } from 'solid-js';\nimport { createHydrateSignal } from '@solid-primitives/utils';\n\n// src/storage.ts\nfunction createStorage(props) {\n const [error, setError] = createSignal();\n const handleError = props?.throw ? (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n throw err;\n } : (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n };\n const apis = props?.api ? Array.isArray(props.api) ? props.api : [props.api] : [globalThis.localStorage].filter(Boolean);\n const prefix = props?.prefix ? `${props.prefix}.` : \"\";\n const signals = /* @__PURE__ */ new Map();\n const store = new Proxy(\n {},\n {\n get(_, key) {\n let node = signals.get(key);\n if (!node) {\n node = createSignal(void 0, { equals: false });\n signals.set(key, node);\n }\n node[0]();\n const value = apis.reduce(\n (result, api) => {\n if (result !== null || !api) {\n return result;\n }\n try {\n return api.getItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error reading ${prefix}${key} from ${api[\"name\"]}`);\n return null;\n }\n },\n null\n );\n if (value !== null && props?.deserializer) {\n return props.deserializer(value, key, props.options);\n }\n return value;\n }\n }\n );\n const setter = (key, value, options) => {\n const filteredValue = props?.serializer ? props.serializer(value, key, options ?? props.options) : value;\n const apiKey = `${prefix}${key}`;\n apis.forEach((api) => {\n try {\n api.getItem(apiKey) !== filteredValue && api.setItem(apiKey, filteredValue);\n } catch (err) {\n handleError(err, `Error setting ${prefix}${key} to ${filteredValue} in ${api.name}`);\n }\n });\n const node = signals.get(key);\n node && node[1]();\n };\n const remove = (key) => apis.forEach((api) => {\n try {\n api.removeItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error removing ${prefix}${key} from ${api.name}`);\n }\n });\n const clear = () => apis.forEach((api) => {\n try {\n api.clear();\n } catch (err) {\n handleError(err, `Error clearing ${api.name}`);\n }\n });\n const toJSON = () => {\n const result = {};\n const addValue = (key, value) => {\n if (!result.hasOwnProperty(key)) {\n const filteredValue = value && props?.deserializer ? props.deserializer(value, key, props.options) : value;\n if (filteredValue) {\n result[key] = filteredValue;\n }\n }\n };\n apis.forEach((api) => {\n if (typeof api.getAll === \"function\") {\n let values;\n try {\n values = api.getAll();\n } catch (err) {\n handleError(err, `Error getting all values from in ${api.name}`);\n }\n for (const key of values) {\n addValue(key, values[key]);\n }\n } else {\n let index = 0, key;\n try {\n while (key = api.key(index++)) {\n if (!result.hasOwnProperty(key)) {\n addValue(key, api.getItem(key));\n }\n }\n } catch (err) {\n handleError(err, `Error getting all values from ${api.name}`);\n }\n }\n });\n return result;\n };\n props?.sync !== false && onMount(() => {\n const listener = (ev) => {\n let changed = false;\n apis.forEach((api) => {\n try {\n if (api !== ev.storageArea && ev.key && ev.newValue !== api.getItem(ev.key)) {\n ev.newValue ? api.setItem(ev.key, ev.newValue) : api.removeItem(ev.key);\n changed = true;\n }\n } catch (err) {\n handleError(\n err,\n `Error synching api ${api.name} from storage event (${ev.key}=${ev.newValue})`\n );\n }\n });\n changed && ev.key && signals.get(ev.key)?.[1]();\n };\n if (\"addEventListener\" in globalThis) {\n globalThis.addEventListener(\"storage\", listener);\n onCleanup(() => globalThis.removeEventListener(\"storage\", listener));\n } else {\n apis.forEach((api) => api.addEventListener?.(\"storage\", listener));\n onCleanup(() => apis.forEach((api) => api.removeEventListener?.(\"storage\", listener)));\n }\n });\n return [\n store,\n setter,\n {\n clear,\n error,\n remove,\n toJSON\n }\n ];\n}\nfunction createAsyncStorage(props) {\n const [error, setError] = createSignal();\n const handleError = props?.throw ? (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n throw err;\n } : (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n };\n const apis = props?.api ? Array.isArray(props.api) ? props.api : [props.api] : [];\n const prefix = props?.prefix ? `${props.prefix}.` : \"\";\n const signals = /* @__PURE__ */ new Map();\n const store = new Proxy({}, {\n get(_, key) {\n let node = signals.get(key);\n if (!node) {\n node = createSignal(void 0, { equals: false });\n signals.set(key, node);\n }\n node[0]();\n return apis.reduce((result, api) => {\n if (result !== null || !api) {\n return result;\n }\n let value;\n try {\n value = api.getItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error getting ${prefix}${key} from ${api.name}`);\n }\n if (value instanceof Promise) {\n return value.then(\n (newValue) => newValue && props?.deserializer ? props.deserializer(newValue, key, props.options) : newValue\n );\n }\n return value !== null && props?.deserializer ? Promise.resolve(props.deserializer(value, key, props.options)) : Promise.resolve(value);\n }, null);\n }\n });\n const setter = (key, value, options) => {\n const filteredValue = props?.serializer ? props.serializer(value, key, options ?? props.options) : value;\n return Promise.all(\n apis.map((api) => {\n try {\n api.setItem(`${prefix}${key}`, filteredValue, options ?? props?.options);\n } catch (err) {\n handleError(err, `Error setting ${prefix}${key} to ${filteredValue} in ${api.name}`);\n }\n })\n ).then(() => {\n const node = signals.get(key);\n node && node[1]();\n });\n };\n const remove = (key) => {\n Promise.all(\n apis.map((api) => {\n try {\n api.removeItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error removing ${prefix}${key} from ${api.name}`);\n }\n })\n ).then(() => {\n const node = signals.get(key);\n node && node[1]();\n });\n };\n const clear = () => Promise.all(\n apis.map(async (api) => {\n let index = 0, key;\n while (key = await api.key(index++)) {\n try {\n await api.removeItem(key);\n } catch (err) {\n handleError(err, `Error removing ${key} from ${api.name} during clear()`);\n }\n }\n })\n ).then(() => {\n return;\n });\n const toJSON = async () => {\n const result = {};\n const addValue = (key, value) => {\n if (!result.hasOwnProperty(key)) {\n const filteredValue = value && props?.deserializer ? props.deserializer(value, key, props.options) : value;\n if (filteredValue) {\n result[key] = filteredValue;\n }\n }\n };\n await Promise.all(\n apis.map(async (api) => {\n if (typeof api.getAll === \"function\") {\n try {\n const values = await api.getAll();\n for (const key of values) {\n addValue(key, values[key]);\n }\n } catch (err) {\n handleError(err, `Error attempting to get all keys from ${api.name}`);\n }\n } else {\n let index = 0, key;\n try {\n while (key = await api.key(index++)) {\n addValue(key, await api.getItem(key));\n }\n } catch (err) {\n handleError(err, `Error attempting to get all keys from ${api.name}`);\n }\n }\n })\n );\n return result;\n };\n props?.sync !== false && onMount(() => {\n const listener = (ev) => {\n let changed = false;\n apis.forEach(async (api) => {\n try {\n if (api !== ev.storageArea && ev.key && ev.newValue !== await api.getItem(ev.key)) {\n ev.newValue ? api.setItem(ev.key, ev.newValue) : api.removeItem(ev.key);\n changed = true;\n }\n } catch (err) {\n handleError(err, \"Error attempting to sync on event\");\n }\n });\n changed && ev.key && signals.get(ev.key)?.[1]();\n };\n if (\"addEventListener\" in globalThis) {\n globalThis.addEventListener(\"storage\", listener);\n onCleanup(() => globalThis.removeEventListener(\"storage\", listener));\n } else {\n apis.forEach((api) => api.addEventListener?.(\"storage\", listener));\n onCleanup(() => apis.forEach((api) => api.removeEventListener?.(\"storage\", listener)));\n }\n });\n return [\n store,\n setter,\n {\n remove,\n clear,\n error,\n toJSON\n }\n ];\n}\nfunction createStorageSignal(key, initialValue, props) {\n const [error, setError] = createSignal();\n const apis = props?.api ? Array.isArray(props.api) ? props.api : [props.api] : [globalThis.localStorage].filter(Boolean);\n const prefix = props?.prefix ? `${props.prefix}.` : \"\";\n const read = () => apis.reduce((result, api) => {\n if (result !== null || !api) {\n return result;\n }\n let value = null;\n try {\n value = api.getItem(`${prefix}${key}`);\n } catch (err) {\n setError(\n err instanceof Error ? err : new Error(`Error reading ${prefix}${key} from ${api.name}`)\n );\n if (props?.throw) {\n throw err;\n }\n }\n if (value !== null && props?.deserializer) {\n return props.deserializer(value + \"\", key, props.options);\n }\n return value;\n }, null);\n const [accessor, setter] = createHydrateSignal(\n initialValue,\n () => read() ?? initialValue,\n props\n );\n createEffect(() => {\n const value = accessor();\n const filteredValue = props?.serializer ? props.serializer(value, key, props.options) : value + \"\";\n const apiKey = `${prefix}${key}`;\n try {\n if (value === null) {\n apis.forEach((api) => api.getItem(apiKey) !== null && api.removeItem(apiKey));\n } else {\n apis.forEach(\n (api) => api.getItem(apiKey) !== filteredValue && api.setItem(apiKey, filteredValue, props?.options)\n );\n }\n } catch (err) {\n setError(\n err instanceof Error ? err : new Error(`Error ${value === null ? \"removing\" : \"writing\"} value`)\n );\n if (props?.throw) {\n throw err;\n }\n }\n });\n const refetch = () => {\n const value = read();\n setter(value);\n };\n props?.sync !== false && onMount(() => {\n const listener = (ev) => {\n let changed = false;\n try {\n apis.forEach((api) => {\n if (api !== ev.storageArea && ev.key && ev.newValue !== api.getItem(ev.key)) {\n ev.newValue ? api.setItem(ev.key, ev.newValue) : api.removeItem(ev.key);\n changed = true;\n }\n });\n } catch (err) {\n setError(err instanceof Error ? err : new Error(\"Error synching api after event\"));\n if (props?.throw) {\n throw err;\n }\n }\n changed && refetch();\n };\n if (\"addEventListener\" in globalThis) {\n globalThis.addEventListener(\"storage\", listener);\n onCleanup(() => globalThis.removeEventListener(\"storage\", listener));\n } else {\n apis.forEach((api) => api.addEventListener?.(\"storage\", listener));\n onCleanup(() => apis.forEach((api) => api.removeEventListener?.(\"storage\", listener)));\n }\n });\n return [Object.assign(accessor, { error }), setter, refetch];\n}\nvar createLocalStorage = createStorage;\nvar createSessionStorage = (props) => createStorage({ ...props, api: globalThis.sessionStorage });\n\n// src/tools.ts\nvar addClearMethod = (storage) => {\n if (typeof storage.clear === \"function\") {\n return storage;\n }\n storage.clear = () => {\n let key;\n while (key = storage.key(0)) {\n storage.removeItem(key);\n }\n };\n return storage;\n};\n\n// src/cookies.ts\nvar serializeCookieOptions = (options) => {\n if (!options) {\n return \"\";\n }\n let memo = \"\";\n for (const key in options) {\n if (!options.hasOwnProperty(key)) {\n continue;\n }\n const value = options[key];\n memo += value instanceof Date ? `; ${key}=${value.toUTCString()}` : typeof value === \"boolean\" ? `; ${key}` : `; ${key}=${value}`;\n }\n return memo;\n};\nvar cookieStorage = addClearMethod({\n _cookies: [globalThis.document, \"cookie\"],\n getItem: (key) => cookieStorage._cookies[0][cookieStorage._cookies[1]].match(\"(^|;)\\\\s*\" + key + \"\\\\s*=\\\\s*([^;]+)\")?.pop() ?? null,\n setItem: (key, value, options) => {\n const oldValue = cookieStorage.getItem(key);\n cookieStorage._cookies[0][cookieStorage._cookies[1]] = `${key}=${value}${serializeCookieOptions(\n options\n )}`;\n const storageEvent = Object.assign(new Event(\"storage\"), {\n key,\n oldValue,\n newValue: value,\n url: globalThis.document.URL,\n storageArea: cookieStorage\n });\n window.dispatchEvent(storageEvent);\n },\n removeItem: (key) => {\n cookieStorage._cookies[0][cookieStorage._cookies[1]] = `${key}=deleted${serializeCookieOptions({\n expires: new Date(0)\n })}`;\n },\n key: (index) => {\n let key = null;\n let count = 0;\n cookieStorage._cookies[0][cookieStorage._cookies[1]].replace(\n /(?:^|;)\\s*(.+?)\\s*=\\s*[^;]+/g,\n (_, found) => {\n if (!key && found && count++ === index) {\n key = found;\n }\n return \"\";\n }\n );\n return key;\n },\n get length() {\n let length = 0;\n cookieStorage._cookies[0][cookieStorage._cookies[1]].replace(\n /(?:^|;)\\s*.+?\\s*=\\s*[^;]+/g,\n (found) => {\n length += found ? 1 : 0;\n return \"\";\n }\n );\n return length;\n }\n});\nvar createCookieStorage = (props) => createStorage({ ...props, api: cookieStorage });\n\nexport { addClearMethod, cookieStorage, createAsyncStorage, createCookieStorage, createLocalStorage, createSessionStorage, createStorage, createStorageSignal };\n","import { makeEventListener } from '@solid-primitives/event-listener';\nimport { createHydratableSingletonRoot } from '@solid-primitives/rootless';\nimport { createHydratableStaticStore, createStaticStore } from '@solid-primitives/static-store';\nimport { noop, filterNonNullable, asArray, access, handleDiffArray } from '@solid-primitives/utils';\nimport { onCleanup, createEffect, sharedConfig } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/index.ts\nfunction makeResizeObserver(callback, options) {\n if (isServer) {\n return { observe: noop, unobserve: noop };\n }\n const observer = new ResizeObserver(callback);\n onCleanup(observer.disconnect.bind(observer));\n return {\n observe: (ref) => observer.observe(ref, options),\n unobserve: observer.unobserve.bind(observer)\n };\n}\nfunction createResizeObserver(targets, onResize, options) {\n if (isServer)\n return;\n const previousMap = /* @__PURE__ */ new WeakMap(), { observe, unobserve } = makeResizeObserver((entries) => {\n for (const entry of entries) {\n const { contentRect, target } = entry, width = Math.round(contentRect.width), height = Math.round(contentRect.height), previous = previousMap.get(target);\n if (!previous || previous.width !== width || previous.height !== height) {\n onResize(contentRect, target, entry);\n previousMap.set(target, { width, height });\n }\n }\n }, options);\n createEffect((prev) => {\n const refs = filterNonNullable(asArray(access(targets)));\n handleDiffArray(refs, prev, observe, unobserve);\n return refs;\n }, []);\n}\nvar WINDOW_SIZE_FALLBACK = { width: 0, height: 0 };\nfunction getWindowSize() {\n if (isServer)\n return { ...WINDOW_SIZE_FALLBACK };\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n}\nfunction createWindowSize() {\n if (isServer) {\n return WINDOW_SIZE_FALLBACK;\n }\n const [size, setSize] = createHydratableStaticStore(WINDOW_SIZE_FALLBACK, getWindowSize);\n makeEventListener(window, \"resize\", () => setSize(getWindowSize()));\n return size;\n}\nvar useWindowSize = /* @__PURE__ */ createHydratableSingletonRoot(createWindowSize);\nvar ELEMENT_SIZE_FALLBACK = { width: null, height: null };\nfunction getElementSize(target) {\n if (isServer || !target) {\n return { ...ELEMENT_SIZE_FALLBACK };\n }\n const { width, height } = target.getBoundingClientRect();\n return { width, height };\n}\nfunction createElementSize(target) {\n if (isServer) {\n return ELEMENT_SIZE_FALLBACK;\n }\n const [size, setSize] = createStaticStore(\n sharedConfig.context ? ELEMENT_SIZE_FALLBACK : getElementSize(access(target))\n );\n const ro = new ResizeObserver(([e]) => {\n const { width, height } = e.contentRect;\n setSize({ width, height });\n });\n onCleanup(() => ro.disconnect());\n createEffect(() => {\n const el = access(target);\n if (el) {\n ro.observe(el);\n onCleanup(() => ro.unobserve(el));\n }\n });\n return size;\n}\n\nexport { createElementSize, createResizeObserver, createWindowSize, getElementSize, getWindowSize, makeResizeObserver, useWindowSize };\n","import type { Accessor, Component, JSX, Setter } from 'solid-js'\nimport { For } from 'solid-js'\nimport {\n createEffect,\n createMemo,\n createSignal,\n on,\n onCleanup,\n onMount,\n Show,\n} from 'solid-js'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport { css, cx } from '@emotion/css'\nimport { tokens } from './theme'\nimport type { Query, QueryCache, QueryState } from '@tanstack/query-core'\nimport {\n getQueryStatusLabel,\n getQueryStatusColor,\n displayValue,\n getQueryStatusColorByLabel,\n sortFns,\n convertRemToPixels,\n} from './utils'\nimport {\n ArrowDown,\n ArrowUp,\n ChevronDown,\n Offline,\n Search,\n Settings,\n TanstackLogo,\n Wifi,\n} from './icons'\nimport Explorer from './Explorer'\nimport type {\n QueryDevtoolsProps,\n DevtoolsPosition,\n DevtoolsButtonPosition,\n DevToolsErrorType,\n} from './Context'\nimport { QueryDevtoolsContext, useQueryDevtoolsContext } from './Context'\nimport { TransitionGroup } from 'solid-transition-group'\nimport { loadFonts } from './fonts'\nimport { Key } from '@solid-primitives/keyed'\nimport type { StorageObject, StorageSetter } from '@solid-primitives/storage'\nimport { createLocalStorage } from '@solid-primitives/storage'\nimport { createResizeObserver } from '@solid-primitives/resize-observer'\n\ninterface DevtoolsPanelProps {\n localStore: StorageObject<string>\n setLocalStore: StorageSetter<string, unknown>\n}\n\ninterface QueryStatusProps {\n label: string\n color: 'green' | 'yellow' | 'gray' | 'blue' | 'purple'\n count: number\n}\n\nconst firstBreakpoint = 1024\nconst secondBreakpoint = 796\nconst thirdBreakpoint = 700\n\nconst BUTTON_POSITION: DevtoolsButtonPosition = 'bottom-right'\nconst POSITION: DevtoolsPosition = 'bottom'\nconst INITIAL_IS_OPEN = false\nconst DEFAULT_HEIGHT = 500\nconst DEFAULT_WIDTH = 500\nconst DEFAULT_SORT_FN_NAME = Object.keys(sortFns)[0]\nconst DEFAULT_SORT_ORDER = 1\n\nconst [selectedQueryHash, setSelectedQueryHash] = createSignal<string | null>(\n null,\n)\nconst [panelWidth, setPanelWidth] = createSignal(0)\n\nexport const DevtoolsComponent: Component<QueryDevtoolsProps> = (props) => {\n return (\n <QueryDevtoolsContext.Provider value={props}>\n <Devtools />\n </QueryDevtoolsContext.Provider>\n )\n}\n\nexport const Devtools = () => {\n loadFonts()\n\n const styles = getStyles()\n\n const [localStore, setLocalStore] = createLocalStorage({\n prefix: 'TanstackQueryDevtools',\n })\n\n const buttonPosition = createMemo(() => {\n return useQueryDevtoolsContext().buttonPosition || BUTTON_POSITION\n })\n\n const isOpen = createMemo(() => {\n return localStore.open === 'true'\n ? true\n : localStore.open === 'false'\n ? false\n : useQueryDevtoolsContext().initialIsOpen || INITIAL_IS_OPEN\n })\n\n const position = createMemo(() => {\n return localStore.position || useQueryDevtoolsContext().position || POSITION\n })\n\n return (\n <div\n // styles for animating the panel in and out\n class={css`\n & .TSQD-panel-exit-active,\n & .TSQD-panel-enter-active {\n transition: opacity 0.3s, transform 0.3s;\n }\n\n & .TSQD-panel-exit-to,\n & .TSQD-panel-enter {\n ${position() === 'top'\n ? `transform: translateY(-${Number(\n localStore.height || DEFAULT_HEIGHT,\n )}px);`\n : position() === 'left'\n ? `transform: translateX(-${Number(\n localStore.width || DEFAULT_WIDTH,\n )}px);`\n : position() === 'right'\n ? `transform: translateX(${Number(\n localStore.width || DEFAULT_WIDTH,\n )}px);`\n : `transform: translateY(${Number(\n localStore.height || DEFAULT_HEIGHT,\n )}px);`}\n }\n\n & .TSQD-button-exit-active,\n & .TSQD-button-enter-active {\n transition: opacity 0.3s, transform 0.3s;\n }\n\n & .TSQD-button-exit-to,\n & .TSQD-button-enter {\n transform: ${buttonPosition() === 'top-left'\n ? `translateX(-72px);`\n : buttonPosition() === 'top-right'\n ? `translateX(72px);`\n : `translateY(72px);`};\n }\n `}\n >\n <TransitionGroup name=\"TSQD-panel\">\n <Show when={isOpen()}>\n <DevtoolsPanel\n localStore={localStore}\n setLocalStore={setLocalStore}\n />\n </Show>\n </TransitionGroup>\n <TransitionGroup name=\"TSQD-button\">\n <Show when={!isOpen()}>\n <div\n class={cx(\n styles.devtoolsBtn,\n styles[`devtoolsBtn-position-${buttonPosition()}`],\n )}\n >\n <div aria-hidden=\"true\">\n <TanstackLogo />\n </div>\n <button\n aria-label=\"Open Tanstack query devtools\"\n onClick={() => setLocalStore('open', 'true')}\n >\n <TanstackLogo />\n </button>\n </div>\n </Show>\n </TransitionGroup>\n </div>\n )\n}\n\nexport const DevtoolsPanel: Component<DevtoolsPanelProps> = (props) => {\n const styles = getStyles()\n const [isResizing, setIsResizing] = createSignal(false)\n\n const sort = createMemo(() => props.localStore.sort || DEFAULT_SORT_FN_NAME)\n const sortOrder = createMemo(\n () => Number(props.localStore.sortOrder) || DEFAULT_SORT_ORDER,\n ) as () => 1 | -1\n\n const [offline, setOffline] = createSignal(false)\n const [settingsOpen, setSettingsOpen] = createSignal(false)\n\n const position = createMemo(\n () =>\n (props.localStore.position ||\n useQueryDevtoolsContext().position ||\n POSITION) as DevtoolsPosition,\n )\n\n const sortFn = createMemo(() => sortFns[sort() as string])\n\n const onlineManager = createMemo(\n () => useQueryDevtoolsContext().onlineManager,\n )\n\n const cache = createMemo(() => {\n return useQueryDevtoolsContext().client.getQueryCache()\n })\n\n const queryCount = createSubscribeToQueryCacheBatcher((queryCache) => {\n return queryCache().getAll().length\n }, false)\n\n const queries = createMemo(\n on(\n () => [queryCount(), props.localStore.filter, sort(), sortOrder()],\n () => {\n const curr = cache().getAll()\n\n const filtered = props.localStore.filter\n ? curr.filter(\n (item) =>\n rankItem(item.queryHash, props.localStore.filter || '').passed,\n )\n : [...curr]\n\n const sorted = sortFn()\n ? filtered.sort((a, b) => sortFn()!(a, b) * sortOrder())\n : filtered\n return sorted\n },\n ),\n )\n\n const handleDragStart: JSX.EventHandler<HTMLDivElement, MouseEvent> = (\n event,\n ) => {\n const panelElement = event.currentTarget.parentElement\n if (!panelElement) return\n setIsResizing(true)\n const { height, width } = panelElement.getBoundingClientRect()\n const startX = event.clientX\n const startY = event.clientY\n let newSize = 0\n const minHeight = convertRemToPixels(3.5)\n const minWidth = convertRemToPixels(12)\n const runDrag = (moveEvent: MouseEvent) => {\n moveEvent.preventDefault()\n\n if (position() === 'left' || position() === 'right') {\n const valToAdd =\n position() === 'right'\n ? startX - moveEvent.clientX\n : moveEvent.clientX - startX\n newSize = Math.round(width + valToAdd)\n if (newSize < minWidth) {\n newSize = minWidth\n }\n props.setLocalStore('width', String(Math.round(newSize)))\n\n const newWidth = panelElement.getBoundingClientRect().width\n // If the panel size didn't decrease, this means we have reached the minimum width\n // of the panel so we restore the original width in local storage\n // Restoring the width helps in smooth open/close transitions\n if (Number(props.localStore.width) < newWidth) {\n props.setLocalStore('width', String(newWidth))\n }\n } else {\n const valToAdd =\n position() === 'bottom'\n ? startY - moveEvent.clientY\n : moveEvent.clientY - startY\n newSize = Math.round(height + valToAdd)\n // If the panel size is less than the minimum height,\n // we set the size to the minimum height\n if (newSize < minHeight) {\n newSize = minHeight\n setSelectedQueryHash(null)\n }\n props.setLocalStore('height', String(Math.round(newSize)))\n }\n }\n\n const unsub = () => {\n if (isResizing()) {\n setIsResizing(false)\n }\n document.removeEventListener('mousemove', runDrag, false)\n document.removeEventListener('mouseUp', unsub, false)\n }\n\n document.addEventListener('mousemove', runDrag, false)\n document.addEventListener('mouseup', unsub, false)\n }\n\n setupQueryCacheSubscription()\n\n let queriesContainerRef!: HTMLDivElement\n let panelRef!: HTMLDivElement\n\n onMount(() => {\n createResizeObserver(panelRef, ({ width }, el) => {\n if (el === panelRef) {\n setPanelWidth(width)\n }\n })\n })\n\n const setDevtoolsPosition = (pos: DevtoolsPosition) => {\n props.setLocalStore('position', pos)\n setSettingsOpen(false)\n }\n\n return (\n <aside\n // Some context for styles here\n // background-color - Changes to a lighter color create a harder contrast\n // between the queries and query detail panel\n // -\n // min-width - When the panel is in the left or right position, the panel\n // width is set to min-content to allow the panel to shrink to the lowest possible width\n class={`${styles.panel} ${styles[`panel-position-${position()}`]} ${css`\n flex-direction: ${panelWidth() < secondBreakpoint ? 'column' : 'row'};\n background-color: ${panelWidth() < secondBreakpoint\n ? tokens.colors.gray[600]\n : tokens.colors.darkGray[900]};\n ${panelWidth() < thirdBreakpoint &&\n (position() === 'right' || position() === 'left')\n ? `\n min-width: min-content;\n `\n : ''}\n `}`}\n style={{\n height:\n position() === 'bottom' || position() === 'top'\n ? `${props.localStore.height || DEFAULT_HEIGHT}px`\n : 'auto',\n width:\n position() === 'right' || position() === 'left'\n ? `${props.localStore.width || DEFAULT_WIDTH}px`\n : 'auto',\n }}\n ref={panelRef}\n aria-label=\"Tanstack query devtools\"\n >\n <div\n class={cx(\n styles.dragHandle,\n styles[`dragHandle-position-${position()}`],\n )}\n onMouseDown={handleDragStart}\n ></div>\n <button\n aria-label=\"Close tanstack query devtools\"\n class={cx(styles.closeBtn, styles[`closeBtn-position-${position()}`])}\n onClick={() => props.setLocalStore('open', 'false')}\n >\n <ChevronDown />\n </button>\n <div\n ref={queriesContainerRef}\n // When the panels are stacked we use the height style\n // to divide the panels into two equal parts\n class={`${styles.queriesContainer} ${css`\n ${panelWidth() < secondBreakpoint && selectedQueryHash()\n ? `\n height: 50%;\n max-height: 50%;\n `\n : ''}\n `}`}\n >\n <div class={cx(styles.row)}>\n <button\n class={styles.logo}\n onClick={() => props.setLocalStore('open', 'false')}\n aria-label=\"Close Tanstack query devtools\"\n >\n <span class={styles.tanstackLogo}>TANSTACK</span>\n <span class={styles.queryFlavorLogo}>\n {useQueryDevtoolsContext().queryFlavor} v\n {useQueryDevtoolsContext().version}\n </span>\n </button>\n <QueryStatusCount />\n </div>\n <div\n class={cx(\n styles.row,\n css`\n gap: ${tokens.size[2.5]};\n `,\n )}\n >\n <div class={styles.filtersContainer}>\n <div class={styles.filterInput}>\n <Search />\n <input\n aria-label=\"Filter queries by query key\"\n type=\"text\"\n placeholder=\"Filter\"\n onInput={(e) =>\n props.setLocalStore('filter', e.currentTarget.value)\n }\n value={props.localStore.filter || ''}\n />\n </div>\n <div class={styles.filterSelect}>\n <select\n value={sort()}\n onChange={(e) =>\n props.setLocalStore('sort', e.currentTarget.value)\n }\n >\n {Object.keys(sortFns).map((key) => (\n <option value={key}>Sort by {key}</option>\n ))}\n </select>\n <ChevronDown />\n </div>\n <button\n onClick={() => {\n props.setLocalStore('sortOrder', String(sortOrder() * -1))\n }}\n aria-label={`Sort order ${\n sortOrder() === -1 ? 'descending' : 'ascending'\n }`}\n aria-pressed={sortOrder() === -1}\n >\n <Show when={sortOrder() === 1}>\n <span>Asc</span>\n <ArrowUp />\n </Show>\n <Show when={sortOrder() === -1}>\n <span>Desc</span>\n <ArrowDown />\n </Show>\n </button>\n </div>\n\n <div class={styles.actionsContainer}>\n <button\n onClick={() => {\n if (offline()) {\n onlineManager().setOnline(undefined)\n setOffline(false)\n window.dispatchEvent(new Event('online'))\n } else {\n onlineManager().setOnline(false)\n setOffline(true)\n }\n }}\n class={styles.actionsBtn}\n aria-label={`${\n offline()\n ? 'Unset offline mocking behavior'\n : 'Mock offline behavior'\n }`}\n aria-pressed={offline()}\n >\n {offline() ? <Offline /> : <Wifi />}\n </button>\n <div style={{ position: 'relative' }}>\n <button\n onClick={() => setSettingsOpen((prev) => !prev)}\n class={styles.actionsBtn}\n id=\"TSQD-settings-menu-btn\"\n aria-label={`${\n settingsOpen() ? 'Close' : 'Open'\n } settings menu`}\n aria-haspopup=\"true\"\n aria-controls=\"TSQD-settings-menu\"\n >\n <Settings />\n </button>\n <Show when={settingsOpen()}>\n <div\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"TSQD-settings-menu-btn\"\n id=\"TSQD-settings-menu\"\n class={styles.settingsMenu}\n >\n <div class={styles.settingsMenuHeader}>Position</div>\n <div class={styles.settingsMenuSection}>\n <button\n onClick={() => {\n setDevtoolsPosition('top')\n }}\n aria-label=\"Position top\"\n >\n <ArrowUp />\n <span>Top</span>\n </button>\n <button\n onClick={() => {\n setDevtoolsPosition('bottom')\n }}\n aria-label=\"Position bottom\"\n >\n <ArrowDown />\n <span>Bottom</span>\n </button>\n <button\n onClick={() => {\n setDevtoolsPosition('left')\n }}\n aria-label=\"Position left\"\n >\n <ArrowDown />\n <span>Left</span>\n </button>\n <button\n onClick={() => {\n setDevtoolsPosition('right')\n }}\n aria-label=\"Position right\"\n >\n <ArrowDown />\n <span>Right</span>\n </button>\n </div>\n </div>\n </Show>\n </div>\n </div>\n </div>\n <div class={styles.overflowQueryContainer}>\n <div>\n <Key by={(q) => q.queryHash} each={queries()}>\n {(query) => <QueryRow query={query()} />}\n </Key>\n </div>\n </div>\n </div>\n <Show when={selectedQueryHash()}>\n <QueryDetails />\n </Show>\n </aside>\n )\n}\n\nexport const QueryRow: Component<{ query: Query }> = (props) => {\n const styles = getStyles()\n\n const queryState = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache().find({\n queryKey: props.query.queryKey,\n })?.state,\n )\n\n const isDisabled = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .find({\n queryKey: props.query.queryKey,\n })\n ?.isDisabled() ?? false,\n )\n\n const isStale = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .find({\n queryKey: props.query.queryKey,\n })\n ?.isStale() ?? false,\n )\n\n const observers = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .find({\n queryKey: props.query.queryKey,\n })\n ?.getObserversCount() ?? 0,\n )\n\n const color = createMemo(() =>\n getQueryStatusColor({\n queryState: queryState()!,\n observerCount: observers(),\n isStale: isStale(),\n }),\n )\n\n return (\n <Show when={queryState()}>\n <button\n onClick={() =>\n setSelectedQueryHash(\n props.query.queryHash === selectedQueryHash()\n ? null\n : props.query.queryHash,\n )\n }\n class={cx(\n styles.queryRow,\n selectedQueryHash() === props.query.queryHash &&\n styles.selectedQueryRow,\n )}\n aria-label={`Query key ${props.query.queryHash}`}\n >\n <div\n class={cx(\n 'TSQDObserverCount',\n color() === 'gray'\n ? css`\n background-color: ${tokens.colors[color()][700]};\n color: ${tokens.colors[color()][300]};\n `\n : css`\n background-color: ${tokens.colors[color()][900]};\n color: ${tokens.colors[color()][300]} !important;\n `,\n )}\n >\n {observers()}\n </div>\n <code class=\"TSQDQueryHash\">{props.query.queryHash}</code>\n <Show when={isDisabled()}>\n <div class=\"TSQDQueryDisabled\">disabled</div>\n </Show>\n </button>\n </Show>\n )\n}\n\nexport const QueryStatusCount: Component = () => {\n const stale = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'stale').length,\n )\n\n const fresh = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'fresh').length,\n )\n\n const fetching = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'fetching').length,\n )\n\n const paused = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'paused').length,\n )\n\n const inactive = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'inactive').length,\n )\n\n const styles = getStyles()\n\n return (\n <div class={styles.queryStatusContainer}>\n <QueryStatus label=\"Fresh\" color=\"green\" count={fresh()} />\n <QueryStatus label=\"Fetching\" color=\"blue\" count={fetching()} />\n <QueryStatus label=\"Paused\" color=\"purple\" count={paused()} />\n <QueryStatus label=\"Stale\" color=\"yellow\" count={stale()} />\n <QueryStatus label=\"Inactive\" color=\"gray\" count={inactive()} />\n </div>\n )\n}\n\nexport const QueryStatus: Component<QueryStatusProps> = (props) => {\n const styles = getStyles()\n\n let tagRef!: HTMLButtonElement\n\n const [mouseOver, setMouseOver] = createSignal(false)\n const [focused, setFocused] = createSignal(false)\n\n const showLabel = createMemo(() => {\n if (selectedQueryHash()) {\n if (panelWidth() < firstBreakpoint && panelWidth() > secondBreakpoint) {\n return false\n }\n }\n if (panelWidth() < thirdBreakpoint) {\n return false\n }\n\n return true\n })\n\n return (\n <button\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n onMouseEnter={() => setMouseOver(true)}\n onMouseLeave={() => {\n setMouseOver(false)\n setFocused(false)\n }}\n disabled={showLabel()}\n ref={tagRef}\n class={cx(\n styles.queryStatusTag,\n !showLabel()\n ? css`\n cursor: pointer;\n &:hover {\n background: ${tokens.colors.darkGray[400]}${tokens.alpha[80]};\n }\n `\n : null,\n )}\n {...(mouseOver() || focused()\n ? {\n 'aria-describedby': 'TSQD-status-tooltip',\n }\n : {})}\n >\n <Show when={!showLabel() && (mouseOver() || focused())}>\n <div\n role=\"tooltip\"\n id=\"TSQD-status-tooltip\"\n class={cx(styles.statusTooltip)}\n >\n {props.label}\n </div>\n </Show>\n <span\n class={css`\n width: ${tokens.size[2]};\n height: ${tokens.size[2]};\n border-radius: ${tokens.border.radius.full};\n background-color: ${tokens.colors[props.color][500]};\n `}\n />\n <Show when={showLabel()}>\n <span>{props.label}</span>\n </Show>\n <span\n class={cx(\n styles.queryStatusCount,\n props.count > 0 && props.color !== 'gray'\n ? css`\n background-color: ${tokens.colors[props.color][900]};\n color: ${tokens.colors[props.color][300]} !important;\n `\n : css`\n color: ${tokens.colors['gray'][400]} !important;\n `,\n )}\n >\n {props.count}\n </span>\n </button>\n )\n}\n\nconst QueryDetails = () => {\n const styles = getStyles()\n const queryClient = useQueryDevtoolsContext().client\n\n const [restoringLoading, setRestoringLoading] = createSignal(false)\n\n const errorTypes = createMemo(() => {\n return useQueryDevtoolsContext().errorTypes || []\n })\n\n const activeQuery = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash()),\n false,\n )\n\n const activeQueryFresh = createSubscribeToQueryCacheBatcher((queryCache) => {\n return queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())\n }, false)\n\n const activeQueryState = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())?.state,\n false,\n )\n\n const activeQueryStateData = createSubscribeToQueryCacheBatcher(\n (queryCache) => {\n return queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())?.state.data\n },\n false,\n )\n\n const statusLabel = createSubscribeToQueryCacheBatcher((queryCache) => {\n const query = queryCache()\n .getAll()\n .find((q) => q.queryHash === selectedQueryHash())\n if (!query) return 'inactive'\n return getQueryStatusLabel(query)\n })\n\n const queryStatus = createSubscribeToQueryCacheBatcher((queryCache) => {\n const query = queryCache()\n .getAll()\n .find((q) => q.queryHash === selectedQueryHash())\n if (!query) return 'pending'\n return query.state.status\n })\n\n const observerCount = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())\n ?.getObserversCount() ?? 0,\n )\n\n const color = createMemo(() => getQueryStatusColorByLabel(statusLabel()))\n\n const handleRefetch = () => {\n const promise = activeQuery()?.fetch()\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n promise?.catch(() => {})\n }\n\n const triggerError = (errorType?: DevToolsErrorType) => {\n const error =\n errorType?.initializer(activeQuery()!) ??\n new Error('Unknown error from devtools')\n\n const __previousQueryOptions = activeQuery()!.options\n\n activeQuery()!.setState({\n status: 'error',\n error,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n fetchMeta: {\n ...activeQuery()!.state.fetchMeta,\n __previousQueryOptions,\n } as any,\n } as QueryState<unknown, Error>)\n }\n\n const restoreQueryAfterLoadingOrError = () => {\n activeQuery()?.fetch(\n (activeQuery()?.state.fetchMeta as any).__previousQueryOptions,\n {\n // Make sure this fetch will cancel the previous one\n cancelRefetch: true,\n },\n )\n }\n\n createEffect(() => {\n if (statusLabel() !== 'fetching') {\n setRestoringLoading(false)\n }\n })\n\n return (\n <Show when={activeQuery() && activeQueryState()}>\n <div class={styles.detailsContainer}>\n <div class={styles.detailsHeader}>Query Details</div>\n <div class={styles.detailsBody}>\n <div>\n <pre>\n <code>{displayValue(activeQuery()!.queryKey, true)}</code>\n </pre>\n <span\n class={cx(\n styles.queryDetailsStatus,\n color() === 'gray'\n ? css`\n background-color: ${tokens.colors[color()][700]};\n color: ${tokens.colors[color()][300]};\n border-color: ${tokens.colors[color()][600]};\n `\n : css`\n background-color: ${tokens.colors[color()][900]};\n color: ${tokens.colors[color()][300]};\n border-color: ${tokens.colors[color()][600]};\n `,\n )}\n >\n {statusLabel()}\n </span>\n </div>\n <div>\n <span>Observers:</span>\n <span>{observerCount()}</span>\n </div>\n <div>\n <span>Last Updated:</span>\n <span>\n {new Date(activeQueryState()!.dataUpdatedAt).toLocaleTimeString()}\n </span>\n </div>\n </div>\n <div class={styles.detailsHeader}>Actions</div>\n <div class={styles.actionsBody}>\n <button\n class={css`\n color: ${tokens.colors.blue[400]};\n `}\n onClick={handleRefetch}\n disabled={statusLabel() === 'fetching'}\n >\n <span\n class={css`\n background-color: ${tokens.colors.blue[400]};\n `}\n ></span>\n Refetch\n </button>\n <button\n class={css`\n color: ${tokens.colors.yellow[400]};\n `}\n onClick={() => queryClient.invalidateQueries(activeQuery())}\n >\n <span\n class={css`\n background-color: ${tokens.colors.yellow[400]};\n `}\n ></span>\n Invalidate\n </button>\n <button\n class={css`\n color: ${tokens.colors.gray[300]};\n `}\n onClick={() => queryClient.resetQueries(activeQuery())}\n >\n <span\n class={css`\n background-color: ${tokens.colors.gray[400]};\n `}\n ></span>\n Reset\n </button>\n <button\n class={css`\n color: ${tokens.colors.cyan[400]};\n `}\n disabled={restoringLoading()}\n onClick={() => {\n if (activeQuery()?.state.data === undefined) {\n setRestoringLoading(true)\n restoreQueryAfterLoadingOrError()\n } else {\n const activeQueryVal = activeQuery()\n if (!activeQueryVal) return\n const __previousQueryOptions = activeQueryVal.options\n // Trigger a fetch in order to trigger suspense as well.\n activeQueryVal.fetch({\n ...__previousQueryOptions,\n queryFn: () => {\n return new Promise(() => {\n // Never resolve\n })\n },\n gcTime: -1,\n })\n activeQueryVal.setState({\n data: undefined,\n status: 'pending',\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n fetchMeta: {\n ...activeQueryVal.state.fetchMeta,\n __previousQueryOptions,\n } as any,\n } as QueryState<unknown, Error>)\n }\n }}\n >\n <span\n class={css`\n background-color: ${tokens.colors.cyan[400]};\n `}\n ></span>\n {statusLabel() === 'fetching' ? 'Restore' : 'Trigger'} Loading\n </button>\n <Show when={errorTypes().length === 0 || queryStatus() === 'error'}>\n <button\n class={css`\n color: ${tokens.colors.red[400]};\n `}\n onClick={() => {\n if (!activeQuery()!.state.error) {\n triggerError()\n } else {\n queryClient.resetQueries(activeQuery())\n }\n }}\n >\n <span\n class={css`\n background-color: ${tokens.colors.red[400]};\n `}\n ></span>\n {queryStatus() === 'error' ? 'Restore' : 'Trigger'} Error\n </button>\n </Show>\n <Show\n when={!(errorTypes().length === 0 || queryStatus() === 'error')}\n >\n <div class={styles.actionsSelect}>\n <span\n class={css`\n background-color: ${tokens.colors.red[400]};\n `}\n ></span>\n Trigger Error\n <select\n disabled={queryStatus() === 'pending'}\n onChange={(e) => {\n const errorType = errorTypes().find(\n (t) => t.name === e.currentTarget.value,\n )\n\n triggerError(errorType)\n }}\n >\n <option value=\"\" disabled selected></option>\n <For each={errorTypes()}>\n {(errorType) => (\n <option value={errorType.name}>{errorType.name}</option>\n )}\n </For>\n </select>\n <ChevronDown />\n </div>\n </Show>\n </div>\n <div class={styles.detailsHeader}>Data Explorer</div>\n <div\n style={{\n padding: '0.5rem',\n }}\n >\n <Explorer\n label=\"Data\"\n defaultExpanded={['Data']}\n value={activeQueryStateData()}\n copyable={true}\n />\n </div>\n <div class={styles.detailsHeader}>Query Explorer</div>\n <div\n style={{\n padding: '0.5rem',\n }}\n >\n <Explorer\n label=\"Query\"\n defaultExpanded={['Query', 'queryKey']}\n value={activeQueryFresh()}\n />\n </div>\n </div>\n </Show>\n )\n}\n\nconst signalsMap = new Map<(q: Accessor<QueryCache>) => any, Setter<any>>()\n\nconst setupQueryCacheSubscription = () => {\n const queryCache = createMemo(() => {\n const client = useQueryDevtoolsContext().client\n return client.getQueryCache()\n })\n\n const unsub = queryCache().subscribe(() => {\n for (const [callback, setter] of signalsMap.entries()) {\n queueMicrotask(() => {\n setter(callback(queryCache))\n })\n }\n })\n\n onCleanup(() => {\n signalsMap.clear()\n unsub()\n })\n\n return unsub\n}\n\nconst createSubscribeToQueryCacheBatcher = <T,>(\n callback: (queryCache: Accessor<QueryCache>) => Exclude<T, Function>,\n equalityCheck: boolean = true,\n) => {\n const queryCache = createMemo(() => {\n const client = useQueryDevtoolsContext().client\n return client.getQueryCache()\n })\n\n const [value, setValue] = createSignal<T>(\n callback(queryCache),\n !equalityCheck ? { equals: false } : undefined,\n )\n\n createEffect(() => {\n setValue(callback(queryCache))\n })\n\n // @ts-ignore\n signalsMap.set(callback, setValue)\n\n onCleanup(() => {\n // @ts-ignore\n signalsMap.delete(callback)\n })\n\n return value\n}\n\nconst getStyles = () => {\n const { colors, font, size, alpha, shadow, border } = tokens\n\n return {\n devtoolsBtn: css`\n z-index: 100000;\n position: fixed;\n padding: 4px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 9999px;\n box-shadow: ${shadow.md()};\n overflow: hidden;\n\n & div {\n position: absolute;\n top: -8px;\n left: -8px;\n right: -8px;\n bottom: -8px;\n border-radius: 9999px;\n\n & svg {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n filter: blur(6px) saturate(1.2) contrast(1.1);\n }\n\n &:focus-within {\n outline-offset: 2px;\n outline: 3px solid ${colors.green[600]};\n }\n\n & button {\n position: relative;\n z-index: 1;\n padding: 0;\n border-radius: 9999px;\n background-color: transparent;\n border: none;\n height: 40px;\n display: flex;\n width: 40px;\n overflow: hidden;\n cursor: pointer;\n outline: none;\n & svg {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n }\n `,\n panel: css`\n position: fixed;\n z-index: 9999;\n display: flex;\n gap: ${tokens.size[0.5]};\n & * {\n font-family: 'Inter', sans-serif;\n color: ${colors.gray[300]};\n box-sizing: border-box;\n }\n `,\n 'devtoolsBtn-position-bottom-right': css`\n bottom: 12px;\n right: 12px;\n `,\n 'devtoolsBtn-position-bottom-left': css`\n bottom: 12px;\n left: 12px;\n `,\n 'devtoolsBtn-position-top-left': css`\n top: 12px;\n left: 12px;\n `,\n 'devtoolsBtn-position-top-right': css`\n top: 12px;\n right: 12px;\n `,\n 'panel-position-top': css`\n top: 0;\n right: 0;\n left: 0;\n max-height: 90%;\n min-height: 3.5rem;\n border-bottom: ${colors.darkGray[300]} 1px solid;\n `,\n 'panel-position-bottom': css`\n bottom: 0;\n right: 0;\n left: 0;\n max-height: 90%;\n min-height: 3.5rem;\n border-top: ${colors.darkGray[300]} 1px solid;\n `,\n 'panel-position-right': css`\n bottom: 0;\n right: 0;\n top: 0;\n border-left: ${colors.darkGray[300]} 1px solid;\n max-width: 90%;\n `,\n 'panel-position-left': css`\n bottom: 0;\n left: 0;\n top: 0;\n border-right: ${colors.darkGray[300]} 1px solid;\n max-width: 90%;\n `,\n closeBtn: css`\n position: absolute;\n cursor: pointer;\n z-index: 5;\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n &:focus-visible {\n outline: 2px solid ${colors.blue[600]};\n }\n `,\n 'closeBtn-position-top': css`\n bottom: 0;\n right: ${size[3]};\n transform: translate(0, 100%);\n background-color: ${colors.darkGray[700]};\n border-right: ${colors.darkGray[300]} 1px solid;\n border-left: ${colors.darkGray[300]} 1px solid;\n border-top: none;\n border-bottom: ${colors.darkGray[300]} 1px solid;\n border-radius: 0px 0px ${border.radius.sm} ${border.radius.sm};\n padding: ${size[1.5]} ${size[2.5]} ${size[2]} ${size[2.5]};\n\n &::after {\n content: ' ';\n position: absolute;\n bottom: 100%;\n left: -${size[2.5]};\n height: ${size[1.5]};\n width: calc(100% + ${size[5]});\n }\n\n & svg {\n transform: rotate(180deg);\n }\n `,\n 'closeBtn-position-bottom': css`\n top: 0;\n right: ${size[3]};\n transform: translate(0, -100%);\n background-color: ${colors.darkGray[700]};\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[2]} ${size[2.5]} ${size[1.5]} ${size[2.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 'closeBtn-position-right': css`\n bottom: ${size[3]};\n left: 0;\n transform: translate(-100%, 0);\n background-color: ${colors.darkGray[700]};\n border-right: none;\n border-left: ${colors.darkGray[300]} 1px solid;\n border-top: ${colors.darkGray[300]} 1px solid;\n border-bottom: ${colors.darkGray[300]} 1px solid;\n border-radius: ${border.radius.sm} 0px 0px ${border.radius.sm};\n padding: ${size[2.5]} ${size[1]} ${size[2.5]} ${size[1.5]};\n\n &::after {\n content: ' ';\n position: absolute;\n left: 100%;\n height: calc(100% + ${size[5]});\n width: ${size[1.5]};\n }\n\n & svg {\n transform: rotate(-90deg);\n }\n `,\n 'closeBtn-position-left': css`\n bottom: ${size[3]};\n right: 0;\n transform: translate(100%, 0);\n background-color: ${colors.darkGray[700]};\n border-left: none;\n border-right: ${colors.darkGray[300]} 1px solid;\n border-top: ${colors.darkGray[300]} 1px solid;\n border-bottom: ${colors.darkGray[300]} 1px solid;\n border-radius: 0px ${border.radius.sm} ${border.radius.sm} 0px;\n padding: ${size[2.5]} ${size[1.5]} ${size[2.5]} ${size[1]};\n\n &::after {\n content: ' ';\n position: absolute;\n right: 100%;\n height: calc(100% + ${size[5]});\n width: ${size[1.5]};\n }\n\n & svg {\n transform: rotate(90deg);\n }\n `,\n queriesContainer: css`\n flex: 1 1 700px;\n background-color: ${colors.darkGray[700]};\n display: flex;\n flex-direction: column;\n `,\n dragHandle: css`\n position: absolute;\n transition: background-color 0.125s ease;\n &:hover {\n background-color: ${colors.gray[400]}${alpha[90]};\n }\n z-index: 4;\n `,\n 'dragHandle-position-top': css`\n bottom: 0;\n width: 100%;\n height: ${tokens.size[1]};\n cursor: ns-resize;\n `,\n 'dragHandle-position-bottom': css`\n top: 0;\n width: 100%;\n height: ${tokens.size[1]};\n cursor: ns-resize;\n `,\n 'dragHandle-position-right': css`\n left: 0;\n width: ${tokens.size[1]};\n height: 100%;\n cursor: ew-resize;\n `,\n 'dragHandle-position-left': css`\n right: 0;\n width: ${tokens.size[1]};\n height: 100%;\n cursor: ew-resize;\n `,\n row: css`\n display: flex;\n justify-content: space-between;\n padding: ${tokens.size[2.5]} ${tokens.size[3]};\n gap: ${tokens.size[4]};\n border-bottom: ${colors.darkGray[500]} 1px solid;\n align-items: center;\n & > button {\n padding: 0;\n background: transparent;\n border: none;\n display: flex;\n flex-direction: column;\n }\n `,\n logo: css`\n cursor: pointer;\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.lg};\n font-weight: ${font.weight.extrabold};\n line-height: ${font.lineHeight.sm};\n white-space: nowrap;\n `,\n queryFlavorLogo: css`\n font-weight: ${font.weight.semibold};\n font-size: ${font.size.sm};\n background: linear-gradient(to right, #dd524b, #e9a03b);\n background-clip: text;\n line-height: ${font.lineHeight.xs};\n -webkit-text-fill-color: transparent;\n white-space: nowrap;\n `,\n queryStatusContainer: css`\n display: flex;\n gap: ${tokens.size[2]};\n height: min-content;\n `,\n queryStatusTag: css`\n display: flex;\n gap: ${tokens.size[1.5]};\n background: ${colors.darkGray[500]};\n border-radius: ${tokens.border.radius.md};\n font-size: ${font.size.sm};\n padding: ${tokens.size[1]};\n padding-left: ${tokens.size[2.5]};\n align-items: center;\n line-height: ${font.lineHeight.md};\n font-weight: ${font.weight.medium};\n border: none;\n user-select: none;\n position: relative;\n &:focus-visible {\n outline-offset: 2px;\n outline: 2px solid ${colors.blue[800]};\n }\n & span:nth-child(2) {\n color: ${colors.gray[300]}${alpha[80]};\n }\n `,\n statusTooltip: css`\n position: absolute;\n z-index: 1;\n background-color: ${colors.darkGray[500]};\n top: 100%;\n left: 50%;\n transform: translate(-50%, calc(${tokens.size[2]}));\n padding: ${tokens.size[0.5]} ${tokens.size[3]};\n border-radius: ${tokens.border.radius.md};\n font-size: ${font.size.sm};\n border: 2px solid ${colors.gray[600]};\n color: ${tokens.colors['gray'][300]};\n\n &::before {\n top: 0px;\n content: ' ';\n display: block;\n left: 50%;\n transform: translate(-50%, -100%);\n position: absolute;\n border-color: transparent transparent ${colors.gray[600]} transparent;\n border-style: solid;\n border-width: 7px;\n /* transform: rotate(180deg); */\n }\n\n &::after {\n top: 0px;\n content: ' ';\n display: block;\n left: 50%;\n transform: translate(-50%, calc(-100% + 2.5px));\n position: absolute;\n border-color: transparent transparent ${colors.darkGray[500]}\n transparent;\n border-style: solid;\n border-width: 7px;\n }\n `,\n selectedQueryRow: css`\n background-color: ${colors.darkGray[500]};\n `,\n queryStatusCount: css`\n padding: 0 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${colors.gray[400]};\n background-color: ${colors.darkGray[300]};\n border-radius: 3px;\n font-variant-numeric: tabular-nums;\n `,\n filtersContainer: css`\n display: flex;\n gap: ${tokens.size[2.5]};\n & > button {\n cursor: pointer;\n padding: ${tokens.size[1.5]} ${tokens.size[2.5]};\n padding-right: ${tokens.size[1.5]};\n border-radius: ${tokens.border.radius.md};\n background-color: ${colors.darkGray[400]};\n font-size: ${font.size.sm};\n display: flex;\n align-items: center;\n line-height: ${font.lineHeight.sm};\n gap: ${tokens.size[1.5]};\n max-width: 160px;\n border: 1px solid ${colors.darkGray[200]};\n &:focus-visible {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n }\n `,\n filterInput: css`\n padding: ${tokens.size[1.5]} ${tokens.size[2.5]};\n border-radius: ${tokens.border.radius.md};\n background-color: ${colors.darkGray[400]};\n display: flex;\n box-sizing: content-box;\n align-items: center;\n gap: ${tokens.size[1.5]};\n max-width: 160px;\n min-width: 100px;\n border: 1px solid ${colors.darkGray[200]};\n height: min-content;\n & > svg {\n width: ${tokens.size[3.5]};\n height: ${tokens.size[3.5]};\n }\n & input {\n font-size: ${font.size.sm};\n width: 100%;\n background-color: ${colors.darkGray[400]};\n border: none;\n padding: 0;\n line-height: ${font.lineHeight.sm};\n color: ${colors.gray[300]};\n &::placeholder {\n color: ${colors.gray[300]};\n }\n &:focus {\n outline: none;\n }\n }\n\n &:focus-within {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n filterSelect: css`\n padding: ${tokens.size[1.5]} ${tokens.size[2.5]};\n border-radius: ${tokens.border.radius.md};\n background-color: ${colors.darkGray[400]};\n display: flex;\n align-items: center;\n gap: ${tokens.size[1.5]};\n box-sizing: content-box;\n max-width: 160px;\n border: 1px solid ${colors.darkGray[200]};\n height: min-content;\n & > svg {\n width: ${tokens.size[3]};\n height: ${tokens.size[3]};\n }\n & > select {\n appearance: none;\n min-width: 100px;\n line-height: ${font.lineHeight.sm};\n font-size: ${font.size.sm};\n background-color: ${colors.darkGray[400]};\n border: none;\n &:focus {\n outline: none;\n }\n }\n &:focus-within {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n actionsContainer: css`\n display: flex;\n gap: ${tokens.size[2.5]};\n `,\n actionsBtn: css`\n border-radius: ${tokens.border.radius.md};\n background-color: ${colors.darkGray[400]};\n width: 2.125rem; // 34px\n height: 2.125rem; // 34px\n justify-content: center;\n display: flex;\n align-items: center;\n gap: ${tokens.size[1.5]};\n max-width: 160px;\n border: 1px solid ${colors.darkGray[200]};\n cursor: pointer;\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n & svg {\n width: ${tokens.size[4]};\n height: ${tokens.size[4]};\n }\n &:focus-visible {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n overflowQueryContainer: css`\n flex: 1;\n overflow-y: auto;\n & > div {\n display: flex;\n flex-direction: column;\n }\n `,\n queryRow: css`\n display: flex;\n align-items: center;\n padding: 0;\n background-color: inherit;\n border: none;\n cursor: pointer;\n &:focus-visible {\n outline-offset: -2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n &:hover .TSQDQueryHash {\n background-color: ${colors.darkGray[600]};\n }\n\n & .TSQDObserverCount {\n padding: 0 ${tokens.size[1]};\n user-select: none;\n min-width: ${tokens.size[8]};\n align-self: stretch !important;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: ${font.size.sm};\n font-weight: ${font.weight.medium};\n border-bottom: 1px solid ${colors.darkGray[700]};\n }\n & .TSQDQueryHash {\n user-select: text;\n font-size: ${font.size.sm};\n display: flex;\n align-items: center;\n min-height: ${tokens.size[8]};\n flex: 1;\n padding: ${tokens.size[1]} ${tokens.size[2]};\n font-family: 'Menlo', 'Fira Code', monospace !important;\n border-bottom: 1px solid ${colors.darkGray[400]};\n text-align: left;\n text-overflow: clip;\n word-break: break-word;\n }\n\n & .TSQDQueryDisabled {\n align-self: stretch;\n align-self: stretch !important;\n display: flex;\n align-items: center;\n padding: 0 ${tokens.size[3]};\n color: ${colors.gray[300]};\n background-color: ${colors.darkGray[600]};\n border-bottom: 1px solid ${colors.darkGray[400]};\n font-size: ${font.size.sm};\n }\n `,\n detailsContainer: css`\n flex: 1 1 700px;\n background-color: ${colors.darkGray[700]};\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n display: flex;\n `,\n detailsHeader: css`\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: ${colors.darkGray[600]};\n padding: ${tokens.size[2]} ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n font-size: ${font.size.sm};\n `,\n detailsBody: css`\n margin: ${tokens.size[2]} 0px ${tokens.size[3]} 0px;\n & > div {\n display: flex;\n align-items: stretch;\n padding: 0 ${tokens.size[2]};\n line-height: ${font.lineHeight.sm};\n justify-content: space-between;\n & > span {\n font-size: ${font.size.sm};\n }\n & > span:nth-child(2) {\n font-variant-numeric: tabular-nums;\n }\n }\n\n & > div:first-child {\n margin-bottom: ${tokens.size[2]};\n }\n\n & code {\n font-family: 'Menlo', 'Fira Code', monospace !important;\n margin: 0;\n font-size: ${font.size.sm};\n line-height: ${font.lineHeight.sm};\n }\n `,\n queryDetailsStatus: css`\n border: 1px solid ${colors.darkGray[200]};\n border-radius: ${tokens.border.radius.md};\n font-weight: ${font.weight.medium};\n padding: ${tokens.size[1]} ${tokens.size[2.5]};\n `,\n actionsBody: css`\n flex-wrap: wrap;\n margin: ${tokens.size[3]} 0px ${tokens.size[3]} 0px;\n display: flex;\n gap: ${tokens.size[2]};\n padding: 0px ${tokens.size[2]};\n & > button {\n font-size: ${font.size.sm};\n padding: ${tokens.size[2]} ${tokens.size[2]};\n display: flex;\n border-radius: ${tokens.border.radius.md};\n border: 1px solid ${colors.darkGray[400]};\n background-color: ${colors.darkGray[600]};\n align-items: center;\n gap: ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n line-height: ${font.lineHeight.sm};\n cursor: pointer;\n &:focus-visible {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n & > span {\n width: ${size[2]};\n height: ${size[2]};\n border-radius: ${tokens.border.radius.full};\n }\n }\n `,\n actionsSelect: css`\n font-size: ${font.size.sm};\n padding: ${tokens.size[2]} ${tokens.size[2]};\n display: flex;\n border-radius: ${tokens.border.radius.md};\n overflow: hidden;\n border: 1px solid ${colors.darkGray[400]};\n background-color: ${colors.darkGray[600]};\n align-items: center;\n gap: ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n line-height: ${font.lineHeight.sm};\n color: ${tokens.colors.red[400]};\n cursor: pointer;\n position: relative;\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n & > span {\n width: ${size[2]};\n height: ${size[2]};\n border-radius: ${tokens.border.radius.full};\n }\n &:focus-within {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n & select {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n appearance: none;\n background-color: transparent;\n border: none;\n color: transparent;\n outline: none;\n }\n\n & svg path {\n stroke: ${tokens.colors.red[400]} !important;\n }\n `,\n settingsMenu: css`\n position: absolute;\n top: calc(100% + ${tokens.size[2]});\n border-radius: ${tokens.border.radius.lg};\n border: 1px solid ${colors.gray[600]};\n right: 0;\n min-width: ${tokens.size[44]};\n background-color: ${colors.darkGray[400]};\n font-size: ${font.size.sm};\n color: ${colors.gray[500]};\n z-index: 7;\n `,\n settingsMenuHeader: css`\n padding: ${tokens.size[1.5]} ${tokens.size[2.5]};\n color: ${colors.gray[300]};\n font-weight: ${font.weight.medium};\n `,\n settingsMenuSection: css`\n border-top: 1px solid ${colors.gray[600]};\n display: flex;\n flex-direction: column;\n padding: ${tokens.size[1]} ${tokens.size[1]};\n\n & > button {\n cursor: pointer;\n background-color: transparent;\n border: none;\n padding: ${tokens.size[2]} ${tokens.size[1.5]};\n font-size: ${font.size.sm};\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: ${tokens.size[2]};\n border-radius: ${tokens.border.radius.md};\n &:hover {\n background-color: ${colors.darkGray[500]};\n }\n\n &:focus-visible {\n outline-offset: 2px;\n outline: 2px solid ${colors.blue[800]};\n }\n }\n\n & button:nth-child(4) svg {\n transform: rotate(-90deg);\n }\n\n & button:nth-child(3) svg {\n transform: rotate(90deg);\n }\n `,\n }\n}\n","export const loadFonts = () => {\n const link = document.createElement('link')\n link.href =\n 'https://fonts.googleapis.com/css2?family=Fira+Code&family=Inter:wght@100;200;300;400;500;600;700;800;900&family=Roboto&display=swap'\n link.rel = 'stylesheet'\n document.head.appendChild(link)\n}\n","import type {\n QueryClient,\n onlineManager as TonlineManager,\n} from '@tanstack/query-core'\nimport { DevtoolsComponent } from './Devtools'\nimport { render } from 'solid-js/web'\nimport type {\n DevtoolsButtonPosition,\n DevtoolsPosition,\n QueryDevtoolsProps,\n DevToolsErrorType,\n} from './Context'\nimport type { Signal } from 'solid-js'\nimport { createSignal } from 'solid-js'\n\nexport type { DevtoolsButtonPosition, DevtoolsPosition, DevToolsErrorType }\nexport interface TanstackQueryDevtoolsConfig extends QueryDevtoolsProps {}\n\nclass TanstackQueryDevtools {\n client: Signal<QueryClient>\n onlineManager: typeof TonlineManager\n queryFlavor: string\n version: string\n isMounted = false\n buttonPosition: Signal<DevtoolsButtonPosition | undefined>\n position: Signal<DevtoolsPosition | undefined>\n initialIsOpen: Signal<boolean | undefined>\n errorTypes: Signal<DevToolsErrorType[] | undefined>\n dispose?: () => void\n\n constructor(config: TanstackQueryDevtoolsConfig) {\n const {\n client,\n queryFlavor,\n version,\n onlineManager,\n buttonPosition,\n position,\n initialIsOpen,\n errorTypes,\n } = config\n this.client = createSignal(client)\n this.queryFlavor = queryFlavor\n this.version = version\n this.onlineManager = onlineManager\n this.buttonPosition = createSignal(buttonPosition)\n this.position = createSignal(position)\n this.initialIsOpen = createSignal(initialIsOpen)\n this.errorTypes = createSignal(errorTypes)\n }\n\n setButtonPosition(position: DevtoolsButtonPosition) {\n this.buttonPosition[1](position)\n }\n\n setPosition(position: DevtoolsPosition) {\n this.position[1](position)\n }\n\n setInitialIsOpen(isOpen: boolean) {\n this.initialIsOpen[1](isOpen)\n }\n\n setErrorTypes(errorTypes: DevToolsErrorType[]) {\n this.errorTypes[1](errorTypes)\n }\n\n setClient(client: QueryClient) {\n this.client[1](client)\n }\n\n mount<T extends HTMLElement>(el: T) {\n if (this.isMounted) {\n throw new Error('Devtools is already mounted')\n }\n const dispose = render(() => {\n const [btnPosition] = this.buttonPosition\n const [pos] = this.position\n const [isOpen] = this.initialIsOpen\n const [errors] = this.errorTypes\n const [queryClient] = this.client\n return (\n <DevtoolsComponent\n queryFlavor={this.queryFlavor}\n version={this.version}\n onlineManager={this.onlineManager}\n {...{\n get client() {\n return queryClient()\n },\n get buttonPosition() {\n return btnPosition()\n },\n get position() {\n return pos()\n },\n get initialIsOpen() {\n return isOpen()\n },\n get errorTypes() {\n return errors()\n },\n }}\n />\n )\n }, el)\n this.isMounted = true\n this.dispose = dispose\n }\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}\n\nexport { TanstackQueryDevtools }\n"],"names":["sharedConfig","$PROXY","Symbol","$TRACK","signalOptions","equals","a","b","runEffects","runQueue","STALE","PENDING","UNOWNED","owned","cleanups","context","owner","Owner","Transition","Listener","Updates","Effects","ExecCount","transPending","setTransPending","createSignal","createRoot","fn","detachedOwner","listener","unowned","length","root","undefined","updateFn","untrack","cleanNode","runUpdates","value","options","s","observers","observerSlots","comparator","Object","assign","readSignal","bind","writeSignal","createRenderEffect","updateComputation","createComputation","createEffect","runUserEffects","c","user","push","createMemo","onMount","onCleanup","startTransition","l","o","Promise","resolve","then","useContext","ctx","lookup","id","defaultValue","children","memo","resolveChildren","toArray","Array","isArray","runningTransition","this","sources","state","updates","lookUpstream","sSlot","sourceSlots","node","isComp","current","i","TransitionRunning","running","disposed","has","tState","pure","markDownstream","Error","time","nextValue","err","forEach","updatedAt","handleError","runComputation","init","runTop","suspense","inFallback","effects","ancestors","wait","res","e","completeUpdates","queue","userLength","ignore","source","pop","index","obs","n","castError","key","results","result","apply","createProvider","props","FALLBACK","dispose","d","createComponent","Comp","trueFn","propTraps","get","_","property","receiver","set","deleteProperty","getOwnPropertyDescriptor","configurable","enumerable","ownKeys","keys","resolveSource","mergeProps","proxy","Proxy","v","Set","target","descriptors","getOwnPropertyDescriptors","defineProperty","For","fallback","list","mapFn","items","mapped","disposers","len","indexes","j","newItems","newIndices","newIndicesNext","temp","tempdisposers","tempIndexes","start","end","newEnd","item","newLen","disposer","mapper","Math","min","Map","slice","mapArray","each","Index","signals","indexArray","Show","strictEqual","keyed","condition","when","child","Switch","conditions","evalConditions","conds","cond","Match","Properties","ChildProperties","Aliases","create","className","htmlFor","PropAliases","class","formnovalidate","ismap","nomodule","playsinline","readonly","DelegatedEvents","SVGNamespace","xlink","xml","$$EVENTS","template","html","check","isSVG","t","document","createElement","innerHTML","split","content","firstChild","delegateEvents","eventNames","window","name","add","addEventListener","eventHandler","setAttribute","removeAttribute","handler","delegate","handlerFn","call","spread","skipChildren","prevProps","insertExpression","ref","skipRef","prop","assignProp","use","element","arg","insert","parent","accessor","marker","initial","toggleClassKey","classNames","trim","nameLen","classList","toggle","prev","isCE","isProp","isChildProp","nodeStyle","style","cssText","removeProperty","setProperty","classKeys","prevKeys","classValue","removeEventListener","toLowerCase","h","nodeName","includes","replace","w","toUpperCase","ns","indexOf","namespace","removeAttributeNS","setAttributeNS","type","composedPath","registry","done","_$HY","disabled","data","cancelBubble","_$host","parentNode","host","unwrapArray","childNodes","cleaned","nodeType","remove","multi","toString","createTextNode","cleanChildren","textContent","array","currentArray","normalizeIncomingArray","appendNodes","bLength","aEnd","bEnd","aStart","bStart","after","nextSibling","map","insertBefore","sequence","replaceChild","reconcileArrays","Node","appendChild","console","warn","normalized","unwrap","dynamic","String","replacement","inserted","el","isParent","characterMap","chars","join","allAccents","RegExp","rankings","CASE_SENSITIVE_EQUAL","EQUAL","STARTS_WITH","WORD_STARTS_WITH","CONTAINS","ACRONYM","MATCHES","NO_MATCH","rankItem","_options$threshold","threshold","accessors","rank","getMatchRanking","rankedValue","accessorIndex","accessorThreshold","passed","valuesToRank","allValues","J","attributes","getAccessorAttributes","itemValues","getItemValues","I","itemValue","getAllValuesToRank","rankingInfo","rankValue","newRank","minRanking","maxRanking","testString","stringToRank","prepareValueForComparison","startsWith","string","acronym","wordInString","splitByHyphenWord","substr","getAcronym","matchingInOrderCharCount","charNumber","findMatchingCharacter","matchChar","getRanking","spreadPercentage","inOrderPercentage","firstIndex","getClosenessRanking","_ref","keepDiacritics","match","accessorFn","defaultKeyAttributes","Infinity","StyleSheet","_this","_insertTag","tag","before","tags","insertionPoint","prepend","container","isSpeedy","speedy","process","env","NODE_ENV","ctr","nonce","_proto","prototype","hydrate","nodes","rule","createStyleElement","isImportRule","charCodeAt","_alreadyInsertedOrderInsensitiveRule","error","sheet","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","test","flush","removeChild","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","abs","from","fromCharCode","pattern","indexof","search","charat","begin","strlen","sizeof","append","line","column","position","character","characters","return","copy","next","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rules","rulesets","pseudo","points","declarations","offset","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","k","x","y","z","serialize","callback","output","stringify","middleware","collection","memoize","cache","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","WeakMap","compat","isImplicitRule","parentRules","removeLabel","isIgnoringComment","nullifyElement","incorrectImportAlarm","isPrependedWithRegularRules","prefix","hash","func","isBrowser","getServerStylisCache","ret","defaultStylisPlugins","combine","exec","createCache","ssrStyles","querySelectorAll","getAttribute","head","stylisPlugins","_insert","nodesToHydrate","attrib","omnipresentPlugins","unsafePseudoClasses","commentContainer","unsafePseudoClass","createUnsafeSelectorsAlarm","currentSheet","finalizingPlugins","serializer","concat","selector","serialized","shouldCache","styles","_finalizingPlugins","_serializer","serverStylisCache","registered","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","ILLEGAL_ESCAPE_SEQUENCE_ERROR","UNDEFINED_AS_OBJECT_KEY_ERROR","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","contentValuePattern","contentValues","oldProcessStyleValue","msPattern","hyphenPattern","hyphenatedCache","charAt","processed","str","_char","noComponentSelectorMessage","handleInterpolation","mergedProps","interpolation","__emotion_styles","anim","obj","_key","interpolated","_i","createStringFromObject","previousCursor","matched","replaced","fakeVarName","cached","sourceMapPattern","labelPattern","serializeStyles","args","stringMode","sourceMap","strings","raw","lastIndex","identifierName","hashString","getRegisteredStyles","registeredStyles","rawClassName","insertStyles","isStringTag","registerStyles","stylesForSSR","maybeStyles","insertWithoutScoping","merge","css","classnames","cls","toAdd","_createEmotion","_len","arguments","cx","_len4","_key4","injectGlobal","_len3","_key3","keyframes","_len2","_key2","animation","ids","createEmotion","ShadowVariants","xs","sm","md","lg","xl","inner","none","getShadow","variant","color","tokens","colors","inherit","transparent","black","white","neutral","darkGray","gray","blue","green","red","yellow","purple","teal","pink","cyan","alpha","font","weight","thin","extralight","light","normal","medium","semibold","bold","extrabold","breakpoints","border","radius","full","shadow","zIndices","hide","auto","base","docked","dropdown","sticky","banner","overlay","modal","popover","skipLink","toast","tooltip","DoubleIndexedKV","keyToValue","valueToKey","getByKey","getByValue","clear","Registry","generateIdentifier","kv","getIdentifier","getValue","ClassRegistry","_super","classToAllowedProps","__extends","allowProps","register","getAllowedProps","find","record","predicate","values","hasOwnProperty","valuesOfObj","valuesNotNever","run","entries","_a","_b","__read","arr","findArr","CustomTransformerRegistry","transfomers","transformer","findApplicable","isApplicable","findByName","isUndefined","payload","isPlainObject","getPrototypeOf","constructor","isEmptyObject","isMap","isSet","isSymbol","getType","isNaNValue","isNaN","isPrimitive","isBoolean","isNull","isNumber","isString","escapeKey","stringifyPath","path","parsePath","segment","char","lastSegment","simpleTransformation","annotation","transform","untransform","simpleRules","BigInt","Date","valueOf","toISOString","superJson","baseError","message","allowedErrorProps","stack","regex","body","lastIndexOf","flags","Number","URL","compositeTransformation","symbolRule","symbolRegistry","description","constructorToName","Int8Array","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","Uint8ClampedArray","reduce","ctor","typedArrayRule","ArrayBuffer","isView","DataView","__spreadArray","isInstanceOfRegisteredClass","potentialClass","classRegistry","classRule","clazz","allowedProps","__assign","customRule","customTransformerRegistry","deserialize","compositeRules","transformValue","applicableCompositeRule","applicableSimpleRule","simpleRulesByAnnotation","untransformValue","json","transformation","getNthKey","validatePath","getDeep","object","row","keyOfRow","setDeep","lastKey","oldValue","newValue","keyToRow","newKey","traverse","tree","walker","origin","nodeValue","subtree","applyValueAnnotations","plain","annotations","identities","objectsInThisPath","existingSet","addIdentity","isDeep","transformed_1","transformedValue","transformationResult","transformed","innerAnnotations","recursiveResult","getOwnPropertyNames","getOwnPropertySymbols","carry","newVal","originalObject","includeNonenumerable","propType","propertyIsEnumerable","writable","nonenumerable","SuperJSON","meta","rootEqualityPaths","equalityAnnotations","paths","sort","shortestPath","identicalPaths","referentialEqualities","identicalObjectPath","other","identicalPath","applyReferentialEqualityAnnotations","JSON","defaultInstance","registerClass","registerSymbol","registerCustom","allowErrorProps","getQueryStatusLabel","query","fetchStatus","getObserversCount","isStale","displayValue","beautify","getStatusRank","q","dateSort","dataUpdatedAt","sortFns","status","queryHash","localeCompare","convertRemToPixels","rem","parseFloat","getComputedStyle","documentElement","fontSize","Search","_tmpl$","cloneNode","ChevronDown","_tmpl$2","ArrowUp","_tmpl$3","ArrowDown","_tmpl$4","Wifi","_tmpl$5","Offline","_el$6","_tmpl$6","_$effect","_p$","_v$","_v$2","_$setAttribute","Settings","_tmpl$7","Copier","_tmpl$8","CopiedCopier","_tmpl$9","ErrorCopier","_tmpl$10","TanstackLogo","_tmpl$11","Key","by","keyFn","dispose2","fb","delete","addNewItem","setIndex","setItem","getItem","save","keyArray","Expander","getStyles","_el$","_$className","expander","expanded","CopyButton","copyState","setCopyState","_el$2","_$addEventListener","navigator","clipboard","writeText","superjson","setTimeout","_$insert","_$createComponent","copyButton","isIterable","iterator","Explorer","setExpanded","defaultExpanded","label","expandedPages","setExpandedPages","subEntries","val","subEntryPages","chunkArray","_el$3","_el$4","_el$5","_el$8","_el$9","$$click","old","expanderButton","_v$4","info","_v$3","copyable","_el$10","entry","subEntry","_el$11","_el$15","_el$16","_el$17","_el$18","_el$22","_el$23","filter","_el$24","_v$6","_v$5","_el$12","_el$13","_el$14","_$delegateEvents","QueryDevtoolsContext","Provider","createContext","client","onlineManager","queryFlavor","version","useQueryDevtoolsContext","noop","createListTransition","initSource","onChange","prevSet","appear","exiting","WeakSet","toRemove","setToRemove","isTransitionPending","finishRemoved","exitMethod","els","p","handleRemoved","splice","elsToRemove","sourceList","added","removed","unchanged","nextSet","nothingChanged","isNonNullable","filterNonNullable","access","asArray","defaultElementPredicate","Element","getResolvedElements","resolveElements","serverPredicate","children2","nextFrame","requestAnimationFrame","enterTransition","events","enterClasses","enterActiveClasses","enterToClasses","onBeforeEnter","onEnter","onAfterEnter","endTransition","queueMicrotask","exitTransition","exitClasses","exitActiveClasses","exitToClasses","onBeforeExit","onExit","onAfterExit","TransitionGroup","enterActiveClass","enterClass","enterToClass","exitActiveClass","exitClass","exitToClass","moveClasses","moveClass","createClassnames","classes","toMove","isConnected","HTMLElement","SVGElement","rect","getBoundingClientRect","moved","newRect","dX","left","dY","top","transitionDuration","offsetHeight","endTransition2","propertyName","storage","createLocalStorage","setError","throw","apis","api","globalThis","localStorage","Boolean","store","deserializer","sync","ev","changed","storageArea","removeItem","filteredValue","apiKey","toJSON","addValue","getAll","serializeCookieOptions","toUTCString","cookieStorage","_cookies","storageEvent","Event","url","dispatchEvent","expires","found","createResizeObserver","targets","onResize","previousMap","observe","unobserve","observer","ResizeObserver","disconnect","makeResizeObserver","contentRect","width","round","height","refs","handleAdded","currLength","prevLength","prevEl","currEl","handleDiffArray","secondBreakpoint","POSITION","DEFAULT_SORT_FN_NAME","selectedQueryHash","setSelectedQueryHash","panelWidth","setPanelWidth","DevtoolsComponent","Devtools","link","href","rel","loadFonts","localStore","setLocalStore","buttonPosition","isOpen","open","initialIsOpen","DevtoolsPanel","devtoolsBtn","isResizing","setIsResizing","sortOrder","offline","setOffline","settingsOpen","setSettingsOpen","sortFn","getQueryCache","queryCount","createSubscribeToQueryCacheBatcher","queryCache","queries","deps","prevInput","defer","prevValue","input","on","curr","filtered","handleDragStart","event","panelElement","currentTarget","parentElement","startX","clientX","startY","clientY","newSize","minHeight","minWidth","runDrag","moveEvent","preventDefault","valToAdd","newWidth","unsub","queriesContainerRef","panelRef","setupQueryCacheSubscription","setDevtoolsPosition","pos","_el$7","_el$19","_el$20","_el$25","_el$26","_el$38","_el$39","_$use","$$mousedown","QueryStatusCount","$$input","_el$40","setOnline","_c$","_$memo","_el$27","_el$28","_el$29","_el$30","_el$31","_el$32","_el$33","_el$34","_el$35","_el$36","_el$37","settingsMenu","settingsMenuHeader","settingsMenuSection","QueryRow","QueryDetails","panel","_v$7","dragHandle","_v$8","closeBtn","_v$9","queriesContainer","_v$10","_v$11","logo","_v$12","tanstackLogo","_v$13","queryFlavorLogo","_v$14","_v$15","filtersContainer","_v$16","filterInput","_v$17","filterSelect","_v$18","_v$19","_v$20","actionsContainer","_v$21","actionsBtn","_v$22","_v$23","_v$24","_v$25","_v$26","overflowQueryContainer","queryState","queryKey","isDisabled","observerCount","getQueryStatusColor","_el$42","_el$43","_el$44","_v$27","queryRow","selectedQueryRow","_v$28","_v$29","stale","fresh","fetching","paused","inactive","_el$46","QueryStatus","queryStatusContainer","tagRef","mouseOver","setMouseOver","focused","setFocused","showLabel","_el$47","_tmpl$12","_el$49","_el$51","_$spread","_$mergeProps","queryStatusTag","_el$48","statusTooltip","_el$50","_v$30","_v$31","queryStatusCount","queryClient","restoringLoading","setRestoringLoading","errorTypes","activeQuery","activeQueryFresh","activeQueryState","activeQueryStateData","statusLabel","queryStatus","getQueryStatusColorByLabel","handleRefetch","promise","fetch","catch","triggerError","errorType","initializer","__previousQueryOptions","setState","fetchMeta","_el$52","_tmpl$15","_el$53","_el$54","_el$55","_el$56","_el$57","_el$58","_el$59","_el$61","_el$64","_el$65","_el$66","_el$67","_el$68","_el$69","_el$70","_el$71","_el$72","_el$73","_el$74","_el$75","_el$84","_el$85","_el$86","_el$87","toLocaleTimeString","invalidateQueries","resetQueries","cancelRefetch","activeQueryVal","queryFn","gcTime","_el$76","_tmpl$13","_el$77","_el$78","_v$32","_v$33","_el$79","_tmpl$14","_el$80","_el$82","_el$88","_tmpl$16","actionsSelect","_v$35","_v$36","_v$34","detailsContainer","_v$38","detailsHeader","_v$39","detailsBody","_v$40","queryDetailsStatus","_v$41","_v$42","actionsBody","_v$43","_v$44","_v$45","_v$46","_v$47","_v$48","_v$49","_v$50","_v$51","_v$52","_v$53","_v$54","_v$37","signalsMap","subscribe","setter","equalityCheck","setValue","config","_defineProperty","setButtonPosition","setPosition","setInitialIsOpen","setErrorTypes","setClient","mount","isMounted","code","render","btnPosition","errors","_self$","unmount"],"mappings":"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MlF,EAAOoE,aAAa9O,EAAM4K,QACrF+E,GAAW,CACpB,CACD,MAAMjF,EAAOoE,aAAa9O,EAAM4K,GACjC,MAAO,CAAC5K,EACV;;;;;;;;;;sGC1dA,MAAM8P,GAAe,CACnB,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,KACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,KACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,KACH,IAAG,IACH,IAAG,IACH,IAAG,KACH,IAAG,KACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,IAAG,IACH,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,KAAI,IACJ,IAAG,IACH,IAAG,I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"}
|