mirror of
https://github.com/thegeneralist01/archivr
synced 2026-10-09 12:55:00 +02:00
* ui: show spinner for pending captures
* feat(core): add text capture path with title + Markdown/plain body
- Add downloader/text.rs module with save() function that stages and hashes text content
- Support text/markdown and text/plain MIME types with .md and .txt extensions
- Add perform_text_capture() function for capturing user-supplied text
- Validates title (non-empty, max 500 chars) and body (non-empty, max 2 MiB)
- Creates blob records and entries with source_kind='text', entity_kind='document'
- Includes comprehensive unit tests for markdown, plain text, and validation
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* feat(server): add POST /api/archives/:archive_id/captures/text
- Add CaptureTextBody struct for title, body, and optional MIME type
- Implement capture_text_handler with validation for empty fields and MIME type
- Route text submissions to perform_text_capture() in background
- Reuse existing capture job tracking and polling infrastructure
- Default MIME type to text/markdown when not specified
- Include route tests covering happy path, validation, auth, and error cases
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* feat(frontend): add text-capture form to CaptureDialog
- Add submitTextCapture API client function with same error handling as submitCapture
- Create makeTextItem() factory for text capture state
- Implement CaptureTextRow component with title, body textarea, and MIME selector
- Add 'Add text' button in capture dialog toolbar
- Update handleArchive to filter and route text submissions
- Modify submitBgJob to detect and submit text items via submitTextCapture
- Skip probe and conflict checks for text items
- Reuse job tracking and batch settlement for text captures
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* feat(core): add entry_summaries schema + summarizer trait/providers
Per-entry LLM summaries as a regenerable child record, not a column on
archived_entries and not an on-disk artifact: an entry may carry several
summaries (one per provider/model/prompt version), any of which can be
discarded and recomputed. Generation is manual-only — nothing in capture.rs
calls into this module.
- database.rs: entry_summaries table + index, EntrySummaryRecord, and
upsert/update/find/latest helpers mirroring the capture_jobs style.
provider_model is stored as '' rather than NULL because SQLite treats
NULLs as distinct inside a UNIQUE index, which would stop the CLI
providers (no model) from ever deduping on the cache key.
- summarizer.rs: SummaryProvider trait with four implementations —
Anthropic Messages API, OpenAI-compatible chat completions, `claude -p`
and `codex exec -`. Configuration comes from env vars only (never TOML),
matching how yt-dlp / single-file / tweet-scraper are resolved, which
also keeps API keys out of anything the archive persists.
- archive.rs: EntryDetail gains latest_summary, populated by one extra
LIMIT 1 query in get_entry_detail. EntrySummaryView aliases the DB row
rather than duplicating it.
Implementation notes:
- No tokio in core. CLI timeouts are enforced structurally: stdout is
drained on its own thread and handed back over a channel so the calling
thread can recv_timeout and kill an overrunning child; stdin is written
on a third thread so a 48 KB prompt cannot deadlock against a child
waiting for us to read.
- HTML is reduced with regex rather than a parser: html5ever is not in the
tree, and a model tolerates imperfect whitespace. Paired tags are spelled
out per tag because Rust's regex engine has no backreferences by design.
- reqwest is declared with only the `blocking` feature here, so bodies are
serialized via .body(value.to_string()) instead of widening the
workspace dependency for .json().
- input_sha256 holds a SHA3-256 digest via hash::hash_bytes, the tree's one
hashing primitive; the content is truncated to 48 KB *before* hashing so
the cache key describes exactly the bytes the model saw.
Tests: no mockito/wiremock in dev-deps, and adding a mock HTTP server for
one JSON shape is a poor trade, so the two halves that can actually break
are tested directly — request-body builders and response parsers — leaving
only reqwest's own transport uncovered. Plus schema idempotency, cache-key
dedupe, cascade-on-delete, provider_from_env happy/missing-var paths, HTML
and tweet extraction, output normalization, and the CLI runner's stdin
round-trip, timeout kill, and nonzero-exit paths.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* feat(server): add GET/POST /api/archives/:id/entries/:uid/summary
GET is read-only and gated exactly like entry detail, so a guest can read a
summary only for an entry whose content they could already read. POST
requires ROLE_USER, matching capture / tags / patch / rearchive; no auth
roles change.
Both the provider config and the content extraction resolve on the request
thread, before spawn_blocking. That is what lets a missing env var come back
as a synchronous 400 naming the exact variable, and an unsummarizable
artifact (video, audio) as a 400 saying so, rather than becoming a
background job the caller must poll only to learn about a config typo.
The pending row is claimed before spawning so the 202 can name a summary_uid
the client can poll immediately. summarize_entry owns the
pending → running → completed/failed transitions for that same row — the
cache key is identical, so both upserts resolve to one row — leaving the
handler to catch only the case where it fails before recording anything.
When !force and an identical cache key already completed, the existing row
comes back as a 200 with no new work.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* feat(frontend): render Summary rail section + provider selector
New "Summary" rail section between the URL/Preview controls and .meta-list.
A completed summary renders as bold tl;dr, body paragraph, tag chips, and a
provider · model footer; missing or failed shows Generate; pending/running
shows an inline spinner and polls GET every 1500 ms until terminal.
- api.js: fetchEntrySummary + requestEntrySummary. The POST helper unwraps
ApiError's { "error": ... } body so the missing-env-var message reaches
the user verbatim rather than as a bare status code.
- ContextRail.jsx: state seeds from detail.latest_summary so the section
renders immediately on selection. Polling is anchored on the summary
status rather than started inside the click handler, so a job still
running when the user navigates away and back is picked up again. A
transient poll failure is swallowed — the next tick retries, and a real
failure arrives as status === 'failed'.
- Regenerate passes force:true only when a completed summary is already
shown; otherwise the request can take the server's 200 cache-hit path.
- Provider choice persists in sessionStorage under archivr:summary:provider,
with try/catch around both accessors for private-mode browsers.
- Public sessions never see the selector or the Generate button, and the
section renders at all only when a completed summary made it through the
server's visibility gate.
- styles.css: .rail-summary-* only; spacing and the action button reuse
.rail-section and .rail-rearchive-btn. The spinner honours
prefers-reduced-motion — the text alone conveys the state.
- AGENTS.md: document the summary env vars alongside the existing
external-tool convention.
Smoke-tested end to end against a scratch archive with a seeded markdown
entry: claude_cli produced a real summary (pending → running → completed in
~11s); a local mock server exercised the openai_compatible transport and
confirmed the Bearer header, model, and system/user role split on the wire;
unconfigured providers return 400 naming the exact variable; a video entry
returns 400 "v1 unsupported"; a repeat POST returns 200 from cache without
adding a row.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* fix(core): codex_cli — auto-discover binary + use --output-last-message
Two related fixes for the codex_cli summary provider:
1. Executable discovery. `ARCHIVR_CODEX_CLI` was already respected, but
without it the code resolved to bare `codex` and relied on PATH.
The ChatGPT desktop app installs codex at
`/Applications/ChatGPT.app/Contents/Resources/codex` and does not
put it on PATH, so users who only have the desktop app saw
'No such file or directory' with no hint. `resolve_cli` now walks
env override → a small set of well-known absolute paths → HOME
/.local/bin/<bare> → bare fallback. Same treatment applied to
claude_cli for symmetry (/opt/homebrew/bin/claude, /usr/local/bin/
claude, HOME/.local/bin/claude).
2. Clean output. `codex exec -` writes a runtime header ("OpenAI
Codex vX", session id, sandbox, model), the assistant reply, and a
footer ("tokens used", replay of the reply) to stdout. The JSON
extractor took the first '{' from the *user prompt echo* and the
last '}' from the trailing replay, producing invalid text that
fell through to the "raw text under summary" fallback path. Now
uses `--output-last-message <tempfile>` and reads only the final
assistant message. Fallback (positional prompt) uses the same
flag. Tempfile is cleaned up on all paths, incl. spawn failure.
* fix(frontend): give text-capture row real CSS
The text row shipped with semantic classnames (`capture-text-inputs`,
`capture-text-title`, `capture-text-body`, `capture-text-mime`,
`capture-text-icon`) but no CSS rules. Falling through to the parent
`.capture-row-main` flex-row (`display: flex; align-items: center`)
meant the title, textarea, and mime-select stacked as intrinsic-width
boxes centered on the tall body, producing a layout where the body
floated to the top-right, the title box appeared BELOW it, and the mime
selector rendered as an unstyled OS dropdown.
Fix:
- `.capture-text-row .capture-row-main` uses `align-items: flex-start`
so the leading icon and trailing × pin to the top of the block.
- `.capture-text-inputs` is now a full-width column-flex container with
proper gaps.
- `.capture-text-title` reuses the 44px input height and typography of
`.capture-input`; `.capture-text-body` gets a 140px min-height,
vertical resize, and matching border/focus treatment.
- `.capture-text-mime` is styled as a small chip with a custom caret
so it matches `.capture-quality` and stops looking like a raw
`<select>`. Sits in a right-aligned footer under the body.
- `.capture-text-icon` gets a 44px column so it aligns with the title
input; remove button gets a small top-margin for the same reason.
Rebuilt static bundle bumped as well (`index-BLxoi9rt.css`,
`index-CQcpPA_I.js`).
* chore(static): rebuild bundle after text-row CSS merge
* fix(core): summarize tweets + walk all tweets in a thread
Tweet and tweet_thread entries store their payload under artifact_role
`raw_tweet_json`, not `primary_media`. `build_summary_input` filtered
strictly for `primary_media LIMIT 1`, so both cases silently failed
with 'entry X has no primary_media artifact to summarize'.
Threads compound the problem: the tweet scraper writes ONE json file
per status, so even a fixed lookup that took the first row would
summarize only the initial tweet and lose the rest of the conversation.
Fixes:
- New `load_summary_artifacts` helper returns every artifact for a
role in insertion order.
- For entity_kind `tweet` / `tweet_thread`, load all
`raw_tweet_json` artifacts (falling back to `primary_media` for
archives predating that role convention).
- Iterate artifacts, extract text per file with the existing
markdown/html/json branches, then join thread pieces with a
`---` separator so the model sees a real paragraph break between
statuses instead of one flowing document.
Single-tweet entries produce one piece and the separator never
renders. Non-tweet entries behave exactly as before.
* feat(frontend): preview text-capture entries (.md / .txt)
Text captures land as `.md` (Markdown) or `.txt` (plain) blobs, but
PreviewPanel only dispatched on video/audio/image/pdf/html extensions,
so opening a text entry hit the 'No preview available' fallback with
the raw artifact path exposed.
- New `TextPreview` component fetches the primary artifact as text,
renders it in a monospace `<pre>` with word-wrap, and shows the
entry title on top and the MIME as a small trailing tag. Handles
loading/error states.
- `PreviewPanel` gains a `TEXT_EXTS` set + a branch that dispatches
to `TextPreview` for `md` / `markdown` / `txt`.
- CSS is padded and centered to ~780px so a text note reads like a
document rather than an edge-to-edge terminal dump.
v1 intentionally does NOT parse Markdown: keeping frontend deps at
react+react-dom only. Bump to a real Markdown renderer if we start
capturing Markdown-authored notes.
* fix(nix): pin yt-dlp from its own release + wire into server wrapper
Two independent problems, one commit:
1. Stale binary. nixpkgs-provided `pkgs.yt-dlp` on the pinned
nixos-unstable rev is 2026.03.17 (Mar 2026). yt-dlp itself
releases days-to-weeks, and YouTube frequently rotates the
player-signature / client surfaces the older builds request
(`android_vr` is the current casualty), which returns HTTP 403
mid-download for the format specs archivr passes (`-f
bestvideo+bestaudio/best`). Even bumping the nixpkgs input would
leave us dependent on that channel's yt-dlp cadence.
Fetch the upstream zipapp directly instead
(github.com/yt-dlp/yt-dlp/releases/download/<ver>/yt-dlp), wrap so
`python3` and `ffmpeg` are on PATH, and pin version+hash in one
place. Bumping is: change version, replace hash from
`nix hash file <url>`.
2. Missing pin in server wrapper. `archivr-cli` was already wrapped
with `--set ARCHIVR_YT_DLP` + a PATH prefix; `archivr-server`
was NOT — it only pinned single-file, chrome, and the tweet
scraper, silently falling back to whatever `yt-dlp` the user
happened to have on PATH. Server captures therefore inherited
the user's (often stale) system yt-dlp regardless of the flake
pin. Same wrapper flags now apply to both binaries.
devShell keeps `pkgs.yt-dlp` for now: the dev shell is a
convenience, not a release surface, and matching wouldn't fit in this
commit without duplicating the derivation across let-scopes.
* chore(static): rebuild bundle for round-3 fixes
* chore(nix): pin python 3.12 for yt-dlp zipapp (avoid py3.14 libffi crash on darwin/arm64)
* feat(core): resolve_yt_dlp picks the newer of pinned vs state-dir
The nix flake wrapper pins a yt-dlp via ARCHIVR_YT_DLP, but yt-dlp rots
fast — extractors break within weeks of a pin. Add a resolver that probes
`--version` on both the pinned binary and a user-installed copy under the
mutable state dir, and runs whichever is newer.
Version strings are YYYY.MM.DD, so plain string ordering is chronological.
Ties resolve toward the state dir: a user who installed it there did so
deliberately. ARCHIVR_YT_DLP_FORCE bypasses the comparison entirely, and
with no candidate at all we fall back to bare `yt-dlp` on PATH — exactly
the previous behaviour.
Resolution is cached in a OnceLock so `--version` costs one subprocess per
process, and all four inline env::var lookups now go through it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* ci: bump yt-dlp from upstream releases, not nixpkgs
The flake no longer takes yt-dlp from nixpkgs; a dedicated `ytDlp`
derivation fetches the upstream release binary directly and pins both
`version` and an SRI `hash`. That makes the previous workflow inert: it
ran `nix flake update nixpkgs` and compared `nixpkgs#yt-dlp.version`
before and after, so it could churn the lockfile forever without ever
moving the version we actually ship.
The workflow now reads the pinned version straight out of the `ytDlp`
block in flake.nix, asks the GitHub API for yt-dlp's latest release tag,
short-circuits when they already match, downloads the new release to
recompute its SRI hash (required — the hash is part of the derivation's
identity, so the URL cannot be changed alone), and rewrites the three
pinned fields under a sed range address scoped to that block so sibling
pins like ublockLite and isdcac are untouched. It asserts only flake.nix
changed and that the new version appears exactly twice before opening
the PR.
* feat(cli): add `archivr yt-dlp update|status` subcommand
`update` fetches the latest release tag from the GitHub API (or takes
--version), downloads the cross-platform python zipapp, and installs it
into archivr's state dir. The install is atomic — staged as yt-dlp.new,
chmod +x'd, then renamed over the target — so a concurrently running
capture never sees a half-written binary. A sibling .version file makes a
repeat update a no-op instead of a 3MB re-download.
The download is checked for the python3 shebang before install, which
catches the usual failure mode of getting an HTML error page back. python3
itself is only warned about, not required: the server may run under a nix
wrapper with its own PATH.
`status` prints all three candidates (env / state-dir / PATH fallback) with
their versions and stars whichever the resolver picks, so it is obvious
which yt-dlp a capture will actually use.
reqwest is pulled from the existing workspace dependency; the GitHub JSON is
parsed with serde_json so the "json" feature is not needed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* docs(maintainer): document summarizer, text capture, and yt-dlp lifecycle
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* docs(readme): document LLM summaries, text notes, yt-dlp resolver + bump paths
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* docs(plan): specify X Article, image summaries, summary search
* fix: summarize X Article text
* feat: search completed summary tags
* fix: preserve X Article block order
* feat: model opt-in summary images
* feat: attach opted-in images to summaries
* feat: accept image summary requests
* feat: add summary image consent control
* docs: explain X Article, image summaries and summary search
* chore(static): rebuild bundle for summary image consent
* fix: show civilized unsupported summary errors
* chore(static): rebuild bundle for civilized summary errors
* fix: keep text previews and summary state scoped to entry
* fix: show forced yt-dlp candidate in status
* fix: infer trusted MIME for tweet images
* fix: preserve text capture bytes and hide synthetic URL
* fix: recover and preserve summary attempts
* fix: bound codex fallback and record resolved model
* fix: protect public summary diagnostics
* fix: guard summary callbacks during entry render
* fix: scope summary callbacks to selected entry
* test: cover terminal newline in text capture
* fix: preserve missing summary entry status
* test: cover tweet image summary selection
* docs: record summary lifecycle and review hardening
* chore(static): rebuild bundle for Sol review fixes
* fix: retain completed summary during regeneration display
* fix: hide superseded summary attempts
* chore(static): rebuild bundle after regeneration display fix
* fix: allow full-size text capture requests
* fix: allow escaped full-size text captures
* fix: preserve text draft whitespace in capture UI
* chore(static): rebuild bundle for text whitespace fix
49 lines
309 KiB
JavaScript
49 lines
309 KiB
JavaScript
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const i of l)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(l){const i={};return l.integrity&&(i.integrity=l.integrity),l.referrerPolicy&&(i.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?i.credentials="include":l.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(l){if(l.ep)return;l.ep=!0;const i=n(l);fetch(l.href,i)}})();var Ku={exports:{}},bs={},Xu={exports:{}},re={};/**
|
||
* @license React
|
||
* react.production.min.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/var yl=Symbol.for("react.element"),jf=Symbol.for("react.portal"),Sf=Symbol.for("react.fragment"),Nf=Symbol.for("react.strict_mode"),_f=Symbol.for("react.profiler"),Cf=Symbol.for("react.provider"),Ef=Symbol.for("react.context"),bf=Symbol.for("react.forward_ref"),Tf=Symbol.for("react.suspense"),Pf=Symbol.for("react.memo"),Lf=Symbol.for("react.lazy"),So=Symbol.iterator;function Rf(e){return e===null||typeof e!="object"?null:(e=So&&e[So]||e["@@iterator"],typeof e=="function"?e:null)}var Ju={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Gu=Object.assign,Yu={};function jr(e,t,n){this.props=e,this.context=t,this.refs=Yu,this.updater=n||Ju}jr.prototype.isReactComponent={};jr.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};jr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Zu(){}Zu.prototype=jr.prototype;function Na(e,t,n){this.props=e,this.context=t,this.refs=Yu,this.updater=n||Ju}var _a=Na.prototype=new Zu;_a.constructor=Na;Gu(_a,jr.prototype);_a.isPureReactComponent=!0;var No=Array.isArray,ec=Object.prototype.hasOwnProperty,Ca={current:null},tc={key:!0,ref:!0,__self:!0,__source:!0};function nc(e,t,n){var r,l={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)ec.call(t,r)&&!tc.hasOwnProperty(r)&&(l[r]=t[r]);var o=arguments.length-2;if(o===1)l.children=n;else if(1<o){for(var u=Array(o),d=0;d<o;d++)u[d]=arguments[d+2];l.children=u}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)l[r]===void 0&&(l[r]=o[r]);return{$$typeof:yl,type:e,key:i,ref:a,props:l,_owner:Ca.current}}function zf(e,t){return{$$typeof:yl,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Ea(e){return typeof e=="object"&&e!==null&&e.$$typeof===yl}function If(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var _o=/\/+/g;function Zs(e,t){return typeof e=="object"&&e!==null&&e.key!=null?If(""+e.key):t.toString(36)}function Hl(e,t,n,r,l){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var a=!1;if(e===null)a=!0;else switch(i){case"string":case"number":a=!0;break;case"object":switch(e.$$typeof){case yl:case jf:a=!0}}if(a)return a=e,l=l(a),e=r===""?"."+Zs(a,0):r,No(l)?(n="",e!=null&&(n=e.replace(_o,"$&/")+"/"),Hl(l,t,n,"",function(d){return d})):l!=null&&(Ea(l)&&(l=zf(l,n+(!l.key||a&&a.key===l.key?"":(""+l.key).replace(_o,"$&/")+"/")+e)),t.push(l)),1;if(a=0,r=r===""?".":r+":",No(e))for(var o=0;o<e.length;o++){i=e[o];var u=r+Zs(i,o);a+=Hl(i,t,n,u,l)}else if(u=Rf(e),typeof u=="function")for(e=u.call(e),o=0;!(i=e.next()).done;)i=i.value,u=r+Zs(i,o++),a+=Hl(i,t,n,u,l);else if(i==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return a}function Nl(e,t,n){if(e==null)return e;var r=[],l=0;return Hl(e,r,"","",function(i){return t.call(n,i,l++)}),r}function $f(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var st={current:null},Wl={transition:null},Df={ReactCurrentDispatcher:st,ReactCurrentBatchConfig:Wl,ReactCurrentOwner:Ca};function rc(){throw Error("act(...) is not supported in production builds of React.")}re.Children={map:Nl,forEach:function(e,t,n){Nl(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Nl(e,function(){t++}),t},toArray:function(e){return Nl(e,function(t){return t})||[]},only:function(e){if(!Ea(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};re.Component=jr;re.Fragment=Sf;re.Profiler=_f;re.PureComponent=Na;re.StrictMode=Nf;re.Suspense=Tf;re.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Df;re.act=rc;re.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=Gu({},e.props),l=e.key,i=e.ref,a=e._owner;if(t!=null){if(t.ref!==void 0&&(i=t.ref,a=Ca.current),t.key!==void 0&&(l=""+t.key),e.type&&e.type.defaultProps)var o=e.type.defaultProps;for(u in t)ec.call(t,u)&&!tc.hasOwnProperty(u)&&(r[u]=t[u]===void 0&&o!==void 0?o[u]:t[u])}var u=arguments.length-2;if(u===1)r.children=n;else if(1<u){o=Array(u);for(var d=0;d<u;d++)o[d]=arguments[d+2];r.children=o}return{$$typeof:yl,type:e.type,key:l,ref:i,props:r,_owner:a}};re.createContext=function(e){return e={$$typeof:Ef,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:Cf,_context:e},e.Consumer=e};re.createElement=nc;re.createFactory=function(e){var t=nc.bind(null,e);return t.type=e,t};re.createRef=function(){return{current:null}};re.forwardRef=function(e){return{$$typeof:bf,render:e}};re.isValidElement=Ea;re.lazy=function(e){return{$$typeof:Lf,_payload:{_status:-1,_result:e},_init:$f}};re.memo=function(e,t){return{$$typeof:Pf,type:e,compare:t===void 0?null:t}};re.startTransition=function(e){var t=Wl.transition;Wl.transition={};try{e()}finally{Wl.transition=t}};re.unstable_act=rc;re.useCallback=function(e,t){return st.current.useCallback(e,t)};re.useContext=function(e){return st.current.useContext(e)};re.useDebugValue=function(){};re.useDeferredValue=function(e){return st.current.useDeferredValue(e)};re.useEffect=function(e,t){return st.current.useEffect(e,t)};re.useId=function(){return st.current.useId()};re.useImperativeHandle=function(e,t,n){return st.current.useImperativeHandle(e,t,n)};re.useInsertionEffect=function(e,t){return st.current.useInsertionEffect(e,t)};re.useLayoutEffect=function(e,t){return st.current.useLayoutEffect(e,t)};re.useMemo=function(e,t){return st.current.useMemo(e,t)};re.useReducer=function(e,t,n){return st.current.useReducer(e,t,n)};re.useRef=function(e){return st.current.useRef(e)};re.useState=function(e){return st.current.useState(e)};re.useSyncExternalStore=function(e,t,n){return st.current.useSyncExternalStore(e,t,n)};re.useTransition=function(){return st.current.useTransition()};re.version="18.3.1";Xu.exports=re;var c=Xu.exports;/**
|
||
* @license React
|
||
* react-jsx-runtime.production.min.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/var Of=c,Af=Symbol.for("react.element"),Mf=Symbol.for("react.fragment"),Ff=Object.prototype.hasOwnProperty,Bf=Of.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Uf={key:!0,ref:!0,__self:!0,__source:!0};function lc(e,t,n){var r,l={},i=null,a=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(a=t.ref);for(r in t)Ff.call(t,r)&&!Uf.hasOwnProperty(r)&&(l[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)l[r]===void 0&&(l[r]=t[r]);return{$$typeof:Af,type:e,key:i,ref:a,props:l,_owner:Bf.current}}bs.Fragment=Mf;bs.jsx=lc;bs.jsxs=lc;Ku.exports=bs;var s=Ku.exports,sc={exports:{}},wt={},ic={exports:{}},ac={};/**
|
||
* @license React
|
||
* scheduler.production.min.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/(function(e){function t(M,L){var V=M.length;M.push(L);e:for(;0<V;){var G=V-1>>>1,ne=M[G];if(0<l(ne,L))M[G]=L,M[V]=ne,V=G;else break e}}function n(M){return M.length===0?null:M[0]}function r(M){if(M.length===0)return null;var L=M[0],V=M.pop();if(V!==L){M[0]=V;e:for(var G=0,ne=M.length,se=ne>>>1;G<se;){var Z=2*(G+1)-1,Se=M[Z],ce=Z+1,Ie=M[ce];if(0>l(Se,V))ce<ne&&0>l(Ie,Se)?(M[G]=Ie,M[ce]=V,G=ce):(M[G]=Se,M[Z]=V,G=Z);else if(ce<ne&&0>l(Ie,V))M[G]=Ie,M[ce]=V,G=ce;else break e}}return L}function l(M,L){var V=M.sortIndex-L.sortIndex;return V!==0?V:M.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,o=a.now();e.unstable_now=function(){return a.now()-o}}var u=[],d=[],y=1,g=null,h=3,v=!1,x=!1,S=!1,N=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,f=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(M){for(var L=n(d);L!==null;){if(L.callback===null)r(d);else if(L.startTime<=M)r(d),L.sortIndex=L.expirationTime,t(u,L);else break;L=n(d)}}function k(M){if(S=!1,m(M),!x)if(n(u)!==null)x=!0,Be(C);else{var L=n(d);L!==null&&we(k,L.startTime-M)}}function C(M,L){x=!1,S&&(S=!1,p(j),j=-1),v=!0;var V=h;try{for(m(L),g=n(u);g!==null&&(!(g.expirationTime>L)||M&&!X());){var G=g.callback;if(typeof G=="function"){g.callback=null,h=g.priorityLevel;var ne=G(g.expirationTime<=L);L=e.unstable_now(),typeof ne=="function"?g.callback=ne:g===n(u)&&r(u),m(L)}else r(u);g=n(u)}if(g!==null)var se=!0;else{var Z=n(d);Z!==null&&we(k,Z.startTime-L),se=!1}return se}finally{g=null,h=V,v=!1}}var E=!1,T=null,j=-1,P=5,R=-1;function X(){return!(e.unstable_now()-R<P)}function H(){if(T!==null){var M=e.unstable_now();R=M;var L=!0;try{L=T(!0,M)}finally{L?Y():(E=!1,T=null)}}else E=!1}var Y;if(typeof f=="function")Y=function(){f(H)};else if(typeof MessageChannel<"u"){var te=new MessageChannel,fe=te.port2;te.port1.onmessage=H,Y=function(){fe.postMessage(null)}}else Y=function(){N(H,0)};function Be(M){T=M,E||(E=!0,Y())}function we(M,L){j=N(function(){M(e.unstable_now())},L)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(M){M.callback=null},e.unstable_continueExecution=function(){x||v||(x=!0,Be(C))},e.unstable_forceFrameRate=function(M){0>M||125<M?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):P=0<M?Math.floor(1e3/M):5},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_getFirstCallbackNode=function(){return n(u)},e.unstable_next=function(M){switch(h){case 1:case 2:case 3:var L=3;break;default:L=h}var V=h;h=L;try{return M()}finally{h=V}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(M,L){switch(M){case 1:case 2:case 3:case 4:case 5:break;default:M=3}var V=h;h=M;try{return L()}finally{h=V}},e.unstable_scheduleCallback=function(M,L,V){var G=e.unstable_now();switch(typeof V=="object"&&V!==null?(V=V.delay,V=typeof V=="number"&&0<V?G+V:G):V=G,M){case 1:var ne=-1;break;case 2:ne=250;break;case 5:ne=1073741823;break;case 4:ne=1e4;break;default:ne=5e3}return ne=V+ne,M={id:y++,callback:L,priorityLevel:M,startTime:V,expirationTime:ne,sortIndex:-1},V>G?(M.sortIndex=V,t(d,M),n(u)===null&&M===n(d)&&(S?(p(j),j=-1):S=!0,we(k,V-G))):(M.sortIndex=ne,t(u,M),x||v||(x=!0,Be(C))),M},e.unstable_shouldYield=X,e.unstable_wrapCallback=function(M){var L=h;return function(){var V=h;h=L;try{return M.apply(this,arguments)}finally{h=V}}}})(ac);ic.exports=ac;var Hf=ic.exports;/**
|
||
* @license React
|
||
* react-dom.production.min.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/var Wf=c,xt=Hf;function I(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var oc=new Set,Yr={};function Wn(e,t){mr(e,t),mr(e+"Capture",t)}function mr(e,t){for(Yr[e]=t,e=0;e<t.length;e++)oc.add(t[e])}var en=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Li=Object.prototype.hasOwnProperty,Vf=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Co={},Eo={};function Qf(e){return Li.call(Eo,e)?!0:Li.call(Co,e)?!1:Vf.test(e)?Eo[e]=!0:(Co[e]=!0,!1)}function qf(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Kf(e,t,n,r){if(t===null||typeof t>"u"||qf(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function it(e,t,n,r,l,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var Xe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Xe[e]=new it(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Xe[t]=new it(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Xe[e]=new it(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Xe[e]=new it(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Xe[e]=new it(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Xe[e]=new it(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Xe[e]=new it(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Xe[e]=new it(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Xe[e]=new it(e,5,!1,e.toLowerCase(),null,!1,!1)});var ba=/[\-:]([a-z])/g;function Ta(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(ba,Ta);Xe[t]=new it(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(ba,Ta);Xe[t]=new it(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(ba,Ta);Xe[t]=new it(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Xe[e]=new it(e,1,!1,e.toLowerCase(),null,!1,!1)});Xe.xlinkHref=new it("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Xe[e]=new it(e,1,!1,e.toLowerCase(),null,!0,!0)});function Pa(e,t,n,r){var l=Xe.hasOwnProperty(t)?Xe[t]:null;(l!==null?l.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(Kf(t,n,l,r)&&(n=null),r||l===null?Qf(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):l.mustUseProperty?e[l.propertyName]=n===null?l.type===3?!1:"":n:(t=l.attributeName,r=l.attributeNamespace,n===null?e.removeAttribute(t):(l=l.type,n=l===3||l===4&&n===!0?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var ln=Wf.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_l=Symbol.for("react.element"),Jn=Symbol.for("react.portal"),Gn=Symbol.for("react.fragment"),La=Symbol.for("react.strict_mode"),Ri=Symbol.for("react.profiler"),uc=Symbol.for("react.provider"),cc=Symbol.for("react.context"),Ra=Symbol.for("react.forward_ref"),zi=Symbol.for("react.suspense"),Ii=Symbol.for("react.suspense_list"),za=Symbol.for("react.memo"),un=Symbol.for("react.lazy"),dc=Symbol.for("react.offscreen"),bo=Symbol.iterator;function br(e){return e===null||typeof e!="object"?null:(e=bo&&e[bo]||e["@@iterator"],typeof e=="function"?e:null)}var be=Object.assign,ei;function Or(e){if(ei===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);ei=t&&t[1]||""}return`
|
||
`+ei+e}var ti=!1;function ni(e,t){if(!e||ti)return"";ti=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(d){var r=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){r=d}e.call(t.prototype)}else{try{throw Error()}catch(d){r=d}e()}}catch(d){if(d&&r&&typeof d.stack=="string"){for(var l=d.stack.split(`
|
||
`),i=r.stack.split(`
|
||
`),a=l.length-1,o=i.length-1;1<=a&&0<=o&&l[a]!==i[o];)o--;for(;1<=a&&0<=o;a--,o--)if(l[a]!==i[o]){if(a!==1||o!==1)do if(a--,o--,0>o||l[a]!==i[o]){var u=`
|
||
`+l[a].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}while(1<=a&&0<=o);break}}}finally{ti=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Or(e):""}function Xf(e){switch(e.tag){case 5:return Or(e.type);case 16:return Or("Lazy");case 13:return Or("Suspense");case 19:return Or("SuspenseList");case 0:case 2:case 15:return e=ni(e.type,!1),e;case 11:return e=ni(e.type.render,!1),e;case 1:return e=ni(e.type,!0),e;default:return""}}function $i(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Gn:return"Fragment";case Jn:return"Portal";case Ri:return"Profiler";case La:return"StrictMode";case zi:return"Suspense";case Ii:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case cc:return(e.displayName||"Context")+".Consumer";case uc:return(e._context.displayName||"Context")+".Provider";case Ra:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case za:return t=e.displayName||null,t!==null?t:$i(e.type)||"Memo";case un:t=e._payload,e=e._init;try{return $i(e(t))}catch{}}return null}function Jf(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return $i(t);case 8:return t===La?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Sn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function fc(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Gf(e){var t=fc(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Cl(e){e._valueTracker||(e._valueTracker=Gf(e))}function pc(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=fc(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function rs(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Di(e,t){var n=t.checked;return be({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function To(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Sn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function hc(e,t){t=t.checked,t!=null&&Pa(e,"checked",t,!1)}function Oi(e,t){hc(e,t);var n=Sn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Ai(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ai(e,t.type,Sn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Po(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Ai(e,t,n){(t!=="number"||rs(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Ar=Array.isArray;function or(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Sn(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,r&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function Mi(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(I(91));return be({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Lo(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(I(92));if(Ar(n)){if(1<n.length)throw Error(I(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:Sn(n)}}function mc(e,t){var n=Sn(t.value),r=Sn(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function Ro(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function gc(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Fi(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?gc(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var El,yc=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,l){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,l)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(El=El||document.createElement("div"),El.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=El.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Zr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Hr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Yf=["Webkit","ms","Moz","O"];Object.keys(Hr).forEach(function(e){Yf.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Hr[t]=Hr[e]})});function vc(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Hr.hasOwnProperty(e)&&Hr[e]?(""+t).trim():t+"px"}function xc(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=vc(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Zf=be({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Bi(e,t){if(t){if(Zf[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(I(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(I(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(I(61))}if(t.style!=null&&typeof t.style!="object")throw Error(I(62))}}function Ui(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Hi=null;function Ia(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Wi=null,ur=null,cr=null;function zo(e){if(e=wl(e)){if(typeof Wi!="function")throw Error(I(280));var t=e.stateNode;t&&(t=zs(t),Wi(e.stateNode,e.type,t))}}function wc(e){ur?cr?cr.push(e):cr=[e]:ur=e}function kc(){if(ur){var e=ur,t=cr;if(cr=ur=null,zo(e),t)for(e=0;e<t.length;e++)zo(t[e])}}function jc(e,t){return e(t)}function Sc(){}var ri=!1;function Nc(e,t,n){if(ri)return e(t,n);ri=!0;try{return jc(e,t,n)}finally{ri=!1,(ur!==null||cr!==null)&&(Sc(),kc())}}function el(e,t){var n=e.stateNode;if(n===null)return null;var r=zs(n);if(r===null)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(I(231,t,typeof n));return n}var Vi=!1;if(en)try{var Tr={};Object.defineProperty(Tr,"passive",{get:function(){Vi=!0}}),window.addEventListener("test",Tr,Tr),window.removeEventListener("test",Tr,Tr)}catch{Vi=!1}function ep(e,t,n,r,l,i,a,o,u){var d=Array.prototype.slice.call(arguments,3);try{t.apply(n,d)}catch(y){this.onError(y)}}var Wr=!1,ls=null,ss=!1,Qi=null,tp={onError:function(e){Wr=!0,ls=e}};function np(e,t,n,r,l,i,a,o,u){Wr=!1,ls=null,ep.apply(tp,arguments)}function rp(e,t,n,r,l,i,a,o,u){if(np.apply(this,arguments),Wr){if(Wr){var d=ls;Wr=!1,ls=null}else throw Error(I(198));ss||(ss=!0,Qi=d)}}function Vn(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function _c(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Io(e){if(Vn(e)!==e)throw Error(I(188))}function lp(e){var t=e.alternate;if(!t){if(t=Vn(e),t===null)throw Error(I(188));return t!==e?null:e}for(var n=e,r=t;;){var l=n.return;if(l===null)break;var i=l.alternate;if(i===null){if(r=l.return,r!==null){n=r;continue}break}if(l.child===i.child){for(i=l.child;i;){if(i===n)return Io(l),e;if(i===r)return Io(l),t;i=i.sibling}throw Error(I(188))}if(n.return!==r.return)n=l,r=i;else{for(var a=!1,o=l.child;o;){if(o===n){a=!0,n=l,r=i;break}if(o===r){a=!0,r=l,n=i;break}o=o.sibling}if(!a){for(o=i.child;o;){if(o===n){a=!0,n=i,r=l;break}if(o===r){a=!0,r=i,n=l;break}o=o.sibling}if(!a)throw Error(I(189))}}if(n.alternate!==r)throw Error(I(190))}if(n.tag!==3)throw Error(I(188));return n.stateNode.current===n?e:t}function Cc(e){return e=lp(e),e!==null?Ec(e):null}function Ec(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Ec(e);if(t!==null)return t;e=e.sibling}return null}var bc=xt.unstable_scheduleCallback,$o=xt.unstable_cancelCallback,sp=xt.unstable_shouldYield,ip=xt.unstable_requestPaint,Re=xt.unstable_now,ap=xt.unstable_getCurrentPriorityLevel,$a=xt.unstable_ImmediatePriority,Tc=xt.unstable_UserBlockingPriority,is=xt.unstable_NormalPriority,op=xt.unstable_LowPriority,Pc=xt.unstable_IdlePriority,Ts=null,Ht=null;function up(e){if(Ht&&typeof Ht.onCommitFiberRoot=="function")try{Ht.onCommitFiberRoot(Ts,e,void 0,(e.current.flags&128)===128)}catch{}}var It=Math.clz32?Math.clz32:fp,cp=Math.log,dp=Math.LN2;function fp(e){return e>>>=0,e===0?32:31-(cp(e)/dp|0)|0}var bl=64,Tl=4194304;function Mr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function as(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var o=a&~l;o!==0?r=Mr(o):(i&=a,i!==0&&(r=Mr(i)))}else a=n&~l,a!==0?r=Mr(a):i!==0&&(r=Mr(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,i=t&-t,l>=i||l===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-It(t),l=1<<n,r|=e[n],t&=~l;return r}function pp(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function hp(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,i=e.pendingLanes;0<i;){var a=31-It(i),o=1<<a,u=l[a];u===-1?(!(o&n)||o&r)&&(l[a]=pp(o,t)):u<=t&&(e.expiredLanes|=o),i&=~o}}function qi(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Lc(){var e=bl;return bl<<=1,!(bl&4194240)&&(bl=64),e}function li(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function vl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-It(t),e[t]=n}function mp(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var l=31-It(n),i=1<<l;t[l]=0,r[l]=-1,e[l]=-1,n&=~i}}function Da(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-It(n),l=1<<r;l&t|e[r]&t&&(e[r]|=t),n&=~l}}var de=0;function Rc(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var zc,Oa,Ic,$c,Dc,Ki=!1,Pl=[],mn=null,gn=null,yn=null,tl=new Map,nl=new Map,dn=[],gp="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Do(e,t){switch(e){case"focusin":case"focusout":mn=null;break;case"dragenter":case"dragleave":gn=null;break;case"mouseover":case"mouseout":yn=null;break;case"pointerover":case"pointerout":tl.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":nl.delete(t.pointerId)}}function Pr(e,t,n,r,l,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:i,targetContainers:[l]},t!==null&&(t=wl(t),t!==null&&Oa(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function yp(e,t,n,r,l){switch(t){case"focusin":return mn=Pr(mn,e,t,n,r,l),!0;case"dragenter":return gn=Pr(gn,e,t,n,r,l),!0;case"mouseover":return yn=Pr(yn,e,t,n,r,l),!0;case"pointerover":var i=l.pointerId;return tl.set(i,Pr(tl.get(i)||null,e,t,n,r,l)),!0;case"gotpointercapture":return i=l.pointerId,nl.set(i,Pr(nl.get(i)||null,e,t,n,r,l)),!0}return!1}function Oc(e){var t=zn(e.target);if(t!==null){var n=Vn(t);if(n!==null){if(t=n.tag,t===13){if(t=_c(n),t!==null){e.blockedOn=t,Dc(e.priority,function(){Ic(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Vl(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xi(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Hi=r,n.target.dispatchEvent(r),Hi=null}else return t=wl(n),t!==null&&Oa(t),e.blockedOn=n,!1;t.shift()}return!0}function Oo(e,t,n){Vl(e)&&n.delete(t)}function vp(){Ki=!1,mn!==null&&Vl(mn)&&(mn=null),gn!==null&&Vl(gn)&&(gn=null),yn!==null&&Vl(yn)&&(yn=null),tl.forEach(Oo),nl.forEach(Oo)}function Lr(e,t){e.blockedOn===t&&(e.blockedOn=null,Ki||(Ki=!0,xt.unstable_scheduleCallback(xt.unstable_NormalPriority,vp)))}function rl(e){function t(l){return Lr(l,e)}if(0<Pl.length){Lr(Pl[0],e);for(var n=1;n<Pl.length;n++){var r=Pl[n];r.blockedOn===e&&(r.blockedOn=null)}}for(mn!==null&&Lr(mn,e),gn!==null&&Lr(gn,e),yn!==null&&Lr(yn,e),tl.forEach(t),nl.forEach(t),n=0;n<dn.length;n++)r=dn[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<dn.length&&(n=dn[0],n.blockedOn===null);)Oc(n),n.blockedOn===null&&dn.shift()}var dr=ln.ReactCurrentBatchConfig,os=!0;function xp(e,t,n,r){var l=de,i=dr.transition;dr.transition=null;try{de=1,Aa(e,t,n,r)}finally{de=l,dr.transition=i}}function wp(e,t,n,r){var l=de,i=dr.transition;dr.transition=null;try{de=4,Aa(e,t,n,r)}finally{de=l,dr.transition=i}}function Aa(e,t,n,r){if(os){var l=Xi(e,t,n,r);if(l===null)hi(e,t,r,us,n),Do(e,r);else if(yp(l,e,t,n,r))r.stopPropagation();else if(Do(e,r),t&4&&-1<gp.indexOf(e)){for(;l!==null;){var i=wl(l);if(i!==null&&zc(i),i=Xi(e,t,n,r),i===null&&hi(e,t,r,us,n),i===l)break;l=i}l!==null&&r.stopPropagation()}else hi(e,t,r,null,n)}}var us=null;function Xi(e,t,n,r){if(us=null,e=Ia(r),e=zn(e),e!==null)if(t=Vn(e),t===null)e=null;else if(n=t.tag,n===13){if(e=_c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return us=e,null}function Ac(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(ap()){case $a:return 1;case Tc:return 4;case is:case op:return 16;case Pc:return 536870912;default:return 16}default:return 16}}var pn=null,Ma=null,Ql=null;function Mc(){if(Ql)return Ql;var e,t=Ma,n=t.length,r,l="value"in pn?pn.value:pn.textContent,i=l.length;for(e=0;e<n&&t[e]===l[e];e++);var a=n-e;for(r=1;r<=a&&t[n-r]===l[i-r];r++);return Ql=l.slice(e,1<r?1-r:void 0)}function ql(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Ll(){return!0}function Ao(){return!1}function kt(e){function t(n,r,l,i,a){this._reactName=n,this._targetInst=l,this.type=r,this.nativeEvent=i,this.target=a,this.currentTarget=null;for(var o in e)e.hasOwnProperty(o)&&(n=e[o],this[o]=n?n(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?Ll:Ao,this.isPropagationStopped=Ao,this}return be(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Ll)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Ll)},persist:function(){},isPersistent:Ll}),t}var Sr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Fa=kt(Sr),xl=be({},Sr,{view:0,detail:0}),kp=kt(xl),si,ii,Rr,Ps=be({},xl,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ba,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Rr&&(Rr&&e.type==="mousemove"?(si=e.screenX-Rr.screenX,ii=e.screenY-Rr.screenY):ii=si=0,Rr=e),si)},movementY:function(e){return"movementY"in e?e.movementY:ii}}),Mo=kt(Ps),jp=be({},Ps,{dataTransfer:0}),Sp=kt(jp),Np=be({},xl,{relatedTarget:0}),ai=kt(Np),_p=be({},Sr,{animationName:0,elapsedTime:0,pseudoElement:0}),Cp=kt(_p),Ep=be({},Sr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),bp=kt(Ep),Tp=be({},Sr,{data:0}),Fo=kt(Tp),Pp={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Lp={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Rp={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function zp(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Rp[e])?!!t[e]:!1}function Ba(){return zp}var Ip=be({},xl,{key:function(e){if(e.key){var t=Pp[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=ql(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Lp[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ba,charCode:function(e){return e.type==="keypress"?ql(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?ql(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),$p=kt(Ip),Dp=be({},Ps,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Bo=kt(Dp),Op=be({},xl,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ba}),Ap=kt(Op),Mp=be({},Sr,{propertyName:0,elapsedTime:0,pseudoElement:0}),Fp=kt(Mp),Bp=be({},Ps,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Up=kt(Bp),Hp=[9,13,27,32],Ua=en&&"CompositionEvent"in window,Vr=null;en&&"documentMode"in document&&(Vr=document.documentMode);var Wp=en&&"TextEvent"in window&&!Vr,Fc=en&&(!Ua||Vr&&8<Vr&&11>=Vr),Uo=" ",Ho=!1;function Bc(e,t){switch(e){case"keyup":return Hp.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Uc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Yn=!1;function Vp(e,t){switch(e){case"compositionend":return Uc(t);case"keypress":return t.which!==32?null:(Ho=!0,Uo);case"textInput":return e=t.data,e===Uo&&Ho?null:e;default:return null}}function Qp(e,t){if(Yn)return e==="compositionend"||!Ua&&Bc(e,t)?(e=Mc(),Ql=Ma=pn=null,Yn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Fc&&t.locale!=="ko"?null:t.data;default:return null}}var qp={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!qp[e.type]:t==="textarea"}function Hc(e,t,n,r){wc(r),t=cs(t,"onChange"),0<t.length&&(n=new Fa("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Qr=null,ll=null;function Kp(e){ed(e,0)}function Ls(e){var t=tr(e);if(pc(t))return e}function Xp(e,t){if(e==="change")return t}var Wc=!1;if(en){var oi;if(en){var ui="oninput"in document;if(!ui){var Vo=document.createElement("div");Vo.setAttribute("oninput","return;"),ui=typeof Vo.oninput=="function"}oi=ui}else oi=!1;Wc=oi&&(!document.documentMode||9<document.documentMode)}function Qo(){Qr&&(Qr.detachEvent("onpropertychange",Vc),ll=Qr=null)}function Vc(e){if(e.propertyName==="value"&&Ls(ll)){var t=[];Hc(t,ll,e,Ia(e)),Nc(Kp,t)}}function Jp(e,t,n){e==="focusin"?(Qo(),Qr=t,ll=n,Qr.attachEvent("onpropertychange",Vc)):e==="focusout"&&Qo()}function Gp(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Ls(ll)}function Yp(e,t){if(e==="click")return Ls(t)}function Zp(e,t){if(e==="input"||e==="change")return Ls(t)}function eh(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Dt=typeof Object.is=="function"?Object.is:eh;function sl(e,t){if(Dt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var l=n[r];if(!Li.call(t,l)||!Dt(e[l],t[l]))return!1}return!0}function qo(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Ko(e,t){var n=qo(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=qo(n)}}function Qc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Qc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function qc(){for(var e=window,t=rs();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=rs(e.document)}return t}function Ha(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function th(e){var t=qc(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Qc(n.ownerDocument.documentElement,n)){if(r!==null&&Ha(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,i=Math.min(r.start,l);r=r.end===void 0?i:Math.min(r.end,l),!e.extend&&i>r&&(l=r,r=i,i=l),l=Ko(n,i);var a=Ko(n,r);l&&a&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var nh=en&&"documentMode"in document&&11>=document.documentMode,Zn=null,Ji=null,qr=null,Gi=!1;function Xo(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Gi||Zn==null||Zn!==rs(r)||(r=Zn,"selectionStart"in r&&Ha(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),qr&&sl(qr,r)||(qr=r,r=cs(Ji,"onSelect"),0<r.length&&(t=new Fa("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=Zn)))}function Rl(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var er={animationend:Rl("Animation","AnimationEnd"),animationiteration:Rl("Animation","AnimationIteration"),animationstart:Rl("Animation","AnimationStart"),transitionend:Rl("Transition","TransitionEnd")},ci={},Kc={};en&&(Kc=document.createElement("div").style,"AnimationEvent"in window||(delete er.animationend.animation,delete er.animationiteration.animation,delete er.animationstart.animation),"TransitionEvent"in window||delete er.transitionend.transition);function Rs(e){if(ci[e])return ci[e];if(!er[e])return e;var t=er[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Kc)return ci[e]=t[n];return e}var Xc=Rs("animationend"),Jc=Rs("animationiteration"),Gc=Rs("animationstart"),Yc=Rs("transitionend"),Zc=new Map,Jo="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function _n(e,t){Zc.set(e,t),Wn(t,[e])}for(var di=0;di<Jo.length;di++){var fi=Jo[di],rh=fi.toLowerCase(),lh=fi[0].toUpperCase()+fi.slice(1);_n(rh,"on"+lh)}_n(Xc,"onAnimationEnd");_n(Jc,"onAnimationIteration");_n(Gc,"onAnimationStart");_n("dblclick","onDoubleClick");_n("focusin","onFocus");_n("focusout","onBlur");_n(Yc,"onTransitionEnd");mr("onMouseEnter",["mouseout","mouseover"]);mr("onMouseLeave",["mouseout","mouseover"]);mr("onPointerEnter",["pointerout","pointerover"]);mr("onPointerLeave",["pointerout","pointerover"]);Wn("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Wn("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Wn("onBeforeInput",["compositionend","keypress","textInput","paste"]);Wn("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Wn("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Wn("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Fr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),sh=new Set("cancel close invalid load scroll toggle".split(" ").concat(Fr));function Go(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,rp(r,t,void 0,e),e.currentTarget=null}function ed(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],l=r.event;r=r.listeners;e:{var i=void 0;if(t)for(var a=r.length-1;0<=a;a--){var o=r[a],u=o.instance,d=o.currentTarget;if(o=o.listener,u!==i&&l.isPropagationStopped())break e;Go(l,o,d),i=u}else for(a=0;a<r.length;a++){if(o=r[a],u=o.instance,d=o.currentTarget,o=o.listener,u!==i&&l.isPropagationStopped())break e;Go(l,o,d),i=u}}}if(ss)throw e=Qi,ss=!1,Qi=null,e}function ve(e,t){var n=t[na];n===void 0&&(n=t[na]=new Set);var r=e+"__bubble";n.has(r)||(td(t,e,2,!1),n.add(r))}function pi(e,t,n){var r=0;t&&(r|=4),td(n,e,r,t)}var zl="_reactListening"+Math.random().toString(36).slice(2);function il(e){if(!e[zl]){e[zl]=!0,oc.forEach(function(n){n!=="selectionchange"&&(sh.has(n)||pi(n,!1,e),pi(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[zl]||(t[zl]=!0,pi("selectionchange",!1,t))}}function td(e,t,n,r){switch(Ac(t)){case 1:var l=xp;break;case 4:l=wp;break;default:l=Aa}n=l.bind(null,t,n,e),l=void 0,!Vi||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),r?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function hi(e,t,n,r,l){var i=r;if(!(t&1)&&!(t&2)&&r!==null)e:for(;;){if(r===null)return;var a=r.tag;if(a===3||a===4){var o=r.stateNode.containerInfo;if(o===l||o.nodeType===8&&o.parentNode===l)break;if(a===4)for(a=r.return;a!==null;){var u=a.tag;if((u===3||u===4)&&(u=a.stateNode.containerInfo,u===l||u.nodeType===8&&u.parentNode===l))return;a=a.return}for(;o!==null;){if(a=zn(o),a===null)return;if(u=a.tag,u===5||u===6){r=i=a;continue e}o=o.parentNode}}r=r.return}Nc(function(){var d=i,y=Ia(n),g=[];e:{var h=Zc.get(e);if(h!==void 0){var v=Fa,x=e;switch(e){case"keypress":if(ql(n)===0)break e;case"keydown":case"keyup":v=$p;break;case"focusin":x="focus",v=ai;break;case"focusout":x="blur",v=ai;break;case"beforeblur":case"afterblur":v=ai;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":v=Mo;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":v=Sp;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":v=Ap;break;case Xc:case Jc:case Gc:v=Cp;break;case Yc:v=Fp;break;case"scroll":v=kp;break;case"wheel":v=Up;break;case"copy":case"cut":case"paste":v=bp;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":v=Bo}var S=(t&4)!==0,N=!S&&e==="scroll",p=S?h!==null?h+"Capture":null:h;S=[];for(var f=d,m;f!==null;){m=f;var k=m.stateNode;if(m.tag===5&&k!==null&&(m=k,p!==null&&(k=el(f,p),k!=null&&S.push(al(f,k,m)))),N)break;f=f.return}0<S.length&&(h=new v(h,x,null,n,y),g.push({event:h,listeners:S}))}}if(!(t&7)){e:{if(h=e==="mouseover"||e==="pointerover",v=e==="mouseout"||e==="pointerout",h&&n!==Hi&&(x=n.relatedTarget||n.fromElement)&&(zn(x)||x[tn]))break e;if((v||h)&&(h=y.window===y?y:(h=y.ownerDocument)?h.defaultView||h.parentWindow:window,v?(x=n.relatedTarget||n.toElement,v=d,x=x?zn(x):null,x!==null&&(N=Vn(x),x!==N||x.tag!==5&&x.tag!==6)&&(x=null)):(v=null,x=d),v!==x)){if(S=Mo,k="onMouseLeave",p="onMouseEnter",f="mouse",(e==="pointerout"||e==="pointerover")&&(S=Bo,k="onPointerLeave",p="onPointerEnter",f="pointer"),N=v==null?h:tr(v),m=x==null?h:tr(x),h=new S(k,f+"leave",v,n,y),h.target=N,h.relatedTarget=m,k=null,zn(y)===d&&(S=new S(p,f+"enter",x,n,y),S.target=m,S.relatedTarget=N,k=S),N=k,v&&x)t:{for(S=v,p=x,f=0,m=S;m;m=Kn(m))f++;for(m=0,k=p;k;k=Kn(k))m++;for(;0<f-m;)S=Kn(S),f--;for(;0<m-f;)p=Kn(p),m--;for(;f--;){if(S===p||p!==null&&S===p.alternate)break t;S=Kn(S),p=Kn(p)}S=null}else S=null;v!==null&&Yo(g,h,v,S,!1),x!==null&&N!==null&&Yo(g,N,x,S,!0)}}e:{if(h=d?tr(d):window,v=h.nodeName&&h.nodeName.toLowerCase(),v==="select"||v==="input"&&h.type==="file")var C=Xp;else if(Wo(h))if(Wc)C=Zp;else{C=Gp;var E=Jp}else(v=h.nodeName)&&v.toLowerCase()==="input"&&(h.type==="checkbox"||h.type==="radio")&&(C=Yp);if(C&&(C=C(e,d))){Hc(g,C,n,y);break e}E&&E(e,h,d),e==="focusout"&&(E=h._wrapperState)&&E.controlled&&h.type==="number"&&Ai(h,"number",h.value)}switch(E=d?tr(d):window,e){case"focusin":(Wo(E)||E.contentEditable==="true")&&(Zn=E,Ji=d,qr=null);break;case"focusout":qr=Ji=Zn=null;break;case"mousedown":Gi=!0;break;case"contextmenu":case"mouseup":case"dragend":Gi=!1,Xo(g,n,y);break;case"selectionchange":if(nh)break;case"keydown":case"keyup":Xo(g,n,y)}var T;if(Ua)e:{switch(e){case"compositionstart":var j="onCompositionStart";break e;case"compositionend":j="onCompositionEnd";break e;case"compositionupdate":j="onCompositionUpdate";break e}j=void 0}else Yn?Bc(e,n)&&(j="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(j="onCompositionStart");j&&(Fc&&n.locale!=="ko"&&(Yn||j!=="onCompositionStart"?j==="onCompositionEnd"&&Yn&&(T=Mc()):(pn=y,Ma="value"in pn?pn.value:pn.textContent,Yn=!0)),E=cs(d,j),0<E.length&&(j=new Fo(j,e,null,n,y),g.push({event:j,listeners:E}),T?j.data=T:(T=Uc(n),T!==null&&(j.data=T)))),(T=Wp?Vp(e,n):Qp(e,n))&&(d=cs(d,"onBeforeInput"),0<d.length&&(y=new Fo("onBeforeInput","beforeinput",null,n,y),g.push({event:y,listeners:d}),y.data=T))}ed(g,t)})}function al(e,t,n){return{instance:e,listener:t,currentTarget:n}}function cs(e,t){for(var n=t+"Capture",r=[];e!==null;){var l=e,i=l.stateNode;l.tag===5&&i!==null&&(l=i,i=el(e,n),i!=null&&r.unshift(al(e,i,l)),i=el(e,t),i!=null&&r.push(al(e,i,l))),e=e.return}return r}function Kn(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Yo(e,t,n,r,l){for(var i=t._reactName,a=[];n!==null&&n!==r;){var o=n,u=o.alternate,d=o.stateNode;if(u!==null&&u===r)break;o.tag===5&&d!==null&&(o=d,l?(u=el(n,i),u!=null&&a.unshift(al(n,u,o))):l||(u=el(n,i),u!=null&&a.push(al(n,u,o)))),n=n.return}a.length!==0&&e.push({event:t,listeners:a})}var ih=/\r\n?/g,ah=/\u0000|\uFFFD/g;function Zo(e){return(typeof e=="string"?e:""+e).replace(ih,`
|
||
`).replace(ah,"")}function Il(e,t,n){if(t=Zo(t),Zo(e)!==t&&n)throw Error(I(425))}function ds(){}var Yi=null,Zi=null;function ea(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var ta=typeof setTimeout=="function"?setTimeout:void 0,oh=typeof clearTimeout=="function"?clearTimeout:void 0,eu=typeof Promise=="function"?Promise:void 0,uh=typeof queueMicrotask=="function"?queueMicrotask:typeof eu<"u"?function(e){return eu.resolve(null).then(e).catch(ch)}:ta;function ch(e){setTimeout(function(){throw e})}function mi(e,t){var n=t,r=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"){if(r===0){e.removeChild(l),rl(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=l}while(n);rl(t)}function vn(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function tu(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var Nr=Math.random().toString(36).slice(2),Ut="__reactFiber$"+Nr,ol="__reactProps$"+Nr,tn="__reactContainer$"+Nr,na="__reactEvents$"+Nr,dh="__reactListeners$"+Nr,fh="__reactHandles$"+Nr;function zn(e){var t=e[Ut];if(t)return t;for(var n=e.parentNode;n;){if(t=n[tn]||n[Ut]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=tu(e);e!==null;){if(n=e[Ut])return n;e=tu(e)}return t}e=n,n=e.parentNode}return null}function wl(e){return e=e[Ut]||e[tn],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function tr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(I(33))}function zs(e){return e[ol]||null}var ra=[],nr=-1;function Cn(e){return{current:e}}function xe(e){0>nr||(e.current=ra[nr],ra[nr]=null,nr--)}function ge(e,t){nr++,ra[nr]=e.current,e.current=t}var Nn={},et=Cn(Nn),dt=Cn(!1),Mn=Nn;function gr(e,t){var n=e.type.contextTypes;if(!n)return Nn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in n)l[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function ft(e){return e=e.childContextTypes,e!=null}function fs(){xe(dt),xe(et)}function nu(e,t,n){if(et.current!==Nn)throw Error(I(168));ge(et,t),ge(dt,n)}function nd(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(I(108,Jf(e)||"Unknown",l));return be({},n,r)}function ps(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Nn,Mn=et.current,ge(et,e),ge(dt,dt.current),!0}function ru(e,t,n){var r=e.stateNode;if(!r)throw Error(I(169));n?(e=nd(e,t,Mn),r.__reactInternalMemoizedMergedChildContext=e,xe(dt),xe(et),ge(et,e)):xe(dt),ge(dt,n)}var Jt=null,Is=!1,gi=!1;function rd(e){Jt===null?Jt=[e]:Jt.push(e)}function ph(e){Is=!0,rd(e)}function En(){if(!gi&&Jt!==null){gi=!0;var e=0,t=de;try{var n=Jt;for(de=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}Jt=null,Is=!1}catch(l){throw Jt!==null&&(Jt=Jt.slice(e+1)),bc($a,En),l}finally{de=t,gi=!1}}return null}var rr=[],lr=0,hs=null,ms=0,Nt=[],_t=0,Fn=null,Gt=1,Yt="";function Ln(e,t){rr[lr++]=ms,rr[lr++]=hs,hs=e,ms=t}function ld(e,t,n){Nt[_t++]=Gt,Nt[_t++]=Yt,Nt[_t++]=Fn,Fn=e;var r=Gt;e=Yt;var l=32-It(r)-1;r&=~(1<<l),n+=1;var i=32-It(t)+l;if(30<i){var a=l-l%5;i=(r&(1<<a)-1).toString(32),r>>=a,l-=a,Gt=1<<32-It(t)+l|n<<l|r,Yt=i+e}else Gt=1<<i|n<<l|r,Yt=e}function Wa(e){e.return!==null&&(Ln(e,1),ld(e,1,0))}function Va(e){for(;e===hs;)hs=rr[--lr],rr[lr]=null,ms=rr[--lr],rr[lr]=null;for(;e===Fn;)Fn=Nt[--_t],Nt[_t]=null,Yt=Nt[--_t],Nt[_t]=null,Gt=Nt[--_t],Nt[_t]=null}var vt=null,yt=null,je=!1,zt=null;function sd(e,t){var n=Ct(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function lu(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,vt=e,yt=vn(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,vt=e,yt=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Fn!==null?{id:Gt,overflow:Yt}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Ct(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,vt=e,yt=null,!0):!1;default:return!1}}function la(e){return(e.mode&1)!==0&&(e.flags&128)===0}function sa(e){if(je){var t=yt;if(t){var n=t;if(!lu(e,t)){if(la(e))throw Error(I(418));t=vn(n.nextSibling);var r=vt;t&&lu(e,t)?sd(r,n):(e.flags=e.flags&-4097|2,je=!1,vt=e)}}else{if(la(e))throw Error(I(418));e.flags=e.flags&-4097|2,je=!1,vt=e}}}function su(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;vt=e}function $l(e){if(e!==vt)return!1;if(!je)return su(e),je=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!ea(e.type,e.memoizedProps)),t&&(t=yt)){if(la(e))throw id(),Error(I(418));for(;t;)sd(e,t),t=vn(t.nextSibling)}if(su(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(I(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){yt=vn(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}yt=null}}else yt=vt?vn(e.stateNode.nextSibling):null;return!0}function id(){for(var e=yt;e;)e=vn(e.nextSibling)}function yr(){yt=vt=null,je=!1}function Qa(e){zt===null?zt=[e]:zt.push(e)}var hh=ln.ReactCurrentBatchConfig;function zr(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(I(309));var r=n.stateNode}if(!r)throw Error(I(147,e));var l=r,i=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===i?t.ref:(t=function(a){var o=l.refs;a===null?delete o[i]:o[i]=a},t._stringRef=i,t)}if(typeof e!="string")throw Error(I(284));if(!n._owner)throw Error(I(290,e))}return e}function Dl(e,t){throw e=Object.prototype.toString.call(t),Error(I(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function iu(e){var t=e._init;return t(e._payload)}function ad(e){function t(p,f){if(e){var m=p.deletions;m===null?(p.deletions=[f],p.flags|=16):m.push(f)}}function n(p,f){if(!e)return null;for(;f!==null;)t(p,f),f=f.sibling;return null}function r(p,f){for(p=new Map;f!==null;)f.key!==null?p.set(f.key,f):p.set(f.index,f),f=f.sibling;return p}function l(p,f){return p=jn(p,f),p.index=0,p.sibling=null,p}function i(p,f,m){return p.index=m,e?(m=p.alternate,m!==null?(m=m.index,m<f?(p.flags|=2,f):m):(p.flags|=2,f)):(p.flags|=1048576,f)}function a(p){return e&&p.alternate===null&&(p.flags|=2),p}function o(p,f,m,k){return f===null||f.tag!==6?(f=Si(m,p.mode,k),f.return=p,f):(f=l(f,m),f.return=p,f)}function u(p,f,m,k){var C=m.type;return C===Gn?y(p,f,m.props.children,k,m.key):f!==null&&(f.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===un&&iu(C)===f.type)?(k=l(f,m.props),k.ref=zr(p,f,m),k.return=p,k):(k=es(m.type,m.key,m.props,null,p.mode,k),k.ref=zr(p,f,m),k.return=p,k)}function d(p,f,m,k){return f===null||f.tag!==4||f.stateNode.containerInfo!==m.containerInfo||f.stateNode.implementation!==m.implementation?(f=Ni(m,p.mode,k),f.return=p,f):(f=l(f,m.children||[]),f.return=p,f)}function y(p,f,m,k,C){return f===null||f.tag!==7?(f=An(m,p.mode,k,C),f.return=p,f):(f=l(f,m),f.return=p,f)}function g(p,f,m){if(typeof f=="string"&&f!==""||typeof f=="number")return f=Si(""+f,p.mode,m),f.return=p,f;if(typeof f=="object"&&f!==null){switch(f.$$typeof){case _l:return m=es(f.type,f.key,f.props,null,p.mode,m),m.ref=zr(p,null,f),m.return=p,m;case Jn:return f=Ni(f,p.mode,m),f.return=p,f;case un:var k=f._init;return g(p,k(f._payload),m)}if(Ar(f)||br(f))return f=An(f,p.mode,m,null),f.return=p,f;Dl(p,f)}return null}function h(p,f,m,k){var C=f!==null?f.key:null;if(typeof m=="string"&&m!==""||typeof m=="number")return C!==null?null:o(p,f,""+m,k);if(typeof m=="object"&&m!==null){switch(m.$$typeof){case _l:return m.key===C?u(p,f,m,k):null;case Jn:return m.key===C?d(p,f,m,k):null;case un:return C=m._init,h(p,f,C(m._payload),k)}if(Ar(m)||br(m))return C!==null?null:y(p,f,m,k,null);Dl(p,m)}return null}function v(p,f,m,k,C){if(typeof k=="string"&&k!==""||typeof k=="number")return p=p.get(m)||null,o(f,p,""+k,C);if(typeof k=="object"&&k!==null){switch(k.$$typeof){case _l:return p=p.get(k.key===null?m:k.key)||null,u(f,p,k,C);case Jn:return p=p.get(k.key===null?m:k.key)||null,d(f,p,k,C);case un:var E=k._init;return v(p,f,m,E(k._payload),C)}if(Ar(k)||br(k))return p=p.get(m)||null,y(f,p,k,C,null);Dl(f,k)}return null}function x(p,f,m,k){for(var C=null,E=null,T=f,j=f=0,P=null;T!==null&&j<m.length;j++){T.index>j?(P=T,T=null):P=T.sibling;var R=h(p,T,m[j],k);if(R===null){T===null&&(T=P);break}e&&T&&R.alternate===null&&t(p,T),f=i(R,f,j),E===null?C=R:E.sibling=R,E=R,T=P}if(j===m.length)return n(p,T),je&&Ln(p,j),C;if(T===null){for(;j<m.length;j++)T=g(p,m[j],k),T!==null&&(f=i(T,f,j),E===null?C=T:E.sibling=T,E=T);return je&&Ln(p,j),C}for(T=r(p,T);j<m.length;j++)P=v(T,p,j,m[j],k),P!==null&&(e&&P.alternate!==null&&T.delete(P.key===null?j:P.key),f=i(P,f,j),E===null?C=P:E.sibling=P,E=P);return e&&T.forEach(function(X){return t(p,X)}),je&&Ln(p,j),C}function S(p,f,m,k){var C=br(m);if(typeof C!="function")throw Error(I(150));if(m=C.call(m),m==null)throw Error(I(151));for(var E=C=null,T=f,j=f=0,P=null,R=m.next();T!==null&&!R.done;j++,R=m.next()){T.index>j?(P=T,T=null):P=T.sibling;var X=h(p,T,R.value,k);if(X===null){T===null&&(T=P);break}e&&T&&X.alternate===null&&t(p,T),f=i(X,f,j),E===null?C=X:E.sibling=X,E=X,T=P}if(R.done)return n(p,T),je&&Ln(p,j),C;if(T===null){for(;!R.done;j++,R=m.next())R=g(p,R.value,k),R!==null&&(f=i(R,f,j),E===null?C=R:E.sibling=R,E=R);return je&&Ln(p,j),C}for(T=r(p,T);!R.done;j++,R=m.next())R=v(T,p,j,R.value,k),R!==null&&(e&&R.alternate!==null&&T.delete(R.key===null?j:R.key),f=i(R,f,j),E===null?C=R:E.sibling=R,E=R);return e&&T.forEach(function(H){return t(p,H)}),je&&Ln(p,j),C}function N(p,f,m,k){if(typeof m=="object"&&m!==null&&m.type===Gn&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case _l:e:{for(var C=m.key,E=f;E!==null;){if(E.key===C){if(C=m.type,C===Gn){if(E.tag===7){n(p,E.sibling),f=l(E,m.props.children),f.return=p,p=f;break e}}else if(E.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===un&&iu(C)===E.type){n(p,E.sibling),f=l(E,m.props),f.ref=zr(p,E,m),f.return=p,p=f;break e}n(p,E);break}else t(p,E);E=E.sibling}m.type===Gn?(f=An(m.props.children,p.mode,k,m.key),f.return=p,p=f):(k=es(m.type,m.key,m.props,null,p.mode,k),k.ref=zr(p,f,m),k.return=p,p=k)}return a(p);case Jn:e:{for(E=m.key;f!==null;){if(f.key===E)if(f.tag===4&&f.stateNode.containerInfo===m.containerInfo&&f.stateNode.implementation===m.implementation){n(p,f.sibling),f=l(f,m.children||[]),f.return=p,p=f;break e}else{n(p,f);break}else t(p,f);f=f.sibling}f=Ni(m,p.mode,k),f.return=p,p=f}return a(p);case un:return E=m._init,N(p,f,E(m._payload),k)}if(Ar(m))return x(p,f,m,k);if(br(m))return S(p,f,m,k);Dl(p,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,f!==null&&f.tag===6?(n(p,f.sibling),f=l(f,m),f.return=p,p=f):(n(p,f),f=Si(m,p.mode,k),f.return=p,p=f),a(p)):n(p,f)}return N}var vr=ad(!0),od=ad(!1),gs=Cn(null),ys=null,sr=null,qa=null;function Ka(){qa=sr=ys=null}function Xa(e){var t=gs.current;xe(gs),e._currentValue=t}function ia(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function fr(e,t){ys=e,qa=sr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(ct=!0),e.firstContext=null)}function bt(e){var t=e._currentValue;if(qa!==e)if(e={context:e,memoizedValue:t,next:null},sr===null){if(ys===null)throw Error(I(308));sr=e,ys.dependencies={lanes:0,firstContext:e}}else sr=sr.next=e;return t}var In=null;function Ja(e){In===null?In=[e]:In.push(e)}function ud(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Ja(t)):(n.next=l.next,l.next=n),t.interleaved=n,nn(e,r)}function nn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var cn=!1;function Ga(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function cd(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Zt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function xn(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,oe&2){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,nn(e,n)}return l=r.interleaved,l===null?(t.next=t,Ja(r)):(t.next=l.next,l.next=t),r.interleaved=t,nn(e,n)}function Kl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Da(e,n)}}function au(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?l=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?l=i=t:i=i.next=t}else l=i=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function vs(e,t,n,r){var l=e.updateQueue;cn=!1;var i=l.firstBaseUpdate,a=l.lastBaseUpdate,o=l.shared.pending;if(o!==null){l.shared.pending=null;var u=o,d=u.next;u.next=null,a===null?i=d:a.next=d,a=u;var y=e.alternate;y!==null&&(y=y.updateQueue,o=y.lastBaseUpdate,o!==a&&(o===null?y.firstBaseUpdate=d:o.next=d,y.lastBaseUpdate=u))}if(i!==null){var g=l.baseState;a=0,y=d=u=null,o=i;do{var h=o.lane,v=o.eventTime;if((r&h)===h){y!==null&&(y=y.next={eventTime:v,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var x=e,S=o;switch(h=t,v=n,S.tag){case 1:if(x=S.payload,typeof x=="function"){g=x.call(v,g,h);break e}g=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=S.payload,h=typeof x=="function"?x.call(v,g,h):x,h==null)break e;g=be({},g,h);break e;case 2:cn=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,h=l.effects,h===null?l.effects=[o]:h.push(o))}else v={eventTime:v,lane:h,tag:o.tag,payload:o.payload,callback:o.callback,next:null},y===null?(d=y=v,u=g):y=y.next=v,a|=h;if(o=o.next,o===null){if(o=l.shared.pending,o===null)break;h=o,o=h.next,h.next=null,l.lastBaseUpdate=h,l.shared.pending=null}}while(!0);if(y===null&&(u=g),l.baseState=u,l.firstBaseUpdate=d,l.lastBaseUpdate=y,t=l.shared.interleaved,t!==null){l=t;do a|=l.lane,l=l.next;while(l!==t)}else i===null&&(l.shared.lanes=0);Un|=a,e.lanes=a,e.memoizedState=g}}function ou(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],l=r.callback;if(l!==null){if(r.callback=null,r=n,typeof l!="function")throw Error(I(191,l));l.call(r)}}}var kl={},Wt=Cn(kl),ul=Cn(kl),cl=Cn(kl);function $n(e){if(e===kl)throw Error(I(174));return e}function Ya(e,t){switch(ge(cl,t),ge(ul,e),ge(Wt,kl),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Fi(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Fi(t,e)}xe(Wt),ge(Wt,t)}function xr(){xe(Wt),xe(ul),xe(cl)}function dd(e){$n(cl.current);var t=$n(Wt.current),n=Fi(t,e.type);t!==n&&(ge(ul,e),ge(Wt,n))}function Za(e){ul.current===e&&(xe(Wt),xe(ul))}var Ce=Cn(0);function xs(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var yi=[];function eo(){for(var e=0;e<yi.length;e++)yi[e]._workInProgressVersionPrimary=null;yi.length=0}var Xl=ln.ReactCurrentDispatcher,vi=ln.ReactCurrentBatchConfig,Bn=0,Ee=null,Me=null,He=null,ws=!1,Kr=!1,dl=0,mh=0;function Ge(){throw Error(I(321))}function to(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Dt(e[n],t[n]))return!1;return!0}function no(e,t,n,r,l,i){if(Bn=i,Ee=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Xl.current=e===null||e.memoizedState===null?xh:wh,e=n(r,l),Kr){i=0;do{if(Kr=!1,dl=0,25<=i)throw Error(I(301));i+=1,He=Me=null,t.updateQueue=null,Xl.current=kh,e=n(r,l)}while(Kr)}if(Xl.current=ks,t=Me!==null&&Me.next!==null,Bn=0,He=Me=Ee=null,ws=!1,t)throw Error(I(300));return e}function ro(){var e=dl!==0;return dl=0,e}function Bt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return He===null?Ee.memoizedState=He=e:He=He.next=e,He}function Tt(){if(Me===null){var e=Ee.alternate;e=e!==null?e.memoizedState:null}else e=Me.next;var t=He===null?Ee.memoizedState:He.next;if(t!==null)He=t,Me=e;else{if(e===null)throw Error(I(310));Me=e,e={memoizedState:Me.memoizedState,baseState:Me.baseState,baseQueue:Me.baseQueue,queue:Me.queue,next:null},He===null?Ee.memoizedState=He=e:He=He.next=e}return He}function fl(e,t){return typeof t=="function"?t(e):t}function xi(e){var t=Tt(),n=t.queue;if(n===null)throw Error(I(311));n.lastRenderedReducer=e;var r=Me,l=r.baseQueue,i=n.pending;if(i!==null){if(l!==null){var a=l.next;l.next=i.next,i.next=a}r.baseQueue=l=i,n.pending=null}if(l!==null){i=l.next,r=r.baseState;var o=a=null,u=null,d=i;do{var y=d.lane;if((Bn&y)===y)u!==null&&(u=u.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),r=d.hasEagerState?d.eagerState:e(r,d.action);else{var g={lane:y,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};u===null?(o=u=g,a=r):u=u.next=g,Ee.lanes|=y,Un|=y}d=d.next}while(d!==null&&d!==i);u===null?a=r:u.next=o,Dt(r,t.memoizedState)||(ct=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=u,n.lastRenderedState=r}if(e=n.interleaved,e!==null){l=e;do i=l.lane,Ee.lanes|=i,Un|=i,l=l.next;while(l!==e)}else l===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function wi(e){var t=Tt(),n=t.queue;if(n===null)throw Error(I(311));n.lastRenderedReducer=e;var r=n.dispatch,l=n.pending,i=t.memoizedState;if(l!==null){n.pending=null;var a=l=l.next;do i=e(i,a.action),a=a.next;while(a!==l);Dt(i,t.memoizedState)||(ct=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function fd(){}function pd(e,t){var n=Ee,r=Tt(),l=t(),i=!Dt(r.memoizedState,l);if(i&&(r.memoizedState=l,ct=!0),r=r.queue,lo(gd.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||He!==null&&He.memoizedState.tag&1){if(n.flags|=2048,pl(9,md.bind(null,n,r,l,t),void 0,null),We===null)throw Error(I(349));Bn&30||hd(n,t,l)}return l}function hd(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=Ee.updateQueue,t===null?(t={lastEffect:null,stores:null},Ee.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function md(e,t,n,r){t.value=n,t.getSnapshot=r,yd(t)&&vd(e)}function gd(e,t,n){return n(function(){yd(t)&&vd(e)})}function yd(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Dt(e,n)}catch{return!0}}function vd(e){var t=nn(e,1);t!==null&&$t(t,e,1,-1)}function uu(e){var t=Bt();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:fl,lastRenderedState:e},t.queue=e,e=e.dispatch=vh.bind(null,Ee,e),[t.memoizedState,e]}function pl(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=Ee.updateQueue,t===null?(t={lastEffect:null,stores:null},Ee.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function xd(){return Tt().memoizedState}function Jl(e,t,n,r){var l=Bt();Ee.flags|=e,l.memoizedState=pl(1|t,n,void 0,r===void 0?null:r)}function $s(e,t,n,r){var l=Tt();r=r===void 0?null:r;var i=void 0;if(Me!==null){var a=Me.memoizedState;if(i=a.destroy,r!==null&&to(r,a.deps)){l.memoizedState=pl(t,n,i,r);return}}Ee.flags|=e,l.memoizedState=pl(1|t,n,i,r)}function cu(e,t){return Jl(8390656,8,e,t)}function lo(e,t){return $s(2048,8,e,t)}function wd(e,t){return $s(4,2,e,t)}function kd(e,t){return $s(4,4,e,t)}function jd(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Sd(e,t,n){return n=n!=null?n.concat([e]):null,$s(4,4,jd.bind(null,t,e),n)}function so(){}function Nd(e,t){var n=Tt();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&to(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function _d(e,t){var n=Tt();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&to(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Cd(e,t,n){return Bn&21?(Dt(n,t)||(n=Lc(),Ee.lanes|=n,Un|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,ct=!0),e.memoizedState=n)}function gh(e,t){var n=de;de=n!==0&&4>n?n:4,e(!0);var r=vi.transition;vi.transition={};try{e(!1),t()}finally{de=n,vi.transition=r}}function Ed(){return Tt().memoizedState}function yh(e,t,n){var r=kn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},bd(e))Td(t,n);else if(n=ud(e,t,n,r),n!==null){var l=lt();$t(n,e,r,l),Pd(n,t,r)}}function vh(e,t,n){var r=kn(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(bd(e))Td(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,o=i(a,n);if(l.hasEagerState=!0,l.eagerState=o,Dt(o,a)){var u=t.interleaved;u===null?(l.next=l,Ja(t)):(l.next=u.next,u.next=l),t.interleaved=l;return}}catch{}finally{}n=ud(e,t,l,r),n!==null&&(l=lt(),$t(n,e,r,l),Pd(n,t,r))}}function bd(e){var t=e.alternate;return e===Ee||t!==null&&t===Ee}function Td(e,t){Kr=ws=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Pd(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Da(e,n)}}var ks={readContext:bt,useCallback:Ge,useContext:Ge,useEffect:Ge,useImperativeHandle:Ge,useInsertionEffect:Ge,useLayoutEffect:Ge,useMemo:Ge,useReducer:Ge,useRef:Ge,useState:Ge,useDebugValue:Ge,useDeferredValue:Ge,useTransition:Ge,useMutableSource:Ge,useSyncExternalStore:Ge,useId:Ge,unstable_isNewReconciler:!1},xh={readContext:bt,useCallback:function(e,t){return Bt().memoizedState=[e,t===void 0?null:t],e},useContext:bt,useEffect:cu,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Jl(4194308,4,jd.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Jl(4194308,4,e,t)},useInsertionEffect:function(e,t){return Jl(4,2,e,t)},useMemo:function(e,t){var n=Bt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Bt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=yh.bind(null,Ee,e),[r.memoizedState,e]},useRef:function(e){var t=Bt();return e={current:e},t.memoizedState=e},useState:uu,useDebugValue:so,useDeferredValue:function(e){return Bt().memoizedState=e},useTransition:function(){var e=uu(!1),t=e[0];return e=gh.bind(null,e[1]),Bt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Ee,l=Bt();if(je){if(n===void 0)throw Error(I(407));n=n()}else{if(n=t(),We===null)throw Error(I(349));Bn&30||hd(r,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,cu(gd.bind(null,r,i,e),[e]),r.flags|=2048,pl(9,md.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Bt(),t=We.identifierPrefix;if(je){var n=Yt,r=Gt;n=(r&~(1<<32-It(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=dl++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=mh++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},wh={readContext:bt,useCallback:Nd,useContext:bt,useEffect:lo,useImperativeHandle:Sd,useInsertionEffect:wd,useLayoutEffect:kd,useMemo:_d,useReducer:xi,useRef:xd,useState:function(){return xi(fl)},useDebugValue:so,useDeferredValue:function(e){var t=Tt();return Cd(t,Me.memoizedState,e)},useTransition:function(){var e=xi(fl)[0],t=Tt().memoizedState;return[e,t]},useMutableSource:fd,useSyncExternalStore:pd,useId:Ed,unstable_isNewReconciler:!1},kh={readContext:bt,useCallback:Nd,useContext:bt,useEffect:lo,useImperativeHandle:Sd,useInsertionEffect:wd,useLayoutEffect:kd,useMemo:_d,useReducer:wi,useRef:xd,useState:function(){return wi(fl)},useDebugValue:so,useDeferredValue:function(e){var t=Tt();return Me===null?t.memoizedState=e:Cd(t,Me.memoizedState,e)},useTransition:function(){var e=wi(fl)[0],t=Tt().memoizedState;return[e,t]},useMutableSource:fd,useSyncExternalStore:pd,useId:Ed,unstable_isNewReconciler:!1};function Lt(e,t){if(e&&e.defaultProps){t=be({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function aa(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:be({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Ds={isMounted:function(e){return(e=e._reactInternals)?Vn(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=lt(),l=kn(e),i=Zt(r,l);i.payload=t,n!=null&&(i.callback=n),t=xn(e,i,l),t!==null&&($t(t,e,l,r),Kl(t,e,l))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=lt(),l=kn(e),i=Zt(r,l);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=xn(e,i,l),t!==null&&($t(t,e,l,r),Kl(t,e,l))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=lt(),r=kn(e),l=Zt(n,r);l.tag=2,t!=null&&(l.callback=t),t=xn(e,l,r),t!==null&&($t(t,e,r,n),Kl(t,e,r))}};function du(e,t,n,r,l,i,a){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,i,a):t.prototype&&t.prototype.isPureReactComponent?!sl(n,r)||!sl(l,i):!0}function Ld(e,t,n){var r=!1,l=Nn,i=t.contextType;return typeof i=="object"&&i!==null?i=bt(i):(l=ft(t)?Mn:et.current,r=t.contextTypes,i=(r=r!=null)?gr(e,l):Nn),t=new t(n,i),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Ds,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=l,e.__reactInternalMemoizedMaskedChildContext=i),t}function fu(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ds.enqueueReplaceState(t,t.state,null)}function oa(e,t,n,r){var l=e.stateNode;l.props=n,l.state=e.memoizedState,l.refs={},Ga(e);var i=t.contextType;typeof i=="object"&&i!==null?l.context=bt(i):(i=ft(t)?Mn:et.current,l.context=gr(e,i)),l.state=e.memoizedState,i=t.getDerivedStateFromProps,typeof i=="function"&&(aa(e,t,i,n),l.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof l.getSnapshotBeforeUpdate=="function"||typeof l.UNSAFE_componentWillMount!="function"&&typeof l.componentWillMount!="function"||(t=l.state,typeof l.componentWillMount=="function"&&l.componentWillMount(),typeof l.UNSAFE_componentWillMount=="function"&&l.UNSAFE_componentWillMount(),t!==l.state&&Ds.enqueueReplaceState(l,l.state,null),vs(e,n,l,r),l.state=e.memoizedState),typeof l.componentDidMount=="function"&&(e.flags|=4194308)}function wr(e,t){try{var n="",r=t;do n+=Xf(r),r=r.return;while(r);var l=n}catch(i){l=`
|
||
Error generating stack: `+i.message+`
|
||
`+i.stack}return{value:e,source:t,stack:l,digest:null}}function ki(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function ua(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var jh=typeof WeakMap=="function"?WeakMap:Map;function Rd(e,t,n){n=Zt(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Ss||(Ss=!0,xa=r),ua(e,t)},n}function zd(e,t,n){n=Zt(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){ua(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){ua(e,t),typeof r!="function"&&(wn===null?wn=new Set([this]):wn.add(this));var a=t.stack;this.componentDidCatch(t.value,{componentStack:a!==null?a:""})}),n}function pu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new jh;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=Dh.bind(null,e,t,n),t.then(e,e))}function hu(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function mu(e,t,n,r,l){return e.mode&1?(e.flags|=65536,e.lanes=l,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Zt(-1,1),t.tag=2,xn(n,t,1))),n.lanes|=1),e)}var Sh=ln.ReactCurrentOwner,ct=!1;function rt(e,t,n,r){t.child=e===null?od(t,null,n,r):vr(t,e.child,n,r)}function gu(e,t,n,r,l){n=n.render;var i=t.ref;return fr(t,l),r=no(e,t,n,r,i,l),n=ro(),e!==null&&!ct?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,rn(e,t,l)):(je&&n&&Wa(t),t.flags|=1,rt(e,t,r,l),t.child)}function yu(e,t,n,r,l){if(e===null){var i=n.type;return typeof i=="function"&&!ho(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,Id(e,t,i,r,l)):(e=es(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&l)){var a=i.memoizedProps;if(n=n.compare,n=n!==null?n:sl,n(a,r)&&e.ref===t.ref)return rn(e,t,l)}return t.flags|=1,e=jn(i,r),e.ref=t.ref,e.return=t,t.child=e}function Id(e,t,n,r,l){if(e!==null){var i=e.memoizedProps;if(sl(i,r)&&e.ref===t.ref)if(ct=!1,t.pendingProps=r=i,(e.lanes&l)!==0)e.flags&131072&&(ct=!0);else return t.lanes=e.lanes,rn(e,t,l)}return ca(e,t,n,r,l)}function $d(e,t,n){var r=t.pendingProps,l=r.children,i=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ge(ar,mt),mt|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ge(ar,mt),mt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=i!==null?i.baseLanes:n,ge(ar,mt),mt|=r}else i!==null?(r=i.baseLanes|n,t.memoizedState=null):r=n,ge(ar,mt),mt|=r;return rt(e,t,l,n),t.child}function Dd(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function ca(e,t,n,r,l){var i=ft(n)?Mn:et.current;return i=gr(t,i),fr(t,l),n=no(e,t,n,r,i,l),r=ro(),e!==null&&!ct?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,rn(e,t,l)):(je&&r&&Wa(t),t.flags|=1,rt(e,t,n,l),t.child)}function vu(e,t,n,r,l){if(ft(n)){var i=!0;ps(t)}else i=!1;if(fr(t,l),t.stateNode===null)Gl(e,t),Ld(t,n,r),oa(t,n,r,l),r=!0;else if(e===null){var a=t.stateNode,o=t.memoizedProps;a.props=o;var u=a.context,d=n.contextType;typeof d=="object"&&d!==null?d=bt(d):(d=ft(n)?Mn:et.current,d=gr(t,d));var y=n.getDerivedStateFromProps,g=typeof y=="function"||typeof a.getSnapshotBeforeUpdate=="function";g||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(o!==r||u!==d)&&fu(t,a,r,d),cn=!1;var h=t.memoizedState;a.state=h,vs(t,r,a,l),u=t.memoizedState,o!==r||h!==u||dt.current||cn?(typeof y=="function"&&(aa(t,n,y,r),u=t.memoizedState),(o=cn||du(t,n,o,r,h,u,d))?(g||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount=="function"&&(t.flags|=4194308)):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),a.props=r,a.state=u,a.context=d,r=o):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,cd(e,t),o=t.memoizedProps,d=t.type===t.elementType?o:Lt(t.type,o),a.props=d,g=t.pendingProps,h=a.context,u=n.contextType,typeof u=="object"&&u!==null?u=bt(u):(u=ft(n)?Mn:et.current,u=gr(t,u));var v=n.getDerivedStateFromProps;(y=typeof v=="function"||typeof a.getSnapshotBeforeUpdate=="function")||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(o!==g||h!==u)&&fu(t,a,r,u),cn=!1,h=t.memoizedState,a.state=h,vs(t,r,a,l);var x=t.memoizedState;o!==g||h!==x||dt.current||cn?(typeof v=="function"&&(aa(t,n,v,r),x=t.memoizedState),(d=cn||du(t,n,d,r,h,x,u)||!1)?(y||typeof a.UNSAFE_componentWillUpdate!="function"&&typeof a.componentWillUpdate!="function"||(typeof a.componentWillUpdate=="function"&&a.componentWillUpdate(r,x,u),typeof a.UNSAFE_componentWillUpdate=="function"&&a.UNSAFE_componentWillUpdate(r,x,u)),typeof a.componentDidUpdate=="function"&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof a.componentDidUpdate!="function"||o===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||o===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=x),a.props=r,a.state=x,a.context=u,r=d):(typeof a.componentDidUpdate!="function"||o===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||o===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),r=!1)}return da(e,t,n,r,i,l)}function da(e,t,n,r,l,i){Dd(e,t);var a=(t.flags&128)!==0;if(!r&&!a)return l&&ru(t,n,!1),rn(e,t,i);r=t.stateNode,Sh.current=t;var o=a&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&a?(t.child=vr(t,e.child,null,i),t.child=vr(t,null,o,i)):rt(e,t,o,i),t.memoizedState=r.state,l&&ru(t,n,!0),t.child}function Od(e){var t=e.stateNode;t.pendingContext?nu(e,t.pendingContext,t.pendingContext!==t.context):t.context&&nu(e,t.context,!1),Ya(e,t.containerInfo)}function xu(e,t,n,r,l){return yr(),Qa(l),t.flags|=256,rt(e,t,n,r),t.child}var fa={dehydrated:null,treeContext:null,retryLane:0};function pa(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ad(e,t,n){var r=t.pendingProps,l=Ce.current,i=!1,a=(t.flags&128)!==0,o;if((o=a)||(o=e!==null&&e.memoizedState===null?!1:(l&2)!==0),o?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),ge(Ce,l&1),e===null)return sa(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(a=r.children,e=r.fallback,i?(r=t.mode,i=t.child,a={mode:"hidden",children:a},!(r&1)&&i!==null?(i.childLanes=0,i.pendingProps=a):i=Ms(a,r,0,null),e=An(e,r,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=pa(n),t.memoizedState=fa,e):io(t,a));if(l=e.memoizedState,l!==null&&(o=l.dehydrated,o!==null))return Nh(e,t,a,r,o,l,n);if(i){i=r.fallback,a=t.mode,l=e.child,o=l.sibling;var u={mode:"hidden",children:r.children};return!(a&1)&&t.child!==l?(r=t.child,r.childLanes=0,r.pendingProps=u,t.deletions=null):(r=jn(l,u),r.subtreeFlags=l.subtreeFlags&14680064),o!==null?i=jn(o,i):(i=An(i,a,n,null),i.flags|=2),i.return=t,r.return=t,r.sibling=i,t.child=r,r=i,i=t.child,a=e.child.memoizedState,a=a===null?pa(n):{baseLanes:a.baseLanes|n,cachePool:null,transitions:a.transitions},i.memoizedState=a,i.childLanes=e.childLanes&~n,t.memoizedState=fa,r}return i=e.child,e=i.sibling,r=jn(i,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function io(e,t){return t=Ms({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Ol(e,t,n,r){return r!==null&&Qa(r),vr(t,e.child,null,n),e=io(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Nh(e,t,n,r,l,i,a){if(n)return t.flags&256?(t.flags&=-257,r=ki(Error(I(422))),Ol(e,t,a,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=r.fallback,l=t.mode,r=Ms({mode:"visible",children:r.children},l,0,null),i=An(i,l,a,null),i.flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,t.mode&1&&vr(t,e.child,null,a),t.child.memoizedState=pa(a),t.memoizedState=fa,i);if(!(t.mode&1))return Ol(e,t,a,null);if(l.data==="$!"){if(r=l.nextSibling&&l.nextSibling.dataset,r)var o=r.dgst;return r=o,i=Error(I(419)),r=ki(i,r,void 0),Ol(e,t,a,r)}if(o=(a&e.childLanes)!==0,ct||o){if(r=We,r!==null){switch(a&-a){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}l=l&(r.suspendedLanes|a)?0:l,l!==0&&l!==i.retryLane&&(i.retryLane=l,nn(e,l),$t(r,e,l,-1))}return po(),r=ki(Error(I(421))),Ol(e,t,a,r)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=Oh.bind(null,e),l._reactRetry=t,null):(e=i.treeContext,yt=vn(l.nextSibling),vt=t,je=!0,zt=null,e!==null&&(Nt[_t++]=Gt,Nt[_t++]=Yt,Nt[_t++]=Fn,Gt=e.id,Yt=e.overflow,Fn=t),t=io(t,r.children),t.flags|=4096,t)}function wu(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),ia(e.return,t,n)}function ji(e,t,n,r,l){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=l)}function Md(e,t,n){var r=t.pendingProps,l=r.revealOrder,i=r.tail;if(rt(e,t,r.children,n),r=Ce.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&wu(e,n,t);else if(e.tag===19)wu(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ge(Ce,r),!(t.mode&1))t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&xs(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),ji(t,!1,l,n,i);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&xs(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}ji(t,!0,n,null,i);break;case"together":ji(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Gl(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function rn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Un|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(I(153));if(t.child!==null){for(e=t.child,n=jn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=jn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function _h(e,t,n){switch(t.tag){case 3:Od(t),yr();break;case 5:dd(t);break;case 1:ft(t.type)&&ps(t);break;case 4:Ya(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,l=t.memoizedProps.value;ge(gs,r._currentValue),r._currentValue=l;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(ge(Ce,Ce.current&1),t.flags|=128,null):n&t.child.childLanes?Ad(e,t,n):(ge(Ce,Ce.current&1),e=rn(e,t,n),e!==null?e.sibling:null);ge(Ce,Ce.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return Md(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),ge(Ce,Ce.current),r)break;return null;case 22:case 23:return t.lanes=0,$d(e,t,n)}return rn(e,t,n)}var Fd,ha,Bd,Ud;Fd=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};ha=function(){};Bd=function(e,t,n,r){var l=e.memoizedProps;if(l!==r){e=t.stateNode,$n(Wt.current);var i=null;switch(n){case"input":l=Di(e,l),r=Di(e,r),i=[];break;case"select":l=be({},l,{value:void 0}),r=be({},r,{value:void 0}),i=[];break;case"textarea":l=Mi(e,l),r=Mi(e,r),i=[];break;default:typeof l.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=ds)}Bi(n,r);var a;n=null;for(d in l)if(!r.hasOwnProperty(d)&&l.hasOwnProperty(d)&&l[d]!=null)if(d==="style"){var o=l[d];for(a in o)o.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(Yr.hasOwnProperty(d)?i||(i=[]):(i=i||[]).push(d,null));for(d in r){var u=r[d];if(o=l!=null?l[d]:void 0,r.hasOwnProperty(d)&&u!==o&&(u!=null||o!=null))if(d==="style")if(o){for(a in o)!o.hasOwnProperty(a)||u&&u.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in u)u.hasOwnProperty(a)&&o[a]!==u[a]&&(n||(n={}),n[a]=u[a])}else n||(i||(i=[]),i.push(d,n)),n=u;else d==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,o=o?o.__html:void 0,u!=null&&o!==u&&(i=i||[]).push(d,u)):d==="children"?typeof u!="string"&&typeof u!="number"||(i=i||[]).push(d,""+u):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(Yr.hasOwnProperty(d)?(u!=null&&d==="onScroll"&&ve("scroll",e),i||o===u||(i=[])):(i=i||[]).push(d,u))}n&&(i=i||[]).push("style",n);var d=i;(t.updateQueue=d)&&(t.flags|=4)}};Ud=function(e,t,n,r){n!==r&&(t.flags|=4)};function Ir(e,t){if(!je)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ye(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags&14680064,r|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Ch(e,t,n){var r=t.pendingProps;switch(Va(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ye(t),null;case 1:return ft(t.type)&&fs(),Ye(t),null;case 3:return r=t.stateNode,xr(),xe(dt),xe(et),eo(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&($l(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,zt!==null&&(ja(zt),zt=null))),ha(e,t),Ye(t),null;case 5:Za(t);var l=$n(cl.current);if(n=t.type,e!==null&&t.stateNode!=null)Bd(e,t,n,r,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(I(166));return Ye(t),null}if(e=$n(Wt.current),$l(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[Ut]=t,r[ol]=i,e=(t.mode&1)!==0,n){case"dialog":ve("cancel",r),ve("close",r);break;case"iframe":case"object":case"embed":ve("load",r);break;case"video":case"audio":for(l=0;l<Fr.length;l++)ve(Fr[l],r);break;case"source":ve("error",r);break;case"img":case"image":case"link":ve("error",r),ve("load",r);break;case"details":ve("toggle",r);break;case"input":To(r,i),ve("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},ve("invalid",r);break;case"textarea":Lo(r,i),ve("invalid",r)}Bi(n,i),l=null;for(var a in i)if(i.hasOwnProperty(a)){var o=i[a];a==="children"?typeof o=="string"?r.textContent!==o&&(i.suppressHydrationWarning!==!0&&Il(r.textContent,o,e),l=["children",o]):typeof o=="number"&&r.textContent!==""+o&&(i.suppressHydrationWarning!==!0&&Il(r.textContent,o,e),l=["children",""+o]):Yr.hasOwnProperty(a)&&o!=null&&a==="onScroll"&&ve("scroll",r)}switch(n){case"input":Cl(r),Po(r,i,!0);break;case"textarea":Cl(r),Ro(r);break;case"select":case"option":break;default:typeof i.onClick=="function"&&(r.onclick=ds)}r=l,t.updateQueue=r,r!==null&&(t.flags|=4)}else{a=l.nodeType===9?l:l.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=gc(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=a.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[Ut]=t,e[ol]=r,Fd(e,t,!1,!1),t.stateNode=e;e:{switch(a=Ui(n,r),n){case"dialog":ve("cancel",e),ve("close",e),l=r;break;case"iframe":case"object":case"embed":ve("load",e),l=r;break;case"video":case"audio":for(l=0;l<Fr.length;l++)ve(Fr[l],e);l=r;break;case"source":ve("error",e),l=r;break;case"img":case"image":case"link":ve("error",e),ve("load",e),l=r;break;case"details":ve("toggle",e),l=r;break;case"input":To(e,r),l=Di(e,r),ve("invalid",e);break;case"option":l=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},l=be({},r,{value:void 0}),ve("invalid",e);break;case"textarea":Lo(e,r),l=Mi(e,r),ve("invalid",e);break;default:l=r}Bi(n,l),o=l;for(i in o)if(o.hasOwnProperty(i)){var u=o[i];i==="style"?xc(e,u):i==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,u!=null&&yc(e,u)):i==="children"?typeof u=="string"?(n!=="textarea"||u!=="")&&Zr(e,u):typeof u=="number"&&Zr(e,""+u):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(Yr.hasOwnProperty(i)?u!=null&&i==="onScroll"&&ve("scroll",e):u!=null&&Pa(e,i,u,a))}switch(n){case"input":Cl(e),Po(e,r,!1);break;case"textarea":Cl(e),Ro(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Sn(r.value));break;case"select":e.multiple=!!r.multiple,i=r.value,i!=null?or(e,!!r.multiple,i,!1):r.defaultValue!=null&&or(e,!!r.multiple,r.defaultValue,!0);break;default:typeof l.onClick=="function"&&(e.onclick=ds)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Ye(t),null;case 6:if(e&&t.stateNode!=null)Ud(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(I(166));if(n=$n(cl.current),$n(Wt.current),$l(t)){if(r=t.stateNode,n=t.memoizedProps,r[Ut]=t,(i=r.nodeValue!==n)&&(e=vt,e!==null))switch(e.tag){case 3:Il(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Il(r.nodeValue,n,(e.mode&1)!==0)}i&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[Ut]=t,t.stateNode=r}return Ye(t),null;case 13:if(xe(Ce),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(je&&yt!==null&&t.mode&1&&!(t.flags&128))id(),yr(),t.flags|=98560,i=!1;else if(i=$l(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(I(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(I(317));i[Ut]=t}else yr(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ye(t),i=!1}else zt!==null&&(ja(zt),zt=null),i=!0;if(!i)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,t.mode&1&&(e===null||Ce.current&1?Fe===0&&(Fe=3):po())),t.updateQueue!==null&&(t.flags|=4),Ye(t),null);case 4:return xr(),ha(e,t),e===null&&il(t.stateNode.containerInfo),Ye(t),null;case 10:return Xa(t.type._context),Ye(t),null;case 17:return ft(t.type)&&fs(),Ye(t),null;case 19:if(xe(Ce),i=t.memoizedState,i===null)return Ye(t),null;if(r=(t.flags&128)!==0,a=i.rendering,a===null)if(r)Ir(i,!1);else{if(Fe!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=xs(e),a!==null){for(t.flags|=128,Ir(i,!1),r=a.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)i=n,e=r,i.flags&=14680066,a=i.alternate,a===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=a.childLanes,i.lanes=a.lanes,i.child=a.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=a.memoizedProps,i.memoizedState=a.memoizedState,i.updateQueue=a.updateQueue,i.type=a.type,e=a.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ge(Ce,Ce.current&1|2),t.child}e=e.sibling}i.tail!==null&&Re()>kr&&(t.flags|=128,r=!0,Ir(i,!1),t.lanes=4194304)}else{if(!r)if(e=xs(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ir(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!je)return Ye(t),null}else 2*Re()-i.renderingStartTime>kr&&n!==1073741824&&(t.flags|=128,r=!0,Ir(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Re(),t.sibling=null,n=Ce.current,ge(Ce,r?n&1|2:n&1),t):(Ye(t),null);case 22:case 23:return fo(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?mt&1073741824&&(Ye(t),t.subtreeFlags&6&&(t.flags|=8192)):Ye(t),null;case 24:return null;case 25:return null}throw Error(I(156,t.tag))}function Eh(e,t){switch(Va(t),t.tag){case 1:return ft(t.type)&&fs(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return xr(),xe(dt),xe(et),eo(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Za(t),null;case 13:if(xe(Ce),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(I(340));yr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return xe(Ce),null;case 4:return xr(),null;case 10:return Xa(t.type._context),null;case 22:case 23:return fo(),null;case 24:return null;default:return null}}var Al=!1,Ze=!1,bh=typeof WeakSet=="function"?WeakSet:Set,W=null;function ir(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Pe(e,t,r)}else n.current=null}function ma(e,t,n){try{n()}catch(r){Pe(e,t,r)}}var ku=!1;function Th(e,t){if(Yi=os,e=qc(),Ha(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,o=-1,u=-1,d=0,y=0,g=e,h=null;t:for(;;){for(var v;g!==n||l!==0&&g.nodeType!==3||(o=a+l),g!==i||r!==0&&g.nodeType!==3||(u=a+r),g.nodeType===3&&(a+=g.nodeValue.length),(v=g.firstChild)!==null;)h=g,g=v;for(;;){if(g===e)break t;if(h===n&&++d===l&&(o=a),h===i&&++y===r&&(u=a),(v=g.nextSibling)!==null)break;g=h,h=g.parentNode}g=v}n=o===-1||u===-1?null:{start:o,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(Zi={focusedElem:e,selectionRange:n},os=!1,W=t;W!==null;)if(t=W,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,W=e;else for(;W!==null;){t=W;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var S=x.memoizedProps,N=x.memoizedState,p=t.stateNode,f=p.getSnapshotBeforeUpdate(t.elementType===t.type?S:Lt(t.type,S),N);p.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var m=t.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(I(163))}}catch(k){Pe(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,W=e;break}W=t.return}return x=ku,ku=!1,x}function Xr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&ma(t,n,i)}l=l.next}while(l!==r)}}function Os(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ga(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Hd(e){var t=e.alternate;t!==null&&(e.alternate=null,Hd(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ut],delete t[ol],delete t[na],delete t[dh],delete t[fh])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Wd(e){return e.tag===5||e.tag===3||e.tag===4}function ju(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Wd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ya(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=ds));else if(r!==4&&(e=e.child,e!==null))for(ya(e,t,n),e=e.sibling;e!==null;)ya(e,t,n),e=e.sibling}function va(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(va(e,t,n),e=e.sibling;e!==null;)va(e,t,n),e=e.sibling}var qe=null,Rt=!1;function on(e,t,n){for(n=n.child;n!==null;)Vd(e,t,n),n=n.sibling}function Vd(e,t,n){if(Ht&&typeof Ht.onCommitFiberUnmount=="function")try{Ht.onCommitFiberUnmount(Ts,n)}catch{}switch(n.tag){case 5:Ze||ir(n,t);case 6:var r=qe,l=Rt;qe=null,on(e,t,n),qe=r,Rt=l,qe!==null&&(Rt?(e=qe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):qe.removeChild(n.stateNode));break;case 18:qe!==null&&(Rt?(e=qe,n=n.stateNode,e.nodeType===8?mi(e.parentNode,n):e.nodeType===1&&mi(e,n),rl(e)):mi(qe,n.stateNode));break;case 4:r=qe,l=Rt,qe=n.stateNode.containerInfo,Rt=!0,on(e,t,n),qe=r,Rt=l;break;case 0:case 11:case 14:case 15:if(!Ze&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var i=l,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&ma(n,t,a),l=l.next}while(l!==r)}on(e,t,n);break;case 1:if(!Ze&&(ir(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(o){Pe(n,t,o)}on(e,t,n);break;case 21:on(e,t,n);break;case 22:n.mode&1?(Ze=(r=Ze)||n.memoizedState!==null,on(e,t,n),Ze=r):on(e,t,n);break;default:on(e,t,n)}}function Su(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new bh),t.forEach(function(r){var l=Ah.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Pt(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var l=n[r];try{var i=e,a=t,o=a;e:for(;o!==null;){switch(o.tag){case 5:qe=o.stateNode,Rt=!1;break e;case 3:qe=o.stateNode.containerInfo,Rt=!0;break e;case 4:qe=o.stateNode.containerInfo,Rt=!0;break e}o=o.return}if(qe===null)throw Error(I(160));Vd(i,a,l),qe=null,Rt=!1;var u=l.alternate;u!==null&&(u.return=null),l.return=null}catch(d){Pe(l,t,d)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Qd(t,e),t=t.sibling}function Qd(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Pt(t,e),Mt(e),r&4){try{Xr(3,e,e.return),Os(3,e)}catch(S){Pe(e,e.return,S)}try{Xr(5,e,e.return)}catch(S){Pe(e,e.return,S)}}break;case 1:Pt(t,e),Mt(e),r&512&&n!==null&&ir(n,n.return);break;case 5:if(Pt(t,e),Mt(e),r&512&&n!==null&&ir(n,n.return),e.flags&32){var l=e.stateNode;try{Zr(l,"")}catch(S){Pe(e,e.return,S)}}if(r&4&&(l=e.stateNode,l!=null)){var i=e.memoizedProps,a=n!==null?n.memoizedProps:i,o=e.type,u=e.updateQueue;if(e.updateQueue=null,u!==null)try{o==="input"&&i.type==="radio"&&i.name!=null&&hc(l,i),Ui(o,a);var d=Ui(o,i);for(a=0;a<u.length;a+=2){var y=u[a],g=u[a+1];y==="style"?xc(l,g):y==="dangerouslySetInnerHTML"?yc(l,g):y==="children"?Zr(l,g):Pa(l,y,g,d)}switch(o){case"input":Oi(l,i);break;case"textarea":mc(l,i);break;case"select":var h=l._wrapperState.wasMultiple;l._wrapperState.wasMultiple=!!i.multiple;var v=i.value;v!=null?or(l,!!i.multiple,v,!1):h!==!!i.multiple&&(i.defaultValue!=null?or(l,!!i.multiple,i.defaultValue,!0):or(l,!!i.multiple,i.multiple?[]:"",!1))}l[ol]=i}catch(S){Pe(e,e.return,S)}}break;case 6:if(Pt(t,e),Mt(e),r&4){if(e.stateNode===null)throw Error(I(162));l=e.stateNode,i=e.memoizedProps;try{l.nodeValue=i}catch(S){Pe(e,e.return,S)}}break;case 3:if(Pt(t,e),Mt(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{rl(t.containerInfo)}catch(S){Pe(e,e.return,S)}break;case 4:Pt(t,e),Mt(e);break;case 13:Pt(t,e),Mt(e),l=e.child,l.flags&8192&&(i=l.memoizedState!==null,l.stateNode.isHidden=i,!i||l.alternate!==null&&l.alternate.memoizedState!==null||(uo=Re())),r&4&&Su(e);break;case 22:if(y=n!==null&&n.memoizedState!==null,e.mode&1?(Ze=(d=Ze)||y,Pt(t,e),Ze=d):Pt(t,e),Mt(e),r&8192){if(d=e.memoizedState!==null,(e.stateNode.isHidden=d)&&!y&&e.mode&1)for(W=e,y=e.child;y!==null;){for(g=W=y;W!==null;){switch(h=W,v=h.child,h.tag){case 0:case 11:case 14:case 15:Xr(4,h,h.return);break;case 1:ir(h,h.return);var x=h.stateNode;if(typeof x.componentWillUnmount=="function"){r=h,n=h.return;try{t=r,x.props=t.memoizedProps,x.state=t.memoizedState,x.componentWillUnmount()}catch(S){Pe(r,n,S)}}break;case 5:ir(h,h.return);break;case 22:if(h.memoizedState!==null){_u(g);continue}}v!==null?(v.return=h,W=v):_u(g)}y=y.sibling}e:for(y=null,g=e;;){if(g.tag===5){if(y===null){y=g;try{l=g.stateNode,d?(i=l.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none"):(o=g.stateNode,u=g.memoizedProps.style,a=u!=null&&u.hasOwnProperty("display")?u.display:null,o.style.display=vc("display",a))}catch(S){Pe(e,e.return,S)}}}else if(g.tag===6){if(y===null)try{g.stateNode.nodeValue=d?"":g.memoizedProps}catch(S){Pe(e,e.return,S)}}else if((g.tag!==22&&g.tag!==23||g.memoizedState===null||g===e)&&g.child!==null){g.child.return=g,g=g.child;continue}if(g===e)break e;for(;g.sibling===null;){if(g.return===null||g.return===e)break e;y===g&&(y=null),g=g.return}y===g&&(y=null),g.sibling.return=g.return,g=g.sibling}}break;case 19:Pt(t,e),Mt(e),r&4&&Su(e);break;case 21:break;default:Pt(t,e),Mt(e)}}function Mt(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(Wd(n)){var r=n;break e}n=n.return}throw Error(I(160))}switch(r.tag){case 5:var l=r.stateNode;r.flags&32&&(Zr(l,""),r.flags&=-33);var i=ju(e);va(e,i,l);break;case 3:case 4:var a=r.stateNode.containerInfo,o=ju(e);ya(e,o,a);break;default:throw Error(I(161))}}catch(u){Pe(e,e.return,u)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Ph(e,t,n){W=e,qd(e)}function qd(e,t,n){for(var r=(e.mode&1)!==0;W!==null;){var l=W,i=l.child;if(l.tag===22&&r){var a=l.memoizedState!==null||Al;if(!a){var o=l.alternate,u=o!==null&&o.memoizedState!==null||Ze;o=Al;var d=Ze;if(Al=a,(Ze=u)&&!d)for(W=l;W!==null;)a=W,u=a.child,a.tag===22&&a.memoizedState!==null?Cu(l):u!==null?(u.return=a,W=u):Cu(l);for(;i!==null;)W=i,qd(i),i=i.sibling;W=l,Al=o,Ze=d}Nu(e)}else l.subtreeFlags&8772&&i!==null?(i.return=l,W=i):Nu(e)}}function Nu(e){for(;W!==null;){var t=W;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:Ze||Os(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!Ze)if(n===null)r.componentDidMount();else{var l=t.elementType===t.type?n.memoizedProps:Lt(t.type,n.memoizedProps);r.componentDidUpdate(l,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;i!==null&&ou(t,i,r);break;case 3:var a=t.updateQueue;if(a!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}ou(t,a,n)}break;case 5:var o=t.stateNode;if(n===null&&t.flags&4){n=o;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&n.focus();break;case"img":u.src&&(n.src=u.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var d=t.alternate;if(d!==null){var y=d.memoizedState;if(y!==null){var g=y.dehydrated;g!==null&&rl(g)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(I(163))}Ze||t.flags&512&&ga(t)}catch(h){Pe(t,t.return,h)}}if(t===e){W=null;break}if(n=t.sibling,n!==null){n.return=t.return,W=n;break}W=t.return}}function _u(e){for(;W!==null;){var t=W;if(t===e){W=null;break}var n=t.sibling;if(n!==null){n.return=t.return,W=n;break}W=t.return}}function Cu(e){for(;W!==null;){var t=W;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Os(4,t)}catch(u){Pe(t,n,u)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var l=t.return;try{r.componentDidMount()}catch(u){Pe(t,l,u)}}var i=t.return;try{ga(t)}catch(u){Pe(t,i,u)}break;case 5:var a=t.return;try{ga(t)}catch(u){Pe(t,a,u)}}}catch(u){Pe(t,t.return,u)}if(t===e){W=null;break}var o=t.sibling;if(o!==null){o.return=t.return,W=o;break}W=t.return}}var Lh=Math.ceil,js=ln.ReactCurrentDispatcher,ao=ln.ReactCurrentOwner,Et=ln.ReactCurrentBatchConfig,oe=0,We=null,De=null,Ke=0,mt=0,ar=Cn(0),Fe=0,hl=null,Un=0,As=0,oo=0,Jr=null,ut=null,uo=0,kr=1/0,Xt=null,Ss=!1,xa=null,wn=null,Ml=!1,hn=null,Ns=0,Gr=0,wa=null,Yl=-1,Zl=0;function lt(){return oe&6?Re():Yl!==-1?Yl:Yl=Re()}function kn(e){return e.mode&1?oe&2&&Ke!==0?Ke&-Ke:hh.transition!==null?(Zl===0&&(Zl=Lc()),Zl):(e=de,e!==0||(e=window.event,e=e===void 0?16:Ac(e.type)),e):1}function $t(e,t,n,r){if(50<Gr)throw Gr=0,wa=null,Error(I(185));vl(e,n,r),(!(oe&2)||e!==We)&&(e===We&&(!(oe&2)&&(As|=n),Fe===4&&fn(e,Ke)),pt(e,r),n===1&&oe===0&&!(t.mode&1)&&(kr=Re()+500,Is&&En()))}function pt(e,t){var n=e.callbackNode;hp(e,t);var r=as(e,e===We?Ke:0);if(r===0)n!==null&&$o(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&$o(n),t===1)e.tag===0?ph(Eu.bind(null,e)):rd(Eu.bind(null,e)),uh(function(){!(oe&6)&&En()}),n=null;else{switch(Rc(r)){case 1:n=$a;break;case 4:n=Tc;break;case 16:n=is;break;case 536870912:n=Pc;break;default:n=is}n=tf(n,Kd.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function Kd(e,t){if(Yl=-1,Zl=0,oe&6)throw Error(I(327));var n=e.callbackNode;if(pr()&&e.callbackNode!==n)return null;var r=as(e,e===We?Ke:0);if(r===0)return null;if(r&30||r&e.expiredLanes||t)t=_s(e,r);else{t=r;var l=oe;oe|=2;var i=Jd();(We!==e||Ke!==t)&&(Xt=null,kr=Re()+500,On(e,t));do try{Ih();break}catch(o){Xd(e,o)}while(!0);Ka(),js.current=i,oe=l,De!==null?t=0:(We=null,Ke=0,t=Fe)}if(t!==0){if(t===2&&(l=qi(e),l!==0&&(r=l,t=ka(e,l))),t===1)throw n=hl,On(e,0),fn(e,r),pt(e,Re()),n;if(t===6)fn(e,r);else{if(l=e.current.alternate,!(r&30)&&!Rh(l)&&(t=_s(e,r),t===2&&(i=qi(e),i!==0&&(r=i,t=ka(e,i))),t===1))throw n=hl,On(e,0),fn(e,r),pt(e,Re()),n;switch(e.finishedWork=l,e.finishedLanes=r,t){case 0:case 1:throw Error(I(345));case 2:Rn(e,ut,Xt);break;case 3:if(fn(e,r),(r&130023424)===r&&(t=uo+500-Re(),10<t)){if(as(e,0)!==0)break;if(l=e.suspendedLanes,(l&r)!==r){lt(),e.pingedLanes|=e.suspendedLanes&l;break}e.timeoutHandle=ta(Rn.bind(null,e,ut,Xt),t);break}Rn(e,ut,Xt);break;case 4:if(fn(e,r),(r&4194240)===r)break;for(t=e.eventTimes,l=-1;0<r;){var a=31-It(r);i=1<<a,a=t[a],a>l&&(l=a),r&=~i}if(r=l,r=Re()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Lh(r/1960))-r,10<r){e.timeoutHandle=ta(Rn.bind(null,e,ut,Xt),r);break}Rn(e,ut,Xt);break;case 5:Rn(e,ut,Xt);break;default:throw Error(I(329))}}}return pt(e,Re()),e.callbackNode===n?Kd.bind(null,e):null}function ka(e,t){var n=Jr;return e.current.memoizedState.isDehydrated&&(On(e,t).flags|=256),e=_s(e,t),e!==2&&(t=ut,ut=n,t!==null&&ja(t)),e}function ja(e){ut===null?ut=e:ut.push.apply(ut,e)}function Rh(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var l=n[r],i=l.getSnapshot;l=l.value;try{if(!Dt(i(),l))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function fn(e,t){for(t&=~oo,t&=~As,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-It(t),r=1<<n;e[n]=-1,t&=~r}}function Eu(e){if(oe&6)throw Error(I(327));pr();var t=as(e,0);if(!(t&1))return pt(e,Re()),null;var n=_s(e,t);if(e.tag!==0&&n===2){var r=qi(e);r!==0&&(t=r,n=ka(e,r))}if(n===1)throw n=hl,On(e,0),fn(e,t),pt(e,Re()),n;if(n===6)throw Error(I(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Rn(e,ut,Xt),pt(e,Re()),null}function co(e,t){var n=oe;oe|=1;try{return e(t)}finally{oe=n,oe===0&&(kr=Re()+500,Is&&En())}}function Hn(e){hn!==null&&hn.tag===0&&!(oe&6)&&pr();var t=oe;oe|=1;var n=Et.transition,r=de;try{if(Et.transition=null,de=1,e)return e()}finally{de=r,Et.transition=n,oe=t,!(oe&6)&&En()}}function fo(){mt=ar.current,xe(ar)}function On(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,oh(n)),De!==null)for(n=De.return;n!==null;){var r=n;switch(Va(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&fs();break;case 3:xr(),xe(dt),xe(et),eo();break;case 5:Za(r);break;case 4:xr();break;case 13:xe(Ce);break;case 19:xe(Ce);break;case 10:Xa(r.type._context);break;case 22:case 23:fo()}n=n.return}if(We=e,De=e=jn(e.current,null),Ke=mt=t,Fe=0,hl=null,oo=As=Un=0,ut=Jr=null,In!==null){for(t=0;t<In.length;t++)if(n=In[t],r=n.interleaved,r!==null){n.interleaved=null;var l=r.next,i=n.pending;if(i!==null){var a=i.next;i.next=l,r.next=a}n.pending=r}In=null}return e}function Xd(e,t){do{var n=De;try{if(Ka(),Xl.current=ks,ws){for(var r=Ee.memoizedState;r!==null;){var l=r.queue;l!==null&&(l.pending=null),r=r.next}ws=!1}if(Bn=0,He=Me=Ee=null,Kr=!1,dl=0,ao.current=null,n===null||n.return===null){Fe=1,hl=t,De=null;break}e:{var i=e,a=n.return,o=n,u=t;if(t=Ke,o.flags|=32768,u!==null&&typeof u=="object"&&typeof u.then=="function"){var d=u,y=o,g=y.tag;if(!(y.mode&1)&&(g===0||g===11||g===15)){var h=y.alternate;h?(y.updateQueue=h.updateQueue,y.memoizedState=h.memoizedState,y.lanes=h.lanes):(y.updateQueue=null,y.memoizedState=null)}var v=hu(a);if(v!==null){v.flags&=-257,mu(v,a,o,i,t),v.mode&1&&pu(i,d,t),t=v,u=d;var x=t.updateQueue;if(x===null){var S=new Set;S.add(u),t.updateQueue=S}else x.add(u);break e}else{if(!(t&1)){pu(i,d,t),po();break e}u=Error(I(426))}}else if(je&&o.mode&1){var N=hu(a);if(N!==null){!(N.flags&65536)&&(N.flags|=256),mu(N,a,o,i,t),Qa(wr(u,o));break e}}i=u=wr(u,o),Fe!==4&&(Fe=2),Jr===null?Jr=[i]:Jr.push(i),i=a;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t;var p=Rd(i,u,t);au(i,p);break e;case 1:o=u;var f=i.type,m=i.stateNode;if(!(i.flags&128)&&(typeof f.getDerivedStateFromError=="function"||m!==null&&typeof m.componentDidCatch=="function"&&(wn===null||!wn.has(m)))){i.flags|=65536,t&=-t,i.lanes|=t;var k=zd(i,o,t);au(i,k);break e}}i=i.return}while(i!==null)}Yd(n)}catch(C){t=C,De===n&&n!==null&&(De=n=n.return);continue}break}while(!0)}function Jd(){var e=js.current;return js.current=ks,e===null?ks:e}function po(){(Fe===0||Fe===3||Fe===2)&&(Fe=4),We===null||!(Un&268435455)&&!(As&268435455)||fn(We,Ke)}function _s(e,t){var n=oe;oe|=2;var r=Jd();(We!==e||Ke!==t)&&(Xt=null,On(e,t));do try{zh();break}catch(l){Xd(e,l)}while(!0);if(Ka(),oe=n,js.current=r,De!==null)throw Error(I(261));return We=null,Ke=0,Fe}function zh(){for(;De!==null;)Gd(De)}function Ih(){for(;De!==null&&!sp();)Gd(De)}function Gd(e){var t=ef(e.alternate,e,mt);e.memoizedProps=e.pendingProps,t===null?Yd(e):De=t,ao.current=null}function Yd(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=Eh(n,t),n!==null){n.flags&=32767,De=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Fe=6,De=null;return}}else if(n=Ch(n,t,mt),n!==null){De=n;return}if(t=t.sibling,t!==null){De=t;return}De=t=e}while(t!==null);Fe===0&&(Fe=5)}function Rn(e,t,n){var r=de,l=Et.transition;try{Et.transition=null,de=1,$h(e,t,n,r)}finally{Et.transition=l,de=r}return null}function $h(e,t,n,r){do pr();while(hn!==null);if(oe&6)throw Error(I(327));n=e.finishedWork;var l=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(I(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(mp(e,i),e===We&&(De=We=null,Ke=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||Ml||(Ml=!0,tf(is,function(){return pr(),null})),i=(n.flags&15990)!==0,n.subtreeFlags&15990||i){i=Et.transition,Et.transition=null;var a=de;de=1;var o=oe;oe|=4,ao.current=null,Th(e,n),Qd(n,e),th(Zi),os=!!Yi,Zi=Yi=null,e.current=n,Ph(n),ip(),oe=o,de=a,Et.transition=i}else e.current=n;if(Ml&&(Ml=!1,hn=e,Ns=l),i=e.pendingLanes,i===0&&(wn=null),up(n.stateNode),pt(e,Re()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)l=t[n],r(l.value,{componentStack:l.stack,digest:l.digest});if(Ss)throw Ss=!1,e=xa,xa=null,e;return Ns&1&&e.tag!==0&&pr(),i=e.pendingLanes,i&1?e===wa?Gr++:(Gr=0,wa=e):Gr=0,En(),null}function pr(){if(hn!==null){var e=Rc(Ns),t=Et.transition,n=de;try{if(Et.transition=null,de=16>e?16:e,hn===null)var r=!1;else{if(e=hn,hn=null,Ns=0,oe&6)throw Error(I(331));var l=oe;for(oe|=4,W=e.current;W!==null;){var i=W,a=i.child;if(W.flags&16){var o=i.deletions;if(o!==null){for(var u=0;u<o.length;u++){var d=o[u];for(W=d;W!==null;){var y=W;switch(y.tag){case 0:case 11:case 15:Xr(8,y,i)}var g=y.child;if(g!==null)g.return=y,W=g;else for(;W!==null;){y=W;var h=y.sibling,v=y.return;if(Hd(y),y===d){W=null;break}if(h!==null){h.return=v,W=h;break}W=v}}}var x=i.alternate;if(x!==null){var S=x.child;if(S!==null){x.child=null;do{var N=S.sibling;S.sibling=null,S=N}while(S!==null)}}W=i}}if(i.subtreeFlags&2064&&a!==null)a.return=i,W=a;else e:for(;W!==null;){if(i=W,i.flags&2048)switch(i.tag){case 0:case 11:case 15:Xr(9,i,i.return)}var p=i.sibling;if(p!==null){p.return=i.return,W=p;break e}W=i.return}}var f=e.current;for(W=f;W!==null;){a=W;var m=a.child;if(a.subtreeFlags&2064&&m!==null)m.return=a,W=m;else e:for(a=f;W!==null;){if(o=W,o.flags&2048)try{switch(o.tag){case 0:case 11:case 15:Os(9,o)}}catch(C){Pe(o,o.return,C)}if(o===a){W=null;break e}var k=o.sibling;if(k!==null){k.return=o.return,W=k;break e}W=o.return}}if(oe=l,En(),Ht&&typeof Ht.onPostCommitFiberRoot=="function")try{Ht.onPostCommitFiberRoot(Ts,e)}catch{}r=!0}return r}finally{de=n,Et.transition=t}}return!1}function bu(e,t,n){t=wr(n,t),t=Rd(e,t,1),e=xn(e,t,1),t=lt(),e!==null&&(vl(e,1,t),pt(e,t))}function Pe(e,t,n){if(e.tag===3)bu(e,e,n);else for(;t!==null;){if(t.tag===3){bu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(wn===null||!wn.has(r))){e=wr(n,e),e=zd(t,e,1),t=xn(t,e,1),e=lt(),t!==null&&(vl(t,1,e),pt(t,e));break}}t=t.return}}function Dh(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=lt(),e.pingedLanes|=e.suspendedLanes&n,We===e&&(Ke&n)===n&&(Fe===4||Fe===3&&(Ke&130023424)===Ke&&500>Re()-uo?On(e,0):oo|=n),pt(e,t)}function Zd(e,t){t===0&&(e.mode&1?(t=Tl,Tl<<=1,!(Tl&130023424)&&(Tl=4194304)):t=1);var n=lt();e=nn(e,t),e!==null&&(vl(e,t,n),pt(e,n))}function Oh(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Zd(e,n)}function Ah(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(I(314))}r!==null&&r.delete(t),Zd(e,n)}var ef;ef=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||dt.current)ct=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return ct=!1,_h(e,t,n);ct=!!(e.flags&131072)}else ct=!1,je&&t.flags&1048576&&ld(t,ms,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Gl(e,t),e=t.pendingProps;var l=gr(t,et.current);fr(t,n),l=no(null,t,r,e,l,n);var i=ro();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ft(r)?(i=!0,ps(t)):i=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Ga(t),l.updater=Ds,t.stateNode=l,l._reactInternals=t,oa(t,r,e,n),t=da(null,t,r,!0,i,n)):(t.tag=0,je&&i&&Wa(t),rt(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Gl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Fh(r),e=Lt(r,e),l){case 0:t=ca(null,t,r,e,n);break e;case 1:t=vu(null,t,r,e,n);break e;case 11:t=gu(null,t,r,e,n);break e;case 14:t=yu(null,t,r,Lt(r.type,e),n);break e}throw Error(I(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Lt(r,l),ca(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Lt(r,l),vu(e,t,r,l,n);case 3:e:{if(Od(t),e===null)throw Error(I(387));r=t.pendingProps,i=t.memoizedState,l=i.element,cd(e,t),vs(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){l=wr(Error(I(423)),t),t=xu(e,t,r,n,l);break e}else if(r!==l){l=wr(Error(I(424)),t),t=xu(e,t,r,n,l);break e}else for(yt=vn(t.stateNode.containerInfo.firstChild),vt=t,je=!0,zt=null,n=od(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(yr(),r===l){t=rn(e,t,n);break e}rt(e,t,r,n)}t=t.child}return t;case 5:return dd(t),e===null&&sa(t),r=t.type,l=t.pendingProps,i=e!==null?e.memoizedProps:null,a=l.children,ea(r,l)?a=null:i!==null&&ea(r,i)&&(t.flags|=32),Dd(e,t),rt(e,t,a,n),t.child;case 6:return e===null&&sa(t),null;case 13:return Ad(e,t,n);case 4:return Ya(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=vr(t,null,r,n):rt(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Lt(r,l),gu(e,t,r,l,n);case 7:return rt(e,t,t.pendingProps,n),t.child;case 8:return rt(e,t,t.pendingProps.children,n),t.child;case 12:return rt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,i=t.memoizedProps,a=l.value,ge(gs,r._currentValue),r._currentValue=a,i!==null)if(Dt(i.value,a)){if(i.children===l.children&&!dt.current){t=rn(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var o=i.dependencies;if(o!==null){a=i.child;for(var u=o.firstContext;u!==null;){if(u.context===r){if(i.tag===1){u=Zt(-1,n&-n),u.tag=2;var d=i.updateQueue;if(d!==null){d=d.shared;var y=d.pending;y===null?u.next=u:(u.next=y.next,y.next=u),d.pending=u}}i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),ia(i.return,n,t),o.lanes|=n;break}u=u.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(I(341));a.lanes|=n,o=a.alternate,o!==null&&(o.lanes|=n),ia(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}rt(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,fr(t,n),l=bt(l),r=r(l),t.flags|=1,rt(e,t,r,n),t.child;case 14:return r=t.type,l=Lt(r,t.pendingProps),l=Lt(r.type,l),yu(e,t,r,l,n);case 15:return Id(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Lt(r,l),Gl(e,t),t.tag=1,ft(r)?(e=!0,ps(t)):e=!1,fr(t,n),Ld(t,r,l),oa(t,r,l,n),da(null,t,r,!0,e,n);case 19:return Md(e,t,n);case 22:return $d(e,t,n)}throw Error(I(156,t.tag))};function tf(e,t){return bc(e,t)}function Mh(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ct(e,t,n,r){return new Mh(e,t,n,r)}function ho(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Fh(e){if(typeof e=="function")return ho(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ra)return 11;if(e===za)return 14}return 2}function jn(e,t){var n=e.alternate;return n===null?(n=Ct(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function es(e,t,n,r,l,i){var a=2;if(r=e,typeof e=="function")ho(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case Gn:return An(n.children,l,i,t);case La:a=8,l|=8;break;case Ri:return e=Ct(12,n,t,l|2),e.elementType=Ri,e.lanes=i,e;case zi:return e=Ct(13,n,t,l),e.elementType=zi,e.lanes=i,e;case Ii:return e=Ct(19,n,t,l),e.elementType=Ii,e.lanes=i,e;case dc:return Ms(n,l,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case uc:a=10;break e;case cc:a=9;break e;case Ra:a=11;break e;case za:a=14;break e;case un:a=16,r=null;break e}throw Error(I(130,e==null?e:typeof e,""))}return t=Ct(a,n,t,l),t.elementType=e,t.type=r,t.lanes=i,t}function An(e,t,n,r){return e=Ct(7,e,r,t),e.lanes=n,e}function Ms(e,t,n,r){return e=Ct(22,e,r,t),e.elementType=dc,e.lanes=n,e.stateNode={isHidden:!1},e}function Si(e,t,n){return e=Ct(6,e,null,t),e.lanes=n,e}function Ni(e,t,n){return t=Ct(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bh(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=li(0),this.expirationTimes=li(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=li(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function mo(e,t,n,r,l,i,a,o,u){return e=new Bh(e,t,n,o,u),t===1?(t=1,i===!0&&(t|=8)):t=0,i=Ct(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ga(i),e}function Uh(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Jn,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function nf(e){if(!e)return Nn;e=e._reactInternals;e:{if(Vn(e)!==e||e.tag!==1)throw Error(I(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(ft(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(I(171))}if(e.tag===1){var n=e.type;if(ft(n))return nd(e,n,t)}return t}function rf(e,t,n,r,l,i,a,o,u){return e=mo(n,r,!0,e,l,i,a,o,u),e.context=nf(null),n=e.current,r=lt(),l=kn(n),i=Zt(r,l),i.callback=t??null,xn(n,i,l),e.current.lanes=l,vl(e,l,r),pt(e,r),e}function Fs(e,t,n,r){var l=t.current,i=lt(),a=kn(l);return n=nf(n),t.context===null?t.context=n:t.pendingContext=n,t=Zt(i,a),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=xn(l,t,a),e!==null&&($t(e,l,a,i),Kl(e,l,a)),a}function Cs(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Tu(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function go(e,t){Tu(e,t),(e=e.alternate)&&Tu(e,t)}function Hh(){return null}var lf=typeof reportError=="function"?reportError:function(e){console.error(e)};function yo(e){this._internalRoot=e}Bs.prototype.render=yo.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(I(409));Fs(e,t,null,null)};Bs.prototype.unmount=yo.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Hn(function(){Fs(null,e,null,null)}),t[tn]=null}};function Bs(e){this._internalRoot=e}Bs.prototype.unstable_scheduleHydration=function(e){if(e){var t=$c();e={blockedOn:null,target:e,priority:t};for(var n=0;n<dn.length&&t!==0&&t<dn[n].priority;n++);dn.splice(n,0,e),n===0&&Oc(e)}};function vo(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Us(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Pu(){}function Wh(e,t,n,r,l){if(l){if(typeof r=="function"){var i=r;r=function(){var d=Cs(a);i.call(d)}}var a=rf(t,r,e,0,null,!1,!1,"",Pu);return e._reactRootContainer=a,e[tn]=a.current,il(e.nodeType===8?e.parentNode:e),Hn(),a}for(;l=e.lastChild;)e.removeChild(l);if(typeof r=="function"){var o=r;r=function(){var d=Cs(u);o.call(d)}}var u=mo(e,0,!1,null,null,!1,!1,"",Pu);return e._reactRootContainer=u,e[tn]=u.current,il(e.nodeType===8?e.parentNode:e),Hn(function(){Fs(t,u,n,r)}),u}function Hs(e,t,n,r,l){var i=n._reactRootContainer;if(i){var a=i;if(typeof l=="function"){var o=l;l=function(){var u=Cs(a);o.call(u)}}Fs(t,a,e,l)}else a=Wh(n,t,e,l,r);return Cs(a)}zc=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Mr(t.pendingLanes);n!==0&&(Da(t,n|1),pt(t,Re()),!(oe&6)&&(kr=Re()+500,En()))}break;case 13:Hn(function(){var r=nn(e,1);if(r!==null){var l=lt();$t(r,e,1,l)}}),go(e,1)}};Oa=function(e){if(e.tag===13){var t=nn(e,134217728);if(t!==null){var n=lt();$t(t,e,134217728,n)}go(e,134217728)}};Ic=function(e){if(e.tag===13){var t=kn(e),n=nn(e,t);if(n!==null){var r=lt();$t(n,e,t,r)}go(e,t)}};$c=function(){return de};Dc=function(e,t){var n=de;try{return de=e,t()}finally{de=n}};Wi=function(e,t,n){switch(t){case"input":if(Oi(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var l=zs(r);if(!l)throw Error(I(90));pc(r),Oi(r,l)}}}break;case"textarea":mc(e,n);break;case"select":t=n.value,t!=null&&or(e,!!n.multiple,t,!1)}};jc=co;Sc=Hn;var Vh={usingClientEntryPoint:!1,Events:[wl,tr,zs,wc,kc,co]},$r={findFiberByHostInstance:zn,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Qh={bundleType:$r.bundleType,version:$r.version,rendererPackageName:$r.rendererPackageName,rendererConfig:$r.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ln.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Cc(e),e===null?null:e.stateNode},findFiberByHostInstance:$r.findFiberByHostInstance||Hh,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Fl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Fl.isDisabled&&Fl.supportsFiber)try{Ts=Fl.inject(Qh),Ht=Fl}catch{}}wt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Vh;wt.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!vo(t))throw Error(I(200));return Uh(e,t,null,n)};wt.createRoot=function(e,t){if(!vo(e))throw Error(I(299));var n=!1,r="",l=lf;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(l=t.onRecoverableError)),t=mo(e,1,!1,null,null,n,!1,r,l),e[tn]=t.current,il(e.nodeType===8?e.parentNode:e),new yo(t)};wt.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(I(188)):(e=Object.keys(e).join(","),Error(I(268,e)));return e=Cc(t),e=e===null?null:e.stateNode,e};wt.flushSync=function(e){return Hn(e)};wt.hydrate=function(e,t,n){if(!Us(t))throw Error(I(200));return Hs(null,e,t,!0,n)};wt.hydrateRoot=function(e,t,n){if(!vo(e))throw Error(I(405));var r=n!=null&&n.hydratedSources||null,l=!1,i="",a=lf;if(n!=null&&(n.unstable_strictMode===!0&&(l=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onRecoverableError!==void 0&&(a=n.onRecoverableError)),t=rf(t,null,e,1,n??null,l,!1,i,a),e[tn]=t.current,il(e),r)for(e=0;e<r.length;e++)n=r[e],l=n._getVersion,l=l(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,l]:t.mutableSourceEagerHydrationData.push(n,l);return new Bs(t)};wt.render=function(e,t,n){if(!Us(t))throw Error(I(200));return Hs(null,e,t,!1,n)};wt.unmountComponentAtNode=function(e){if(!Us(e))throw Error(I(40));return e._reactRootContainer?(Hn(function(){Hs(null,null,e,!1,function(){e._reactRootContainer=null,e[tn]=null})}),!0):!1};wt.unstable_batchedUpdates=co;wt.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Us(n))throw Error(I(200));if(e==null||e._reactInternals===void 0)throw Error(I(38));return Hs(e,t,n,!1,r)};wt.version="18.3.1-next-f1338f8080-20240426";function sf(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(sf)}catch(e){console.error(e)}}sf(),sc.exports=wt;var qh=sc.exports,af,Lu=qh;af=Lu.createRoot,Lu.hydrateRoot;async function ze(e,t){const n=await fetch(e,t);if(!n.ok)throw new Error(`${n.status} ${n.statusText}`);return n.json()}async function Ru(){return ze("/api/archives")}async function zu(e,t=null){const n=t?`/api/archives/${e}/entries?collection=${encodeURIComponent(t)}`:`/api/archives/${e}/entries`;return ze(n)}async function Kh(e,t,n,r=null){const l=new URLSearchParams;return t&&l.set("q",t),n&&l.set("tag",n),r&&l.set("collection",r),ze(`/api/archives/${e}/entries/search?${l}`)}async function Br(e,t){return ze(`/api/archives/${e}/entries/${t}`)}async function Xh(e,t,{signal:n}={}){return ze(`/api/archives/${e}/entries/${t}/summary`,{signal:n})}async function Jh(e,t,{provider:n,force:r=!1,includeImages:l=!1,signal:i}={}){const a=await fetch(`/api/archives/${e}/entries/${t}/summary`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:n,force:r,include_images:l}),signal:i});if(!a.ok){const o=await a.text();let u=o.trim();try{u=JSON.parse(o).error||u}catch{}throw new Error(u||`Summary request failed (${a.status})`)}return a.json()}async function Gh(e,{signal:t}={}){const n=await fetch(e,{credentials:"same-origin",signal:t});if(!n.ok)throw new Error(`HTTP ${n.status}`);return n.text()}async function Yh(e,t){return ze(`/api/archives/${e}/entries/${t}/children`)}function Zh(e,t,n){return Promise.all(n.map(r=>ze(`/api/archives/${e}/entries/${t}/artifacts/${r}`)))}async function em(e){if(!e||e.length===0)return{};const t=await fetch("/api/util/resolve-tco",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return t.ok?t.json():{}}async function tm(e,t,n){const r=await fetch(`/api/archives/${e}/entries/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:n??null})});if(!r.ok)throw new Error(await r.text())}async function Bl(e,t){return ze(`/api/archives/${e}/entries/${t}/tags`)}async function Iu(e,t,n){const r=await fetch(`/api/archives/${e}/entries/${t}/tags`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tag_path:n})});if(!r.ok)throw new Error(`Failed to add tag (${r.status})`)}async function nm(e,t,n){const r=await fetch(`/api/archives/${e}/entries/${t}/tags/${n}`,{method:"DELETE"});if(!r.ok)throw new Error(`Remove failed (${r.status})`)}async function $u(e,t){const n=await fetch(`/api/archives/${e}/entries/${t}`,{method:"DELETE"});if(!n.ok)throw new Error(`Delete failed (${n.status})`)}async function rm(e,t,n){const r=await fetch(`/api/archives/${e}/tags/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:n})});if(!r.ok)throw new Error(await r.text());return r.json()}async function lm(e,t){const n=await fetch(`/api/archives/${e}/tags/${t}`,{method:"DELETE"});if(!n.ok)throw new Error(await n.text())}async function sm(e,t){const n=await fetch(`/api/archives/${e}/tags`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});if(!n.ok)throw new Error(await n.text());return n.json()}async function im(e,t,n){const r=await fetch(`/api/archives/${e}/tags/${t}/move`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({parent_uid:n??null})});if(!r.ok)throw new Error(await r.text());return r.json()}async function _i(e){return ze(`/api/archives/${e}/runs`)}async function Ul(e){return ze(`/api/archives/${e}/tags`)}async function am(e,t,n=null,r=null){const l={locator:t};n&&n!=="best"&&(l.quality=n),r&&(typeof r.ublock_enabled=="boolean"&&(l.ublock_enabled=r.ublock_enabled),typeof r.reader_mode=="boolean"&&(l.reader_mode=r.reader_mode),typeof r.cookie_ext_enabled=="boolean"&&(l.cookie_ext_enabled=r.cookie_ext_enabled),typeof r.modal_closer_enabled=="boolean"&&(l.modal_closer_enabled=r.modal_closer_enabled),typeof r.via_freedium=="boolean"&&(l.via_freedium=r.via_freedium),r.per_item_quality&&typeof r.per_item_quality=="object"&&Object.keys(r.per_item_quality).length>0&&(l.per_item_quality=r.per_item_quality),r.sync===!0&&(l.sync=!0));const i=await fetch(`/api/archives/${e}/captures`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!i.ok){const a=await i.json().catch(()=>({})),o=new Error(a.error||`HTTP ${i.status}`);throw o.status=i.status,o}return i.json()}async function om(e,{title:t,body:n,mime:r="text/markdown"}){const l={title:t,body:n};r&&r!=="text/markdown"&&(l.mime=r);const i=await fetch(`/api/archives/${e}/captures/text`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!i.ok){const a=await i.json().catch(()=>({})),o=new Error(a.error||`HTTP ${i.status}`);throw o.status=i.status,o}return i.json()}async function um(e,t){return ze(`/api/archives/${e}/captures/probe?locator=${encodeURIComponent(t)}`)}async function cm(e,t){const n=await fetch(`/api/archives/${e}/captures/probe-playlist`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locator:t})});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.error||`HTTP ${n.status}`)}return n.json()}async function of(e,t){return ze(`/api/archives/${e}/capture_jobs/${t}`)}async function dm(){return(await(await fetch("/api/auth/setup")).json()).setup_required===!0}async function fm(e,t){const n=await fetch("/api/auth/setup",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({username:e,password:t})});if(!n.ok)throw new Error((await n.json()).error||"Setup failed");return n.json()}async function pm(e,t){const n=await fetch("/api/auth/login",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({username:e,password:t})});if(!n.ok)throw new Error((await n.json()).error||"Login failed");return n.json()}async function hm(){await fetch("/api/auth/logout",{method:"POST"})}async function mm(){const e=await fetch("/api/auth/me");return e.status===401?null:e.json()}async function gm(e){const t=await fetch("/api/auth/me",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({display_name:e})});if(!t.ok)throw new Error(await t.text())}async function ym(e){const t=await fetch("/api/auth/me",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(await t.text())}async function vm(e,t){const n=await fetch("/api/auth/me",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({current_password:e,new_password:t})});if(!n.ok){let r=await n.text();try{r=JSON.parse(r).error??r}catch{}throw new Error(r)}}async function xm(){return ze("/api/auth/tokens")}async function wm(e){const t=await fetch("/api/auth/tokens",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})});if(!t.ok)throw new Error(await t.text());return t.json()}async function km(e){const t=await fetch(`/api/auth/tokens/${e}`,{method:"DELETE"});if(!t.ok)throw new Error(await t.text())}async function xo(){return ze("/api/admin/instance-settings")}async function ts(e){const t=await fetch("/api/admin/instance-settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(await t.text())}async function jm(){return ze("/api/admin/users")}async function Sm(e,t,n){const r=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:t,email:n||void 0})});if(!r.ok){const l=await r.json().catch(()=>({}));throw new Error(l.error||`HTTP ${r.status}`)}return r.json()}async function Nm(e,t){const n=await fetch(`/api/admin/users/${e}/status`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:t})});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.error||`HTTP ${n.status}`)}return n.json()}async function _m(){return ze("/api/admin/roles")}async function Cm(e,t){const n=await fetch("/api/admin/roles",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:e,name:t})});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.error||`HTTP ${n.status}`)}return n.json()}async function wo(e){return ze(`/api/archives/${e}/collections`)}async function Em(e,t,n,r=2,l=!0){const i=await fetch(`/api/archives/${e}/collections`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:t,slug:n,default_visibility_bits:r,requires_auth:l})});if(!i.ok){const a=await i.json().catch(()=>({error:i.statusText}));throw new Error(a.error||i.statusText)}return i.json()}async function bm(e,t){return ze(`/api/archives/${e}/collections/${t}`)}async function Sa(e,t,n,r=2){const l=await fetch(`/api/archives/${e}/collections/${t}/entries`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({entry_uid:n,visibility_bits:r})});if(!l.ok){const i=await l.json().catch(()=>({error:l.statusText}));throw new Error(i.error||l.statusText)}}async function Tm(e,t,n){const r=await fetch(`/api/archives/${e}/collections/${t}/entries/${n}`,{method:"DELETE"});if(!r.ok){const l=await r.json().catch(()=>({error:r.statusText}));throw new Error(l.error||r.statusText)}}async function Pm(e,t,n,r){const l=await fetch(`/api/archives/${e}/collections/${t}/entries/${n}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({visibility_bits:r})});if(!l.ok){const i=await l.json().catch(()=>({error:l.statusText}));throw new Error(i.error||l.statusText)}}async function Du(e,t){return ze(`/api/archives/${e}/entries/${t}/collections`)}async function Ci(e,t,n){const r=await fetch(`/api/archives/${e}/collections/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok){const l=await r.json().catch(()=>({}));throw new Error(l.error??r.statusText)}}async function Lm(e,t){const n=await fetch(`/api/archives/${e}/collections/${t}`,{method:"DELETE"});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.error??n.statusText)}}async function Rm(e){return ze(`/api/archives/${e}/blob-cleanup`)}async function zm(e){const t=await fetch(`/api/archives/${e}/blob-cleanup`,{method:"DELETE"});if(!t.ok){const n=await t.json().catch(()=>({}));throw new Error(n.error??t.statusText)}return t.json()}async function Im(e,t){const n=await fetch(`/api/archives/${e}/entries/${t}/rearchive`,{method:"POST"});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.message||`rearchive failed: ${n.status}`)}return n.json()}async function $m(e,t,n){const r=await fetch(`/api/archives/${e}/entries/${t}/artifacts/${n}/media-token`,{method:"POST"});if(!r.ok)throw new Error(`media-token ${r.status}`);return r.json()}async function Dm(){return ze("/api/admin/cookie-rules")}async function Om(e,t,n){const r=await fetch("/api/admin/cookie-rules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url_pattern:e||null,pattern_kind:t,cookies_json:n})});if(!r.ok){const l=await r.json().catch(()=>({}));throw new Error(l.message||`HTTP ${r.status}`)}return r.json()}async function Am(e,t){const n=await fetch(`/api/admin/cookie-rules/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){const r=await n.json().catch(()=>({}));throw new Error(r.message||`HTTP ${n.status}`)}}async function Mm(e){const t=await fetch(`/api/admin/cookie-rules/${e}`,{method:"DELETE"});if(!t.ok){const n=await t.json().catch(()=>({}));throw new Error(n.message||`HTTP ${t.status}`)}}function Fm(e,t,n){let r;return{promise:new Promise((i,a)=>{const o=new FormData;o.append("file",t),r=new XMLHttpRequest,r.open("POST",`/api/archives/${e}/uploads`),r.upload.addEventListener("progress",u=>{u.lengthComputable&&n&&n(Math.round(u.loaded/u.total*100))}),r.addEventListener("load",()=>{if(r.status>=200&&r.status<300)try{i(JSON.parse(r.responseText))}catch{a(new Error("Invalid server response"))}else{let u=`Upload failed (${r.status})`;try{u=JSON.parse(r.responseText).message||u}catch{}a(new Error(u))}}),r.addEventListener("error",()=>a(new Error("Network error during upload"))),r.addEventListener("abort",()=>a(new Error("Upload cancelled"))),r.send(o)}),abort:()=>r==null?void 0:r.abort()}}async function Ei(e,t){try{await fetch(`/api/archives/${e}/uploads`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({locator:t})})}catch{}}const Bm=window.fetch;window.fetch=async(...e)=>{var n;const t=await Bm(...e);return t.status===401&&((typeof e[0]=="string"?e[0]:((n=e[0])==null?void 0:n.url)??"").includes("/api/auth/")||window.dispatchEvent(new CustomEvent("auth:expired"))),t};function Um({onLogin:e}){const[t,n]=c.useState(""),[r,l]=c.useState(""),[i,a]=c.useState(null),[o,u]=c.useState(!1);async function d(y){y.preventDefault(),a(null),u(!0);try{const g=await pm(t,r);e(g)}catch(g){a(g.message)}finally{u(!1)}}return s.jsx("div",{className:"login-page",children:s.jsxs("div",{className:"login-card",children:[s.jsx("h1",{className:"login-brand",children:"Archivr"}),s.jsx("p",{className:"login-tagline",children:"Sign in to your archive"}),s.jsxs("form",{onSubmit:d,children:[s.jsxs("div",{className:"login-field",children:[s.jsx("label",{className:"login-label",htmlFor:"login-username",children:"Username"}),s.jsx("input",{className:"login-input",id:"login-username",type:"text",value:t,onChange:y=>n(y.target.value),autoFocus:!0,required:!0,autoComplete:"username"})]}),s.jsxs("div",{className:"login-field",children:[s.jsx("label",{className:"login-label",htmlFor:"login-password",children:"Password"}),s.jsx("input",{className:"login-input",id:"login-password",type:"password",value:r,onChange:y=>l(y.target.value),required:!0,autoComplete:"current-password"})]}),i&&s.jsx("p",{className:"login-error",children:i}),s.jsx("button",{className:"login-submit",type:"submit",disabled:o,children:o?"Signing in…":"Sign in"})]})]})})}function Hm({onComplete:e}){const[t,n]=c.useState(""),[r,l]=c.useState(""),[i,a]=c.useState(""),[o,u]=c.useState(null),[d,y]=c.useState(!1);async function g(h){if(h.preventDefault(),r!==i){u("Passwords do not match");return}if(r.length<8){u("Password must be at least 8 characters");return}u(null),y(!0);try{await fm(t,r),e()}catch(v){u(v.message)}finally{y(!1)}}return s.jsx("div",{className:"setup-page",children:s.jsxs("div",{className:"setup-card",children:[s.jsx("h1",{className:"setup-brand",children:"Archivr"}),s.jsx("p",{className:"setup-tagline",children:"Create your owner account to get started."}),s.jsxs("form",{onSubmit:g,children:[s.jsxs("div",{className:"setup-field",children:[s.jsx("label",{className:"setup-label",htmlFor:"setup-username",children:"Username"}),s.jsx("input",{className:"setup-input",id:"setup-username",type:"text",value:t,onChange:h=>n(h.target.value),autoFocus:!0,required:!0,autoComplete:"username"})]}),s.jsxs("div",{className:"setup-field",children:[s.jsx("label",{className:"setup-label",htmlFor:"setup-password",children:"Password"}),s.jsx("input",{className:"setup-input",id:"setup-password",type:"password",value:r,onChange:h=>l(h.target.value),required:!0,autoComplete:"new-password"})]}),s.jsxs("div",{className:"setup-field",children:[s.jsx("label",{className:"setup-label",htmlFor:"setup-confirm",children:"Confirm password"}),s.jsx("input",{className:"setup-input",id:"setup-confirm",type:"password",value:i,onChange:h=>a(h.target.value),required:!0,autoComplete:"new-password"})]}),o&&s.jsx("p",{className:"setup-error",children:o}),s.jsx("button",{className:"setup-submit",type:"submit",disabled:d,children:d?"Creating account…":"Create account"})]})]})})}function Wm({archives:e,archiveId:t,onArchiveChange:n,view:r,onViewChange:l,onCaptureClick:i,collections:a,selectedCollectionUid:o,onCollectionChange:u,isPublicSession:d,onSignInClick:y}){const{currentUser:g,setCurrentUser:h}=c.useContext(Vs)??{},[v,x]=c.useState(!1);async function S(){x(!0),await hm(),h(null),window.location.reload()}const N=a.find(m=>m.slug==="_default_"),p=!d||!!N&&!N.requires_auth,f=a.filter(m=>m.slug!=="_default_").filter(m=>!d||!m.requires_auth);return s.jsxs("header",{className:"topbar",children:[s.jsx("div",{className:"brand",children:"Archivr"}),s.jsxs("div",{className:"switchers",children:[!d&&s.jsx("div",{className:"switcher",children:s.jsx("select",{"aria-label":"Select archive",value:t??"",onChange:m=>n(m.target.value),children:e.map(m=>s.jsx("option",{value:m.id,children:m.label},m.id))})}),f.length>0&&s.jsx("div",{className:"switcher",children:s.jsxs("select",{"aria-label":"Select collection",value:o??"",onChange:m=>u(m.target.value||null),children:[p&&s.jsx("option",{value:"",children:"All entries"}),f.map(m=>s.jsx("option",{value:m.collection_uid,children:m.name},m.collection_uid))]})})]}),d?s.jsxs(s.Fragment,{children:[s.jsx("span",{style:{flex:1}}),s.jsx("button",{className:"logout-btn",onClick:y,children:"Sign in"})]}):s.jsxs(s.Fragment,{children:[s.jsx("nav",{className:"nav","aria-label":"Primary",children:["archive","tags","collections","runs","admin","settings"].map(m=>s.jsx("button",{className:`nav-link${r===m?" is-active":""}`,onClick:()=>l(m),children:m.charAt(0).toUpperCase()+m.slice(1)},m))}),s.jsx("button",{className:"capture-button",onClick:i,children:"Capture"}),g&&s.jsxs("div",{className:"user-menu",children:[s.jsx("span",{className:"user-name",children:g.display_name||g.username}),s.jsx("button",{className:"logout-btn",onClick:S,disabled:v,children:v?"Logging out…":"Log out"})]})]})]})}let ml=1;function uf(e){const t=e.trim(),n=t.toLowerCase();for(const r of["yt:","youtube:"])if(n.startsWith(r)){const l=n.slice(r.length);return!!(l.startsWith("video/")||l.startsWith("short/")||l.startsWith("shorts/")||/^[a-z0-9_-]{11}$/i.test(l))}if(n.startsWith("ytm:"))return!n.slice(4).startsWith("playlist/");for(const r of["x:","twitter:","tweet:"])if(n.startsWith(r))return n.slice(r.length).startsWith("media:");if(n.startsWith("spotify:"))return!1;if(n.startsWith("instagram:")||n.startsWith("facebook:")||n.startsWith("tiktok:")||n.startsWith("reddit:")||n.startsWith("snapchat:"))return!0;if(n.startsWith("http://")||n.startsWith("https://")){if(/^https?:\/\/music\.youtube\.com\/watch/.test(n)||/^https?:\/\/(?:www\.)?(?:youtu\.be\/[0-9A-Za-z_-]+|youtube\.com\/watch\?v=[0-9A-Za-z_-]+|youtube\.com\/shorts\/[0-9A-Za-z_-]+)/.test(t)||n.startsWith("https://x.com/")||n.startsWith("http://x.com/")||/^https?:\/\/(?:www\.)?instagram\.com\//.test(n)||/^https?:\/\/(?:www\.)?facebook\.com\//.test(n)||n.startsWith("https://fb.watch/")||n.startsWith("http://fb.watch/")||/^https?:\/\/(?:www\.)?tiktok\.com\//.test(n)||/^https?:\/\/(?:www\.)?reddit\.com\//.test(n)||n.startsWith("https://redd.it/")||n.startsWith("http://redd.it/")||/^https?:\/\/(?:www\.)?snapchat\.com\//.test(n))return!0;if(n.startsWith("https://open.spotify.com/")||n.startsWith("http://open.spotify.com/"))return!1}return!1}function Dn(e){const t=e.trim(),n=t.toLowerCase();for(const r of["yt:","youtube:"])if(n.startsWith(r)){const l=n.slice(r.length);return l.startsWith("playlist/")||l.startsWith("@")||l.startsWith("channel/")||l.startsWith("c/")||l.startsWith("user/")}if(n.startsWith("ytm:"))return n.slice(4).startsWith("playlist/");if(n.startsWith("spotify:")){const r=n.slice(8);return r.startsWith("album:")||r.startsWith("playlist:")}if(n.startsWith("http://")||n.startsWith("https://"))try{const r=new URL(t),l=r.hostname;if((l==="youtube.com"||l==="www.youtube.com")&&(r.pathname==="/playlist"&&r.searchParams.has("list")||r.pathname.startsWith("/@")||r.pathname.startsWith("/channel/")||r.pathname.startsWith("/c/")||r.pathname.startsWith("/user/"))||l==="music.youtube.com"&&r.pathname==="/playlist"&&r.searchParams.has("list")||l==="open.spotify.com"&&(r.pathname.startsWith("/album/")||r.pathname.startsWith("/playlist/")))return!0}catch{}return!1}function Xn(e=""){return{id:ml++,locator:e,quality:"best",probeState:"idle",probeQualities:null,probeHasAudio:!1,status:"idle",error:null,jobUid:null,archiveId:null,playlistProbeState:"idle",playlistInfo:null,playlistItems:null,playlistQuality:null,playlistExpanded:!1,syncEnabled:!1}}function Vm(e){return{id:ml++,kind:"file",filename:e,uploadProgress:0,uploadStatus:"uploading",uploadLocator:null,uploadError:null,locator:"",quality:"best",probeState:"idle",probeQualities:null,probeHasAudio:!1,playlistProbeState:"idle",playlistInfo:null,playlistItems:null,playlistQuality:null,playlistExpanded:!1,syncEnabled:!1,error:null,status:"idle"}}function Qm(){return{id:ml++,kind:"text",title:"",body:"",mime:"text/markdown",locator:"",quality:"best",probeState:"idle",probeQualities:null,probeHasAudio:!1,playlistProbeState:"idle",playlistInfo:null,playlistItems:null,playlistQuality:null,playlistExpanded:!1,syncEnabled:!1,error:null,status:"idle"}}function qm(e,t){return e==="best"?t.map(n=>({...n,quality:"best"})):e==="audio"?t.map(n=>n.has_audio?{...n,quality:"audio"}:n.quality!==null?n:{...n,quality:null}):t.map(n=>n.qualities.includes(e)?{...n,quality:e}:n.quality!==null?n:{...n,quality:null})}function Ou(e){return Array.isArray(e.playlistItems)&&e.playlistItems.some(t=>t.quality===null)}function Km({open:e,archiveId:t,onClose:n,onCaptured:r,onToast:l,onJobStarted:i,onJobSettled:a,activeJobs:o=[]}){const u=c.useRef(null),d=c.useRef(!0),y=c.useRef(new Map),g=c.useRef(new Map),h=c.useRef(new Map),v=c.useRef(t);c.useEffect(()=>{v.current=t},[t]);const x=c.useRef(null),[S,N]=c.useState(!1),p=c.useRef([]),f=c.useRef(!1),m=c.useRef(new Map),k=c.useRef(r),C=c.useRef(l);c.useEffect(()=>{k.current=r},[r]),c.useEffect(()=>{C.current=l},[l]);const E=c.useRef(i),T=c.useRef(a);c.useEffect(()=>{E.current=i},[i]),c.useEffect(()=>{T.current=a},[a]);const[j,P]=c.useState(()=>{try{const w=JSON.parse(sessionStorage.getItem("captureItems")||"null");if(Array.isArray(w)&&w.length>0){const B=w.filter(O=>!O.status||O.status==="idle");if(B.length>0)return B.forEach(O=>{O.id>=ml&&(ml=O.id+1)}),B.map(O=>({...Xn(O.locator),...O}))}}catch{}return[Xn()]});c.useEffect(()=>{sessionStorage.setItem("captureItems",JSON.stringify(j.filter(w=>w.kind!=="file")))},[j]),c.useEffect(()=>{p.current=j},[j]);const[R,X]=c.useState(!1),[H,Y]=c.useState(null),[te,fe]=c.useState(null),[Be,we]=c.useState(!0),[M,L]=c.useState(!0),[V,G]=c.useState(!0);c.useEffect(()=>{xo().then(w=>{fe(w),we(w.cookie_ext_enabled??!0),L(w.modal_closer_enabled??!0)}).catch(()=>fe({}))},[]);const ne=H!==null?H:(te==null?void 0:te.ublock_enabled)??!0,[se,Z]=c.useState(!1);c.useEffect(()=>{["captureDialogLocator","captureDialogError","captureDialogBusy","captureDialogJobStatus","captureDialogJobUid"].forEach(w=>sessionStorage.removeItem(w)),o.forEach(w=>{w.jobUid&&!y.current.has(w.jobUid)&&Se(w.id,w.jobUid,w.locator,w.archiveId,null)})},[]),c.useEffect(()=>{const w=u.current;if(!w)return;const B=()=>{if(g.current.forEach(O=>clearTimeout(O)),g.current.clear(),!f.current){const O=v.current;p.current.forEach($=>{var F;$.kind==="file"&&($.uploadStatus==="uploading"?((F=m.current.get($.id))==null||F(),m.current.delete($.id)):$.uploadStatus==="done"&&$.uploadLocator&&Ei(O,$.uploadLocator).catch(()=>{}))})}f.current=!1,n()};return w.addEventListener("close",B),()=>w.removeEventListener("close",B)},[n]),c.useEffect(()=>{const w=u.current;w&&(e?(d.current||P([Xn()]),d.current=!1,w.open||w.showModal()):(g.current.forEach(B=>clearTimeout(B)),g.current.clear(),w.open&&w.close()))},[e]),c.useEffect(()=>()=>{y.current.forEach(w=>clearInterval(w)),g.current.forEach(w=>clearTimeout(w))},[]);function Se(w,B,O,$,F=null){if(y.current.has(B))return;const U=setInterval(async()=>{var ye,ue,Te,pe;try{const $e=await of($,B);if($e.status==="completed"){clearInterval(y.current.get(B)),y.current.delete(B),await Promise.resolve((ye=k.current)==null?void 0:ye.call(k)),(ue=T.current)==null||ue.call(T,w);try{const ie=$e.notes_json?JSON.parse($e.notes_json):null;if(ie!=null&&ie.ublock_skipped||ie!=null&&ie.cookie_ext_skipped){const ot=ie.ublock_skipped&&ie.cookie_ext_skipped?"Captured without ad-blocking or cookie-consent extension. Check ARCHIVR_UBLOCK_EXT and ARCHIVR_COOKIE_EXT in your server config.":ie.ublock_skipped?"Captured without ad-blocking. ARCHIVR_UBLOCK=true but ARCHIVR_UBLOCK_EXT is not set or the path is invalid.":"Captured without cookie-consent extension. ARCHIVR_COOKIE_EXT is not set or the path is invalid.";C.current(ot,O,"warning"),ce(F,"warning",O)}else F||C.current(null,O,"success"),ce(F,"archived")}catch{F||C.current(null,O,"success"),ce(F,"archived")}}else if($e.status==="failed"){clearInterval(y.current.get(B)),y.current.delete(B),(Te=T.current)==null||Te.call(T,w);const ie=$e.error_text||"Capture failed.";C.current(ie,O),ce(F,"failed",O)}}catch($e){clearInterval(y.current.get(B)),y.current.delete(B),(pe=T.current)==null||pe.call(T,w);const ie=$e.message||"Network error";C.current(ie,O),ce(F,"failed",O)}},500);y.current.set(B,U)}function ce(w,B,O=null){if(!w)return;const $=h.current.get(w);if(!$||(B==="archived"||B==="warning"?($.archived++,B==="warning"&&($.warnings++,O&&$.warningLocators.push(O))):($.failed++,O&&$.failedLocators.push(O)),$.archived+$.failed<$.total))return;h.current.delete(w);const{archived:F,warnings:U,failed:ye,failedLocators:ue,warningLocators:Te}=$;let pe;if(F===0)pe=`${ye} failed`;else{const ot=U>0?`${F} archived (${U} with warnings)`:`${F} archived`;pe=ye>0?`${ot}, ${ye} failed`:ot}const $e=F===0?"error":ye>0||U>0?"warning":"success",ie=[];ue.length>0&&ie.push(`Failed:
|
||
${ue.map(ot=>` ${ot}`).join(`
|
||
`)}`),Te.length>0&&ie.push(`With warnings:
|
||
${Te.map(ot=>` ${ot}`).join(`
|
||
`)}`);const nt=ie.length>0?ie.join(`
|
||
`):null;C.current(nt,null,$e,pe)}async function Ie(w,B){var Te,pe,$e;const O=v.current,$=((Te=crypto.randomUUID)==null?void 0:Te.call(crypto))??`job-${Date.now()}-${Math.random()}`;if(w.type==="text"){try{const ie=await om(O,{title:w.title,body:w.body,mime:w.mime}),nt=`text:${w.title}`;(pe=E.current)==null||pe.call(E,{id:$,jobUid:ie.job_uid,locator:nt,archiveId:O}),Se($,ie.job_uid,nt,O,B)}catch(ie){const nt=ie.message||"Submission failed.";C.current(nt,`text:${w.title}`),ce(B,"failed",`text:${w.title}`)}return}const F=w.locator,U=w.quality,ye=w.extraExtensions||{},ue={ublock_enabled:ne,reader_mode:se,cookie_ext_enabled:Be,modal_closer_enabled:M,via_freedium:V,...ye};try{const ie=await am(O,F,U,ue);($e=E.current)==null||$e.call(E,{id:$,jobUid:ie.job_uid,locator:F,archiveId:O}),Se($,ie.job_uid,F,O,B)}catch(ie){const nt=ie.message||"Submission failed.";C.current(nt,F),ce(B,"failed",F),F.startsWith("file://")&&ie.status&&Ei(O,F).catch(()=>{})}}function at(){var $,F;if(j.some(U=>U.kind==="file"&&U.uploadStatus==="uploading"))return;const w=j.filter(U=>U.kind==="file"?U.uploadStatus==="done"&&U.uploadLocator:U.kind==="text"?U.title.trim()&&U.body.trim():U.locator.trim());if(w.length===0||w.some(U=>U.kind!=="file"&&U.kind!=="text"&&Ou(U))||w.some(U=>U.kind!=="file"&&U.kind!=="text"&&(U.probeState==="probing"||Dn(U.locator)&&U.playlistProbeState!=="done"))||w.some(U=>U.kind!=="file"&&U.kind!=="text"&&Array.isArray(U.playlistItems)&&U.playlistItems.length===0))return;const B=w.length>1?(($=crypto.randomUUID)==null?void 0:$.call(crypto))??`batch-${Date.now()}`:null;B&&h.current.set(B,{total:w.length,archived:0,warnings:0,failed:0,failedLocators:[],warningLocators:[]});const O=w.map(U=>U.kind==="file"?{type:"file",locator:U.uploadLocator,quality:"best",extraExtensions:{}}:U.kind==="text"?{type:"text",title:U.title.trim(),body:U.body,mime:U.mime}:{type:"url",locator:U.locator.trim(),quality:U.playlistItems!==null?null:U.quality||"best",extraExtensions:U.playlistItems!==null?{per_item_quality:Object.fromEntries(U.playlistItems.map(ye=>[ye.id,ye.quality])),sync:U.syncEnabled}:{}});f.current=!0,P([Xn()]),(F=u.current)==null||F.close(),O.forEach(U=>Ie(U,B))}function ht(){P(w=>[...w,Xn()])}function Vt(w){var O;clearTimeout(g.current.get(w)),g.current.delete(w);const B=p.current.find($=>$.id===w);(B==null?void 0:B.kind)==="file"&&(B.uploadStatus==="uploading"?((O=m.current.get(w))==null||O(),m.current.delete(w)):B.uploadStatus==="done"&&B.uploadLocator&&Ei(v.current,B.uploadLocator).catch(()=>{})),P($=>{const F=$.filter(U=>U.id!==w);return F.length===0?[Xn()]:F})}function Qt(w,B){if(clearTimeout(g.current.get(w)),P(O=>O.map($=>$.id===w?{...$,locator:B,probeState:"idle",probeQualities:null,probeHasAudio:!1,quality:"best",playlistProbeState:"idle",playlistInfo:null,playlistItems:null,playlistQuality:null,playlistExpanded:!1}:$)),uf(B)){const O=setTimeout(async()=>{g.current.delete(w),P($=>$.map(F=>F.id===w?{...F,probeState:"probing"}:F));try{const $=await um(v.current,B.trim());P(F=>F.map(U=>{if(U.id!==w||U.locator!==B)return U;const ye=$.qualities??[],ue=$.has_audio??!1,Te=ye.length===0&&ue?"audio":"best";return{...U,probeState:"done",probeQualities:ye,probeHasAudio:ue,quality:Te}}))}catch{P($=>$.map(F=>F.id===w?{...F,probeState:"idle",probeQualities:null}:F))}},600);g.current.set(w,O)}else if(Dn(B)){const O=setTimeout(async()=>{g.current.delete(w),P($=>$.map(F=>F.id===w?{...F,playlistProbeState:"probing"}:F));try{const $=await cm(v.current,B.trim());P(F=>F.map(U=>U.id!==w||U.locator!==B?U:{...U,playlistProbeState:"done",playlistInfo:$,playlistItems:$.items.map(ye=>({...ye,quality:null})),playlistQuality:null}))}catch{P($=>$.map(F=>F.id===w?{...F,playlistProbeState:"error"}:F))}},800);g.current.set(w,O)}}function jt(w,B){P(O=>O.map($=>$.id===w?{...$,quality:B}:$))}function Oe(w,B){P(O=>O.map($=>{if($.id!==w)return $;const F=qm(B,$.playlistItems);return{...$,playlistQuality:B,playlistItems:F}}))}function Je(w,B,O){P($=>$.map(F=>F.id!==w?F:{...F,playlistItems:F.playlistItems.map(U=>U.id===B?{...U,quality:O}:U)}))}function tt(w){P(B=>B.map(O=>O.id===w?{...O,playlistExpanded:!O.playlistExpanded}:O))}function D(w,B){P(O=>O.map($=>$.id===w?{...$,syncEnabled:B}:$))}function K(w,B){P(O=>O.map($=>$.id!==w?$:{...$,playlistItems:$.playlistItems.filter(F=>F.id!==B)}))}function Ne(w){const B=Array.from(w);B.length!==0&&B.forEach(O=>{const $=Vm(O.name);P(ue=>ue.length===1&&!ue[0].kind&&!ue[0].locator.trim()?[$]:[...ue,$]);const F=v.current,{promise:U,abort:ye}=Fm(F,O,ue=>{P(Te=>Te.map(pe=>pe.id===$.id?{...pe,uploadProgress:ue}:pe))});m.current.set($.id,ye),U.then(ue=>{m.current.delete($.id),P(Te=>Te.map(pe=>pe.id===$.id?{...pe,uploadStatus:"done",uploadLocator:ue.locator,uploadProgress:100}:pe))}).catch(ue=>{m.current.delete($.id),ue.message!=="Upload cancelled"&&P(Te=>Te.map(pe=>pe.id===$.id?{...pe,uploadStatus:"error",uploadError:ue.message}:pe))})})}function Ve(w){w.preventDefault(),w.stopPropagation(),w.dataTransfer.types.includes("Files")&&N(!0)}function qt(w){w.currentTarget.contains(w.relatedTarget)||N(!1)}function Qe(w){w.preventDefault(),w.stopPropagation(),N(!1),Ne(w.dataTransfer.files)}function Kt(w){Ne(w.target.files),w.target.value=""}const Qn=j.some(w=>w.kind==="file"&&w.uploadStatus==="uploading"),Ot=j.filter(w=>w.kind==="file"?w.uploadStatus==="done"&&w.uploadLocator:w.kind==="text"?w.title.trim()&&w.body.trim():w.locator.trim()).length,Le=j.some(w=>w.kind!=="file"&&w.kind!=="text"&&Ou(w)),bn=j.some(w=>w.kind!=="file"&&w.kind!=="text"&&Array.isArray(w.playlistItems)&&w.playlistItems.length===0),At=j.some(w=>w.kind!=="file"&&w.kind!=="text"&&(w.probeState==="probing"||Dn(w.locator)&&w.playlistProbeState!=="done"));return s.jsx("dialog",{ref:u,className:`capture-dialog${S?" capture-dialog--dragover":""}`,onDragOver:Ve,onDragLeave:qt,onDrop:Qe,children:s.jsxs("div",{className:"capture-dialog-inner",children:[s.jsxs("div",{className:"capture-dialog-header",children:[s.jsx("h2",{className:"capture-dialog-title",children:"Capture"}),s.jsx("button",{type:"button",className:"capture-dialog-close",onClick:()=>{var w;return(w=u.current)==null?void 0:w.close()},"aria-label":"Close",children:s.jsxs("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[s.jsx("line",{x1:"3",y1:"3",x2:"13",y2:"13"}),s.jsx("line",{x1:"13",y1:"3",x2:"3",y2:"13"})]})})]}),s.jsx("div",{className:"capture-rows",children:j.map((w,B)=>w.kind==="file"?s.jsx(Jm,{item:w,onRemove:()=>Vt(w.id)},w.id):w.kind==="text"?s.jsx(Gm,{item:w,autoFocus:B===j.length-1,onTitleChange:O=>P($=>$.map(F=>F.id===w.id?{...F,title:O}:F)),onBodyChange:O=>P($=>$.map(F=>F.id===w.id?{...F,body:O}:F)),onMimeChange:O=>P($=>$.map(F=>F.id===w.id?{...F,mime:O}:F)),onRemove:()=>Vt(w.id),onSubmit:at},w.id):s.jsx(Xm,{item:w,autoFocus:B===j.length-1,onLocatorChange:O=>Qt(w.id,O),onQualityChange:O=>jt(w.id,O),onRemove:()=>Vt(w.id),onSubmit:at,onPlaylistQualityChange:O=>Oe(w.id,O),onPlaylistItemQualityChange:(O,$)=>Je(w.id,O,$),onPlaylistToggle:()=>tt(w.id),onSyncChange:O=>D(w.id,O),onPlaylistItemDelete:O=>K(w.id,O)},w.id))}),s.jsx("input",{ref:x,type:"file",multiple:!0,hidden:!0,onChange:Kt,"aria-hidden":"true",tabIndex:-1}),s.jsxs("div",{className:"capture-add-row-group",children:[s.jsxs("button",{type:"button",className:"capture-add-row",onClick:ht,children:[s.jsxs("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[s.jsx("line",{x1:"8",y1:"2",x2:"8",y2:"14"}),s.jsx("line",{x1:"2",y1:"8",x2:"14",y2:"8"})]}),"Add URL"]}),s.jsxs("button",{type:"button",className:"capture-add-row capture-add-file",onClick:()=>{var w;return(w=x.current)==null?void 0:w.click()},children:[s.jsxs("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("rect",{x:"3",y:"1",width:"10",height:"14",rx:"1.5"}),s.jsx("line",{x1:"5.5",y1:"5.5",x2:"10.5",y2:"5.5"}),s.jsx("line",{x1:"5.5",y1:"8",x2:"10.5",y2:"8"}),s.jsx("line",{x1:"5.5",y1:"10.5",x2:"8.5",y2:"10.5"})]}),"Upload file"]}),s.jsxs("button",{type:"button",className:"capture-add-row capture-add-text",onClick:()=>P(w=>[...w,Qm()]),children:[s.jsx("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"M2 3h12M2 7h12M2 11h8"})}),"Add text"]})]}),s.jsxs("div",{className:"capture-advanced",children:[s.jsxs("button",{type:"button",className:"capture-advanced-toggle",onClick:()=>X(w=>!w),"aria-expanded":R,children:[s.jsx("svg",{className:`capture-chevron${R?" capture-chevron--open":""}`,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("polyline",{points:"4 6 8 10 12 6"})}),"Advanced options"]}),R&&s.jsxs("div",{className:"capture-advanced-panel",children:[s.jsxs("label",{className:"capture-ext-row",children:[s.jsxs("span",{className:"capture-ext-label",children:[s.jsx("span",{className:"capture-ext-name",children:"uBlock Origin Lite"}),s.jsx("span",{className:"capture-ext-desc",children:"Block ads during this capture"})]}),s.jsx("button",{type:"button",role:"switch","aria-checked":ne,className:`ext-toggle ext-toggle--sm${ne?" ext-toggle--on":""}`,onClick:()=>Y(w=>w===null?!ne:!w),"aria-label":"Toggle uBlock for this capture",children:s.jsx("span",{className:"ext-toggle-knob"})})]}),s.jsxs("label",{className:"capture-ext-row",style:{marginTop:8},children:[s.jsxs("span",{className:"capture-ext-label",children:[s.jsx("span",{className:"capture-ext-name",children:"Block cookie banners"}),s.jsx("span",{className:"capture-ext-desc",children:"Dismiss cookie consent banners during this capture"}),!(te!=null&&te.cookie_ext_available)&&s.jsxs("span",{className:"capture-ext-hint",children:["Not configured — set ",s.jsx("code",{children:"ARCHIVR_COOKIE_EXT"})]})]}),s.jsx("button",{type:"button",role:"switch","aria-checked":Be,className:`ext-toggle ext-toggle--sm${Be?" ext-toggle--on":""}`,onClick:()=>we(w=>!w),"aria-label":"Toggle cookie banner blocking for this capture",children:s.jsx("span",{className:"ext-toggle-knob"})})]}),s.jsxs("label",{className:"capture-ext-row",style:{marginTop:8},children:[s.jsxs("span",{className:"capture-ext-label",children:[s.jsx("span",{className:"capture-ext-name",children:"Reader mode"}),s.jsx("span",{className:"capture-ext-desc",children:"Distil to article text via Readability (off by default)"})]}),s.jsx("button",{type:"button",role:"switch","aria-checked":se,className:`ext-toggle ext-toggle--sm${se?" ext-toggle--on":""}`,onClick:()=>Z(w=>!w),"aria-label":"Toggle reader mode for this capture",children:s.jsx("span",{className:"ext-toggle-knob"})})]}),s.jsxs("label",{className:"capture-ext-row",style:{marginTop:8},children:[s.jsxs("span",{className:"capture-ext-label",children:[s.jsx("span",{className:"capture-ext-name",children:"Close modals and dialogs"}),s.jsx("span",{className:"capture-ext-desc",children:"Auto-dismiss cookie banners and overlays during this capture"})]}),s.jsx("button",{type:"button",role:"switch","aria-checked":M,className:`ext-toggle ext-toggle--sm${M?" ext-toggle--on":""}`,onClick:()=>L(w=>!w),"aria-label":"Toggle modal closer for this capture",children:s.jsx("span",{className:"ext-toggle-knob"})})]}),s.jsxs("label",{className:"capture-ext-row",style:{marginTop:8},children:[s.jsxs("span",{className:"capture-ext-label",children:[s.jsx("span",{className:"capture-ext-name",children:"Freedium mirror"}),s.jsx("span",{className:"capture-ext-desc",children:"Route paywalled articles through a Freedium mirror (Medium, NYT, WaPo, etc.)"})]}),s.jsx("button",{type:"button",role:"switch","aria-checked":V,className:`ext-toggle ext-toggle--sm${V?" ext-toggle--on":""}`,onClick:()=>G(w=>!w),"aria-label":"Toggle Freedium mirror for this capture",children:s.jsx("span",{className:"ext-toggle-knob"})})]})]})]}),s.jsxs("div",{className:"capture-actions",children:[s.jsx("button",{type:"button",className:"capture-submit",onClick:at,disabled:Ot===0||Le||At||bn||Qn,children:Ot>1?`Archive ${Ot}`:"Archive"}),s.jsx("button",{type:"button",className:"capture-cancel",onClick:()=>{var w;return(w=u.current)==null?void 0:w.close()},children:"Cancel"})]})]})})}function Xm({item:e,autoFocus:t,onLocatorChange:n,onQualityChange:r,onRemove:l,onSubmit:i,onPlaylistQualityChange:a,onPlaylistItemQualityChange:o,onPlaylistToggle:u,onSyncChange:d,onPlaylistItemDelete:y}){const g=c.useRef(null);c.useEffect(()=>{var x;t&&((x=g.current)==null||x.focus())},[t]);const h=(()=>{if(Dn(e.locator)){if(e.playlistProbeState==="probing")return s.jsx("span",{className:"capture-quality-probing","aria-label":"Probing playlist…",children:"…"});if(e.playlistProbeState==="done"){const x=[...new Set(e.playlistItems.flatMap(p=>p.qualities.map(f=>parseInt(f))))].sort((p,f)=>f-p),S=e.playlistItems.every(p=>p.has_audio),N=e.playlistItems.filter(p=>p.quality===null).length;return s.jsxs(s.Fragment,{children:[s.jsxs("select",{className:"capture-quality",value:e.playlistQuality??"",onChange:p=>a(p.target.value),"aria-label":"Playlist quality",children:[!e.playlistQuality&&s.jsx("option",{value:"",disabled:!0,children:"Select quality…"}),s.jsx("option",{value:"best",children:"Best quality"}),x.map(p=>s.jsxs("option",{value:`${p}p`,children:[p,"p"]},p)),S&&s.jsx("option",{value:"audio",children:"Audio only"})]}),N>0&&s.jsxs("span",{className:"capture-conflict-badge",children:[N," need selection"]})]})}return e.playlistProbeState==="error"?s.jsx("span",{className:"capture-quality-hint capture-quality-hint--error",children:"Probe failed — edit URL to retry"}):null}if(!uf(e.locator))return null;if(e.probeState==="probing")return s.jsx("span",{className:"capture-quality-probing","aria-label":"Checking available qualities",children:"…"});if(e.probeState==="done"){const x=e.probeQualities??[],S=e.probeHasAudio??!1;return x.length===0&&!S?s.jsx("span",{className:"capture-quality-hint",children:"No media detected"}):x.length===0&&S?s.jsx("select",{className:"capture-quality",value:"audio",onChange:N=>r(N.target.value),"aria-label":"Video quality",children:s.jsx("option",{value:"audio",children:"Audio only"})}):s.jsxs("select",{className:"capture-quality",value:e.quality||"best",onChange:N=>r(N.target.value),"aria-label":"Video quality",children:[s.jsx("option",{value:"best",children:"Best quality"}),x.map(N=>s.jsx("option",{value:N,children:N},N)),S&&s.jsx("option",{value:"audio",children:"Audio only"})]})}return null})(),v=Dn(e.locator)&&e.playlistProbeState==="done"?s.jsxs("label",{className:"capture-sync-row",children:[s.jsx("input",{type:"checkbox",checked:e.syncEnabled,onChange:x=>d(x.target.checked)}),s.jsx("span",{children:"Sync — skip already-archived videos"})]}):null;return s.jsxs("div",{className:"capture-row",children:[s.jsxs("div",{className:"capture-row-main",children:[Dn(e.locator)&&e.playlistProbeState==="done"?s.jsx("button",{type:"button",className:"capture-playlist-toggle capture-playlist-toggle--left",onClick:u,"aria-label":e.playlistExpanded?"Collapse video list":"Expand video list","aria-expanded":e.playlistExpanded,children:e.playlistExpanded?"▲":"▼"}):null,s.jsx("input",{ref:g,className:"capture-input",type:"text",placeholder:"https://… · yt:ID · ytm:ID · tweet:ID · x:ID",value:e.locator,onChange:x=>n(x.target.value),onKeyDown:x=>{x.key==="Enter"&&i()},autoComplete:"off",spellCheck:!1}),h,s.jsx("button",{type:"button",className:"capture-row-action capture-row-remove",onClick:l,"aria-label":"Remove",children:s.jsxs("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[s.jsx("line",{x1:"3",y1:"3",x2:"13",y2:"13"}),s.jsx("line",{x1:"13",y1:"3",x2:"3",y2:"13"})]})})]}),e.error&&s.jsx("p",{className:"capture-row-error",children:e.error}),Dn(e.locator)&&e.playlistProbeState==="done"&&e.playlistExpanded?s.jsxs("div",{className:"capture-playlist-items",children:[e.playlistItems.map(x=>s.jsxs("div",{className:`capture-playlist-item${x.quality===null?" capture-playlist-item--conflict":""}`,children:[s.jsx("span",{className:"capture-playlist-item-title",children:x.title||x.url}),s.jsxs("select",{className:"capture-item-quality",value:x.quality??"",onChange:S=>o(x.id,S.target.value),"aria-label":`Quality for ${x.title||x.url}`,children:[x.quality===null&&s.jsx("option",{value:"",disabled:!0,children:"Choose…"}),s.jsx("option",{value:"best",children:"Best quality"}),x.qualities.map(S=>s.jsx("option",{value:S,children:S},S)),x.has_audio&&s.jsx("option",{value:"audio",children:"Audio only"})]}),x.quality===null&&s.jsx("span",{className:"capture-playlist-conflict-badge",children:"Choose quality"}),s.jsx("button",{type:"button",className:"capture-playlist-item-remove","aria-label":`Remove ${x.title||x.url}`,onClick:()=>y(x.id),children:"×"})]},x.id)),v]}):v]})}function Jm({item:e,onRemove:t}){const n=e.uploadStatus==="uploading",r=e.uploadStatus==="done",l=e.uploadStatus==="error";return s.jsxs("div",{className:"capture-row",children:[s.jsxs("div",{className:"capture-row-main",children:[s.jsx("span",{className:"capture-file-icon","aria-hidden":"true",children:s.jsxs("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round",style:{width:14,height:14},children:[s.jsx("rect",{x:"3",y:"1",width:"10",height:"14",rx:"1.5"}),s.jsx("line",{x1:"5.5",y1:"5.5",x2:"10.5",y2:"5.5"}),s.jsx("line",{x1:"5.5",y1:"8",x2:"10.5",y2:"8"}),s.jsx("line",{x1:"5.5",y1:"10.5",x2:"8.5",y2:"10.5"})]})}),s.jsx("span",{className:`capture-file-name${l?" capture-file-name--error":""}`,children:e.filename}),n&&s.jsxs("span",{className:"capture-file-progress-wrap","aria-label":`Uploading ${e.uploadProgress}%`,children:[s.jsx("span",{className:"capture-file-progress-bar",children:s.jsx("span",{className:"capture-file-progress-fill",style:{width:`${e.uploadProgress}%`}})}),s.jsxs("span",{className:"capture-file-progress-pct",children:[e.uploadProgress,"%"]})]}),r&&s.jsx("span",{className:"capture-file-badge capture-file-badge--done","aria-label":"Upload complete",children:s.jsx("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",style:{width:11,height:11},children:s.jsx("polyline",{points:"3 8.5 6.5 12 13 5"})})}),l&&s.jsx("span",{className:"capture-file-badge capture-file-badge--error",children:"!"}),s.jsx("button",{type:"button",className:"capture-row-action capture-row-remove",onClick:t,"aria-label":"Remove",disabled:n,children:s.jsxs("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[s.jsx("line",{x1:"3",y1:"3",x2:"13",y2:"13"}),s.jsx("line",{x1:"13",y1:"3",x2:"3",y2:"13"})]})})]}),l&&s.jsx("p",{className:"capture-row-error",children:e.uploadError||"Upload failed"})]})}function Gm({item:e,autoFocus:t,onTitleChange:n,onBodyChange:r,onMimeChange:l,onRemove:i,onSubmit:a}){const o=c.useRef(null);return c.useEffect(()=>{var u;t&&((u=o.current)==null||u.focus())},[t]),s.jsx("div",{className:"capture-row capture-text-row",children:s.jsxs("div",{className:"capture-row-main",children:[s.jsx("span",{className:"capture-text-icon","aria-hidden":"true",children:s.jsx("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round",style:{width:14,height:14},children:s.jsx("path",{d:"M2 3h12M2 7h12M2 11h8"})})}),s.jsxs("div",{className:"capture-text-inputs",children:[s.jsx("input",{ref:o,className:"capture-text-input capture-text-title",type:"text",placeholder:"Title",value:e.title,onChange:u=>n(u.target.value),maxLength:500}),s.jsx("textarea",{className:"capture-text-input capture-text-body",placeholder:"Body (markdown or plain text)",value:e.body,onChange:u=>r(u.target.value),rows:6}),s.jsx("div",{className:"capture-text-footer",children:s.jsxs("select",{className:"capture-text-mime",value:e.mime,onChange:u=>l(u.target.value),children:[s.jsx("option",{value:"text/markdown",children:"Markdown"}),s.jsx("option",{value:"text/plain",children:"Plain text"})]})})]}),s.jsx("button",{type:"button",className:"capture-row-action capture-row-remove",onClick:i,"aria-label":"Remove",children:s.jsxs("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[s.jsx("line",{x1:"3",y1:"3",x2:"13",y2:"13"}),s.jsx("line",{x1:"13",y1:"3",x2:"3",y2:"13"})]})})]})})}const Ym=["list=","/playlist/","/channel/","yt:playlist:","yt:channel:","ytm:playlist:","spotify:playlist:","spotify:album:"];function Zm(e){const t=e.toLowerCase();return Ym.some(n=>t.includes(n))}function eg(e){return e.length>80?`${e.slice(0,79)}…`:e}function tg({locator:e=""}){const t=String(e),n=Zm(t);return s.jsxs("div",{className:"in-progress-entry-row",role:"status","aria-live":"polite",children:[s.jsx("span",{className:"cap-spinner in-progress-entry-row__spinner","aria-hidden":"true"}),s.jsx("span",{className:"in-progress-entry-row__locator",title:t,children:eg(t)}),s.jsxs("span",{className:"in-progress-entry-row__status",children:["Archiving…",n&&s.jsx("span",{className:"in-progress-entry-row__kind",children:"(playlist)"})]})]})}function gl(e){if(!e)return"0 B";const t=["B","KB","MB","GB"];let n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(r===0?0:1)} ${t[r]}`}function ng(e){return e&&e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'")}function gt(e){return ng(e)??""}function ko(e){if(!e)return"";const t=new Date(e);if(isNaN(t))return e;const n=r=>String(r).padStart(2,"0");return`${t.getUTCFullYear()}-${n(t.getUTCMonth()+1)}-${n(t.getUTCDate())} ${n(t.getUTCHours())}:${n(t.getUTCMinutes())}`}const Au={youtube:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="#FF0000" d="M23.5 6.2a3 3 0 0 0-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 0 0 .5 6.2C0 8.1 0 12 0 12s0 3.9.5 5.8a3 3 0 0 0 2.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 0 0 2.1-2.1C24 15.9 24 12 24 12s0-3.9-.5-5.8z"/><polygon fill="#fff" points="9.6,15.6 15.8,12 9.6,8.4"/></svg>',youtube_music:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="12" fill="#FF0000"/><polygon fill="#fff" points="9.6,15.6 15.8,12 9.6,8.4"/></svg>',spotify:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="12" fill="#1DB954"/><path fill="#fff" d="M17.9 10.9c-3.2-1.9-8.5-2.1-11.6-1.1-.5.1-1-.2-1.1-.6-.1-.5.2-1 .6-1.1 3.5-1.1 9.4-.9 13 1.3.4.2.6.8.3 1.2-.2.5-.8.6-1.2.3zm-.1 2.9c-.2.4-.7.5-1.1.3-2.7-1.6-6.7-2.1-9.9-1.1-.4.1-.9-.1-1-.5-.1-.4.1-.9.5-1 3.6-1.1 8-.5 11.1 1.3.4.2.5.7.4 1zm-1.3 2.8c-.2.3-.6.4-.9.2-2.3-1.4-5.2-1.7-8.6-.9-.3.1-.7-.1-.8-.5-.1-.3.1-.7.4-.8 3.7-.9 7-.5 9.6 1 .4.2.5.6.3.9z"/></svg>',x:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M18.2 2h3.3l-7.2 8.2L23 22h-6.6l-5.2-6.8L5 22H1.7l7.7-8.8L1 2h6.8l4.7 6.2zm-1.1 18h1.8L6.9 3.9H5z"/></svg>',instagram:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient id="ig" x1="0%" y1="100%" x2="100%" y2="0%"><stop offset="0%" stop-color="#f09433"/><stop offset="25%" stop-color="#e6683c"/><stop offset="50%" stop-color="#dc2743"/><stop offset="75%" stop-color="#cc2366"/><stop offset="100%" stop-color="#bc1888"/></linearGradient></defs><rect width="24" height="24" rx="5" fill="url(#ig)"/><rect x="2.5" y="2.5" width="19" height="19" rx="4" fill="none" stroke="#fff" stroke-width="1.5"/><circle cx="12" cy="12" r="4" fill="none" stroke="#fff" stroke-width="1.5"/><circle cx="17.5" cy="6.5" r="1" fill="#fff"/></svg>',facebook:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect width="24" height="24" rx="4" fill="#1877F2"/><path fill="#fff" d="M16 8h-2c-.6 0-1 .4-1 1v2h3l-.4 3H13v8h-3v-8H8v-3h2V9a4 4 0 0 1 4-4h2v3z"/></svg>',tiktok:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.6 5.4a4.8 4.8 0 0 1-4.8-4.8h-3v14.7a2 2 0 1 1-2-2l.1-3a5 5 0 1 0 4.9 5V8.4a8 8 0 0 0 4.8 1.6V6.7a4.8 4.8 0 0 1-0-.2l0 0 .1.9z" fill="#000"/><path d="M18.6 4.4a4.8 4.8 0 0 1-4.8-4.8h-3v14.7a2 2 0 1 1-2-2l.1-3a5 5 0 1 0 4.9 5V7.4a8 8 0 0 0 4.8 1.6V5.7" fill="none" stroke="#69C9D0" stroke-width="1.5"/></svg>',reddit:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="12" fill="#FF4500"/><path fill="#fff" d="M20 12a2 2 0 0 0-2-2 2 2 0 0 0-1.3.5c-1.3-.9-3-.9-4.6-.9l.8-3.7 2.6.5a1.4 1.4 0 1 0 1.4-1.3 1.4 1.4 0 0 0-1.3.8l-2.9-.5a.3.3 0 0 0-.4.3l-.9 4.1c-1.6 0-3.1.1-4.3.9A2 2 0 0 0 4 12a2 2 0 0 0 1 1.7 3.3 3.3 0 0 0 0 .5c0 2.6 3 4.8 6.8 4.8s6.8-2.1 6.8-4.8a3.3 3.3 0 0 0 0-.5A2 2 0 0 0 20 12zm-13.6 1a1.1 1.1 0 1 1 1.1 1.1A1.1 1.1 0 0 1 6.4 13zm6.2 3.1a3.5 3.5 0 0 1-2.3.7 3.5 3.5 0 0 1-2.3-.7.3.3 0 0 1 .4-.4 3 3 0 0 0 1.9.5 3 3 0 0 0 1.9-.5.3.3 0 0 1 .4.4zm-.3-2a1.1 1.1 0 1 1 1.1-1.1A1.1 1.1 0 0 1 12.3 14.1z"/></svg>',snapchat:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect width="24" height="24" rx="4" fill="#FFFC00"/><path d="M12 3.5c-2.4 0-4.4 2-4.4 4.4v1.3l-.8.1c-.3 0-.5.2-.5.5s.3.5.6.6c.3.1.5.3.5.8 0 .3-.1.5-.3.7-.6.8-1.5 1.3-2.2 1.4-.1.7.7 1 1.7 1.2.1.6.3.8.8.8.6 0 1.1.4 2.7.4 1.5 0 2.1-.4 2.7-.4.5 0 .7-.2.8-.8 1-.2 1.8-.5 1.7-1.2-.7-.1-1.6-.6-2.2-1.4-.2-.2-.3-.4-.3-.7 0-.5.2-.7.5-.8.3-.1.6-.3.6-.6s-.2-.5-.5-.5l-.8-.1V7.9C16.4 5.5 14.4 3.5 12 3.5z"/></svg>',local:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#666" stroke-width="1.5" stroke-linejoin="round" d="M4 4h7l2 2h7v14H4z"/></svg>',web:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10" fill="none" stroke="#555" stroke-width="1.5"/><ellipse cx="12" cy="12" rx="4" ry="10" fill="none" stroke="#555" stroke-width="1.5"/><line x1="2" y1="9" x2="22" y2="9" stroke="#555" stroke-width="1.5"/><line x1="2" y1="15" x2="22" y2="15" stroke="#555" stroke-width="1.5"/></svg>',other:'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10" fill="none" stroke="#999" stroke-width="1.5"/><text x="12" y="16" text-anchor="middle" font-size="12" fill="#999">?</text></svg>'};function Ws(e){return Au[e]??Au.other}function cf(e){return e.split("/").map(t=>t?t.split("-").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" "):"").join("/")}function rg({entry:e,index:t,onRowClick:n,selectedUids:r}){const l=(r==null?void 0:r.size)===1&&r.has(e.entry_uid),i=(r==null?void 0:r.size)>=2&&r.has(e.entry_uid),a=["child-entry-row",t%2===0?"child-entry-row--light":"child-entry-row--dark",l&&"is-selected",i&&"is-multi-selected"].filter(Boolean).join(" ");return s.jsxs("div",{className:a,tabIndex:0,"data-entry-uid":e.entry_uid,onMouseDown:o=>{o.shiftKey&&o.preventDefault()},onClick:o=>n(e,o),onKeyDown:o=>{o.key==="Enter"&&n(e,o)},children:[s.jsx("div",{className:"col-check","aria-hidden":"true"}),s.jsx("div",{className:"col-added",children:ko(e.archived_at)}),s.jsxs("div",{className:"col-title",children:[s.jsx("span",{className:"source-icon",children:s.jsx("span",{dangerouslySetInnerHTML:{__html:Ws(e.source_kind)}})}),s.jsx("span",{className:"entry-title",children:gt(e.title)||gt(e.entry_uid)})]}),s.jsx("div",{className:"col-type",children:s.jsx("span",{className:"type-pill",children:gt(e.entity_kind)})}),s.jsx("div",{className:"col-size",children:s.jsx("span",{className:"size-total",children:gl(e.total_artifact_bytes)})}),s.jsx("div",{className:"url-cell col-url",children:gt(e.original_url)})]})}function lg({entry:e,archiveId:t,rowIndex:n,isSelected:r,isMultiSelected:l,onRowClick:i,selectedUids:a,deletedUids:o,isPublicSession:u}){const[d,y]=c.useState(!1),[g,h]=c.useState(!1),[v,x]=c.useState(null),[S,N]=c.useState(!1),f=e.source_kind==="web"&&e.entity_kind==="page"&&e.has_favicon&&t&&!d?s.jsx("img",{src:`/api/archives/${t}/entries/${e.entry_uid}/favicon`,width:"16",height:"16",alt:"",onError:()=>y(!0),style:{objectFit:"contain"}}):s.jsx("span",{dangerouslySetInnerHTML:{__html:Ws(e.source_kind)}}),m=r||l,k=e.child_count>0&&!u;function C(j){j.stopPropagation(),i(e,{ctrlKey:!0,metaKey:!1,shiftKey:!1,preventDefault(){}})}async function E(j){if(j.stopPropagation(),g){h(!1);return}if(h(!0),v===null&&!S){N(!0);try{const P=await Yh(t,e.entry_uid);x(P)}catch{x([])}finally{N(!1)}}}const T=["entry-row-outer",n%2===0?"entry-row-outer--light":"entry-row-outer--dark",r&&"is-selected",l&&"is-multi-selected"].filter(Boolean).join(" ");return s.jsxs("div",{className:T,"data-entry-uid":e.entry_uid,children:[s.jsxs("div",{className:"entry-row-main",tabIndex:0,onMouseDown:j=>{j.shiftKey&&j.preventDefault()},onClick:j=>i(e,j),onKeyDown:j=>{j.key==="Enter"&&i(e,j)},children:[s.jsx("div",{className:"col-check",children:s.jsx("button",{type:"button",className:`row-checkbox${m?" is-checked":""}`,"aria-pressed":m,"aria-label":m?"Deselect entry":"Select entry",onClick:C,onKeyDown:j=>j.stopPropagation()})}),s.jsx("div",{className:"col-added",children:ko(e.archived_at)}),s.jsxs("div",{className:"col-title",children:[k&&s.jsx("button",{type:"button",className:`entry-expand-btn${g?" is-expanded":""}`,"aria-label":g?"Collapse children":`Expand ${e.child_count} items`,"aria-expanded":g,onClick:E,onKeyDown:j=>j.stopPropagation()}),s.jsx("span",{className:"source-icon",children:f}),s.jsx("span",{className:"entry-title",children:gt(e.title)||gt(e.entry_uid)}),k&&s.jsx("span",{className:"child-count-badge","aria-hidden":"true",children:e.child_count})]}),s.jsx("div",{className:"col-type",children:s.jsx("span",{className:"type-pill",children:gt(e.entity_kind)})}),s.jsxs("div",{className:"col-size",children:[s.jsx("span",{className:"size-total",children:gl(e.total_artifact_bytes)}),e.cached_bytes>0&&e.cacheable_bytes>0&&s.jsxs("span",{className:"size-cached-pct",title:`${gl(e.cached_bytes)} already on disk from an earlier entry`,children:[Math.round(e.cached_bytes/e.cacheable_bytes*100),"% cached"]})]}),s.jsx("div",{className:"url-cell col-url",children:gt(e.original_url)})]}),g&&s.jsxs(s.Fragment,{children:[S&&s.jsx("div",{className:"child-entries-loading",children:"Loading…"}),s.jsx("div",{className:"child-entries","aria-label":`${e.child_count} child entries`,children:v&&v.filter(j=>!(o!=null&&o.has(j.entry_uid))).map((j,P)=>s.jsx(rg,{entry:j,index:P,onRowClick:i,selectedUids:a},j.entry_uid))})]})]})}function sg({entries:e,selectedUids:t,onRowClick:n,archiveId:r,pendingCaptures:l=[],deletedUids:i,isPublicSession:a}){return s.jsx("section",{id:"archive-view",className:"view is-active",children:s.jsxs("div",{className:"entry-table",children:[s.jsxs("div",{className:"entry-header-row",children:[s.jsx("div",{className:"col-check","aria-hidden":"true"}),s.jsx("div",{className:"col-added",children:"Added"}),s.jsx("div",{className:"col-title",children:"Title"}),s.jsx("div",{className:"col-type",children:"Type"}),s.jsx("div",{className:"col-size",children:"Size"}),s.jsx("div",{className:"col-url",children:"Original URL"})]}),s.jsxs("div",{id:"entries-body",children:[l.filter(o=>o.archiveId===r).reverse().map(o=>s.jsx(tg,{locator:o.locator},o.id)),e.map((o,u)=>s.jsx(lg,{entry:o,rowIndex:u,archiveId:r,isSelected:t.size===1&&t.has(o.entry_uid),isMultiSelected:t.size>=2&&t.has(o.entry_uid),onRowClick:n,selectedUids:t,deletedUids:i,isPublicSession:a},o.entry_uid))]})]})})}function ig(e){if(!e)return"—";try{return new Date(e).toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return e}}function ag({status:e}){const t=e==="completed"?"run-status--completed":e==="failed"?"run-status--failed":e==="in_progress"?"run-status--in-progress":"",n=e?e.replace(/_/g," "):"—";return s.jsx("span",{className:`run-status ${t}`,children:n})}function og({runs:e}){const[t,n]=c.useState(null);function r(l){n(i=>i===l?null:l)}return s.jsx("section",{id:"runs-view",className:"view is-active",children:s.jsxs("table",{className:"entry-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:"Started"}),s.jsx("th",{children:"Status"}),s.jsx("th",{children:"Requested"}),s.jsx("th",{children:"Completed"}),s.jsx("th",{children:"Failed"})]})}),s.jsx("tbody",{children:e.length===0?s.jsx("tr",{children:s.jsx("td",{colSpan:5,style:{color:"var(--muted)",padding:"24px 16px",textAlign:"center"},children:"No runs yet."})}):e.map(l=>{const i=l.status==="failed"&&l.error_summary,a=t===l.run_uid;return[s.jsxs("tr",{className:i?"run-row run-row--failed":"run-row",onClick:i?()=>r(l.run_uid):void 0,title:i?a?"Click to hide error":"Click to view error":void 0,children:[s.jsx("td",{children:ig(l.started_at)}),s.jsxs("td",{children:[s.jsx(ag,{status:l.status}),i&&s.jsx("span",{className:"run-expand-hint","aria-hidden":"true",children:a?"▴":"▾"})]}),s.jsx("td",{children:l.requested_count??"—"}),s.jsx("td",{children:l.completed_count??"—"}),s.jsx("td",{children:l.failed_count??"—"})]},l.run_uid),i&&a&&s.jsx("tr",{className:"run-error-row",children:s.jsx("td",{colSpan:5,children:s.jsx("pre",{className:"run-error-detail",children:l.error_summary})})},`${l.run_uid}-detail`)]})})]})})}const ug=4;function cg({archives:e}){const{currentUser:t}=c.useContext(Vs)??{},n=t&&(t.role_bits&ug)!==0,[r,l]=c.useState("users"),[i,a]=c.useState([]),[o,u]=c.useState([]),[d,y]=c.useState(!1),[g,h]=c.useState(null),[v,x]=c.useState(""),[S,N]=c.useState(""),[p,f]=c.useState(""),[m,k]=c.useState(null),[C,E]=c.useState(!1),[T,j]=c.useState(""),[P,R]=c.useState(""),[X,H]=c.useState(null),[Y,te]=c.useState(!1),fe=c.useCallback(async()=>{if(n){y(!0),h(null);try{const[L,V]=await Promise.all([jm(),_m()]);a(L),u(V)}catch(L){h(L.message)}finally{y(!1)}}},[n]);c.useEffect(()=>{fe()},[fe]);async function Be(L){const V=L.status==="active"?"disabled":"active";try{await Nm(L.user_uid,V),a(G=>G.map(ne=>ne.user_uid===L.user_uid?{...ne,status:V}:ne))}catch(G){h(G.message)}}async function we(L){if(L.preventDefault(),!v.trim()||!S){k("Username and password required");return}E(!0),k(null);try{await Sm(v.trim(),S,p.trim()||void 0),x(""),N(""),f(""),await fe()}catch(V){k(V.message)}finally{E(!1)}}async function M(L){if(L.preventDefault(),!T.trim()||!P.trim()){H("Slug and name required");return}te(!0),H(null);try{await Cm(T.trim(),P.trim()),j(""),R(""),await fe()}catch(V){H(V.message)}finally{te(!1)}}return n?s.jsxs("section",{id:"admin-view",className:"view admin-view is-active",children:[s.jsx("h1",{children:"Admin"}),s.jsxs("div",{className:"view-tabs",children:[s.jsx("button",{className:`view-tab${r==="users"?" is-active":""}`,onClick:()=>l("users"),children:"Users"}),s.jsx("button",{className:`view-tab${r==="roles"?" is-active":""}`,onClick:()=>l("roles"),children:"Roles"}),s.jsx("button",{className:`view-tab${r==="archives"?" is-active":""}`,onClick:()=>l("archives"),children:"Archives"})]}),g&&s.jsx("div",{className:"form-msg form-msg--err",children:g}),r==="users"&&s.jsxs("div",{className:"admin-section",children:[s.jsx("h2",{children:"Users"}),d?s.jsx("p",{className:"muted",children:"Loading…"}):s.jsxs("table",{className:"admin-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:"Username"}),s.jsx("th",{children:"Email"}),s.jsx("th",{children:"Roles"}),s.jsx("th",{children:"Status"}),s.jsx("th",{children:"Actions"})]})}),s.jsx("tbody",{children:i.map(L=>s.jsxs("tr",{className:L.status==="disabled"?"admin-row-disabled":"",children:[s.jsx("td",{children:L.username}),s.jsx("td",{className:"muted",children:L.email||"—"}),s.jsx("td",{children:L.role_slugs.join(", ")||"—"}),s.jsx("td",{children:s.jsx("span",{className:`status-badge status-${L.status}`,children:L.status})}),s.jsx("td",{children:s.jsx("button",{className:"admin-action-btn",onClick:()=>Be(L),children:L.status==="active"?"Ban":"Unban"})})]},L.user_uid))})]}),s.jsx("h3",{children:"Create User"}),s.jsxs("form",{className:"admin-form",onSubmit:we,children:[s.jsx("input",{className:"admin-input",placeholder:"Username",value:v,onChange:L=>x(L.target.value),required:!0}),s.jsx("input",{className:"admin-input",type:"password",placeholder:"Password (min 8 chars)",value:S,onChange:L=>N(L.target.value),required:!0}),s.jsx("input",{className:"admin-input",type:"email",placeholder:"Email (optional)",value:p,onChange:L=>f(L.target.value)}),m&&s.jsx("div",{className:"form-msg form-msg--err",children:m}),s.jsx("button",{className:"btn-primary",type:"submit",disabled:C,children:C?"Creating…":"Create User"})]})]}),r==="roles"&&s.jsxs("div",{className:"admin-section",children:[s.jsx("h2",{children:"Roles"}),d?s.jsx("p",{className:"muted",children:"Loading…"}):s.jsxs("table",{className:"admin-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:"Slug"}),s.jsx("th",{children:"Name"}),s.jsx("th",{children:"Level"}),s.jsx("th",{children:"Bit"}),s.jsx("th",{children:"Built-in"})]})}),s.jsx("tbody",{children:o.map(L=>s.jsxs("tr",{children:[s.jsx("td",{children:s.jsx("code",{children:L.slug})}),s.jsx("td",{children:L.name}),s.jsx("td",{children:L.level}),s.jsx("td",{children:L.bit_position}),s.jsx("td",{children:L.is_builtin?"✓":""})]},L.role_uid))})]}),s.jsx("h3",{children:"Create Custom Role"}),s.jsxs("form",{className:"admin-form",onSubmit:M,children:[s.jsx("input",{className:"admin-input",placeholder:"Slug (e.g. moderator)",value:T,onChange:L=>j(L.target.value),required:!0}),s.jsx("input",{className:"admin-input",placeholder:"Display Name (e.g. Moderator)",value:P,onChange:L=>R(L.target.value),required:!0}),X&&s.jsx("div",{className:"form-msg form-msg--err",children:X}),s.jsx("button",{className:"btn-primary",type:"submit",disabled:Y,children:Y?"Creating…":"Create Role"})]})]}),r==="archives"&&s.jsxs("div",{className:"admin-section",children:[s.jsx("h2",{children:"Mounted Archives"}),s.jsx("div",{className:"admin-list",children:e.map(L=>s.jsxs("div",{className:"admin-archive",children:[s.jsx("strong",{children:L.label}),s.jsx("div",{className:"muted",children:L.archive_path})]},L.id))})]})]}):s.jsxs("section",{id:"admin-view",className:"view admin-view is-active",children:[s.jsx("h1",{children:"Admin"}),s.jsx("p",{className:"muted",children:"You need admin privileges to access this panel."}),s.jsx("h2",{children:"Mounted Archives"}),s.jsx("div",{className:"admin-list",children:e.map(L=>s.jsxs("div",{className:"admin-archive",children:[s.jsx("strong",{children:L.label}),s.jsx("div",{className:"muted",children:L.archive_path})]},L.id))})]})}function df({node:e,onPick:t}){var n;return s.jsxs("li",{children:[s.jsx("button",{className:"tag-picker-node-btn",title:e.tag.full_path,onClick:()=>t(e.tag),children:e.tag.slug}),((n=e.children)==null?void 0:n.length)>0&&s.jsx("div",{className:"tag-children",children:s.jsx("ul",{className:"tag-tree-list",children:e.children.map(r=>s.jsx(df,{node:r,onPick:t},r.tag.tag_uid))})})]})}function Mu({title:e,tagNodes:t,excludeUid:n,onPick:r,onCancel:l}){c.useEffect(()=>{function o(u){u.key==="Escape"&&(u.preventDefault(),u.stopPropagation(),l())}return document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)},[l]);function i(o){return o.filter(u=>u.tag.tag_uid!==n).map(u=>({...u,children:i(u.children)}))}const a=n?i(t):t;return s.jsx("div",{className:"tag-picker-backdrop",onClick:o=>{o.target===o.currentTarget&&l()},children:s.jsxs("div",{className:"tag-picker-modal",role:"dialog","aria-modal":"true",children:[s.jsxs("div",{className:"tag-picker-header",children:[s.jsx("span",{className:"tag-picker-title",children:e}),s.jsx("button",{className:"tag-picker-close",onClick:l,title:"Cancel","aria-label":"Cancel",children:"×"})]}),s.jsxs("div",{className:"tag-picker-body",children:[s.jsx("button",{className:"tag-picker-root-btn",onClick:()=>r(null),title:"Place at root level (no parent)",children:"↑ Root tag (no parent)"}),a.length>0?s.jsx("ul",{className:"tag-tree-list tag-picker-tree",children:a.map(o=>s.jsx(df,{node:o,onPick:r},o.tag.tag_uid))}):s.jsx("p",{className:"tag-picker-empty",children:"No other tags available."})]})]})})}function ff({parentPath:e,archiveId:t,onDone:n,onCancel:r}){const[l,i]=c.useState(""),a=c.useRef(!1);async function o(){const u=l.trim();if(!u){r();return}const d=e?`${e}/${u}`:`/${u}`;try{await sm(t,d),n()}catch(y){alert(y.message||"Create failed"),r()}}return s.jsx("input",{className:"tag-rename-input",autoFocus:!0,placeholder:"tag name",value:l,onChange:u=>i(u.target.value),onKeyDown:u=>{u.key==="Enter"&&u.currentTarget.blur(),u.key==="Escape"&&(a.current=!0,u.currentTarget.blur())},onBlur:()=>{a.current?(a.current=!1,r()):o()}})}function pf({node:e,archiveId:t,tagFilter:n,onTagFilterSet:r,onViewChange:l,onTagRenamed:i,onTagDeleted:a,onTagsRefresh:o,humanizeTags:u,moveSelectMode:d,onMoveSourceSelect:y,pendingCreateParentUid:g,onCreateDone:h,onCreateCancel:v}){var X;const x=n===e.tag.full_path,[S,N]=c.useState(!1),[p,f]=c.useState(""),m=c.useRef(!1);function k(){if(S)return;if(d){y(e);return}const H=x?null:e.tag.full_path;r(H),l("archive")}function C(H){H.stopPropagation(),!d&&(f(e.tag.slug),N(!0))}async function E(){const H=p.trim();if(!H||H===e.tag.slug){N(!1);return}try{const Y=await rm(t,e.tag.tag_uid,H);i(e.tag.full_path,Y.full_path),o()}catch{}finally{N(!1)}}async function T(H){var te;H.stopPropagation();const Y=((te=e.children)==null?void 0:te.length)>0?`Delete tag "${e.tag.full_path}" and all its child tags? This cannot be undone.`:`Delete tag "${e.tag.full_path}"? This cannot be undone.`;if(window.confirm(Y))try{await lm(t,e.tag.tag_uid),a(e.tag.full_path),o()}catch{}}const j={archiveId:t,tagFilter:n,onTagFilterSet:r,onViewChange:l,onTagRenamed:i,onTagDeleted:a,onTagsRefresh:o,humanizeTags:u,moveSelectMode:d,onMoveSourceSelect:y,pendingCreateParentUid:g,onCreateDone:h,onCreateCancel:v},P=g===e.tag.tag_uid,R=((X=e.children)==null?void 0:X.length)>0;return s.jsxs("li",{children:[s.jsxs("div",{className:`tag-node-row${d?" tag-node-row--move-select":""}`,children:[S?s.jsx("input",{className:"tag-rename-input",autoFocus:!0,value:p,onChange:H=>f(H.target.value),onKeyDown:H=>{H.key==="Enter"&&H.currentTarget.blur(),H.key==="Escape"&&(m.current=!0,H.currentTarget.blur())},onBlur:()=>{m.current?(m.current=!1,N(!1)):E()}}):s.jsxs("button",{className:`tag-node-btn${x?" is-active":""}${d?" tag-node-btn--move-select":""}`,title:d?`Select "${e.tag.full_path}" to move`:e.tag.full_path,onClick:k,onDoubleClick:d?void 0:C,children:[s.jsx("span",{className:"tag-node-label",children:u?e.tag.name:e.tag.slug}),s.jsx("span",{className:"tag-node-count",children:e.children.length===0?`(${e.entry_count})`:`(${e.entry_count}) (${e.subtree_count} Total)`}),!d&&s.jsx("svg",{className:"edit-icon",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",title:"Rename tag",onClick:H=>{H.stopPropagation(),C(H)},children:s.jsx("path",{d:"M11.5 2.5a1.5 1.5 0 0 1 2 2L5 13l-3 1 1-3 8.5-8.5z"})})]}),!S&&!d&&s.jsx("button",{className:"remove tag-node-delete",title:`Delete "${e.tag.full_path}"`,onClick:T,"aria-label":`Delete "${e.tag.full_path}"`,children:"×"})]}),(R||P)&&s.jsx("div",{className:"tag-children",children:s.jsxs("ul",{className:"tag-tree-list",children:[e.children.map(H=>s.jsx(pf,{node:H,...j},H.tag.tag_uid)),P&&s.jsx("li",{children:s.jsx(ff,{parentPath:e.tag.full_path,archiveId:t,onDone:h,onCancel:v})})]})})]})}function dg({archiveId:e,tagNodes:t,tagFilter:n,onTagFilterSet:r,onViewChange:l,onTagRenamed:i,onTagDeleted:a,onTagsRefresh:o,humanizeTags:u}){const[d,y]=c.useState(null),[g,h]=c.useState(null);function v(){y("select-source"),h(null)}function x(){y(null),h(null)}c.useEffect(()=>{if(d!=="select-source")return;function Y(te){te.key==="Escape"&&(te.preventDefault(),te.stopPropagation(),x())}return document.addEventListener("keydown",Y),()=>document.removeEventListener("keydown",Y)},[d]);function S(Y){h(Y),y("select-dest")}async function N(Y){const te=g.tag.full_path,fe=g.tag.tag_uid,Be=(Y==null?void 0:Y.tag_uid)??null;x();try{const we=await im(e,fe,Be);i(te,we.full_path),o()}catch(we){alert(we.message||"Move failed")}}const[p,f]=c.useState(null),[m,k]=c.useState(void 0);function C(){f("select-parent"),k(void 0)}function E(){f(null),k(void 0)}function T(Y){k(Y??null),f("input")}function j(){f(null),k(void 0),o()}const P=d==="select-source",R=p==="input"?m?m.tag_uid:"__root__":void 0,X={archiveId:e,tagFilter:n,onTagFilterSet:r,onViewChange:l,onTagRenamed:i,onTagDeleted:a,onTagsRefresh:o,humanizeTags:u,moveSelectMode:P,onMoveSourceSelect:S,pendingCreateParentUid:R,onCreateDone:j,onCreateCancel:E},H=R==="__root__";return s.jsxs("section",{id:"tags-view",className:"view is-active",children:[s.jsxs("div",{className:"tag-tree",children:[s.jsx("div",{className:"tag-tree-header",children:P?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"tag-tree-title tag-tree-title--move",children:"Select a tag to move"}),s.jsx("button",{className:"tag-tree-action-btn tag-tree-action-btn--cancel",onClick:x,children:"Cancel"})]}):s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"tag-tree-title",children:"Tags"}),n&&s.jsxs("span",{className:"tag-tree-active",title:n,children:["Filtering: ",n]}),s.jsxs("div",{className:"tag-tree-actions",children:[s.jsx("button",{className:"tag-tree-action-btn",onClick:C,title:"Create a new tag",disabled:!!p||!!d,children:"+ New"}),s.jsx("button",{className:"tag-tree-action-btn",onClick:v,title:"Move a tag to a different parent",disabled:!!p||!!d||t.length===0,children:"Move"})]})]})}),t.length===0&&!H?s.jsx("p",{className:"muted",style:{padding:"8px 0"},children:"No tags yet."}):s.jsxs("ul",{className:"tag-tree-list",children:[t.map(Y=>s.jsx(pf,{node:Y,...X},Y.tag.tag_uid)),H&&s.jsx("li",{children:s.jsx(ff,{parentPath:null,archiveId:e,onDone:j,onCancel:E})})]})]}),p==="select-parent"&&s.jsx(Mu,{title:"Create tag under…",tagNodes:t,excludeUid:null,onPick:T,onCancel:E}),d==="select-dest"&&g&&s.jsx(Mu,{title:`Move "${g.tag.slug}" under…`,tagNodes:t,excludeUid:g.tag.tag_uid,onPick:N,onCancel:x})]})}const Ur=[{value:0,label:"Private"},{value:2,label:"Users only"},{value:3,label:"Public"}],fg=e=>{var t;return((t=Ur.find(n=>n.value===e))==null?void 0:t.label)??String(e)};function pg({archiveId:e}){const[t,n]=c.useState([]),[r,l]=c.useState(!1),[i,a]=c.useState(null),[o,u]=c.useState(null),[d,y]=c.useState(null),[g,h]=c.useState(!1),[v,x]=c.useState(null),[S,N]=c.useState(""),[p,f]=c.useState(""),[m,k]=c.useState(2),[C,E]=c.useState(!1),[T,j]=c.useState(!0),[P,R]=c.useState(null),[X,H]=c.useState(""),[Y,te]=c.useState(2),[fe,Be]=c.useState(!1),[we,M]=c.useState(null),[L,V]=c.useState(!1),[G,ne]=c.useState(""),se=c.useRef(null),Z=t.find(D=>D.collection_uid===o)??null,Se=(Z==null?void 0:Z.slug)==="_default_",ce=c.useCallback(async()=>{if(e){l(!0),a(null);try{const D=await wo(e);n(D)}catch(D){a(D.message)}finally{l(!1)}}},[e]),Ie=c.useCallback(async D=>{if(!D){y(null);return}h(!0),x(null);try{const K=await bm(e,D);y(K)}catch(K){x(K.message)}finally{h(!1)}},[e]);c.useEffect(()=>{ce()},[ce]),c.useEffect(()=>{Ie(o)},[o,Ie]),c.useEffect(()=>{L&&se.current&&se.current.focus()},[L]),c.useEffect(()=>{d!=null&&te(d.default_visibility_bits)},[d]);async function at(D){D.preventDefault();const K=S.trim(),Ne=p.trim();if(!(!K||!Ne)){E(!0),R(null);try{const Ve=await Em(e,K,Ne,m,T);N(""),f(""),k(2),j(!0),await ce(),u(Ve.collection_uid)}catch(Ve){R(Ve.message)}finally{E(!1)}}}async function ht(){const D=G.trim();if(!D||!Z){V(!1);return}try{await Ci(e,Z.collection_uid,{name:D}),await ce(),y(K=>K&&{...K,name:D})}catch(K){a(K.message)}finally{V(!1)}}async function Vt(D){if(Z)try{await Ci(e,Z.collection_uid,{default_visibility_bits:D}),await ce(),y(K=>K&&{...K,default_visibility_bits:D})}catch(K){a(K.message)}}async function Qt(D){if(Z)try{await Ci(e,Z.collection_uid,{requires_auth:D}),await ce(),y(K=>K&&{...K,requires_auth:D})}catch(K){a(K.message)}}async function jt(){if(Z&&window.confirm(`Delete collection "${Z.name}"? Entries will not be deleted.`))try{await Lm(e,Z.collection_uid),u(null),y(null),await ce()}catch(D){a(D.message)}}async function Oe(D){D.preventDefault();const K=X.trim();if(!(!K||!Z)){Be(!0),M(null);try{await Sa(e,Z.collection_uid,K,Y),H(""),await Ie(Z.collection_uid)}catch(Ne){M(Ne.message)}finally{Be(!1)}}}async function Je(D){if(Z)try{await Tm(e,Z.collection_uid,D),await Ie(Z.collection_uid)}catch(K){x(K.message)}}async function tt(D,K){if(Z)try{await Pm(e,Z.collection_uid,D,K),y(Ne=>Ne&&{...Ne,entries:Ne.entries.map(Ve=>Ve.entry_uid===D?{...Ve,collection_visibility_bits:K}:Ve)})}catch(Ne){x(Ne.message)}}return e?s.jsxs("div",{className:"collections-view",children:[s.jsx("h2",{className:"collections-heading",children:"Collections"}),r&&s.jsx("div",{className:"muted",children:"Loading…"}),i&&s.jsxs("div",{className:"collections-error",children:[i," ",s.jsx("button",{onClick:()=>a(null),className:"coll-dismiss",children:"×"})]}),s.jsxs("div",{className:"collections-layout",children:[s.jsxs("div",{className:"collections-sidebar",children:[t.map(D=>s.jsxs("button",{className:`coll-sidebar-row${o===D.collection_uid?" is-active":""}`,onClick:()=>u(D.collection_uid),children:[s.jsx("span",{className:"coll-row-name",children:D.name}),s.jsx("span",{className:"coll-row-meta",children:fg(D.default_visibility_bits)})]},D.collection_uid)),t.length===0&&!r&&s.jsx("div",{className:"muted",style:{padding:"8px 12px"},children:"No collections yet."})]}),Z?s.jsxs("div",{className:"coll-detail",children:[s.jsxs("div",{className:"coll-detail-header",children:[L?s.jsx("input",{ref:se,className:"coll-rename-input",value:G,onChange:D=>ne(D.target.value),onBlur:ht,onKeyDown:D=>{D.key==="Enter"&&ht(),D.key==="Escape"&&V(!1)}}):s.jsxs("h3",{className:`coll-detail-name${Se?"":" coll-detail-name--editable"}`,title:Se?void 0:"Click to rename",onClick:()=>{Se||(ne(Z.name),V(!0))},children:[(d==null?void 0:d.name)??Z.name,!Se&&s.jsx("span",{className:"coll-edit-hint",children:" ✎"})]}),!Se&&s.jsx("button",{className:"coll-delete-btn",onClick:jt,title:"Delete collection",children:"Delete"})]}),s.jsxs("div",{className:"coll-detail-vis",children:[s.jsx("span",{className:"coll-vis-label",children:"Entries' default visibility"}),s.jsx("select",{className:"coll-vis-select",value:(d==null?void 0:d.default_visibility_bits)??Z.default_visibility_bits,onChange:D=>Vt(Number(D.target.value)),children:Ur.map(D=>s.jsx("option",{value:D.value,children:D.label},D.value))})]}),s.jsxs("div",{className:"coll-detail-vis",children:[s.jsx("span",{className:"coll-vis-label",children:"Collection access"}),s.jsxs("label",{className:"coll-auth-label",children:[s.jsx("input",{type:"checkbox",checked:!!((d==null?void 0:d.requires_auth)??Z.requires_auth),onChange:D=>Qt(D.target.checked)})," Require authentication to view"]})]}),s.jsxs("div",{className:"coll-entries-section",children:[s.jsx("div",{className:"coll-section-heading",children:"Entries"}),g&&s.jsx("div",{className:"muted",children:"Loading…"}),v&&s.jsx("div",{className:"collections-error",children:v}),!g&&d&&(d.entries.length===0?s.jsx("div",{className:"muted",children:"No entries in this collection."}):s.jsx("ul",{className:"coll-entries-list",children:d.entries.map(D=>s.jsxs("li",{className:"coll-entry-row",children:[s.jsxs("div",{className:"coll-entry-info",children:[s.jsx("span",{className:"coll-entry-title",children:D.title||D.entry_uid}),s.jsx("span",{className:"coll-entry-kind muted",children:D.source_kind})]}),s.jsxs("div",{className:"coll-entry-actions",children:[s.jsx("select",{className:"coll-entry-vis-select",value:D.collection_visibility_bits,onChange:K=>tt(D.entry_uid,Number(K.target.value)),children:Ur.map(K=>s.jsx("option",{value:K.value,children:K.label},K.value))}),!Se&&s.jsx("button",{className:"coll-entry-remove",onClick:()=>Je(D.entry_uid),title:"Remove from collection",children:"×"})]})]},D.entry_uid))}))]}),!Se&&s.jsxs("form",{className:"coll-add-entry-form",onSubmit:Oe,children:[s.jsx("div",{className:"coll-section-heading",children:"Add entry"}),s.jsxs("div",{className:"coll-add-entry-row",children:[s.jsx("input",{className:"coll-add-entry-input",type:"text",value:X,onChange:D=>H(D.target.value),placeholder:"entry_uid",required:!0}),s.jsx("select",{className:"coll-vis-select",value:Y,onChange:D=>te(Number(D.target.value)),children:Ur.map(D=>s.jsx("option",{value:D.value,children:D.label},D.value))}),s.jsx("button",{className:"coll-add-btn",type:"submit",disabled:fe,children:fe?"…":"Add"})]}),we&&s.jsx("div",{className:"collections-error",style:{marginTop:4},children:we})]})]}):s.jsx("div",{className:"coll-detail coll-detail--empty",children:s.jsx("div",{className:"muted",children:"Select a collection to view details."})})]}),s.jsxs("details",{className:"coll-create-details",children:[s.jsx("summary",{children:"+ Create collection"}),s.jsxs("form",{className:"coll-create-form",onSubmit:at,children:[s.jsxs("div",{className:"form-field",children:[s.jsx("label",{className:"form-label",htmlFor:"coll-name",children:"Name"}),s.jsx("input",{className:"capture-input",id:"coll-name",type:"text",value:S,onChange:D=>{N(D.target.value),p||f(D.target.value.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""))},placeholder:"My Collection",required:!0})]}),s.jsxs("div",{className:"form-field",children:[s.jsx("label",{className:"form-label",htmlFor:"coll-slug",children:"Slug"}),s.jsx("input",{className:"capture-input",id:"coll-slug",type:"text",value:p,onChange:D=>f(D.target.value),placeholder:"my-collection",required:!0})]}),s.jsxs("div",{className:"form-field",children:[s.jsx("label",{className:"form-label",htmlFor:"coll-vis",children:"Entries' default visibility"}),s.jsx("select",{className:"capture-input",id:"coll-vis",style:{height:42},value:m,onChange:D=>k(Number(D.target.value)),children:Ur.map(D=>s.jsx("option",{value:D.value,children:D.label},D.value))})]}),s.jsx("div",{className:"form-field",children:s.jsxs("label",{className:"form-label",children:[s.jsx("input",{type:"checkbox",checked:T,onChange:D=>j(D.target.checked)})," Require authentication to view"]})}),P&&s.jsx("div",{className:"collections-error",children:P}),s.jsx("button",{className:"btn-primary",type:"submit",disabled:C,children:C?"Creating…":"Create collection"})]})]})]}):s.jsx("div",{className:"view-placeholder",children:"Select an archive."})}const hg=4;function mg({tab:e,onTabChange:t,archiveId:n}){const{currentUser:r,setCurrentUser:l}=c.useContext(Vs)??{},i=r&&(r.role_bits&hg)!==0,a=["profile","tokens",...i?["instance","cookies","extensions","storage"]:[]],o={profile:"Profile",tokens:"API Tokens",instance:"Instance",cookies:"Cookies",extensions:"Extensions",storage:"Storage"};return s.jsxs("section",{className:"admin-view",children:[s.jsx("h1",{children:"Settings"}),s.jsx("div",{className:"view-tabs",children:a.map(u=>s.jsx("button",{className:`view-tab${e===u?" is-active":""}`,onClick:()=>t(u),children:o[u]},u))}),e==="profile"&&s.jsx(gg,{currentUser:r,setCurrentUser:l}),e==="tokens"&&s.jsx(yg,{}),e==="instance"&&i&&s.jsx(vg,{}),e==="cookies"&&i&&s.jsx(wg,{}),e==="extensions"&&i&&s.jsx(kg,{}),e==="storage"&&i&&s.jsx(xg,{archiveId:n})]})}function gg({currentUser:e,setCurrentUser:t}){const[n,r]=c.useState((e==null?void 0:e.display_name)??""),[l,i]=c.useState(!1),[a,o]=c.useState(null),[u,d]=c.useState(""),[y,g]=c.useState(""),[h,v]=c.useState(""),[x,S]=c.useState(!1),[N,p]=c.useState(null);async function f(k){k.preventDefault(),i(!0),o(null);try{await gm(n),t(C=>({...C,display_name:n||null})),o({ok:!0,text:"Saved."})}catch(C){o({ok:!1,text:C.message})}finally{i(!1)}}async function m(k){if(k.preventDefault(),y!==h){p({ok:!1,text:"Passwords do not match."});return}S(!0),p(null);try{await vm(u,y),d(""),g(""),v(""),p({ok:!0,text:"Password changed."})}catch(C){p({ok:!1,text:C.message})}finally{S(!1)}}return s.jsxs("div",{style:{maxWidth:440},children:[s.jsxs("div",{className:"form-section",children:[s.jsx("h2",{children:"Display Name"}),s.jsxs("form",{onSubmit:f,children:[s.jsxs("div",{className:"form-field",children:[s.jsx("label",{className:"form-label",htmlFor:"display-name",children:"Name shown in the UI"}),s.jsx("input",{className:"field-input",id:"display-name",placeholder:(e==null?void 0:e.username)??"",value:n,onChange:k=>r(k.target.value)})]}),a&&s.jsx("div",{className:`form-msg form-msg--${a.ok?"ok":"err"}`,children:a.text}),s.jsx("button",{className:"btn-primary",type:"submit",disabled:l,children:l?"Saving…":"Save"})]})]}),s.jsxs("div",{className:"form-section",children:[s.jsx("h2",{children:"Display Preferences"}),s.jsxs("label",{className:"checkbox-row",children:[s.jsx("input",{type:"checkbox",checked:(e==null?void 0:e.humanize_slugs)??!1,onChange:async k=>{const C=k.target.checked;try{await ym({humanize_slugs:C}),t(E=>({...E,humanize_slugs:C}))}catch{}}}),s.jsx("span",{className:"form-label",style:{margin:0},children:"Humanize tag display"})]}),s.jsx("p",{className:"muted",style:{fontSize:13,margin:"4px 0 0"},children:'When on, tag paths show as "X / Articles" instead of "x/articles".'})]}),s.jsxs("div",{className:"form-section",children:[s.jsx("h2",{children:"Change Password"}),s.jsxs("form",{onSubmit:m,children:[s.jsxs("div",{className:"form-field",children:[s.jsx("label",{className:"form-label",htmlFor:"cur-pw",children:"Current password"}),s.jsx("input",{className:"field-input",id:"cur-pw",type:"password",value:u,onChange:k=>d(k.target.value),required:!0})]}),s.jsxs("div",{className:"form-field",children:[s.jsx("label",{className:"form-label",htmlFor:"new-pw",children:"New password"}),s.jsx("input",{className:"field-input",id:"new-pw",type:"password",value:y,onChange:k=>g(k.target.value),required:!0})]}),s.jsxs("div",{className:"form-field",children:[s.jsx("label",{className:"form-label",htmlFor:"confirm-pw",children:"Confirm new password"}),s.jsx("input",{className:"field-input",id:"confirm-pw",type:"password",value:h,onChange:k=>v(k.target.value),required:!0})]}),N&&s.jsx("div",{className:`form-msg form-msg--${N.ok?"ok":"err"}`,children:N.text}),s.jsx("button",{className:"btn-primary",type:"submit",disabled:x,children:x?"Changing…":"Change Password"})]})]})]})}function yg(){const[e,t]=c.useState([]),[n,r]=c.useState(!0),[l,i]=c.useState(null),[a,o]=c.useState(""),[u,d]=c.useState(!1),[y,g]=c.useState(null),h=c.useCallback(async()=>{r(!0),i(null);try{t(await xm())}catch(S){i(S.message)}finally{r(!1)}},[]);c.useEffect(()=>{h()},[h]);async function v(S){if(S.preventDefault(),!!a.trim()){d(!0);try{const N=await wm(a.trim());g(N),o(""),h()}catch(N){i(N.message)}finally{d(!1)}}}async function x(S){try{await km(S),t(N=>N.filter(p=>p.token_uid!==S))}catch(N){i(N.message)}}return s.jsx("div",{style:{maxWidth:600},children:s.jsxs("div",{className:"form-section",children:[s.jsx("h2",{children:"API Tokens"}),y&&s.jsxs("div",{className:"token-banner",children:[s.jsx("strong",{children:"Token created."})," Copy it now — it won't be shown again.",s.jsx("code",{children:y.raw_token}),s.jsx("button",{className:"token-dismiss",onClick:()=>g(null),children:"Dismiss"})]}),s.jsxs("form",{className:"token-create-row",onSubmit:v,children:[s.jsx("input",{className:"field-input field-input--flex",placeholder:"Token name",value:a,onChange:S=>o(S.target.value),required:!0}),s.jsx("button",{className:"btn-primary",type:"submit",disabled:u,children:u?"Creating…":"Create token"})]}),l&&s.jsx("div",{className:"form-msg form-msg--err",children:l}),n?s.jsx("div",{className:"muted",children:"Loading…"}):s.jsxs("div",{children:[e.length===0&&s.jsx("div",{className:"muted",children:"No tokens yet."}),e.map(S=>s.jsxs("div",{className:"token-row",children:[s.jsxs("div",{className:"token-row-info",children:[s.jsx("strong",{children:S.name}),s.jsxs("div",{className:"muted",children:["Created ",S.created_at.slice(0,10),S.last_used_at&&` · Last used ${S.last_used_at.slice(0,10)}`]})]}),s.jsx("button",{className:"btn-danger",style:{fontSize:12,padding:"4px 10px"},onClick:()=>x(S.token_uid),children:"Revoke"})]},S.token_uid))]})]})})}function vg(){const[e,t]=c.useState(null),[n,r]=c.useState(!0),[l,i]=c.useState(null),[a,o]=c.useState(!1),[u,d]=c.useState(null);c.useEffect(()=>{(async()=>{try{t(await xo())}catch(g){i(g.message)}finally{r(!1)}})()},[]);async function y(g){g.preventDefault(),o(!0),d(null);try{await ts(e),d({ok:!0,text:"Saved."})}catch(h){d({ok:!1,text:h.message})}finally{o(!1)}}return n?s.jsx("div",{className:"muted",children:"Loading…"}):l?s.jsx("div",{className:"form-msg form-msg--err",children:l}):e?s.jsx("div",{style:{maxWidth:440},children:s.jsxs("div",{className:"form-section",children:[s.jsx("h2",{children:"Instance Settings"}),s.jsxs("form",{onSubmit:y,children:[[["public_index_enabled","Public index (unauthenticated browsing)"],["public_entry_content_enabled","Public entry content"],["open_registration_enabled","Open registration"]].map(([g,h])=>s.jsxs("label",{className:"checkbox-row",children:[s.jsx("input",{type:"checkbox",checked:!!e[g],onChange:v=>t(x=>({...x,[g]:v.target.checked}))}),h]},g)),s.jsxs("div",{className:"form-field",style:{marginTop:4},children:[s.jsx("label",{className:"form-label",children:"Default entry visibility"}),s.jsxs("select",{className:"field-input",value:e.default_entry_visibility,onChange:g=>t(h=>({...h,default_entry_visibility:Number(g.target.value)})),children:[s.jsx("option",{value:0,children:"Private"}),s.jsx("option",{value:2,children:"Unlisted"}),s.jsx("option",{value:3,children:"Public"})]})]}),u&&s.jsx("div",{className:`form-msg form-msg--${u.ok?"ok":"err"}`,children:u.text}),s.jsx("button",{className:"btn-primary",type:"submit",disabled:a,children:a?"Saving…":"Save Settings"})]})]})}):null}function bi(e){if(e===0)return"0 B";const t=["B","KB","MB","GB","TB"],n=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,n)).toFixed(n===0?0:1)} ${t[n]}`}function xg({archiveId:e}){const[t,n]=c.useState("idle"),[r,l]=c.useState(null),[i,a]=c.useState(null),[o,u]=c.useState(null);function d(){n("idle"),l(null),a(null),u(null)}async function y(){n("scanning"),u(null),l(null);try{const v=await Rm(e);l(v),n("scanned")}catch(v){u(v.message),n("error")}}async function g(){n("deleting"),u(null);try{const v=await zm(e);a(v),n("done")}catch(v){u(v.message),n("error")}}const h=r&&r.deletable_files===0&&r.orphaned_blob_rows===0;return s.jsx("div",{style:{maxWidth:440},children:s.jsxs("div",{className:"form-section",children:[s.jsx("h2",{children:"Orphan Cleanup"}),s.jsxs("p",{className:"muted",style:{marginBottom:16},children:["Scan for blob files and database records that are no longer referenced by any archive entry and safely delete them."," ",s.jsx("strong",{children:"Cleanup is blocked while captures are running."})]}),!e&&s.jsx("div",{className:"muted",children:"No archive selected."}),e&&t==="idle"&&s.jsx("button",{className:"btn-ghost",onClick:y,children:"Scan for orphaned blobs"}),t==="scanning"&&s.jsx("div",{className:"muted",children:"Scanning…"}),t==="scanned"&&r&&h&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"form-msg form-msg--ok",children:"Archive is clean — nothing to remove."}),s.jsx("button",{className:"btn-ghost",style:{marginTop:10},onClick:d,children:"Done"})]}),t==="scanned"&&r&&!h&&s.jsxs("div",{children:[s.jsxs("div",{style:{marginBottom:14,lineHeight:1.6},children:["Found ",s.jsx("strong",{children:r.deletable_files})," unreferenced file",r.deletable_files!==1?"s":""," ","and ",s.jsx("strong",{children:r.orphaned_blob_rows})," orphaned DB record",r.orphaned_blob_rows!==1?"s":""," ","— ",s.jsx("strong",{children:bi(r.total_bytes)})," recoverable."]}),s.jsxs("div",{style:{display:"flex",gap:8},children:[s.jsxs("button",{className:"btn-danger",onClick:g,children:["Delete (",bi(r.total_bytes),")"]}),s.jsx("button",{className:"btn-ghost",onClick:d,children:"Cancel"})]})]}),t==="deleting"&&s.jsx("div",{className:"muted",children:"Deleting…"}),t==="done"&&i&&s.jsxs("div",{children:[s.jsxs("div",{className:"form-msg form-msg--ok",children:["Freed ",s.jsx("strong",{children:bi(i.freed_bytes)})," ","— removed ",i.deleted_files," file",i.deleted_files!==1?"s":""," ","and ",i.deleted_blob_rows," DB record",i.deleted_blob_rows!==1?"s":"","."]}),i.errors&&i.errors.length>0&&s.jsxs("div",{className:"form-msg form-msg--err",style:{marginTop:6},children:[i.errors.length," file",i.errors.length!==1?"s":""," could not be deleted."]}),s.jsx("button",{className:"btn-ghost",style:{marginTop:10},onClick:d,children:"Scan again"})]}),t==="error"&&s.jsxs("div",{children:[s.jsx("div",{className:"form-msg form-msg--err",children:o}),s.jsx("button",{className:"btn-ghost",style:{marginTop:10},onClick:d,children:"Try again"})]})]})})}function wg(){const[e,t]=c.useState(null),[n,r]=c.useState(!0),[l,i]=c.useState(null),[a,o]=c.useState("global"),[u,d]=c.useState(""),[y,g]=c.useState("{}"),[h,v]=c.useState(null),[x,S]=c.useState(!1),[N,p]=c.useState({});c.useEffect(()=>{f()},[]);async function f(){r(!0),i(null);try{t(await Dm())}catch(j){i(j.message)}finally{r(!1)}}async function m(j){j.preventDefault();try{JSON.parse(y)}catch{v({ok:!1,text:'cookies must be valid JSON, e.g. {"session": "abc"}'});return}S(!0),v(null);try{await Om(a==="global"?null:u.trim(),a,y),d(""),g("{}"),o("global"),v({ok:!0,text:"Rule added."}),await f()}catch(P){v({ok:!1,text:P.message})}finally{S(!1)}}async function k(j){try{await Mm(j),await f()}catch(P){i(P.message)}}function C(j){p(P=>({...P,[j.rule_uid]:{cookiesInput:j.cookies_json,saving:!1,msg:null}}))}function E(j){p(P=>{const R={...P};return delete R[j],R})}async function T(j){const P=N[j.rule_uid];try{JSON.parse(P.cookiesInput)}catch{p(R=>({...R,[j.rule_uid]:{...R[j.rule_uid],msg:{ok:!1,text:"Invalid JSON"}}}));return}p(R=>({...R,[j.rule_uid]:{...R[j.rule_uid],saving:!0,msg:null}}));try{await Am(j.rule_uid,{cookies_json:P.cookiesInput}),E(j.rule_uid),await f()}catch(R){p(X=>({...X,[j.rule_uid]:{...X[j.rule_uid],saving:!1,msg:{ok:!1,text:R.message}}}))}}return n?s.jsx("div",{className:"muted",children:"Loading…"}):l?s.jsx("div",{className:"form-msg form-msg--err",children:l}):s.jsx("div",{style:{maxWidth:560},children:s.jsxs("div",{className:"form-section",children:[s.jsx("h2",{children:"Cookie Rules"}),s.jsx("p",{className:"muted",style:{marginBottom:12},children:"Cookies are injected into every capture network request (yt-dlp, HTTP downloads, web-page snapshots). Global rules apply to all URLs; wildcard and regex rules apply only to matching URLs."}),e&&e.length>0?s.jsxs("table",{className:"data-table",style:{width:"100%",marginBottom:16},children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:"Pattern"}),s.jsx("th",{children:"Cookies"}),s.jsx("th",{style:{width:100},children:"Actions"})]})}),s.jsx("tbody",{children:e.map(j=>{const P=N[j.rule_uid],R=j.url_pattern?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"muted",children:[j.pattern_kind,":"]})," ",s.jsx("code",{children:j.url_pattern})]}):s.jsx("span",{className:"muted",children:"global (all URLs)"});return s.jsxs("tr",{children:[s.jsx("td",{children:R}),s.jsx("td",{children:P?s.jsxs(s.Fragment,{children:[s.jsx("textarea",{className:"field-input",style:{fontFamily:"monospace",fontSize:12,width:"100%",minHeight:60},value:P.cookiesInput,onChange:X=>p(H=>({...H,[j.rule_uid]:{...H[j.rule_uid],cookiesInput:X.target.value}}))}),P.msg&&s.jsx("div",{className:`form-msg form-msg--${P.msg.ok?"ok":"err"}`,children:P.msg.text}),s.jsxs("div",{style:{display:"flex",gap:8,marginTop:4},children:[s.jsx("button",{className:"btn-primary",style:{fontSize:12,padding:"2px 8px"},disabled:P.saving,onClick:()=>T(j),children:P.saving?"Saving…":"Save"}),s.jsx("button",{className:"btn-secondary",style:{fontSize:12,padding:"2px 8px"},onClick:()=>E(j.rule_uid),children:"Cancel"})]})]}):s.jsx("code",{style:{fontSize:12,wordBreak:"break-all"},children:j.cookies_json})}),s.jsx("td",{children:!P&&s.jsxs("div",{style:{display:"flex",gap:6},children:[s.jsx("button",{className:"btn-secondary",style:{fontSize:12,padding:"2px 8px"},onClick:()=>C(j),children:"Edit"}),s.jsx("button",{className:"btn-danger",style:{fontSize:12,padding:"2px 8px"},onClick:()=>k(j.rule_uid),children:"Del"})]})})]},j.rule_uid)})})]}):s.jsx("p",{className:"muted",style:{marginBottom:16},children:"No cookie rules defined."}),s.jsx("h3",{style:{marginBottom:8},children:"Add Rule"}),s.jsxs("form",{onSubmit:m,children:[s.jsxs("div",{className:"form-field",children:[s.jsx("label",{className:"form-label",children:"Pattern type"}),s.jsxs("select",{className:"field-input",value:a,onChange:j=>o(j.target.value),children:[s.jsx("option",{value:"global",children:"Global (all URLs)"}),s.jsx("option",{value:"wildcard",children:"Wildcard (e.g. *.youtube.com)"}),s.jsx("option",{value:"regex",children:"Regex (matched against full URL)"})]})]}),a!=="global"&&s.jsxs("div",{className:"form-field",children:[s.jsx("label",{className:"form-label",children:a==="wildcard"?"URL/hostname pattern":"Regex pattern"}),s.jsx("input",{className:"field-input",type:"text",value:u,onChange:j=>d(j.target.value),placeholder:a==="wildcard"?"*.youtube.com or https://example.com/*":".*\\.youtube\\.com.*",required:!0})]}),s.jsxs("div",{className:"form-field",children:[s.jsx("label",{className:"form-label",children:"Cookies (JSON object)"}),s.jsx("textarea",{className:"field-input",style:{fontFamily:"monospace",fontSize:13,minHeight:70},value:y,onChange:j=>g(j.target.value),placeholder:'{"SESSION": "abc123", "token": "xyz"}',required:!0})]}),h&&s.jsx("div",{className:`form-msg form-msg--${h.ok?"ok":"err"}`,children:h.text}),s.jsx("button",{className:"btn-primary",type:"submit",disabled:x,children:x?"Adding…":"Add Rule"})]})]})})}function kg(){const[e,t]=c.useState(null),[n,r]=c.useState(!0),[l,i]=c.useState(!1),[a,o]=c.useState(null);c.useEffect(()=>{(async()=>{try{t(await xo())}catch(N){o({ok:!1,text:N.message})}finally{r(!1)}})()},[]);async function u(N){i(!0),o(null);try{await ts({ublock_enabled:N}),t(p=>({...p,ublock_enabled:N})),o({ok:!0,text:"Saved."})}catch(p){o({ok:!1,text:p.message})}finally{i(!1)}}async function d(N){i(!0),o(null);try{await ts({cookie_ext_enabled:N}),t(p=>({...p,cookie_ext_enabled:N})),o({ok:!0,text:"Saved."})}catch(p){o({ok:!1,text:p.message})}finally{i(!1)}}async function y(N){i(!0),o(null);try{await ts({modal_closer_enabled:N}),t(p=>({...p,modal_closer_enabled:N})),o({ok:!0,text:"Saved."})}catch(p){o({ok:!1,text:p.message})}finally{i(!1)}}if(n)return s.jsx("div",{className:"muted",children:"Loading\\u2026"});const g=(e==null?void 0:e.ublock_ext_available)??!1,h=(e==null?void 0:e.ublock_enabled)??!0,v=(e==null?void 0:e.cookie_ext_available)??!1,x=(e==null?void 0:e.cookie_ext_enabled)??!0,S=(e==null?void 0:e.modal_closer_enabled)??!0;return s.jsx("div",{children:s.jsxs("div",{className:"form-section",children:[s.jsx("h2",{children:"Extensions"}),s.jsx("p",{className:"form-hint",style:{marginBottom:20},children:"Extensions run inside the browser during WebPage captures and can block ads, accept cookie banners, and more. Changes take effect on the next capture."}),s.jsxs("div",{className:"ext-grid",children:[s.jsx("div",{className:"ext-card",children:s.jsxs("div",{className:"ext-card-header",children:[s.jsxs("div",{className:"ext-card-info",children:[s.jsx("span",{className:"ext-card-name",children:"uBlock Origin Lite"}),s.jsx("span",{className:"ext-card-desc",children:"Blocks ads, trackers, and other page clutter during archiving via Chrome’s declarativeNetRequest API (Manifest V3)."}),!g&&s.jsxs("span",{className:"ext-card-hint",children:["Not configured — set ",s.jsx("code",{children:"ARCHIVR_UBLOCK_EXT"})," to the unpacked extension directory to enable."]})]}),s.jsx("button",{type:"button",role:"switch","aria-checked":h,className:`ext-toggle${h?" ext-toggle--on":""}`,onClick:()=>u(!h),disabled:l,"aria-label":"Toggle uBlock Origin Lite",children:s.jsx("span",{className:"ext-toggle-knob"})})]})}),s.jsx("div",{className:"ext-card",children:s.jsxs("div",{className:"ext-card-header",children:[s.jsxs("div",{className:"ext-card-info",children:[s.jsx("span",{className:"ext-card-name",children:"I Still Don’t Care About Cookies"}),s.jsx("span",{className:"ext-card-desc",children:"Dismiss cookie consent banners during archiving."}),!v&&s.jsxs("span",{className:"ext-card-hint",children:["Not configured — set ",s.jsx("code",{children:"ARCHIVR_COOKIE_EXT"})," to the unpacked extension directory to enable."]})]}),s.jsx("button",{type:"button",role:"switch","aria-checked":x,className:`ext-toggle${x?" ext-toggle--on":""}`,onClick:()=>d(!x),disabled:l,"aria-label":"Toggle I Still Don't Care About Cookies",children:s.jsx("span",{className:"ext-toggle-knob"})})]})}),s.jsx("div",{className:"ext-card",children:s.jsxs("div",{className:"ext-card-header",children:[s.jsxs("div",{className:"ext-card-info",children:[s.jsx("span",{className:"ext-card-name",children:"Modal & Dialog Closer"}),s.jsx("span",{className:"ext-card-desc",children:"Auto-dismiss cookie banners, consent overlays, and other modal dialogs before a WebPage capture is taken. Implemented as an injected browser script; no external extension required."})]}),s.jsx("button",{type:"button",role:"switch","aria-checked":S,className:`ext-toggle${S?" ext-toggle--on":""}`,onClick:()=>y(!S),disabled:l,"aria-label":"Toggle Modal and Dialog Closer",children:s.jsx("span",{className:"ext-toggle-knob"})})]})})]}),a&&s.jsx("div",{className:`form-msg form-msg--${a.ok?"ok":"err"}`,children:a.text})]})})}const Fu={0:"Private",1:"Public",2:"Users only",3:"Public"},ns=[{value:"anthropic_http",label:"Anthropic API"},{value:"openai_compatible",label:"OpenAI-compatible API"},{value:"claude_cli",label:"Claude CLI"},{value:"codex_cli",label:"Codex CLI"}],jg=Object.fromEntries(ns.map(e=>[e.value,e.label])),Bu="archivr:summary:provider",Sg=1500,hf="This entry can’t be summarized yet.",mf="It doesn’t contain archived text that a summary provider can read. Summaries currently support text notes, web pages, X posts and threads, and X Articles. Video, audio, and image-only entries need a transcript or text source.",Uu=`${hf}
|
||
|
||
${mf}`;function Ng(e){if(!e)return null;try{const t=JSON.parse(e);if(t&&typeof t=="object")return{tldr:typeof t.tldr=="string"?t.tldr:"",summary:typeof t.summary=="string"?t.summary:"",tags:Array.isArray(t.tags)?t.tags.filter(n=>typeof n=="string"):[]}}catch{}return{tldr:"",summary:e,tags:[]}}const _g=()=>s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"M7 17 17 7M9 7h8v8"})});function Cg({archiveId:e,selectedEntry:t,selectedUids:n,selectedEntries:r,detail:l,onTagFilterSet:i,tagNodes:a,onTagsRefresh:o,onEntryTitleChange:u,onEntryDeleted:d,onBulkDeleted:y,humanizeTags:g,onDetailRefresh:h,onOpenPreview:v,onPlay:x,isPublicSession:S}){var qn,Cr,Er;const[N,p]=c.useState([]),[f,m]=c.useState(""),[k,C]=c.useState([]),[E,T]=c.useState(""),j=c.useRef(0),P=c.useRef(!1),[R,X]=c.useState(!1),[H,Y]=c.useState(""),[te,fe]=c.useState("idle"),[Be,we]=c.useState(""),M=c.useRef(null),[L,V]=c.useState(!1);c.useEffect(()=>{V(!1)},[(qn=l==null?void 0:l.summary)==null?void 0:qn.entry_uid]);const[G,ne]=c.useState(null),[se,Z]=c.useState(null),[Se,ce]=c.useState(""),[Ie,at]=c.useState(!1),[ht,Vt]=c.useState(()=>{try{return sessionStorage.getItem(Bu)||ns[0].value}catch{return ns[0].value}}),[Qt,jt]=c.useState(!1),Oe=c.useRef(null),Je=c.useRef(null),tt=c.useRef(null),D=c.useRef(null),K=e&&(t!=null&&t.entry_uid)?`${e}:${t.entry_uid}`:null;D.current=K;const Ne=(n==null?void 0:n.size)>=2,[Ve,qt]=c.useState(""),[Qe,Kt]=c.useState("idle"),[Qn,Ot]=c.useState(""),[Le,bn]=c.useState([]),[At,w]=c.useState(""),[B,O]=c.useState("idle"),[$,F]=c.useState(""),[U,ye]=c.useState("idle"),[ue,Te]=c.useState(""),[pe,$e]=c.useState("idle"),[ie,nt]=c.useState("");c.useEffect(()=>{const b=++j.current;if(M.current&&(clearInterval(M.current),M.current=null),fe("idle"),we(""),!t||!e){p([]),C([]);return}if(S){p([]),C([]);return}X(!1),Y(""),P.current=!1,p([]),Promise.all([Bl(e,t.entry_uid),Du(e,t.entry_uid)]).then(([q,ae])=>{b===j.current&&(p(q),C(ae))}).catch(()=>{})},[t,e,S]),c.useEffect(()=>()=>{clearInterval(M.current)},[]),c.useLayoutEffect(()=>{var q,ae,he;clearInterval(Oe.current),Oe.current=null,(q=Je.current)==null||q.abort(),Je.current=null,(ae=tt.current)==null||ae.abort(),tt.current=null;const b=((he=l==null?void 0:l.summary)==null?void 0:he.entry_uid)===(t==null?void 0:t.entry_uid);ne(b?l.latest_summary??null:null),Z(b?l.summary_attempt??null:null),ce(""),at(!1),jt(!1)},[e,t==null?void 0:t.entry_uid,(Cr=l==null?void 0:l.summary)==null?void 0:Cr.entry_uid]);const ot=se==null?void 0:se.status;c.useEffect(()=>{var sn;if(clearInterval(Oe.current),Oe.current=null,ot!=="pending"&&ot!=="running"||!e||!((sn=l==null?void 0:l.summary)!=null&&sn.entry_uid))return;const b=l.summary.entry_uid,q=`${e}:${b}`;if(K!==q)return;const ae=new AbortController;Je.current=ae;const St=setInterval(async()=>{var me;try{const an=await Xh(e,b,{signal:ae.signal});if(ae.signal.aborted||D.current!==q)return;ne(an.summary??null),Z(an.attempt??null);const Ys=(me=an.attempt)==null?void 0:me.status;Ys!=="pending"&&Ys!=="running"&&(clearInterval(St),Oe.current===St&&(Oe.current=null),at(!1),Ys==="completed"&&D.current===q&&(h==null||h()))}catch{if(ae.signal.aborted||D.current!==q)return}},Sg);return Oe.current=St,()=>{clearInterval(St),Oe.current===St&&(Oe.current=null),ae.abort(),Je.current===ae&&(Je.current=null)}},[ot,e,t==null?void 0:t.entry_uid,(Er=l==null?void 0:l.summary)==null?void 0:Er.entry_uid,K]),c.useEffect(()=>()=>{var b,q;clearInterval(Oe.current),(b=Je.current)==null||b.abort(),(q=tt.current)==null||q.abort()},[]);async function Qs(b=!1){var St,sn;if(!e||!((St=l==null?void 0:l.summary)!=null&&St.entry_uid)||Ie)return;const q=l.summary.entry_uid,ae=`${e}:${q}`;if(D.current!==ae)return;const he=new AbortController;(sn=tt.current)==null||sn.abort(),tt.current=he,at(!0),ce("");try{const me=await Jh(e,q,{provider:ht,force:b,includeImages:Qt,signal:he.signal});if(he.signal.aborted||D.current!==ae)return;me.status==="completed"?(ne(me),Z(null),at(!1),D.current===ae&&(h==null||h())):Z({...me??{},status:"pending"})}catch(me){if(he.signal.aborted||D.current!==ae)return;ce(me.message||"Summary request failed"),at(!1)}finally{tt.current===he&&(tt.current=null)}}function qs(b){Vt(b),b==="claude_cli"&&jt(!1);try{sessionStorage.setItem(Bu,b)}catch{}}c.useEffect(()=>{if(!e){bn([]);return}wo(e).then(bn).catch(()=>bn([]))},[e]),c.useEffect(()=>{qt(""),Kt("idle"),Ot(""),w(""),O("idle"),F(""),ye("idle"),Te(""),$e("idle"),nt("")},[n]);async function Ks(){const b=n.size;if(!window.confirm(`Delete ${b} entr${b===1?"y":"ies"}? This cannot be undone.`))return;ye("running");const q=new Set;for(const ae of n)try{await $u(e,ae),q.add(ae)}catch{}ye("idle"),y==null||y(q)}async function Tn(){const b=Ve.trim();if(b){Kt("running"),Ot("");try{for(const q of n)await Iu(e,q,b);qt(""),Kt("done"),o==null||o(),setTimeout(()=>Kt("idle"),1800)}catch(q){Ot(q.message),Kt("error")}}}async function _r(){if(!At)return;O("running"),F("");const b=[],q=Le.find(ae=>ae.collection_uid===At);for(const ae of n)try{await Sa(e,At,ae,(q==null?void 0:q.default_visibility_bits)??2)}catch{b.push(ae)}b.length>0?(F(`Failed for ${b.length} entr${b.length===1?"y":"ies"}.`),O("error")):(O("done"),setTimeout(()=>O("idle"),1800))}async function Pn(){if(!ue||!t)return;$e("running"),nt("");const b=Le.find(q=>q.collection_uid===ue);try{await Sa(e,ue,t.entry_uid,(b==null?void 0:b.default_visibility_bits)??2),$e("done"),Te("");const q=await Du(e,t.entry_uid);C(q),setTimeout(()=>$e("idle"),1800)}catch(q){nt(q.message),$e("error")}}async function jl(){const b=H.trim()||null;try{await tm(e,t.entry_uid,b),u==null||u(t.entry_uid,b)}catch{}finally{X(!1)}}async function Sl(){const b=f.trim();if(!(!b||!t))try{await Iu(e,t.entry_uid,b),m(""),T("");const q=await Bl(e,t.entry_uid);p(q),o()}catch(q){T(q.message)}}async function Xs(b){try{await nm(e,t.entry_uid,b);const q=await Bl(e,t.entry_uid);p(q),o()}catch{}}async function Js(){if(!(!t||!e)&&window.confirm("Delete this entry? This cannot be undone."))try{await $u(e,t.entry_uid),d==null||d(t.entry_uid)}catch{}}async function Gs(){if(!t||!e||te==="running")return;const b=j.current,q=t.entry_uid;fe("running"),we("");try{const{job_uid:ae}=await Im(e,q);if(j.current!==b)return;M.current=setInterval(async()=>{try{const he=await of(e,ae);if(he.status==="completed"){if(clearInterval(M.current),M.current=null,j.current!==b)return;fe("done");const St=await Bl(e,q);if(j.current!==b)return;p(St),h==null||h()}else if(he.status==="failed"){if(clearInterval(M.current),M.current=null,j.current!==b)return;fe("error"),we(he.error_text||"Re-archive failed.")}}catch{if(clearInterval(M.current),M.current=null,j.current!==b)return;fe("error"),we("Network error while polling.")}},500)}catch(ae){if(j.current!==b)return;fe("error"),we(ae.message||"Failed to start re-archive.")}}const _=l?[["Added",ko(l.summary.archived_at)],["Source",l.summary.source_kind],["Type",l.summary.entity_kind],["Visibility",Fu[l.summary.visibility]??l.summary.visibility],["Root",l.structured_root_relpath]]:[],z=new Set(["mp3","ogg","m4a","opus","wav","flac","aac"]),A=new Set(["mp4","webm","mov","mkv","avi","m4v","ogv","pdf","html","htm","md","markdown","txt","jpg","jpeg","png","gif","webp","avif","svg","bmp"]),Q=l?l.artifacts.findIndex(b=>b.artifact_role==="primary_media"):-1,J=Q>=0?l.artifacts[Q]:null,le=J?J.relpath.split(".").pop().toLowerCase():"",_e=J&&z.has(le),Ue=Q>=0&&t?`/api/archives/${e}/entries/${t.entry_uid}/artifacts/${Q}`:null,ke=l&&!_e&&(l.summary.entity_kind==="tweet"||l.summary.entity_kind==="tweet_thread"||J&&A.has(le));return s.jsxs("aside",{className:"context-rail",children:[s.jsx("div",{className:"rail-eyebrow",children:"Context"}),Ne?S?s.jsxs("p",{className:"bulk-count",children:[s.jsx("span",{className:"bulk-count-num",children:n.size})," entries selected"]}):s.jsxs("div",{className:"bulk-panel",children:[s.jsxs("p",{className:"bulk-count",children:[s.jsx("span",{className:"bulk-count-num",children:n.size})," entries selected"]}),s.jsxs("div",{className:"rail-section",children:[s.jsx("div",{className:"rail-section-heading",children:"Assign tag"}),Qn&&s.jsx("p",{className:"form-msg form-msg--err",style:{margin:"0 0 8px"},children:Qn}),s.jsxs("div",{className:"tag-input-wrap",children:[s.jsx("span",{className:"hash",children:"/"}),s.jsx("input",{className:"tag-input",type:"text",placeholder:"science/cs",autoComplete:"off",value:Ve,onChange:b=>qt(b.target.value),onKeyDown:b=>{b.key==="Enter"&&Tn()}}),s.jsx("button",{className:"tag-add-btn",onClick:Tn,disabled:Qe==="running"||!Ve.trim(),children:Qe==="running"?"…":Qe==="done"?"✓":"Add"})]})]}),Le.length>0&&s.jsxs("div",{className:"rail-section",children:[s.jsx("div",{className:"rail-section-heading",children:"Add to collection"}),s.jsxs("div",{className:"bulk-coll-row",children:[s.jsxs("select",{className:"bulk-coll-select",value:At,onChange:b=>w(b.target.value),children:[s.jsx("option",{value:"",children:"Pick a collection…"}),Le.filter(b=>b.slug!=="_default_").map(b=>s.jsx("option",{value:b.collection_uid,children:b.name},b.collection_uid))]}),s.jsx("button",{className:"tag-add-btn",onClick:_r,disabled:!At||B==="running",children:B==="running"?"…":B==="done"?"✓":B==="error"?"!":"Add"})]}),$&&s.jsx("p",{className:"form-msg form-msg--err",style:{margin:"6px 0 0"},children:$})]}),s.jsx("div",{className:"rail-delete-zone",children:s.jsx("button",{className:"rail-delete-btn",onClick:Ks,disabled:U==="running",children:U==="running"?"Deleting…":`Delete ${n.size} entr${n.size===1?"y":"ies"}`})})]}):t?l?s.jsxs(s.Fragment,{children:[S?s.jsx("h2",{className:"rail-title",children:gt(l.summary.title)||gt(l.summary.entry_uid)}):R?s.jsx("input",{className:"rail-title-input",autoFocus:!0,value:H,onChange:b=>Y(b.target.value),onKeyDown:b=>{b.key==="Enter"&&b.currentTarget.blur(),b.key==="Escape"&&(P.current=!0,b.currentTarget.blur())},onBlur:()=>{P.current?X(!1):jl(),P.current=!1}}):s.jsxs("h2",{className:"rail-title rail-title--editable",title:"Click to rename",onClick:()=>{Y(l.summary.title??""),X(!0)},children:[gt(l.summary.title)||gt(l.summary.entry_uid),s.jsx("svg",{className:"edit-icon",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:s.jsx("path",{d:"M11.5 2.5a1.5 1.5 0 0 1 2 2L5 13l-3 1 1-3 8.5-8.5z"})})]}),l.summary.original_url&&s.jsxs("a",{className:"url-tile",href:l.summary.original_url,target:"_blank",rel:"noopener noreferrer",children:[s.jsx("span",{className:"ico",dangerouslySetInnerHTML:{__html:Ws(l.summary.source_kind)}}),s.jsx("span",{className:"u-text",children:l.summary.original_url}),s.jsx("span",{className:"ext",children:s.jsx(_g,{})})]}),_e&&x&&s.jsx("button",{className:"rail-preview-btn",onClick:()=>x(Ue,t),children:"▶ Play"}),ke&&v&&s.jsx("button",{className:"rail-preview-btn",onClick:v,children:"Preview"}),(()=>{const b=(G==null?void 0:G.status)==="completed"?Ng(G.summary_text):null,q=(se==null?void 0:se.status)==="pending"||(se==null?void 0:se.status)==="running",ae=(se==null?void 0:se.status)==="failed"&&se.error_text===Uu||Se===Uu;return S&&!b?null:s.jsxs("div",{className:"rail-section rail-summary",children:[s.jsx("div",{className:"rail-section-heading",children:"Summary"}),b&&s.jsxs("div",{className:"rail-summary-body",children:[b.tldr&&s.jsx("p",{className:"rail-summary-tldr",children:b.tldr}),b.summary&&s.jsx("p",{className:"rail-summary-text",children:b.summary}),b.tags.length>0&&s.jsx("div",{className:"rail-summary-tags",children:b.tags.map(he=>s.jsx("span",{className:"rail-summary-tag",children:he},he))}),s.jsxs("p",{className:"rail-summary-provider",children:[jg[G.provider_kind]||G.provider_kind,G.resolved_model||G.provider_model?` · ${G.resolved_model||G.provider_model}`:""]})]}),q&&s.jsxs("p",{className:"rail-summary-status",children:[s.jsx("span",{className:"rail-summary-spinner","aria-hidden":"true"}),"Generating…"]}),ae&&!S&&s.jsxs("div",{className:"rail-summary-info",role:"status",children:[s.jsx("p",{className:"rail-summary-info__heading",children:hf}),s.jsx("p",{className:"rail-summary-info__detail",children:mf})]}),(se==null?void 0:se.status)==="failed"&&se.error_text&&!ae&&!S&&s.jsx("p",{className:"form-msg form-msg--err rail-summary-error",children:se.error_text}),Se&&!ae&&s.jsx("p",{className:"form-msg form-msg--err rail-summary-error",children:Se}),!S&&!q&&s.jsxs("div",{className:"rail-summary-controls",children:[s.jsx("select",{className:"rail-summary-select",value:ht,onChange:he=>qs(he.target.value),"aria-label":"Summary provider",children:ns.map(he=>s.jsx("option",{value:he.value,children:he.label},he.value))}),s.jsxs("div",{className:`rail-summary-image-option${ht==="claude_cli"?" rail-summary-image-option--disabled":""}`,children:[s.jsxs("label",{className:"rail-summary-image-option__label",children:[s.jsx("input",{type:"checkbox",checked:Qt,disabled:ht==="claude_cli",onChange:he=>jt(he.target.checked)}),"Include attached images"]}),s.jsx("p",{className:"rail-summary-image-option__note",children:ht==="claude_cli"?"Claude CLI cannot attach local images. Choose an HTTP provider or Codex CLI.":"Selected archived images are sent to the chosen provider. Up to 4 supported images (5 MiB each, 12 MiB total) can be attached; unsupported or oversized artifacts are skipped."})]}),s.jsx("button",{className:"rail-rearchive-btn",onClick:()=>Qs(!!b),disabled:Ie,children:Ie?"…":b?"Regenerate":"Generate"})]})]})})(),s.jsx("div",{className:"meta-list",children:_.filter(([,b])=>b!=null&&b!=="").map(([b,q])=>s.jsxs("div",{className:"meta-item",children:[s.jsx("span",{className:"meta-k",children:b}),s.jsx("span",{className:`meta-v${b==="Root"?" mono":""}`,children:gt(q)})]},b))}),l.artifacts.length>0&&(()=>{const b=l.artifacts.map((me,an)=>({...me,_idx:an})),q=b.filter(me=>me.artifact_role==="font"),ae=b.filter(me=>me.artifact_role!=="font"),he=q.reduce((me,an)=>me+(an.byte_size||0),0),St=l.summary.entry_uid,sn=me=>s.jsx("li",{children:s.jsxs("a",{href:`/api/archives/${e}/entries/${St}/artifacts/${me._idx}`,target:"_blank",rel:"noopener noreferrer",className:"artifact-link",children:[s.jsx("span",{className:"artifact-name",children:me.artifact_role==="font"?me.relpath.split("/").pop():me.artifact_role.replace(/_/g," ")}),s.jsx("span",{className:"artifact-size",children:me.byte_size!=null?gl(me.byte_size):"—"})]})},me._idx);return s.jsxs("div",{className:"rail-section",children:[s.jsxs("div",{className:"rail-section-heading",children:["Artifacts ",s.jsx("span",{className:"num",children:l.artifacts.length})]}),s.jsxs("ul",{className:"artifact-list",children:[ae.map(sn),q.length>0&&s.jsxs("li",{className:"artifact-group",children:[s.jsxs("button",{type:"button",className:"artifact-group-header artifact-link","aria-expanded":L,onClick:()=>V(me=>!me),children:[s.jsxs("span",{className:"artifact-name",children:[s.jsx("span",{"aria-hidden":"true",className:`artifact-group-chevron${L?" open":""}`,children:"›"}),` fonts (${q.length})`]}),s.jsx("span",{className:"artifact-size",children:gl(he)})]}),L&&s.jsx("ul",{className:"artifact-list artifact-group-body",children:q.map(sn)})]})]})]})})()]}):s.jsx("p",{className:"tags-empty",children:"Loading\\u2026"}):s.jsx("p",{className:"tags-empty",children:"Select an entry."}),t&&!Ne&&!S&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"rail-section",children:[s.jsx("div",{className:"rail-section-heading",children:"Tags"}),N.length===0?s.jsx("p",{className:"tags-empty",children:"No tags yet."}):s.jsx("div",{className:"tags-wrap",children:N.map(b=>s.jsxs("span",{className:"tag-pill",title:b.full_path,children:[g?cf(b.full_path):b.full_path,s.jsx("button",{className:"remove",title:`Remove tag ${b.full_path}`,onClick:()=>Xs(b.tag_uid),children:"×"})]},b.tag_uid))}),E&&s.jsx("p",{className:"form-msg form-msg--err",style:{margin:"0 0 8px"},children:E}),s.jsxs("div",{className:"tag-input-wrap",children:[s.jsx("span",{className:"hash",children:"/"}),s.jsx("input",{className:"tag-input",type:"text",placeholder:"science/cs",autoComplete:"off",value:f,onChange:b=>m(b.target.value),onKeyDown:b=>{b.key==="Enter"&&Sl()}}),s.jsx("button",{className:"tag-add-btn",onClick:Sl,children:"Add"})]})]}),(k.length>0||Le.filter(b=>b.slug!=="_default_").length>0)&&s.jsxs("div",{className:"rail-section",children:[s.jsx("div",{className:"rail-section-heading",children:"Collections"}),k.map(b=>s.jsxs("div",{className:"coll-row",children:[s.jsx("span",{className:"coll-name",children:b.name}),s.jsx("span",{className:"vis-badge",children:Fu[b.visibility_bits]??`bits:${b.visibility_bits}`})]},b.collection_uid)),Le.filter(b=>b.slug!=="_default_").length>0&&s.jsxs("div",{className:"bulk-coll-row",style:{marginTop:8},children:[s.jsxs("select",{className:"bulk-coll-select",value:ue,onChange:b=>Te(b.target.value),children:[s.jsx("option",{value:"",children:"Add to collection…"}),Le.filter(b=>b.slug!=="_default_").map(b=>s.jsx("option",{value:b.collection_uid,children:b.name},b.collection_uid))]}),s.jsx("button",{className:"tag-add-btn",onClick:Pn,disabled:!ue||pe==="running",children:pe==="running"?"…":pe==="done"?"✓":pe==="error"?"!":"Add"})]}),ie&&s.jsx("p",{className:"form-msg form-msg--err",style:{margin:"4px 0 0"},children:ie})]}),l&&(l.summary.entity_kind==="tweet"||l.summary.entity_kind==="tweet_thread")&&s.jsxs("div",{className:"rail-section",children:[s.jsx("div",{className:"rail-section-heading",children:"Actions"}),s.jsx("button",{className:"rail-rearchive-btn",onClick:Gs,disabled:te==="running",children:te==="running"?"Re-archiving…":"Re-archive"}),te==="done"&&s.jsx("p",{className:"form-msg form-msg--ok",style:{marginTop:"6px"},children:"Re-archived successfully."}),te==="error"&&s.jsx("p",{className:"form-msg form-msg--err",style:{marginTop:"6px"},children:Be})]}),s.jsx("div",{className:"rail-delete-zone",children:s.jsx("button",{className:"rail-delete-btn",onClick:Js,children:"Delete entry"})})]})]})}const Eg=/\/api\/archives\/([^/]+)\/entries\/([^/]+)\/artifacts\/(\d+)/;function bg(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[s.jsx("path",{d:"M5 17H3a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h18a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-2"}),s.jsx("polygon",{points:"12 15 17 21 7 21 12 15"})]})}function Tg({src:e,contentType:t="video/mp4"}){const n=c.useRef(null),[r,l]=c.useState(null),[i,a]=c.useState(!1),[o,u]=c.useState(!1);c.useEffect(()=>{if(!e){l(null);return}const g=e.match(Eg);if(!g){l(e);return}let h=!1;return l(null),$m(g[1],g[2],parseInt(g[3],10)).then(({url:v})=>{h||l(v)}).catch(()=>{h||l(e)}),()=>{h=!0}},[e]),c.useEffect(()=>{n.current&&n.current.load()},[r]),c.useEffect(()=>{u(typeof HTMLVideoElement<"u"&&"webkitShowPlaybackTargetPicker"in HTMLVideoElement.prototype)},[]),c.useEffect(()=>{var h;const g=v=>{if(v)try{cast.framework.CastContext.getInstance().setOptions({receiverApplicationId:chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),a(!0)}catch{}};if((h=window.cast)!=null&&h.framework)g(!0);else if(window.__onGCastApiAvailable=g,!document.querySelector('script[src*="cast_sender"]')){const v=document.createElement("script");v.src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",document.head.appendChild(v)}},[]),c.useEffect(()=>{if(!i||!r)return;const g=cast.framework.CastContext.getInstance(),{CastContextEventType:h,SessionState:v}=cast.framework,x=N=>{if(!N)return;const p=new chrome.cast.media.MediaInfo(window.location.origin+r,t);N.loadMedia(new chrome.cast.media.LoadRequest(p)).catch(()=>{})};x(g.getCurrentSession());const S=N=>{(N.sessionState===v.SESSION_STARTED||N.sessionState===v.SESSION_RESUMED)&&x(g.getCurrentSession())};return g.addEventListener(h.SESSION_STATE_CHANGED,S),()=>g.removeEventListener(h.SESSION_STATE_CHANGED,S)},[i,r,t]);const d=()=>{var g,h;(h=(g=n.current)==null?void 0:g.webkitShowPlaybackTargetPicker)==null||h.call(g)},y=i||o;return s.jsx("div",{className:"preview-video-wrap",style:{position:"relative"},children:e?s.jsxs(s.Fragment,{children:[r?s.jsxs("video",{ref:n,controls:!0,autoPlay:!1,playsInline:!0,"x-webkit-airplay":"allow",style:{width:"100%",maxHeight:"100%",display:"block"},children:[s.jsx("source",{src:r}),"Your browser does not support the video element."]}):s.jsx("div",{className:"video-tv-loading","aria-label":"Loading video…"}),y&&r&&s.jsxs("div",{className:"video-tv-controls",children:[o&&s.jsx("button",{className:"video-tv-btn",title:"AirPlay to device","aria-label":"AirPlay to device",onClick:d,children:s.jsx(bg,{})}),i&&s.jsx("google-cast-launcher",{className:"video-tv-btn",title:"Cast to TV"})]})]}):s.jsx("span",{style:{color:"var(--muted)",fontFamily:"var(--sans)",fontSize:"0.9rem"},children:"No video available"})})}function Hu({src:e,type:t,title:n,originalUrl:r}){const l=r||e,i=n||null;return s.jsxs("div",{className:"preview-iframe-wrap",style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:[s.jsxs("div",{className:"preview-iframe-toolbar",style:{display:"flex",flexDirection:"column",gap:"2px",padding:"6px 12px",borderBottom:"1px solid var(--line-soft)",background:"var(--paper-2)",flexShrink:0},children:[i&&s.jsx("span",{style:{fontSize:"0.85rem",fontWeight:600,color:"var(--ink)",fontFamily:"var(--sans)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:i}),s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[s.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"0.78rem",color:"var(--muted)",fontFamily:"var(--sans)"},children:l}),s.jsx("a",{href:e,target:"_blank",rel:"noreferrer noopener",style:{fontSize:"0.78rem",color:"var(--accent)",textDecoration:"none",whiteSpace:"nowrap",fontFamily:"var(--sans)",flexShrink:0},children:t==="pdf"?"Open PDF ↗":"Open in new tab ↗"})]})]}),s.jsx("iframe",{src:e,sandbox:"allow-same-origin allow-popups",allow:"autoplay 'none'",referrerPolicy:"no-referrer",style:{flex:1,border:"none",width:"100%",minHeight:0},title:i||(t==="pdf"?"PDF preview":"Page preview")})]})}function Pg({src:e,alt:t}){return s.jsx("div",{className:"preview-image-wrap",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%",background:"var(--paper-2)",overflow:"hidden"},children:s.jsx("a",{href:e,target:"_blank",rel:"noreferrer noopener",style:{display:"contents"},children:s.jsx("img",{src:e,alt:t||"",style:{objectFit:"contain",maxHeight:"100%",maxWidth:"100%",display:"block",cursor:"pointer"}})})})}function gf(e){return e?new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"}).format(new Date(e*1e3)):""}function Wu(e){return!e||!e.includes("&")?e:e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/'/g,"'")}const ee={card:{background:"var(--paper)",border:"1px solid var(--line)",borderRadius:"12px",overflow:"hidden",maxWidth:"560px",margin:"0 auto",fontFamily:'var(--sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)'},threadOuter:{border:"1px solid var(--line)",borderRadius:"12px",overflow:"hidden",maxWidth:"560px",margin:"0 auto",background:"var(--paper)",fontFamily:'var(--sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)'},tweetRow:{display:"flex",gap:"10px",padding:"10px 12px"},tweetRowThread:{display:"flex",gap:"10px",padding:"10px 12px 0"},leftCol:{display:"flex",flexDirection:"column",alignItems:"center",flexShrink:0,width:"36px"},rightCol:{flex:1,minWidth:0,paddingBottom:"8px"},avatar:{width:"36px",height:"36px",borderRadius:"50%",objectFit:"cover",flexShrink:0,display:"block"},avatarPh:{width:"36px",height:"36px",borderRadius:"50%",background:"var(--line)",flexShrink:0},threadLine:{flex:1,width:"2px",background:"var(--line-soft, var(--line))",margin:"4px 0",minHeight:"12px",borderRadius:"1px"},authorRow:{display:"flex",alignItems:"baseline",gap:"4px",flexWrap:"wrap",marginBottom:"4px",lineHeight:"1.3"},authorName:{fontWeight:"700",fontSize:"14px",color:"var(--ink)"},authorHandle:{fontSize:"13px",color:"var(--muted)"},datePart:{fontSize:"13px",color:"var(--muted)"},tweetText:{fontSize:"14px",lineHeight:"1.5",color:"var(--ink)",whiteSpace:"pre-line",marginBottom:"8px",wordBreak:"break-word"},stats:{display:"flex",gap:"12px",fontSize:"13px",color:"var(--muted)"},link:{color:"var(--accent)",textDecoration:"none"},loading:{padding:"24px 16px",textAlign:"center",color:"var(--muted)",fontSize:"14px"},error:{padding:"24px 16px",textAlign:"center",color:"var(--alert)",fontSize:"14px"},mediaGrid:{marginBottom:"8px",borderRadius:"10px",overflow:"hidden",border:"1px solid var(--line)"},mediaImg:{display:"block",width:"100%",objectFit:"cover",maxHeight:"260px"},mediaVideo:{display:"block",width:"100%",maxHeight:"260px",background:"#000"},article:{maxWidth:"560px",margin:"0 auto",border:"1px solid var(--line)",borderRadius:"12px",overflow:"hidden",background:"var(--paper)",fontFamily:'var(--sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)'},aCover:{width:"100%",display:"block",objectFit:"cover",maxHeight:"280px"},aMeta:{padding:"10px 14px 0"},aTweetTitle:{fontSize:"20px",fontWeight:"800",letterSpacing:"-0.3px",color:"var(--ink)",lineHeight:"1.3",marginBottom:"8px"},aAuthorRow:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},aAvatar:{width:"36px",height:"36px",borderRadius:"50%",objectFit:"cover",flexShrink:0,display:"block"},aAvatarPh:{width:"36px",height:"36px",borderRadius:"50%",background:"var(--line)",flexShrink:0},aAuthorName:{fontSize:"14px",fontWeight:"700",color:"var(--ink)",lineHeight:"1.3"},aAuthorSub:{fontSize:"13px",color:"var(--muted)",lineHeight:"1.3"},aDivider:{border:"none",borderTop:"1px solid var(--line)",margin:"0"},aBody:{padding:"4px 14px 16px"},bH1:{fontSize:"22px",fontWeight:"800",letterSpacing:"-0.4px",color:"var(--ink)",lineHeight:"1.25",margin:"16px 0 6px"},bH2:{fontSize:"18px",fontWeight:"700",letterSpacing:"-0.2px",color:"var(--ink)",lineHeight:"1.3",margin:"14px 0 4px"},bP:{fontSize:"15px",color:"var(--ink)",lineHeight:"1.65",marginBottom:"12px",marginTop:"0"},bSpacer:{height:"4px",display:"block"},bQuote:{borderLeft:"3px solid var(--line)",padding:"2px 12px",margin:"12px 0",color:"var(--muted)",fontSize:"15px",lineHeight:"1.6"},bHr:{border:"none",borderTop:"1px solid var(--line)",margin:"14px 0"},bImg:{width:"100%",display:"block",borderRadius:"8px",margin:"12px 0"},bUl:{margin:"8px 0 12px",paddingLeft:"24px"},bOl:{margin:"8px 0 12px",paddingLeft:"24px"},bLi:{fontSize:"15px",color:"var(--ink)",lineHeight:"1.6",marginBottom:"4px"},bTweet:{display:"flex",alignItems:"center",gap:"10px",border:"1px solid var(--line)",borderRadius:"10px",padding:"10px 14px",margin:"12px 0",color:"var(--muted)",fontSize:"14px",textDecoration:"none"},bMdPre:{borderRadius:"8px",margin:"10px 0",overflow:"auto",background:"var(--paper-3, var(--field))",padding:"12px 14px"},bMdCode:{fontFamily:"ui-monospace, 'Cascadia Code', 'Fira Code', Menlo, Consolas, monospace",fontSize:"12px",lineHeight:"1.6",color:"var(--ink)",background:"transparent",display:"block"},iCode:{fontFamily:"ui-monospace, 'Cascadia Code', Menlo, Consolas, monospace",fontSize:"0.875em",background:"var(--paper-3, var(--field))",padding:"1px 5px",borderRadius:"4px",color:"var(--ink)"},qtBadge:{fontSize:"11px",color:"var(--muted)",display:"inline-flex",alignItems:"center",gap:"2px",marginLeft:"4px",letterSpacing:"0.03em",flexShrink:0},lightboxBackdrop:{position:"fixed",inset:0,zIndex:500,background:"rgba(0,0,0,0.92)",display:"flex",alignItems:"center",justifyContent:"center",padding:"20px"},lightboxContent:{display:"flex",flexDirection:"column",alignItems:"center",gap:"10px",maxWidth:"90vw",maxHeight:"90vh"},lightboxToolbar:{display:"flex",alignItems:"center",gap:"10px",alignSelf:"flex-end"},lightboxImg:{maxWidth:"88vw",maxHeight:"80vh",objectFit:"contain",borderRadius:"6px",display:"block"},lightboxNav:{display:"flex",gap:"12px",alignItems:"center"},lightboxNavBtn:{background:"rgba(255,255,255,0.18)",border:"none",color:"#fff",fontSize:"20px",cursor:"pointer",borderRadius:"50%",width:"36px",height:"36px",display:"flex",alignItems:"center",justifyContent:"center",lineHeight:1,flexShrink:0},lightboxBtn:{background:"rgba(255,255,255,0.18)",border:"none",color:"#fff",fontSize:"16px",cursor:"pointer",borderRadius:"50%",width:"30px",height:"30px",display:"flex",alignItems:"center",justifyContent:"center",lineHeight:1,flexShrink:0},lightboxLink:{color:"rgba(255,255,255,0.7)",textDecoration:"none",fontSize:"14px"},lightboxCounter:{color:"rgba(255,255,255,0.6)",fontSize:"13px"}},Ae={bg:"#000000",border:"#2f3336",text:"#e7e9ea",dim:"#71767b",accent:"#1d9bf0",codeBg:"#16181c"},Ti={article:{background:Ae.bg,color:Ae.text,minHeight:"100%",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif'},articleInner:{maxWidth:"598px",margin:"0 auto",paddingBottom:"80px"},aCover:{width:"100%",display:"block",objectFit:"cover",maxHeight:"420px"},aMeta:{padding:"20px 16px 0"},aTweetTitle:{fontSize:"34px",fontWeight:"800",letterSpacing:"-0.5px",color:Ae.text,lineHeight:"44px",marginBottom:"16px"},aAuthorRow:{display:"flex",alignItems:"center",gap:"12px",marginBottom:"16px"},aAvatar:{width:"40px",height:"40px",borderRadius:"50%",objectFit:"cover",flexShrink:0,display:"block"},aAvatarPh:{width:"40px",height:"40px",borderRadius:"50%",background:Ae.border,flexShrink:0},aAuthorName:{fontSize:"15px",fontWeight:"700",color:Ae.text,lineHeight:"1.3"},aAuthorSub:{fontSize:"15px",color:Ae.dim,lineHeight:"1.3"},aDivider:{border:"none",borderTop:`1px solid ${Ae.border}`,margin:"0"},aBody:{padding:"4px 16px 0"},bH1:{fontSize:"26px",fontWeight:"800",letterSpacing:"-0.4px",color:Ae.text,lineHeight:"36px",margin:"24px 0 10px"},bH2:{fontSize:"26px",fontWeight:"800",letterSpacing:"-0.4px",color:Ae.text,lineHeight:"36px",margin:"24px 0 10px"},bP:{fontSize:"17px",color:Ae.text,lineHeight:"1.5",marginBottom:"16px",marginTop:"0"},bSpacer:{height:"6px",display:"block"},bQuote:{borderLeft:`3px solid ${Ae.border}`,padding:"2px 14px",margin:"14px 0",color:Ae.dim,fontSize:"17px",lineHeight:"1.5"},bHr:{border:"none",borderTop:`1px solid ${Ae.border}`,margin:"28px 0"},bImg:{width:"100%",display:"block",borderRadius:"12px",margin:"16px 0"},bUl:{margin:"10px 0 16px",paddingLeft:"28px"},bOl:{margin:"10px 0 16px",paddingLeft:"28px"},bLi:{fontSize:"17px",color:Ae.text,lineHeight:"1.5",marginBottom:"6px"},bTweet:{display:"flex",alignItems:"center",gap:"12px",border:`1px solid ${Ae.border}`,borderRadius:"12px",padding:"14px 16px",margin:"14px 0",color:Ae.dim,fontSize:"15px",textDecoration:"none"},bMdPre:{borderRadius:"12px",margin:"12px 0",overflow:"auto",background:"#1e2029"},bMdCode:{fontFamily:"ui-monospace, 'Cascadia Code', 'Fira Code', Menlo, Consolas, monospace",fontSize:"13px",lineHeight:"1.65",padding:"18px 20px",display:"block",color:Ae.text,background:"transparent"},iCode:{fontFamily:"ui-monospace, 'Cascadia Code', Menlo, Consolas, monospace",fontSize:"0.875em",background:Ae.codeBg,padding:"2px 6px",borderRadius:"4px",color:"#e6edf3"},link:{color:Ae.accent,textDecoration:"none"}};function Lg(e,t,n){const r={};return n&&n.forEach((l,i)=>{l.relpath&&(r[l.relpath]=`/api/archives/${e}/entries/${t}/artifacts/${i}`)}),r}function hr(e,t,n){return e&&n[e]?n[e]:t||null}function yf(){return s.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",style:{flexShrink:0,color:"var(--ink)"},children:s.jsx("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.748l7.73-8.835L1.254 2.25H8.08l4.259 5.63L18.244 2.25zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77z"})})}function jo(e,t,...n){var r;if(e.fromIndex!=null&&e.toIndex!=null)return{s:e.fromIndex,e:e.toIndex};if(((r=e.indices)==null?void 0:r.length)===2)return{s:e.indices[0],e:e.indices[1]};if(t)for(const l of n){if(!l)continue;const i=t.indexOf(l);if(i!==-1)return{s:i,e:i+l.length}}return null}function vf(e,t){const n=e.expanded_url||e.url||e.text||"",r=e.display_url||e.expanded_url||e.url||e.text||"",l=jo(e,t,e.url,e.text,e.display_url,e.expanded_url);return!l||!n?null:{...l,kind:"url",href:n,display:r}}function xf(e,t){const n=e.screen_name||e.name||e.text||"",r=n?`@${n}`:null,l=jo(e,t,r);return!l||!n?null:{...l,kind:"mention",screen_name:n}}const Vu=/https?:\/\/[^\s<>"'\])]+/g,Rg=/[.,;:!?)()]+$/;function Es(e,t){const n=[];let r=0,l;for(Vu.lastIndex=0;(l=Vu.exec(e))!==null;){l.index>r&&n.push(e.slice(r,l.index));let i=l[0].replace(Rg,"");n.push(s.jsx("a",{href:i,target:"_blank",rel:"noopener noreferrer",style:t,children:i},l.index));const a=l[0].slice(i.length);a&&n.push(a),r=l.index+l[0].length}return r===0?e:(r<e.length&&n.push(e.slice(r)),n)}function zg(e,t,n=[]){if(!e)return null;const r=[...(t.urls||[]).map(o=>vf(o,e)).filter(Boolean),...(t.user_mentions||[]).map(o=>xf(o,e)).filter(Boolean)];if(r.length===0&&n.length===0)return Es(Wu(e),ee.link);const l=new Set([0,e.length]);for(const o of r)o.s>=0&&o.s<=e.length&&l.add(o.s),o.e>=0&&o.e<=e.length&&l.add(o.e);for(const[o,u]of n)o>=0&&o<=e.length&&l.add(o),u>=0&&u<=e.length&&l.add(u);const i=(o,u)=>n.some(([d,y])=>d<=o&&y>=u),a=[...l].sort((o,u)=>o-u);return a.slice(0,-1).map((o,u)=>{const d=a[u+1];if(i(o,d))return null;const y=e.slice(o,d),g=r.filter(x=>x.s<=o&&x.e>=d),h=g.find(x=>x.kind==="url");if(h)return s.jsx("a",{href:h.href,target:"_blank",rel:"noopener noreferrer",style:ee.link,children:h.display||y},u);const v=g.find(x=>x.kind==="mention");return v?s.jsx("a",{href:`https://x.com/${v.screen_name}`,target:"_blank",rel:"noopener noreferrer",style:ee.link,children:y},u):s.jsx("span",{children:Es(Wu(y),ee.link)},u)}).filter(o=>o!==null)}function Ig(e,t,n,r,l=ee){if(!e)return null;t=t||[],n=n||[],r=r||[];const i=[];for(const u of t)u.length>0&&i.push({s:u.offset,e:u.offset+u.length,kind:"style",style:u.style});for(const u of n){const d=vf(u,e);d&&i.push(d)}for(const u of r){const d=xf(u,e);d&&i.push(d)}if(i.length===0)return Es(e,l.link);const a=new Set([0,e.length]);for(const u of i)u.s>=0&&u.s<=e.length&&a.add(u.s),u.e>=0&&u.e<=e.length&&a.add(u.e);const o=[...a].sort((u,d)=>u-d);return o.slice(0,-1).map((u,d)=>{const y=o[d+1],g=i.filter(N=>N.s<=u&&N.e>=y),h=e.slice(u,y);let v;if(h.includes(`
|
||
`)){const N=h.split(`
|
||
`);v=N.flatMap((p,f)=>f<N.length-1?[p,s.jsx("br",{},f)]:[p])}else v=h;g.some(N=>N.kind==="style"&&N.style==="Code")&&(v=s.jsx("code",{style:l.iCode,children:v})),g.some(N=>N.kind==="style"&&N.style==="Bold")&&(v=s.jsx("strong",{children:v})),g.some(N=>N.kind==="style"&&N.style==="Italic")&&(v=s.jsx("em",{children:v})),g.some(N=>N.kind==="style"&&N.style==="Underline")&&(v=s.jsx("u",{children:v})),g.some(N=>N.kind==="style"&&N.style==="Strikethrough")&&(v=s.jsx("s",{children:v}));const x=g.find(N=>N.kind==="url");if(x){const N=/^https?:\/\/t\.co\//i.test(v);v=s.jsx("a",{href:x.href,target:"_blank",rel:"noopener noreferrer",style:l.link,children:N?x.display:v})}const S=g.find(N=>N.kind==="mention");return S&&(v=s.jsx("a",{href:`https://x.com/${S.screen_name}`,target:"_blank",rel:"noopener noreferrer",style:l.link,children:v})),s.jsx("span",{children:typeof v=="string"?Es(v,l.link):v},d)})}function $g(e,t,n){const r=(n==null?void 0:n.st)||ee,l=e.resolved_entities||[];return l.length===0?null:l.map((i,a)=>{var o;switch(i.type){case"divider":return s.jsx("hr",{style:r.bHr},a);case"media":{const u=hr(i.local_path,i.url,t);return u?s.jsx("a",{href:u,target:"_blank",rel:"noopener noreferrer",style:{display:"block",cursor:"zoom-in"},onClick:d=>{var y;!d.metaKey&&!d.ctrlKey&&(d.preventDefault(),(y=n==null?void 0:n.onImgClick)==null||y.call(n,u))},children:s.jsx("img",{src:u,style:r.bImg,loading:"lazy",alt:""})},a):null}case"tweet":return i.tweet_id?s.jsxs("a",{href:`https://x.com/i/status/${i.tweet_id}`,target:"_blank",rel:"noopener noreferrer",style:r.bTweet,children:[s.jsx(yf,{}),"View post on X"]},a):null;case"link":return i.url?s.jsx("p",{style:r.bP,children:s.jsx("a",{href:i.url,target:"_blank",rel:"noopener noreferrer",style:r.link,children:i.url})},a):null;case"markdown":{const u=i.markdown??((o=i.data)==null?void 0:o.markdown)??"";return s.jsx("pre",{style:r.bMdPre,children:s.jsx("code",{style:r.bMdCode,children:u})},a)}case"emoji":return i.url?s.jsx("img",{src:i.url,alt:"",style:{height:"1.2em",verticalAlign:"middle",margin:"0 1px"}},a):null;default:return null}})}function Pi(e,t,n,r){const l=(r==null?void 0:r.st)||ee,i=e.type||"",a=e.text||"",o=e.inline_style_ranges||[],u=e.data||{},d=Ig(a,o,u.urls||[],u.mentions||[],l);switch(i){case"header-one":return s.jsx("h1",{style:l.bH1,children:d},t);case"header-two":{const y=a.match(/(?:x\.com|twitter\.com)\/i\/status\/(\d+)/);return y?s.jsxs("a",{href:`https://x.com/i/status/${y[1]}`,target:"_blank",rel:"noopener noreferrer",style:l.bTweet,children:[s.jsx(yf,{}),"View post on X"]},t):s.jsx("h2",{style:l.bH2,children:d},t)}case"unstyled":return a.trim()?s.jsx("p",{style:l.bP,children:d},t):s.jsx("span",{style:l.bSpacer},t);case"blockquote":return s.jsx("blockquote",{style:l.bQuote,children:d},t);case"unordered-list-item":case"ordered-list-item":return s.jsx("li",{style:l.bLi,children:d},t);case"atomic":return s.jsx("span",{children:$g(e,n,r)},t);default:return a?s.jsx("p",{style:l.bP,children:d},t):null}}function Dg(e,t,n){const r=(n==null?void 0:n.st)||ee,l=[];let i=0;for(;i<e.length;){const a=e[i];if(a.type==="unordered-list-item"){const o=i,u=[];for(;i<e.length&&e[i].type==="unordered-list-item";)u.push(Pi(e[i],i,t,n)),i++;l.push(s.jsx("ul",{style:r.bUl,children:u},`ul-${o}`))}else if(a.type==="ordered-list-item"){const o=i,u=[];for(;i<e.length&&e[i].type==="ordered-list-item";)u.push(Pi(e[i],i,t,n)),i++;l.push(s.jsx("ol",{style:r.bOl,children:u},`ol-${o}`))}else l.push(Pi(a,i,t,n)),i++}return l}function Og({article:e,tweetAuthor:t,artifactMap:n,fullPage:r,onXArticle:l}){const[i,a]=c.useState(null);c.useEffect(()=>{r&&(l==null||l(!0))},[r,l]);const o=r?Ti:ee,u=e.cover_media||{},d=e.author||t||{},y=e.first_published_at_secs?gf(e.first_published_at_secs):"",h=[d.screen_name?`@${d.screen_name}`:"",y].filter(Boolean).join(" · "),v=hr(u.local_path,u.url,n),x=hr(d.avatar_local_path,d.avatar_url,n),S=s.jsxs(s.Fragment,{children:[i&&s.jsx(wf,{items:[{src:i,alt:""}],startIndex:0,onClose:()=>a(null)}),v&&s.jsx("a",{href:v,target:"_blank",rel:"noopener noreferrer",style:{display:"block",cursor:"zoom-in"},onClick:N=>{!N.metaKey&&!N.ctrlKey&&(N.preventDefault(),a(v))},children:s.jsx("img",{src:v,style:o.aCover,alt:"Article cover"})}),s.jsxs("div",{style:o.aMeta,children:[e.title&&s.jsx("div",{style:o.aTweetTitle,children:e.title}),s.jsxs("div",{style:o.aAuthorRow,children:[x?s.jsx("img",{src:x,style:o.aAvatar,alt:d.name||""}):s.jsx("div",{style:o.aAvatarPh}),s.jsxs("div",{children:[s.jsx("div",{style:o.aAuthorName,children:d.name||d.screen_name||"Unknown"}),h&&s.jsx("div",{style:o.aAuthorSub,children:h})]})]})]}),s.jsx("hr",{style:o.aDivider}),s.jsx("div",{style:o.aBody,children:Dg(e.blocks||[],n,{onImgClick:a,st:o})})]});return r?s.jsx("div",{style:Ti.article,children:s.jsx("div",{style:Ti.articleInner,children:S})}):s.jsx("div",{style:ee.article,children:S})}function Ag({photos:e,onOpen:t}){const n=e.length;if(n===0)return null;if(n===1)return s.jsx("a",{href:e[0].src,target:"_blank",rel:"noopener noreferrer",style:{display:"block"},onClick:l=>{!l.metaKey&&!l.ctrlKey&&(l.preventDefault(),t(0))},children:s.jsx("img",{src:e[0].src,alt:e[0].alt||"",style:ee.mediaImg,loading:"lazy"})});const r=n<=2?"180px":"140px";return s.jsx("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:n===2?r:`${r} ${r}`,gap:"2px"},children:e.map((l,i)=>s.jsx("a",{href:l.src,target:"_blank",rel:"noopener noreferrer",style:{display:"block",overflow:"hidden",gridRow:n===3&&i===0?"span 2":void 0},onClick:a=>{!a.metaKey&&!a.ctrlKey&&(a.preventDefault(),t(i))},children:s.jsx("img",{src:l.src,alt:l.alt||"",loading:"lazy",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}})},i))})}function wf({items:e,startIndex:t,onClose:n}){const[r,l]=c.useState(t);c.useEffect(()=>{const a=o=>{(o.key==="Escape"||o.key==="ArrowLeft"||o.key==="ArrowRight")&&(o.stopPropagation(),o.preventDefault()),o.key==="Escape"&&n(),o.key==="ArrowRight"&&l(u=>Math.min(u+1,e.length-1)),o.key==="ArrowLeft"&&l(u=>Math.max(u-1,0))};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[n,e.length]);const i=e[r];return s.jsx("div",{style:ee.lightboxBackdrop,onClick:n,children:s.jsxs("div",{style:ee.lightboxContent,onClick:a=>a.stopPropagation(),children:[s.jsxs("div",{style:ee.lightboxToolbar,children:[e.length>1&&s.jsxs("span",{style:ee.lightboxCounter,children:[r+1," / ",e.length]}),s.jsx("a",{href:i.src,target:"_blank",rel:"noopener noreferrer",style:ee.lightboxLink,title:"Open in new tab",children:"↗"}),s.jsx("button",{style:ee.lightboxBtn,onClick:n,"aria-label":"Close",children:"×"})]}),s.jsx("img",{src:i.src,alt:i.alt||"",style:ee.lightboxImg}),e.length>1&&s.jsxs("div",{style:ee.lightboxNav,children:[s.jsx("button",{style:ee.lightboxNavBtn,onClick:()=>l(a=>Math.max(a-1,0)),disabled:r===0,children:"‹"}),s.jsx("button",{style:ee.lightboxNavBtn,onClick:()=>l(a=>Math.min(a+1,e.length-1)),disabled:r===e.length-1,children:"›"})]})]})})}function Qu({tweet:e,isInThread:t,isLast:n,artifactMap:r}){var f,m;const[l,i]=c.useState(null),a=e.author||{},o=e.created_at_secs?gf(e.created_at_secs):"",u=e.entities||{},d=hr(a.avatar_local_path,a.avatar_url,r),y=t&&!n,g=e.is_quote_status===!0,h=t?ee.tweetRowThread:ee.tweetRow,v=e.full_text||"",x=((m=(f=e.extended_entities)==null?void 0:f.media)!=null&&m.length?e.extended_entities.media:u.media)||[],S=[],N=[];for(const k of x)if(k.type==="photo"){const C=hr(k.local_path,k.media_url_https,r);C&&S.push({kind:"photo",src:C,alt:k.alt_text||""})}else if(k.type==="video"||k.type==="animated_gif"){const C=k.local_path&&r[k.local_path]||(()=>{var T,j;return(j=(((T=k.video_info)==null?void 0:T.variants)||[]).filter(P=>P.content_type==="video/mp4").sort((P,R)=>(R.bitrate||0)-(P.bitrate||0))[0])==null?void 0:j.url})();C&&N.push({kind:k.type==="animated_gif"?"gif":"video",src:C})}const p=[];for(const k of x){if(!k.url||!(k.type==="photo"?S.some(T=>T.src===hr(k.local_path,k.media_url_https,r)):N.length>0))continue;const E=jo(k,v,k.url);E&&p.push([E.s,E.e])}return s.jsxs(s.Fragment,{children:[l!==null&&s.jsx(wf,{items:S,startIndex:l,onClose:()=>i(null)}),s.jsxs("div",{style:h,children:[s.jsxs("div",{style:ee.leftCol,children:[d?s.jsx("img",{src:d,style:ee.avatar,alt:a.name||""}):s.jsx("div",{style:ee.avatarPh}),y&&s.jsx("div",{style:ee.threadLine})]}),s.jsxs("div",{style:ee.rightCol,children:[s.jsxs("div",{style:ee.authorRow,children:[s.jsx("span",{style:ee.authorName,children:a.name||a.screen_name||"Unknown"}),a.screen_name&&s.jsxs("span",{style:ee.authorHandle,children:["@",a.screen_name]}),o&&s.jsxs("span",{style:ee.datePart,children:["· ",o]}),g&&s.jsx("span",{style:ee.qtBadge,title:"Quote tweet",children:"↻ QT"})]}),s.jsx("div",{style:ee.tweetText,children:zg(v,u,p)}),S.length>0&&s.jsx("div",{style:ee.mediaGrid,children:s.jsx(Ag,{photos:S,onOpen:k=>i(k)})}),N.map((k,C)=>s.jsx("div",{style:ee.mediaGrid,children:s.jsx("video",{src:k.src,style:ee.mediaVideo,controls:!0,loop:k.kind==="gif",muted:k.kind==="gif",autoPlay:k.kind==="gif"})},C)),(e.retweet_count>0||e.favorite_count>0)&&s.jsxs("div",{style:ee.stats,children:[e.favorite_count>0&&s.jsxs("span",{children:["❤️ ",e.favorite_count.toLocaleString()]}),e.retweet_count>0&&s.jsxs("span",{children:["🔁 ",e.retweet_count.toLocaleString()]})]})]})]})]})}function Mg({archiveId:e,entryUid:t,artifacts:n,entityKind:r,fullPage:l,onXArticle:i}){const[a,o]=c.useState(!0),[u,d]=c.useState(null),[y,g]=c.useState([]);if(c.useEffect(()=>{if(o(!0),d(null),g([]),!n||!e||!t){o(!1);return}const x=n.map((N,p)=>({...N,index:p})).filter(N=>N.artifact_role==="raw_tweet_json");if(x.length===0){d("No tweet data found."),o(!1);return}let S=!1;return Zh(e,t,x.map(N=>N.index)).then(async N=>{if(S)return;const p=/https?:\/\/t\.co\/[A-Za-z0-9]+/g,f=T=>{var P;const j=T.full_text||"";return(((P=T.entities)==null?void 0:P.urls)||[]).map(R=>{var X;if(R.fromIndex!=null&&R.toIndex!=null)return[R.fromIndex,R.toIndex];if(((X=R.indices)==null?void 0:X.length)===2)return[R.indices[0],R.indices[1]];if(R.url){const H=j.indexOf(R.url);if(H!==-1)return[H,H+R.url.length]}return null}).filter(Boolean)},m=(T,j,P)=>T.some(([R,X])=>R<=j&&X>=P),k=new Set;for(const T of N){const j=T.full_text||"",P=f(T);let R;for(p.lastIndex=0;(R=p.exec(j))!==null;)m(P,R.index,R.index+R[0].length)||k.add(R[0])}const C=k.size>0?await em([...k]).catch(()=>({})):{},E=N.map(T=>{var H;const j=T.full_text||"",P=f(T),R=[];let X;for(p.lastIndex=0;(X=p.exec(j))!==null;){const Y=X[0],te=C[Y];te&&te!==Y&&!m(P,X.index,X.index+Y.length)&&R.push({url:Y,expanded_url:te,display_url:(()=>{try{const fe=new URL(te);return fe.hostname+(fe.pathname.length>1?"/…":"")}catch{return te}})(),fromIndex:X.index,toIndex:X.index+Y.length})}return R.length===0?T:{...T,entities:{...T.entities||{},urls:[...((H=T.entities)==null?void 0:H.urls)||[],...R]}}});S||g(E)}).catch(N=>{S||d(N.message||"Failed to load tweet.")}).finally(()=>{S||o(!1)}),()=>{S=!0}},[e,t,n]),a)return s.jsx("div",{style:ee.loading,children:"Loading…"});if(u)return s.jsxs("div",{style:ee.error,children:["Error: ",u]});if(y.length===0)return null;const h=Lg(e,t,n);if(r==="tweet_thread")return s.jsx("div",{style:ee.threadOuter,children:y.map((x,S)=>s.jsx(Qu,{tweet:x,isInThread:!0,isLast:S===y.length-1,artifactMap:h},x.id||S))});const v=y[0];return v.is_article&&v.article?s.jsx(Og,{article:v.article,tweetAuthor:v.author,artifactMap:h,fullPage:l,onXArticle:i}):s.jsx("div",{style:ee.card,children:s.jsx(Qu,{tweet:v,isInThread:!1,isLast:!0,artifactMap:h})})}function Fg({src:e,mime:t,title:n}){const[r,l]=c.useState(null),[i,a]=c.useState(null);return c.useEffect(()=>{const o=new AbortController;return l(null),a(null),Gh(e,{signal:o.signal}).then(l).catch(u=>{u.name!=="AbortError"&&a(u.message||String(u))}),()=>o.abort()},[e]),i?s.jsxs("div",{className:"text-preview text-preview--error",children:["Failed to load text: ",i]}):r===null?s.jsx("div",{className:"text-preview text-preview--loading",children:"Loading…"}):s.jsxs("div",{className:"text-preview",children:[n&&s.jsx("h1",{className:"text-preview__title",children:n}),s.jsx("pre",{className:"text-preview__body",children:r}),t&&s.jsx("div",{className:"text-preview__mime",children:t})]})}const Bg=new Set(["mp4","webm","mov","mkv","avi","m4v","ogv"]),Ug=new Set(["mp3","ogg","m4a","opus","wav","flac","aac"]),Hg=new Set(["jpg","jpeg","png","gif","webp","avif","svg","bmp"]),Wg=new Set(["md","markdown","txt"]),Vg={mp4:"video/mp4",webm:"video/webm",mov:"video/quicktime",mkv:"video/x-matroska",avi:"video/x-msvideo",m4v:"video/mp4",ogv:"video/ogg"};function kf({archiveId:e,entry:t,detail:n,fullPage:r,onXArticle:l}){if(!t)return s.jsx("div",{className:"preview-panel preview-panel--empty",children:s.jsx("span",{style:{color:"var(--muted)",fontFamily:"var(--sans)",fontSize:"0.9rem"},children:"Select an entry to preview"})});if(!n)return s.jsx("div",{className:"preview-panel preview-panel--loading",children:s.jsx("span",{style:{color:"var(--muted)",fontFamily:"var(--sans)",fontSize:"0.9rem"},children:"Loading…"})});const{summary:i,artifacts:a}=n,o=i.entry_uid,u=i.entity_kind;if(u==="tweet"||u==="tweet_thread"){const v=s.jsx(Mg,{archiveId:e,entryUid:o,artifacts:a,entityKind:u,fullPage:r,onXArticle:l});return r?v:s.jsx("div",{className:"preview-tweet-wrap",children:v})}const d=a.findIndex(v=>v.artifact_role==="primary_media");if(d===-1)return s.jsxs("div",{className:"preview-panel preview-panel--no-preview",children:[s.jsx("span",{style:{color:"var(--muted)",fontFamily:"var(--sans)",fontSize:"0.9rem"},children:"No preview available"}),a.length>0&&s.jsx("ul",{style:{marginTop:"12px",paddingLeft:"20px",fontSize:"0.8rem",color:"var(--muted-2)",fontFamily:"var(--sans)"},children:a.map((v,x)=>s.jsxs("li",{children:[v.artifact_role,": ",v.relpath]},x))})]});const y=a[d],g=`/api/archives/${e}/entries/${o}/artifacts/${d}`,h=y.relpath.split(".").pop().toLowerCase();return Bg.has(h)?s.jsx("div",{className:"preview-panel",children:s.jsx(Tg,{src:g,contentType:Vg[h]||"video/mp4"})}):Ug.has(h)?s.jsxs("div",{className:"preview-panel preview-panel--audio",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"12px",padding:"24px",fontFamily:"var(--sans)"},children:[s.jsx("span",{style:{fontSize:"2rem"},children:"🎵"}),s.jsx("span",{style:{color:"var(--ink)",fontSize:"0.95rem",fontWeight:600},children:i.title||o}),s.jsx("audio",{src:g,controls:!0,style:{marginTop:"8px",width:"100%",maxWidth:"400px"}})]}):h==="pdf"?s.jsx("div",{className:"preview-panel",style:{flex:1,minHeight:0},children:s.jsx(Hu,{src:g,type:"pdf",title:i.title,originalUrl:i.original_url})}):h==="html"||h==="htm"?s.jsx("div",{className:"preview-panel",style:{flex:1,minHeight:0},children:s.jsx(Hu,{src:g,type:"page",title:i.title,originalUrl:i.original_url})}):Wg.has(h)?s.jsx("div",{className:"preview-panel",style:{flex:1,minHeight:0,overflow:"auto"},children:s.jsx(Fg,{src:g,mime:y.mime_type,title:i.title})}):Hg.has(h)?s.jsx("div",{className:"preview-panel",style:{height:"100%"},children:s.jsx(Pg,{src:g,alt:i.title||"Image"})}):s.jsxs("div",{className:"preview-panel preview-panel--no-preview",children:[s.jsx("span",{style:{color:"var(--muted)",fontFamily:"var(--sans)",fontSize:"0.9rem"},children:"No preview available"}),s.jsx("ul",{style:{marginTop:"12px",paddingLeft:"20px",fontSize:"0.8rem",color:"var(--muted-2)",fontFamily:"var(--sans)"},children:a.map((v,x)=>s.jsxs("li",{children:[v.artifact_role,": ",v.relpath]},x))})]})}function Qg({archiveId:e,entry:t,detail:n,onClose:r}){var l,i;return c.useEffect(()=>{const a=o=>{o.key==="Escape"&&r()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[r]),s.jsx("div",{className:"preview-modal-backdrop",onClick:r,children:s.jsxs("div",{className:`preview-modal${((l=n==null?void 0:n.summary)==null?void 0:l.entity_kind)==="tweet"||((i=n==null?void 0:n.summary)==null?void 0:i.entity_kind)==="tweet_thread"?"":" preview-modal--full"}`,onClick:a=>a.stopPropagation(),children:[s.jsxs("div",{className:"preview-modal-header",children:[s.jsx("span",{className:"preview-modal-title",children:(t==null?void 0:t.title)||(t==null?void 0:t.entry_uid)||"Preview"}),s.jsx("a",{className:"preview-modal-newtab",href:`/preview/${e}/${t==null?void 0:t.entry_uid}`,target:"_blank",rel:"noopener noreferrer",title:"Open in new tab",children:"↗"}),s.jsx("button",{className:"preview-modal-close",onClick:r,"aria-label":"Close preview",children:"×"})]}),s.jsx("div",{className:"preview-modal-body",children:s.jsx(kf,{archiveId:e,entry:t,detail:n})})]})})}function qu(e){if(!isFinite(e)||isNaN(e))return"--:--";const t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${String(n).padStart(2,"0")}`}function qg({entry:e,src:t,archiveId:n,onClose:r}){const l=c.useRef(null),[i,a]=c.useState(!1),[o,u]=c.useState(0),[d,y]=c.useState(NaN),[g,h]=c.useState(1);c.useEffect(()=>{!l.current||!t||(l.current.load(),u(0),y(NaN),a(!1))},[t]),c.useEffect(()=>{l.current&&(l.current.volume=g)},[g]);function v(){const f=l.current;f&&(i?f.pause():f.play().catch(()=>{}))}function x(f){const m=l.current;if(!m||!isFinite(d))return;const k=Number(f.target.value);m.currentTime=k,u(k)}function S(f){h(Number(f.target.value))}const N=(e==null?void 0:e.title)||(e==null?void 0:e.entry_uid)||"Unknown",p=(e==null?void 0:e.source_kind)||"other";return s.jsxs(s.Fragment,{children:[s.jsx("audio",{ref:l,src:t||void 0,preload:"auto",onPlay:()=>a(!0),onPause:()=>a(!1),onEnded:()=>a(!1),onTimeUpdate:()=>{var f;return u(((f=l.current)==null?void 0:f.currentTime)??0)},onLoadedMetadata:()=>{var f;return y(((f=l.current)==null?void 0:f.duration)??NaN)},onDurationChange:()=>{var f;return y(((f=l.current)==null?void 0:f.duration)??NaN)},style:{display:"none"}}),s.jsxs("div",{className:"audio-bar",style:{position:"fixed",bottom:0,left:0,right:0,zIndex:100,background:"var(--paper-3)",borderTop:"1px solid var(--line)",display:"flex",alignItems:"center",gap:"16px",padding:"0 16px",height:"56px",fontFamily:"var(--sans)"},children:[s.jsxs("div",{className:"audio-bar-info",style:{display:"flex",alignItems:"center",gap:"8px",minWidth:0,flex:"0 1 220px",overflow:"hidden"},children:[s.jsx("span",{className:"source-icon",style:{flexShrink:0,width:"18px",height:"18px",display:"flex",alignItems:"center"},dangerouslySetInnerHTML:{__html:Ws(p)}}),s.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"0.85rem",color:"var(--ink)"},title:N,children:N})]}),s.jsxs("div",{className:"audio-bar-controls",style:{display:"flex",alignItems:"center",gap:"10px",flex:"1 1 0",minWidth:0},children:[s.jsx("button",{onClick:v,"aria-label":i?"Pause":"Play",style:{background:"none",border:"none",cursor:"pointer",padding:"4px",color:"var(--ink)",flexShrink:0,fontSize:"1.2rem",lineHeight:1},children:i?"⏸":"▶"}),s.jsx("span",{style:{fontSize:"0.75rem",color:"var(--muted)",whiteSpace:"nowrap",flexShrink:0},children:qu(o)}),s.jsx("input",{type:"range",min:0,max:isFinite(d)?d:0,step:.1,value:isFinite(o)?o:0,onChange:x,"aria-label":"Seek",style:{flex:1,minWidth:0,accentColor:"var(--accent)"}}),s.jsx("span",{style:{fontSize:"0.75rem",color:"var(--muted)",whiteSpace:"nowrap",flexShrink:0},children:qu(d)})]}),s.jsxs("div",{className:"audio-bar-right",style:{display:"flex",alignItems:"center",gap:"8px",flex:"0 1 160px"},children:[s.jsx("span",{style:{fontSize:"0.85rem",color:"var(--muted)",flexShrink:0},children:"🔊"}),s.jsx("input",{type:"range",min:0,max:1,step:.01,value:g,onChange:S,"aria-label":"Volume",style:{width:"80px",accentColor:"var(--accent)"}}),s.jsx("button",{onClick:r,"aria-label":"Close audio player",style:{background:"none",border:"none",cursor:"pointer",padding:"4px",color:"var(--muted)",fontSize:"1rem",lineHeight:1,marginLeft:"4px"},children:"✕"})]})]})]})}function Kg({archiveId:e,entryUid:t}){var h,v;const[n,r]=c.useState(null),[l,i]=c.useState(!0),[a,o]=c.useState(null),[u,d]=c.useState(!1);c.useEffect(()=>{if(!u)return;const x=document.documentElement,S=document.body,N=x.style.colorScheme,p=S.style.background;return x.style.colorScheme="dark",S.style.background="#000",()=>{x.style.colorScheme=N,S.style.background=p}},[u]),c.useEffect(()=>{d(!1),Br(e,t).then(x=>{r(x),i(!1)}).catch(x=>{o((x==null?void 0:x.message)||"Failed to load entry"),i(!1)})},[e,t]);const y=((h=n==null?void 0:n.summary)==null?void 0:h.title)||t,g=(v=n==null?void 0:n.summary)==null?void 0:v.original_url;return s.jsxs("div",{style:{minHeight:"100vh",display:"flex",flexDirection:"column",background:u?"#000":"var(--paper)",fontFamily:"var(--sans)"},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"10px",padding:u?"8px 12px":"10px 16px",borderBottom:u?"none":"1px solid var(--line)",flexShrink:0,position:u?"sticky":"relative",top:0,zIndex:20,background:u?"rgba(0,0,0,0.82)":"var(--paper-2)",backdropFilter:u?"blur(12px)":"none",WebkitBackdropFilter:u?"blur(12px)":"none"},children:[s.jsx("a",{href:"/",style:{color:u?"#1d9bf0":"var(--accent)",textDecoration:"none",fontSize:"13px",flexShrink:0},children:"← Archive"}),s.jsx("span",{style:{flex:1,fontSize:"14px",fontWeight:600,color:u?"#e7e9ea":"var(--ink)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:y}),g&&s.jsx("a",{href:g,target:"_blank",rel:"noopener noreferrer",style:{color:u?"#71767b":"var(--muted)",textDecoration:"none",fontSize:"13px",flexShrink:0},children:"Original ↗"})]}),s.jsxs("div",{style:u?{flex:1}:{flex:1,minHeight:0,overflow:"auto",display:"flex",flexDirection:"column"},children:[l&&s.jsx("div",{style:{padding:"48px",textAlign:"center",color:"var(--muted)",fontSize:"14px"},children:"Loading…"}),a&&s.jsx("div",{style:{padding:"48px",textAlign:"center",color:"var(--alert)",fontSize:"14px"},children:a}),n&&s.jsx(kf,{archiveId:e,entry:n.summary,detail:n,fullPage:!0,onXArticle:d})]})]})}const Xg=7e3;function Jg({toasts:e,onDismiss:t,onIgnoreUblock:n}){return e.length?s.jsx("div",{className:"toast-stack",role:"log","aria-live":"polite","aria-label":"Notifications",children:e.map(r=>s.jsx(Yg,{toast:r,onDismiss:t,onIgnoreUblock:n},r.id))}):null}function Gg(e){if(!e)return null;if(e.length<=52)return e;try{const{hostname:t,pathname:n,search:r}=new URL(e),l=n.split("/").filter(Boolean),i=(l[l.length-1]??"")+r,a=i?`${t}/…/${i}`:t;return a.length<=56?a:a.slice(0,53)+"…"}catch{return"…"+e.slice(-51)}}function Yg({toast:e,onDismiss:t,onIgnoreUblock:n}){const[r,l]=c.useState(!1),i=e.type==="warning",a=e.type==="success";c.useEffect(()=>{if(r)return;const u=setTimeout(()=>t(e.id),Xg);return()=>clearTimeout(u)},[r,e.id,t]);const o=Gg(e.locator);return a?s.jsx("div",{className:"toast toast--success",role:"alert","aria-atomic":"true",children:s.jsxs("div",{className:"toast-top",children:[s.jsx("span",{className:"toast-icon","aria-hidden":"true",children:"✓"}),s.jsxs("div",{className:"toast-body",children:[s.jsx("span",{className:"toast-headline",children:e.headline||"Archived"}),o&&s.jsx("span",{className:"toast-locator",title:e.locator,children:o})]}),s.jsx("div",{className:"toast-btns",children:s.jsx("button",{type:"button",className:"toast-dismiss",onClick:()=>t(e.id),"aria-label":"Dismiss",children:"×"})})]})}):i?s.jsxs("div",{className:"toast toast--warning",role:"alert","aria-atomic":"true",children:[s.jsxs("div",{className:"toast-top",children:[s.jsx("span",{className:"toast-icon","aria-hidden":"true",children:"⚠"}),s.jsxs("div",{className:"toast-body",children:[s.jsx("span",{className:"toast-headline",children:e.headline||"Archived with warnings"}),o&&s.jsx("span",{className:"toast-locator",title:e.locator,children:o})]}),s.jsxs("div",{className:"toast-btns",children:[e.text&&s.jsx("button",{type:"button",className:"toast-view-btn",onClick:()=>l(u=>!u),"aria-expanded":r,children:r?"Hide":"Details"}),e.locator&&s.jsx("button",{type:"button",className:"toast-view-btn toast-ignore-btn",onClick:()=>{n==null||n(),t(e.id)},children:"Ignore"}),s.jsx("button",{type:"button",className:"toast-dismiss",onClick:()=>t(e.id),"aria-label":"Dismiss",children:"×"})]})]}),r&&s.jsx("p",{className:"toast-warning-detail",children:e.text||"The page was captured but one or more browser extensions were unavailable (ad-blocking or cookie-consent). Check ARCHIVR_UBLOCK_EXT and ARCHIVR_COOKIE_EXT in your server config."})]}):s.jsxs("div",{className:"toast toast--error",role:"alert","aria-atomic":"true",children:[s.jsxs("div",{className:"toast-top",children:[s.jsx("span",{className:"toast-icon","aria-hidden":"true",children:"✕"}),s.jsxs("div",{className:"toast-body",children:[s.jsx("span",{className:"toast-headline",children:e.headline||"Capture failed"}),o&&s.jsx("span",{className:"toast-locator",title:e.locator,children:o})]}),s.jsxs("div",{className:"toast-btns",children:[e.text&&s.jsx("button",{type:"button",className:"toast-view-btn",onClick:()=>l(u=>!u),children:r?"Hide":"View error"}),s.jsx("button",{type:"button",className:"toast-dismiss",onClick:()=>t(e.id),"aria-label":"Dismiss",children:"×"})]})]}),r&&e.text&&s.jsx("pre",{className:"toast-error-detail",children:e.text})]})}const Vs=c.createContext(null),Zg=["archive","tags","collections","runs","admin","settings"],ey=["profile","tokens","instance","cookies","extensions","storage"],Dr=(()=>{const e=window.location.pathname.match(/^\/preview\/([^/]+)\/([^/]+)/);return e?{archiveId:e[1],entryUid:e[2]}:null})();function Ft(){const e=window.location.pathname.split("/").filter(Boolean),t=Zg.includes(e[0])?e[0]:"archive",n=t==="settings"&&ey.includes(e[1])?e[1]:"profile",r=new URLSearchParams(window.location.search),l=r.get("q")??"",i=t==="archive"?r.get("tag")??null:null,a=t==="archive"?r.get("entry")??null:null,o=t==="archive"?r.get("collection")??null:null,u=o==="main"?null:o,d=r.get("archive")??null;return{view:t,settingsTab:n,q:l,tag:i,entry:a,collection:u,archive:d}}function ty(e,t){return e==="archive"?"/":e==="settings"?`/settings/${t}`:`/${e}`}function ny(){const[e,t]=c.useState("loading"),[n,r]=c.useState(null);c.useEffect(()=>{(async()=>{var A,Q,J;if(await dm()){t("setup");return}const z=await mm();if(!z){const{collection:le,archive:_e}=Ft();try{const Ue=await Ru(),ke=_e?((A=Ue.find(qn=>qn.id===_e))==null?void 0:A.id)??((Q=Ue[0])==null?void 0:Q.id):(J=Ue[0])==null?void 0:J.id;if(ke){await zu(ke,le),i(Ue),o(ke),d(le),t("authenticated");return}}catch{}t("login");return}r(z),t("authenticated")})()},[]),c.useEffect(()=>{const _=()=>{n&&(r(null),t("login"))};return window.addEventListener("auth:expired",_),()=>window.removeEventListener("auth:expired",_)},[n]),c.useEffect(()=>{const _=()=>{const{view:z,settingsTab:A,q:Q,tag:J,entry:le,collection:_e}=Ft();P(z),X(A),Y(Q),T(J),p(le),m(null),C(le?new Set([le]):new Set),d(_e)};return window.addEventListener("popstate",_),()=>window.removeEventListener("popstate",_)},[]);const[l,i]=c.useState([]),[a,o]=c.useState(null),[u,d]=c.useState(()=>Ft().collection),[y,g]=c.useState([]),[h,v]=c.useState([]),[x,S]=c.useState(()=>new Set),[N,p]=c.useState(()=>Ft().entry),[f,m]=c.useState(null),[k,C]=c.useState(()=>{const _=Ft().entry;return _?new Set([_]):new Set}),[E,T]=c.useState(()=>Ft().tag),[j,P]=c.useState(()=>Ft().view),[R,X]=c.useState(()=>Ft().settingsTab),[H,Y]=c.useState(()=>Ft().q),[te,fe]=c.useState(""),[Be,we]=c.useState(!1),[M,L]=c.useState([]),[V,G]=c.useState([]),[ne,se]=c.useState(()=>sessionStorage.getItem("captureDialogOpen")==="true"),[Z,Se]=c.useState([]),ce=c.useRef(0),[Ie,at]=c.useState(()=>{try{const _=JSON.parse(sessionStorage.getItem("pendingCaptures")||"[]");if(Array.isArray(_))return _}catch{}return[]});c.useEffect(()=>{sessionStorage.setItem("pendingCaptures",JSON.stringify(Ie))},[Ie]);const[ht,Vt]=c.useState(()=>sessionStorage.getItem("ublockWarningIgnored")==="true"),[Qt,jt]=c.useState(null),Oe=c.useRef(0),Je=c.useRef(null),tt=c.useRef(!1),D=c.useRef(!0),K=c.useRef(null),Ne=c.useRef(0),Ve=c.useRef(new Map),qt=(n==null?void 0:n.humanize_slugs)??!1;c.useEffect(()=>{const _=++Oe.current;jt(null),!(!f||!a)&&Br(a,f.entry_uid).then(z=>{_===Oe.current&&jt(z)}).catch(()=>{})},[f,a]),c.useEffect(()=>{sessionStorage.setItem("captureDialogOpen",ne)},[ne]);const Qe=c.useCallback(async(_,z,A,Q)=>{if(_){we(!0);try{let J;z||A?J=await Kh(_,z,A,Q):J=await zu(_,Q),v(J),C(le=>{if(le.size<2)return le;const _e=new Set(J.map(ke=>ke.entry_uid)),Ue=new Set([...le].filter(ke=>_e.has(ke)));return Ue.size===le.size?le:Ue}),fe(J.length===0?"No results":`${J.length} result${J.length===1?"":"s"}`)}catch{v([]),fe("Search failed. Try again.")}finally{we(!1)}}},[]);c.useEffect(()=>{e==="authenticated"&&(a||Ru().then(_=>{if(i(_),_.length>0){const{archive:z}=Ft(),A=z?_.find(Q=>Q.id===z):null;o((A==null?void 0:A.id)??_[0].id)}}))},[e,a]),c.useEffect(()=>{if(!a)return;const _=!n;if(D.current){D.current=!1;const A=[];_||(A.push(_i(a).then(L)),A.push(Ul(a).then(G))),A.length&&Promise.all(A);return}T(null),m(null),p(null),C(new Set),d(null);const z=[Qe(a,"",null,null)];_||(z.push(_i(a).then(L)),z.push(Ul(a).then(G))),Promise.all(z)},[a,n]),c.useEffect(()=>{if(a===null)return;const _=setTimeout(()=>{Qe(a,H,E,u)},300);return()=>clearTimeout(_)},[H,a,u]),c.useEffect(()=>{a!==null&&(E!==null&&P("archive"),Qe(a,H,E,u))},[E,a,u]);const Kt=c.useCallback(_=>{o(_),d(null);const z=new URLSearchParams(window.location.search);z.set("archive",_),z.delete("collection");const A=z.toString();history.replaceState(null,"",window.location.pathname+(A?"?"+A:""))},[]);c.useEffect(()=>{if(!a){g([]);return}wo(a).then(g).catch(()=>g([]))},[a]);const Qn=c.useCallback(_=>{if(!n){const Q=_?y.find(J=>J.collection_uid===_):y.find(J=>J.slug==="_default_");if(Q!=null&&Q.requires_auth){t("login");return}}d(_),m(null),p(null),C(new Set),Qe(a,H,E,_);const z=new URLSearchParams(window.location.search);_?(z.set("collection",_),z.set("archive",a)):(z.delete("collection"),a&&z.set("archive",a));const A=z.toString();history.replaceState(null,"",window.location.pathname+(A?"?"+A:""))},[a,H,E,n,y,Qe]),Ot=c.useCallback(_=>{P(_),_==="tags"&&a&&Ul(a).then(G)},[a]);c.useEffect(()=>{if(Dr)return;const _=ty(j,R);window.location.pathname!==_&&history.pushState(null,"",_+window.location.search)},[j,R]);const Le=c.useCallback(_=>{p(_?_.entry_uid:null),m(_)},[]),bn=c.useCallback((_,z)=>{if(Ve.current.set(_.entry_uid,_),++Ne.current,z.shiftKey&&K.current!==null){z.preventDefault();const A=[...document.querySelectorAll("#entries-body [data-entry-uid]")],Q=A.findIndex(ke=>ke.dataset.entryUid===K.current),J=A.findIndex(ke=>ke.dataset.entryUid===_.entry_uid);if(Q===-1||J===-1){K.current=_.entry_uid,C(new Set([_.entry_uid])),Le(_);return}const le=Math.min(Q,J),_e=Math.max(Q,J),Ue=new Set(A.slice(le,_e+1).map(ke=>ke.dataset.entryUid));C(Ue),Ue.size===1&&Le(_)}else if(z.ctrlKey||z.metaKey){K.current=_.entry_uid;const A=new Set(k);if(A.has(_.entry_uid)?A.delete(_.entry_uid):A.add(_.entry_uid),C(A),A.size===0)Le(null);else if(A.size===1){const[Q]=A,J=Ve.current.get(Q)??h.find(le=>le.entry_uid===Q)??null;if(J)Le(J);else{const le=++Ne.current;Br(a,Q).then(_e=>{le===Ne.current&&(_e!=null&&_e.summary)&&Le(_e.summary)}).catch(()=>{})}}else Le(null)}else K.current=_.entry_uid,C(new Set([_.entry_uid])),Le(_)},[h,k,Le,a]),At=c.useCallback(_=>{T(_)},[]),w=c.useCallback(()=>{T(null)},[]),B=c.useCallback(()=>{a&&Ul(a).then(G)},[a]),O=c.useCallback((_,z)=>{E===_?T(z):E!=null&&E.startsWith(_+"/")&&T(z+E.slice(_.length))},[E]),$=c.useCallback(_=>{(E===_||E!=null&&E.startsWith(_+"/"))&&T(null)},[E]),F=c.useCallback((_,z)=>{v(A=>A.map(Q=>Q.entry_uid===_?{...Q,title:z}:Q)),m(A=>A&&A.entry_uid===_?{...A,title:z}:A),jt(A=>A&&A.summary.entry_uid===_?{...A,summary:{...A.summary,title:z}}:A)},[]),U=c.useCallback(()=>{if(!a||!f)return;const _=++Oe.current;Br(a,f.entry_uid).then(z=>{_===Oe.current&&jt(z)}).catch(()=>{})},[a,f]),ye=c.useCallback(_=>{const z=h.some(A=>A.entry_uid===_);S(A=>{const Q=new Set(A);return Q.add(_),Q}),v(A=>A.filter(Q=>Q.entry_uid!==_)),m(A=>(A==null?void 0:A.entry_uid)===_?null:A),p(A=>A===_?null:A),C(A=>{const Q=new Set(A);return Q.delete(_),Q}),z||Qe(a,H,E,u)},[h,a,H,E,u,Qe]),ue=c.useCallback(_=>{const z=new Set(h.map(Q=>Q.entry_uid)),A=[..._].some(Q=>!z.has(Q));S(Q=>{const J=new Set(Q);return _.forEach(le=>J.add(le)),J}),v(Q=>Q.filter(J=>!_.has(J.entry_uid))),C(new Set),m(null),p(null),A&&Qe(a,H,E,u)},[h,a,H,E,u,Qe]);c.useEffect(()=>{if(k.size>=2)p(null),m(null);else if(k.size===1){const[_]=k;p(_)}else p(null),m(null)},[k]);const Te=c.useMemo(()=>h.filter(_=>k.has(_.entry_uid)),[h,k]);c.useEffect(()=>{if(!N||f)return;const _=h.find(z=>z.entry_uid===N);_&&m(_)},[h,N,f]),c.useEffect(()=>{if(Dr)return;const _=new URLSearchParams(window.location.search).get("archive"),z=new URLSearchParams;H&&z.set("q",H),j==="archive"&&E&&z.set("tag",E),j==="archive"&&N&&z.set("entry",N),j==="archive"&&u?(z.set("collection",u),a&&z.set("archive",a)):_&&a&&z.set("archive",a);const A=z.toString(),Q=window.location.pathname+(A?"?"+A:"");window.location.pathname+window.location.search!==Q&&history.replaceState(null,"",Q)},[H,E,N,u,a,j]),c.useEffect(()=>{const _=z=>{var le,_e,Ue,ke;const A=z.key==="/"&&!z.metaKey&&!z.ctrlKey&&!z.altKey,Q=(z.metaKey||z.ctrlKey)&&z.key==="k";if(!A&&!Q)return;const J=(le=document.activeElement)==null?void 0:le.tagName;A&&(J==="INPUT"||J==="TEXTAREA"||J==="SELECT")||A&&((_e=document.activeElement)!=null&&_e.isContentEditable)||(z.preventDefault(),j==="archive"?((Ue=Je.current)==null||Ue.focus(),(ke=Je.current)==null||ke.select()):(tt.current=!0,P("archive")))};return document.addEventListener("keydown",_),()=>document.removeEventListener("keydown",_)},[j]),c.useEffect(()=>{const _=z=>{var Er,b;if(z.metaKey||z.ctrlKey||z.altKey||z.key!=="j"&&z.key!=="k")return;const A=(Er=document.activeElement)==null?void 0:Er.tagName;if(A==="INPUT"||A==="TEXTAREA"||A==="SELECT"||(b=document.activeElement)!=null&&b.isContentEditable)return;const Q=[...document.querySelectorAll("#entries-body [data-entry-uid]")];if(Q.length===0)return;const[J]=k.size===1?k:[null],le=J?Q.findIndex(q=>q.dataset.entryUid===J):-1,_e=z.key==="j"?Math.min(le+1,Q.length-1):Math.max(le-1,0);if(_e===le&&le!==-1)return;const Ue=Q[_e<0?0:_e],ke=Ue.dataset.entryUid;K.current=ke;const qn=++Ne.current;C(new Set([ke]));const Cr=Ve.current.get(ke)??h.find(q=>q.entry_uid===ke)??null;Cr?Le(Cr):Br(a,ke).then(q=>{qn===Ne.current&&(q!=null&&q.summary)&&Le(q.summary)}).catch(()=>{}),Ue.scrollIntoView({block:"nearest"}),z.preventDefault()};return document.addEventListener("keydown",_),()=>document.removeEventListener("keydown",_)},[k,h,Le,a]),c.useEffect(()=>{j==="archive"&&tt.current&&(tt.current=!1,requestAnimationFrame(()=>{var _,z;(_=Je.current)==null||_.focus(),(z=Je.current)==null||z.select()}))},[j]);const pe=c.useCallback(()=>{se(!0)},[]),$e=c.useCallback(()=>{se(!1)},[]),ie=c.useCallback(()=>{if(a)return Promise.allSettled([Qe(a,H,E,u),_i(a).then(L)])},[a,H,E,u,Qe]),nt=c.useCallback((_,z,A="error",Q=null)=>{if(A==="warning"&&ht&&z)return;const J=++ce.current;Se(le=>[...le,{id:J,text:_,locator:z,type:A,headline:Q}])},[ht]),ot=c.useCallback(_=>{Se(z=>z.filter(A=>A.id!==_))},[]),Qs=c.useCallback(()=>{sessionStorage.setItem("ublockWarningIgnored","true"),Vt(!0),Se(_=>_.filter(z=>!(z.type==="warning"&&z.locator)))},[]),qs=c.useCallback(_=>{at(z=>[...z,_])},[]),Ks=c.useCallback(_=>{at(z=>z.filter(A=>A.id!==_))},[]),[Tn,_r]=c.useState(null),[Pn,jl]=c.useState(null),Sl=c.useCallback(()=>{f&&_r(f.entry_uid)},[f]),Xs=c.useCallback(()=>_r(null),[]),Js=c.useCallback((_,z)=>{jl({src:_,entry:z})},[]),Gs=c.useCallback(()=>jl(null),[]);return c.useEffect(()=>{_r(null)},[f]),c.useEffect(()=>{const _=z=>{var Q,J,le;if(z.key!=="Escape"||ne||Tn)return;const A=(Q=document.activeElement)==null?void 0:Q.tagName;A==="INPUT"||A==="TEXTAREA"||A==="SELECT"||k.size>0&&(z.preventDefault(),C(new Set),(le=(J=document.activeElement)==null?void 0:J.blur)==null||le.call(J))};return window.addEventListener("keydown",_),()=>window.removeEventListener("keydown",_)},[ne,Tn,k]),c.useEffect(()=>(document.body.classList.toggle("has-audio-bar",!!Pn),()=>document.body.classList.remove("has-audio-bar")),[Pn]),Dr?s.jsx(Kg,{archiveId:Dr.archiveId,entryUid:Dr.entryUid}):e==="loading"?s.jsx("div",{className:"auth-loading",children:"Loading\\u2026"}):e==="setup"?s.jsx(Hm,{onComplete:()=>t("login")}):e==="login"?s.jsx(Um,{onLogin:_=>{r(_),t("authenticated")}}):s.jsx(Vs.Provider,{value:{currentUser:n,setCurrentUser:r},children:s.jsxs(s.Fragment,{children:[s.jsx(Wm,{archives:l,archiveId:a,onArchiveChange:Kt,view:j,onViewChange:Ot,onCaptureClick:pe,collections:y,selectedCollectionUid:u,onCollectionChange:Qn,isPublicSession:!n,onSignInClick:()=>t("login")}),s.jsxs("main",{className:"app-shell",children:[s.jsxs("div",{className:"workspace",children:[j==="archive"&&s.jsxs("div",{className:"toolbar",children:[s.jsxs("div",{className:"search-field",children:[s.jsx("span",{className:"ico","aria-hidden":"true",children:s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[s.jsx("circle",{cx:"11",cy:"11",r:"7"}),s.jsx("line",{x1:"16.5",y1:"16.5",x2:"21",y2:"21"})]})}),s.jsx("input",{ref:Je,className:"search-input",type:"search","aria-label":"Search archive","aria-busy":Be,placeholder:"Search titles, URLs, types, tags…",value:H,onChange:_=>Y(_.target.value)}),s.jsx("span",{className:"kbd",children:"⌘K"})]}),s.jsxs("span",{className:"result-count",children:[te&&s.jsxs(s.Fragment,{children:[s.jsx("b",{children:te.split(" ")[0]})," ",te.split(" ").slice(1).join(" ")]}),E&&s.jsxs("button",{className:"tag-filter-badge",onClick:w,children:["× ",qt?cf(E):E]})]})]}),j==="archive"&&s.jsx(sg,{entries:h,selectedUids:k,onRowClick:bn,archiveId:a,pendingCaptures:Ie,deletedUids:x,isPublicSession:!n}),j==="runs"&&s.jsx(og,{runs:M}),j==="admin"&&s.jsx(cg,{archives:l}),j==="tags"&&s.jsx(dg,{archiveId:a,tagNodes:V,tagFilter:E,onTagFilterSet:At,onViewChange:Ot,onTagRenamed:O,onTagDeleted:$,onTagsRefresh:B,humanizeTags:qt}),j==="collections"&&s.jsx(pg,{archiveId:a}),j==="settings"&&s.jsx(mg,{tab:R,onTabChange:X,archiveId:a})]}),s.jsx(Cg,{archiveId:a,selectedEntry:f,selectedUids:k,selectedEntries:Te,detail:Qt,onTagFilterSet:At,tagNodes:V,onTagsRefresh:B,onEntryTitleChange:F,onEntryDeleted:ye,onBulkDeleted:ue,humanizeTags:qt,onDetailRefresh:U,onOpenPreview:Sl,onPlay:Js,isPublicSession:!n})]}),Tn&&f&&f.entry_uid===Tn&&s.jsx(Qg,{archiveId:a,entry:f,detail:Qt,onClose:Xs}),Pn&&s.jsx(qg,{entry:Pn.entry,src:Pn.src,archiveId:a,onClose:Gs}),s.jsx(Km,{open:ne,archiveId:a,onClose:$e,onCaptured:ie,onToast:nt,activeJobs:Ie,onJobStarted:qs,onJobSettled:Ks}),s.jsx(Jg,{toasts:Z,onDismiss:ot,onIgnoreUblock:Qs})]})})}af(document.getElementById("root")).render(s.jsx(c.StrictMode,{children:s.jsx(ny,{})}));
|