codesesh 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +1 -0
  2. package/dist/{chunk-NBJJGH5P.js → chunk-4ND6AT6W.js} +116 -72
  3. package/dist/chunk-4ND6AT6W.js.map +1 -0
  4. package/dist/{chunk-PAP2Q3WV.js → chunk-4QFNZCBR.js} +2 -2
  5. package/dist/{chunk-FCYCBGEL.js → chunk-A3MT6L6Z.js} +3 -3
  6. package/dist/{chunk-YQFEGFWD.js → chunk-COZSWVCH.js} +2 -2
  7. package/dist/{chunk-WUYSZAYR.js → chunk-L3DDWTYV.js} +9 -4
  8. package/dist/chunk-L3DDWTYV.js.map +1 -0
  9. package/dist/{chunk-TS3IWH5U.js → chunk-XQDYKKRC.js} +30 -14
  10. package/dist/chunk-XQDYKKRC.js.map +1 -0
  11. package/dist/{chunk-XKZSX5BM.js → chunk-YZ6XCSVQ.js} +3 -3
  12. package/dist/{discovery-D23RV7FY.js → discovery-ADSQARBV.js} +5 -5
  13. package/dist/index.js +185 -144
  14. package/dist/index.js.map +1 -1
  15. package/dist/project-identity-worker.js +4 -4
  16. package/dist/scan-refresh-worker.js +6 -6
  17. package/dist/search-index-worker.js +6 -6
  18. package/dist/session-detail-worker.js +6 -6
  19. package/dist/smart-tag-worker.js +3 -3
  20. package/dist/web/assets/CustomTimeWindowDialog-D2bx7uDv.js +1 -0
  21. package/dist/web/assets/InteractiveReceipt-BFpIdno8.js +1 -0
  22. package/dist/web/assets/OverviewScreen-D_KXfiJi.js +1 -0
  23. package/dist/web/assets/{PrismHighlighter-LWITDffT.js → PrismHighlighter-BgVkYu_S.js} +1 -1
  24. package/dist/web/assets/Projects-CN44UpuR.js +1 -0
  25. package/dist/web/assets/SearchResultsPanel-CWD01v-a.js +1 -0
  26. package/dist/web/assets/SessionDetail-D8taQ6Tl.js +53 -0
  27. package/dist/web/assets/api-B9lJtVbO.js +1 -0
  28. package/dist/web/assets/index-XpolWMY4.js +1423 -0
  29. package/dist/web/assets/index-xbEEMszv.css +1 -0
  30. package/dist/web/assets/session-indexes-fib48ZKn.js +4 -0
  31. package/dist/web/assets/translate-Dmym1ZDl.js +2 -0
  32. package/dist/web/assets/utils-Bk66u8b3.js +1 -0
  33. package/dist/web/index.html +7 -7
  34. package/package.json +3 -3
  35. package/dist/chunk-NBJJGH5P.js.map +0 -1
  36. package/dist/chunk-TS3IWH5U.js.map +0 -1
  37. package/dist/chunk-WUYSZAYR.js.map +0 -1
  38. package/dist/web/assets/CustomTimeWindowDialog-C9XTZRm0.js +0 -1
  39. package/dist/web/assets/InteractiveReceipt-Sca1smpv.js +0 -1
  40. package/dist/web/assets/OverviewScreen-Vq6BQR9_.js +0 -1
  41. package/dist/web/assets/Projects-CwicV3Dk.js +0 -1
  42. package/dist/web/assets/SearchResultsPanel-DCO0Ak0c.js +0 -1
  43. package/dist/web/assets/SessionDetail-mdmTQgo1.js +0 -53
  44. package/dist/web/assets/api-CXVT9XcZ.js +0 -1
  45. package/dist/web/assets/contract-BS78VBCV.js +0 -2
  46. package/dist/web/assets/index-C5cyw58A.css +0 -1
  47. package/dist/web/assets/index-H2cT-6c6.js +0 -1423
  48. package/dist/web/assets/session-indexes-yyyWpKLf.js +0 -4
  49. package/dist/web/assets/utils-C7BqyxxV.js +0 -1
  50. /package/dist/{chunk-PAP2Q3WV.js.map → chunk-4QFNZCBR.js.map} +0 -0
  51. /package/dist/{chunk-FCYCBGEL.js.map → chunk-A3MT6L6Z.js.map} +0 -0
  52. /package/dist/{chunk-YQFEGFWD.js.map → chunk-COZSWVCH.js.map} +0 -0
  53. /package/dist/{chunk-XKZSX5BM.js.map → chunk-YZ6XCSVQ.js.map} +0 -0
  54. /package/dist/{discovery-D23RV7FY.js.map → discovery-ADSQARBV.js.map} +0 -0
