tokmon 0.28.8 → 0.29.1

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 (37) hide show
  1. package/README.md +9 -5
  2. package/dist/{bootstrap-ink-PYYVQAYP.js → bootstrap-ink-MPWICEIJ.js} +136 -58
  3. package/dist/{chunk-BZFDTIFV.js → chunk-3D6TO5TS.js} +2 -2
  4. package/dist/{chunk-6E2OJCIQ.js → chunk-5Q5HUOP4.js} +11 -4
  5. package/dist/{chunk-RY24UHMK.js → chunk-AUUBRLBG.js} +2 -2
  6. package/dist/{chunk-MIXBF6QU.js → chunk-BLUQGJKM.js} +2 -2
  7. package/dist/{chunk-UON47FYF.js → chunk-BYLWQ46U.js} +19 -2
  8. package/dist/{chunk-O7ORALKA.js → chunk-G2A3DVPU.js} +80 -1
  9. package/dist/{chunk-DESEB73E.js → chunk-WPZTPMBX.js} +1 -1
  10. package/dist/{chunk-WHOIUSJM.js → chunk-YWDMEU3L.js} +1 -1
  11. package/dist/{cli-command-XPFM6LUP.js → cli-command-WL2K5WWR.js} +145 -13
  12. package/dist/cli.js +6 -6
  13. package/dist/{config-JEDXAKPZ.js → config-B7QJQTU2.js} +7 -1
  14. package/dist/{daemon-KFMXYG7V.js → daemon-A3WGDRFT.js} +6 -6
  15. package/dist/daemon-handle-4E7RSSDB.js +11 -0
  16. package/dist/server-P6BRXBZ5.js +12 -0
  17. package/dist/web/assets/{Area-BqyvRn2x.js → Area-CEpf7_6d.js} +1 -1
  18. package/dist/web/assets/{analytics-B6QwqU9g.js → analytics-CdjcYtmK.js} +2 -2
  19. package/dist/web/assets/{breakdown-DYnVKScr.js → breakdown-DM6g0evr.js} +1 -1
  20. package/dist/web/assets/{button-CnT5g-Jl.js → button-Cu4co7ZR.js} +1 -1
  21. package/dist/web/assets/{chart-Duz9D-nH.js → chart-YlnVH1If.js} +1 -1
  22. package/dist/web/assets/{explore-P2EolJrt.js → explore-kLpZWR-_.js} +1 -1
  23. package/dist/web/assets/index-Dd37pBKy.js +83 -0
  24. package/dist/web/assets/index-PpTp4nyP.css +1 -0
  25. package/dist/web/assets/{models-8B4FBxr7.js → models-XKfoWTDv.js} +2 -2
  26. package/dist/web/assets/{overview-DXA_HAsw.js → overview-DC-WVKZ6.js} +2 -2
  27. package/dist/web/assets/{panel-gxLFBb8y.js → panel-B_U9oe1x.js} +1 -1
  28. package/dist/web/assets/settings-sheet-B7BuJ3j8.js +1 -0
  29. package/dist/web/assets/{share-sheet-CXdyA1ga.js → share-sheet-BaEXe1m9.js} +1 -1
  30. package/dist/web/assets/{timeline-CzC85trW.js → timeline-ar9mdhcb.js} +1 -1
  31. package/dist/web/index.html +2 -2
  32. package/package.json +1 -1
  33. package/dist/daemon-handle-6RYUJPC2.js +0 -11
  34. package/dist/server-LNFK5MRX.js +0 -12
  35. package/dist/web/assets/index-9hkGpa7j.js +0 -83
  36. package/dist/web/assets/index-ZmOS8p9O.css +0 -1
  37. package/dist/web/assets/settings-sheet-CJJl-3Gw.js +0 -1
