Upload folder using huggingface_hub
Browse files- .hfignore +2 -0
- Dockerfile +9 -5
- pinchtab/dashboard/dist/assets/index-5Gsrp431.css +1 -0
- pinchtab/dashboard/dist/assets/index-BWgBAbhl.js +0 -0
- pinchtab/dashboard/dist/assets/vendor-react-DZgUP1fA.js +3 -0
- pinchtab/dashboard/dist/assets/vendor-ui-B7IABBe3.js +0 -0
- pinchtab/dashboard/dist/favicon.png +0 -0
- pinchtab/dashboard/dist/index.html +16 -0
- pinchtab/internal/assets/readability.js +0 -0
- pinchtab/internal/assets/stealth.js +0 -0
.hfignore
CHANGED
|
@@ -8,6 +8,8 @@ __pycache__/
|
|
| 8 |
.venv
|
| 9 |
venv/
|
| 10 |
node_modules/
|
|
|
|
|
|
|
| 11 |
pinchtab/dashboard/node_modules/
|
| 12 |
pinchtab/dashboard/dist/
|
| 13 |
pinchtab/pinchtab
|
|
|
|
| 8 |
.venv
|
| 9 |
venv/
|
| 10 |
node_modules/
|
| 11 |
+
.cache/
|
| 12 |
+
**/.cache/
|
| 13 |
pinchtab/dashboard/node_modules/
|
| 14 |
pinchtab/dashboard/dist/
|
| 15 |
pinchtab/pinchtab
|
Dockerfile
CHANGED
|
@@ -1,16 +1,20 @@
|
|
| 1 |
-
# Build
|
| 2 |
-
FROM
|
| 3 |
WORKDIR /app/pinchtab/dashboard
|
| 4 |
-
COPY pinchtab/dashboard/package.json ./
|
| 5 |
-
RUN
|
| 6 |
COPY pinchtab/dashboard/ .
|
| 7 |
-
RUN
|
| 8 |
|
|
|
|
| 9 |
FROM golang:1.25-alpine AS go-builder
|
|
|
|
| 10 |
WORKDIR /app/pinchtab
|
| 11 |
COPY pinchtab/go.mod pinchtab/go.sum ./
|
| 12 |
RUN go mod download
|
| 13 |
COPY pinchtab/ .
|
|
|
|
|
|
|
| 14 |
COPY --from=dashboard-builder /app/pinchtab/dashboard/dist/ internal/dashboard/dashboard/
|
| 15 |
RUN mv internal/dashboard/dashboard/index.html internal/dashboard/dashboard/dashboard.html || true
|
| 16 |
RUN go build -o pinchtab ./cmd/pinchtab
|
|
|
|
| 1 |
+
# Stage 1: Build the React dashboard with Bun.
|
| 2 |
+
FROM oven/bun:1 AS dashboard-builder
|
| 3 |
WORKDIR /app/pinchtab/dashboard
|
| 4 |
+
COPY pinchtab/dashboard/package.json pinchtab/dashboard/bun.lock ./
|
| 5 |
+
RUN bun install --frozen-lockfile
|
| 6 |
COPY pinchtab/dashboard/ .
|
| 7 |
+
RUN bun run build
|
| 8 |
|
| 9 |
+
# Stage 2: Compile the Go binary.
|
| 10 |
FROM golang:1.25-alpine AS go-builder
|
| 11 |
+
RUN apk add --no-cache git
|
| 12 |
WORKDIR /app/pinchtab
|
| 13 |
COPY pinchtab/go.mod pinchtab/go.sum ./
|
| 14 |
RUN go mod download
|
| 15 |
COPY pinchtab/ .
|
| 16 |
+
# Create missing embedded files if they don't exist
|
| 17 |
+
RUN touch internal/assets/stealth.js internal/assets/readability.js
|
| 18 |
COPY --from=dashboard-builder /app/pinchtab/dashboard/dist/ internal/dashboard/dashboard/
|
| 19 |
RUN mv internal/dashboard/dashboard/index.html internal/dashboard/dashboard/dashboard.html || true
|
| 20 |
RUN go build -o pinchtab ./cmd/pinchtab
|
pinchtab/dashboard/dist/assets/index-5Gsrp431.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", ui-monospace, monospace;--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-emerald-400:oklch(76.5% .177 163.223);--color-indigo-500:oklch(58.5% .233 277.117);--color-gray-400:oklch(70.7% .022 261.325);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--drop-shadow-md:0 3px 3px #0000001f;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg-app:#0f1117;--color-bg-surface:#1a1d27;--color-bg-elevated:#222633;--color-bg-hover:#222633;--color-border-subtle:#ffffff1a;--color-border-default:#3b82f62e;--color-text-primary:#e2e8f0;--color-text-secondary:#94a3b8;--color-text-muted:#64748b;--color-primary:#60a5fa;--color-primary-hover:#93c5fd;--color-success:#22c55e;--color-warning:#fbbf24;--color-destructive:#ef4444;--color-info:#93c5fd}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.bottom-2{bottom:calc(var(--spacing) * 2)}.z-10{z-index:10}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mt-2{margin-top:calc(var(--spacing) * -2)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-video{aspect-ratio:var(--aspect-video)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-20{height:calc(var(--spacing) * 20)}.h-50{height:calc(var(--spacing) * 50)}.h-56{height:calc(var(--spacing) * 56)}.h-\[4\.5rem\]{height:4.5rem}.h-\[60px\]{height:60px}.h-full{height:100%}.h-screen{height:100vh}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[22rem\]{max-height:22rem}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-48{min-height:calc(var(--spacing) * 48)}.min-h-112{min-height:calc(var(--spacing) * 112)}.min-h-\[180px\]{min-height:180px}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-16{width:calc(var(--spacing) * 16)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[4\.5rem\]{width:4.5rem}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-50{max-width:calc(var(--spacing) * 50)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-16{min-width:calc(var(--spacing) * 16)}.min-w-32{min-width:calc(var(--spacing) * 32)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.resize-y{resize:vertical}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border-subtle{border-color:var(--color-border-subtle)}.border-border-subtle\/70{border-color:#ffffff12}@supports (color:color-mix(in lab,red,red)){.border-border-subtle\/70{border-color:color-mix(in oklab,var(--color-border-subtle) 70%,transparent)}}.border-border-subtle\/80{border-color:#ffffff15}@supports (color:color-mix(in lab,red,red)){.border-border-subtle\/80{border-color:color-mix(in oklab,var(--color-border-subtle) 80%,transparent)}}.border-destructive\/30{border-color:#ef44444d}@supports (color:color-mix(in lab,red,red)){.border-destructive\/30{border-color:color-mix(in oklab,var(--color-destructive) 30%,transparent)}}.border-destructive\/35{border-color:#ef444459}@supports (color:color-mix(in lab,red,red)){.border-destructive\/35{border-color:color-mix(in oklab,var(--color-destructive) 35%,transparent)}}.border-destructive\/50{border-color:#ef444480}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--color-destructive) 50%,transparent)}}.border-info\/35{border-color:#93c5fd59}@supports (color:color-mix(in lab,red,red)){.border-info\/35{border-color:color-mix(in oklab,var(--color-info) 35%,transparent)}}.border-primary{border-color:var(--color-primary)}.border-primary\/20{border-color:#60a5fa33}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--color-primary) 20%,transparent)}}.border-primary\/30{border-color:#60a5fa4d}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,var(--color-primary) 30%,transparent)}}.border-primary\/35{border-color:#60a5fa59}@supports (color:color-mix(in lab,red,red)){.border-primary\/35{border-color:color-mix(in oklab,var(--color-primary) 35%,transparent)}}.border-success\/20{border-color:#22c55e33}@supports (color:color-mix(in lab,red,red)){.border-success\/20{border-color:color-mix(in oklab,var(--color-success) 20%,transparent)}}.border-success\/25{border-color:#22c55e40}@supports (color:color-mix(in lab,red,red)){.border-success\/25{border-color:color-mix(in oklab,var(--color-success) 25%,transparent)}}.border-success\/35{border-color:#22c55e59}@supports (color:color-mix(in lab,red,red)){.border-success\/35{border-color:color-mix(in oklab,var(--color-success) 35%,transparent)}}.border-transparent{border-color:#0000}.border-warning\/25{border-color:#fbbf2440}@supports (color:color-mix(in lab,red,red)){.border-warning\/25{border-color:color-mix(in oklab,var(--color-warning) 25%,transparent)}}.border-warning\/35{border-color:#fbbf2459}@supports (color:color-mix(in lab,red,red)){.border-warning\/35{border-color:color-mix(in oklab,var(--color-warning) 35%,transparent)}}.border-white\/\[0\.08\]{border-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.border-white\/\[0\.08\]{border-color:color-mix(in oklab,var(--color-white) 8%,transparent)}}.border-yellow-500{border-color:var(--color-yellow-500)}.bg-\[rgb\(var\(--brand-surface-code-rgb\)\/0\.4\)\]{background-color:rgb(var(--brand-surface-code-rgb)/.4)}.bg-\[rgb\(var\(--brand-surface-code-rgb\)\/0\.72\)\]{background-color:rgb(var(--brand-surface-code-rgb)/.72)}.bg-bg-app{background-color:var(--color-bg-app)}.bg-bg-app\/95{background-color:#0f1117f2}@supports (color:color-mix(in lab,red,red)){.bg-bg-app\/95{background-color:color-mix(in oklab,var(--color-bg-app) 95%,transparent)}}.bg-bg-elevated{background-color:var(--color-bg-elevated)}.bg-bg-hover{background-color:var(--color-bg-hover)}.bg-bg-surface{background-color:var(--color-bg-surface)}.bg-bg-surface\/95{background-color:#1a1d27f2}@supports (color:color-mix(in lab,red,red)){.bg-bg-surface\/95{background-color:color-mix(in oklab,var(--color-bg-surface) 95%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/5{background-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.bg-black\/5{background-color:color-mix(in oklab,var(--color-black) 5%,transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.bg-black\/20{background-color:#0003}@supports (color:color-mix(in lab,red,red)){.bg-black\/20{background-color:color-mix(in oklab,var(--color-black) 20%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab,red,red)){.bg-black\/90{background-color:color-mix(in oklab,var(--color-black) 90%,transparent)}}.bg-destructive{background-color:var(--color-destructive)}.bg-destructive\/10{background-color:#ef44441a}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--color-destructive) 10%,transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-indigo-500\/70{background-color:#625fffb3}@supports (color:color-mix(in lab,red,red)){.bg-indigo-500\/70{background-color:color-mix(in oklab,var(--color-indigo-500) 70%,transparent)}}.bg-info\/10{background-color:#93c5fd1a}@supports (color:color-mix(in lab,red,red)){.bg-info\/10{background-color:color-mix(in oklab,var(--color-info) 10%,transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-primary\/10{background-color:#60a5fa1a}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary) 10%,transparent)}}.bg-primary\/20{background-color:#60a5fa33}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--color-primary) 20%,transparent)}}.bg-primary\/30{background-color:#60a5fa4d}@supports (color:color-mix(in lab,red,red)){.bg-primary\/30{background-color:color-mix(in oklab,var(--color-primary) 30%,transparent)}}.bg-primary\/\[0\.08\]{background-color:#60a5fa14}@supports (color:color-mix(in lab,red,red)){.bg-primary\/\[0\.08\]{background-color:color-mix(in oklab,var(--color-primary) 8%,transparent)}}.bg-success{background-color:var(--color-success)}.bg-success\/10{background-color:#22c55e1a}@supports (color:color-mix(in lab,red,red)){.bg-success\/10{background-color:color-mix(in oklab,var(--color-success) 10%,transparent)}}.bg-success\/15{background-color:#22c55e26}@supports (color:color-mix(in lab,red,red)){.bg-success\/15{background-color:color-mix(in oklab,var(--color-success) 15%,transparent)}}.bg-text-muted{background-color:var(--color-text-muted)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.bg-warning\/10{background-color:#fbbf241a}@supports (color:color-mix(in lab,red,red)){.bg-warning\/10{background-color:color-mix(in oklab,var(--color-warning) 10%,transparent)}}.bg-warning\/15{background-color:#fbbf2426}@supports (color:color-mix(in lab,red,red)){.bg-warning\/15{background-color:color-mix(in oklab,var(--color-warning) 15%,transparent)}}.bg-white\/2{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.bg-white\/2{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.bg-white\/\[0\.04\]{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-white) 4%,transparent)}}.bg-yellow-500{background-color:var(--color-yellow-500)}.object-contain{object-fit:contain}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.68rem\]{font-size:.68rem}.text-\[0\.72rem\]{font-size:.72rem}.text-\[8px\]{font-size:8px}.text-\[10px\]{font-size:10px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-black{color:var(--color-black)}.text-destructive{color:var(--color-destructive)}.text-gray-400{color:var(--color-gray-400)}.text-green-400{color:var(--color-green-400)}.text-info{color:var(--color-info)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-text-muted{color:var(--color-text-muted)}.text-text-primary{color:var(--color-text-primary)}.text-text-secondary{color:var(--color-text-secondary)}.text-warning{color:var(--color-warning)}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow-\[0_0_20px_rgb\(var\(--brand-accent-rgb\)\/0\.08\)\]{--tw-shadow:0 0 20px var(--tw-shadow-color,rgb(var(--brand-accent-rgb)/.08));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_24px_rgb\(var\(--brand-accent-rgb\)\/0\.18\)\]{--tw-shadow:0 0 24px var(--tw-shadow-color,rgb(var(--brand-accent-rgb)/.18));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_30px_rgb\(var\(--brand-accent-rgb\)\/0\.08\)\]{--tw-shadow:0 0 30px var(--tw-shadow-color,rgb(var(--brand-accent-rgb)/.08));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-text-muted::placeholder{color:var(--color-text-muted)}@media(hover:hover){.hover\:border-border-default:hover{border-color:var(--color-border-default)}.hover\:border-border-subtle:hover{border-color:var(--color-border-subtle)}.hover\:border-primary\/30:hover{border-color:#60a5fa4d}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,var(--color-primary) 30%,transparent)}}.hover\:bg-bg-elevated:hover{background-color:var(--color-bg-elevated)}.hover\:bg-bg-elevated\/80:hover{background-color:#222633cc}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bg-elevated\/80:hover{background-color:color-mix(in oklab,var(--color-bg-elevated) 80%,transparent)}}.hover\:bg-bg-hover:hover{background-color:var(--color-bg-hover)}.hover\:bg-bg-hover\/70:hover{background-color:#222633b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bg-hover\/70:hover{background-color:color-mix(in oklab,var(--color-bg-hover) 70%,transparent)}}.hover\:bg-border-subtle:hover{background-color:var(--color-border-subtle)}.hover\:bg-destructive\/15:hover{background-color:#ef444426}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/15:hover{background-color:color-mix(in oklab,var(--color-destructive) 15%,transparent)}}.hover\:bg-primary-hover:hover{background-color:var(--color-primary-hover)}.hover\:bg-primary\/40:hover{background-color:#60a5fa66}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/40:hover{background-color:color-mix(in oklab,var(--color-primary) 40%,transparent)}}.hover\:bg-white\/3:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/3:hover{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.hover\:bg-white\/\[0\.02\]:hover{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.02\]:hover{background-color:color-mix(in oklab,var(--color-white) 2%,transparent)}}.hover\:bg-white\/\[0\.03\]:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.03\]:hover{background-color:color-mix(in oklab,var(--color-white) 3%,transparent)}}.hover\:bg-white\/\[0\.08\]:hover{background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.08\]:hover{background-color:color-mix(in oklab,var(--color-white) 8%,transparent)}}.hover\:text-text-primary:hover{color:var(--color-text-primary)}.hover\:text-text-secondary:hover{color:var(--color-text-secondary)}}.focus\:border-primary:focus{border-color:var(--color-primary)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-primary\/20:focus{--tw-ring-color:#60a5fa33}@supports (color:color-mix(in lab,red,red)){.focus\:ring-primary\/20:focus{--tw-ring-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:rounded-sm:focus-visible{border-radius:var(--radius-sm)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-primary\/30:focus-visible{--tw-ring-color:#60a5fa4d}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-primary\/30:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-primary) 30%, transparent)}}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-\[0\.98\]:active{scale:.98}.active\:bg-white\/10:active{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.active\:bg-white\/10:active{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:flex-row{flex-direction:row}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}}@media(min-width:64rem){.lg\:max-h-none{max-height:none}.lg\:w-72{width:calc(var(--spacing) * 72)}.lg\:w-80{width:calc(var(--spacing) * 80)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:p-6{padding:calc(var(--spacing) * 6)}.lg\:px-5{padding-inline:calc(var(--spacing) * 5)}}@media(min-width:80rem){.xl\:w-80{width:calc(var(--spacing) * 80)}.xl\:shrink-0{flex-shrink:0}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:items-center{align-items:center}.xl\:justify-between{justify-content:space-between}}.dashboard-shell{background-color:rgb(var(--brand-bg-rgb));color:rgb(var(--brand-text-rgb))}.dashboard-panel{border:1px solid rgb(var(--brand-border-subtle-rgb) / .1);background:linear-gradient(180deg,rgb(var(--brand-surface-rgb) / .98),rgb(var(--brand-surface-rgb) / .9));box-shadow:var(--panel-shadow);border-radius:16px}.dashboard-panel-hover{transition:background-color .18s,border-color .18s,transform .18s,box-shadow .18s}.dashboard-panel-hover:hover{border-color:rgb(var(--brand-border-rgb) / .18);background:rgb(var(--brand-surface-hover-rgb));box-shadow:0 0 0 1px rgb(var(--brand-border-rgb) / .06),0 24px 50px #0000004d}.dashboard-panel-selected{border-color:rgb(var(--brand-border-rgb) / .32);background:linear-gradient(180deg,rgb(var(--brand-accent-rgb) / .12),rgb(var(--brand-surface-hover-rgb) / .96));box-shadow:0 0 0 1px rgb(var(--brand-border-rgb) / .08),0 0 36px rgb(var(--brand-accent-rgb) / .08)}.dashboard-section-label{color:rgb(var(--brand-accent-rgb));letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:600}.dashboard-section-title{color:rgb(var(--brand-text-dim-rgb));letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:600}.dashboard-mono{font-family:var(--font-mono)}.dashboard-grid{background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-position:50%;background-size:18px 18px}}:root,html[data-site-mode=agent]{--brand-bg-rgb:15 17 23;--brand-surface-rgb:26 29 39;--brand-surface-hover-rgb:34 38 51;--brand-surface-code-rgb:20 23 32;--brand-border-rgb:59 130 246;--brand-border-subtle-rgb:255 255 255;--brand-text-rgb:226 232 240;--brand-text-muted-rgb:148 163 184;--brand-text-dim-rgb:100 116 139;--brand-accent-rgb:96 165 250;--brand-accent-light-rgb:147 197 253;--brand-accent-dark-rgb:37 99 235;--brand-accent-contrast-rgb:255 255 255;--theme-glow-rgb:96 165 250;--selection-bg-rgb:59 130 246;--panel-shadow:0 0 0 1px rgb(var(--brand-border-rgb) / .03), 0 24px 50px #00000042;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:rgb(var(--brand-bg-rgb));min-height:100vh;color:rgb(var(--brand-text-rgb));font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none;margin:0;line-height:1.6}#root{min-height:100vh}::selection{background-color:rgb(var(--selection-bg-rgb) / .95);color:#000}a{color:inherit;text-decoration:none;transition:color .2s}a:not([class]){color:rgb(var(--brand-accent-rgb))}a:not([class]):hover{color:rgb(var(--brand-accent-light-rgb))}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);letter-spacing:-.02em;font-weight:700;line-height:1.1}code{background-color:rgb(var(--brand-accent-rgb) / .1);color:rgb(var(--brand-accent-light-rgb));font-family:var(--font-mono);border-radius:4px;padding:2px 6px;font-size:.85em}pre{border:1px solid rgb(var(--brand-border-subtle-rgb) / .12);background-color:rgb(var(--brand-surface-code-rgb));color:rgb(var(--brand-text-rgb));border-radius:16px;padding:1.5rem;font-size:.85rem;line-height:1.8;overflow-x:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:rgb(var(--brand-surface-hover-rgb));border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:rgb(var(--brand-text-dim-rgb) / .9)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes navbar-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.navbar-icon-btn.spinning{animation:navbar-spin .6s ease-in-out}.navbar-tab.active:after{content:"";position:absolute;bottom:6px;left:12px;right:12px;height:2px;background:var(--color-primary);border-radius:9999px;box-shadow:0 0 0 1px color-mix(in srgb,var(--color-primary) 28%,transparent),0 0 18px color-mix(in srgb,var(--color-primary) 24%,transparent)}
|
pinchtab/dashboard/dist/assets/index-BWgBAbhl.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
pinchtab/dashboard/dist/assets/vendor-react-DZgUP1fA.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
function ct(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const a in n)if(a!=="default"&&!(a in e)){const u=Object.getOwnPropertyDescriptor(n,a);u&&Object.defineProperty(e,a,u.get?u:{enumerable:!0,get:()=>n[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function ft(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var pe={exports:{}},v={};var Te;function dt(){if(Te)return v;Te=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),s=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),o=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),d=Symbol.for("react.activity"),y=Symbol.iterator;function R(i){return i===null||typeof i!="object"?null:(i=y&&i[y]||i["@@iterator"],typeof i=="function"?i:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,m={};function S(i,p,C){this.props=i,this.context=p,this.refs=m,this.updater=C||w}S.prototype.isReactComponent={},S.prototype.setState=function(i,p){if(typeof i!="object"&&typeof i!="function"&&i!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,i,p,"setState")},S.prototype.forceUpdate=function(i){this.updater.enqueueForceUpdate(this,i,"forceUpdate")};function _(){}_.prototype=S.prototype;function b(i,p,C){this.props=i,this.context=p,this.refs=m,this.updater=C||w}var $=b.prototype=new _;$.constructor=b,g($,S.prototype),$.isPureReactComponent=!0;var k=Array.isArray;function I(){}var x={H:null,A:null,T:null,S:null},j=Object.prototype.hasOwnProperty;function W(i,p,C){var E=C.ref;return{$$typeof:e,type:i,key:p,ref:E!==void 0?E:null,props:C}}function X(i,p){return W(i.type,p,i.props)}function Q(i){return typeof i=="object"&&i!==null&&i.$$typeof===e}function he(i){var p={"=":"=0",":":"=2"};return"$"+i.replace(/[=:]/g,function(C){return p[C]})}var Z=/\/+/g;function q(i,p){return typeof i=="object"&&i!==null&&i.key!=null?he(""+i.key):p.toString(36)}function H(i){switch(i.status){case"fulfilled":return i.value;case"rejected":throw i.reason;default:switch(typeof i.status=="string"?i.then(I,I):(i.status="pending",i.then(function(p){i.status==="pending"&&(i.status="fulfilled",i.value=p)},function(p){i.status==="pending"&&(i.status="rejected",i.reason=p)})),i.status){case"fulfilled":return i.value;case"rejected":throw i.reason}}throw i}function K(i,p,C,E,P){var T=typeof i;(T==="undefined"||T==="boolean")&&(i=null);var L=!1;if(i===null)L=!0;else switch(T){case"bigint":case"string":case"number":L=!0;break;case"object":switch(i.$$typeof){case e:case t:L=!0;break;case h:return L=i._init,K(L(i._payload),p,C,E,P)}}if(L)return P=P(i),L=E===""?"."+q(i,0):E,k(P)?(C="",L!=null&&(C=L.replace(Z,"$&/")+"/"),K(P,p,C,"",function(st){return st})):P!=null&&(Q(P)&&(P=X(P,C+(P.key==null||i&&i.key===P.key?"":(""+P.key).replace(Z,"$&/")+"/")+L)),p.push(P)),1;L=0;var U=E===""?".":E+":";if(k(i))for(var N=0;N<i.length;N++)E=i[N],T=U+q(E,N),L+=K(E,p,C,T,P);else if(N=R(i),typeof N=="function")for(i=N.call(i),N=0;!(E=i.next()).done;)E=E.value,T=U+q(E,N++),L+=K(E,p,C,T,P);else if(T==="object"){if(typeof i.then=="function")return K(H(i),p,C,E,P);throw p=String(i),Error("Objects are not valid as a React child (found: "+(p==="[object Object]"?"object with keys {"+Object.keys(i).join(", ")+"}":p)+"). If you meant to render a collection of children, use an array instead.")}return L}function oe(i,p,C){if(i==null)return i;var E=[],P=0;return K(i,E,"","",function(T){return p.call(C,T,P++)}),E}function ut(i){if(i._status===-1){var p=i._result;p=p(),p.then(function(C){(i._status===0||i._status===-1)&&(i._status=1,i._result=C)},function(C){(i._status===0||i._status===-1)&&(i._status=2,i._result=C)}),i._status===-1&&(i._status=0,i._result=p)}if(i._status===1)return i._result.default;throw i._result}var Pe=typeof reportError=="function"?reportError:function(i){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var p=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof i=="object"&&i!==null&&typeof i.message=="string"?String(i.message):String(i),error:i});if(!window.dispatchEvent(p))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",i);return}console.error(i)},lt={map:oe,forEach:function(i,p,C){oe(i,function(){p.apply(this,arguments)},C)},count:function(i){var p=0;return oe(i,function(){p++}),p},toArray:function(i){return oe(i,function(p){return p})||[]},only:function(i){if(!Q(i))throw Error("React.Children.only expected to receive a single React element child.");return i}};return v.Activity=d,v.Children=lt,v.Component=S,v.Fragment=r,v.Profiler=a,v.PureComponent=b,v.StrictMode=n,v.Suspense=l,v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=x,v.__COMPILER_RUNTIME={__proto__:null,c:function(i){return x.H.useMemoCache(i)}},v.cache=function(i){return function(){return i.apply(null,arguments)}},v.cacheSignal=function(){return null},v.cloneElement=function(i,p,C){if(i==null)throw Error("The argument must be a React element, but you passed "+i+".");var E=g({},i.props),P=i.key;if(p!=null)for(T in p.key!==void 0&&(P=""+p.key),p)!j.call(p,T)||T==="key"||T==="__self"||T==="__source"||T==="ref"&&p.ref===void 0||(E[T]=p[T]);var T=arguments.length-2;if(T===1)E.children=C;else if(1<T){for(var L=Array(T),U=0;U<T;U++)L[U]=arguments[U+2];E.children=L}return W(i.type,P,E)},v.createContext=function(i){return i={$$typeof:s,_currentValue:i,_currentValue2:i,_threadCount:0,Provider:null,Consumer:null},i.Provider=i,i.Consumer={$$typeof:u,_context:i},i},v.createElement=function(i,p,C){var E,P={},T=null;if(p!=null)for(E in p.key!==void 0&&(T=""+p.key),p)j.call(p,E)&&E!=="key"&&E!=="__self"&&E!=="__source"&&(P[E]=p[E]);var L=arguments.length-2;if(L===1)P.children=C;else if(1<L){for(var U=Array(L),N=0;N<L;N++)U[N]=arguments[N+2];P.children=U}if(i&&i.defaultProps)for(E in L=i.defaultProps,L)P[E]===void 0&&(P[E]=L[E]);return W(i,T,P)},v.createRef=function(){return{current:null}},v.forwardRef=function(i){return{$$typeof:f,render:i}},v.isValidElement=Q,v.lazy=function(i){return{$$typeof:h,_payload:{_status:-1,_result:i},_init:ut}},v.memo=function(i,p){return{$$typeof:o,type:i,compare:p===void 0?null:p}},v.startTransition=function(i){var p=x.T,C={};x.T=C;try{var E=i(),P=x.S;P!==null&&P(C,E),typeof E=="object"&&E!==null&&typeof E.then=="function"&&E.then(I,Pe)}catch(T){Pe(T)}finally{p!==null&&C.types!==null&&(p.types=C.types),x.T=p}},v.unstable_useCacheRefresh=function(){return x.H.useCacheRefresh()},v.use=function(i){return x.H.use(i)},v.useActionState=function(i,p,C){return x.H.useActionState(i,p,C)},v.useCallback=function(i,p){return x.H.useCallback(i,p)},v.useContext=function(i){return x.H.useContext(i)},v.useDebugValue=function(){},v.useDeferredValue=function(i,p){return x.H.useDeferredValue(i,p)},v.useEffect=function(i,p){return x.H.useEffect(i,p)},v.useEffectEvent=function(i){return x.H.useEffectEvent(i)},v.useId=function(){return x.H.useId()},v.useImperativeHandle=function(i,p,C){return x.H.useImperativeHandle(i,p,C)},v.useInsertionEffect=function(i,p){return x.H.useInsertionEffect(i,p)},v.useLayoutEffect=function(i,p){return x.H.useLayoutEffect(i,p)},v.useMemo=function(i,p){return x.H.useMemo(i,p)},v.useOptimistic=function(i,p){return x.H.useOptimistic(i,p)},v.useReducer=function(i,p,C){return x.H.useReducer(i,p,C)},v.useRef=function(i){return x.H.useRef(i)},v.useState=function(i){return x.H.useState(i)},v.useSyncExternalStore=function(i,p,C){return x.H.useSyncExternalStore(i,p,C)},v.useTransition=function(){return x.H.useTransition()},v.version="19.2.4",v}var Le;function Be(){return Le||(Le=1,pe.exports=dt()),pe.exports}var c=Be();const te=ft(c),Kr=ct({__proto__:null,default:te},[c]);var me={exports:{}},A={};var Oe;function ht(){if(Oe)return A;Oe=1;var e=Be();function t(l){var o="https://react.dev/errors/"+l;if(1<arguments.length){o+="?args[]="+encodeURIComponent(arguments[1]);for(var h=2;h<arguments.length;h++)o+="&args[]="+encodeURIComponent(arguments[h])}return"Minified React error #"+l+"; visit "+o+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(){}var n={d:{f:r,r:function(){throw Error(t(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for("react.portal");function u(l,o,h){var d=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:d==null?null:""+d,children:l,containerInfo:o,implementation:h}}var s=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function f(l,o){if(l==="font")return"";if(typeof o=="string")return o==="use-credentials"?o:""}return A.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=n,A.createPortal=function(l,o){var h=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!o||o.nodeType!==1&&o.nodeType!==9&&o.nodeType!==11)throw Error(t(299));return u(l,o,null,h)},A.flushSync=function(l){var o=s.T,h=n.p;try{if(s.T=null,n.p=2,l)return l()}finally{s.T=o,n.p=h,n.d.f()}},A.preconnect=function(l,o){typeof l=="string"&&(o?(o=o.crossOrigin,o=typeof o=="string"?o==="use-credentials"?o:"":void 0):o=null,n.d.C(l,o))},A.prefetchDNS=function(l){typeof l=="string"&&n.d.D(l)},A.preinit=function(l,o){if(typeof l=="string"&&o&&typeof o.as=="string"){var h=o.as,d=f(h,o.crossOrigin),y=typeof o.integrity=="string"?o.integrity:void 0,R=typeof o.fetchPriority=="string"?o.fetchPriority:void 0;h==="style"?n.d.S(l,typeof o.precedence=="string"?o.precedence:void 0,{crossOrigin:d,integrity:y,fetchPriority:R}):h==="script"&&n.d.X(l,{crossOrigin:d,integrity:y,fetchPriority:R,nonce:typeof o.nonce=="string"?o.nonce:void 0})}},A.preinitModule=function(l,o){if(typeof l=="string")if(typeof o=="object"&&o!==null){if(o.as==null||o.as==="script"){var h=f(o.as,o.crossOrigin);n.d.M(l,{crossOrigin:h,integrity:typeof o.integrity=="string"?o.integrity:void 0,nonce:typeof o.nonce=="string"?o.nonce:void 0})}}else o==null&&n.d.M(l)},A.preload=function(l,o){if(typeof l=="string"&&typeof o=="object"&&o!==null&&typeof o.as=="string"){var h=o.as,d=f(h,o.crossOrigin);n.d.L(l,h,{crossOrigin:d,integrity:typeof o.integrity=="string"?o.integrity:void 0,nonce:typeof o.nonce=="string"?o.nonce:void 0,type:typeof o.type=="string"?o.type:void 0,fetchPriority:typeof o.fetchPriority=="string"?o.fetchPriority:void 0,referrerPolicy:typeof o.referrerPolicy=="string"?o.referrerPolicy:void 0,imageSrcSet:typeof o.imageSrcSet=="string"?o.imageSrcSet:void 0,imageSizes:typeof o.imageSizes=="string"?o.imageSizes:void 0,media:typeof o.media=="string"?o.media:void 0})}},A.preloadModule=function(l,o){if(typeof l=="string")if(o){var h=f(o.as,o.crossOrigin);n.d.m(l,{as:typeof o.as=="string"&&o.as!=="script"?o.as:void 0,crossOrigin:h,integrity:typeof o.integrity=="string"?o.integrity:void 0})}else n.d.m(l)},A.requestFormReset=function(l){n.d.r(l)},A.unstable_batchedUpdates=function(l,o){return l(o)},A.useFormState=function(l,o,h){return s.H.useFormState(l,o,h)},A.useFormStatus=function(){return s.H.useHostTransitionStatus()},A.version="19.2.4",A}var ke;function pt(){if(ke)return me.exports;ke=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),me.exports=ht(),me.exports}var $e="popstate";function Ae(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function mt(e={}){function t(n,a){let u=a.state?.masked,{pathname:s,search:f,hash:l}=u||n.location;return Re("",{pathname:s,search:f,hash:l},a.state&&a.state.usr||null,a.state&&a.state.key||"default",u?{pathname:n.location.pathname,search:n.location.search,hash:n.location.hash}:void 0)}function r(n,a){return typeof a=="string"?a:re(a)}return gt(t,r,null,e)}function O(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function M(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function yt(){return Math.random().toString(36).substring(2,10)}function Ne(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.unstable_mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function Re(e,t,r=null,n,a){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?G(t):t,state:r,key:t&&t.key||n||yt(),unstable_mask:a}}function re({pathname:e="/",search:t="",hash:r=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function G(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function gt(e,t,r,n={}){let{window:a=document.defaultView,v5Compat:u=!1}=n,s=a.history,f="POP",l=null,o=h();o==null&&(o=0,s.replaceState({...s.state,idx:o},""));function h(){return(s.state||{idx:null}).idx}function d(){f="POP";let m=h(),S=m==null?null:m-o;o=m,l&&l({action:f,location:g.location,delta:S})}function y(m,S){f="PUSH";let _=Ae(m)?m:Re(g.location,m,S);o=h()+1;let b=Ne(_,o),$=g.createHref(_.unstable_mask||_);try{s.pushState(b,"",$)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;a.location.assign($)}u&&l&&l({action:f,location:g.location,delta:1})}function R(m,S){f="REPLACE";let _=Ae(m)?m:Re(g.location,m,S);o=h();let b=Ne(_,o),$=g.createHref(_.unstable_mask||_);s.replaceState(b,"",$),u&&l&&l({action:f,location:g.location,delta:0})}function w(m){return vt(m)}let g={get action(){return f},get location(){return e(a,s)},listen(m){if(l)throw new Error("A history only accepts one active listener");return a.addEventListener($e,d),l=m,()=>{a.removeEventListener($e,d),l=null}},createHref(m){return t(a,m)},createURL:w,encodeLocation(m){let S=w(m);return{pathname:S.pathname,search:S.search,hash:S.hash}},push:y,replace:R,go(m){return s.go(m)}};return g}function vt(e,t=!1){let r="http://localhost";typeof window<"u"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),O(r,"No window.location.(origin|href) available to create URL");let n=typeof e=="string"?e:re(e);return n=n.replace(/ $/,"%20"),!t&&n.startsWith("//")&&(n=r+n),new URL(n,r)}function je(e,t,r="/"){return Rt(e,t,r,!1)}function Rt(e,t,r,n){let a=typeof t=="string"?G(t):t,u=Y(a.pathname||"/",r);if(u==null)return null;let s=We(e);Et(s);let f=null;for(let l=0;f==null&&l<s.length;++l){let o=kt(u);f=Lt(s[l],o,n)}return f}function We(e,t=[],r=[],n="",a=!1){let u=(s,f,l=a,o)=>{let h={relativePath:o===void 0?s.path||"":o,caseSensitive:s.caseSensitive===!0,childrenIndex:f,route:s};if(h.relativePath.startsWith("/")){if(!h.relativePath.startsWith(n)&&l)return;O(h.relativePath.startsWith(n),`Absolute route path "${h.relativePath}" nested under path "${n}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),h.relativePath=h.relativePath.slice(n.length)}let d=F([n,h.relativePath]),y=r.concat(h);s.children&&s.children.length>0&&(O(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${d}".`),We(s.children,t,y,d,l)),!(s.path==null&&!s.index)&&t.push({path:d,score:Pt(d,s.index),routesMeta:y})};return e.forEach((s,f)=>{if(s.path===""||!s.path?.includes("?"))u(s,f);else for(let l of Ye(s.path))u(s,f,!0,l)}),t}function Ye(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),u=r.replace(/\?$/,"");if(n.length===0)return a?[u,""]:[u];let s=Ye(n.join("/")),f=[];return f.push(...s.map(l=>l===""?u:[u,l].join("/"))),a&&f.push(...s),f.map(l=>e.startsWith("/")&&l===""?"/":l)}function Et(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:Tt(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}var wt=/^:[\w-]+$/,St=3,Ct=2,_t=1,bt=10,xt=-2,De=e=>e==="*";function Pt(e,t){let r=e.split("/"),n=r.length;return r.some(De)&&(n+=xt),t&&(n+=Ct),r.filter(a=>!De(a)).reduce((a,u)=>a+(wt.test(u)?St:u===""?_t:bt),n)}function Tt(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function Lt(e,t,r=!1){let{routesMeta:n}=e,a={},u="/",s=[];for(let f=0;f<n.length;++f){let l=n[f],o=f===n.length-1,h=u==="/"?t:t.slice(u.length)||"/",d=se({path:l.relativePath,caseSensitive:l.caseSensitive,end:o},h),y=l.route;if(!d&&o&&r&&!n[n.length-1].route.index&&(d=se({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},h)),!d)return null;Object.assign(a,d.params),s.push({params:a,pathname:F([u,d.pathname]),pathnameBase:Dt(F([u,d.pathnameBase])),route:y}),d.pathnameBase!=="/"&&(u=F([u,d.pathnameBase]))}return s}function se(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=Ot(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let u=a[0],s=u.replace(/(.)\/+$/,"$1"),f=a.slice(1);return{params:n.reduce((o,{paramName:h,isOptional:d},y)=>{if(h==="*"){let w=f[y]||"";s=u.slice(0,u.length-w.length).replace(/(.)\/+$/,"$1")}const R=f[y];return d&&!R?o[h]=void 0:o[h]=(R||"").replace(/%2F/g,"/"),o},{}),pathname:u,pathnameBase:s,pattern:e}}function Ot(e,t=!1,r=!0){M(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,f,l,o,h)=>{if(n.push({paramName:f,isOptional:l!=null}),l){let d=h.charAt(o+s.length);return d&&d!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function kt(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return M(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Y(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}var $t=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function At(e,t="/"){let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?G(e):e,u;return r?(r=r.replace(/\/\/+/g,"/"),r.startsWith("/")?u=Ie(r.substring(1),"/"):u=Ie(r,t)):u=t,{pathname:u,search:It(n),hash:Mt(a)}}function Ie(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function ye(e,t,r,n){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(n)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Nt(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function we(e){let t=Nt(e);return t.map((r,n)=>n===t.length-1?r.pathname:r.pathnameBase)}function ce(e,t,r,n=!1){let a;typeof e=="string"?a=G(e):(a={...e},O(!a.pathname||!a.pathname.includes("?"),ye("?","pathname","search",a)),O(!a.pathname||!a.pathname.includes("#"),ye("#","pathname","hash",a)),O(!a.search||!a.search.includes("#"),ye("#","search","hash",a)));let u=e===""||a.pathname==="",s=u?"/":a.pathname,f;if(s==null)f=r;else{let d=t.length-1;if(!n&&s.startsWith("..")){let y=s.split("/");for(;y[0]==="..";)y.shift(),d-=1;a.pathname=y.join("/")}f=d>=0?t[d]:"/"}let l=At(a,f),o=s&&s!=="/"&&s.endsWith("/"),h=(u||s===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(o||h)&&(l.pathname+="/"),l}var F=e=>e.join("/").replace(/\/\/+/g,"/"),Dt=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),It=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Mt=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,Ht=class{constructor(e,t,r,n=!1){this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function Ut(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function Ft(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var ze=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function qe(e,t){let r=e;if(typeof r!="string"||!$t.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let n=r,a=!1;if(ze)try{let u=new URL(window.location.href),s=r.startsWith("//")?new URL(u.protocol+r):new URL(r),f=Y(s.pathname,t);s.origin===u.origin&&f!=null?r=f+s.search+s.hash:a=!0}catch{M(!1,`<Link to="${r}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:n,isExternal:a,to:r}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Ke=["POST","PUT","PATCH","DELETE"];new Set(Ke);var Bt=["GET",...Ke];new Set(Bt);var V=c.createContext(null);V.displayName="DataRouter";var fe=c.createContext(null);fe.displayName="DataRouterState";var jt=c.createContext(!1),Ge=c.createContext({isTransitioning:!1});Ge.displayName="ViewTransition";var Wt=c.createContext(new Map);Wt.displayName="Fetchers";var Yt=c.createContext(null);Yt.displayName="Await";var D=c.createContext(null);D.displayName="Navigation";var ne=c.createContext(null);ne.displayName="Location";var B=c.createContext({outlet:null,matches:[],isDataRoute:!1});B.displayName="Route";var Se=c.createContext(null);Se.displayName="RouteError";var Ve="REACT_ROUTER_ERROR",zt="REDIRECT",qt="ROUTE_ERROR_RESPONSE";function Kt(e){if(e.startsWith(`${Ve}:${zt}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function Gt(e){if(e.startsWith(`${Ve}:${qt}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new Ht(t.status,t.statusText,t.data)}catch{}}function Vt(e,{relative:t}={}){O(J(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:n}=c.useContext(D),{hash:a,pathname:u,search:s}=ae(e,{relative:t}),f=u;return r!=="/"&&(f=u==="/"?r:F([r,u])),n.createHref({pathname:f,search:s,hash:a})}function J(){return c.useContext(ne)!=null}function z(){return O(J(),"useLocation() may be used only in the context of a <Router> component."),c.useContext(ne).location}var Je="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Xe(e){c.useContext(D).static||c.useLayoutEffect(e)}function Qe(){let{isDataRoute:e}=c.useContext(B);return e?lr():Jt()}function Jt(){O(J(),"useNavigate() may be used only in the context of a <Router> component.");let e=c.useContext(V),{basename:t,navigator:r}=c.useContext(D),{matches:n}=c.useContext(B),{pathname:a}=z(),u=JSON.stringify(we(n)),s=c.useRef(!1);return Xe(()=>{s.current=!0}),c.useCallback((l,o={})=>{if(M(s.current,Je),!s.current)return;if(typeof l=="number"){r.go(l);return}let h=ce(l,JSON.parse(u),a,o.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:F([t,h.pathname])),(o.replace?r.replace:r.push)(h,o.state,o)},[t,r,u,a,e])}c.createContext(null);function ae(e,{relative:t}={}){let{matches:r}=c.useContext(B),{pathname:n}=z(),a=JSON.stringify(we(r));return c.useMemo(()=>ce(e,JSON.parse(a),n,t==="path"),[e,a,n,t])}function Xt(e,t){return Ze(e,t)}function Ze(e,t,r){O(J(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:n}=c.useContext(D),{matches:a}=c.useContext(B),u=a[a.length-1],s=u?u.params:{},f=u?u.pathname:"/",l=u?u.pathnameBase:"/",o=u&&u.route;{let m=o&&o.path||"";tt(f,!o||m.endsWith("*")||m.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${f}" (under <Route path="${m}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
| 2 |
+
|
| 3 |
+
Please change the parent <Route path="${m}"> to <Route path="${m==="/"?"*":`${m}/*`}">.`)}let h=z(),d;if(t){let m=typeof t=="string"?G(t):t;O(l==="/"||m.pathname?.startsWith(l),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${l}" but pathname "${m.pathname}" was given in the \`location\` prop.`),d=m}else d=h;let y=d.pathname||"/",R=y;if(l!=="/"){let m=l.replace(/^\//,"").split("/");R="/"+y.replace(/^\//,"").split("/").slice(m.length).join("/")}let w=je(e,{pathname:R});M(o||w!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),M(w==null||w[w.length-1].route.element!==void 0||w[w.length-1].route.Component!==void 0||w[w.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let g=rr(w&&w.map(m=>Object.assign({},m,{params:Object.assign({},s,m.params),pathname:F([l,n.encodeLocation?n.encodeLocation(m.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:m.pathname]),pathnameBase:m.pathnameBase==="/"?l:F([l,n.encodeLocation?n.encodeLocation(m.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:m.pathnameBase])})),a,r);return t&&g?c.createElement(ne.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...d},navigationType:"POP"}},g):g}function Qt(){let e=ur(),t=Ut(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:n},u={padding:"2px 4px",backgroundColor:n},s=null;return console.error("Error handled by React Router default ErrorBoundary:",e),s=c.createElement(c.Fragment,null,c.createElement("p",null,"💿 Hey developer 👋"),c.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",c.createElement("code",{style:u},"ErrorBoundary")," or"," ",c.createElement("code",{style:u},"errorElement")," prop on your route.")),c.createElement(c.Fragment,null,c.createElement("h2",null,"Unexpected Application Error!"),c.createElement("h3",{style:{fontStyle:"italic"}},t),r?c.createElement("pre",{style:a},r):null,s)}var Zt=c.createElement(Qt,null),et=class extends c.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const r=Gt(e.digest);r&&(e=r)}let t=e!==void 0?c.createElement(B.Provider,{value:this.props.routeContext},c.createElement(Se.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?c.createElement(er,{error:e},t):t}};et.contextType=jt;var ge=new WeakMap;function er({children:e,error:t}){let{basename:r}=c.useContext(D);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let n=Kt(t.digest);if(n){let a=ge.get(t);if(a)throw a;let u=qe(n.location,r);if(ze&&!ge.get(t))if(u.isExternal||n.reloadDocument)window.location.href=u.absoluteURL||u.to;else{const s=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(u.to,{replace:n.replace}));throw ge.set(t,s),s}return c.createElement("meta",{httpEquiv:"refresh",content:`0;url=${u.absoluteURL||u.to}`})}}return e}function tr({routeContext:e,match:t,children:r}){let n=c.useContext(V);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),c.createElement(B.Provider,{value:e},r)}function rr(e,t=[],r){let n=r?.state;if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,u=n?.errors;if(u!=null){let h=a.findIndex(d=>d.route.id&&u?.[d.route.id]!==void 0);O(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(u).join(",")}`),a=a.slice(0,Math.min(a.length,h+1))}let s=!1,f=-1;if(r&&n){s=n.renderFallback;for(let h=0;h<a.length;h++){let d=a[h];if((d.route.HydrateFallback||d.route.hydrateFallbackElement)&&(f=h),d.route.id){let{loaderData:y,errors:R}=n,w=d.route.loader&&!y.hasOwnProperty(d.route.id)&&(!R||R[d.route.id]===void 0);if(d.route.lazy||w){r.isStatic&&(s=!0),f>=0?a=a.slice(0,f+1):a=[a[0]];break}}}}let l=r?.onError,o=n&&l?(h,d)=>{l(h,{location:n.location,params:n.matches?.[0]?.params??{},unstable_pattern:Ft(n.matches),errorInfo:d})}:void 0;return a.reduceRight((h,d,y)=>{let R,w=!1,g=null,m=null;n&&(R=u&&d.route.id?u[d.route.id]:void 0,g=d.route.errorElement||Zt,s&&(f<0&&y===0?(tt("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),w=!0,m=null):f===y&&(w=!0,m=d.route.hydrateFallbackElement||null)));let S=t.concat(a.slice(0,y+1)),_=()=>{let b;return R?b=g:w?b=m:d.route.Component?b=c.createElement(d.route.Component,null):d.route.element?b=d.route.element:b=h,c.createElement(tr,{match:d,routeContext:{outlet:h,matches:S,isDataRoute:n!=null},children:b})};return n&&(d.route.ErrorBoundary||d.route.errorElement||y===0)?c.createElement(et,{location:n.location,revalidation:n.revalidation,component:g,error:R,children:_(),routeContext:{outlet:null,matches:S,isDataRoute:!0},onError:o}):_()},null)}function Ce(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function nr(e){let t=c.useContext(V);return O(t,Ce(e)),t}function ar(e){let t=c.useContext(fe);return O(t,Ce(e)),t}function or(e){let t=c.useContext(B);return O(t,Ce(e)),t}function _e(e){let t=or(e),r=t.matches[t.matches.length-1];return O(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}function ir(){return _e("useRouteId")}function ur(){let e=c.useContext(Se),t=ar("useRouteError"),r=_e("useRouteError");return e!==void 0?e:t.errors?.[r]}function lr(){let{router:e}=nr("useNavigate"),t=_e("useNavigate"),r=c.useRef(!1);return Xe(()=>{r.current=!0}),c.useCallback(async(a,u={})=>{M(r.current,Je),r.current&&(typeof a=="number"?await e.navigate(a):await e.navigate(a,{fromRouteId:t,...u}))},[e,t])}var Me={};function tt(e,t,r){!t&&!Me[e]&&(Me[e]=!0,M(!1,r))}c.memo(sr);function sr({routes:e,future:t,state:r,isStatic:n,onError:a}){return Ze(e,void 0,{state:r,isStatic:n,onError:a})}function Gr({to:e,replace:t,state:r,relative:n}){O(J(),"<Navigate> may be used only in the context of a <Router> component.");let{static:a}=c.useContext(D);M(!a,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:u}=c.useContext(B),{pathname:s}=z(),f=Qe(),l=ce(e,we(u),s,n==="path"),o=JSON.stringify(l);return c.useEffect(()=>{f(JSON.parse(o),{replace:t,state:r,relative:n})},[f,o,n,t,r]),null}function cr(e){O(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function fr({basename:e="/",children:t=null,location:r,navigationType:n="POP",navigator:a,static:u=!1,unstable_useTransitions:s}){O(!J(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let f=e.replace(/^\/*/,"/"),l=c.useMemo(()=>({basename:f,navigator:a,static:u,unstable_useTransitions:s,future:{}}),[f,a,u,s]);typeof r=="string"&&(r=G(r));let{pathname:o="/",search:h="",hash:d="",state:y=null,key:R="default",unstable_mask:w}=r,g=c.useMemo(()=>{let m=Y(o,f);return m==null?null:{location:{pathname:m,search:h,hash:d,state:y,key:R,unstable_mask:w},navigationType:n}},[f,o,h,d,y,R,n,w]);return M(g!=null,`<Router basename="${f}"> is not able to match the URL "${o}${h}${d}" because it does not start with the basename, so the <Router> won't render anything.`),g==null?null:c.createElement(D.Provider,{value:l},c.createElement(ne.Provider,{children:t,value:g}))}function Vr({children:e,location:t}){return Xt(Ee(e),t)}function Ee(e,t=[]){let r=[];return c.Children.forEach(e,(n,a)=>{if(!c.isValidElement(n))return;let u=[...t,a];if(n.type===c.Fragment){r.push.apply(r,Ee(n.props.children,u));return}O(n.type===cr,`[${typeof n.type=="string"?n.type:n.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),O(!n.props.index||!n.props.children,"An index route cannot have child routes.");let s={id:n.props.id||u.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,middleware:n.props.middleware,loader:n.props.loader,action:n.props.action,hydrateFallbackElement:n.props.hydrateFallbackElement,HydrateFallback:n.props.HydrateFallback,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.hasErrorBoundary===!0||n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(s.children=Ee(n.props.children,u)),r.push(s)}),r}var ue="get",le="application/x-www-form-urlencoded";function de(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function dr(e){return de(e)&&e.tagName.toLowerCase()==="button"}function hr(e){return de(e)&&e.tagName.toLowerCase()==="form"}function pr(e){return de(e)&&e.tagName.toLowerCase()==="input"}function mr(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function yr(e,t){return e.button===0&&(!t||t==="_self")&&!mr(e)}var ie=null;function gr(){if(ie===null)try{new FormData(document.createElement("form"),0),ie=!1}catch{ie=!0}return ie}var vr=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function ve(e){return e!=null&&!vr.has(e)?(M(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${le}"`),null):e}function Rr(e,t){let r,n,a,u,s;if(hr(e)){let f=e.getAttribute("action");n=f?Y(f,t):null,r=e.getAttribute("method")||ue,a=ve(e.getAttribute("enctype"))||le,u=new FormData(e)}else if(dr(e)||pr(e)&&(e.type==="submit"||e.type==="image")){let f=e.form;if(f==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let l=e.getAttribute("formaction")||f.getAttribute("action");if(n=l?Y(l,t):null,r=e.getAttribute("formmethod")||f.getAttribute("method")||ue,a=ve(e.getAttribute("formenctype"))||ve(f.getAttribute("enctype"))||le,u=new FormData(f,e),!gr()){let{name:o,type:h,value:d}=e;if(h==="image"){let y=o?`${o}.`:"";u.append(`${y}x`,"0"),u.append(`${y}y`,"0")}else o&&u.append(o,d)}}else{if(de(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=ue,n=null,a=le,s=e}return u&&a==="text/plain"&&(s=u,u=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:u,body:s}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function be(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Er(e,t,r,n){let a=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return r?a.pathname.endsWith("/")?a.pathname=`${a.pathname}_.${n}`:a.pathname=`${a.pathname}.${n}`:a.pathname==="/"?a.pathname=`_root.${n}`:t&&Y(a.pathname,t)==="/"?a.pathname=`${t.replace(/\/$/,"")}/_root.${n}`:a.pathname=`${a.pathname.replace(/\/$/,"")}.${n}`,a}async function wr(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(r){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(r),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Sr(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function Cr(e,t,r){let n=await Promise.all(e.map(async a=>{let u=t.routes[a.route.id];if(u){let s=await wr(u,r);return s.links?s.links():[]}return[]}));return Pr(n.flat(1).filter(Sr).filter(a=>a.rel==="stylesheet"||a.rel==="preload").map(a=>a.rel==="stylesheet"?{...a,rel:"prefetch",as:"style"}:{...a,rel:"prefetch"}))}function He(e,t,r,n,a,u){let s=(l,o)=>r[o]?l.route.id!==r[o].route.id:!0,f=(l,o)=>r[o].pathname!==l.pathname||r[o].route.path?.endsWith("*")&&r[o].params["*"]!==l.params["*"];return u==="assets"?t.filter((l,o)=>s(l,o)||f(l,o)):u==="data"?t.filter((l,o)=>{let h=n.routes[l.route.id];if(!h||!h.hasLoader)return!1;if(s(l,o)||f(l,o))return!0;if(l.route.shouldRevalidate){let d=l.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:l.params,defaultShouldRevalidate:!0});if(typeof d=="boolean")return d}return!0}):[]}function _r(e,t,{includeHydrateFallback:r}={}){return br(e.map(n=>{let a=t.routes[n.route.id];if(!a)return[];let u=[a.module];return a.clientActionModule&&(u=u.concat(a.clientActionModule)),a.clientLoaderModule&&(u=u.concat(a.clientLoaderModule)),r&&a.hydrateFallbackModule&&(u=u.concat(a.hydrateFallbackModule)),a.imports&&(u=u.concat(a.imports)),u}).flat(1))}function br(e){return[...new Set(e)]}function xr(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}function Pr(e,t){let r=new Set;return new Set(t),e.reduce((n,a)=>{let u=JSON.stringify(xr(a));return r.has(u)||(r.add(u),n.push({key:u,link:a})),n},[])}function rt(){let e=c.useContext(V);return be(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Tr(){let e=c.useContext(fe);return be(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var xe=c.createContext(void 0);xe.displayName="FrameworkContext";function nt(){let e=c.useContext(xe);return be(e,"You must render this element inside a <HydratedRouter> element"),e}function Lr(e,t){let r=c.useContext(xe),[n,a]=c.useState(!1),[u,s]=c.useState(!1),{onFocus:f,onBlur:l,onMouseEnter:o,onMouseLeave:h,onTouchStart:d}=t,y=c.useRef(null);c.useEffect(()=>{if(e==="render"&&s(!0),e==="viewport"){let g=S=>{S.forEach(_=>{s(_.isIntersecting)})},m=new IntersectionObserver(g,{threshold:.5});return y.current&&m.observe(y.current),()=>{m.disconnect()}}},[e]),c.useEffect(()=>{if(n){let g=setTimeout(()=>{s(!0)},100);return()=>{clearTimeout(g)}}},[n]);let R=()=>{a(!0)},w=()=>{a(!1),s(!1)};return r?e!=="intent"?[u,y,{}]:[u,y,{onFocus:ee(f,R),onBlur:ee(l,w),onMouseEnter:ee(o,R),onMouseLeave:ee(h,w),onTouchStart:ee(d,R)}]:[!1,y,{}]}function ee(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function Or({page:e,...t}){let{router:r}=rt(),n=c.useMemo(()=>je(r.routes,e,r.basename),[r.routes,e,r.basename]);return n?c.createElement($r,{page:e,matches:n,...t}):null}function kr(e){let{manifest:t,routeModules:r}=nt(),[n,a]=c.useState([]);return c.useEffect(()=>{let u=!1;return Cr(e,t,r).then(s=>{u||a(s)}),()=>{u=!0}},[e,t,r]),n}function $r({page:e,matches:t,...r}){let n=z(),{future:a,manifest:u,routeModules:s}=nt(),{basename:f}=rt(),{loaderData:l,matches:o}=Tr(),h=c.useMemo(()=>He(e,t,o,u,n,"data"),[e,t,o,u,n]),d=c.useMemo(()=>He(e,t,o,u,n,"assets"),[e,t,o,u,n]),y=c.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let g=new Set,m=!1;if(t.forEach(_=>{let b=u.routes[_.route.id];!b||!b.hasLoader||(!h.some($=>$.route.id===_.route.id)&&_.route.id in l&&s[_.route.id]?.shouldRevalidate||b.hasClientLoader?m=!0:g.add(_.route.id))}),g.size===0)return[];let S=Er(e,f,a.unstable_trailingSlashAwareDataRequests,"data");return m&&g.size>0&&S.searchParams.set("_routes",t.filter(_=>g.has(_.route.id)).map(_=>_.route.id).join(",")),[S.pathname+S.search]},[f,a.unstable_trailingSlashAwareDataRequests,l,n,u,h,t,e,s]),R=c.useMemo(()=>_r(d,u),[d,u]),w=kr(d);return c.createElement(c.Fragment,null,y.map(g=>c.createElement("link",{key:g,rel:"prefetch",as:"fetch",href:g,...r})),R.map(g=>c.createElement("link",{key:g,rel:"modulepreload",href:g,...r})),w.map(({key:g,link:m})=>c.createElement("link",{key:g,nonce:r.nonce,...m,crossOrigin:m.crossOrigin??r.crossOrigin})))}function Ar(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}var Nr=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Nr&&(window.__reactRouterVersion="7.13.1")}catch{}function Jr({basename:e,children:t,unstable_useTransitions:r,window:n}){let a=c.useRef();a.current==null&&(a.current=mt({window:n,v5Compat:!0}));let u=a.current,[s,f]=c.useState({action:u.action,location:u.location}),l=c.useCallback(o=>{r===!1?f(o):c.startTransition(()=>f(o))},[r]);return c.useLayoutEffect(()=>u.listen(l),[u,l]),c.createElement(fr,{basename:e,children:t,location:s.location,navigationType:s.action,navigator:u,unstable_useTransitions:r})}var at=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ot=c.forwardRef(function({onClick:t,discover:r="render",prefetch:n="none",relative:a,reloadDocument:u,replace:s,unstable_mask:f,state:l,target:o,to:h,preventScrollReset:d,viewTransition:y,unstable_defaultShouldRevalidate:R,...w},g){let{basename:m,navigator:S,unstable_useTransitions:_}=c.useContext(D),b=typeof h=="string"&&at.test(h),$=qe(h,m);h=$.to;let k=Vt(h,{relative:a}),I=z(),x=null;if(f){let H=ce(f,[],I.unstable_mask?I.unstable_mask.pathname:"/",!0);m!=="/"&&(H.pathname=H.pathname==="/"?m:F([m,H.pathname])),x=S.createHref(H)}let[j,W,X]=Lr(n,w),Q=Hr(h,{replace:s,unstable_mask:f,state:l,target:o,preventScrollReset:d,relative:a,viewTransition:y,unstable_defaultShouldRevalidate:R,unstable_useTransitions:_});function he(H){t&&t(H),H.defaultPrevented||Q(H)}let Z=!($.isExternal||u),q=c.createElement("a",{...w,...X,href:(Z?x:void 0)||$.absoluteURL||k,onClick:Z?he:t,ref:Ar(g,W),target:o,"data-discover":!b&&r==="render"?"true":void 0});return j&&!b?c.createElement(c.Fragment,null,q,c.createElement(Or,{page:k})):q});ot.displayName="Link";var Dr=c.forwardRef(function({"aria-current":t="page",caseSensitive:r=!1,className:n="",end:a=!1,style:u,to:s,viewTransition:f,children:l,...o},h){let d=ae(s,{relative:o.relative}),y=z(),R=c.useContext(fe),{navigator:w,basename:g}=c.useContext(D),m=R!=null&&Wr(d)&&f===!0,S=w.encodeLocation?w.encodeLocation(d).pathname:d.pathname,_=y.pathname,b=R&&R.navigation&&R.navigation.location?R.navigation.location.pathname:null;r||(_=_.toLowerCase(),b=b?b.toLowerCase():null,S=S.toLowerCase()),b&&g&&(b=Y(b,g)||b);const $=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let k=_===S||!a&&_.startsWith(S)&&_.charAt($)==="/",I=b!=null&&(b===S||!a&&b.startsWith(S)&&b.charAt(S.length)==="/"),x={isActive:k,isPending:I,isTransitioning:m},j=k?t:void 0,W;typeof n=="function"?W=n(x):W=[n,k?"active":null,I?"pending":null,m?"transitioning":null].filter(Boolean).join(" ");let X=typeof u=="function"?u(x):u;return c.createElement(ot,{...o,"aria-current":j,className:W,ref:h,style:X,to:s,viewTransition:f},typeof l=="function"?l(x):l)});Dr.displayName="NavLink";var Ir=c.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:n,replace:a,state:u,method:s=ue,action:f,onSubmit:l,relative:o,preventScrollReset:h,viewTransition:d,unstable_defaultShouldRevalidate:y,...R},w)=>{let{unstable_useTransitions:g}=c.useContext(D),m=Br(),S=jr(f,{relative:o}),_=s.toLowerCase()==="get"?"get":"post",b=typeof f=="string"&&at.test(f),$=k=>{if(l&&l(k),k.defaultPrevented)return;k.preventDefault();let I=k.nativeEvent.submitter,x=I?.getAttribute("formmethod")||s,j=()=>m(I||k.currentTarget,{fetcherKey:t,method:x,navigate:r,replace:a,state:u,relative:o,preventScrollReset:h,viewTransition:d,unstable_defaultShouldRevalidate:y});g&&r!==!1?c.startTransition(()=>j()):j()};return c.createElement("form",{ref:w,method:_,action:S,onSubmit:n?l:$,...R,"data-discover":!b&&e==="render"?"true":void 0})});Ir.displayName="Form";function Mr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function it(e){let t=c.useContext(V);return O(t,Mr(e)),t}function Hr(e,{target:t,replace:r,unstable_mask:n,state:a,preventScrollReset:u,relative:s,viewTransition:f,unstable_defaultShouldRevalidate:l,unstable_useTransitions:o}={}){let h=Qe(),d=z(),y=ae(e,{relative:s});return c.useCallback(R=>{if(yr(R,t)){R.preventDefault();let w=r!==void 0?r:re(d)===re(y),g=()=>h(e,{replace:w,unstable_mask:n,state:a,preventScrollReset:u,relative:s,viewTransition:f,unstable_defaultShouldRevalidate:l});o?c.startTransition(()=>g()):g()}},[d,h,y,r,n,a,t,e,u,s,f,l,o])}var Ur=0,Fr=()=>`__${String(++Ur)}__`;function Br(){let{router:e}=it("useSubmit"),{basename:t}=c.useContext(D),r=ir(),n=e.fetch,a=e.navigate;return c.useCallback(async(u,s={})=>{let{action:f,method:l,encType:o,formData:h,body:d}=Rr(u,t);if(s.navigate===!1){let y=s.fetcherKey||Fr();await n(y,r,s.action||f,{unstable_defaultShouldRevalidate:s.unstable_defaultShouldRevalidate,preventScrollReset:s.preventScrollReset,formData:h,body:d,formMethod:s.method||l,formEncType:s.encType||o,flushSync:s.flushSync})}else await a(s.action||f,{unstable_defaultShouldRevalidate:s.unstable_defaultShouldRevalidate,preventScrollReset:s.preventScrollReset,formData:h,body:d,formMethod:s.method||l,formEncType:s.encType||o,replace:s.replace,state:s.state,fromRouteId:r,flushSync:s.flushSync,viewTransition:s.viewTransition})},[n,a,t,r])}function jr(e,{relative:t}={}){let{basename:r}=c.useContext(D),n=c.useContext(B);O(n,"useFormAction must be used inside a RouteContext");let[a]=n.matches.slice(-1),u={...ae(e||".",{relative:t})},s=z();if(e==null){u.search=s.search;let f=new URLSearchParams(u.search),l=f.getAll("index");if(l.some(h=>h==="")){f.delete("index"),l.filter(d=>d).forEach(d=>f.append("index",d));let h=f.toString();u.search=h?`?${h}`:""}}return(!e||e===".")&&a.route.index&&(u.search=u.search?u.search.replace(/^\?/,"?index&"):"?index"),r!=="/"&&(u.pathname=u.pathname==="/"?r:F([r,u.pathname])),re(u)}function Wr(e,{relative:t}={}){let r=c.useContext(Ge);O(r!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:n}=it("useViewTransitionState"),a=ae(e,{relative:t});if(!r.isTransitioning)return!1;let u=Y(r.currentLocation.pathname,n)||r.currentLocation.pathname,s=Y(r.nextLocation.pathname,n)||r.nextLocation.pathname;return se(a.pathname,s)!=null||se(a.pathname,u)!=null}var Xr=pt();const Ue=e=>{let t;const r=new Set,n=(o,h)=>{const d=typeof o=="function"?o(t):o;if(!Object.is(d,t)){const y=t;t=h??(typeof d!="object"||d===null)?d:Object.assign({},t,d),r.forEach(R=>R(t,y))}},a=()=>t,f={setState:n,getState:a,getInitialState:()=>l,subscribe:o=>(r.add(o),()=>r.delete(o))},l=t=e(n,a,f);return f},Yr=(e=>e?Ue(e):Ue),zr=e=>e;function qr(e,t=zr){const r=te.useSyncExternalStore(e.subscribe,te.useCallback(()=>t(e.getState()),[e,t]),te.useCallback(()=>t(e.getInitialState()),[e,t]));return te.useDebugValue(r),r}const Fe=e=>{const t=Yr(e),r=n=>qr(t,n);return Object.assign(r,t),r},Qr=(e=>e?Fe(e):Fe);export{Jr as B,Dr as N,Kr as R,Be as a,Xr as b,pt as c,Qr as d,Qe as e,Vr as f,ft as g,cr as h,Gr as i,c as r,z as u};
|
pinchtab/dashboard/dist/assets/vendor-ui-B7IABBe3.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
pinchtab/dashboard/dist/favicon.png
ADDED
|
|
pinchtab/dashboard/dist/index.html
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8" />
|
| 5 |
+
<link rel="icon" type="image/png" href="/dashboard/favicon.png" />
|
| 6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
+
<title>PinchTab</title>
|
| 8 |
+
<script type="module" crossorigin src="/dashboard/assets/index-BWgBAbhl.js"></script>
|
| 9 |
+
<link rel="modulepreload" crossorigin href="/dashboard/assets/vendor-react-DZgUP1fA.js">
|
| 10 |
+
<link rel="modulepreload" crossorigin href="/dashboard/assets/vendor-ui-B7IABBe3.js">
|
| 11 |
+
<link rel="stylesheet" crossorigin href="/dashboard/assets/index-5Gsrp431.css">
|
| 12 |
+
</head>
|
| 13 |
+
<body>
|
| 14 |
+
<div id="root"></div>
|
| 15 |
+
</body>
|
| 16 |
+
</html>
|
pinchtab/internal/assets/readability.js
ADDED
|
File without changes
|
pinchtab/internal/assets/stealth.js
ADDED
|
File without changes
|