@@ -0,0 +1 @@
1
+ @font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--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-outline-style:solid;--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:"IBM Plex Sans Variable", "IBM Plex Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", -apple-system, sans-serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", "SFMono-Regular", Menlo, Monaco, Consolas, monospace;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-2xl:42rem;--container-4xl:56rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--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);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-xs:2px;--radius-sm:6px;--radius-md:9px;--radius-lg:12px;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--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);--font-display:"Space Grotesk Variable", "Space Grotesk", "PingFang SC", -apple-system, sans-serif;--tracking-display:-.02em;--tracking-eyebrow:.08em;--shadow-raised:var(--elevation-raised);--shadow-overlay:var(--elevation-overlay);--shadow-drawer:var(--elevation-drawer);--color-background:var(--console-bg);--color-foreground:var(--console-text);--color-border:var(--console-border);--animate-shimmer:shimmer 1.4s linear infinite}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;-webkit-text-decoration:inherit;-webkit-text-decoration: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:where(:not(iframe)){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}:root{--console-bg:#f7f6f3;--console-sidebar-bg:#fbfaf8;--console-surface:#fff;--console-surface-muted:#fbfaf8;--console-surface-sunken:#f1f0ec;--console-border:#e6e4de;--console-border-strong:#d6d3cb;--console-thread:#e6e4de;--console-text:#16161a;--console-text-secondary:#5c5b63;--console-muted:#71707a;--console-accent:#16161a;--console-accent-strong:#000;--console-accent-fg:#fff;--brand:#e8622e;--brand-hover:#c94e1f;--brand-soft:#fdede5;--brand-line:#f6c7ae;--brand-fg:#fff;--positive:#218c77;--positive-soft:#e4f5f0;--console-success:#218c77;--console-success-bg:#e4f5f0;--console-success-border:#bfe4da;--console-warning:#b06a12;--console-warning-bg:#fdf3e2;--console-warning-border:#f2d9ab;--console-error:#e5484d;--console-error-bg:#fdeced;--console-error-border:#f7c3c5;--console-thinking-bg:#fbfaf8;--console-thinking-border:#ecebe5;--token-input:#7a3410;--token-output:#b4501c;--token-cache-read:#e07a3a;--token-cache-write:#f2a877;--chart-hatch:#4f60840d;--tile-rest:oklch(92.5% .012 45);--tile-wash:oklch(86% .055 45);--tile-ink:oklch(62% .175 45);--chart-1:#4a9eff;--chart-2:#7c5cff;--chart-3:#3fb68b;--chart-4:#e8a23b;--chart-5:#e5484d;--chart-6:#5bceda;--chart-7:#f472b6;--chart-8:#a78bfa;--chart-9:#fb923c;--chart-10:#6ee7b7;--diff-add-fg:#15803d;--diff-add-bg:#f0fdf4;--diff-remove-fg:#b91c1c;--diff-remove-bg:#fef2f2;--diff-hunk-fg:#7c3aed;--diff-hunk-bg:#f5f3ff;--diff-meta-fg:#1d4ed8;--diff-meta-bg:#eff6ff;--diff-header-bg:#f1f0ec;--timeline-user:#a85f82;--timeline-agent:#5e86aa;--timeline-tool-read:#478b7d;--timeline-tool-write:#bd7336;--timeline-tool-execute:#786ca3;--elevation-raised:0 1px 2px #1414190d, 0 8px 24px -12px #1414191f;--elevation-overlay:0 4px 12px #14141914, 0 24px 48px -24px #1414193d;--elevation-drawer:-12px 0 32px #1414192e;--scrim:#14141959;--code-bg:transparent;--code-fg:#16161a;--code-comment:#8e8d95;--code-keyword:#a3336b;--code-string:#2f7d5c;--code-number:#b06a12;--code-function:#2b62b8;--code-variable:#16161a;--code-punctuation:#71707a;--code-deleted:#b91c1c;--code-inserted:#15803d;--tag-bugfix-text:#b42318;--tag-bugfix-border:#fecdca;--tag-bugfix-background:#fef3f2;--tag-bugfix-bar:#f04438;--tag-refactoring-text:#6941c6;--tag-refactoring-border:#d9d6fe;--tag-refactoring-background:#f4f3ff;--tag-refactoring-bar:#7a5af8;--tag-feature-dev-text:#175cd3;--tag-feature-dev-border:#b2ddff;--tag-feature-dev-background:#eff8ff;--tag-feature-dev-bar:#2e90fa;--tag-testing-text:#027a48;--tag-testing-border:#abefc6;--tag-testing-background:#ecfdf3;--tag-testing-bar:#12b76a;--tag-docs-text:#b54708;--tag-docs-border:#fedf89;--tag-docs-background:#fffaeb;--tag-docs-bar:#f79009;--tag-git-ops-text:#3538cd;--tag-git-ops-border:#c7d7fe;--tag-git-ops-background:#eef4ff;--tag-git-ops-bar:#444ce7;--tag-build-deploy-text:#c4320a;--tag-build-deploy-border:#f9dbaf;--tag-build-deploy-background:#fef6ee;--tag-build-deploy-bar:#ef6820;--tag-exploration-text:#0e7090;--tag-exploration-border:#a5f0fc;--tag-exploration-background:#ecfdff;--tag-exploration-bar:#06aed4;--tag-planning-text:#c11574;--tag-planning-border:#fcceee;--tag-planning-background:#fdf2fa;--tag-planning-bar:#ee46bc;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--dur-fast:.12s;--dur-base:.18s;--scan-progress-duration:1.2s;--tt-in-dur:.15s;--tt-out-dur:50ms;--tt-scale:.98;--tt-delay:80ms;--tt-in-ease:ease-out;--tt-out-ease:ease-out;--tt-bg:var(--console-surface);--tt-fg:var(--console-text)}.dark{--console-bg:#101012;--console-sidebar-bg:#0b0b0d;--console-surface:#18181b;--console-surface-muted:#1e1e22;--console-surface-sunken:#0b0b0d;--console-border:#2a2a30;--console-border-strong:#3a3a42;--console-thread:#2a2a30;--console-text:#f3f2ef;--console-text-secondary:#b6b5bd;--console-muted:#8e8e98;--console-accent:#f3f2ef;--console-accent-strong:#fff;--console-accent-fg:#101012;--brand:#ff7a45;--brand-hover:#ff9166;--brand-soft:#2a1710;--brand-line:#5a2e19;--brand-fg:#101012;--positive:#4fd3b4;--positive-soft:#10251f;--console-success:#4fd3b4;--console-success-bg:#10251f;--console-success-border:#1d4a3e;--console-warning:#e8a23b;--console-warning-bg:#2a1e08;--console-warning-border:#573d12;--console-error:#ff6369;--console-error-bg:#2a1214;--console-error-border:#57262a;--console-thinking-bg:#1e1e22;--console-thinking-border:#26262c;--token-input:#a4491a;--token-output:#d8622a;--token-cache-read:#ff8f52;--token-cache-write:#ffb98d;--chart-hatch:#ffffff0a;--tile-rest:oklch(32% .012 45);--tile-wash:oklch(44% .07 45);--tile-ink:oklch(78% .175 45);--chart-1:#64adff;--chart-2:#9179ff;--chart-3:#55c79e;--chart-4:#f0b158;--chart-5:#ff6369;--chart-6:#6fd9e5;--chart-7:#f78fc2;--chart-8:#b9a3ff;--chart-9:#ffa457;--chart-10:#86efc6;--diff-add-fg:#6fdba3;--diff-add-bg:#10251f;--diff-remove-fg:#f592a0;--diff-remove-bg:#2a1214;--diff-hunk-fg:#b6a4f7;--diff-hunk-bg:#1a1430;--diff-meta-fg:#8ec1fb;--diff-meta-bg:#0e1e30;--diff-header-bg:#1e1e22;--timeline-user:#c98aa8;--timeline-agent:#82aed4;--timeline-tool-read:#6bb3a0;--timeline-tool-write:#d99a5c;--timeline-tool-execute:#a89bc9;--elevation-raised:0 1px 2px #0006, 0 12px 32px -16px #000000b3;--elevation-overlay:0 4px 16px #00000080, 0 24px 56px -24px #000c;--elevation-drawer:-12px 0 32px #0009;--scrim:#0000008c;--code-fg:#f3f2ef;--code-comment:#7b7a84;--code-keyword:#ff8ab8;--code-string:#7fd6a8;--code-number:#f0b158;--code-function:#8ec1fb;--code-variable:#f3f2ef;--code-punctuation:#8e8e98;--code-deleted:#ff6369;--code-inserted:#4fd3b4;--tag-bugfix-text:#f592a0;--tag-bugfix-border:#5c2530;--tag-bugfix-background:#241014;--tag-bugfix-bar:#fb7185;--tag-refactoring-text:#b6a4f7;--tag-refactoring-border:#3a2f63;--tag-refactoring-background:#180f2b;--tag-refactoring-bar:#9b87f0;--tag-feature-dev-text:#8ec1fb;--tag-feature-dev-border:#1f3a5c;--tag-feature-dev-background:#0e1e30;--tag-feature-dev-bar:#5b9df0;--tag-testing-text:#6fdba3;--tag-testing-border:#1c4a30;--tag-testing-background:#0c2318;--tag-testing-bar:#3fbe80;--tag-docs-text:#f6b768;--tag-docs-border:#5c3d10;--tag-docs-background:#2a1a06;--tag-docs-bar:#f0a13f;--tag-git-ops-text:#a9b3f8;--tag-git-ops-border:#332f66;--tag-git-ops-background:#171531;--tag-git-ops-bar:#818cf8;--tag-build-deploy-text:#f6a06a;--tag-build-deploy-border:#5c3416;--tag-build-deploy-background:#2a1708;--tag-build-deploy-bar:#f0813f;--tag-exploration-text:#6fd4e8;--tag-exploration-border:#1c4650;--tag-exploration-background:#0c2126;--tag-exploration-bar:#3fb8d4;--tag-planning-text:#f593cf;--tag-planning-border:#5c2246;--tag-planning-background:#240f1e;--tag-planning-bar:#ef6bc0}*{border-color:var(--color-border)}body{background-color:var(--color-background);color:var(--color-foreground)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-\[18px\]{top:18px}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.-left-\[4px\]{left:-4px}.left-0{left:0}.left-1\/2{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[51\]{z-index:51}.z-\[60\]{z-index:60}.z-\[61\]{z-index:61}.z-\[62\]{z-index:62}.order-3{order:3}.col-span-2{grid-column:span 2/span 2}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.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-\[3px\]{margin-top:3px}.mt-\[5px\]{margin-top:5px}.mt-\[7px\]{margin-top:7px}.mt-\[9px\]{margin-top:9px}.mt-\[14px\]{margin-top:14px}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-0{width:0;height:0}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-\[7px\]{width:7px;height:7px}.size-\[9px\]{width:9px;height:9px}.size-\[10px\]{width:10px;height:10px}.size-\[13px\]{width:13px;height:13px}.size-\[18px\]{width:18px;height:18px}.size-full{width:100%;height:100%}.h-1{height:var(--spacing)}.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-9{height:calc(var(--spacing) * 9)}.h-32{height:calc(var(--spacing) * 32)}.h-\[10px\]{height:10px}.h-\[11px\]{height:11px}.h-\[15px\]{height:15px}.h-\[27px\]{height:27px}.h-\[100px\]{height:100px}.h-\[116px\]{height:116px}.h-\[168px\]{height:168px}.h-\[248px\]{height:248px}.h-\[calc\(100dvh-5\.5rem\)\]{height:calc(100dvh - 5.5rem)}.h-\[min\(560px\,calc\(100vh-410px\)\)\]{height:min(560px,100vh - 410px)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[200px\]{max-height:200px}.max-h-\[280px\]{max-height:280px}.max-h-\[420px\]{max-height:420px}.max-h-\[520px\]{max-height:520px}.max-h-\[min\(320px\,calc\(100vh-400px\)\)\]{max-height:min(320px,100vh - 400px)}.min-h-0{min-height:0}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-56{min-height:calc(var(--spacing) * 56)}.min-h-\[420px\]{min-height:420px}.min-h-full{min-height:100%}.w-2\/3{width:66.6667%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-5\/6{width:83.3333%}.w-5\/12{width:41.6667%}.w-6{width:calc(var(--spacing) * 6)}.w-6\/12{width:50%}.w-7\/12{width:58.3333%}.w-8{width:calc(var(--spacing) * 8)}.w-8\/12{width:66.6667%}.w-9\/12{width:75%}.w-10{width:calc(var(--spacing) * 10)}.w-10\/12{width:83.3333%}.w-11\/12{width:91.6667%}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-64{width:calc(var(--spacing) * 64)}.w-\[34px\]{width:34px}.w-\[38px\]{width:38px}.w-\[54px\]{width:54px}.w-\[76px\]{width:76px}.w-\[84px\]{width:84px}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-\[min\(90vw\,380px\)\]{width:min(90vw,380px)}.w-\[min\(92vw\,430px\)\]{width:min(92vw,430px)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-28{max-width:calc(var(--spacing) * 28)}.max-w-\[42rem\]{max-width:42rem}.max-w-\[220px\]{max-width:220px}.max-w-\[720px\]{max-width:720px}.max-w-\[1440px\]{max-width:1440px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-center{transform-origin:50%}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.scroll-mt-20{scroll-margin-top:calc(var(--spacing) * 20)}.appearance-none{appearance:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[minmax\(80px\,auto\)_1fr\]{grid-template-columns:minmax(80px,auto) 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.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-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-\[5px\]{gap:5px}.gap-\[7px\]{gap:7px}.gap-\[11px\]{gap:11px}.gap-\[13px\]{gap:13px}.gap-\[18px\]{gap:18px}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * 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-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * 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)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:var(--spacing)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.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}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.overscroll-x-contain{overscroll-behavior-x:contain}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-l-sm{border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm)}.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-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--brand\)\]{border-color:var(--brand)}.border-\[var\(--brand-line\)\]{border-color:var(--brand-line)}.border-\[var\(--console-accent\)\]{border-color:var(--console-accent)}.border-\[var\(--console-border\)\]{border-color:var(--console-border)}.border-\[var\(--console-border-strong\)\]{border-color:var(--console-border-strong)}.border-\[var\(--console-error-border\)\]{border-color:var(--console-error-border)}.border-\[var\(--console-success-border\)\]{border-color:var(--console-success-border)}.border-\[var\(--console-thinking-border\)\]{border-color:var(--console-thinking-border)}.border-\[var\(--console-thread\)\]{border-color:var(--console-thread)}.border-\[var\(--console-warning-border\)\]{border-color:var(--console-warning-border)}.border-\[var\(--positive\)\]{border-color:var(--positive)}.border-current{border-color:currentColor}.border-transparent{border-color:#0000}.bg-\[var\(--brand\)\]{background-color:var(--brand)}.bg-\[var\(--brand-line\)\]{background-color:var(--brand-line)}.bg-\[var\(--brand-soft\)\]{background-color:var(--brand-soft)}.bg-\[var\(--console-accent\)\]{background-color:var(--console-accent)}.bg-\[var\(--console-bg\)\]{background-color:var(--console-bg)}.bg-\[var\(--console-border-strong\)\]{background-color:var(--console-border-strong)}.bg-\[var\(--console-error-bg\)\]{background-color:var(--console-error-bg)}.bg-\[var\(--console-sidebar-bg\)\]{background-color:var(--console-sidebar-bg)}.bg-\[var\(--console-success-bg\)\]{background-color:var(--console-success-bg)}.bg-\[var\(--console-surface\)\],.bg-\[var\(--console-surface\)\]\/70{background-color:var(--console-surface)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--console-surface\)\]\/70{background-color:color-mix(in oklab, var(--console-surface) 70%, transparent)}}.bg-\[var\(--console-surface\)\]\/85{background-color:var(--console-surface)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--console-surface\)\]\/85{background-color:color-mix(in oklab, var(--console-surface) 85%, transparent)}}.bg-\[var\(--console-surface-muted\)\]{background-color:var(--console-surface-muted)}.bg-\[var\(--console-surface-sunken\)\]{background-color:var(--console-surface-sunken)}.bg-\[var\(--console-thinking-bg\)\]{background-color:var(--console-thinking-bg)}.bg-\[var\(--console-warning-bg\)\]{background-color:var(--console-warning-bg)}.bg-\[var\(--diff-add-bg\)\]{background-color:var(--diff-add-bg)}.bg-\[var\(--diff-header-bg\)\]{background-color:var(--diff-header-bg)}.bg-\[var\(--diff-hunk-bg\)\]{background-color:var(--diff-hunk-bg)}.bg-\[var\(--diff-meta-bg\)\]{background-color:var(--diff-meta-bg)}.bg-\[var\(--diff-remove-bg\)\]{background-color:var(--diff-remove-bg)}.bg-\[var\(--positive-soft\)\]{background-color:var(--positive-soft)}.bg-\[var\(--scrim\)\]{background-color:var(--scrim)}.bg-\[var\(--timeline-agent\)\]{background-color:var(--timeline-agent)}.bg-\[var\(--timeline-tool-execute\)\]{background-color:var(--timeline-tool-execute)}.bg-\[var\(--timeline-tool-read\)\]{background-color:var(--timeline-tool-read)}.bg-\[var\(--timeline-tool-write\)\]{background-color:var(--timeline-tool-write)}.bg-\[var\(--timeline-user\)\]{background-color:var(--timeline-user)}.bg-current{background-color:currentColor}.bg-transparent{background-color:#0000}.bg-\[linear-gradient\(to_left\,var\(--console-surface\)_55\%\,transparent\)\]{background-image:linear-gradient(to left,var(--console-surface) 55%,transparent)}.bg-\[linear-gradient\(to_right\,var\(--console-surface\)_55\%\,transparent\)\]{background-image:linear-gradient(to right,var(--console-surface) 55%,transparent)}.stroke-\[3\]{stroke-width:3px}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.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)}.p-\[3px\]{padding:3px}.p-\[9px_12px\]{padding:9px 12px}.p-\[10px_16px_12px_66px\]{padding:10px 16px 12px 66px}.p-\[13px_16px\]{padding:13px 16px}.p-\[14px_16px\]{padding:14px 16px}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.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-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-\[13px\]{padding-inline:13px}.px-\[15px\]{padding-inline:15px}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.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-\[3px\]{padding-block:3px}.py-\[5px\]{padding-block:5px}.py-\[11px\]{padding-block:11px}.py-\[14px\]{padding-block:14px}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-\[11px\]{padding-top:11px}.pt-\[14px\]{padding-top:14px}.pr-0{padding-right:0}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-1{padding-right:var(--spacing)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pl-0\.5{padding-left:calc(var(--spacing) * .5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-\[13px\]{padding-left:13px}.pl-\[14px\]{padding-left:14px}.pl-\[22px\]{padding-left:22px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[19px\]{font-size:19px}.text-\[27px\]{font-size:27px}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[0\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.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-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--brand\)\]{color:var(--brand)}.text-\[var\(--brand-fg\)\]{color:var(--brand-fg)}.text-\[var\(--code-fg\)\]{color:var(--code-fg)}.text-\[var\(--console-accent\)\]{color:var(--console-accent)}.text-\[var\(--console-accent-fg\)\]{color:var(--console-accent-fg)}.text-\[var\(--console-error\)\]{color:var(--console-error)}.text-\[var\(--console-muted\)\]{color:var(--console-muted)}.text-\[var\(--console-success\)\]{color:var(--console-success)}.text-\[var\(--console-text\)\]{color:var(--console-text)}.text-\[var\(--console-text-secondary\)\]{color:var(--console-text-secondary)}.text-\[var\(--console-warning\)\]{color:var(--console-warning)}.text-\[var\(--diff-add-fg\)\]{color:var(--diff-add-fg)}.text-\[var\(--diff-hunk-fg\)\]{color:var(--diff-hunk-fg)}.text-\[var\(--diff-meta-fg\)\]{color:var(--diff-meta-fg)}.text-\[var\(--diff-remove-fg\)\]{color:var(--diff-remove-fg)}.text-\[var\(--positive\)\]{color:var(--positive)}.text-transparent{color:#0000}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-\[var\(--console-border-strong\)\]{-webkit-text-decoration-color:var(--console-border-strong);-webkit-text-decoration-color:var(--console-border-strong);-webkit-text-decoration-color:var(--console-border-strong);text-decoration-color:var(--console-border-strong)}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-45{opacity:.45}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px 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)}.shadow-\[var\(--shadow-drawer\)\]{--tw-shadow:var(--shadow-drawer);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-overlay\)\]{--tw-shadow:var(--shadow-overlay);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-raised\)\]{--tw-shadow:var(--shadow-raised);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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)}.ring-2{--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)}.ring-\[var\(--console-surface\)\]{--tw-ring-color:var(--console-surface)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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-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-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-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.\[writing-mode\:vertical-rl\]{writing-mode:vertical-rl}.duration-150{animation-duration:.15s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.paused{animation-play-state:paused}.running{animation-play-state:running}.placeholder\:text-\[var\(--console-muted\)\]::placeholder{color:var(--console-muted)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.focus-within\:border-\[var\(--brand-line\)\]:focus-within{border-color:var(--brand-line)}.focus-within\:ring-2:focus-within{--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-within\:ring-\[var\(--brand\)\]:focus-within{--tw-ring-color:var(--brand)}@media (hover:hover){.hover\:border-\[var\(--brand-line\)\]:hover{border-color:var(--brand-line)}.hover\:border-\[var\(--console-border\)\]:hover{border-color:var(--console-border)}.hover\:border-\[var\(--console-border-strong\)\]:hover{border-color:var(--console-border-strong)}.hover\:bg-\[var\(--brand-hover\)\]:hover{background-color:var(--brand-hover)}.hover\:bg-\[var\(--brand-soft\)\]:hover{background-color:var(--brand-soft)}.hover\:bg-\[var\(--console-error-bg\)\]:hover{background-color:var(--console-error-bg)}.hover\:bg-\[var\(--console-surface\)\]:hover{background-color:var(--console-surface)}.hover\:bg-\[var\(--console-surface-muted\)\]:hover{background-color:var(--console-surface-muted)}.hover\:text-\[var\(--brand\)\]:hover{color:var(--brand)}.hover\:text-\[var\(--brand-hover\)\]:hover{color:var(--brand-hover)}.hover\:text-\[var\(--console-text\)\]:hover{color:var(--console-text)}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:fixed:focus{position:fixed}.focus\:top-2:focus{top:calc(var(--spacing) * 2)}.focus\:left-2:focus{left:calc(var(--spacing) * 2)}.focus\:z-\[60\]:focus{z-index:60}.focus\:border-\[var\(--brand\)\]:focus{border-color:var(--brand)}.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-\[var\(--brand\)\]\/25:focus{--tw-ring-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-\[var\(--brand\)\]\/25:focus{--tw-ring-color:color-mix(in oklab, var(--brand) 25%, transparent)}}.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-\[var\(--brand\)\]:focus-visible{--tw-ring-color:var(--brand)}.focus-visible\:ring-\[var\(--brand-fg\)\]:focus-visible{--tw-ring-color:var(--brand-fg)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-\[var\(--console-bg\)\]:focus-visible{--tw-ring-offset-color:var(--console-bg)}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-1:focus-visible{outline-offset:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-\[-2px\]:focus-visible{outline-offset:-2px}.focus-visible\:outline-\[var\(--brand\)\]:focus-visible{outline-color:var(--brand)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.active\:scale-\[0\.995\]:active{scale:.995}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.data-\[highlighted\]\:bg-\[var\(--console-surface-muted\)\][data-highlighted]{background-color:var(--console-surface-muted)}@media (prefers-reduced-motion:reduce){.motion-reduce\:transform-none{transform:none}.motion-reduce\:animate-none{animation:none}}@media (width>=1025px){.min-\[1025px\]\:sticky{position:sticky}.min-\[1025px\]\:top-4{top:calc(var(--spacing) * 4)}.min-\[1025px\]\:block{display:block}.min-\[1025px\]\:flex{display:flex}.min-\[1025px\]\:hidden{display:none}.min-\[1025px\]\:inline-flex{display:inline-flex}.min-\[1025px\]\:max-h-\[calc\(100dvh-14rem\)\]{max-height:calc(100dvh - 14rem)}.min-\[1025px\]\:grid-cols-\[288px_minmax\(0\,1fr\)\]{grid-template-columns:288px minmax(0,1fr)}.min-\[1025px\]\:items-start{align-items:flex-start}.min-\[1025px\]\:overflow-y-auto{overflow-y:auto}.min-\[1025px\]\:overscroll-contain{overscroll-behavior:contain}}@media (width>=40rem){.sm\:order-none{order:0}.sm\:col-span-1{grid-column:span 1/span 1}.sm\:mx-auto{margin-inline:auto}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:w-auto{width:auto}.sm\:max-w-44{max-width:calc(var(--spacing) * 44)}.sm\:max-w-\[560px\]{max-width:560px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-\[130px_1fr\]{grid-template-columns:130px 1fr}.sm\:grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:py-0{padding-block:0}.sm\:pr-7{padding-right:calc(var(--spacing) * 7)}}@media (width>=48rem){.md\:w-24{width:calc(var(--spacing) * 24)}.md\:w-\[560px\]{width:560px}.md\:max-w-xs{max-width:var(--container-xs)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:items-start{align-items:flex-start}.md\:justify-between{justify-content:space-between}.md\:gap-3{gap:calc(var(--spacing) * 3)}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:pr-5{padding-right:calc(var(--spacing) * 5)}.md\:text-\[2rem\]{font-size:2rem}}@media (width>=64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-\[1\.45fr_1fr\]{grid-template-columns:1.45fr 1fr}}@media (width>=80rem){.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing) * 6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing) * 6)}.console-ui{font-family:var(--font-sans)}.console-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.console-display{font-family:var(--font-display);letter-spacing:var(--tracking-display)}.chart-hatch{background:repeating-linear-gradient(-45deg, var(--chart-hatch) 0 1px, transparent 1px 7px)}.console-eyebrow{font-family:var(--font-mono);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--console-muted);font-size:10px;font-weight:500}mark{background:var(--brand-soft);color:var(--brand);border-radius:var(--radius-xs);padding:0 1px}.skeleton-shimmer{background-image:linear-gradient(90deg, var(--console-surface-muted) 0%, var(--console-surface-sunken) 50%, var(--console-surface-muted) 100%);animation:var(--animate-shimmer);background-repeat:no-repeat;background-size:320px 100%}.bg-grid{background-size:40px 40px;background-image:linear-gradient(to right, var(--console-text) 1px, transparent 1px), linear-gradient(to bottom, var(--console-text) 1px, transparent 1px)}@supports (color:color-mix(in lab, red, red)){.bg-grid{background-image:linear-gradient(to right, color-mix(in oklab, var(--console-text) 5%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklab, var(--console-text) 5%, transparent) 1px, transparent 1px)}}.scan-progress-indeterminate{width:40%;animation:scan-progress-indeterminate var(--scan-progress-duration) linear infinite;will-change:transform;transform:translate(-100%)}.shortcut-overlay[data-open]{animation:shortcut-overlay-in .2s var(--ease-out)}.shortcut-overlay[data-closed]{animation:shortcut-overlay-out .15s var(--ease-out)}.shortcut-content[data-open]{animation:shortcut-content-in .2s var(--ease-out)}.shortcut-content[data-closed]{animation:shortcut-content-out .15s var(--ease-out)}.motion-backdrop{opacity:1;transition:opacity .2s var(--ease-out)}.motion-backdrop[data-starting-style]{opacity:0}.motion-backdrop[data-ending-style]{opacity:0;transition-duration:.15s}.motion-modal{opacity:1;transform-origin:50%;transition:opacity .2s var(--ease-out), scale .2s var(--ease-out);scale:1}.motion-modal[data-starting-style],.motion-modal[data-ending-style]{opacity:0;scale:.96}.motion-modal[data-ending-style]{transition-duration:.15s}.motion-drawer{opacity:1;transition:opacity .2s var(--ease-out), transform .26s var(--ease-drawer);transform:translate(0)}.motion-drawer[data-starting-style],.motion-drawer[data-ending-style]{opacity:0;transform:translate(100%)}.motion-drawer[data-drawer-side=left][data-starting-style],.motion-drawer[data-drawer-side=left][data-ending-style]{transform:translate(-100%)}.motion-drawer[data-ending-style]{transition-duration:.18s}.motion-menu{opacity:1;transform-origin:var(--transform-origin);transition:opacity var(--dur-fast) var(--ease-out), scale var(--dur-fast) var(--ease-out);scale:1}.motion-menu[data-starting-style],.motion-menu[data-ending-style]{opacity:0;scale:.96}.motion-hover{transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out)}.motion-press{transition:transform var(--dur-fast) var(--ease-out)}.motion-press:active{transform:scale(.97)}.motion-hover.motion-press{transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out)}.motion-collapsible{opacity:0;transition:grid-template-rows var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out);grid-template-rows:0fr;display:grid}.motion-collapsible[data-open]{opacity:1;grid-template-rows:1fr}.motion-collapsible-inner{min-height:0;overflow:hidden}.motion-chevron{transition:transform var(--dur-fast) var(--ease-out)}.motion-chevron[data-open]{transform:rotate(180deg)}.t-tt-wrap{display:inline-block;position:relative}.t-tt{transform:translate(-50%, 0) scale(var(--tt-scale));transform-origin:50% 100%;border-radius:var(--radius-md);background:var(--tt-bg);color:var(--tt-fg);white-space:nowrap;box-shadow:var(--shadow-overlay);opacity:0;pointer-events:none;transition:opacity var(--tt-out-dur) var(--tt-out-ease), transform var(--tt-out-dur) var(--tt-out-ease);padding:8px 12px;position:absolute;bottom:calc(100% + 8px);left:50%}.t-tt-wrap:hover .t-tt,.t-tt-trigger:focus-visible+.t-tt{opacity:1;transition-duration:var(--tt-in-dur);transition-timing-function:var(--tt-in-ease);transition-delay:var(--tt-delay);transform:translate(-50%)scale(1)}.session-timeline-floating-tooltip{z-index:50;text-overflow:ellipsis;opacity:1;transform-origin:50% 0;border:1px solid var(--console-border);max-width:calc(100vw - 16px);box-shadow:var(--shadow-overlay);border-radius:2px;position:fixed;bottom:auto;overflow:hidden;transform:translate(-50%)scale(1)}.session-timeline-viewport{scrollbar-width:none}.session-timeline-viewport::-webkit-scrollbar{display:none}.session-timeline-minimap{border-radius:2px}.session-timeline-minimap:before{content:"";position:absolute;inset:-7px 0}.session-timeline-minimap canvas{opacity:.75}.session-timeline-minimap-window{border:1px solid var(--console-text)}@supports (color:color-mix(in lab, red, red)){.session-timeline-minimap-window{border:1px solid color-mix(in oklab, var(--console-text) 45%, transparent)}}.session-timeline-minimap-window{box-shadow:0 0 0 9999px var(--console-bg);border-radius:2px}@supports (color:color-mix(in lab, red, red)){.session-timeline-minimap-window{box-shadow:0 0 0 9999px color-mix(in oklab, var(--console-bg) 72%, transparent)}}.session-timeline-segment{opacity:.58;transition:opacity .1s;position:relative}.session-timeline-segment:before{content:"";position:absolute;inset:-2px 0}.session-timeline-segment[aria-current=location]{z-index:1;opacity:1;box-shadow:0 0 0 2px var(--console-surface), 0 0 0 3px var(--brand)}}.dark,.dark *{--tw-ring-offset-color:var(--console-bg)}@media (hover:hover) and (pointer:fine){.session-timeline-segment:hover{opacity:.88}}@media (prefers-reduced-motion:reduce){.motion-backdrop,.motion-modal,.motion-drawer,.motion-menu{transition:opacity .15s var(--ease-out)}.motion-modal,.motion-modal[data-starting-style],.motion-modal[data-ending-style]{scale:1}.motion-drawer,.motion-drawer[data-starting-style],.motion-drawer[data-ending-style]{transform:none}.motion-menu,.motion-menu[data-starting-style],.motion-menu[data-ending-style]{scale:1}.motion-collapsible,.motion-chevron,.motion-press{transition:none}.motion-press:active{transform:none}.motion-hover.motion-press{transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out)}.shortcut-content[data-open]{animation-name:shortcut-overlay-in}.shortcut-content[data-closed]{animation-name:shortcut-overlay-out}.t-tt{transition:none!important}.session-timeline-segment{transition:none}.scan-progress-indeterminate{opacity:.65;width:40%;animation:none;transform:translate(75%)}.skeleton-shimmer,[class*=animate-pulse-soft]{animation:none}}.console-scrollbar::-webkit-scrollbar{width:6px;height:6px}.console-scrollbar::-webkit-scrollbar-track{background:0 0}.console-scrollbar::-webkit-scrollbar-thumb{background:var(--console-border-strong);border-radius:2px}.console-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--console-muted)}.console-scrollbar{scrollbar-width:thin;scrollbar-color:var(--console-border-strong) transparent}.console-markdown>*+*{margin-top:.75rem}.console-markdown{overflow-wrap:anywhere;word-break:break-word;min-width:0}.console-markdown p{margin:0}.console-markdown h1,.console-markdown h2,.console-markdown h3,.console-markdown h4,.console-markdown h5,.console-markdown h6{color:var(--console-text);font-family:var(--font-display);letter-spacing:var(--tracking-display);margin:0;font-weight:700;line-height:1.3}.console-markdown h1{font-size:1.5rem}.console-markdown h2{font-size:1.25rem}.console-markdown h3{font-size:1.1rem}.console-markdown h4,.console-markdown h5,.console-markdown h6{font-size:1rem}.console-markdown ul,.console-markdown ol{margin:.5rem 0;padding-left:1.25rem}.console-markdown ul{list-style:outside}.console-markdown ol{list-style:decimal}.console-markdown li+li{margin-top:.25rem}.console-markdown li>p{margin:0}.console-markdown strong{font-weight:700}.console-markdown blockquote{border-left:3px solid var(--console-border-strong);color:var(--console-muted);margin:0;padding-left:.875rem}.console-markdown hr{border:0;border-top:1px solid var(--console-border);margin:1rem 0}.console-markdown a{color:var(--brand);text-decoration:underline}.console-markdown a:hover{color:var(--brand-hover)}.console-markdown-link{color:inherit;cursor:text;text-decoration:none}.console-markdown code{font-family:var(--font-mono);background:var(--console-surface-sunken);border:1px solid var(--console-border);border-radius:var(--radius-xs);overflow-wrap:anywhere;white-space:pre-wrap;padding:.08rem .32rem;font-size:.8rem}.console-markdown pre{max-width:100%;font-family:var(--font-mono);border:1px solid var(--console-border);background:var(--console-surface-sunken);border-radius:var(--radius-xs);margin:0;padding:.75rem;overflow-x:auto}.console-markdown pre code{overflow-wrap:normal;white-space:pre;background:0 0;border:none;padding:0}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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 shortcut-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes shortcut-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes shortcut-content-in{0%{opacity:0;scale:.96}to{opacity:1;scale:1}}@keyframes shortcut-content-out{0%{opacity:1;scale:1}to{opacity:0;scale:.96}}@keyframes scan-progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes shimmer{0%{background-position:-320px 0}to{background-position:320px 0}}
@@ -0,0 +1,4 @@
1
+ import{a as e,n as t}from"./jsx-runtime-B-hcVAMW.js";import{D as n,O as r,g as i,p as a}from"./translate-Dmym1ZDl.js";var o=e(t(),1),s=`modulepreload`,c=function(e){return`/`+e},l={},u=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function u(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=c(t,n),t=u(t),t in l)return;l[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:s,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},d=e=>{throw TypeError(e)},f=(e,t,n)=>t.has(e)||d(`Cannot `+n),p=(e,t,n)=>(f(e,t,`read from private field`),n?n.call(e):t.get(e)),m=(e,t,n)=>t.has(e)?d(`Cannot add the same private member more than once`):t instanceof WeakSet?t.add(e):t.set(e,n),h=(e,t,n,r)=>(f(e,t,`write to private field`),r?r.call(e,n):t.set(e,n),n),g=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,_=/^[\\/]{2}/;function v(e,t){return t+e.replace(/\\/g,`/`)}var y=`popstate`;function b(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function x(e={}){function t(e,t){let n=t.state?.masked,{pathname:r,search:i,hash:a}=n||e.location;return E(``,{pathname:r,search:i,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||`default`,n?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)}function n(e,t){return typeof t==`string`?t:D(t)}return k(t,n,null,e)}function S(e,t){if(e===!1||e==null)throw Error(t)}function C(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function w(){return Math.random().toString(36).substring(2,10)}function T(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function E(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?O(t):t,state:n,key:t&&t.key||r||w(),mask:i}}function D({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function O(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function k(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=b(e)?e:E(h.location,e,t);n&&n(r,e),l=u()+1;let d=T(r,l),f=h.createHref(r.mask||r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=b(e)?e:E(h.location,e,t);n&&n(r,e),l=u();let i=T(r,l),d=h.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return A(i,e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(y,d),c=e,()=>{i.removeEventListener(y,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function A(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),S(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:D(t);return i=i.replace(/ $/,`%20`),!n&&_.test(i)&&(i=r+i),new URL(i,r)}function j(e){return{defaultValue:e}}var M,ee=class{constructor(e){if(m(this,M,new Map),e)for(let[t,n]of e)this.set(t,n)}get(e){if(p(this,M).has(e))return p(this,M).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw Error(`No value found for context`)}set(e,t){p(this,M).set(e,t)}};M=new WeakMap;var N=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`children`]);function te(e){return N.has(e)}var P=new Set([`lazy`,`caseSensitive`,`path`,`id`,`index`,`middleware`,`children`]);function F(e){return P.has(e)}function ne(e){return e.index===!0}function re(e,t,n=[],r={},i=!1){return e.map((e,a)=>{let o=[...n,String(a)],s=typeof e.id==`string`?e.id:o.join(`-`);if(S(e.index!==!0||!e.children,`Cannot specify children on an index route`),S(i||!r[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),ne(e)){let n={...e,id:s};return r[s]=ie(n,t(n)),n}{let n={...e,id:s,children:void 0};return r[s]=ie(n,t(n)),e.children&&(n.children=re(e.children,t,o,r,i)),n}})}function ie(e,t){return Object.assign(e,{...t,...typeof t.lazy==`object`&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function I(e,t,n=`/`){return L(e,t,n,!1)}function L(e,t,n,r,i){let a=U((typeof t==`string`?O(t):t).pathname||`/`,n);if(a==null)return null;let o=i??R(e),s=null,c=ve(a);for(let e=0;s==null&&e<o.length;++e)s=he(o[e],c,r);return s}function ae(e,t){let{route:n,pathname:r,params:i}=e;return{id:n.id,pathname:r,params:i,data:t[n.id],loaderData:t[n.id],handle:n.handle}}function R(e){let t=oe(e);return se(t),t}function oe(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;S(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=W([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(S(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),oe(e.children,t,u,l,o)),!(e.path==null&&!e.index)&&t.push({path:l,score:pe(l,e.index),routesMeta:u.map((e,t)=>{let[n,r]=H(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:r}})})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of z(e.path))a(e,t,!0,n)}),t}function z(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=z(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function se(e){e.sort((e,t)=>e.score===t.score?me(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var ce=/^:[\w-]+$/,le=3,ue=2,de=1,fe=10,B=-2,V=e=>e===`*`;function pe(e,t){let n=e.split(`/`),r=n.length;return n.some(V)&&(r+=B),t&&(r+=ue),n.filter(e=>!V(e)).reduce((e,t)=>e+(ce.test(t)?le:t===``?de:fe),r)}function me(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function he(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u={path:s.relativePath,caseSensitive:s.caseSensitive,end:c},d=s.matcher&&s.compiledParams?_e(u,l,s.matcher,s.compiledParams):ge(u,l),f=s.route;if(!d&&c&&n&&!r[r.length-1].route.index&&(d=ge({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:W([a,d.pathname]),pathnameBase:ke(W([a,d.pathnameBase])),route:f}),d.pathnameBase!==`/`&&(a=W([a,d.pathnameBase]))}return o}function ge(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=H(e.path,e.caseSensitive,e.end);return _e(e,t,n,r)}function _e(e,t,n,r){let i=t.match(n);if(!i)return null;let a=i[0],o=Oe(a,1),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=Oe(a.slice(0,a.length-e.length),1)}let i=s[r];return e[t]=n&&!i?void 0:(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function H(e,t=!1,n=!0){C(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 r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function ve(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return C(!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 U(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function ye({basename:e,pathname:t}){return t===`/`?e:W([e,t])}var be=e=>g.test(e);function xe(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?O(e):e,a;return n?(n=De(n),a=n.startsWith(`/`)||n.startsWith(`\\`)?Se(n.substring(1),`/`):Se(n,t)):a=t,{pathname:a,search:Ae(r),hash:je(i)}}function Se(e,t){let n=Oe(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function Ce(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function we(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function Te(e){let t=we(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function Ee(e,t,n,r=!1){let i;typeof e==`string`?i=O(e):(i={...e},S(!i.pathname||!i.pathname.includes(`?`),Ce(`?`,`pathname`,`search`,i)),S(!i.pathname||!i.pathname.includes(`#`),Ce(`#`,`pathname`,`hash`,i)),S(!i.search||!i.search.includes(`#`),Ce(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=xe(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var De=e=>e.replace(/[\\/]{2,}/g,`/`),W=e=>De(e.join(`/`));function Oe(e,t=0){let n=e.length;for(;n>t&&e.charCodeAt(n-1)===47;)n--;return n===e.length?e:e.slice(0,n)}var ke=e=>Oe(e).replace(/^\/*/,`/`),Ae=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,je=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,Me=[`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],G=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Ne(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function K(e){return W(e.map(e=>e.route.path).filter(Boolean))||`/`}var Pe=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Fe(e,t){let n=e;if(typeof n!=`string`||!g.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(Pe)try{let e=new URL(window.location.href),r=_.test(n)?new URL(v(n,e.protocol)):new URL(n),a=U(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{C(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}var q=Symbol(`Uninstrumented`);function Ie(e,t){let n={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(e=>e({id:t.id,index:t.index,path:t.path,instrument(e){let t=Object.keys(n);for(let r of t)e[r]&&n[r].push(e[r])}}));let r={};if(typeof t.lazy==`function`&&n.lazy.length>0){let e=Re(n.lazy,t.lazy,()=>void 0);e&&(r.lazy=e)}if(typeof t.lazy==`object`){let e=t.lazy;[`middleware`,`loader`,`action`].forEach(t=>{let i=e[t],a=n[`lazy.${t}`];if(typeof i==`function`&&a.length>0){let e=Re(a,i,()=>void 0);e&&(r.lazy=Object.assign(r.lazy||{},{[t]:e}))}})}return[`loader`,`action`].forEach(e=>{let i=t[e];if(typeof i==`function`&&n[e].length>0){let t=i[q]??i,a=Re(n[e],t,(...e)=>ze(e[0]));a&&(e===`loader`&&t.hydrate===!0&&(a.hydrate=!0),a[q]=t,r[e]=a)}}),t.middleware&&t.middleware.length>0&&n.middleware.length>0&&(r.middleware=t.middleware.map(e=>{let t=e[q]??e,r=Re(n.middleware,t,(...e)=>ze(e[0]));return r?(r[q]=t,r):e})),r}function Le(e,t){let n={navigate:[],fetch:[]};if(t.forEach(e=>e({instrument(e){let t=Object.keys(e);for(let r of t)e[r]&&n[r].push(e[r])}})),n.navigate.length>0){let t=e.navigate[q]??e.navigate,r=Re(n.navigate,t,(...t)=>{let[n,r]=t;return{to:typeof n==`number`||typeof n==`string`?n:n?D(n):`.`,...Be(e,r??{})}});r&&(r[q]=t,e.navigate=r)}if(n.fetch.length>0){let t=e.fetch[q]??e.fetch,r=Re(n.fetch,t,(...t)=>{let[n,,r,i]=t;return{href:r??`.`,fetcherKey:n,...Be(e,i??{})}});r&&(r[q]=t,e.fetch=r)}return e}function Re(e,t,n){return e.length===0?null:async(...r)=>{let i=await J(e,n(...r),()=>t(...r),e.length-1);if(i.type===`error`)throw i.value;return i.value}}async function J(e,t,n,r){let i=e[r],a;if(i){let o,s=async()=>(o?console.error(`You cannot call instrumented handlers more than once`):o=J(e,t,n,r-1),a=await o,S(a,`Expected a result`),a.type===`error`&&a.value instanceof Error?{status:`error`,error:a.value}:{status:`success`,error:void 0});try{await i(s,t)}catch(e){console.error(`An instrumentation function threw an error:`,e)}o||await s(),await o}else try{a={type:`success`,value:await n()}}catch(e){a={type:`error`,value:e}}return a||{type:`error`,value:Error(`No result assigned in instrumentation chain.`)}}function ze(e){let{request:t,context:n,params:r,pattern:i}=e;return{request:Ve(t),params:{...r},pattern:i,context:He(n)}}function Be(e,t){return{currentUrl:D(e.state.location),...`formMethod`in t?{formMethod:t.formMethod}:{},...`formEncType`in t?{formEncType:t.formEncType}:{},...`formData`in t?{formData:t.formData}:{},...`body`in t?{body:t.body}:{}}}function Ve(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function He(e){if(We(e)){let t={...e};return Object.freeze(t),t}return{get:t=>e.get(t)}}var Ue=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function We(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===Ue}var Ge=new URL(`http://localhost`);function Ke(e){if(e.createURL)return e.createURL(`/`);try{return new URL(e.createHref(`/`),Ge)}catch{return Ge}}function qe(e,t){return e.origin===t.origin&&(e.origin!==`null`||e.protocol===t.protocol&&e.host===t.host)}function Je(e,t){if(e.startsWith(`//`))return!0;let n=t.protocol.toLowerCase();return e.toLowerCase().startsWith(n)?t.host===``||e.slice(n.length).startsWith(`//`):!1}function Ye(e,t,n,r){let i=null;try{i=e==null?null:new URL(e,n)}catch{}let a=new URL(t,n),o=i!=null&&!qe(i,n),s=!qe(a,n);if(r===`reject`){if(o||s)throw Error(`External navigation is not allowed`)}else if(s&&(i==null||!Je(e,i)||!qe(i,a)))throw Error(`External navigation is not allowed`)}var Xe=[`POST`,`PUT`,`PATCH`,`DELETE`],Ze=new Set(Xe),Qe=[`GET`,...Xe],$e=new Set(Qe),et=new Set([301,302,303,307,308]),tt=new Set([307,308]),nt={state:`idle`,location:void 0,matches:void 0,historyAction:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},rt={state:`idle`,data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},it={state:`unblocked`,proceed:void 0,reset:void 0,location:void 0},at=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),ot=`remix-router-transitions`,st=Symbol(`ResetLoaderData`),ct,lt,ut,dt,ft=class{constructor(e){m(this,ct),m(this,lt),m(this,ut),m(this,dt),h(this,ct,e),h(this,lt,R(e))}get stableRoutes(){return p(this,ct)}get activeRoutes(){return p(this,ut)??p(this,ct)}get branches(){return p(this,dt)??p(this,lt)}get hasHMRRoutes(){return p(this,ut)!=null}setRoutes(e){h(this,ct,e),h(this,lt,R(e))}setHmrRoutes(e){h(this,ut,e),h(this,dt,R(e))}commitHmrRoutes(){p(this,ut)&&(h(this,ct,p(this,ut)),h(this,lt,p(this,dt)),h(this,ut,void 0),h(this,dt,void 0))}};ct=new WeakMap,lt=new WeakMap,ut=new WeakMap,dt=new WeakMap;function pt(e){let t=e.window?e.window:typeof window<`u`?window:void 0,n=t!==void 0&&t.document!==void 0&&t.document.createElement!==void 0;S(e.routes.length>0,`You must provide a non-empty routes array to createRouter`);let r=e.hydrationRouteProperties||[],i=e.mapRouteProperties||at,a=i;if(e.instrumentations){let t=e.instrumentations;a=e=>({...i(e),...Ie(t.map(e=>e.route).filter(Boolean),e)})}let o={},s=new ft(re(e.routes,a,void 0,o)),c=e.basename||`/`;c.startsWith(`/`)||(c=`/${c}`);let l=e.dataStrategy||At,u={...e.future},d=null,f=new Set,p=null,m=null,h=null,g=null,v=e.hydrationData!=null,y=L(s.activeRoutes,e.history.location,c,!1,s.branches),b=!1,x=null,w,T;if(y==null&&!e.patchRoutesOnNavigation){let t=Y(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=en(s.activeRoutes);w=!0,T=!w,y=n,x={[r.id]:t}}else if(y&&!e.hydrationData&&Qe(y,s.activeRoutes,e.history.location.pathname).active&&(y=null),!y){w=!1,T=!w,y=[];let t=Qe(null,s.activeRoutes,e.history.location.pathname);t.active&&t.matches&&(b=!0,y=t.matches)}else if(y.some(e=>e.route.lazy))w=!1,T=!w;else if(!y.some(e=>vt(e.route)))w=!0,T=!w;else{let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null,r=y;if(n){let e=y.findIndex(e=>n[e.route.id]!==void 0);r=r.slice(0,e+1)}T=!1,w=!0,r.forEach(e=>{let r=yt(e.route,t,n);T||=r.renderFallback,w&&=!r.shouldLoad})}let k,j={historyAction:e.history.action,location:e.history.location,matches:y,initialized:w,renderFallback:T,navigation:nt,restoreScrollPosition:e.hydrationData==null&&null,preventScrollReset:!1,revalidation:`idle`,loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||x,fetchers:new Map,blockers:new Map},M=`POP`,N=null,te=!1,P,F=!1,ne=new Map,ie=null,I=!1,R=!1,oe=new Set,z=new Map,se=0,ce=-1,le=new Map,ue=new Set,de=new Map,fe=new Map,B=new Set,V=new Map,pe,me=null;function he(){if(d=e.history.listen(({action:t,location:n,delta:r})=>{if(pe){pe(),pe=void 0;return}C(V.size===0||r!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let i=Ge({currentLocation:j.location,nextLocation:n,historyAction:t});if(i&&r!=null){let t=new Promise(e=>{pe=e});e.history.go(r*-1),We(i,{state:`blocked`,location:n,proceed(){We(i,{state:`proceeding`,proceed:void 0,reset:void 0,location:n}),t.then(()=>e.history.go(r))},reset(){let e=new Map(j.blockers);e.set(i,it),H({blockers:e})}}),N?.resolve(),N=null;return}return Se(t,n)}),n){Cn(t,ne);let e=()=>wn(t,ne);t.addEventListener(`pagehide`,e),ie=()=>t.removeEventListener(`pagehide`,e)}return j.initialized||Se(`POP`,j.location,{initialHydration:!0}),k}function ge(){d&&d(),ie&&ie(),f.clear(),P&&P.abort(),j.fetchers.forEach((e,t)=>q(j.fetchers,t)),j.blockers.forEach((e,t)=>Ue(t))}function _e(e){if(f.add(e),p){let{newErrors:t}=p;p=null,e(j,{deletedFetchers:[],newErrors:t,viewTransitionOpts:void 0,flushSync:!1})}return()=>f.delete(e)}function H(e,t={}){e.matches&&=e.matches.map(e=>{let t=o[e.route.id],n=e.route;return n.element!==t.element||n.errorElement!==t.errorElement||n.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e}),j={...j,...e};let n=[],r=[];j.fetchers.forEach((e,t)=>{e.state===`idle`&&(B.has(t)?n.push(t):r.push(t))}),B.forEach(e=>{!j.fetchers.has(e)&&!z.has(e)&&n.push(e)}),f.size===0&&(p={newErrors:e.errors??null}),[...f].forEach(r=>r(j,{deletedFetchers:n,newErrors:e.errors??null,viewTransitionOpts:t.viewTransitionOpts,flushSync:t.flushSync===!0})),n.forEach(e=>q(j.fetchers,e)),r.forEach(e=>j.fetchers.delete(e))}function ve(t,n,{flushSync:r}={}){let i=j.actionData!=null&&j.navigation.formMethod!=null&&Z(j.navigation.formMethod)&&j.navigation.state===`loading`&&t.state?._isRedirect!==!0,a;a=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:i?j.actionData:null;let o=n.loaderData?Zt(j.loaderData,n.loaderData,n.matches||[],n.errors):j.loaderData,c=j.blockers;c.size>0&&(c=new Map(c),c.forEach((e,t)=>c.set(t,it)));let l=!I&&Ze(t,n.matches||j.matches),u=te===!0||j.navigation.formMethod!=null&&Z(j.navigation.formMethod)&&t.state?._isRedirect!==!0;s.commitHmrRoutes(),I||M===`POP`||(M===`PUSH`?e.history.push(t,t.state):M===`REPLACE`&&e.history.replace(t,t.state));let d;if(M===`POP`){let e=ne.get(j.location.pathname);e&&e.has(t.pathname)?d={currentLocation:j.location,nextLocation:t}:ne.has(t.pathname)&&(d={currentLocation:t,nextLocation:j.location})}else if(F){let e=ne.get(j.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),ne.set(j.location.pathname,e)),d={currentLocation:j.location,nextLocation:t}}H({...n,actionData:a,loaderData:o,historyAction:M,location:t,initialized:!0,renderFallback:!1,navigation:nt,revalidation:`idle`,restoreScrollPosition:l,preventScrollReset:u,blockers:c},{viewTransitionOpts:d,flushSync:r===!0}),M=`POP`,te=!1,F=!1,I=!1,R=!1,N?.resolve(),N=null,me?.resolve(),me=null}async function ye(t,n){if(N?.resolve(),N=null,typeof t==`number`){N||=Tn();let n=N.promise;return e.history.go(t),n}let{path:r,submission:i,error:a}=gt(!1,ht(j.location,j.matches,c,t,n?.fromRouteId,n?.relative),n),o;if(n?.mask){let t=typeof n.mask==`string`?O(n.mask):{...j.location.mask,...n.mask};if(o={pathname:t.pathname??``,search:t.search??``,hash:t.hash??``},_.test(o.pathname))throw Error(`External navigation is not allowed`);o.pathname.startsWith(`\\`)&&(o.pathname=o.pathname.replace(/^\\+/,`/`)),Ye(typeof n.mask==`string`?n.mask:D(n.mask),D(o),e.history.createURL(`/`),`reject`)}let s=j.location,l=E(s,r,n&&n.state,void 0,o);l={...l,...e.history.encodeLocation(l)},Ye(t==null?e.history.createHref(j.location):typeof t==`string`?t:D(t),e.history.createHref(l.mask||l),e.history.createURL(`/`),`reject`);let u=n&&n.replace!=null?n.replace:void 0,d=`PUSH`;u===!0?d=`REPLACE`:u===!1||i!=null&&Z(i.formMethod)&&i.formAction===j.location.pathname+j.location.search&&(d=`REPLACE`);let f=n&&`preventScrollReset`in n?n.preventScrollReset===!0:void 0,p=(n&&n.flushSync)===!0,m=Ge({currentLocation:s,nextLocation:l,historyAction:d});if(m){We(m,{state:`blocked`,location:l,proceed(){We(m,{state:`proceeding`,proceed:void 0,reset:void 0,location:l}),ye(t,n)},reset(){let e=new Map(j.blockers);e.set(m,it),H({blockers:e})}});return}await Se(d,l,{submission:i,pendingError:a,preventScrollReset:f,replace:n&&n.replace,enableViewTransition:n&&n.viewTransition,flushSync:p,callSiteDefaultShouldRevalidate:n&&n.defaultShouldRevalidate})}function xe(){me||=Tn(),Me(),H({revalidation:`loading`});let e=me.promise;return j.navigation.state===`submitting`?e:j.navigation.state===`idle`?(Se(j.historyAction,j.location,{startUninterruptedRevalidation:!0}),e):(Se(M||j.historyAction,j.navigation.location,{overrideNavigation:j.navigation,enableViewTransition:F===!0}),e)}async function Se(t,n,r){P&&P.abort(),P=null,M=t,I=(r&&r.startUninterruptedRevalidation)===!0,Xe(j.location,j.matches),te=(r&&r.preventScrollReset)===!0,F=(r&&r.enableViewTransition)===!0;let i=s.activeRoutes,a=r?.initialHydration&&j.matches&&j.matches.length>0&&!b?j.matches:L(i,n,c,!1,s.branches),o=(r&&r.flushSync)===!0;if(a&&j.initialized&&!R&&rn(j.location,n)&&!(r&&r.submission&&Z(r.submission.formMethod))){ve(n,{matches:a},{flushSync:o});return}let l=Qe(a,i,n.pathname);if(l.active&&l.matches&&(a=l.matches),!a){let{error:e,notFoundMatches:t,route:r}=Ke(n.pathname);ve(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:o});return}let u=r&&r.overrideNavigation?{...r.overrideNavigation,matches:a,historyAction:t}:void 0;P=new AbortController;let d=Gt(e.history,n,P.signal,r&&r.submission),f=e.getContext?await e.getContext():new ee,p;if(r&&r.pendingError)p=[$t(a).route.id,{type:`error`,error:r.pendingError}];else if(r&&r.submission&&Z(r.submission.formMethod)){let i=await Ce(d,n,r.submission,a,t,f,l.active,r&&r.initialHydration===!0,{replace:r.replace,flushSync:o});if(i.shortCircuited)return;if(i.pendingActionResult){let[e,t]=i.pendingActionResult;if(X(t)&&Ne(t.error)&&t.error.status===404){P=null,ve(n,{matches:i.matches,loaderData:{},errors:{[e]:t.error}});return}}a=i.matches||a,p=i.pendingActionResult,u=vn(n,a,t,r.submission),o=!1,l.active=!1,d=Gt(e.history,d.url,d.signal)}let{shortCircuited:m,matches:h,loaderData:g,errors:_,workingFetchers:v}=await we(d,n,a,t,f,l.active,u,r&&r.submission,r&&r.fetcherSubmission,r&&r.replace,r&&r.initialHydration===!0,o,p,r&&r.callSiteDefaultShouldRevalidate);m||(P=null,ve(n,{matches:h||a,...Qt(p),loaderData:g,errors:_,...v?{fetchers:v}:{}}))}async function Ce(t,n,i,l,u,d,f,p,m={}){if(Me(),H({navigation:yn(n,l,u,i)},{flushSync:m.flushSync===!0}),f){let e=await $e(l,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=en(s.activeRoutes);return{matches:t,pendingActionResult:[n.id,{type:`error`,error:e.error}]}}let t=$t(e.partialMatches).route.id;return{matches:e.partialMatches,pendingActionResult:[t,{type:`error`,error:e.error}]}}if(e.matches)l=e.matches;else{let{notFoundMatches:e,error:t,route:r}=Ke(n.pathname);return{matches:e,pendingActionResult:[r.id,{type:`error`,error:t}]}}}let h,g=gn(l,n);if(!g.route.action&&!g.route.lazy)h={type:`error`,error:Y(405,{method:t.method,pathname:n.pathname,routeId:g.route.id})};else{let e=await Ae(t,n,It(a,o,t,n,l,g,p?[]:r,d),d,null);if(h=e[g.route.id],!h){for(let t of l)if(e[t.route.id]){h=e[t.route.id];break}}if(t.signal.aborted)return{shortCircuited:!0}}if(ln(h)){let n;return n=m&&m.replace!=null?m.replace:Wt(h.response.headers.get(`Location`),new URL(t.url),c,e.history)===j.location.pathname+j.location.search,await ke(t,h,!0,{submission:i,replace:n}),{shortCircuited:!0}}if(X(h)){let e=$t(l,g.route.id);return(m&&m.replace)!==!0&&(M=`PUSH`),{matches:l,pendingActionResult:[e.route.id,h,g.route.id]}}return{matches:l,pendingActionResult:[g.route.id,h]}}async function we(t,n,i,l,u,d,f,p,m,h,g,_,v,y){let b=f||vn(n,i,l,p),x=p||m||_n(b),S=!I&&!g;if(d){if(S){let e=Te(v);H({navigation:b,...e===void 0?{}:{actionData:e}},{flushSync:_})}let e=await $e(i,n.pathname,t.signal);if(e.type===`aborted`)return{shortCircuited:!0};if(e.type===`error`){if(e.partialMatches.length===0){let{matches:t,route:n}=en(s.activeRoutes);return{matches:t,loaderData:{},errors:{[n.id]:e.error}}}let t=$t(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(e.matches)i=e.matches;else{let{error:e,notFoundMatches:t,route:r}=Ke(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let C=s.activeRoutes,{dsMatches:w,revalidatingFetchers:T}=_t(t,u,a,o,e.history,j,i,x,n,g?[]:r,g===!0,R,oe,B,de,ue,C,c,e.patchRoutesOnNavigation!=null,s.branches,v,y);if(ce=++se,!e.dataStrategy&&!w.some(e=>e.shouldLoad)&&!w.some(e=>e.route.middleware&&e.route.middleware.length>0)&&T.length===0){let e=new Map(j.fetchers),t=Be(e);return ve(n,{matches:i,loaderData:{},errors:v&&X(v[1])?{[v[0]]:v[1].error}:null,...Qt(v),...t?{fetchers:e}:{}},{flushSync:_}),{shortCircuited:!0}}if(S){let e={};if(!d){e.navigation=b;let t=Te(v);t!==void 0&&(e.actionData=t)}T.length>0&&(e.fetchers=Ee(T)),H(e,{flushSync:_})}T.forEach(e=>{J(e.key),e.controller&&z.set(e.key,e.controller)});let E=()=>T.forEach(e=>J(e.key));P&&P.signal.addEventListener(`abort`,E);let{loaderResults:D,fetcherResults:O}=await je(w,T,t,n,u);if(t.signal.aborted)return{shortCircuited:!0};P&&P.signal.removeEventListener(`abort`,E),T.forEach(e=>z.delete(e.key));let k=tn(D);if(k)return await ke(t,k.result,!0,{replace:h}),{shortCircuited:!0};if(k=tn(O),k)return ue.add(k.key),await ke(t,k.result,!0,{replace:h}),{shortCircuited:!0};let A=new Map(j.fetchers),{loaderData:M,errors:ee}=Xt(j,i,D,v,T,O,A);g&&j.errors&&(ee={...j.errors,...ee});let N=Be(A),te=Ve(ce,A),F=N||te||T.length>0;return{matches:i,loaderData:M,errors:ee,...F?{workingFetchers:A}:{}}}function Te(e){if(e&&!X(e[1]))return{[e[0]]:e[1].data};if(j.actionData)return Object.keys(j.actionData).length===0?null:j.actionData}function Ee(e){let t=new Map(j.fetchers);return e.forEach(e=>{let n=t.get(e.key),r=bn(void 0,n?n.data:void 0);t.set(e.key,r)}),t}async function De(t,n,r,i){J(t);let a=(i&&i.flushSync)===!0,o=s.activeRoutes,l=ht(j.location,j.matches,c,r,n,i?.relative),u=L(o,l,c,!1,s.branches),d=Qe(u,o,l);if(d.active&&d.matches&&(u=d.matches),!u){K(t,n,Y(404,{pathname:l}),{flushSync:a});return}let{path:f,submission:p,error:m}=gt(!0,l,i);if(m){K(t,n,m,{flushSync:a});return}let h=e.getContext?await e.getContext():new ee,g=(i&&i.preventScrollReset)===!0;if(p&&Z(p.formMethod)){await W(t,n,f,u,h,d.active,a,g,p,i&&i.defaultShouldRevalidate);return}de.set(t,{routeId:n,path:f}),await Oe(t,n,f,u,h,d.active,a,g,p)}async function W(t,n,i,l,u,d,f,p,m,h){Me(),de.delete(t),G(t,xn(m,j.fetchers.get(t)),{flushSync:f});let g=new AbortController,_=Gt(e.history,i,g.signal,m);if(d){let e=await $e(l,new URL(_.url).pathname,_.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){K(t,n,e.error,{flushSync:f});return}if(e.matches)l=e.matches;else{K(t,n,Y(404,{pathname:i}),{flushSync:f});return}}let v=gn(l,i);if(!v.route.action&&!v.route.lazy){K(t,n,Y(405,{method:m.formMethod,pathname:i,routeId:n}),{flushSync:f});return}z.set(t,g);let y=se,b=It(a,o,_,i,l,v,r,u),x=await Ae(_,i,b,u,t),C=x[v.route.id];if(!C){for(let e of b)if(x[e.route.id]){C=x[e.route.id];break}}if(_.signal.aborted){z.get(t)===g&&z.delete(t);return}if(B.has(t)){if(ln(C)||X(C)){G(t,Sn(void 0));return}}else{if(ln(C)){if(z.delete(t),ce>y){G(t,Sn(void 0));return}return ue.add(t),G(t,bn(m)),ke(_,C,!1,{fetcherSubmission:m,preventScrollReset:p})}if(X(C)){K(t,n,C.error);return}}let w=j.navigation.location||j.location,T=Gt(e.history,w,g.signal),E=s.activeRoutes,D=j.navigation.state===`idle`?j.matches:L(E,j.navigation.location,c,!1,s.branches);S(D,`Didn't find any matches after fetcher action`);let O=++se;le.set(t,O);let{dsMatches:k,revalidatingFetchers:A}=_t(T,u,a,o,e.history,j,D,m,w,r,!1,R,oe,B,de,ue,E,c,e.patchRoutesOnNavigation!=null,s.branches,[v.route.id,C],h),ee=bn(m,C.data),N=new Map(j.fetchers);N.set(t,ee),A.filter(e=>e.key!==t).forEach(e=>{let t=e.key,n=N.get(t),r=bn(void 0,n?n.data:void 0);N.set(t,r),J(t),e.controller&&z.set(t,e.controller)}),H({fetchers:N});let te=()=>A.forEach(e=>J(e.key));g.signal.addEventListener(`abort`,te);let{loaderResults:F,fetcherResults:ne}=await je(k,A,T,w,u);if(g.signal.aborted)return;g.signal.removeEventListener(`abort`,te),le.delete(t),z.delete(t),A.forEach(e=>z.delete(e.key));let re=j.fetchers.has(t),ie=e=>{if(!re)return e;let n=new Map(e.fetchers);return n.set(t,Sn(C.data)),{...e,fetchers:n}},I=tn(F);if(I)return j=ie(j),ke(T,I.result,!1,{preventScrollReset:p});if(I=tn(ne),I)return ue.add(I.key),j=ie(j),ke(T,I.result,!1,{preventScrollReset:p});let ae=new Map(j.fetchers);re&&ae.set(t,Sn(C.data));let{loaderData:fe,errors:V}=Xt(j,D,F,void 0,A,ne,ae);Ve(O,ae),j.navigation.state===`loading`&&O>ce?(S(M,`Expected pending action`),P&&P.abort(),ve(j.navigation.location,{matches:D,loaderData:fe,errors:V,fetchers:ae})):(H({errors:V,loaderData:Zt(j.loaderData,fe,D,V),fetchers:ae}),R=!1)}async function Oe(t,n,i,s,c,l,u,d,f){let p=j.fetchers.get(t);G(t,bn(f,p?p.data:void 0),{flushSync:u});let m=new AbortController,h=Gt(e.history,i,m.signal);if(l){let e=await $e(s,new URL(h.url).pathname,h.signal,t);if(e.type===`aborted`)return;if(e.type===`error`){K(t,n,e.error,{flushSync:u});return}if(e.matches)s=e.matches;else{K(t,n,Y(404,{pathname:i}),{flushSync:u});return}}let g=gn(s,i);z.set(t,m);let _=se,v=await Ae(h,i,It(a,o,h,i,s,g,r,c),c,t),y=v[g.route.id];if(!y){for(let e of s)if(v[e.route.id]){y=v[e.route.id];break}}if(z.get(t)===m&&z.delete(t),!h.signal.aborted){if(B.has(t)){G(t,Sn(void 0));return}if(ln(y)){if(ce>_){G(t,Sn(void 0));return}ue.add(t),await ke(h,y,!1,{preventScrollReset:d});return}if(X(y)){K(t,n,y.error);return}G(t,Sn(y.data))}}async function ke(r,i,a,{submission:o,fetcherSubmission:s,preventScrollReset:l,replace:u}={}){a||(N?.resolve(),N=null),i.response.headers.has(`X-Remix-Revalidate`)&&(R=!0);let d=i.response.headers.get(`Location`);S(d,`Expected a Location header on the redirect Response`);let f=d,p=new URL(r.url);d=Wt(d,p,c,e.history),Ye(f,d,p,`allow-explicit`);let m=E(j.location,d,{_isRedirect:!0});if(n){let e=!1;if(i.response.headers.has(`X-Remix-Reload-Document`))e=!0;else if(be(d)){let n=A(t,d,!0);e=n.origin!==t.location.origin||U(n.pathname,c)==null}if(e){u?t.location.replace(d):t.location.assign(d);return}}P=null;let h=u===!0||i.response.headers.has(`X-Remix-Replace`)?`REPLACE`:`PUSH`,{formMethod:g,formAction:_,formEncType:v}=j.navigation;!o&&!s&&g&&_&&v&&(o=_n(j.navigation));let y=o||s;tt.has(i.response.status)&&y&&Z(y.formMethod)?await Se(h,m,{submission:{...y,formAction:d},preventScrollReset:l||te,enableViewTransition:a?F:void 0}):await Se(h,m,{overrideNavigation:vn(m,[],h,o),fetcherSubmission:s,preventScrollReset:l||te,enableViewTransition:a?F:void 0})}async function Ae(e,t,n,r,i){let a,o={};try{a=await Lt(l,e,t,n,i,r,!1)}catch(e){return n.filter(e=>e.shouldLoad).forEach(t=>{o[t.route.id]={type:`error`,error:e}}),o}if(e.signal.aborted)return o;if(!Z(e.method))for(let e of n){if(a[e.route.id]?.type===`error`)break;!a.hasOwnProperty(e.route.id)&&!j.loaderData.hasOwnProperty(e.route.id)&&(!j.errors||!j.errors.hasOwnProperty(e.route.id))&&e.shouldCallHandler()&&(a[e.route.id]={type:`error`,result:Error(`No result returned from dataStrategy for route ${e.route.id}`)})}for(let[t,r]of Object.entries(a))if(cn(r)){let i=r.result;o[t]={type:`redirect`,response:Vt(i,e,t,n,c)}}else o[t]=await Bt(r);return o}async function je(e,t,n,r,i){let a=Ae(n,r,e,i,null),o=Promise.all(t.map(async e=>{if(e.matches&&e.match&&e.request&&e.controller){let t=(await Ae(e.request,e.path,e.matches,i,e.key))[e.match.route.id];return{[e.key]:t}}return Promise.resolve({[e.key]:{type:`error`,error:Y(404,{pathname:e.path})}})}));return{loaderResults:await a,fetcherResults:(await o).reduce((e,t)=>Object.assign(e,t),{})}}function Me(){R=!0,de.forEach((e,t)=>{z.has(t)&&oe.add(t),J(t)})}function G(e,t,n={}){let r=new Map(j.fetchers);r.set(e,t),H({fetchers:r},{flushSync:(n&&n.flushSync)===!0})}function K(e,t,n,r={}){let i=$t(j.matches,t),a=new Map(j.fetchers);q(a,e),H({errors:{[i.route.id]:n},fetchers:a},{flushSync:(r&&r.flushSync)===!0})}function Pe(e){return fe.set(e,(fe.get(e)||0)+1),B.has(e)&&B.delete(e),j.fetchers.get(e)||rt}function Fe(e,t){J(e,t?.reason),G(e,Sn(null))}function q(e,t){let n=j.fetchers.get(t);z.has(t)&&!(n&&n.state===`loading`&&le.has(t))&&J(t),de.delete(t),le.delete(t),ue.delete(t),B.delete(t),oe.delete(t),e.delete(t)}function Re(e){let t=(fe.get(e)||0)-1;t<=0?(fe.delete(e),B.add(e)):fe.set(e,t),H({fetchers:new Map(j.fetchers)})}function J(e,t){let n=z.get(e);n&&(n.abort(t),z.delete(e))}function ze(e,t){for(let n of e){let e=t.get(n);S(e,`Expected fetcher: ${n}`);let r=Sn(e.data);t.set(n,r)}}function Be(e){let t=[],n=!1;for(let r of ue){let i=e.get(r);S(i,`Expected fetcher: ${r}`),i.state===`loading`&&(ue.delete(r),t.push(r),n=!0)}return ze(t,e),n}function Ve(e,t){let n=[];for(let[r,i]of le)if(i<e){let e=t.get(r);S(e,`Expected fetcher: ${r}`),e.state===`loading`&&(J(r),le.delete(r),n.push(r))}return ze(n,t),n.length>0}function He(e,t){let n=j.blockers.get(e)||it;return V.get(e)!==t&&V.set(e,t),n}function Ue(e){j.blockers.delete(e),V.delete(e)}function We(e,t){let n=j.blockers.get(e)||it;S(n.state===`unblocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`blocked`||n.state===`blocked`&&t.state===`proceeding`||n.state===`blocked`&&t.state===`unblocked`||n.state===`proceeding`&&t.state===`unblocked`,`Invalid blocker state transition: ${n.state} -> ${t.state}`);let r=new Map(j.blockers);r.set(e,t),H({blockers:r})}function Ge({currentLocation:e,nextLocation:t,historyAction:n}){if(V.size===0)return;V.size>1&&C(!1,`A router only supports one blocker at a time`);let r=Array.from(V.entries()),[i,a]=r[r.length-1],o=j.blockers.get(i);if(!(o&&o.state===`proceeding`)&&a({currentLocation:e,nextLocation:t,historyAction:n}))return i}function Ke(e){let t=Y(404,{pathname:e}),n=s.activeRoutes,{matches:r,route:i}=en(n);return{notFoundMatches:r,route:i,error:t}}function qe(e,t,n){if(m=e,g=t,h=n||null,!v&&j.navigation===nt){v=!0;let e=Ze(j.location,j.matches);e!=null&&H({restoreScrollPosition:e})}return()=>{m=null,g=null,h=null}}function Je(e,t){return h&&h(e,t.map(e=>ae(e,j.loaderData)))||e.key}function Xe(e,t){if(m&&g){let n=Je(e,t);m[n]=g()}}function Ze(e,t){if(m){let n=Je(e,t),r=m[n];if(typeof r==`number`)return r}return null}function Qe(t,n,r){if(e.patchRoutesOnNavigation){let e=s.branches;if(!t)return{active:!0,matches:L(n,r,c,!0,e)||[]};if(Object.keys(t[0].params).length>0)return{active:!0,matches:L(n,r,c,!0,e)}}return{active:!1,matches:null}}async function $e(t,n,r,i){if(!e.patchRoutesOnNavigation)return{type:`success`,matches:t};let l=t;for(;;){let t=o;try{await e.patchRoutesOnNavigation({signal:r,path:n,matches:l,fetcherKey:i,patch:(e,n)=>{r.aborted||Ct(e,n,s,t,a,!1)}})}catch(e){return{type:`error`,error:e,partialMatches:l}}if(r.aborted)return{type:`aborted`};let u=s.branches,d=L(s.activeRoutes,n,c,!1,u),f=null;if(d&&(Object.keys(d[0].params).length===0||(f=L(s.activeRoutes,n,c,!0,u),!(f&&l.length<f.length&&et(l,f.slice(0,l.length))))))return{type:`success`,matches:d};if(f||=L(s.activeRoutes,n,c,!0,u),!f||et(l,f))return{type:`success`,matches:null};l=f}}function et(e,t){return e.length===t.length&&e.every((e,n)=>e.route.id===t[n].route.id)}function ot(e){o={},s.setHmrRoutes(re(e,a,void 0,o))}function st(e,t,n=!1){Ct(e,t,s,o,a,n),s.hasHMRRoutes||H({})}return k={get basename(){return c},get future(){return u},get state(){return j},get routes(){return s.stableRoutes},get branches(){return s.branches},get manifest(){return o},get window(){return t},initialize:he,subscribe:_e,enableScrollRestoration:qe,navigate:ye,fetch:De,revalidate:xe,createHref:t=>e.history.createHref(t),createURL:t=>e.history.createURL(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:Pe,resetFetcher:Fe,deleteFetcher:Re,dispose:ge,getBlocker:He,deleteBlocker:Ue,patchRoutes:st,_internalFetchControllers:z,_internalSetRoutes:ot,_internalSetStateDoNotUseOrYouWillBreakYourApp(e){H(e)}},e.instrumentations&&(k=Le(k,e.instrumentations.map(e=>e.router).filter(Boolean))),k}function mt(e){return e!=null&&(`formData`in e&&e.formData!=null||`body`in e&&e.body!==void 0)}function ht(e,t,n,r,i,a){let o,s;if(i){o=[];for(let e of t)if(o.push(e),e.route.id===i){s=e;break}}else o=t,s=t[t.length-1];let c=Ee(r||`.`,Te(o),U(e.pathname,n)||e.pathname,a===`path`);if(r??(c.search=e.search,c.hash=e.hash),(r==null||r===``||r===`.`)&&s){let e=hn(c.search);if(s.route.index&&!e)c.search=c.search?c.search.replace(/^\?/,`?index&`):`?index`;else if(!s.route.index&&e){let e=new URLSearchParams(c.search),t=e.getAll(`index`);e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();c.search=n?`?${n}`:``}}return n!==`/`&&(c.pathname=ye({basename:n,pathname:c.pathname})),D(c)}function gt(e,t,n){if(!n||!mt(n))return{path:t};if(n.formMethod&&!mn(n.formMethod))return{path:t,error:Y(405,{method:n.formMethod})};let r=()=>({path:t,error:Y(400,{type:`invalid-body`})}),i=(n.formMethod||`get`).toUpperCase(),a=nn(t);if(n.body!==void 0){if(n.formEncType===`text/plain`){if(!Z(i))return r();let e=typeof n.body==`string`?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((e,[t,n])=>`${e}${t}=${n}
2
+ `,``):String(n.body);return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:void 0,text:e}}}if(n.formEncType===`application/json`){if(!Z(i))return r();try{let e=typeof n.body==`string`?JSON.parse(n.body):n.body;return{path:t,submission:{formMethod:i,formAction:a,formEncType:n.formEncType,formData:void 0,json:e,text:void 0}}}catch{return r()}}}S(typeof FormData==`function`,`FormData is not available in this environment`);let o,s;if(n.formData)o=qt(n.formData),s=n.formData;else if(n.body instanceof FormData)o=qt(n.body),s=n.body;else if(n.body instanceof URLSearchParams)o=n.body,s=Jt(o);else if(n.body==null)o=new URLSearchParams,s=new FormData;else try{o=new URLSearchParams(n.body),s=Jt(o)}catch{return r()}let c={formMethod:i,formAction:a,formEncType:n&&n.formEncType||`application/x-www-form-urlencoded`,formData:s,json:void 0,text:void 0};if(Z(c.formMethod))return{path:t,submission:c};let l=O(t);return e&&l.search&&hn(l.search)&&o.append(`index`,``),l.search=`?${o}`,{path:D(l),submission:c}}function _t(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x){let S=b?X(b[1])?b[1].error:b[1].data:void 0,C=i.createURL(a.location),w=i.createURL(c),T;if(u&&a.errors){let e=Object.keys(a.errors)[0];T=o.findIndex(t=>t.route.id===e)}else if(b&&X(b[1])){let e=b[0];T=o.findIndex(t=>t.route.id===e)-1}let E=b?b[1].statusCode:void 0,D=E&&E>=400,O={currentUrl:C,currentParams:a.matches[0]?.params||{},nextUrl:w,nextParams:o[0].params,...s,actionResult:S,actionStatus:E},k=K(o),A=o.map((i,o)=>{let{route:s}=i,f=null;if(T!=null&&o>T)f=!1;else if(s.lazy)f=!0;else if(!vt(s))f=!1;else if(u){let{shouldLoad:e}=yt(s,a.loaderData,a.errors);f=e}else bt(a.loaderData,a.matches[o],i)&&(f=!0);if(f!==null)return Ft(n,r,e,c,k,i,l,t,f);let p=!1;typeof x==`boolean`?p=x:D?p=!1:d||C.pathname+C.search===w.pathname+w.search?p=!0:C.search===w.search?xt(a.matches[o],i)&&(p=!0):p=!0;let m={...O,defaultShouldRevalidate:p},h=St(i,m);return Ft(n,r,e,c,k,i,l,t,h,m,x)}),j=[];return m.forEach((e,s)=>{if(u||!o.some(t=>t.route.id===e.routeId)||p.has(s))return;let c=a.fetchers.get(s),m=c&&c.state!==`idle`&&c.data===void 0,b=L(g,e.path,_??`/`,!1,y);if(!b){if(v&&m)return;j.push({key:s,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null});return}if(h.has(s))return;let S=gn(b,e.path),C=new AbortController,w=Gt(i,e.path,C.signal),T=null;if(f.has(s))f.delete(s),T=It(n,r,w,e.path,b,S,l,t);else if(m)d&&(T=It(n,r,w,e.path,b,S,l,t));else{let i;i=typeof x==`boolean`?x:!D&&d;let a={...O,defaultShouldRevalidate:i};St(S,a)&&(T=It(n,r,w,e.path,b,S,l,t,a))}T&&j.push({key:s,routeId:e.routeId,path:e.path,matches:T,match:S,request:w,controller:C})}),{dsMatches:A,revalidatingFetchers:j}}function vt(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function yt(e,t,n){if(e.lazy)return{shouldLoad:!0,renderFallback:!0};if(!vt(e))return{shouldLoad:!1,renderFallback:!1};let r=t!=null&&e.id in t,i=n!=null&&n[e.id]!==void 0;if(!r&&i)return{shouldLoad:!1,renderFallback:!1};if(typeof e.loader==`function`&&e.loader.hydrate===!0)return{shouldLoad:!0,renderFallback:!r};let a=!r&&!i;return{shouldLoad:a,renderFallback:a}}function bt(e,t,n){let r=!t||n.route.id!==t.route.id,i=!e.hasOwnProperty(n.route.id);return r||i}function xt(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith(`*`)&&e.params[`*`]!==t.params[`*`]}function St(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n==`boolean`)return n}return t.defaultShouldRevalidate}function Ct(e,t,n,r,i,a){let o;if(e){let t=r[e];S(t,`No route found to patch children into: routeId = ${e}`),t.children||=[],o=t.children}else o=n.activeRoutes;let s=[],c=[];if(t.forEach(e=>{let t=o.find(t=>wt(e,t));t?c.push({existingRoute:t,newRoute:e}):s.push(e)}),s.length>0){let t=re(s,i,[e||`_`,`patch`,String(o?.length||`0`)],r);o.push(...t)}if(a&&c.length>0)for(let e=0;e<c.length;e++){let{existingRoute:t,newRoute:n}=c[e],r=t,[a]=re([n],i,[],{},!0);Object.assign(r,{element:a.element?a.element:r.element,errorElement:a.errorElement?a.errorElement:r.errorElement,hydrateFallbackElement:a.hydrateFallbackElement?a.hydrateFallbackElement:r.hydrateFallbackElement})}n.hasHMRRoutes||n.setRoutes([...n.activeRoutes])}function wt(e,t){return`id`in e&&`id`in t&&e.id===t.id?!0:e.index!==t.index||e.path!==t.path||e.caseSensitive!==t.caseSensitive?!1:(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children?.every((e,n)=>t.children?.some(t=>wt(e,t)))??!1}var Tt=new WeakMap,Et=({key:e,route:t,manifest:n,mapRouteProperties:r})=>{let i=n[t.id];if(S(i,`No route found in manifest`),!i.lazy||typeof i.lazy!=`object`)return;let a=i.lazy[e];if(!a)return;let o=Tt.get(i);o||(o={},Tt.set(i,o));let s=o[e];if(s)return s;let c=(async()=>{let t=te(e),n=i[e]!==void 0&&e!==`hasErrorBoundary`;if(t)C(!t,`Route property `+e+` is not a supported lazy route property. This property will be ignored.`),o[e]=Promise.resolve();else if(n)C(!1,`Route "${i.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await a();t!=null&&(Object.assign(i,{[e]:t}),Object.assign(i,r(i)))}typeof i.lazy==`object`&&(i.lazy[e]=void 0,Object.values(i.lazy).every(e=>e===void 0)&&(i.lazy=void 0))})();return o[e]=c,c},Dt=new WeakMap;function Ot(e,t,n,r,i){let a=n[e.id];if(S(a,`No route found in manifest`),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy==`function`){let t=Dt.get(a);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let n=(async()=>{S(typeof e.lazy==`function`,`No lazy route function found`);let t=await e.lazy(),n={};for(let e in t){let r=t[e];if(r===void 0)continue;let i=F(e),o=a[e]!==void 0&&e!==`hasErrorBoundary`;i?C(!i,`Route property `+e+` is not a supported property to be returned from a lazy route function. This property will be ignored.`):o?C(!o,`Route "${a.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):n[e]=r}Object.assign(a,n),Object.assign(a,{...r(a),lazy:void 0})})();return Dt.set(a,n),n.catch(()=>{}),{lazyRoutePromise:n,lazyHandlerPromise:n}}let o=Object.keys(e.lazy),s=[],c;for(let a of o){if(i&&i.includes(a))continue;let o=Et({key:a,route:e,manifest:n,mapRouteProperties:r});o&&(s.push(o),a===t&&(c=o))}let l=s.length>0?Promise.all(s).then(()=>{}):void 0;return l?.catch(()=>{}),c?.catch(()=>{}),{lazyRoutePromise:l,lazyHandlerPromise:c}}async function kt(e){let t=e.matches.filter(e=>e.shouldLoad),n={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,r)=>{n[t[r].route.id]=e}),n}async function At(e){return e.matches.some(e=>e.route.middleware)?jt(e,()=>kt(e)):kt(e)}function jt(e,t){return Mt(e,t,e=>{if(pn(e))throw e;return e},on,n);function n(t,n,r){if(r)return Promise.resolve(Object.assign(r.value,{[n]:{type:`error`,result:t}}));{let{matches:r}=e,i=$t(r,r[Math.min(Math.max(r.findIndex(e=>e.route.id===n),0),Math.max(r.findIndex(e=>e.shouldCallHandler()),0))].route.id).route.id;return Promise.resolve({[i]:{type:`error`,result:t}})}}}async function Mt(e,t,n,r,i){let{matches:a,...o}=e;return await Nt(o,a.flatMap(e=>e.route.middleware?e.route.middleware.map(t=>[e.route.id,t]):[]),t,n,r,i)}async function Nt(e,t,n,r,i,a,o=0){let{request:s}=e;if(s.signal.aborted)throw s.signal.reason??Error(`Request aborted: ${s.method} ${s.url}`);let c=t[o];if(!c)return await n();let[l,u]=c,d,f=async()=>{if(d)throw Error("You may only call `next()` once per middleware");try{return d={value:await Nt(e,t,n,r,i,a,o+1)},d.value}catch(e){return d={value:await a(e,l,d)},d.value}};try{let t=await u(e,f),n=t==null?void 0:r(t);return i(n)?n:d?n??d.value:(d={value:await f()},d.value)}catch(e){return await a(e,l,d)}}function Pt(e,t,n,r,i){let a=Et({key:`middleware`,route:r.route,manifest:t,mapRouteProperties:e}),o=Ot(r.route,Z(n.method)?`action`:`loader`,t,e,i);return{middleware:a,route:o.lazyRoutePromise,handler:o.lazyHandlerPromise}}function Ft(e,t,n,r,i,a,o,s,c,l=null,u){let d=!1,f=Pt(e,t,n,a,o);return{...a,_lazyPromises:f,shouldLoad:c,shouldRevalidateArgs:l,shouldCallHandler(e){return d=!0,l?typeof u==`boolean`?St(a,{...l,defaultShouldRevalidate:u}):typeof e==`boolean`?St(a,{...l,defaultShouldRevalidate:e}):St(a,l):c},resolve(e){let{lazy:t,loader:o,middleware:l}=a.route,u=d||c||e&&!Z(n.method)&&(t||o),p=l&&l.length>0&&!o&&!t;return u&&(Z(n.method)||!p)?Rt({request:n,path:r,pattern:i,match:a,lazyHandlerPromise:f?.handler,lazyRoutePromise:f?.route,handlerOverride:e,scopedContext:s}):Promise.resolve({type:`data`,result:void 0})}}}function It(e,t,n,r,i,a,o,s,c=null){return i.map(l=>l.route.id===a.route.id?Ft(e,t,n,r,K(i),l,o,s,!0,c):{...l,shouldLoad:!1,shouldRevalidateArgs:c,shouldCallHandler:()=>!1,_lazyPromises:Pt(e,t,n,l,o),resolve:()=>Promise.resolve({type:`data`,result:void 0})})}async function Lt(e,t,n,r,i,a,o){r.some(e=>e._lazyPromises?.middleware)&&await Promise.all(r.map(e=>e._lazyPromises?.middleware));let s={request:t,url:Kt(t,n),pattern:K(r),params:r[0].params,context:a,matches:r},c=o?()=>{throw Error("You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>{let t=s;return jt(t,()=>e({...t,fetcherKey:i,runClientMiddleware:()=>{throw Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))},l=await e({...s,fetcherKey:i,runClientMiddleware:c});try{await Promise.all(r.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch{}return l}async function Rt({request:e,path:t,pattern:n,match:r,lazyHandlerPromise:i,lazyRoutePromise:a,handlerOverride:o,scopedContext:s}){let c,l,u=Z(e.method),d=u?`action`:`loader`,f=i=>{let a,c=new Promise((e,t)=>a=t);l=()=>a(),e.signal.addEventListener(`abort`,l);let u=a=>typeof i==`function`?i({request:e,url:Kt(e,t),pattern:n,params:r.params,context:s},...a===void 0?[]:[a]):Promise.reject(Error(`You cannot call the handler for a route which defines a boolean "${d}" [routeId: ${r.route.id}]`)),f=(async()=>{try{return{type:`data`,result:await(o?o(e=>u(e)):u())}}catch(e){return{type:`error`,result:e}}})();return Promise.race([f,c])};try{let t=u?r.route.action:r.route.loader;if(i||a){if(t){let e,[n]=await Promise.all([f(t).catch(t=>{e=t}),i,a]);if(e!==void 0)throw e;c=n}else{await i;let t=u?r.route.action:r.route.loader;if(t)[c]=await Promise.all([f(t),a]);else if(d===`action`){let t=new URL(e.url),n=t.pathname+t.search;throw Y(405,{method:e.method,pathname:n,routeId:r.route.id})}else return{type:`data`,result:void 0}}}else if(t)c=await f(t);else{let t=new URL(e.url);throw Y(404,{pathname:t.pathname+t.search})}}catch(e){return{type:`error`,result:e}}finally{l&&e.signal.removeEventListener(`abort`,l)}return c}async function zt(e){let t=e.headers.get(`Content-Type`);return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function Bt(e){let{result:t,type:n}=e;if(dn(t)){let e;try{e=await zt(t)}catch(e){return{type:`error`,error:e}}return n===`error`?{type:`error`,error:new G(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:`data`,data:e,statusCode:t.status,headers:t.headers}}return n===`error`?un(t)?t.data instanceof Error?{type:`error`,error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:an(t),statusCode:Ne(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`error`,error:t,statusCode:Ne(t)?t.status:void 0}:un(t)?{type:`data`,data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:`data`,data:t}}function Vt(e,t,n,r,i){let a=e.headers.get(`Location`);if(S(a,`Redirects returned/thrown from loaders/actions must have a Location header`),!be(a)){let o=r.slice(0,r.findIndex(e=>e.route.id===n)+1);a=ht(new URL(t.url),o,i,a),e.headers.set(`Location`,a)}return e}var Ht=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function Ut(e){try{return Ht.includes(new URL(e).protocol)}catch{return!1}}function Wt(e,t,n,r){if(be(e)){let r=e,i=_.test(r)?new URL(v(r,t.protocol)):new URL(r);if(Ut(i.toString()))throw Error(`Invalid redirect location`);let a=U(i.pathname,n)!=null;if(i.origin===t.origin&&a)return De(i.pathname)+i.search+i.hash}try{if(Ut(r.createURL(e).toString()))throw Error(`Invalid redirect location`)}catch{}return e}function Gt(e,t,n,r){let i=e.createURL(nn(t)).toString(),a={signal:n};if(r&&Z(r.formMethod)){let{formMethod:e,formEncType:t}=r;a.method=e.toUpperCase(),t===`application/json`?(a.headers=new Headers({"Content-Type":t}),a.body=JSON.stringify(r.json)):a.body=t===`text/plain`?r.text:t===`application/x-www-form-urlencoded`&&r.formData?qt(r.formData):r.formData}return new Request(i,a)}function Kt(e,t){let n=new URL(e.url),r=typeof t==`string`?O(t):t;if(n.pathname=r.pathname||`/`,r.search){let e=new URLSearchParams(r.search),t=e.getAll(`index`);e.delete(`index`);for(let n of t.filter(Boolean))e.append(`index`,n);n.search=e.size?`?${e.toString()}`:``}else n.search=``;return n.hash=r.hash||``,n}function qt(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r==`string`?r:r.name);return t}function Jt(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function Yt(e,t,n,r=!1,i=!1){let a={},o=null,s,c=!1,l={},u=n&&X(n[1])?n[1].error:void 0;return e.forEach(n=>{if(!(n.route.id in t))return;let d=n.route.id,f=t[d];if(S(!ln(f),`Cannot handle redirect results in processLoaderData`),X(f)){let t=f.error;if(u!==void 0&&(t=u,u=void 0),o||={},i)o[d]=t;else{let n=$t(e,d);o[n.route.id]??(o[n.route.id]=t)}r||(a[d]=st),c||(c=!0,s=Ne(f.error)?f.error.status:500),f.headers&&(l[d]=f.headers)}else a[d]=f.data,f.statusCode&&f.statusCode!==200&&!c&&(s=f.statusCode),f.headers&&(l[d]=f.headers)}),u!==void 0&&n&&(o={[n[0]]:u},n[2]&&(a[n[2]]=void 0)),{loaderData:a,errors:o,statusCode:s||200,loaderHeaders:l}}function Xt(e,t,n,r,i,a,o){let{loaderData:s,errors:c}=Yt(t,n,r);return i.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:n,match:r,controller:i}=t;if(i&&i.signal.aborted)return;let s=a[n];if(S(s,`Did not find corresponding fetcher result`),X(s)){let t=$t(e.matches,r?.route.id);c&&c[t.route.id]||(c={...c,[t.route.id]:s.error}),o.delete(n)}else if(ln(s))S(!1,`Unhandled fetcher revalidation redirect`);else{let e=Sn(s.data);o.set(n,e)}}),{loaderData:s,errors:c}}function Zt(e,t,n,r){let i=Object.entries(t).filter(([,e])=>e!==st).reduce((e,[t,n])=>(e[t]=n,e),{});for(let a of n){let n=a.route.id;if(!t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&a.route.loader&&(i[n]=e[n]),r&&r.hasOwnProperty(n))break}return i}function Qt(e){return e?X(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function $t(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>e.route.hasErrorBoundary===!0)||e[0]}function en(e){let t=e.length===1?e[0]:e.find(e=>e.index||!e.path||e.path===`/`)||{id:`__shim-error-route__`};return{matches:[{params:{},pathname:``,pathnameBase:``,route:t}],route:t}}function Y(e,{pathname:t,routeId:n,method:r,type:i,message:a}={}){let o=`Unknown Server Error`,s=`Unknown @remix-run/router error`;return e===400?(o=`Bad Request`,r&&t&&n?s=`You made a ${r} request to "${t}" but did not provide a \`loader\` for route "${n}", so there is no way to handle the request.`:i===`invalid-body`&&(s=`Unable to encode submission body`)):e===403?(o=`Forbidden`,s=`Route "${n}" does not match URL "${t}"`):e===404?(o=`Not Found`,s=`No route matches URL "${t}"`):e===405&&(o=`Method Not Allowed`,r&&t&&n?s=`You made a ${r.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${n}", so there is no way to handle the request.`:r&&(s=`Invalid request method "${r.toUpperCase()}"`)),new G(e||500,o,Error(s),!0)}function tn(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[n,r]=t[e];if(ln(r))return{key:n,result:r}}}function nn(e){return D({...typeof e==`string`?O(e):e,hash:``})}function rn(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===``?t.hash!==``:e.hash===t.hash||t.hash!==``}function an(e){return new G(e.init?.status??500,e.init?.statusText??`Internal Server Error`,e.data)}function on(e){return typeof e==`object`&&!!e&&Object.entries(e).every(([e,t])=>typeof e==`string`&&sn(t))}function sn(e){return typeof e==`object`&&!!e&&`type`in e&&`result`in e&&(e.type===`data`||e.type===`error`)}function cn(e){return dn(e.result)&&et.has(e.result.status)}function X(e){return e.type===`error`}function ln(e){return(e&&e.type)===`redirect`}function un(e){return typeof e==`object`&&!!e&&`type`in e&&`data`in e&&`init`in e&&e.type===`DataWithResponseInit`}function dn(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.headers==`object`&&e.body!==void 0}function fn(e){return et.has(e)}function pn(e){return dn(e)&&fn(e.status)&&e.headers.has(`Location`)}function mn(e){return $e.has(e.toUpperCase())}function Z(e){return Ze.has(e.toUpperCase())}function hn(e){return new URLSearchParams(e).getAll(`index`).some(e=>e===``)}function gn(e,t){let n=typeof t==`string`?O(t).search:t.search;if(e[e.length-1].route.index&&hn(n||``))return e[e.length-1];let r=we(e);return r[r.length-1]}function _n(e){let{formMethod:t,formAction:n,formEncType:r,text:i,formData:a,json:o}=e;if(!(!t||!n||!r)){if(i!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:i};if(a!=null)return{formMethod:t,formAction:n,formEncType:r,formData:a,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:o,text:void 0}}}function vn(e,t,n,r){return r?{state:`loading`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}:{state:`loading`,location:e,matches:t,historyAction:n,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function yn(e,t,n,r){return{state:`submitting`,location:e,matches:t,historyAction:n,formMethod:r.formMethod,formAction:r.formAction,formEncType:r.formEncType,formData:r.formData,json:r.json,text:r.text}}function bn(e,t){return e?{state:`loading`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:`loading`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function xn(e,t){return{state:`submitting`,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function Sn(e){return{state:`idle`,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Cn(e,t){try{let n=e.sessionStorage.getItem(ot);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch{}}function wn(e,t){if(t.size>0){let n={};for(let[e,r]of t)n[e]=[...r];try{e.sessionStorage.setItem(ot,JSON.stringify(n))}catch(e){C(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}}function Tn(){let e,t,n=new Promise((r,i)=>{e=async e=>{r(e);try{await n}catch{}},t=async e=>{i(e);try{await n}catch{}}});return{promise:n,resolve:e,reject:t}}var En=o.createContext(null);En.displayName=`DataRouter`;var Dn=o.createContext(null);Dn.displayName=`DataRouterState`;var On=o.createContext(!1);function kn(){return o.useContext(On)}var An=o.createContext({isTransitioning:!1});An.displayName=`ViewTransition`;var jn=o.createContext(new Map);jn.displayName=`Fetchers`;var Mn=o.createContext(null);Mn.displayName=`Await`;var Q=o.createContext(null);Q.displayName=`Navigation`;var Nn=o.createContext(null);Nn.displayName=`Location`;var Pn=o.createContext({outlet:null,matches:[],isDataRoute:!1});Pn.displayName=`Route`;var Fn=o.createContext(null);Fn.displayName=`RouteError`;var In=`REACT_ROUTER_ERROR`,Ln=`REDIRECT`,Rn=`ROUTE_ERROR_RESPONSE`;function zn(e){if(e.startsWith(`${In}:${Ln}:{`))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 Bn(e){if(e.startsWith(`${In}:${Rn}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new G(t.status,t.statusText,t.data)}catch{}}function Vn(e,{relative:t}={}){S(Hn(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=o.useContext(Q),{hash:i,pathname:a,search:s}=qn(e,{relative:t}),c=a;return n!==`/`&&(c=a===`/`?n:W([n,a])),r.createHref({pathname:c,search:s,hash:i})}function Hn(){return o.useContext(Nn)!=null}function $(){return S(Hn(),`useLocation() may be used only in the context of a <Router> component.`),o.useContext(Nn).location}var Un=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function Wn(e){o.useContext(Q).static||o.useLayoutEffect(e)}function Gn(){let{isDataRoute:e}=o.useContext(Pn);return e?ur():Kn()}function Kn(){S(Hn(),`useNavigate() may be used only in the context of a <Router> component.`);let e=o.useContext(En),{basename:t,navigator:n}=o.useContext(Q),{matches:r}=o.useContext(Pn),{pathname:i}=$(),a=JSON.stringify(Te(r)),s=o.useRef(!1);return Wn(()=>{s.current=!0}),o.useCallback((r,o={})=>{if(C(s.current,Un),!s.current)return;if(typeof r==`number`){n.go(r);return}let c=Ee(r,JSON.parse(a),i,o.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:W([t,c.pathname])),Ye(typeof r==`string`?r:D(r),n.createHref(c),Ke(n),`reject`),(o.replace?n.replace:n.push)(c,o.state,o)},[t,n,a,i,e])}o.createContext(null);function qn(e,{relative:t}={}){let{matches:n}=o.useContext(Pn),{pathname:r}=$(),i=JSON.stringify(Te(n));return o.useMemo(()=>Ee(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function Jn(e,t,n){S(Hn(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:r}=o.useContext(Q),{matches:i}=o.useContext(Pn),a=i[i.length-1],s=a?a.params:{},c=a?a.pathname:`/`,l=a?a.pathnameBase:`/`,u=a&&a.route;{let e=u&&u.path||``;fr(c,!u||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${c}" (under <Route path="${e}">) 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.
3
+
4
+ Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let d=$(),f;if(t){let e=typeof t==`string`?O(t):t;S(l===`/`||e.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 "${e.pathname}" was given in the \`location\` prop.`),f=e}else f=d;let p=f.pathname||`/`,m=p;if(l!==`/`){let e=l.replace(/^\//,``).split(`/`);m=`/`+p.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let h=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):I(e,{pathname:m});C(u||h!=null,`No routes matched location "${f.pathname}${f.search}${f.hash}" `),C(h==null||h[h.length-1].route.element!==void 0||h[h.length-1].route.Component!==void 0||h[h.length-1].route.lazy!==void 0,`Matched leaf route at location "${f.pathname}${f.search}${f.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=tr(h&&h.map(e=>Object.assign({},e,{params:Object.assign({},s,e.params),pathname:W([l,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?l:W([l,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&g?o.createElement(Nn.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...f},navigationType:`POP`}},g):g}function Yn(){let e=lr(),t=Ne(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},s=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),s=o.createElement(o.Fragment,null,o.createElement(`p`,null,`💿 Hey developer 👋`),o.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,o.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,o.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),o.createElement(o.Fragment,null,o.createElement(`h2`,null,`Unexpected Application Error!`),o.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?o.createElement(`pre`,{style:i},n):null,s)}var Xn=o.createElement(Yn,null),Zn=class extends o.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?t.error:e.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`){let t=Bn(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:o.createElement(Pn.Provider,{value:this.props.routeContext},o.createElement(Fn.Provider,{value:e,children:this.props.component}));return this.context?o.createElement($n,{error:e},t):t}};Zn.contextType=On;var Qn=new WeakMap;function $n({children:e,error:t}){let{basename:n,navigator:r}=o.useContext(Q);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=zn(t.digest);if(e){let i=Qn.get(t);if(i)throw i;let a=Fe(e.location,n),s=a.absoluteURL||a.to;if(Ye(e.location,s,Ke(r),`allow-explicit`),Ut(s))throw Error(`Invalid redirect location`);if(Pe&&!Qn.get(t)){if(a.isExternal||e.reloadDocument)window.location.href=s;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw Qn.set(t,n),n}}return o.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${s}`})}}return e}function er({routeContext:e,match:t,children:n}){let r=o.useContext(En);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),o.createElement(Pn.Provider,{value:e},n)}function tr(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);S(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let s=!1,c=-1;if(n&&r){s=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(c=e),t.route.id){let{loaderData:e,errors:a}=r,o=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||o){n.isStatic&&(s=!0),i=c>=0?i.slice(0,c+1):[i[0]];break}}}}let l=n?.onError,u=r&&l?(e,t)=>{l(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:K(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,l)=>{let d,f=!1,p=null,m=null;r&&(d=a&&n.route.id?a[n.route.id]:void 0,p=n.route.errorElement||Xn,s&&(c<0&&l===0?(fr(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),f=!0,m=null):c===l&&(f=!0,m=n.route.hydrateFallbackElement||null)));let h=t.concat(i.slice(0,l+1)),g=()=>{let t;return t=d?p:f?m:n.route.Component?o.createElement(n.route.Component,null):n.route.element?n.route.element:e,o.createElement(er,{match:n,routeContext:{outlet:e,matches:h,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||l===0)?o.createElement(Zn,{location:r.location,revalidation:r.revalidation,component:p,error:d,children:g(),routeContext:{outlet:null,matches:h,isDataRoute:!0},onError:u}):g()},null)}function nr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function rr(e){let t=o.useContext(En);return S(t,nr(e)),t}function ir(e){let t=o.useContext(Dn);return S(t,nr(e)),t}function ar(e){let t=o.useContext(Pn);return S(t,nr(e)),t}function or(e){let t=ar(e),n=t.matches[t.matches.length-1];return S(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function sr(){return or(`useRouteId`)}function cr(){let{matches:e,loaderData:t}=ir(`useMatches`);return o.useMemo(()=>e.map(e=>ae(e,t)),[e,t])}function lr(){let e=o.useContext(Fn),t=ir(`useRouteError`),n=or(`useRouteError`);return e===void 0?t.errors?.[n]:e}function ur(){let{router:e}=rr(`useNavigate`),t=or(`useNavigate`),n=o.useRef(!1);return Wn(()=>{n.current=!0}),o.useCallback(async(r,i={})=>{C(n.current,Un),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var dr={};function fr(e,t,n){!t&&!dr[e]&&(dr[e]=!0,C(!1,n))}var pr={};function mr(e,t){!e&&!pr[t]&&(pr[t]=!0,console.warn(t))}var hr=o.useOptimistic,gr=()=>void 0;function _r(e){return hr?hr(e):[e,gr]}function vr(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&C(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:o.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&C(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:o.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&C(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:o.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var yr=[`HydrateFallback`,`hydrateFallbackElement`],br=class{constructor(){this.status=`pending`,this.promise=new Promise((e,t)=>{this.resolve=t=>{this.status===`pending`&&(this.status=`resolved`,e(t))},this.reject=e=>{this.status===`pending`&&(this.status=`rejected`,t(e))}})}};function xr({router:e,flushSync:t,onError:n,useTransitions:r}){r=kn()||r;let[i,a]=o.useState(e.state),[s,c]=_r(i),[l,u]=o.useState(),[d,f]=o.useState({isTransitioning:!1}),[p,m]=o.useState(),[h,g]=o.useState(),[_,v]=o.useState(),y=o.useRef(new Map),b=o.useCallback((i,{deletedFetchers:s,newErrors:l,flushSync:d,viewTransitionOpts:_})=>{l&&n&&Object.values(l).forEach(e=>n(e,{location:i.location,params:i.matches[0]?.params??{},pattern:K(i.matches)})),i.fetchers.forEach((e,t)=>{e.data!==void 0&&y.current.set(t,e.data)}),s.forEach(e=>y.current.delete(e)),mr(d===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let b=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition==`function`;if(mr(_==null||b,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!_||!b){t&&d?t(()=>a(i)):r===!1?a(i):o.startTransition(()=>{r===!0&&c(e=>Sr(e,i)),a(i)});return}if(t&&d){t(()=>{h&&(p?.resolve(),h.skipTransition()),f({isTransitioning:!0,flushSync:!0,currentLocation:_.currentLocation,nextLocation:_.nextLocation})});let n=e.window.document.startViewTransition(()=>{t(()=>a(i))});n.finished.finally(()=>{t(()=>{m(void 0),g(void 0),u(void 0),f({isTransitioning:!1})})}),t(()=>g(n));return}h?(p?.resolve(),h.skipTransition(),v({state:i,currentLocation:_.currentLocation,nextLocation:_.nextLocation})):(u(i),f({isTransitioning:!0,flushSync:!1,currentLocation:_.currentLocation,nextLocation:_.nextLocation}))},[e.window,t,h,p,r,c,n]);o.useLayoutEffect(()=>e.subscribe(b),[e,b]),o.useEffect(()=>{d.isTransitioning&&!d.flushSync&&m(new br)},[d]),o.useEffect(()=>{if(p&&l&&e.window){let t=l,n=p.promise,i=e.window.document.startViewTransition(async()=>{r===!1?a(t):o.startTransition(()=>{r===!0&&c(e=>Sr(e,t)),a(t)}),await n});i.finished.finally(()=>{m(void 0),g(void 0),u(void 0),f({isTransitioning:!1})}),g(i)}},[l,p,e.window,r,c]),o.useEffect(()=>{p&&l&&s.location.key===l.location.key&&p.resolve()},[p,h,s.location,l]),o.useEffect(()=>{!d.isTransitioning&&_&&(u(_.state),f({isTransitioning:!0,flushSync:!1,currentLocation:_.currentLocation,nextLocation:_.nextLocation}),v(void 0))},[d.isTransitioning,_]);let x=o.useMemo(()=>({createHref:e.createHref,createURL:e.createURL,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,n,r)=>e.navigate(t,{state:n,preventScrollReset:r?.preventScrollReset}),replace:(t,n,r)=>e.navigate(t,{replace:!0,state:n,preventScrollReset:r?.preventScrollReset})}),[e]),S=e.basename||`/`,C=o.useMemo(()=>({router:e,navigator:x,static:!1,basename:S,onError:n}),[e,x,S,n]);return o.createElement(o.Fragment,null,o.createElement(En.Provider,{value:C},o.createElement(Dn.Provider,{value:s},o.createElement(jn.Provider,{value:y.current},o.createElement(An.Provider,{value:d},o.createElement(Tr,{basename:S,location:s.location,navigationType:s.historyAction,navigator:x,useTransitions:r},o.createElement(Cr,{routes:e.routes,manifest:e.manifest,future:e.future,state:s,isStatic:!1,onError:n})))))),null)}function Sr(e,t){return{...e,navigation:t.navigation.state===`idle`?e.navigation:t.navigation,revalidation:t.revalidation===`idle`?e.revalidation:t.revalidation,actionData:t.navigation.state===`submitting`?e.actionData:t.actionData,fetchers:t.fetchers}}var Cr=o.memo(wr);function wr({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return Jn(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function Tr({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:s}){S(!Hn(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let c=e.replace(/^\/*/,`/`),l=o.useMemo(()=>({basename:c,navigator:i,static:a,useTransitions:s,future:{}}),[c,i,a,s]);typeof n==`string`&&(n=O(n));let{pathname:u=`/`,search:d=``,hash:f=``,state:p=null,key:m=`default`,mask:h}=n,g=o.useMemo(()=>{let e=U(u,c);return e==null?null:{location:{pathname:e,search:d,hash:f,state:p,key:m,mask:h},navigationType:r}},[c,u,d,f,p,m,r,h]);return C(g!=null,`<Router basename="${c}"> is not able to match the URL "${u}${d}${f}" because it does not start with the basename, so the <Router> won't render anything.`),g==null?null:o.createElement(Q.Provider,{value:l},o.createElement(Nn.Provider,{children:t,value:g}))}o.Component;var Er=`get`,Dr=`application/x-www-form-urlencoded`;function Or(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function kr(e){return Or(e)&&e.tagName.toLowerCase()===`button`}function Ar(e){return Or(e)&&e.tagName.toLowerCase()===`form`}function jr(e){return Or(e)&&e.tagName.toLowerCase()===`input`}function Mr(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Nr(e,t){return e.button===0&&(!t||t===`_self`)&&!Mr(e)}function Pr(e=``){return new URLSearchParams(typeof e==`string`||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}function Fr(e,t){let n=Pr(e);return t&&t.forEach((e,r)=>{n.has(r)||t.getAll(r).forEach(e=>{n.append(r,e)})}),n}var Ir=null;function Lr(){if(Ir===null)try{new FormData(document.createElement(`form`),0),Ir=!1}catch{Ir=!0}return Ir}var Rr=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function zr(e){return e!=null&&!Rr.has(e)?(C(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Dr}"`),null):e}function Br(e,t){let n,r,i,a,o;if(Ar(e)){let o=e.getAttribute(`action`);r=o?U(o,t):null,n=e.getAttribute(`method`)||Er,i=zr(e.getAttribute(`enctype`))||Dr,a=new FormData(e)}else if(kr(e)||jr(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?U(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||Er,i=zr(e.getAttribute(`formenctype`))||zr(o.getAttribute(`enctype`))||Dr,a=new FormData(o,e),!Lr()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(Or(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=Er,r=null,i=Dr,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function Vr(e,t){if(e===!1||e==null)throw Error(t)}function Hr(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return i.pathname=n?i.pathname.endsWith(`/`)?`${i.pathname}_.${r}`:`${i.pathname}.${r}`:i.pathname===`/`?`_root.${r}`:t&&U(i.pathname,t)===`/`?`${Oe(t)}/_root.${r}`:`${Oe(i.pathname)}.${r}`,i}async function Ur(e,t){if(e.id in t)return t[e.id];try{let n=await u(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Wr(e){return e!=null&&typeof e.page==`string`}function Gr(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 Kr(e,t,n){return Zr((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await Ur(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(Gr).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function qr(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function Jr(e,t,{includeHydrateFallback:n}={}){return Yr(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function Yr(e){return[...new Set(e)]}function Xr(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function Zr(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!Wr(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(Xr(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function Qr(){let e=o.useContext(En);return Vr(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function $r(){let e=o.useContext(Dn);return Vr(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var ei=o.createContext(void 0);ei.displayName=`FrameworkContext`;function ti(){let e=o.useContext(ei);return Vr(e,`You must render this element inside a <HydratedRouter> element`),e}function ni(e,t){let n=o.useContext(ei),[r,i]=o.useState(!1),[a,s]=o.useState(!1),{onFocus:c,onBlur:l,onMouseEnter:u,onMouseLeave:d,onTouchStart:f}=t,p=o.useRef(null);o.useEffect(()=>{if(e===`render`&&s(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{s(e.isIntersecting)})},{threshold:.5});return p.current&&e.observe(p.current),()=>{e.disconnect()}}},[e]),o.useEffect(()=>{if(r){let e=setTimeout(()=>{s(!0)},100);return()=>{clearTimeout(e)}}},[r]);let m=()=>{i(!0)},h=()=>{i(!1),s(!1)};return n?e===`intent`?[a,p,{onFocus:ri(c,m),onBlur:ri(l,h),onMouseEnter:ri(u,m),onMouseLeave:ri(d,h),onTouchStart:ri(f,m)}]:[a,p,{}]:[!1,p,{}]}function ri(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function ii({page:e,...t}){let n=kn(),{nonce:r}=ti(),{router:i}=Qr(),a=o.useMemo(()=>I(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?o.createElement(oi,{page:e,matches:a,...t}):o.createElement(si,{page:e,matches:a,...t})):null}function ai(e){let{manifest:t,routeModules:n}=ti(),[r,i]=o.useState([]);return o.useEffect(()=>{let r=!1;return Kr(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function oi({page:e,matches:t,...n}){let r=$(),{future:i}=ti(),{basename:a}=Qr(),s=o.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=Hr(e,a,i.v8_trailingSlashAwareDataRequests,`rsc`),o=!1,s=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?o=!0:s.push(e.route.id);return o&&s.length>0&&n.searchParams.set(`_routes`,s.join(`,`)),[n.pathname+n.search]},[a,i.v8_trailingSlashAwareDataRequests,e,r,t]);return o.createElement(o.Fragment,null,s.map(e=>o.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function si({page:e,matches:t,...n}){let r=$(),{future:i,manifest:a,routeModules:s}=ti(),{basename:c}=Qr(),{loaderData:l,matches:u}=$r(),d=o.useMemo(()=>qr(e,t,u,a,r,`data`),[e,t,u,a,r]),f=o.useMemo(()=>qr(e,t,u,a,r,`assets`),[e,t,u,a,r]),p=o.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,o=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];!t||!t.hasLoader||(!d.some(t=>t.route.id===e.route.id)&&e.route.id in l&&s[e.route.id]?.shouldRevalidate||t.hasClientLoader?o=!0:n.add(e.route.id))}),n.size===0)return[];let u=Hr(e,c,i.v8_trailingSlashAwareDataRequests,`data`);return o&&n.size>0&&u.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[u.pathname+u.search]},[c,i.v8_trailingSlashAwareDataRequests,l,r,a,d,t,e,s]),m=o.useMemo(()=>Jr(f,a),[f,a]),h=ai(f);return o.createElement(o.Fragment,null,p.map(e=>o.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),m.map(e=>o.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),h.map(({key:e,link:t})=>o.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function ci(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}o.Component;var li=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{li&&(window.__reactRouterVersion=`7.18.3`)}catch{}function ui(e,t){return pt({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:x({window:t?.window}),hydrationData:t?.hydrationData||di(),routes:e,mapRouteProperties:vr,hydrationRouteProperties:yr,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,instrumentations:t?.instrumentations}).initialize()}function di(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:fi(e.errors)}),e}function fi(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&r.__type===`RouteErrorResponse`)n[e]=new G(r.status,r.statusText,r.data,r.internal===!0);else if(r&&r.__type===`Error`){if(typeof r.__subType==`string`&&Me.includes(r.__subType)){let t=window[r.__subType];if(typeof t==`function`)try{let i=new t(r.message);i.stack=``,n[e]=i}catch{}}if(n[e]==null){let t=Error(r.message);t.stack=``,n[e]=t}}else n[e]=r;return n}var pi=o.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,mask:s,state:c,target:l,to:u,preventScrollReset:d,viewTransition:f,defaultShouldRevalidate:p,...m},h){let{basename:_,navigator:v,useTransitions:y}=o.useContext(Q),b=typeof u==`string`&&g.test(u),x=Fe(u,_);u=x.to;let S=Vn(u,{relative:r}),C=$(),w=null;if(s){let e=Ee(s,[],C.mask?C.mask.pathname:`/`,!0);_!==`/`&&(e.pathname=e.pathname===`/`?_:W([_,e.pathname])),w=v.createHref(e)}let[T,E,D]=ni(n,m),O=vi(u,{replace:a,mask:s,state:c,target:l,preventScrollReset:d,relative:r,viewTransition:f,defaultShouldRevalidate:p,useTransitions:y});function k(t){e&&e(t),t.defaultPrevented||O(t)}let A=!(x.isExternal||i),j=o.createElement(`a`,{...m,...D,href:(A?w:void 0)||x.absoluteURL||S,onClick:A?k:e,ref:ci(h,E),target:l,"data-discover":!b&&t===`render`?`true`:void 0});return T&&!b?o.createElement(o.Fragment,null,j,o.createElement(ii,{page:S})):j});pi.displayName=`Link`;var mi=o.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:s,children:c,...l},u){let d=qn(a,{relative:l.relative}),f=$(),p=o.useContext(Dn),{navigator:m,basename:h}=o.useContext(Q),g=p!=null&&wi(d)&&s===!0,_=m.encodeLocation?m.encodeLocation(d).pathname:d.pathname,v=f.pathname,y=p&&p.navigation&&p.navigation.location?p.navigation.location.pathname:null;t||(v=v.toLowerCase(),y=y?y.toLowerCase():null,_=_.toLowerCase()),y&&h&&(y=U(y,h)||y);let b=_!==`/`&&_.endsWith(`/`)?_.length-1:_.length,x=v===_||!r&&v.startsWith(_)&&v.charAt(b)===`/`,S=y!=null&&(y===_||!r&&y.startsWith(_)&&y.charAt(_.length)===`/`),C={isActive:x,isPending:S,isTransitioning:g},w=x?e:void 0,T;T=typeof n==`function`?n(C):[n,x?`active`:null,S?`pending`:null,g?`transitioning`:null].filter(Boolean).join(` `);let E=typeof i==`function`?i(C):i;return o.createElement(pi,{...l,"aria-current":w,className:T,ref:u,style:E,to:a,viewTransition:s},typeof c==`function`?c(C):c)});mi.displayName=`NavLink`;var hi=o.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:s=Er,action:c,onSubmit:l,relative:u,preventScrollReset:d,viewTransition:f,defaultShouldRevalidate:p,...m},h)=>{let{useTransitions:_}=o.useContext(Q),v=Si(),y=Ci(c,{relative:u}),b=s.toLowerCase()===`get`?`get`:`post`,x=typeof c==`string`&&g.test(c);return o.createElement(`form`,{ref:h,method:b,action:y,onSubmit:r?l:e=>{if(l&&l(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,c=r?.getAttribute(`formmethod`)||s,m=()=>v(r||e.currentTarget,{fetcherKey:t,method:c,navigate:n,replace:i,state:a,relative:u,preventScrollReset:d,viewTransition:f,defaultShouldRevalidate:p});_&&n!==!1?o.startTransition(()=>m()):m()},...m,"data-discover":!x&&e===`render`?`true`:void 0})});hi.displayName=`Form`;function gi(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function _i(e){let t=o.useContext(En);return S(t,gi(e)),t}function vi(e,{target:t,replace:n,mask:r,state:i,preventScrollReset:a,relative:s,viewTransition:c,defaultShouldRevalidate:l,useTransitions:u}={}){let d=Gn(),f=$(),p=qn(e,{relative:s});return o.useCallback(m=>{if(Nr(m,t)){m.preventDefault();let t=n===void 0?D(f)===D(p):n,h=()=>d(e,{replace:t,mask:r,state:i,preventScrollReset:a,relative:s,viewTransition:c,defaultShouldRevalidate:l});u?o.startTransition(()=>h()):h()}},[f,d,p,n,r,i,t,e,a,s,c,l,u])}function yi(e){C(typeof URLSearchParams<`u`,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=o.useRef(Pr(e)),n=o.useRef(!1),r=$(),i=o.useMemo(()=>Fr(r.search,n.current?null:t.current),[r.search]),a=Gn();return[i,o.useCallback((e,t)=>{let r=Pr(typeof e==`function`?e(new URLSearchParams(i)):e);n.current=!0,a(`?`+r,t)},[a,i])]}var bi=0,xi=()=>`__${String(++bi)}__`;function Si(){let{router:e}=_i(`useSubmit`),{basename:t}=o.useContext(Q),n=sr(),r=e.fetch,i=e.navigate;return o.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=Br(e,t);if(a.navigate===!1){let e=a.fetcherKey||xi();await r(e,n,a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync})}else await i(a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function Ci(e,{relative:t}={}){let{basename:n}=o.useContext(Q),r=o.useContext(Pn);S(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...qn(e||`.`,{relative:t})},s=$();if(e==null){a.search=s.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:W([n,a.pathname])),D(a)}function wi(e,{relative:t}={}){let n=o.useContext(An);S(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=_i(`useViewTransitionState`),i=qn(e,{relative:t});if(!n.isTransitioning)return!1;let a=U(n.currentLocation.pathname,r)||n.currentLocation.pathname,s=U(n.nextLocation.pathname,r)||n.nextLocation.pathname;return ge(i.pathname,s)!=null||ge(i.pathname,a)!=null}function Ti(e){return{kind:e.identityKind,key:e.identityKey}}function Ei(e){return`/projects/${encodeURIComponent(e.kind)}/${encodeURIComponent(e.key)}`}function Di(e){return r(e.reference)}function Oi(e,t,n){let r=e.get(t);if(r){r.push(n);return}e.set(t,[n])}function ki(e,t){let r=a(e),o=new Map,s=new Map,c=new Map,l=new Map,u=[],d=new Set(t.map(e=>e.name.toLowerCase()));for(let e of d)o.set(e,[]),s.set(e,[]);for(let t of e){let e=n(t);u.push(t),d.has(e)&&s.get(e).push(t);let r=t.project_identity;if(!r?.key)continue;let a=i(r);Oi(c,a,t);let o=l.get(a);o?o.count+=1:l.set(a,{key:a,identityKind:r.kind,identityKey:r.key,label:r.displayName||t.directory,count:1})}for(let e of d)o.set(e,r.byAgent.get(e)??[]);return{byRouteKey:r.byRouteKey,childrenByParentRouteKey:r.childrenByParentRouteKey,byAgent:o,byProjectIdentityKey:r.byProjectIdentityKey,byProjectAgentKey:r.byProjectAgentKey,byLandingAgent:s,byLandingProjectIdentityKey:c,landingSessions:u,sessionsByActivity:r.sessionsByActivity,projectOptions:[...l.values()].toSorted((e,t)=>t.count-e.count).slice(0,8)}}function Ai(e){let t=new Map,n=new Map;for(let r=0;r<e.length;r+=1){let i=e[r],a=Di(i);t.has(a)||(t.set(a,i),n.set(a,r))}return{byReference:t,indexByReference:n}}export{Ei as a,ui as c,$ as d,cr as f,u as g,yi as h,Ti as i,j as l,lr as m,Ai as n,pi as o,Gn as p,Di as r,xr as s,ki as t,Ne as u};
@@ -0,0 +1,2 @@
1
+ import{a as e,n as t}from"./jsx-runtime-B-hcVAMW.js";function n(e){return{agentName:e.agentName.trim().toLowerCase(),sessionId:e.sessionId}}function r(e){let t=n(e);return`${t.agentName}/${t.sessionId}`}function i(e){return r(e)}function a(e,t){let r=n(e.reference),i=t?.trim().toLowerCase();if(e.reference.agentName!==r.agentName)throw Error(`Session reference is not normalized`);if(i!=null&&r.agentName!==i)throw Error(`Session reference agent "${r.agentName}" does not match "${i}"`)}function o(e){return n(e.reference).agentName}function s(e){return`/${encodeURIComponent(e.trim().toLowerCase())}`}function c(e){let t=n(e);return`${s(t.agentName)}/${encodeURIComponent(t.sessionId)}`}function l(e){return c(e.reference)}var u={read:`read`,read_file:`read`,read_file_v2:`read`,read_text_file:`read`,readfile:`read`,view_image:`read`,apply_patch:`edit`,edit:`edit`,edit_file:`edit`,edit_file_v2:`edit`,editfile:`edit`,multiedit:`edit`,notebookedit:`edit`,patch:`edit`,search_replace:`edit`,str_replace:`edit`,create_file:`write`,write:`write`,write_file:`write`,writefile:`write`,delete:`delete`,delete_file:`delete`},d={edit_file:`edit`,update_file:`edit`,write_file:`write`,delete_file:`delete`,move_file:`edit`};function f(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function p(e){let t=e.trim();return!t||t.length>300||t.includes(`
2
+ `)||/^[a-z]+:\/\//i.test(t)||/[<>{}]/.test(t)?!1:t.startsWith(`/`)||t.startsWith(`./`)||t.startsWith(`../`)||t.startsWith(`~/`)||t.includes(`/`)||t.includes(`\\`)?!0:/^[A-Za-z0-9_.@-]+\.[A-Za-z0-9_-]+$/.test(t)}function ee(e){let t=e.trim().toLowerCase();return!t||t.includes(`command`)||t.includes(`content`)||t.includes(`text`)||t.includes(`prompt`)||t.includes(`url`)||t.includes(`body`)||t.includes(`title`)||t.includes(`description`)||t===`cwd`||t===`workdir`||t===`directory`?!1:t.includes(`file`)||t.includes(`path`)}function m(e,t,n,r=0){if(!(e==null||r>4)){if(typeof e==`string`){ee(t)&&p(e)&&n.add(e.trim());return}if(Array.isArray(e)){for(let i of e)m(i,t,n,r+1);return}if(typeof e==`object`)for(let[t,i]of Object.entries(e))m(i,t,n,r+1)}}function te(e){let t=f(e);return(Array.isArray(e)?e:Array.isArray(t.content)?t.content:[]).flatMap(e=>{let t=f(e),n=typeof t.type==`string`?d[t.type]:void 0,r=t.path||t.old_path,i=typeof r==`string`?r.trim():``;return n&&i?[{kind:n,path:i}]:[]})}function h(e){return u[e.tool.trim().toLowerCase()]??null}function ne(e){let t=te(e.state.input);if(t.length>0)return t;let n=h(e);if(!n)return[];let r=new Set;return m(e.state.input,``,r),[...r].map(e=>({kind:n,path:e}))}function re(e,t){let n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,s=(e,t)=>`${e}\0${t}`,c=e=>{let t=s(e.reference.agentName,e.reference.sessionId);o.delete(t),r.delete(t),n.set(t,e)},l=e=>{let t=s(e.reference.agentName,e.reference.sessionId);n.has(t)||o.has(t)||r.set(t,e)},u=e=>{let t=s(e.agentName,e.sessionId);o.delete(t),a.set(t,e)},d=e=>{let t=s(e.agentName,e.sessionId);i.delete(t),i.set(t,e)},f=e=>{let t=s(e.agentName,e.sessionId);n.delete(t),r.delete(t),i.delete(t),a.delete(t),o.set(t,e)};for(let t of e.newSessionRefs)u(t);for(let t of e.projectionRelatedSessionHeads??[])l(t);for(let t of e.projectionSessionOrder??[])d(t);for(let t of e.changedSessionHeads)c(t);for(let t of e.removedSessionRefs)f(t);for(let e of t.newSessionRefs)u(e);for(let e of t.projectionRelatedSessionHeads??[])l(e);for(let e of t.projectionSessionOrder??[])d(e);for(let e of t.changedSessionHeads)c(e);for(let e of t.removedSessionRefs)f(e);return{type:`sessions-updated`,changedAgents:Array.from(new Set([...e.changedAgents,...t.changedAgents])),newSessionRefs:[...a.values()],totalSessions:t.totalSessions,timestamp:t.timestamp,changedSessionHeads:[...n.values()],projectionRelatedSessionHeads:[...r.values()],projectionSessionOrder:[...i.values()],removedSessionRefs:[...o.values()]}}function g(e){let t=new Date(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()}function _(e,t){let n=new Date(e);return new Date(n.getFullYear(),n.getMonth(),n.getDate()+t).getTime()}function ie(e,t){let n=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!n)return;let r=Number(n[1]),i=Number(n[2])-1,a=Number(n[3]),o=new Date(r,i,a);return o.getFullYear()!==r||o.getMonth()!==i||o.getDate()!==a?null:t===`start`?o.getTime():_(o.getTime(),1)-1}function v(e){let t=new Date(e);return Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())/864e5}function ae(e,t){return Math.max(1,v(t)-v(e)+1)}function y(e){let t=new Date(e);return`${String(t.getFullYear()).padStart(4,`0`)}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}var oe=new Set([`git_remote`,`git_common_dir`,`manifest_path`,`synthetic`,`path`,`loose`]);function se(e){return oe.has(e)}function b(e){return`${e.kind}:${e.key}`}function x(e,t){return`${e}\0${t.toLowerCase()}`}function S(e,t){return(t.time_updated??t.time_created)-(e.time_updated??e.time_created)}function C(e){for(let t=1;t<e.length;t+=1)if(S(e[t-1],e[t])>0)return[...e].sort(S);return[...e]}function w(e,t){return i({agentName:e,sessionId:t})}function T(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function E(e){let t=new Map,n=new Map,r=new Map,a=new Map,o=new Map;for(let r of e){let e=i(r.reference);t.has(e)||t.set(e,r),r.parent_reference&&T(n,i(r.parent_reference),r)}let s=C(e);for(let e of s){let{agentName:t}=e.reference;T(r,t,e);let n=e.project_identity;if(!n?.key)continue;let i=b(n);T(a,i,e),T(o,x(i,t),e)}return{sourceSessions:e,sessionsByActivity:s,byRouteKey:t,childrenByParentRouteKey:n,byAgent:r,byProjectIdentityKey:a,byProjectAgentKey:o}}function ce(e,t,n){let r=new Map;for(let t of e)r.set(i(t.reference),t);for(let e of n)r.delete(i(e));for(let e of t)r.set(i(e.reference),e.session);return C([...r.values()])}function D(e){return i(e.reference)}function O(e){return e.parent_reference?i(e.parent_reference):null}function k(e){return e.time_updated??e.time_created}function A(e,t,n){let r=k(e);return(t==null||r>=t)&&(n==null||r<=n)}function le(e){let t=e.stats,n=t.total_cost??0;return{messageCount:t.message_count,inputTokens:t.total_input_tokens,outputTokens:t.total_output_tokens,cacheReadTokens:t.total_cache_read_tokens??0,cacheCreateTokens:t.total_cache_create_tokens??0,totalTokens:t.total_tokens??t.total_input_tokens+t.total_output_tokens,cost:n,costSource:n>0?t.cost_source??`recorded`:void 0}}function ue(e,t){e.messageCount+=t.messageCount,e.inputTokens+=t.inputTokens,e.outputTokens+=t.outputTokens,e.cacheReadTokens+=t.cacheReadTokens,e.cacheCreateTokens+=t.cacheCreateTokens,e.totalTokens+=t.totalTokens,e.cost+=t.cost,t.costSource===`estimated`&&(e.costSource=`estimated`)}function j(e){let t=[],n=[e];for(;n.length>0;){let e=n.pop();t.push(e);for(let t of e.children)n.push(t)}for(let e=t.length-1;e>=0;--e){let n=t[e],r=n.inclusiveStats,i=0;for(let e of n.children)i+=1+e.descendantCount,ue(r,e.inclusiveStats);r.cost>0&&r.costSource==null&&(r.costSource=`recorded`),n.descendantCount=i}}function M(e){let t=new Map;for(let n of e){let e=D(n);t.has(e)||t.set(e,{session:n,children:[],descendantCount:0,inclusiveStats:le(n)})}let n=[...t.values()],r=new Map;function i(e){let n=[],i=new Set,a=e,o=!0;for(;a!=null;){let e=r.get(a);if(e!=null){o=e;break}if(i.has(a)){o=!1;break}i.add(a),n.push(a);let s=O(t.get(a).session);a=s!=null&&t.has(s)?s:null}for(let e of n)r.set(e,o);return o}let a=new Map,o=[],s=[],c=[];for(let e of n){let n=D(e.session),r=O(e.session),l=r==null?`root`:t.has(r)&&i(n)?`mounted-child`:`orphan`;if(a.set(n,l),l===`mounted-child`){t.get(r).children.push(e);continue}(l===`root`?o:s).push(e),c.push(e)}for(let e of c)j(e);return{roots:o,orphans:s,entries:c,byRouteKey:t,mountStateOf(e){return a.get(D(e))??(e.parent_reference?`orphan`:`root`)}}}function N(e){let t=new Map;for(let n of e){let e=k(n.session),r=y(e),i=t.get(r);i||(i={dayKey:r,dayStart:g(e),nodes:[],mainCount:0,subCount:0},t.set(r,i)),i.nodes.push(n)}let n=[...t.values()];for(let e of n)e.nodes.sort((e,t)=>S(e.session,t.session)),e.mainCount=e.nodes.length,e.subCount=e.nodes.reduce((e,t)=>e+t.descendantCount,0);return n.sort((e,t)=>t.dayStart-e.dayStart)}function P(e,t,n,r){if(t==null&&n==null)return e;if(r===void 0&&e.every(e=>A(e,t,n)))return[...e];let i=F(r??M(e),t,n),a=new Set;for(;i.length>0;){let e=i.pop(),t=D(e.session);if(!a.has(t)){a.add(t);for(let t of e.children)i.push(t)}}return e.filter(e=>a.has(D(e)))}function F(e,t,n){return t==null&&n==null?e.entries:e.entries.filter(e=>A(e.session,t,n))}function I(e,t){let n=new Set(e.map(D)),r=[...t.projectionRelatedSessionHeads??[],...t.changedSessionHeads],a=new Map(r.map(e=>[i(e.reference),e])),o=new Map(e.map(e=>[D(e),e])),s=[],c=[];for(let e of t.projectionSessionOrder??[]){let t=i(e),n=a.get(t),r=n?.session??o.get(t);r&&(s.push(n??{reference:e,session:r}),c.push(e),a.delete(t))}s.push(...a.values());let l=P(ce(e,s,[...t.removedSessionRefs,...c]),t.from,t.to),u=new Set(l.map(D)),d=0,f=0;for(let e of u)n.has(e)||(d+=1);for(let e of n)u.has(e)||(f+=1);return{sessions:l,visibleAddedSessions:d,visibleRemovedSessions:f}}var L=`X-CodeSesh-Operation-ID`,R=e(t(),1),z=`codesesh.language`,B=new Set;function V(e){return e===`system`||e===`en`||e===`zh-CN`||e===`ja`}function H(e){for(let t of e){let e=t.toLowerCase().split(`-`)[0];if(e===`zh`)return`zh-CN`;if(e===`ja`)return`ja`;if(e===`en`)return`en`}return`en`}function U(){try{let e=localStorage.getItem(z);return V(e)?e:`system`}catch{return`system`}}function W(e){return e===`system`?H(typeof navigator>`u`?[]:navigator.languages):e}var G=U(),K={preference:G,locale:W(G)};function q(){return K}function J(){return K.locale}function Y(e){let t=W(e);if(typeof document<`u`&&(document.documentElement.lang=t),K.preference!==e||K.locale!==t){K={preference:e,locale:t};for(let e of B)e()}}function de(e){if(V(e)){try{localStorage.setItem(z,e)}catch{}Y(e)}}function X(e){(e.key===`codesesh.language`||e.key===null)&&Y(U())}function Z(){Y(K.preference)}function Q(e){return B.size===0&&typeof window<`u`&&(window.addEventListener(`storage`,X),window.addEventListener(`languagechange`,Z),Y(K.preference)),B.add(e),()=>{B.delete(e),B.size===0&&typeof window<`u`&&(window.removeEventListener(`storage`,X),window.removeEventListener(`languagechange`,Z))}}typeof document<`u`&&(document.documentElement.lang=K.locale);function fe(){return(0,R.useSyncExternalStore)(Q,q,q).locale}var $={COST:[`费用`,`費用`],plan:[`计划`,`計画`],USER:[`用户`,`ユーザー`],TOOL:[`工具`,`ツール`],AGENT:[`智能体`,`エージェント`],Dashboard:[`概览`,`ダッシュボード`],Projects:[`项目`,`プロジェクト`],Project:[`项目`,`プロジェクト`],Session:[`会话`,`セッション`],Sessions:[`会话`,`セッション`],sessions:[`个会话`,`セッション`],Agents:[`智能体`,`エージェント`],Agent:[`智能体`,`エージェント`],agents:[`个智能体`,`エージェント`],Search:[`搜索`,`検索`],Landing:[`首页`,`ホーム`],Navigation:[`导航`,`ナビゲーション`],"Primary navigation":[`主导航`,`メインナビゲーション`],"Open navigation":[`打开导航`,`ナビゲーションを開く`],"Expand sidebar":[`展开侧边栏`,`サイドバーを展開`],"Collapse sidebar":[`收起侧边栏`,`サイドバーを折りたたむ`],Breadcrumb:[`面包屑导航`,`パンくずリスト`],"Skip to content":[`跳转到内容`,`コンテンツへスキップ`],BOOKMARKS:[`书签`,`ブックマーク`],SESSIONS:[`会话`,`セッション`],"Remove bookmark":[`移除书签`,`ブックマークを削除`],"Add bookmark":[`添加书签`,`ブックマークに追加`],"No bookmarks yet":[`暂无书签`,`ブックマークはまだありません`],"Loading bookmarks...":[`正在加载书签…`,`ブックマークを読み込み中…`],"Couldn't load bookmarks.":[`无法加载书签。`,`ブックマークを読み込めませんでした。`],"Agent unavailable":[`智能体不可用`,`エージェントを利用できません`],"Session unavailable":[`会话不可用`,`セッションを利用できません`],"No sessions yet":[`暂无会话`,`セッションはまだありません`],"Scanning sessions...":[`正在扫描会话…`,`セッションをスキャン中…`],"Scanning projects...":[`正在扫描项目…`,`プロジェクトをスキャン中…`],"No projects found":[`未找到项目`,`プロジェクトが見つかりません`],"Couldn't load projects.":[`无法加载项目。`,`プロジェクトを読み込めませんでした。`],"Couldn't refresh projects.":[`无法刷新项目。`,`プロジェクトを更新できませんでした。`],"Loading projects...":[`正在加载项目…`,`プロジェクトを読み込み中…`],"Loading project...":[`正在加载项目…`,`プロジェクトを読み込み中…`],"Couldn't load project.":[`无法加载项目。`,`プロジェクトを読み込めませんでした。`],"Project Not Found":[`未找到项目`,`プロジェクトが見つかりません`],"Back to Projects":[`返回项目列表`,`プロジェクト一覧へ戻る`],"Recent Sessions":[`最近会话`,`最近のセッション`],"{0} items":[`{0} 项`,`{0} 件`],"Total Sessions":[`会话总数`,`セッション総数`],"Total Messages":[`消息总数`,`メッセージ総数`],"Latest Activity":[`最近活动`,`最近のアクティビティ`],Messages:[`消息`,`メッセージ`],messages:[`条消息`,`メッセージ`],Tokens:[`Token`,`トークン`],tokens:[`Token`,`トークン`],"Total Cost":[`总费用`,`合計費用`],Cost:[`费用`,`費用`],"Latest {0}":[`最近 {0}`,`最終 {0}`],Previous:[`上一页`,`前へ`],Next:[`下一页`,`次へ`],Page:[`页码`,`ページ`],shown:[`已显示`,`表示中`],"All Agents":[`全部智能体`,`すべてのエージェント`],"All agents":[`全部智能体`,`すべてのエージェント`],All:[`全部`,`すべて`],Custom:[`自定义`,`カスタム`],Retry:[`重试`,`再試行`],Cancel:[`取消`,`キャンセル`],Clear:[`清除`,`クリア`],Edit:[`编辑`,`編集`],Rename:[`重命名`,`名前を変更`],"Copy as Markdown":[`复制为 Markdown`,`Markdown としてコピー`],"Session options":[`会话操作`,`セッションの操作`],"Rename session":[`重命名会话`,`セッション名を変更`],"Session title":[`会话标题`,`セッション名`],"Could not rename this session.":[`无法重命名此会话。`,`セッション名を変更できませんでした。`],"Could not restore the title.":[`无法恢复标题。`,`タイトルを復元できませんでした。`],"Remove custom title":[`移除自定义标题`,`カスタムタイトルを削除`],"Saving…":[`正在保存…`,`保存中…`],"Save title":[`保存标题`,`タイトルを保存`],"Resume command copied: {0}":[`已复制继续会话命令:{0}`,`再開コマンドをコピーしました:{0}`],"Copy resume command: {0}":[`复制继续会话命令:{0}`,`再開コマンドをコピー:{0}`],"Copied: {0}":[`已复制:{0}`,`コピーしました:{0}`],"Copy: {0}":[`复制:{0}`,`コピー:{0}`],Copied:[`已复制`,`コピー済み`],"Copy resume":[`复制继续命令`,`再開コマンドをコピー`],"Resume command copied":[`已复制继续会话命令`,`再開コマンドをコピーしました`],"Custom time range":[`自定义时间范围`,`期間を指定`],"Both dates are included.":[`包含起止日期当天。`,`開始日と終了日を含みます。`],From:[`开始日期`,`開始日`],To:[`结束日期`,`終了日`],"Apply range":[`应用范围`,`期間を適用`],"Last 7 days":[`最近 7 天`,`過去 7 日間`],"Last 14 days":[`最近 14 天`,`過去 14 日間`],"Last 30 days":[`最近 30 天`,`過去 30 日間`],"Last 90 days":[`最近 90 天`,`過去 90 日間`],"All time":[`全部时间`,`全期間`],"Session time range":[`会话时间范围`,`セッションの期間`],"Custom range":[`自定义范围`,`期間を指定`],"Edit custom time range":[`编辑自定义时间范围`,`指定期間を編集`],"Show keyboard shortcuts":[`显示键盘快捷键`,`キーボードショートカットを表示`],Shortcuts:[`快捷键`,`ショートカット`],"Keyboard Shortcuts":[`键盘快捷键`,`キーボードショートカット`],"Navigate without leaving the keyboard":[`使用键盘完成导航`,`キーボードだけで操作できます`],"Keyboard navigation available":[`支持键盘导航`,`キーボードで操作できます`],"Dismiss keyboard shortcuts hint":[`关闭快捷键提示`,`ショートカットのヒントを閉じる`],"Esc back":[`Esc 返回`,`Esc 戻る`],"Navigate j k · Open Enter":[`j k 导航 · Enter 打开`,`j k 移動 · Enter 開く`],"Navigate j k · Open Enter · Exit Esc":[`j k 导航 · Enter 打开 · Esc 退出`,`j k 移動 · Enter 開く · Esc 終了`],"Move through sessions or search results":[`在会话或搜索结果间移动`,`セッションや検索結果を移動`],"Open the current selection":[`打开当前选中项`,`選択した項目を開く`],"Jump to the first or last item":[`跳转至第一项或最后一项`,`最初または最後の項目に移動`],"Search & Help":[`搜索与帮助`,`検索とヘルプ`],"Open global search":[`打开全局搜索`,`グローバル検索を開く`],"Focus the search box":[`聚焦搜索框`,`検索ボックスにフォーカス`],"Exit search or close the current detail view":[`退出搜索或关闭当前详情`,`検索を終了、または詳細を閉じる`],"Open this shortcuts panel":[`打开快捷键面板`,`ショートカットパネルを開く`],Light:[`浅色`,`ライト`],Dark:[`深色`,`ダーク`],System:[`跟随系统`,`システム`],"Theme: {0}. Switch to {1}.":[`主题:{0}。切换为{1}。`,`テーマ:{0}。{1}に切り替え。`],"Theme: {0} (click for {1})":[`主题:{0}(点击切换为{1})`,`テーマ:{0}(クリックで{1})`],Language:[`语言`,`言語`],"Follow system":[`跟随系统`,`システムに合わせる`],"Search Sessions":[`搜索会话`,`セッションを検索`],"Search sessions… /":[`搜索会话… /`,`セッションを検索… /`],Scope:[`范围`,`範囲`],Tag:[`标签`,`タグ`],Signal:[`信号`,`条件`],"File Activity":[`文件活动`,`ファイル操作`],Read:[`读取`,`読み取り`],Write:[`写入`,`書き込み`],Delete:[`删除`,`削除`],"Cost Range":[`费用范围`,`費用範囲`],"Any Cost":[`不限费用`,`費用指定なし`],"Cost > $0":[`费用 > $0`,`費用 > $0`],"Cost >= $1":[`费用 ≥ $1`,`費用 ≥ $1`],"Cost >= $10":[`费用 ≥ $10`,`費用 ≥ $10`],Recent:[`最近`,`最近`],Title:[`标题`,`タイトル`],"User message":[`用户消息`,`ユーザーメッセージ`],"Assistant reply":[`助手回复`,`アシスタントの返信`],"Tool output":[`工具输出`,`ツール出力`],"File path":[`文件路径`,`ファイルパス`],"Searching…":[`正在搜索…`,`検索中…`],"Search Failed":[`搜索失败`,`検索に失敗しました`],". Check the server connection, then try again.":[`。请检查服务器连接后重试。`,`。サーバー接続を確認して再試行してください。`],"Retry Search":[`重试搜索`,`検索を再試行`],"No matches":[`没有匹配结果`,`一致する結果がありません`],"No recent sessions":[`暂无最近会话`,`最近のセッションはありません`],"Query:":[`查询:`,`検索語:`],'Search failed for "{0}"':[`搜索“{0}”失败`,`「{0}」の検索に失敗しました`],"Browse by":[`浏览方式`,`表示方法`],"Project grouping is available after the current scan finishes":[`当前扫描完成后可按项目分组`,`現在のスキャン完了後にプロジェクト別表示が利用できます`],"Loading sessions… Results are not yet complete.":[`正在加载会话…结果尚不完整。`,`セッションを読み込み中…結果はまだ揃っていません。`],"Retry session load":[`重新加载会话`,`セッションの読み込みを再試行`],"Page not found":[`未找到页面`,`ページが見つかりません`],"This address does not match any dashboard, agent, or session route.":[`此地址未匹配到概览、智能体或会话页面。`,`このアドレスに対応するダッシュボード、エージェント、セッションはありません。`],"Back to dashboard":[`返回概览`,`ダッシュボードに戻る`],"Couldn't load the dashboard.":[`无法加载概览。`,`ダッシュボードを読み込めませんでした。`],"No data":[`暂无数据`,`データがありません`],"Agent distribution chart":[`智能体分布图`,`エージェント分布グラフ`],"{0}: {1}, {2} sessions":[`{0}:{1},{2} 个会话`,`{0}:{1}、{2} セッション`],"{0}: {1} sessions":[`{0}:{1} 个会话`,`{0}:{1} セッション`],"{0} · {1} total":[`{0} · 总计 {1}`,`{0} · 合計 {1}`],"by cost":[`按费用`,`費用別`],"by sessions":[`按会话数`,`セッション数別`],"by tokens":[`按 Token 数`,`トークン数別`],more:[`更多`,`その他`],Other:[`其他`,`その他`],"Cost by Model":[`模型费用`,`モデル別費用`],Models:[`模型`,`モデル`],"No model data":[`暂无模型数据`,`モデルのデータがありません`],"{0} chart":[`{0}图表`,`{0}グラフ`],"total cost":[`总费用`,`合計費用`],"total tokens":[`Token 总数`,`合計トークン`],Estimated:[`估算`,`推定`],"from model unit price,":[`按模型单价估算,`,`モデル単価から推定、`],"from agent records":[`来自智能体记录`,`エージェントの記録より`],"Per-model cost needs the message cache, which is unavailable here; showing token share instead.":[`模型费用需要消息缓存;当前缓存不可用,改为显示 Token 占比。`,`モデル別費用にはメッセージキャッシュが必要です。利用できないため、トークン比率を表示しています。`],"projects ·":[`个项目 ·`,`プロジェクト ·`],"agents in scope":[`个智能体在范围内`,`エージェントが対象`],"Filter by agent":[`按智能体筛选`,`エージェントで絞り込み`],"All recorded by agents":[`全部来自智能体记录`,`すべてエージェントの記録`],"All estimated from unit price":[`全部按单价估算`,`すべて単価から推定`],"{0} estimated":[`{0} 为估算值`,`{0} は推定`],"{0}/day":[`{0}/天`,`{0}/日`],"{0}/session":[`{0}/会话`,`{0}/セッション`],"Cache hit {0}":[`缓存命中 {0}`,`キャッシュヒット {0}`],"Last activity":[`最近活动`,`最終アクティビティ`],"No activity":[`暂无活动`,`アクティビティなし`],Input:[`输入`,`入力`],Output:[`输出`,`出力`],"Cache read":[`缓存读取`,`キャッシュ読み取り`],"Cache write":[`缓存写入`,`キャッシュ書き込み`],"{0}: {1} tokens, {2}, {3} sessions, {4} messages, input {5}, output {6}, cache read {7}, cache write {8}":[`{0}:{1} Token,{2},{3} 个会话,{4} 条消息,输入 {5},输出 {6},缓存读取 {7},缓存写入 {8}`,`{0}:{1} トークン、{2}、{3} セッション、{4} メッセージ、入力 {5}、出力 {6}、キャッシュ読み取り {7}、書き込み {8}`],"Daily cost":[`每日费用`,`日別費用`],Peak:[`峰值`,`ピーク`],"· Avg":[`· 平均`,`· 平均`],"· Total":[`· 总计`,`· 合計`],"tok ·":[`Token ·`,`トークン ·`],"sessions ·":[`个会话 ·`,`セッション ·`],In:[`输入`,`入力`],"· Out":[`· 输出`,`· 出力`],"· Read":[`· 缓存读取`,`· 読み取り`],"· Write":[`· 缓存写入`,`· 書き込み`],"Daily usage chart":[`每日用量图表`,`日別使用量グラフ`],"Daily usage":[`每日用量`,`日別使用量`],"Stacked bars = token mix · Area below = daily cost":[`堆叠柱:Token 构成 · 下方面积:每日费用`,`積み上げ棒:トークン構成 · 下の面:日別費用`],"No usage data":[`暂无用量数据`,`使用量データがありません`],"Daily usage data":[`每日用量数据`,`日別使用量データ`],Date:[`日期`,`日付`],"{0} timeline":[`{0} 时间线`,`{0} のタイムライン`],"{0} sessions · {1} sub-sessions · {2} tokens":[`{0} 个会话 · {1} 个子会话 · {2} Token`,`{0} セッション · {1} サブセッション · {2} トークン`],"Previous timeline page":[`上一页时间线`,`タイムラインの前のページ`],"Next timeline page":[`下一页时间线`,`タイムラインの次のページ`],"unmounted sub-sessions · parent file is gone":[`个未关联子会话 · 父会话文件已不存在`,`未関連のサブセッション · 親ファイルがありません`],Collapsed:[`收起`,`折りたたむ`],"Expand all":[`全部展开`,`すべて展開`],Hidden:[`隐藏`,`非表示`],"Sub-sessions":[`子会话`,`サブセッション`],"Sub-session display":[`子会话显示方式`,`サブセッションの表示`],"Sub-sessions · derived from this session":[`子会话 · 源自此会话`,`このセッションから派生したサブセッション`],"msgs ·":[`条消息 ·`,`メッセージ ·`],"Previous sub-session page":[`上一页子会话`,`サブセッションの前のページ`],"Next sub-session page":[`下一页子会话`,`サブセッションの次のページ`],"main ·":[`主会话 ·`,`メイン ·`],sub:[`子会话`,`サブ`],tok:[`Token`,`トークン`]," · {0} sub-sessions":[` · {0} 个子会话`,` · {0} サブセッション`]," incl. sub":[` 含子会话`,` サブを含む`],Unmounted:[`未关联`,`未関連`],"Deeper sessions":[`更深层会话`,`下位のセッション`],"This session has no displayable messages.":[`此会话没有可显示的消息。`,`表示できるメッセージがありません。`],"No messages match the current filters.":[`没有符合当前筛选条件的消息。`,`現在のフィルターに一致するメッセージはありません。`],"Session Summary":[`会话摘要`,`セッション概要`],"File Tracker":[`文件追踪`,`ファイル追跡`],"Previous {0}":[`上一个{0}`,`前の{0}`],"Next {0}":[`下一个{0}`,`次の{0}`],"Jump to tool call":[`跳转到工具调用`,`ツール呼び出しへ移動`],You:[`你`,`あなた`],Reply:[`回复`,`返信`],Thinking:[`思考`,`思考`],Plan:[`计划`,`計画`],Plans:[`计划`,`計画`],"Tool ·":[`工具 ·`,`ツール ·`],"Remove filter {0}":[`移除筛选条件 {0}`,`フィルター {0} を削除`],"Your messages":[`你的消息`,`あなたのメッセージ`],"Agent replies":[`智能体回复`,`エージェントの返信`],"Content filters":[`内容筛选`,`コンテンツフィルター`],Reset:[`重置`,`リセット`],"Current view":[`当前视图`,`現在の表示`],Showing:[`显示`,`表示`],of:[`/`,`/`]," · hiding {0}":[` · 已隐藏 {0}`,` · {0} 件を非表示`],"All tools":[`全部工具`,`すべてのツール`],Tools:[`工具`,`ツール`],selected:[`已选择`,`選択済み`],"Filter tool names":[`筛选工具名称`,`ツール名で絞り込み`],"Filter tools…":[`筛选工具…`,`ツールを絞り込み…`],"Select all (":[`全选(`,`すべて選択(`],"Clear all (":[`清除全部(`,`すべて解除(`],"Writes only":[`仅写入操作`,`書き込みのみ`],"hidden by filters":[`被筛选条件隐藏`,`フィルターで非表示`],"Show all":[`显示全部`,`すべて表示`],Success:[`成功`,`成功`],Failed:[`失败`,`失敗`],Running:[`运行中`,`実行中`],"Open sub-session ↗":[`打开子会话 ↗`,`サブセッションを開く ↗`],INPUT:[`输入`,`入力`],OUTPUT:[`输出`,`出力`],REASONING:[`推理`,`推論`],"EST COST":[`估算费用`,`推定費用`],abort:[`已中止`,`中断`],"Input Preview":[`输入预览`,`入力プレビュー`],"Open session receipt":[`打开会话小票`,`セッションのレシートを開く`],Receipt:[`小票`,`レシート`],"Session Receipt":[`会话小票`,`セッションのレシート`],"{0} filters":[`{0} 个筛选条件`,`{0} 個のフィルター`],Files:[`文件`,`ファイル`],"Timeline scroll position":[`时间线滚动位置`,`タイムラインのスクロール位置`],"Go to {0}":[`跳转到 {0}`,`{0} へ移動`],"Session message timeline":[`会话消息时间线`,`セッションメッセージのタイムライン`],"Scroll timeline left":[`向左滚动时间线`,`タイムラインを左にスクロール`],"Scroll timeline right":[`向右滚动时间线`,`タイムラインを右にスクロール`],"User · {0}":[`用户 · {0}`,`ユーザー · {0}`],"Agent · {0}":[`智能体 · {0}`,`エージェント · {0}`],Message:[`消息`,`メッセージ`],Response:[`回复`,`返信`],Execute:[`执行`,`実行`],User:[`用户`,`ユーザー`],"Agent Responses":[`智能体回复`,`エージェントの返信`],"Other tools":[`其他工具`,`その他のツール`],"SESSION ACTIVITY RECEIPT":[`会话活动小票`,`セッション活動のレシート`],"Untitled session":[`未命名会话`,`無題のセッション`],"Interactive thermal receipt with Verlet paper simulation":[`可拖拽的动态会话小票`,`ドラッグできるセッションのレシート`],Updated:[`更新于`,`更新`],"SESSION TOC RECEIPT LIST":[`会话内容清单`,`セッション内容一覧`],"Input tokens":[`输入 Token`,`入力トークン`],"Output tokens":[`输出 Token`,`出力トークン`],"TOTAL COST":[`总费用`,`合計費用`],"Remote image not loaded":[`未加载远程图片`,`リモート画像は読み込まれていません`],"Render more content":[`显示更多内容`,`続きを表示`],"Render more":[`显示更多`,`続きを表示`],"Full content copied":[`已复制完整内容`,`全文をコピーしました`],"Copy full content":[`复制完整内容`,`全文をコピー`],"Copy full":[`复制全文`,`全文をコピー`],"Close {0}":[`关闭{0}`,`{0}を閉じる`],"Something went wrong":[`出现错误`,`エラーが発生しました`],"Unknown error":[`未知错误`,`不明なエラー`],"Reload page":[`重新加载页面`,`ページを再読み込み`],"STATUS NOTE":[`状态说明`,`状態`],"404 / AGENT":[`404 / 智能体`,`404 / エージェント`],"404 / SESSION":[`404 / 会话`,`404 / セッション`],"LOAD / SESSION":[`加载 / 会话`,`読み込み / セッション`],"This agent isn't on the roster.":[`此智能体尚未注册。`,`このエージェントは登録されていません。`],"The path you requested is valid in shape, but there is no matching agent in the current registry. It may not be connected yet, or its name may not match what the system recognizes.":[`请求路径格式正确,但没有匹配的智能体。它可能尚未接入,或名称与系统识别的名称不一致。`,`パスの形式は正しいですが、一致するエージェントがありません。未接続か、名前が一致していない可能性があります。`],"Choose one of the available agents to continue.":[`请选择一个可用的智能体继续。`,`利用可能なエージェントを選択してください。`],"Requested Agent":[`请求的智能体`,`指定されたエージェント`],"Requested Path":[`请求的路径`,`指定されたパス`],"Requested Session":[`请求的会话`,`指定されたセッション`],"Unknown Agent":[`未知智能体`,`不明なエージェント`],"This session isn't in the index.":[`索引中没有此会话。`,`このセッションはインデックスにありません。`],"{0} is available, but the session you're looking for does not exist in the current index. The session ID may be incorrect, or the record may never have been part of this dataset.":[`{0} 可用,但当前索引中没有此会话。会话 ID 可能有误,或该记录尚未被收录。`,`{0} は利用できますが、このセッションは現在のインデックスにありません。ID が誤っているか、記録が含まれていない可能性があります。`],"We checked the current path, but nothing matched. The session list on the left is still available.":[`当前路径没有匹配结果。你仍可浏览左侧会话列表。`,`このパスに一致する結果はありません。左側のセッション一覧は引き続き利用できます。`],"We couldn't load this session.":[`无法加载此会话。`,`セッションを読み込めませんでした。`],"The session request failed before we could determine whether the record exists. It may still be available once the connection or server recovers.":[`会话请求失败,暂时无法确认记录是否存在。连接或服务器恢复后可能可用。`,`リクエストに失敗したため、記録の有無を確認できません。接続やサーバーが復旧すると利用できる可能性があります。`],"Retry this request without leaving the current session path.":[`可在当前会话页面直接重试。`,`このセッションのページから再試行できます。`],"Request Error":[`请求错误`,`リクエストエラー`],"Unable to load this session.":[`无法加载此会话。`,`セッションを読み込めませんでした。`],"Select a session from the left to view details":[`从左侧选择一个会话查看详情`,`左側からセッションを選択して詳細を表示`],"Aggregated view across all agents":[`全部智能体的汇总视图`,`すべてのエージェントの集計`],"Session Not Found":[`未找到会话`,`セッションが見つかりません`],"Session Load Failed":[`会话加载失败`,`セッションの読み込みに失敗しました`],"Agent Not Found":[`未找到智能体`,`エージェントが見つかりません`],"Requested /{0}/{1}":[`请求路径 /{0}/{1}`,`指定パス /{0}/{1}`],"Requested /{0}":[`请求路径 /{0}`,`指定パス /{0}`],"Select an agent to browse sessions":[`选择智能体以浏览会话`,`エージェントを選択してセッションを表示`],"Invalid Route":[`无效路径`,`無効なパス`],"just now":[`刚刚`,`たった今`],unknown:[`未知`,`不明`],recorded:[`已记录`,`記録値`],estimated:[`估算`,`推定値`],"{0}m ago":[`{0} 分钟前`,`{0} 分前`],"{0}h ago":[`{0} 小时前`,`{0} 時間前`],"{0}d ago":[`{0} 天前`,`{0} 日前`],Today:[`今天`,`今日`],Yesterday:[`昨天`,`昨日`],"{0} source{1} failed":[`{0} 个数据源失败`,`{0} 個のソースで失敗`],"Last {0}d · {1} → {2}":[`最近 {0} 天 · {1} → {2}`,`過去 {0} 日間 · {1} → {2}`],'Searching for "{0}"':[`正在搜索“{0}”`,`「{0}」を検索中`],"Loading recent sessions":[`正在加载最近会话`,`最近のセッションを読み込み中`],'{0} matches for "{1}"':[`“{1}”有 {0} 个匹配结果`,`「{1}」に {0} 件一致`],"{0} recent sessions":[`{0} 个最近会话`,`最近のセッション {0} 件`],"Full-history publication queued":[`完整历史发布已排队`,`全履歴の反映を待機中`],"Committing full-history publication":[`正在提交完整历史`,`全履歴を反映中`],"Writing full-history search index":[`正在写入完整历史搜索索引`,`全履歴の検索インデックスを書き込み中`],"Preparing full-history publication":[`正在准备完整历史发布`,`全履歴の反映を準備中`],"Finalizing full-history metadata":[`正在完成完整历史元数据`,`全履歴のメタデータを確定中`],"Scanning full session history":[`正在扫描完整会话历史`,`全セッション履歴をスキャン中`]," · {0} history scan queued":[` · {0} 个历史扫描已排队`,` · 履歴スキャン {0} 件が待機中`],"Full-history refresh failed · {0}":[`完整历史刷新失败 · {0}`,`全履歴の更新に失敗 · {0}`],"Session refresh failed · {0}{1}":[`会话刷新失败 · {0}{1}`,`セッションの更新に失敗 · {0}{1}`],"Initializing recent sessions":[`正在初始化最近会话`,`最近のセッションを初期化中`],"Full-history refresh completed with partial data · {0}{1}":[`完整历史刷新完成,部分数据不可用 · {0}{1}`,`全履歴の更新が完了、一部データは利用不可 · {0}{1}`],"Session refresh completed with partial data · {0}{1}":[`会话刷新完成,部分数据不可用 · {0}{1}`,`セッションの更新が完了、一部データは利用不可 · {0}{1}`],"Background search index maintenance paused · {0}":[`后台搜索索引维护已暂停 · {0}`,`バックグラウンドの検索インデックス更新を一時停止 · {0}`],Finalizing:[`正在完成`,`最終処理中`],Publishing:[`正在发布`,`反映中`],"Queued to publish":[`等待发布`,`反映待ち`],Scanning:[`正在扫描`,`スキャン中`],Pending:[`等待中`,`待機中`],"Recent session · {0}":[`最近会话 · {0}`,`最近のセッション · {0}`],"Failed to load configuration. The CLI may be restarting or unavailable.":[`无法加载配置。命令行可能正在重启或不可用。`,`設定を読み込めません。CLI が再起動中か、利用できない可能性があります。`],"Unable to load bookmarks.":[`无法加载书签。`,`ブックマークを読み込めませんでした。`],"Session copied as Markdown.":[`已将会话复制为 Markdown。`,`セッションを Markdown としてコピーしました。`],"Couldn’t copy session as Markdown.":[`无法将会话复制为 Markdown。`,`セッションを Markdown としてコピーできませんでした。`],"Unable to load dashboard.":[`无法加载概览。`,`ダッシュボードを読み込めませんでした。`],"{0} new sessions found; the list refreshed automatically":[`发现 {0} 个新会话,列表已自动刷新`,`新しいセッションを {0} 件検出し、一覧を自動更新しました`],"Live updates disconnected; reconnecting…":[`实时连接已断开,正在重连…`,`ライブ更新が切断されました。再接続中…`],"Unable to load projects.":[`无法加载项目。`,`プロジェクトを読み込めませんでした。`],"Unable to load project.":[`无法加载项目。`,`プロジェクトを読み込めませんでした。`],"Search request failed":[`搜索请求失败`,`検索リクエストに失敗しました`],"Failed to load session data for the selected time window.":[`无法加载所选时间范围的会话数据。`,`指定期間のセッションデータを読み込めませんでした。`],"Session loading failed. Displayed sessions may be incomplete or out of date.":[`会话加载失败。显示的会话可能不完整或已过期。`,`セッションの読み込みに失敗しました。表示中の内容は不完全か古い可能性があります。`],"File deleted.":[`文件已删除。`,`ファイルを削除しました。`],"Moved from {0} to {1}":[`已从 {0} 移动至 {1}`,`{0} から {1} に移動しました`],"Moved from {0}":[`已从 {0} 移动`,`{0} から移動しました`],"File moved.":[`文件已移动。`,`ファイルを移動しました。`],Rejected:[`已拒绝`,`却下`],"{0} questions":[`{0} 个问题`,`{0} 件の質問`],"{0} question{1}":[`{0} 个问题`,`{0} 件の質問`],Command:[`命令`,`コマンド`],Workdir:[`工作目录`,`作業ディレクトリ`],Escalation:[`权限提升`,`権限昇格`],Justification:[`原因`,`理由`],Chars:[`字符`,`文字`],"session #{0} · {1}":[`会话 #{0} · {1}`,`セッション #{0} · {1}`],"(empty step)":[`(空步骤)`,`(空のステップ)`],"web search":[`网页搜索`,`ウェブ検索`],"web open":[`打开网页`,`ウェブページを開く`],"web {0}":[`网页 {0}`,`ウェブ {0}`],Image:[`图片`,`画像`],Detail:[`详情`,`詳細`],Browser:[`浏览器`,`ブラウザー`],"Tool output image {0}":[`工具输出图片 {0}`,`ツール出力画像 {0}`],Tool:[`工具`,`ツール`],"No output captured.":[`未捕获到输出。`,`出力は記録されていません。`],"AGENT ({0})":[`智能体({0})`,`エージェント({0})`],Yes:[`是`,`はい`],No:[`否`,`いいえ`],items:[`项`,`件`],fields:[`个字段`,`フィールド`],Answered:[`已回答`,`回答済み`],Recommended:[`推荐`,`推奨`],Selected:[`已选择`,`選択済み`],Done:[`已完成`,`完了`],"In progress":[`进行中`,`進行中`],"Untitled task":[`未命名任务`,`無題のタスク`],Recipient:[`接收方`,`宛先`],Summary:[`摘要`,`概要`],Delivery:[`投递`,`配信`],Script:[`脚本`,`スクリプト`],Error:[`错误`,`エラー`],"Terminal output":[`终端输出`,`ターミナル出力`],"create task":[`创建任务`,`タスクを作成`],"Task state":[`任务状态`,`タスクの状態`],"update task":[`更新任务`,`タスクを更新`],"list tasks":[`列出任务`,`タスク一覧`],"agent · {0}":[`智能体 · {0}`,`エージェント · {0}`],Model:[`模型`,`モデル`],Mode:[`模式`,`モード`],Background:[`后台`,`バックグラウンド`],"Agent result":[`智能体结果`,`エージェントの結果`],Questions:[`问题`,`質問`],"web fetch":[`获取网页`,`ウェブページを取得`],Results:[`结果`,`結果`],"find tools":[`查找工具`,`ツールを検索`],Matches:[`匹配项`,`一致した項目`],Result:[`结果`,`結果`],"report findings":[`报告发现`,`調査結果を報告`],"structured output":[`结构化输出`,`構造化出力`],"{0} fields":[`{0} 个字段`,`{0} フィールド`],"Submitted fields":[`提交的字段`,`送信したフィールド`],"browser · {0}":[`浏览器 · {0}`,`ブラウザー · {0}`],Tab:[`标签页`,`タブ`],"Browser result":[`浏览器结果`,`ブラウザーの結果`],"send message":[`发送消息`,`メッセージを送信`],"Message details":[`消息详情`,`メッセージの詳細`],"update plan":[`更新计划`,`計画を更新`],"view image":[`查看图片`,`画像を表示`],"{0} · Fast":[`{0} · 快速`,`{0} · 高速`],Effort:[`推理强度`,`推論の強度`],Fork:[`分支`,`フォーク`],"follow up with agent":[`继续智能体任务`,`エージェントの作業を続行`],"message agent":[`向智能体发送消息`,`エージェントにメッセージを送信`],"wait for agents":[`等待智能体`,`エージェントを待機`],"{0}s timeout":[`{0} 秒超时`,`タイムアウト {0} 秒`],"Agent updates":[`智能体更新`,`エージェントの更新`],"list agents":[`列出智能体`,`エージェント一覧`],"Agent tree":[`智能体树`,`エージェントツリー`],"interrupt agent":[`中断智能体`,`エージェントを中断`],"Goal state":[`目标状态`,`目標の状態`],Request:[`请求`,`リクエスト`],Lines:[`行数`,`行数`],Offset:[`偏移`,`オフセット`],Limit:[`上限`,`上限`],Format:[`格式`,`形式`],Pages:[`页数`,`ページ数`],"PDF preview unavailable.":[`PDF 预览不可用。`,`PDF プレビューを利用できません。`],"Image preview unavailable.":[`图片预览不可用。`,`画像プレビューを利用できません。`],"File is empty.":[`文件为空。`,`ファイルは空です。`],"Exit code":[`退出码`,`終了コード`],"Timed out":[`已超时`,`タイムアウト`],Truncated:[`已截断`,`省略あり`],"Full output":[`完整输出`,`完全な出力`],Status:[`状态`,`状態`],"Content type":[`内容类型`,`コンテンツタイプ`],Size:[`大小`,`サイズ`],Type:[`类型`,`種類`],"{0} bytes":[`{0} 字节`,`{0} バイト`],"Cross-host redirect from {0} to {1}.":[`从 {0} 跨主机重定向至 {1}。`,`{0} から {1} へのホスト間リダイレクト。`],"the original host":[`原始主机`,`元のホスト`],"Domain not allowed: {0}":[`域名不被允许:{0}`,`許可されていないドメイン:{0}`],"Full content saved to {0}":[`完整内容已保存至 {0}`,`全文を {0} に保存しました`],"Page content":[`网页内容`,`ページの内容`],"Status:":[`状态:`,`状態:`],"todo create":[`创建待办`,`TODO を作成`],"todo update":[`更新待办`,`TODO を更新`],Subject:[`主题`,`件名`],Change:[`变更`,`変更`],Line:[`行`,`行`],"subagent result":[`子智能体结果`,`サブエージェントの結果`],"analyze image":[`分析图片`,`画像を分析`],"Image {0}":[`图片 {0}`,`画像 {0}`],Question:[`问题`,`質問`],"(empty todo)":[`(空待办)`,`(空の TODO)`],"No todos captured.":[`未捕获到待办事项。`,`TODO は記録されていません。`],"(Bash completed with no output)":[`(Bash 已完成,无输出)`,`(Bash は出力なしで完了しました)`],Additions:[`新增`,`追加`],Deletions:[`删除`,`削除`],"plan mode":[`计划模式`,`計画モード`],"plan approved":[`计划已批准`,`計画を承認済み`],"{0} total sessions across {1} agents":[`{1} 个智能体,共 {0} 个会话`,`{1} エージェント、合計 {0} セッション`],"{0} projects across {1} sessions":[`{0} 个项目,共 {1} 个会话`,`{0} プロジェクト、合計 {1} セッション`],"{0} sessions · {1} agents":[`{0} 个会话 · {1} 个智能体`,`{0} セッション · {1} エージェント`],"{0} sessions":[`{0} 个会话`,`{0} セッション`],"Updated {0}":[`更新于 {0}`,`更新 {0}`],"Showing {0} of {1}":[`显示 {0} / {1}`,`{1} 件中 {0} 件を表示`],"Page {0} / {1} · {2} shown":[`第 {0} / {1} 页 · 显示 {2} 项`,`{0} / {1} ページ · {2} 件を表示`],"The application route failed to render.":[`应用页面渲染失败。`,`アプリのページを表示できませんでした。`],"7d":[`7 天`,`7 日`],"30d":[`30 天`,`30 日`],"90d":[`90 天`,`90 日`],lines:[`行`,`行`],chars:[`字符`,`文字`],characters:[`字符`,`文字`],bugfix:[`修复缺陷`,`バグ修正`],refactoring:[`重构`,`リファクタリング`],"feature-dev":[`功能开发`,`機能開発`],testing:[`测试`,`テスト`],docs:[`文档`,`ドキュメント`],"git-ops":[`Git 操作`,`Git 操作`],"build-deploy":[`构建部署`,`ビルド・デプロイ`],exploration:[`探索`,`調査`],planning:[`规划`,`計画`],"Page {0} · {1} shown":[`第 {0} 页 · 显示 {1} 项`,`{0} ページ · {1} 件を表示`],"{0} projects · {1} agents in scope":[`{0} 个项目 · {1} 个智能体在范围内`,`対象:{0} プロジェクト · {1} エージェント`]};function pe(e,t=[],n=J()){let r=Object.hasOwn($,e)?$[e]:void 0;return(n===`en`||!r?e:r[n===`zh-CN`?0:1]).replace(/\{(\d+)\}/g,(e,n)=>t[Number(n)]==null?e:String(t[Number(n)]))}export{n as A,y as C,o as D,r as E,i as O,g as S,a as T,w as _,de as a,re as b,_ as c,h as d,ae as f,b as g,x as h,J as i,c as j,l as k,I as l,ne as m,fe as n,Q as o,E as p,q as r,L as s,pe as t,M as u,N as v,s as w,ie as x,se as y};