@@ -1 +0,0 @@
1
- @font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(./jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(./jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(./jetbrains-mono-latin-700-normal-BYuf6tUa.woff2) format("woff2"),url(./jetbrains-mono-latin-700-normal-D3wTyLJW.woff) format("woff")}/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@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-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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-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}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--radius-sm:.25rem;--radius-md:.375rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) 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:"Departure Mono", "JetBrains Mono", ui-monospace, monospace;--color-bg-0:#0a0a0a;--color-bg-1:#101011;--color-bg-2:#161617;--color-bg-3:#1d1d1e;--color-line:#262627;--color-line-2:#343435;--color-line-faint:#1a1a1b;--color-fg:#d4d6d6;--color-fg-dim:#8d9090;--color-fg-faint:#585b5b;--color-fg-bright:#f3f5f5;--color-cost:#d9c074;--color-positive:#6caa71;--color-ok:#79be7e;--color-warning:#b45648;--color-critical:#e5584b;--color-unknown:#8d9090;--color-prompt:#79be7e;--color-accent:#79be7e;--color-card:#161617;--color-card-hover:#1d1d1e;--color-divider:#262627;--color-track:#343435;--color-accent-tint:#18251a;--color-accent-on:#0a0a0a;--color-focus-ring:#79be7e}}@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%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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{color-scheme:dark}html,body,#root{height:100%}body{background-color:var(--color-bg-0);background-image:radial-gradient(var(--color-line-faint) .5px,transparent .5px);color:var(--color-fg);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;font-variant-ligatures:none;touch-action:manipulation;-webkit-tap-highlight-color:#79be7e33;background-size:24px 24px;background-attachment:fixed;margin:0;font-size:13px;line-height:1.5;overflow-x:hidden}@supports (color:color-mix(in lab,red,red)){body{-webkit-tap-highlight-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.tnum{font-variant-numeric:tabular-nums}::selection{background:#79be7e59}@supports (color:color-mix(in lab,red,red)){::selection{background:color-mix(in oklab,var(--color-accent) 35%,transparent)}}::selection{color:var(--color-fg-bright)}*{scrollbar-width:thin;scrollbar-color:var(--color-line-2) transparent}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--color-line-2);border-radius:6px}::-webkit-scrollbar-track{background:0 0}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.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}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.-top-1{top:calc(var(--spacing) * -1)}.-top-\[7px\]{top:-7px}.-top-\[11px\]{top:-11px}.top-0{top:0}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[100\]{z-index:100}.col-span-3{grid-column:span 3/span 3}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-6{margin-block:calc(var(--spacing) * 6)}.my-8{margin-block:calc(var(--spacing) * 8)}.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-6{margin-top:calc(var(--spacing) * 6)}.mt-auto{margin-top:auto}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-auto{margin-right:auto}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.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-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-\[11px\]{width:11px;height:11px}.size-full{width:100%;height:100%}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-\[118px\]{height:118px}.h-\[clamp\(320px\,42vh\,560px\)\]{height:clamp(320px,42vh,560px)}.h-full{height:100%}.h-px{height:1px}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[78vh\]{max-height:78vh}.max-h-\[88vh\]{max-height:88vh}.max-h-\[calc\(100vh-240px\)\]{max-height:calc(100vh - 240px)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-64{min-height:calc(var(--spacing) * 64)}.min-h-\[50vh\]{min-height:50vh}.min-h-\[132px\]{min-height:132px}.min-h-screen{min-height:100vh}.w-5{width:calc(var(--spacing) * 5)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-44{width:calc(var(--spacing) * 44)}.w-64{width:calc(var(--spacing) * 64)}.w-\[300px\]{width:300px}.w-full{width:100%}.max-w-\[460px\]{max-width:460px}.max-w-\[720px\]{max-width:720px}.max-w-\[900px\]{max-width:900px}.max-w-\[1600px\]{max-width:1600px}.max-w-\[calc\(100vw-2\.5rem\)\]{max-width:calc(100vw - 2.5rem)}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-44{min-width:calc(var(--spacing) * 44)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-y-20{--tw-translate-y:calc(var(--spacing) * -20);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[340px_1fr\]{grid-template-columns:340px 1fr}.grid-cols-\[minmax\(0\,1fr\)_76px_78px\]{grid-template-columns:minmax(0,1fr) 76px 78px}.grid-cols-\[repeat\(auto-fit\,minmax\(150px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-center{align-content:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.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-7{gap:calc(var(--spacing) * 7)}.gap-9{gap:calc(var(--spacing) * 9)}.gap-\[3px\]{gap:3px}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-2\.5{row-gap:calc(var(--spacing) * 2.5)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.gap-y-5{row-gap:calc(var(--spacing) * 5)}.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}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.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-accent{border-color:var(--color-accent)}.border-accent\/50{border-color:#79be7e80}@supports (color:color-mix(in lab,red,red)){.border-accent\/50{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.border-accent\/60{border-color:#79be7e99}@supports (color:color-mix(in lab,red,red)){.border-accent\/60{border-color:color-mix(in oklab,var(--color-accent) 60%,transparent)}}.border-critical{border-color:var(--color-critical)}.border-critical\/50{border-color:#e5584b80}@supports (color:color-mix(in lab,red,red)){.border-critical\/50{border-color:color-mix(in oklab,var(--color-critical) 50%,transparent)}}.border-critical\/60{border-color:#e5584b99}@supports (color:color-mix(in lab,red,red)){.border-critical\/60{border-color:color-mix(in oklab,var(--color-critical) 60%,transparent)}}.border-line{border-color:var(--color-line)}.border-line-2{border-color:var(--color-line-2)}.border-line-faint{border-color:var(--color-line-faint)}.border-transparent{border-color:#0000}.bg-accent\/10{background-color:#79be7e1a}@supports (color:color-mix(in lab,red,red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.bg-bg-0{background-color:var(--color-bg-0)}.bg-bg-0\/35{background-color:#0a0a0a59}@supports (color:color-mix(in lab,red,red)){.bg-bg-0\/35{background-color:color-mix(in oklab,var(--color-bg-0) 35%,transparent)}}.bg-bg-0\/40{background-color:#0a0a0a66}@supports (color:color-mix(in lab,red,red)){.bg-bg-0\/40{background-color:color-mix(in oklab,var(--color-bg-0) 40%,transparent)}}.bg-bg-0\/60{background-color:#0a0a0a99}@supports (color:color-mix(in lab,red,red)){.bg-bg-0\/60{background-color:color-mix(in oklab,var(--color-bg-0) 60%,transparent)}}.bg-bg-0\/70{background-color:#0a0a0ab3}@supports (color:color-mix(in lab,red,red)){.bg-bg-0\/70{background-color:color-mix(in oklab,var(--color-bg-0) 70%,transparent)}}.bg-bg-0\/80{background-color:#0a0a0acc}@supports (color:color-mix(in lab,red,red)){.bg-bg-0\/80{background-color:color-mix(in oklab,var(--color-bg-0) 80%,transparent)}}.bg-bg-1{background-color:var(--color-bg-1)}.bg-bg-1\/50{background-color:#10101180}@supports (color:color-mix(in lab,red,red)){.bg-bg-1\/50{background-color:color-mix(in oklab,var(--color-bg-1) 50%,transparent)}}.bg-bg-1\/80{background-color:#101011cc}@supports (color:color-mix(in lab,red,red)){.bg-bg-1\/80{background-color:color-mix(in oklab,var(--color-bg-1) 80%,transparent)}}.bg-bg-2{background-color:var(--color-bg-2)}.bg-bg-2\/50{background-color:#16161780}@supports (color:color-mix(in lab,red,red)){.bg-bg-2\/50{background-color:color-mix(in oklab,var(--color-bg-2) 50%,transparent)}}.bg-bg-2\/60{background-color:#16161799}@supports (color:color-mix(in lab,red,red)){.bg-bg-2\/60{background-color:color-mix(in oklab,var(--color-bg-2) 60%,transparent)}}.bg-bg-2\/95{background-color:#161617f2}@supports (color:color-mix(in lab,red,red)){.bg-bg-2\/95{background-color:color-mix(in oklab,var(--color-bg-2) 95%,transparent)}}.bg-bg-3{background-color:var(--color-bg-3)}.bg-critical\/10{background-color:#e5584b1a}@supports (color:color-mix(in lab,red,red)){.bg-critical\/10{background-color:color-mix(in oklab,var(--color-critical) 10%,transparent)}}.bg-line{background-color:var(--color-line)}.bg-transparent{background-color:#0000}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-8{padding:calc(var(--spacing) * 8)}.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-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-9{padding-inline:calc(var(--spacing) * 9)}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-9{padding-top:calc(var(--spacing) * 9)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[46px\]{font-size:46px}.leading-\[0\.98\]{--tw-leading:.98;line-height:.98}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-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-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-accent{color:var(--color-accent)}.text-cost{color:var(--color-cost)}.text-cost\/70{color:#d9c074b3}@supports (color:color-mix(in lab,red,red)){.text-cost\/70{color:color-mix(in oklab,var(--color-cost) 70%,transparent)}}.text-cost\/90{color:#d9c074e6}@supports (color:color-mix(in lab,red,red)){.text-cost\/90{color:color-mix(in oklab,var(--color-cost) 90%,transparent)}}.text-critical{color:var(--color-critical)}.text-fg{color:var(--color-fg)}.text-fg-bright{color:var(--color-fg-bright)}.text-fg-dim{color:var(--color-fg-dim)}.text-fg-faint{color:var(--color-fg-faint)}.text-line-2{color:var(--color-line-2)}.text-ok{color:var(--color-ok)}.text-positive{color:var(--color-positive)}.text-positive\/80{color:#6caa71cc}@supports (color:color-mix(in lab,red,red)){.text-positive\/80{color:color-mix(in oklab,var(--color-positive) 80%,transparent)}}.text-prompt{color:var(--color-prompt)}.text-warning{color:var(--color-warning)}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-100{opacity:1}.shadow-\[0_18px_60px_rgba\(0\,0\,0\,0\.35\)\]{--tw-shadow:0 18px 60px var(--tw-shadow-color,#00000059);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-1px_0_var\(--color-line\)\]{--tw-shadow:inset 0 -1px 0 var(--tw-shadow-color,var(--color-line));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_1px_0_var\(--color-line\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,var(--color-line));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px 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)}.ring,.ring-1{--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-fg-bright{--tw-ring-color:var(--color-fg-bright)}.blur-sm{--tw-blur:blur(var(--blur-sm));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-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-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;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}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-fg-faint::placeholder{color:var(--color-fg-faint)}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.focus-within\:border-line-2:focus-within{border-color:var(--color-line-2)}.focus-within\:ring-1:focus-within{--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)}.focus-within\:ring-accent:focus-within{--tw-ring-color:var(--color-accent)}@media(hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:scale-\[1\.18\]:hover{scale:1.18}.hover\:border-accent\/60:hover{border-color:#79be7e99}@supports (color:color-mix(in lab,red,red)){.hover\:border-accent\/60:hover{border-color:color-mix(in oklab,var(--color-accent) 60%,transparent)}}.hover\:border-line:hover{border-color:var(--color-line)}.hover\:border-line-2:hover{border-color:var(--color-line-2)}.hover\:bg-bg-2:hover{background-color:var(--color-bg-2)}.hover\:bg-bg-2\/40:hover{background-color:#16161766}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bg-2\/40:hover{background-color:color-mix(in oklab,var(--color-bg-2) 40%,transparent)}}.hover\:bg-bg-2\/60:hover{background-color:#16161799}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bg-2\/60:hover{background-color:color-mix(in oklab,var(--color-bg-2) 60%,transparent)}}.hover\:bg-bg-3:hover{background-color:var(--color-bg-3)}.hover\:bg-critical\/15:hover{background-color:#e5584b26}@supports (color:color-mix(in lab,red,red)){.hover\:bg-critical\/15:hover{background-color:color-mix(in oklab,var(--color-critical) 15%,transparent)}}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-critical:hover{color:var(--color-critical)}.hover\:text-fg:hover{color:var(--color-fg)}.hover\:text-fg-dim:hover{color:var(--color-fg-dim)}.hover\:ring-1:hover{--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)}.hover\:ring-accent:hover{--tw-ring-color:var(--color-accent)}.hover\:blur-\[2px\]:hover{--tw-blur:blur(2px);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,)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:translate-y-0:focus-visible{--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-1:focus-visible{--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)}.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-accent:focus-visible{--tw-ring-color:var(--color-accent)}.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\.97\]:active{scale:.97}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}.disabled\:hover\:text-fg-faint:disabled:hover{color:var(--color-fg-faint)}}@media(prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:transition-none{transition-property:none}}@media not all and (min-width:40rem){.max-sm\:max-w-\[7rem\]{max-width:7rem}.max-sm\:p-2\.5{padding:calc(var(--spacing) * 2.5)}.max-sm\:py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.max-sm\:py-2{padding-block:calc(var(--spacing) * 2)}}@media(min-width:40rem){.sm\:mx-0{margin-inline:0}.sm\:inline{display:inline}.sm\:table-cell{display:table-cell}.sm\:w-32{width:calc(var(--spacing) * 32)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-\[repeat\(auto-fit\,minmax\(min\(340px\,100\%\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:overflow-visible{overflow:visible}.sm\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.sm\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.sm\:px-0{padding-inline:0}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:pt-0{padding-top:0}.sm\:pb-0{padding-bottom:0}.sm\:pl-5{padding-left:calc(var(--spacing) * 5)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:ml-auto{margin-left:auto}.md\:block{display:block}.md\:w-auto{width:auto}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[minmax\(0\,1fr\)_210px\]{grid-template-columns:minmax(0,1fr) 210px}.md\:items-start{align-items:flex-start}.md\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.md\:pl-6{padding-left:calc(var(--spacing) * 6)}}@media(min-width:64rem){.lg\:block{display:block}.lg\:flex{display:flex}}@media(min-width:96rem){.\32xl\:max-w-\[1920px\]{max-width:1920px}}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-search-cancel-button\]\:appearance-none::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.font-display{font-family:var(--font-display);letter-spacing:.04em}@keyframes tok-blink{0%,49%{opacity:1}50%,to{opacity:0}}.cursor-blink{animation:1.1s step-end infinite tok-blink}@keyframes tok-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.rise{animation:.34s cubic-bezier(.2,.7,.2,1) both tok-rise}@keyframes tok-flash{0%{background-color:color-mix(in oklab,var(--color-accent) 26%,transparent)}to{background-color:#0000}}.flash{border-radius:3px;animation:.6s ease-out tok-flash}}@font-face{font-family:Departure Mono;src:url(./DepartureMono-Regular-2BZob_Zz.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}html.light,.light{color-scheme:light;--color-bg-0:#f4f5f5;--color-bg-1:#fff;--color-bg-2:#eceeee;--color-bg-3:#e1e4e4;--color-line:#d4d9d9;--color-line-2:#bcc2c2;--color-line-faint:#e7eaea;--color-fg:#2b2e2e;--color-fg-dim:#5a6060;--color-fg-faint:#979d9d;--color-fg-bright:#0d1010;--color-cost:#9a7b1c;--color-positive:#2f8f57;--color-ok:#2f8f57;--color-warning:#b0403a;--color-critical:#b0403a;--color-unknown:#5a6060;--color-prompt:#2f8f57;--color-accent:#2f8f57;--color-card:#eceeee;--color-card-hover:#e1e4e4;--color-divider:#d4d9d9;--color-track:#bcc2c2;--color-accent-tint:#e0eee5;--color-accent-on:#f4f5f5;--color-focus-ring:#2f8f57}.dark{color-scheme:dark;--color-bg-0:#0a0a0a;--color-bg-1:#101011;--color-bg-2:#161617;--color-bg-3:#1d1d1e;--color-line:#262627;--color-line-2:#343435;--color-line-faint:#1a1a1b;--color-fg:#d4d6d6;--color-fg-dim:#8d9090;--color-fg-faint:#585b5b;--color-fg-bright:#f3f5f5;--color-cost:#d9c074;--color-positive:#6caa71;--color-ok:#79be7e;--color-warning:#b45648;--color-critical:#e5584b;--color-unknown:#8d9090;--color-prompt:#79be7e;--color-accent:#79be7e;--color-card:#161617;--color-card-hover:#1d1d1e;--color-divider:#262627;--color-track:#343435;--color-accent-tint:#18251a;--color-accent-on:#0a0a0a;--color-focus-ring:#79be7e}html[data-theme-preset=phosphor] body{background-image:linear-gradient(#79be7e0a 1px,#0000 1px),linear-gradient(90deg,#79be7e0a 1px,#0000 1px)}@supports (color:color-mix(in lab,red,red)){html[data-theme-preset=phosphor] body{background-image:linear-gradient(color-mix(in oklab,var(--color-accent) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in oklab,var(--color-accent) 4%,transparent) 1px,transparent 1px)}}html[data-theme-preset=phosphor] body{background-size:24px 24px}[data-theme-preset=phosphor]{--color-p-claude:#79be7e}@supports (color:color-mix(in lab,red,red)){[data-theme-preset=phosphor]{--color-p-claude:color-mix(in oklab, var(--color-accent) 100%, var(--color-fg-dim))}}[data-theme-preset=phosphor]{--color-p-codex:#7cb881}@supports (color:color-mix(in lab,red,red)){[data-theme-preset=phosphor]{--color-p-codex:color-mix(in oklab, var(--color-accent) 86%, var(--color-fg-dim))}}[data-theme-preset=phosphor]{--color-p-cursor:#7fb183}@supports (color:color-mix(in lab,red,red)){[data-theme-preset=phosphor]{--color-p-cursor:color-mix(in oklab, var(--color-accent) 72%, var(--color-fg-dim))}}[data-theme-preset=phosphor]{--color-p-copilot:#81ab86}@supports (color:color-mix(in lab,red,red)){[data-theme-preset=phosphor]{--color-p-copilot:color-mix(in oklab, var(--color-accent) 58%, var(--color-fg-dim))}}[data-theme-preset=phosphor]{--color-p-pi:#83a687}@supports (color:color-mix(in lab,red,red)){[data-theme-preset=phosphor]{--color-p-pi:color-mix(in oklab, var(--color-accent) 48%, var(--color-fg-dim))}}[data-theme-preset=phosphor]{--color-p-opencode:#7db482}@supports (color:color-mix(in lab,red,red)){[data-theme-preset=phosphor]{--color-p-opencode:color-mix(in oklab, var(--color-accent) 78%, var(--color-fg-dim))}}[data-theme-preset=phosphor]{--color-p-antigravity:#80ad84}@supports (color:color-mix(in lab,red,red)){[data-theme-preset=phosphor]{--color-p-antigravity:color-mix(in oklab, var(--color-accent) 64%, var(--color-fg-dim))}}[data-theme-preset=phosphor]{--color-p-gemini:#7bba7f}@supports (color:color-mix(in lab,red,red)){[data-theme-preset=phosphor]{--color-p-gemini:color-mix(in oklab, var(--color-accent) 92%, var(--color-fg-dim))}}@media(prefers-reduced-motion:reduce){.rise,.flash,.cursor-blink,.animate-ping,.dialog-pop,.dialog-fade{animation:none!important}}@keyframes tok-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.dialog-pop{animation:.18s cubic-bezier(.2,.7,.2,1) both tok-pop}@keyframes tok-fade{0%{opacity:0}to{opacity:1}}.dialog-fade{animation:.18s ease-out both tok-fade}::view-transition-old(root){animation:.16s ease-out both tok-vt-out}::view-transition-new(root){animation:.22s cubic-bezier(.2,.7,.2,1) both tok-vt-in}@keyframes tok-vt-out{to{opacity:0}}@keyframes tok-vt-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}}.usage-row{content-visibility:auto;contain-intrinsic-size:auto 36px}@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-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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-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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}
@@ -1 +0,0 @@
1
- import{O as te,Q as ge,U as W,V as xe,j as e,r as x,F as g,n as C,W as X,Y as ve,Z as je,$ as ye,a0 as O,a1 as B,a2 as ke,a3 as Ne,e as we,P as Ce,a4 as ae,a5 as ne,a6 as le,a7 as Se,a8 as Ie,a9 as ie,X as me,aa as De,ab as Ae,ac as $e,ad as Q,ae as oe,af as ze,ag as G,ah as ce,ai as de,aj as pe,ak as be,al as H,am as Pe,an as V,ao as Z,ap as Ee,aq as Re,u as Te,ar as Le,as as Me,at as Fe,au as Oe,av as Be}from"./index-9hkGpa7j.js";import{B as M,D as he}from"./button-CnT5g-Jl.js";function ue(t,n={}){return{mode:"add",editingId:null,providerId:n.providerId??te[0],name:n.name??"",homeDir:n.homeDir??"~",color:n.color??ge(t.accounts)}}function _e(t){return{mode:"edit",editingId:t.id,providerId:t.providerId,name:t.name,homeDir:t.homeDir,color:t.color||W[t.providerId].color}}function Ue(t,n){const a=t.mode==="edit"?n.filter(s=>s.id!==t.editingId):n;return t.mode==="edit"?t.editingId??"":xe(t.name.trim()||"account",a)}function Ge(t,n){const a=t.name.trim(),s=t.homeDir.trim()||"~";return a?t.mode==="add"?{ok:!0,account:{id:xe(a,n),providerId:t.providerId,name:a,homeDir:s,color:t.color},mode:"add",editingId:null}:{ok:!0,account:{id:t.editingId,providerId:t.providerId,name:a,homeDir:s,color:t.color},mode:"edit",editingId:t.editingId}:{ok:!1,error:"Name required"}}function E({title:t,right:n,children:a}){return e.jsxs("section",{className:"mb-6 last:mb-0",children:[e.jsxs("div",{className:"mb-2.5 flex items-center gap-2 border-b border-line pb-1.5",children:[e.jsx("h3",{className:"font-display text-[11px] uppercase tracking-wider text-fg-dim",children:t}),n&&e.jsx("div",{className:"ml-auto",children:n})]}),a]})}function k({label:t,hint:n,children:a}){return e.jsxs("div",{className:"flex items-center gap-3 py-1.5",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm text-fg",children:t}),n&&e.jsx("div",{className:"text-[11px] text-fg-faint",children:n})]}),e.jsx("div",{className:"shrink-0",children:a})]})}function q({label:t,hint:n,children:a}){return e.jsxs("div",{children:[e.jsx("div",{className:"mb-1.5 text-xs font-medium text-fg",children:t}),a,n&&e.jsx("div",{className:"mt-1 text-[11px] text-fg-faint",children:n})]})}function ee({label:t,value:n,min:a,unit:s,onChange:u}){const r=l=>u(Math.max(a,Math.round(l))),[b,h]=x.useState(null),v=()=>{if(b===null)return;const l=Number(b);r(Number.isFinite(l)&&b.trim()!==""?l:a),h(null)};return e.jsxs("div",{className:"flex items-center overflow-hidden rounded border border-line",children:[e.jsx("button",{type:"button","aria-label":"decrease",onClick:()=>r(n-1),className:`px-2 py-1 text-xs text-fg-dim transition hover:bg-bg-3 hover:text-fg ${g}`,children:"−"}),e.jsx("input",{type:"number",name:t.toLowerCase().replace(/\s+/g,"-"),autoComplete:"off",inputMode:"numeric",min:a,value:b??n,onChange:l=>{const o=l.target.value;h(o);const d=Number(o);o.trim()!==""&&Number.isFinite(d)&&d>=a&&r(d)},onBlur:v,"aria-label":`${t} (${s})`,className:`tnum w-12 border-x border-line bg-bg-2 px-1 py-1 text-center text-xs text-fg ${g} [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`}),e.jsx("span",{className:"px-1.5 text-[10px] text-fg-faint",children:s}),e.jsx("button",{type:"button","aria-label":"increase",onClick:()=>r(n+1),className:`px-2 py-1 text-xs text-fg-dim transition hover:bg-bg-3 hover:text-fg ${g}`,children:"+"})]})}function P({label:t,onClick:n,disabled:a,danger:s,children:u}){return e.jsx("button",{type:"button","aria-label":t,title:t,disabled:a,onClick:n,className:`rounded p-1 text-fg-faint transition disabled:opacity-30 ${g} ${s?"hover:bg-critical/15 hover:text-critical":"hover:bg-bg-3 hover:text-fg"} disabled:hover:bg-transparent disabled:hover:text-fg-faint`,children:u})}function He({draft:t,patch:n}){return e.jsxs(E,{title:"General",children:[e.jsx(k,{label:"Refresh interval",hint:"dashboard poll, seconds",children:e.jsx(ee,{label:"Refresh interval",value:t.interval,min:1,unit:"s",onChange:a=>n(s=>({...s,interval:a}))})}),e.jsx(k,{label:"Billing poll",hint:"billing refresh, minutes",children:e.jsx(ee,{label:"Billing poll",value:t.billingInterval,min:1,unit:"m",onChange:a=>n(s=>({...s,billingInterval:a}))})}),e.jsx(k,{label:"Clear screen",hint:"redraw on each refresh",children:e.jsx(C,{size:"xs",ariaLabel:"clear screen",options:[{value:"on",label:"on"},{value:"off",label:"off"}],value:t.clearScreen?"on":"off",onChange:a=>n(s=>({...s,clearScreen:a==="on"}))})}),e.jsx(k,{label:"Timezone",hint:"IANA name · empty = System",children:e.jsx(Ve,{value:t.timezone,onChange:a=>n(s=>({...s,timezone:a}))})}),e.jsx(k,{label:"Dashboard",hint:"grid shows all · single cycles",children:e.jsx(C,{size:"xs",ariaLabel:"dashboard layout",options:[{value:"grid",label:"grid"},{value:"single",label:"single"}],value:t.dashboardLayout,onChange:a=>n(s=>({...s,dashboardLayout:a}))})}),e.jsx(k,{label:"Default focus",hint:"on open",children:e.jsx(C,{size:"xs",ariaLabel:"default focus",options:[{value:"all",label:"all"},{value:"last",label:"last"}],value:t.defaultFocus,onChange:a=>n(s=>({...s,defaultFocus:a}))})}),e.jsx(k,{label:"ASCII mode",hint:"glyph fallback",children:e.jsx(C,{size:"xs",ariaLabel:"ascii mode",options:[{value:"auto",label:"auto"},{value:"on",label:"on"},{value:"off",label:"off"}],value:t.ascii,onChange:a=>n(s=>({...s,ascii:a}))})}),e.jsx(k,{label:"Network access",hint:"applies on daemon restart",children:e.jsx(C,{size:"xs",ariaLabel:"network access",options:[{value:"local",label:"local only"},{value:"network",label:"LAN"}],value:t.allowNetworkAccess?"network":"local",onChange:a=>n(s=>({...s,allowNetworkAccess:a==="network"}))})}),t.allowNetworkAccess&&e.jsxs(e.Fragment,{children:[e.jsx(k,{label:"Allowed hosts",hint:"exact DNS names · comma separated",children:e.jsx(qe,{value:t.allowedHosts,onChange:a=>n(s=>({...s,allowedHosts:a}))})}),e.jsx("p",{className:"rounded border border-critical/50 bg-critical/10 px-3 py-2 text-xs text-critical",role:"alert",children:"Unsafe: after the daemon restarts, usage data and settings will be reachable from your local network."})]}),e.jsx(k,{label:"Reset times",hint:"quota and peak changes",children:e.jsx(C,{size:"xs",ariaLabel:"reset time display",options:[{value:"relative",label:"remaining"},{value:"absolute",label:"date/time"}],value:t.resetDisplay,onChange:a=>n(s=>({...s,resetDisplay:a}))})})]})}function qe({value:t,onChange:n}){const[a,s]=x.useState(t.join(", ")),[u,r]=x.useState(!1),b=x.useId(),h=x.useRef(null),v=t.join(", ");x.useEffect(()=>{if(h.current===v){h.current=null;return}s(v),r(!1)},[v]);const l=o=>{const d=X(o);s(d);const f=d.split(",").map(p=>p.trim()).filter(Boolean).map(je),i=f.some(p=>p===null);if(r(i),!i){const p=[...new Set(f)];h.current=p.join(", "),n(p)}};return e.jsxs("div",{className:"flex flex-col items-end gap-0.5",children:[e.jsx("input",{type:"text",name:"allowed-hosts",value:a,placeholder:"tokmon.example.com","aria-label":"Allowed hosts","aria-describedby":u?b:void 0,autoComplete:"off",spellCheck:!1,"aria-invalid":u,onChange:o=>l(o.target.value),className:`w-64 rounded border bg-bg-2 px-2 py-1 text-xs text-fg ${g} ${u?"border-critical":"border-line"}`}),u&&e.jsx("span",{id:b,className:"text-[10px] text-critical",role:"alert",children:"Use exact hostnames without a scheme, port, path, or wildcard."})]})}function Ve({value:t,onChange:n}){const[a,s]=x.useState(t??""),[u,r]=x.useState(!1),b=x.useId();x.useEffect(()=>{s(t??""),r(!1)},[t]);const h=v=>{const l=X(v);s(l);const o=l.trim();if(!o){r(!1),n(null);return}ve(o)?(r(!1),n(o)):r(!0)};return e.jsxs("div",{className:"flex flex-col items-end gap-0.5",children:[e.jsx("input",{type:"text",name:"timezone",value:a,placeholder:"e.g. Europe/Bucharest…","aria-label":"Timezone","aria-describedby":u?b:void 0,autoComplete:"off",spellCheck:!1,"aria-invalid":u,onChange:v=>h(v.target.value),className:`w-44 rounded border bg-bg-2 px-2 py-1 text-xs text-fg ${g} ${u?"border-critical":"border-line"}`}),u&&e.jsx("span",{id:b,className:"text-[10px] text-critical",role:"alert",children:"Use an IANA zone such as Europe/Bucharest."})]})}function Ke({draft:t,patch:n}){const a=(s,u)=>n(r=>({...r,knownProviders:r.knownProviders.includes(s)?r.knownProviders:[...r.knownProviders,s],disabledProviders:u?r.disabledProviders.filter(b=>b!==s):Array.from(new Set([...r.disabledProviders,s]))}));return e.jsxs(E,{title:"Providers",right:e.jsxs("button",{type:"button",role:"switch","aria-checked":t.accountDetection.enabled,onClick:()=>n(s=>({...s,accountDetection:{...s.accountDetection,enabled:!s.accountDetection.enabled}})),className:`rounded border px-2 py-1 text-[10px] uppercase tracking-wide transition ${g} ${t.accountDetection.enabled?"border-accent/50 bg-accent/10 text-accent":"border-line text-fg-faint"}`,children:["Auto-detect ",t.accountDetection.enabled?"on":"off"]}),children:[e.jsx("p",{className:"mb-2.5 text-[11px] text-fg-faint",children:"Tracking controls all provider data. Auto-detect only finds accounts; manual accounts keep working when it is off."}),e.jsx("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-2",children:te.map(s=>{const u=!t.disabledProviders.includes(s),r=ye(t.accountDetection,s),b=W[s];return e.jsxs("div",{className:`flex items-center gap-2 rounded border px-2.5 py-2 text-left text-xs transition ${u?"border-line-2 bg-bg-2 text-fg":"border-line bg-bg-1 text-fg-faint hover:border-line-2"}`,children:[e.jsx("span",{className:"size-2 shrink-0 rounded-full",style:{background:O(b.color)},"aria-hidden":!0}),e.jsx("span",{className:`font-medium ${u?"text-fg":"text-fg-faint"}`,children:b.name}),e.jsxs("span",{className:"ml-auto flex items-center gap-1",children:[e.jsxs("button",{type:"button",role:"switch","aria-checked":u,"aria-label":`${u?"Stop":"Start"} tracking ${b.name}`,onClick:()=>a(s,!u),className:`inline-flex items-center gap-1 rounded border px-1.5 py-1 text-[10px] ${g} ${u?"border-line-2 text-fg":"border-line text-fg-faint"}`,children:[u&&e.jsx(B,{className:"size-3"})," Track"]}),e.jsx("button",{type:"button",role:"switch","aria-checked":r,disabled:!t.accountDetection.enabled,"aria-label":`${r?"Disable":"Enable"} ${b.name} account discovery`,onClick:()=>n(h=>({...h,accountDetection:ke(h.accountDetection,s,!r)})),className:`rounded border px-1.5 py-1 text-[10px] disabled:opacity-40 ${g} ${r?"border-accent/50 text-accent":"border-line text-fg-faint"}`,children:"Auto"})]})]},s)})})]})}function We(t,n){return n?n.accounts.find(a=>a.id===t.id)??null:null}function Xe({draft:t,patch:n,snapshot:a,onEdit:s,onConfigure:u,onAdd:r}){const b=Ne(t,void 0,(a==null?void 0:a.accounts)??void 0),[h,v]=x.useState(null),l=c=>n(f=>({...f,activeAccountId:c})),o=c=>{if(h!==c){v(c);return}n(f=>({...f,accounts:f.accounts.filter(i=>i.id!==c),activeAccountId:f.activeAccountId===c?null:f.activeAccountId})),v(null)},d=(c,f)=>n(i=>{const p=[...i.accounts],w=c+f;return w<0||w>=p.length?i:([p[c],p[w]]=[p[w],p[c]],{...i,accounts:p})});return e.jsx(E,{title:"Accounts",right:e.jsxs(M,{variant:"primary",size:"xs",onClick:r,children:[e.jsx(De,{className:"size-3"})," Add account"]}),children:b.length===0?e.jsx("p",{className:"rounded border border-line bg-bg-2/50 px-3 py-3 text-xs text-fg-faint",children:"None configured — enabled providers track automatically."}):e.jsx("ul",{className:"flex flex-col gap-1.5",role:"radiogroup","aria-label":"Active account",children:b.map(c=>{var D;const f=W[c.providerId],i=We(c,a),p=i?we(i,f.name):c.name||f.name,w=(i==null?void 0:i.plan)??((D=i==null?void 0:i.billing)==null?void 0:D.plan)??null,A=O(c.color||f.color),S=c.id===t.activeAccountId,I=c.source==="configured",N=c.source==="ignored";return e.jsxs("li",{className:`flex items-center gap-2.5 rounded border border-line px-2.5 py-2 ${N?"bg-bg-1 opacity-75":"bg-bg-2/60"}`,children:[e.jsx("button",{type:"button",role:"radio","aria-checked":S,disabled:N,"aria-label":`Set ${c.name} active`,title:S?"Active account (click to clear)":"Set active",onClick:()=>l(S?null:c.id),className:`relative inline-flex size-4 shrink-0 items-center justify-center rounded-full border transition ${g}`,style:{borderColor:A},children:S&&e.jsx("span",{className:"size-2 rounded-full",style:{background:A}})}),e.jsx("span",{className:"size-2.5 shrink-0 rounded-full",style:{background:A},"aria-hidden":!0}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ce,{value:p,privacyMode:t.privacyMode,className:"truncate text-sm text-fg-bright"}),e.jsx("span",{className:"shrink-0 rounded bg-bg-3 px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-fg-dim",children:f.name}),w&&e.jsx("span",{className:"shrink-0 rounded border border-line px-1.5 py-0.5 text-[10px] text-fg-dim",children:w}),e.jsx("span",{className:"shrink-0 rounded border border-line px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-fg-faint",children:c.source==="auto"?"detected":N?"ignored":"manual"})]}),e.jsx("div",{className:"truncate font-mono text-[11px] text-fg-faint",children:t.privacyMode?"path hidden":c.homeDir})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[h===c.id?e.jsx("span",{className:"mr-1 text-[10px] text-critical",role:"alert",children:"Delete?"}):null,I&&c.explicitIndex!==void 0?e.jsxs(e.Fragment,{children:[e.jsx(P,{label:"Move up",disabled:c.explicitIndex===0,onClick:()=>d(c.explicitIndex,-1),children:e.jsx(ae,{className:"size-3.5"})}),e.jsx(P,{label:"Move down",disabled:c.explicitIndex===t.accounts.length-1,onClick:()=>d(c.explicitIndex,1),children:e.jsx(ne,{className:"size-3.5"})}),e.jsx(P,{label:"Edit account",onClick:()=>s(c),children:e.jsx(le,{className:"size-3.5"})}),e.jsx(P,{label:h===c.id?"Confirm delete account":"Delete account",danger:!0,onClick:()=>o(c.id),children:e.jsx(Se,{className:"size-3.5"})})]}):N?e.jsx(P,{label:"Turn detected account on",onClick:()=>c.excludedRef&&n(j=>({...j,accountDetection:ie(j.accountDetection,c.excludedRef,!1)})),children:e.jsx(Ie,{className:"size-3.5"})}):e.jsxs(e.Fragment,{children:[e.jsx(P,{label:"Configure as manual account",onClick:()=>u(c),children:e.jsx(le,{className:"size-3.5"})}),e.jsx(P,{label:"Turn detected account off",onClick:()=>n(j=>({...j,activeAccountId:j.activeAccountId===c.id?null:j.activeAccountId,accountDetection:ie(j.accountDetection,{providerId:c.providerId,homeDir:c.homeDir},!0)})),children:e.jsx(me,{className:"size-3.5"})})]})]})]},`${c.source}:${c.id}`)})})})}function Ye(t){const n=(t??"").trim();return n.length>0?n:"~"}function J(t){const n=(t??"").trim();return n.length>0?n:"~"}function Qe(t){const n=[];t.parent!==null&&n.push({kind:"parent",key:"..",label:"..",path:t.parent});for(const a of[...t.entries].filter(s=>s.dir).sort((s,u)=>s.name.localeCompare(u.name)))n.push({kind:"entry",key:a.path,label:a.name,path:a.path});return n}function Ze({editor:t,accounts:n,onChange:a,onCancel:s,onSubmit:u}){const r=x.useRef(null),[b,h]=x.useState(null),v=O(t.color),l=Ue(t,n),o=()=>{const d=Ge(t,n);if(!d.ok){h(d.error);return}u(d.account,d.mode,d.editingId)};return e.jsxs(he,{onClose:s,labelledBy:"account-editor-title",initialFocusRef:r,showClose:!1,className:"my-8 w-full max-w-[460px] border-l-2",panelStyle:{borderLeftColor:v},children:[e.jsxs("div",{className:"flex items-center gap-2 border-b border-line px-4 py-3",children:[e.jsx("span",{className:"size-2.5 rounded-full",style:{background:v},"aria-hidden":!0}),e.jsx("h2",{id:"account-editor-title",className:"font-display text-xs uppercase tracking-wider text-fg-bright",children:t.mode==="add"?"New account":"Edit account"})]}),e.jsxs("div",{className:"flex flex-col gap-4 px-4 py-4",children:[e.jsx(q,{label:"Provider",hint:"which tool this account tracks",children:e.jsx("div",{className:"flex flex-wrap gap-1.5",children:te.map(d=>{const c=d===t.providerId,f=W[d];return e.jsxs("button",{type:"button",onClick:()=>a({...t,providerId:d}),"aria-pressed":c,className:`flex items-center gap-1.5 rounded border px-2 py-1 text-xs transition ${g} ${c?"border-line-2 bg-bg-3 text-fg-bright":"border-line text-fg-dim hover:text-fg"}`,children:[e.jsx("span",{className:"size-2 rounded-full",style:{background:O(f.color)},"aria-hidden":!0}),f.name]},d)})})}),e.jsx(q,{label:"Name",hint:"display name for this account",children:e.jsx("input",{ref:r,type:"text",name:"account-name",value:t.name,placeholder:"e.g. Work…","aria-label":"Account name",autoComplete:"off",spellCheck:!1,onChange:d=>{h(null),a({...t,name:X(d.target.value)})},onKeyDown:d=>{d.key==="Enter"&&o()},className:`w-full rounded border border-line bg-bg-2 px-2.5 py-1.5 text-sm text-fg ${g}`})}),e.jsx(q,{label:"Home directory",hint:"path containing the tool's data dir · ~ for default",children:e.jsx(Je,{value:t.homeDir,onChange:d=>a({...t,homeDir:d}),onEnter:o})}),e.jsx(q,{label:"Accent color",hint:"shows on dashboard, account strip, borders",children:e.jsx("div",{className:"flex flex-wrap gap-1.5",children:Ae.map(d=>{const c=d===t.color;return e.jsx("button",{type:"button","aria-label":d,"aria-pressed":c,title:d,onClick:()=>a({...t,color:d}),className:`size-6 rounded-full border-2 transition ${g} ${c?"scale-110":"border-transparent hover:scale-105"}`,style:{background:O(d),borderColor:c?"var(--color-fg-bright)":"transparent"}},d)})})}),e.jsxs("div",{className:"flex items-center gap-2 rounded border border-line bg-bg-2/50 px-2.5 py-1.5 text-xs",children:[e.jsx("span",{className:"text-fg-faint",children:"id"}),e.jsx("span",{className:"font-mono text-fg",style:{color:v},children:l||"account"}),e.jsx("span",{className:"ml-auto text-[10px] text-fg-faint",children:t.mode==="add"?"auto-generated from name":"fixed"})]}),b&&e.jsxs("p",{className:"text-xs text-critical",role:"alert",children:[b,". Check the highlighted account fields and try again."]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 border-t border-line px-4 py-3",children:[e.jsx(M,{variant:"secondary",onClick:s,children:"cancel"}),e.jsxs(M,{variant:"primary",onClick:o,children:[e.jsx(B,{className:"size-3.5"})," ",t.mode==="add"?"Add account":"Save account"]})]})]})}function Je({value:t,onChange:n,onEnter:a}){const[s,u]=x.useState(!1),[r,b]=x.useState(null),[h,v]=x.useState("~"),[l,o]=x.useState(!1),[d,c]=x.useState(null),f=x.useRef(0),i=x.useCallback(async j=>{const $=++f.current,T=Ye(j);v(T),o(!0),c(null);try{const z=await $e(T);if($!==f.current)return;b(z)}catch(z){if($!==f.current)return;b(null),c(z instanceof Error?z.message:"cannot read folder")}finally{$===f.current&&o(!1)}},[]);x.useEffect(()=>()=>{f.current++},[]);const p=()=>{u(!0),i(t)},w=()=>{f.current++,u(!1),o(!1),c(null)},A=j=>{l||i(j)},S=()=>{!r||l||(n(J(r.path)),w())},I=r?Qe(r):[],N=I.filter(j=>j.kind==="entry"),D=J((r==null?void 0:r.path)??h);return e.jsxs("div",{className:"relative",children:[e.jsxs("div",{className:"flex overflow-hidden rounded border border-line bg-bg-2",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-2 px-2.5",children:[e.jsx(Q,{className:"size-4 shrink-0 text-fg-faint"}),e.jsx("input",{type:"text",name:"account-home-directory",value:t,placeholder:"e.g. ~/work…","aria-label":"Account home directory",autoComplete:"off",spellCheck:!1,onChange:j=>{w(),n(X(j.target.value))},onKeyDown:j=>{j.key==="Enter"&&a()},className:`min-w-0 flex-1 bg-transparent py-1.5 font-mono text-sm text-fg ${g}`})]}),e.jsxs("button",{type:"button",onClick:p,disabled:l,className:`flex shrink-0 items-center gap-1 border-l border-line bg-bg-1 px-2.5 py-1.5 text-xs text-fg-dim transition hover:bg-bg-3 hover:text-fg disabled:opacity-50 ${g}`,children:[e.jsx(ne,{className:"size-3.5"})," Browse"]})]}),s&&e.jsxs("div",{className:"mt-2 overflow-hidden rounded border border-line-2 bg-bg-1 shadow-[0_18px_60px_rgba(0,0,0,0.35)]",children:[e.jsxs("div",{className:"flex items-center gap-2 border-b border-line bg-bg-2 px-2.5 py-2",children:[e.jsx(Q,{className:"size-4 shrink-0 text-accent"}),e.jsx("div",{className:"min-w-0 flex-1 truncate font-mono text-xs text-fg-bright",title:D,children:D}),l&&e.jsx("span",{className:"shrink-0 text-[10px] uppercase tracking-wide text-fg-faint",children:"loading"}),e.jsx("button",{type:"button",onClick:w,"aria-label":"Close folder picker",className:`rounded p-1 text-fg-faint transition hover:text-fg ${g}`,children:e.jsx(me,{className:"size-3.5"})})]}),d?e.jsxs("div",{className:"px-2.5 py-3",children:[e.jsxs("div",{className:"text-xs text-critical",children:["can't read ",J(h)]}),e.jsx("button",{type:"button",onClick:()=>{l||i(h)},disabled:l,className:`mt-2 rounded border border-line bg-bg-2 px-2 py-1 text-[11px] text-fg-dim transition hover:border-line-2 hover:text-fg disabled:opacity-50 ${g}`,children:"retry"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"max-h-56 overflow-y-auto py-1",children:[I.map(j=>e.jsxs("button",{type:"button",onClick:()=>A(j.path),disabled:l,className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs transition hover:bg-bg-3 hover:text-fg disabled:opacity-50 ${g} ${j.kind==="parent"?"text-fg-dim":"text-fg"}`,children:[j.kind==="parent"?e.jsx(ae,{className:"size-3.5 shrink-0"}):e.jsx(Q,{className:"size-3.5 shrink-0 text-fg-faint"}),e.jsx("span",{className:"min-w-0 truncate font-mono",children:j.label})]},j.key)),!l&&N.length===0&&e.jsx("div",{className:"px-2.5 py-3 text-xs text-fg-faint",children:"no subdirectories"}),l&&!r&&e.jsx("div",{className:"px-2.5 py-3 text-xs text-fg-faint",role:"status","aria-live":"polite",children:"loading folders…"})]}),e.jsx("div",{className:"flex items-center justify-end gap-2 border-t border-line px-2.5 py-2",children:e.jsxs(M,{variant:"primary",onClick:S,disabled:!r||l,children:[e.jsx(B,{className:"size-3.5"})," Select this folder"]})})]})]})]})}function et({draft:t,patch:n,snapshot:a}){const s=(a==null?void 0:a.providers)??[],u=new Set(s.map(l=>l.id)),r=oe(t.tray.pinnedProviders,u,G),b=oe(t.desktop.expandedProviders,u),h=l=>n(o=>({...o,tray:{...o.tray,pinnedProviders:l,pins:[],pinnedAccount:null}})),v=l=>n(o=>({...o,desktop:{...o.desktop,expandedProviders:ce(o.desktop.expandedProviders,l,u)}}));return e.jsxs(e.Fragment,{children:[e.jsxs(E,{title:"App",children:[e.jsx(k,{label:"Privacy mode",hint:`global identity masking · ${t.privacyToggleKey.toUpperCase()} shortcut`,children:e.jsx(C,{size:"xs",ariaLabel:"privacy mode",options:[{value:"on",label:"on"},{value:"off",label:"off"}],value:t.privacyMode?"on":"off",onChange:l=>n(o=>({...o,privacyMode:l==="on"}))})}),e.jsx(k,{label:"Provider summary",hint:"smart pools account capacity · tightest shows the highest single usage",children:e.jsx(C,{size:"xs",ariaLabel:"menu bar value",options:[{value:"smartHeadroom",label:"smart"},{value:"tightestRemaining",label:"tightest"}],value:t.tray.displayMetric,onChange:l=>n(o=>({...o,tray:{...o.tray,displayMetric:l}}))})}),e.jsx(k,{label:"Menu bar value",hint:"show usage percentage or today's local token total",children:e.jsx(C,{size:"xs",ariaLabel:"menu bar value",options:[{value:"usage",label:"usage"},{value:"todayTokens",label:"tokens today"}],value:t.tray.menuBarValue,onChange:l=>n(o=>({...o,tray:{...o.tray,menuBarValue:l}}))})}),e.jsx(k,{label:"Show value in menu bar",hint:"hide the number and keep the provider mark",children:e.jsx(C,{size:"xs",ariaLabel:"show menu bar value",options:[{value:"on",label:"on"},{value:"off",label:"off"}],value:t.tray.showMenuBarText?"on":"off",onChange:l=>n(o=>({...o,tray:{...o.tray,showMenuBarText:l==="on"}}))})}),e.jsx(k,{label:"Active window",hint:"recent activity used by smart headroom",children:e.jsx(ee,{label:"Active window",value:t.tray.activeTimeoutMin,min:1,unit:"min",onChange:l=>n(o=>({...o,tray:{...o.tray,activeTimeoutMin:Math.min(1440,l)}}))})}),e.jsx(k,{label:"Graph range",hint:"trailing spend activity in the desktop popover",children:e.jsx(C,{size:"xs",ariaLabel:"desktop graph range",options:ze.map(l=>({value:String(l),label:`${l}d`})),value:String(t.desktop.graphRangeDays),onChange:l=>n(o=>({...o,desktop:{...o.desktop,graphRangeDays:Number(l)}}))})}),e.jsx(k,{label:"Launch at login",hint:"start the desktop menu bar app automatically",children:e.jsx(C,{size:"xs",ariaLabel:"launch desktop app at login",options:[{value:"on",label:"on"},{value:"off",label:"off"}],value:t.tray.launchAtLogin?"on":"off",onChange:l=>n(o=>({...o,tray:{...o.tray,launchAtLogin:l==="on"}}))})})]}),e.jsxs(E,{title:"Menu bar providers",right:e.jsxs("span",{className:"text-[10px] text-fg-faint",children:[r.length,"/",G," pinned"]}),children:[s.length===0?e.jsx("p",{className:"rounded border border-line bg-bg-2/50 px-3 py-3 text-xs text-fg-faint",children:"Waiting for provider data…"}):e.jsx("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-2",children:s.map(l=>{const o=r.indexOf(l.id),d=o>=0,c=!d&&r.length>=G;return e.jsxs("div",{className:`flex items-center gap-2 rounded border px-2.5 py-2 ${d?"border-line-2 bg-bg-2":"border-line bg-bg-1"}`,children:[e.jsx("button",{type:"button",role:"checkbox","aria-checked":d,disabled:c,"aria-label":`${d?"Unpin":"Pin"} ${l.name}`,onClick:()=>h(ce(r,l.id,u,G)),className:`inline-flex size-5 shrink-0 items-center justify-center rounded border text-[10px] transition disabled:cursor-not-allowed disabled:opacity-35 ${g}`,style:{borderColor:d?l.color:"var(--color-line-2)",color:l.color},children:d?o+1:e.jsx(B,{className:"size-3 opacity-0"})}),e.jsx("span",{className:"size-2 shrink-0 rounded-full",style:{background:l.color},"aria-hidden":!0}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-fg",children:l.name}),d&&e.jsxs("span",{className:"flex shrink-0 items-center",children:[e.jsx(P,{label:`Move ${l.name} left`,disabled:o===0,onClick:()=>h(de(r,l.id,-1)),children:e.jsx(ae,{className:"size-3.5 -rotate-90"})}),e.jsx(P,{label:`Move ${l.name} right`,disabled:o===r.length-1,onClick:()=>h(de(r,l.id,1)),children:e.jsx(ne,{className:"size-3.5 -rotate-90"})})]})]},l.id)})}),e.jsx("p",{className:"mt-2 text-[11px] text-fg-faint",children:"The numbered order matches the menu bar from left to right."})]}),e.jsxs(E,{title:"Popover defaults",children:[e.jsx("p",{className:"mb-2 text-[11px] text-fg-faint",children:"Choose which provider cards start expanded. You can still open or close any card in the app."}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:s.map(l=>{const o=b.includes(l.id);return e.jsxs("button",{type:"button","aria-pressed":o,onClick:()=>v(l.id),className:`flex items-center gap-1.5 rounded border px-2 py-1 text-xs transition ${g} ${o?"border-line-2 bg-bg-2 text-fg":"border-line bg-bg-1 text-fg-faint hover:text-fg"}`,children:[e.jsx("span",{style:{color:l.color},"aria-hidden":!0,children:o?"●":"○"}),l.name]},l.id)})})]})]})}const tt=[{label:"surfaces",keys:[{key:"canvas",label:"Canvas"},{key:"panel",label:"Panel"},{key:"inset",label:"Inset"},{key:"insetStrong",label:"Raised inset"},{key:"chrome",label:"Desktop chrome"},{key:"line",label:"Line"},{key:"lineStrong",label:"Strong line"},{key:"lineFaint",label:"Faint line"}]},{label:"type",keys:[{key:"text",label:"Text"},{key:"textDim",label:"Dim text"},{key:"textFaint",label:"Faint text"},{key:"textStrong",label:"Strong text"}]},{label:"signals",keys:[{key:"accent",label:"Accent"},{key:"cost",label:"Cost"},{key:"positive",label:"Savings"}]}],at=[{value:"auto",label:"Auto"},{value:"light",label:"Light"},{value:"dark",label:"Dark"}],nt=[{value:"ansi",label:"Terminal"},{value:"dark",label:"Dark"},{value:"light",label:"Light"},{value:"off",label:"Off"}];function K(t){return t.custom??{base:"tokmon",light:{},dark:{}}}function F(t,n){return{...t,appearance:{...t.appearance,...n}}}function st({preset:t,selected:n,appearance:a,onSelect:s}){const u=t==="custom"?{...a,preset:t,custom:K(a),mode:"dark"}:{...a,preset:t,mode:"dark"},r=pe(u,"dark").tokens;return e.jsxs("button",{type:"button","aria-pressed":n,onClick:s,className:`min-w-0 rounded border p-2 text-left transition ${g} ${n?"border-accent":"border-line hover:border-line-2"}`,style:{background:r.panel,color:r.text},children:[e.jsxs("span",{className:"mb-2 flex items-center gap-1.5 text-[11px] font-medium",children:[e.jsx("span",{className:"size-2 rounded-full",style:{background:r.accent},"aria-hidden":!0}),e.jsx("span",{className:"truncate",children:V(t).name})]}),e.jsx("span",{className:"flex h-5 items-end gap-1","aria-hidden":!0,children:[r.textFaint,r.textDim,r.cost,r.accent].map((b,h)=>e.jsx("span",{className:"flex-1 rounded-sm",style:{height:`${7+h*3}px`,background:b}},b))})]})}function rt({draft:t,patch:n}){const a=t.appearance,[s,u]=x.useState("dark"),r=K(a),b=x.useMemo(()=>pe({...a,preset:"custom",custom:r,mode:s},s),[a,r,s]),h=x.useMemo(()=>be(a),[a]),v=h.filter(i=>i.mode===s),l=new Set(v.flatMap(i=>i.keys)),o=h.length===0,d=i=>n(p=>F(p,{preset:i,...i==="custom"?{custom:K(p.appearance)}:{},...H(i)?{mode:"dark"}:{}})),c=(i=a.preset)=>{Z(i)&&n(p=>F(p,{preset:"custom",custom:{base:i,light:{},dark:{}}}))},f=i=>n(p=>F(p,{preset:"custom",custom:i(K(p.appearance))}));return e.jsxs("div",{className:"space-y-6",children:[e.jsxs(E,{title:"appearance",children:[e.jsx(k,{label:"Mode",hint:"Auto follows the operating system live.",children:e.jsx(C,{options:H(a.preset)?[{value:"dark",label:"Dark"}]:[...at],value:H(a.preset)?"dark":a.mode,onChange:i=>n(p=>F(p,{mode:i})),ariaLabel:"graphical color mode"})}),e.jsx(k,{label:"Terminal colors",hint:"Keep ANSI to preserve the classic Tokmon CLI.",children:e.jsx(C,{options:[...nt],value:a.terminal,onChange:i=>n(p=>F(p,{terminal:i})),ariaLabel:"terminal theme policy",size:"xs"})})]}),e.jsxs(E,{title:"preset",children:[e.jsx("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:Pe.map(i=>e.jsx(st,{preset:i.id,selected:a.preset===i.id,appearance:a,onSelect:()=>d(i.id)},i.id))}),e.jsxs("div",{className:"mt-3 flex min-h-7 items-center justify-between gap-3",children:[e.jsx("p",{className:"text-[11px] text-fg-faint",children:H(a.preset)?"Phosphor is intentionally dark-only.":V(a.preset).hint}),Z(a.preset)&&e.jsxs("button",{type:"button",onClick:()=>c(),className:`shrink-0 rounded border border-line px-2.5 py-1 text-[11px] text-fg-dim transition hover:border-line-2 hover:text-fg ${g}`,children:["customize ",V(a.preset).name]})]})]}),a.preset==="custom"&&e.jsxs(E,{title:"custom palette",right:e.jsx(C,{options:[{value:"light",label:"Light"},{value:"dark",label:"Dark"}],value:s,onChange:u,size:"xs",ariaLabel:"custom palette variant"}),children:[e.jsx(k,{label:"Starting point",hint:"Changing the base resets both variants.",children:e.jsx("select",{value:r.base,onChange:i=>{const p=i.target.value;Z(p)&&f(()=>({base:p,light:{},dark:{}}))},"aria-label":"custom theme base",className:`min-h-8 rounded border border-line bg-bg-2 px-2 text-xs text-fg ${g}`,children:Ee.map(i=>e.jsx("option",{value:i,children:V(i).name},i))})}),e.jsx("div",{className:"mt-4 grid gap-x-5 gap-y-4 sm:grid-cols-2",children:tt.flatMap(i=>i.keys.map(p=>({...p,group:i.label}))).map(({key:i,label:p,group:w})=>{const A=r[s][i]??b.tokens[i],S=l.has(i);return e.jsxs("label",{className:"min-w-0",children:[e.jsxs("span",{className:"mb-1 flex items-baseline justify-between gap-2 text-xs text-fg",children:[p,e.jsx("span",{className:"text-[9px] uppercase tracking-wider text-fg-faint",children:w})]}),e.jsxs("span",{className:`flex items-center gap-2 rounded border bg-bg-2 p-1 ${S?"border-critical":"border-line"}`,children:[e.jsx("input",{type:"color","aria-label":`${s} ${p} color`,value:Re(A)??b.tokens[i],onChange:I=>f(N=>({...N,[s]:{...N[s],[i]:I.target.value}})),className:"size-7 cursor-pointer border-0 bg-transparent p-0"}),e.jsx("input",{type:"text",spellCheck:!1,maxLength:7,pattern:"#[0-9A-Fa-f]{6}",value:A,"aria-invalid":S,onChange:I=>f(N=>({...N,[s]:{...N[s],[i]:I.target.value}})),className:`tnum min-w-0 flex-1 bg-transparent px-1 text-xs text-fg outline-none ${g}`})]}),S&&e.jsx("span",{className:"mt-1 block text-[10px] text-critical",children:"Use #RRGGBB with readable contrast."})]},i)})}),e.jsxs("div",{className:"mt-4 flex items-center justify-between gap-3 border-t border-line pt-3",children:[e.jsx("span",{className:`text-[11px] ${o?"text-positive":"text-critical"}`,role:"status",children:o?"Light and dark palettes pass contrast checks":`${h.length} palette issue${h.length===1?"":"s"}`}),e.jsxs("button",{type:"button",onClick:()=>f(i=>({...i,[s]:{}})),className:`rounded border border-line px-2.5 py-1 text-[11px] text-fg-dim transition hover:border-line-2 hover:text-fg ${g}`,children:["reset ",s]})]})]})]})}const lt=[{value:"general",label:"General"},{value:"theme",label:"Theme"},{value:"app",label:"Desktop App"},{value:"providers",label:"Providers"},{value:"accounts",label:"Accounts"}];function ct({onClose:t,snapshot:n}){const a=Te(),s=x.useRef(null),u=x.useRef(null),[r,b]=x.useState(null),[h,v]=x.useState(null),[l,o]=x.useState(null),[d,c]=x.useState(!1),[f,i]=x.useState(null),[p,w]=x.useState(!1),[A,S]=x.useState(!1),[I,N]=x.useState(null),[D,j]=x.useState("general"),$=x.useRef(!1),T=x.useRef(!1),z=x.useRef(null),Y=x.useRef(null),_=x.useCallback(m=>{o(null);const y=Le(z.current,Y.current,$.current,m);$.current||(z.current=y.draft,Y.current=y.revision,b(y.draft),v(y.revision)),y.conflict&&i("settings changed elsewhere; close and reopen settings before saving")},[]);x.useEffect(()=>{let m=!0;return Me().then(y=>{m&&_(y)}).catch(y=>{m&&o(y instanceof Error?y.message:"load failed")}),()=>{m=!1}},[_]),x.useEffect(()=>{const m=y=>{$.current&&y.preventDefault()};return window.addEventListener("beforeunload",m),()=>window.removeEventListener("beforeunload",m)},[]),x.useEffect(()=>{let m=!0;const y=Fe(R=>{m&&_(R)});return()=>{m=!1,y()}},[_]);const se=()=>{if(!$.current||T.current){a.setPreview(null),t();return}T.current=!0,S(!0),i("unsaved changes; choose discard to close settings")};x.useEffect(()=>{const m=s.current;m&&(I?m.setAttribute("inert",""):m.removeAttribute("inert"))},[I]);const L=m=>{const y=z.current;if(!y)return;const R={...m(y),revision:y.revision};a.setPreview(R.appearance),$.current=!0,z.current=R,w(!0),T.current=!1,S(!1),i(null),b(R)},fe=async()=>{if(r){c(!0),i(null);try{if(h===null)throw new Error("config revision is unavailable");const m=await Oe(r,h);z.current=m.config,Y.current=m.config.revision,$.current=!1,b(m.config),v(m.config.revision),w(!1),a.commit(m),t()}catch(m){a.setPreview(null);const y=Be(m);i(y.conflictState?`${y.message}; close and reopen settings before saving`:y.message)}finally{c(!1)}}};return e.jsxs(e.Fragment,{children:[e.jsxs(he,{onClose:se,labelledBy:"settings-title",initialFocusRef:u,panelRef:s,className:"my-6 flex w-full max-w-[900px] flex-col",children:[e.jsx("h2",{ref:u,tabIndex:-1,id:"settings-title",className:"pointer-events-none absolute left-3 top-2 font-display text-[11px] uppercase tracking-wider text-fg-dim focus:outline-none",children:"settings"}),e.jsx("div",{className:"max-h-[78vh] overflow-y-auto px-4 pb-4 pt-9 sm:px-5",children:l&&!r?e.jsxs("div",{className:"rounded border border-critical/50 bg-bg-2 p-4 text-sm text-critical",role:"alert",children:["Could not load settings: ",l,". Close settings and try again."]}):r?e.jsx(e.Fragment,{children:e.jsxs("div",{className:"flex min-w-0 flex-col gap-5 sm:flex-row sm:items-start",children:[e.jsx("nav",{className:"-mx-1 flex shrink-0 gap-1 overflow-x-auto px-1 pb-2 sm:mx-0 sm:w-32 sm:flex-col sm:overflow-visible sm:px-0 sm:pb-0","aria-label":"Settings sections",children:lt.map(m=>e.jsx("button",{type:"button","aria-current":D===m.value?"page":void 0,onClick:()=>j(m.value),className:`shrink-0 rounded px-2.5 py-2 text-left text-[11px] transition ${g} ${D===m.value?"bg-bg-3 text-accent":"text-fg-dim hover:bg-bg-2 hover:text-fg"}`,children:m.label},m.value))}),e.jsxs("div",{className:"min-w-0 flex-1 border-t border-line pt-4 sm:border-l sm:border-t-0 sm:pl-5 sm:pt-0",children:[D==="general"&&e.jsx(He,{draft:r,patch:L}),D==="theme"&&e.jsx(rt,{draft:r,patch:L}),D==="app"&&e.jsx(et,{draft:r,patch:L,snapshot:n}),D==="providers"&&e.jsx(Ke,{draft:r,patch:L}),D==="accounts"&&e.jsx(Xe,{draft:r,patch:L,snapshot:n,onEdit:m=>N(_e(m)),onConfigure:m=>N(ue(r,{providerId:m.providerId,name:m.name,homeDir:m.homeDir,color:m.color})),onAdd:()=>N(ue(r))})]})]})}):e.jsx("div",{className:"py-10 text-center text-sm text-fg-dim",children:"loading config…"})}),e.jsxs("div",{className:"flex items-center justify-end gap-3 border-t border-line px-5 py-3",children:[f&&e.jsx("span",{className:"mr-auto text-xs text-critical",role:"alert",children:f}),p&&!f&&e.jsx("span",{className:"mr-auto text-xs text-fg-faint",role:"status","aria-live":"polite",children:"unsaved changes"}),e.jsx(M,{variant:"secondary",onClick:se,children:A?"discard":"cancel"}),e.jsxs(M,{variant:"primary",onClick:fe,disabled:!r||d||!p||be(r.appearance).length>0,children:[e.jsx(B,{className:"size-3.5"})," ",d?"saving…":"save"]})]})]}),I&&r&&e.jsx(Ze,{editor:I,accounts:r.accounts,onChange:N,onCancel:()=>N(null),onSubmit:(m,y,R)=>{L(U=>y==="add"?{...U,accounts:[...U.accounts,m]}:{...U,accounts:U.accounts.map(re=>re.id===R?m:re)}),N(null)}})]})}export{ct as SettingsSheet};