tarsk 0.5.80 → 0.5.81

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 (107) hide show
  1. package/dist/bundled-skills/skill-creator/scripts/quick_validate.js +28 -14
  2. package/dist/index.js +3272 -1604
  3. package/dist/public/assets/{account-view-DVfacvrH.js → account-view-CkeaK8vk.js} +1 -1
  4. package/dist/public/assets/{alert-dialog-DTxl_mXc.js → alert-dialog-Jje1F97D.js} +1 -1
  5. package/dist/public/assets/api-BnJTzqjz.js +2 -0
  6. package/dist/public/assets/{async-error-boundary-DmJy8jgz.js → async-error-boundary-BqVpxDC8.js} +1 -1
  7. package/dist/public/assets/{browser-tab-BZSxX4fR.js → browser-tab-DjtkGpuv.js} +2 -2
  8. package/dist/public/assets/{button-DhxraVUW.js → button-CltOBnLJ.js} +1 -1
  9. package/dist/public/assets/{card-DZy9jCWQ.js → card-F7mD70yN.js} +1 -1
  10. package/dist/public/assets/chat-dock-context-BHq1_jtf.js +1 -0
  11. package/dist/public/assets/{commit-dialog-D0z3emO_.js → commit-dialog-Cl3V3kAa.js} +1 -1
  12. package/dist/public/assets/{commit-error-dialog-CVSOwpqp.js → commit-error-dialog-DiBCAGnv.js} +1 -1
  13. package/dist/public/assets/{commit-method-fields-C7Du43jy.js → commit-method-fields-CX9hg6Je.js} +1 -1
  14. package/dist/public/assets/conversation-history-view-Ev79lcal.js +1 -0
  15. package/dist/public/assets/create-project-dialog-C-5wed95.js +2 -0
  16. package/dist/public/assets/{create-repo-dialog-lS-Tko1c.js → create-repo-dialog-nEwcPXH1.js} +1 -1
  17. package/dist/public/assets/{delete-confirm-dialog-Ciwqi6ts.js → delete-confirm-dialog-BJljYiX_.js} +1 -1
  18. package/dist/public/assets/diff-view-DKfdgmNU.js +4 -0
  19. package/dist/public/assets/{dist-aB1qUwWW.js → dist-5hESBP4d.js} +1 -1
  20. package/dist/public/assets/{dist-Bihbg_hO.js → dist-BW2D7v35.js} +1 -1
  21. package/dist/public/assets/{dist-CA_zFhwJ.js → dist-BuAo47a7.js} +1 -1
  22. package/dist/public/assets/{dist-BZmr2Qex.js → dist-CnoazagX.js} +1 -1
  23. package/dist/public/assets/dist-DFsjr0PN.js +2 -0
  24. package/dist/public/assets/{dist-iDwSbcD5.js → dist-DjsjvpPB.js} +1 -1
  25. package/dist/public/assets/{dist-BkOEUrQf.js → dist-pqOQhr7q.js} +1 -1
  26. package/dist/public/assets/{dist-Dj1qT-gv.js → dist-s8kCZECe.js} +1 -1
  27. package/dist/public/assets/{es2015-B0KHrBGH.js → es2015-CqjklqcF.js} +1 -1
  28. package/dist/public/assets/{explorer-monaco-editor-YoaTqh0f.js → explorer-monaco-editor-JexQ2hDA.js} +1 -1
  29. package/dist/public/assets/{explorer-tab-view-DlBIsvNp.js → explorer-tab-view-ib2FX8Ak.js} +2 -2
  30. package/dist/public/assets/explorer-tree-u1IiLEmZ.js +1 -0
  31. package/dist/public/assets/explorer-view-D2cPTIXP.js +76 -0
  32. package/dist/public/assets/{git-history-dialog-DOcupC-P.js → git-history-dialog-URTkxCPe.js} +1 -1
  33. package/dist/public/assets/index-8x-2e2HM.js +114 -0
  34. package/dist/public/assets/index-WbZmmRUY.css +1 -0
  35. package/dist/public/assets/{model-list-controls-DOpHpzG8.js → model-list-controls-RfXuDYC4.js} +1 -1
  36. package/dist/public/assets/onboarding-dialog-q06UP-U0.js +1 -0
  37. package/dist/public/assets/{pill-tabs-CiONEGsi.js → pill-tabs-BWLL8Iix.js} +1 -1
  38. package/dist/public/assets/{progress-indicator-C7Kj9U3t.js → progress-indicator-4LUNdJet.js} +1 -1
  39. package/dist/public/assets/project-coding-view-Di-O7V7a.js +1 -0
  40. package/dist/public/assets/{project-danger-zone-view-BfHTp5LI.js → project-danger-zone-view-CUb4CrIM.js} +1 -1
  41. package/dist/public/assets/{project-env-vars-view-QrpeAxIt.js → project-env-vars-view-CROExO3i.js} +1 -1
  42. package/dist/public/assets/{project-model-aliases-view-D_pamHsA.js → project-model-aliases-view-BYA1-lFu.js} +1 -1
  43. package/dist/public/assets/project-settings-view-CU5sfXzs.js +1 -0
  44. package/dist/public/assets/{project-tools-view-0j2uWvRy.js → project-tools-view-BCvoIfnn.js} +1 -1
  45. package/dist/public/assets/providers-list-view-D-D_UgD0.js +1 -0
  46. package/dist/public/assets/pull-request-dialog-DWdtDJYH.js +1 -0
  47. package/dist/public/assets/{pull-with-changes-dialog-CFLl2SQP.js → pull-with-changes-dialog-DXtvq4Fx.js} +1 -1
  48. package/dist/public/assets/{push-before-pr-dialog-CD1rZKan.js → push-before-pr-dialog-D0KZVQuR.js} +1 -1
  49. package/dist/public/assets/{scroll-area-BQ9bdsVQ.js → scroll-area-DO1A2oHC.js} +1 -1
  50. package/dist/public/assets/{settings-general-tabs-view-CKaL-A9_.js → settings-general-tabs-view-C4Nue6Ff.js} +2 -2
  51. package/dist/public/assets/settings-general-view-DTrynmWh.js +1 -0
  52. package/dist/public/assets/{settings-list-n-CrPPNl.js → settings-list-DZLFM-rH.js} +1 -1
  53. package/dist/public/assets/{settings-logs-view-CFD-_MKT.js → settings-logs-view-qde-vyal.js} +3 -3
  54. package/dist/public/assets/settings-mcp-servers-view-DFs6AOqK.js +5 -0
  55. package/dist/public/assets/settings-models-view-hLa1R5be.js +1 -0
  56. package/dist/public/assets/{settings-plugins-view-fSxDPjsF.js → settings-plugins-view-_kjrR6md.js} +2 -2
  57. package/dist/public/assets/{settings-providers-view-Bj4-iemE.js → settings-providers-view-BqPmGz1Y.js} +2 -2
  58. package/dist/public/assets/{settings-setup-view-ORNCF3ma.js → settings-setup-view-Bg46oj29.js} +2 -2
  59. package/dist/public/assets/settings-skills-view-BU0yn3R0.js +2 -0
  60. package/dist/public/assets/{settings-slack-view-Dx4Pdxjq.js → settings-slack-view-BVjt8x5q.js} +1 -1
  61. package/dist/public/assets/settings-slash-commands-view-mUb6a_t0.js +1 -0
  62. package/dist/public/assets/{settings-statistics-view-B8YLP2Nb.js → settings-statistics-view-ZVHzmpsK.js} +1 -1
  63. package/dist/public/assets/{settings-storage-view-Cnmt9-0H.js → settings-storage-view-DRnLbCfi.js} +1 -1
  64. package/dist/public/assets/{settings-subagents-view-Be7aa0Va.js → settings-subagents-view-BXN3XXXf.js} +2 -2
  65. package/dist/public/assets/{settings-system-prompt-view-KlPFbkat.js → settings-system-prompt-view-DI4aDJNk.js} +1 -1
  66. package/dist/public/assets/{settings-tab-bar-BJtpuIky.js → settings-tab-bar-nPxI45ho.js} +1 -1
  67. package/dist/public/assets/{settings-view-dchqYhRC.js → settings-view-BkmrqO5_.js} +2 -2
  68. package/dist/public/assets/{slug-utils-Ccbyp4Mu.js → slug-utils-DTRz-IX4.js} +1 -1
  69. package/dist/public/assets/store-N5DWaLPi.js +9 -0
  70. package/dist/public/assets/{table-DCmeRDBK.js → table-D0dYDkHb.js} +1 -1
  71. package/dist/public/assets/tasks-view-4x-tbVtX.js +1 -0
  72. package/dist/public/assets/{terminal-panel-DlfAu8U1.js → terminal-panel-k2OuCLTs.js} +1 -1
  73. package/dist/public/assets/{toggle-group-Dl5P_F6a.js → toggle-group-Db9wT9wS.js} +1 -1
  74. package/dist/public/assets/{tooltip-Cg_EhO9M.js → tooltip-JvDw-QDI.js} +1 -1
  75. package/dist/public/assets/{use-active-dock-panel-instance-iaFSG9kX.js → use-active-dock-panel-instance-CloupQ34.js} +1 -1
  76. package/dist/public/assets/{use-git-check-BfkMHX3g.js → use-git-check-CLdZVT2V.js} +1 -1
  77. package/dist/public/assets/{use-installed-ai-files-BtR-wIuu.js → use-installed-ai-files-DaBcwgRE.js} +1 -1
  78. package/dist/public/assets/{useBaseQuery-ChJtNS_3.js → useBaseQuery-DRTrohmA.js} +1 -1
  79. package/dist/public/assets/{utils-BCj_kT9l.js → utils-Buz2Fe6i.js} +1 -1
  80. package/dist/public/assets/{web-C5YunZdw.js → web-BpYQ1fL9.js} +1 -1
  81. package/dist/public/assets/{web-BC7Gc4bP.js → web-DK5m5VSU.js} +1 -1
  82. package/dist/public/assets/{web-BGZnt3gU.js → web-DM_gKD8p.js} +1 -1
  83. package/dist/public/assets/{web-BdHVYPFA.js → web-V17M9fvX.js} +1 -1
  84. package/dist/public/index.html +21 -21
  85. package/package.json +1 -1
  86. package/dist/public/assets/api-B_ZIptgC.js +0 -2
  87. package/dist/public/assets/chat-dock-context-DhO-jYMh.js +0 -1
  88. package/dist/public/assets/conversation-history-view-CkI6-Hvt.js +0 -1
  89. package/dist/public/assets/create-project-dialog-Ciiyx0LH.js +0 -2
  90. package/dist/public/assets/diff-view-DKEDlvjR.js +0 -4
  91. package/dist/public/assets/dist-DZtmmQ-F.js +0 -2
  92. package/dist/public/assets/explorer-tree-BWb4wB5M.js +0 -1
  93. package/dist/public/assets/explorer-view-qOBi4ACi.js +0 -76
  94. package/dist/public/assets/index-B3oaBks2.css +0 -1
  95. package/dist/public/assets/index-DdJcjvu2.js +0 -112
  96. package/dist/public/assets/onboarding-dialog-CfkWB6ST.js +0 -1
  97. package/dist/public/assets/project-coding-view-CrOGfL2D.js +0 -1
  98. package/dist/public/assets/project-settings-view-C04tQu0x.js +0 -1
  99. package/dist/public/assets/providers-list-view-4pcZxBFJ.js +0 -1
  100. package/dist/public/assets/pull-request-dialog-HXBislex.js +0 -1
  101. package/dist/public/assets/settings-general-view-ybttpP37.js +0 -1
  102. package/dist/public/assets/settings-mcp-servers-view-kTpnzhrf.js +0 -5
  103. package/dist/public/assets/settings-models-view-RmIvRn-i.js +0 -1
  104. package/dist/public/assets/settings-skills-view-Dl38QbWw.js +0 -2
  105. package/dist/public/assets/settings-slash-commands-view-CSm-ZqwM.js +0 -1
  106. package/dist/public/assets/store-D4D62vkY.js +0 -9
  107. package/dist/public/assets/tasks-view-CRBklv4O.js +0 -1
@@ -0,0 +1 @@
1
+ @font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/plus-jakarta-sans-cyrillic-ext-wght-normal.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/plus-jakarta-sans-vietnamese-wght-normal.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/plus-jakarta-sans-latin-ext-wght-normal.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/plus-jakarta-sans-latin-wght-normal.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-cyrillic-ext-wght-normal.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-greek-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-greek-wght-normal.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-vietnamese-wght-normal.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-ext-wght-normal.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-wght-normal.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-cyrillic-ext-wght-normal.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-cyrillic-wght-normal.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-greek-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-greek-wght-normal.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-vietnamese-wght-normal.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-ext-wght-normal.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-wght-normal.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:Liberation Mono;src:url(/fonts/liberation-mono-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter Variable,system-ui,-apple-system,sans-serif;line-height:1.5}body{line-height:inherit;margin:0}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-feature-settings:normal;font-variation-settings:normal;font-family:Liberation Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}body{-webkit-user-select:none;user-select:none}input,textarea,select,[contenteditable],[role=textbox],.prose-custom,pre,code{-webkit-user-select:text;user-select:text}:root{--scenic-foreground:0 0% 9%;--scenic-foreground-inverse:0 0% 98%;--background:0 0% 100%;--foreground:0 0% 3.9%;--card:0 0% 100%;--card-foreground:0 0% 3.9%;--popover:0 0% 100%;--popover-foreground:0 0% 3.9%;--primary:0 0% 9%;--primary-foreground:0 0% 98%;--secondary:0 0% 96.1%;--secondary-foreground:0 0% 9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--accent:0 0% 96.1%;--accent-foreground:0 0% 9%;--brand:81 91% 40%;--brand-foreground:0 0% 100%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:0 0% 89.8%;--divider:0 0% 89.8%;--table-border:0 0% 3.9% / .08;--input:0 0% 89.8%;--ring:0 0% 3.9%;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%;--radius:.5rem;--sidebar-background:0 0% 100%;--sidebar-foreground:220 10% 20%;--sidebar-primary:220 10% 12%;--sidebar-primary-foreground:0 0% 98%;--sidebar-accent:220 15% 93%;--sidebar-accent-foreground:220 10% 12%;--sidebar-border:220 13% 91%;--sidebar-ring:220 60% 55%;--image-off-background:0 0% 94%;--settings-sidebar-background:0 0% 100%}.dark{--background:0 0% 9.5%;--image-off-background:0 0% 12%;--foreground:0 0% 78%;--card:0 0% 3.9%;--card-foreground:0 0% 98%;--popover:0 0% 3.9%;--popover-foreground:0 0% 98%;--primary:0 0% 98%;--primary-foreground:0 0% 9%;--secondary:0 0% 14.9%;--secondary-foreground:0 0% 98%;--muted:0 0% 14.9%;--muted-foreground:0 0% 63.9%;--accent:0 0% 14.9%;--accent-foreground:0 0% 98%;--brand:81 91% 40%;--brand-foreground:0 0% 100%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:0 0% 14.9%;--divider:0 0% 100% / .15;--table-border:0 0% 100% / .07;--input:0 0% 14.9%;--ring:0 0% 83.1%;--chart-1:220 70% 50%;--chart-2:160 60% 45%;--chart-3:30 80% 55%;--chart-4:280 65% 60%;--chart-5:340 75% 55%;--sidebar-background:0 0% 12%;--sidebar-foreground:240 4.8% 95.9%;--sidebar-primary:224.3 76.3% 48%;--sidebar-primary-foreground:0 0% 100%;--sidebar-accent:240 3.7% 15.9%;--sidebar-accent-foreground:240 4.8% 95.9%;--sidebar-border:0 0% 100% / .15;--sidebar-ring:217.2 91.2% 59.8%;--settings-sidebar-background:0 0% 19%}html,body,#root{height:100%}html[data-native-shell=true],html[data-native-shell=true] body,html[data-native-shell=true] #root{height:var(--app-viewport-height,100%);min-height:var(--app-viewport-height,100%)}html[data-native-shell=true] body{background:0 0}html[data-native-shell=true] #root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);background:0 0;padding-bottom:0;position:relative}html[data-native-shell=true] #root:before{content:"";z-index:-1;background:hsl(var(--background));position:fixed;inset:0}html[data-native-shell=true] .h-screen{height:var(--app-viewport-height,100vh)}html[data-native-shell=true] .max-h-screen{max-height:var(--app-viewport-height,100vh)}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Inter Variable,system-ui,-apple-system,sans-serif}h1,h2,h3,h4,h5,h6{font-family:Plus Jakarta Sans Variable,system-ui,-apple-system,sans-serif}input[type=radio],input[type=checkbox]{accent-color:hsl(var(--brand))}.dark ::placeholder{opacity:.3}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.frosted-surface,.frosted-panel{background-color:hsl(var(--background) / var(--frosted-panel-opacity,.8))}html[data-wallpaper=background] body{background-color:hsl(var(--image-off-background));color:hsl(var(--foreground))}html[data-wallpaper=background][data-native-shell=true] #root:before{background:hsl(var(--image-off-background))}html[data-wallpaper=color] body{background-color:var(--wallpaper-color);color:hsl(var(--foreground))}html[data-wallpaper=color][data-native-shell=true] #root:before{background:var(--wallpaper-color)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-\[-8px\]{inset:-8px}.inset-x-0{left:0;right:0}.inset-x-px{left:1px;right:1px}.inset-y-0{top:0;bottom:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-right-0\.5{right:-.125rem}.-right-1{right:-.25rem}.-right-1\.5{right:-.375rem}.-right-12{right:-3rem}.-top-0\.5{top:-.125rem}.-top-1{top:-.25rem}.-top-1\.5{top:-.375rem}.-top-12{top:-3rem}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-24{bottom:6rem}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.bottom-6{bottom:1.5rem}.bottom-full{bottom:100%}.end-3{inset-inline-end:.75rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.start-3{inset-inline-start:.75rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.row-start-3{grid-row-start:3}.-m-1{margin:-.25rem}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mx-px{margin-left:1px;margin-right:1px}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-mb-1{margin-bottom:-.25rem}.-mb-3{margin-bottom:-.75rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.-mt-6{margin-top:-1.5rem}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-2\.5{margin-left:.625rem}.ml-4{margin-left:1rem}.ml-8{margin-left:2rem}.ml-\[-10px\]{margin-left:-10px}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-auto{margin-right:auto}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:16/9}.size-2{width:.5rem;height:.5rem}.size-20{width:5rem;height:5rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-8{width:2rem;height:2rem}.h-0{height:0}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1em\]{height:1em}.h-\[1px\]{height:1px}.h-\[520px\]{height:520px}.h-\[80dvh\]{height:80dvh}.h-\[80vh\]{height:80vh}.h-\[min\(42rem\,90dvh\)\]{height:min(42rem,90dvh)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.h-svh{height:100svh}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[100px\]{max-height:100px}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.max-h-\[512px\]{max-height:512px}.max-h-\[60dvh\]{max-height:60dvh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85dvh\]{max-height:85dvh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.max-h-\[min\(16rem\,40svh\)\]{max-height:min(16rem,40svh)}.max-h-\[min\(36rem\,85vh\)\]{max-height:min(36rem,85vh)}.max-h-\[min\(400px\,80vh\)\]{max-height:min(400px,80vh)}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-full{max-height:100%}.max-h-none{max-height:none}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.min-h-32{min-height:8rem}.min-h-\[100px\]{min-height:100px}.min-h-\[120px\]{min-height:120px}.min-h-\[14rem\]{min-height:14rem}.min-h-\[240px\]{min-height:240px}.min-h-\[376px\]{min-height:376px}.min-h-\[3rem\]{min-height:3rem}.min-h-\[4\.5rem\]{min-height:4.5rem}.min-h-\[71px\]{min-height:71px}.min-h-\[80px\]{min-height:80px}.min-h-\[8rem\]{min-height:8rem}.min-h-full{min-height:100%}.min-h-svh{min-height:100svh}.w-0{width:0}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.6667%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-\[35\%\]{width:35%}.w-\[min\(100\%\,48rem\)\]{width:min(100%,48rem)}.w-\[var\(--radix-popover-trigger-width\)\]{width:var(--radix-popover-trigger-width)}.w-auto{width:auto}.w-dvw{width:100dvw}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-11{min-width:2.75rem}.min-w-4{min-width:1rem}.min-w-44{min-width:11rem}.min-w-5{min-width:1.25rem}.min-w-56{min-width:14rem}.min-w-72{min-width:18rem}.min-w-9{min-width:2.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[180px\]{min-width:180px}.min-w-\[220px\]{min-width:220px}.min-w-\[3rem\]{min-width:3rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-0{max-width:0}.max-w-24{max-width:6rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-64{max-width:16rem}.max-w-96{max-width:24rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-\[12rem\]{max-width:12rem}.max-w-\[200px\]{max-width:200px}.max-w-\[300px\]{max-width:300px}.max-w-\[4\.5rem\]{max-width:4.5rem}.max-w-\[5rem\]{max-width:5rem}.max-w-\[6\.5rem\]{max-width:6.5rem}.max-w-\[calc\(100\%-4rem\)\]{max-width:calc(100% - 4rem)}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[min\(24rem\,calc\(100vw-1rem\)\)\]{max-width:min(24rem,100vw - 1rem)}.max-w-\[min\(92vw\,960px\)\]{max-width:min(92vw,960px)}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-max{max-width:max-content}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-0{flex-basis:0}.basis-full{flex-basis:100%}.table-fixed{table-layout:fixed}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-center{transform-origin:50%}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x:-1px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x:1px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y:100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes daily-spend-flip-in{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.animate-daily-spend-flip-in{animation:daily-spend-flip-in var(--daily-spend-flip-duration,.3s) ease-out both}@keyframes daily-spend-flip-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}.animate-daily-spend-flip-out{animation:daily-spend-flip-out var(--daily-spend-flip-duration,.3s) ease-out both}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}@keyframes thread-dot-pulse{0%,to{opacity:.82;filter:brightness(.98);border-radius:9999px;transform:scale(.92)skew(0deg)}20%{opacity:.98;filter:brightness(1.08);border-radius:45% 55% 60% 40%/45% 40% 60% 55%;transform:scaleX(1.28)scaleY(.8)skew(-10deg,4deg)}40%{opacity:1;filter:brightness(1.16);border-radius:52% 48% 56% 44%/48% 54% 46% 52%;transform:scale(1.12)skew(6deg,-4deg)}60%{opacity:.74;filter:brightness();border-radius:58% 42% 45% 55%/55% 60% 40% 45%;transform:scaleX(.8)scaleY(1.24)skew(8deg,-8deg)}80%{opacity:.95;filter:brightness(1.1);border-radius:40% 60% 52% 48%/58% 42%;transform:scaleX(1.2)scaleY(.9)skew(-6deg,8deg)}}.animate-thread-dot-pulse{animation:1.35s cubic-bezier(.55,0,.45,1) infinite thread-dot-pulse}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.touch-none{touch-action:none}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.resize-none{resize:none}.resize{resize:both}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-start{scroll-snap-align:start}.list-outside{list-style-position:outside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[2\.75rem_minmax\(0\,1fr\)_2\.75rem\]{grid-template-columns:2.75rem minmax(0,1fr) 2.75rem}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_1\.75rem\]{grid-template-columns:minmax(0,1fr) 1.75rem}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1fr\)_auto_1\.75rem\]{grid-template-columns:minmax(0,1fr) auto 1.75rem}.grid-cols-\[repeat\(auto-fill\,minmax\(5\.5rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr))}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-1{column-gap:.25rem}.gap-x-2{column-gap:.5rem}.gap-x-3{column-gap:.75rem}.gap-x-4{column-gap:1rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.gap-y-6{row-gap:1.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){border-color:hsl(var(--border))}.divide-table-border>:not([hidden])~:not([hidden]){border-color:hsl(var(--table-border))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overscroll-contain{overscroll-behavior:contain}.scroll-smooth{scroll-behavior:smooth}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[1\.15rem\]{border-radius:1.15rem}.rounded-\[24px\]{border-radius:24px}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-\[24px\]{border-top-left-radius:24px;border-top-right-radius:24px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-0{border-left-width:0}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-\[--color-border\]{border-color:var(--color-border)}.border-black\/25{border-color:#00000040}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-brand{border-color:hsl(var(--brand))}.border-brand\/30{border-color:hsl(var(--brand) / .3)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/20{border-color:hsl(var(--destructive) / .2)}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-divider{border-color:hsl(var(--divider))}.border-foreground\/30{border-color:hsl(var(--foreground) / .3)}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-muted{border-color:hsl(var(--muted))}.border-primary{border-color:hsl(var(--primary))}.border-primary-foreground\/20{border-color:hsl(var(--primary-foreground) / .2)}.border-red-600{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity,1))}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-table-border{border-color:hsl(var(--table-border))}.border-transparent{border-color:#0000}.border-l-transparent{border-left-color:#0000}.border-t-brand{border-top-color:hsl(var(--brand))}.border-t-primary{border-top-color:hsl(var(--primary))}.border-t-transparent{border-top-color:#0000}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-\[hsl\(0_0\%_35\%\)\]{--tw-bg-opacity:1;background-color:hsl(0 0% 35%/var(--tw-bg-opacity,1))}.bg-\[hsl\(var\(--image-off-background\)\)\]{background-color:hsl(var(--image-off-background))}.bg-\[var\(--wallpaper-color\)\]{background-color:var(--wallpaper-color)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/60{background-color:hsl(var(--background) / .6)}.bg-background\/70{background-color:hsl(var(--background) / .7)}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-background\/90{background-color:hsl(var(--background) / .9)}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/25{background-color:#00000040}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-black\/85{background-color:#000000d9}.bg-border{background-color:hsl(var(--border))}.bg-brand{background-color:hsl(var(--brand))}.bg-brand\/15{background-color:hsl(var(--brand) / .15)}.bg-card{background-color:hsl(var(--card))}.bg-current{background-color:currentColor}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-destructive\/5{background-color:hsl(var(--destructive) / .05)}.bg-divider{background-color:hsl(var(--divider))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-foreground\/20{background-color:hsl(var(--foreground) / .2)}.bg-foreground\/25{background-color:hsl(var(--foreground) / .25)}.bg-foreground\/35{background-color:hsl(var(--foreground) / .35)}.bg-foreground\/5{background-color:hsl(var(--foreground) / .05)}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/15{background-color:#22c55e26}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/10{background-color:hsl(var(--muted) / .1)}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/40{background-color:hsl(var(--muted) / .4)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-muted\/60{background-color:hsl(var(--muted) / .6)}.bg-muted\/80{background-color:hsl(var(--muted) / .8)}.bg-neutral-950{--tw-bg-opacity:1;background-color:rgb(10 10 10/var(--tw-bg-opacity,1))}.bg-orange-500\/10{background-color:#f973161a}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/15{background-color:#ef444426}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-accent{background-color:hsl(var(--sidebar-accent))}.bg-transparent{background-color:#0000}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right, var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top, var(--tw-gradient-stops))}.from-\[hsl\(0_0\%_35\%\)\]{--tw-gradient-from:#595959 var(--tw-gradient-from-position);--tw-gradient-to:#59595900 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-background{--tw-gradient-from:hsl(var(--background)) var(--tw-gradient-from-position);--tw-gradient-to:hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from:transparent var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.to-\[hsl\(0_0\%_25\%\)\]{--tw-gradient-to:#404040 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.fill-brand{fill:hsl(var(--brand))}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-10{padding-bottom:2.5rem}.pb-14{padding-bottom:3.5rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pe-12{padding-inline-end:3rem}.pl-0{padding-left:0}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-\[18px\]{padding-left:18px}.pr-0\.5{padding-right:.125rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-20{padding-right:5rem}.pr-28{padding-right:7rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-8{padding-right:2rem}.pr-\[4px\]{padding-right:4px}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-7{padding-top:1.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.font-mono{font-family:Liberation Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,monospace}.font-sans{font-family:Inter Variable,system-ui,-apple-system,sans-serif}.text-2xl{font-size:1.65rem;line-height:2.2rem}.text-3xl{font-size:2.0625rem;line-height:2.475rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-base{font-size:1.1rem;line-height:1.65rem}.text-lg{font-size:1.2375rem;line-height:1.925rem}.text-sm{font-size:.9625rem;line-height:1.375rem}.text-xl{font-size:1.375rem;line-height:1.925rem}.text-xs{font-size:.825rem;line-height:1.1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.\!text-white{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity,1))!important}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-background{color:hsl(var(--background))}.text-background\/70{color:hsl(var(--background) / .7)}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-brand{color:hsl(var(--brand))}.text-brand-foreground{color:hsl(var(--brand-foreground))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-500{--tw-text-opacity:1;color:rgb(6 182 212/var(--tw-text-opacity,1))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-foreground\/70{color:hsl(var(--foreground) / .7)}.text-foreground\/90{color:hsl(var(--foreground) / .9)}.text-fuchsia-500{--tw-text-opacity:1;color:rgb(217 70 239/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.text-indigo-500{--tw-text-opacity:1;color:rgb(99 102 241/var(--tw-text-opacity,1))}.text-inherit{color:inherit}.text-lime-600{--tw-text-opacity:1;color:rgb(101 163 13/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/25{color:hsl(var(--muted-foreground) / .25)}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.text-pink-500{--tw-text-opacity:1;color:rgb(236 72 153/var(--tw-text-opacity,1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-sky-500{--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-violet-500{--tw-text-opacity:1;color:rgb(139 92 246/var(--tw-text-opacity,1))}.text-violet-600{--tw-text-opacity:1;color:rgb(124 58 237/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/70{color:#ffffffb3}.text-white\/80{color:#fffc}.text-white\/90{color:#ffffffe6}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.decoration-border{-webkit-text-decoration-color:hsl(var(--border));text-decoration-color:hsl(var(--border))}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-\[inset_0_2px_4px_rgba\(0\,0\,0\,0\.14\)\]{--tw-shadow:inset 0 2px 4px #00000024;--tw-shadow-colored:inset 0 2px 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.outline-2{outline-width:2px}.outline-offset-1{outline-offset:1px}.outline-brand{outline-color:hsl(var(--brand))}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-\[3px\]{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-background{--tw-ring-color:hsl(var(--background))}.ring-border\/80{--tw-ring-color:hsl(var(--border) / .8)}.ring-brand{--tw-ring-color:hsl(var(--brand))}.ring-primary{--tw-ring-color:hsl(var(--primary))}.ring-ring{--tw-ring-color:hsl(var(--ring))}.ring-sidebar-ring{--tw-ring-color:hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.blur{--tw-blur:blur(8px);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-2xl{--tw-backdrop-blur:blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-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-none{--tw-backdrop-blur: ;-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(4px);-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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[grid-template-rows\,max-width\]{transition-property:grid-template-rows,max-width;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[grid-template-rows\]{transition-property:grid-template-rows;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[margin\,opa\]{transition-property:margin,opa;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[opacity\,color\,background-color\]{transition-property:opacity,color,background-color;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[padding\]{transition-property:padding;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\,opacity\]{transition-property:width,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\]{transition-property:width;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@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))}}.animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.animate-out{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.fade-in,.fade-in-0{--tw-enter-opacity:0}.fade-in-80{--tw-enter-opacity:.8}.fade-out{--tw-exit-opacity:0}.zoom-in-95{--tw-enter-scale:.95}.slide-in-from-bottom-2{--tw-enter-translate-y:.5rem}.slide-in-from-top-2{--tw-enter-translate-y:-.5rem}.duration-1000{animation-duration:1s}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.paused{animation-play-state:paused}.fill-mode-forwards{animation-fill-mode:forwards}.\@container\/settings-page{container:settings-page/inline-size}.text-balance{text-wrap:balance}.scrollbar-hide{scrollbar-width:none;-ms-overflow-style:none}.scrollbar-hide::-webkit-scrollbar{display:none}.frosted-scrollbar{scrollbar-width:thin;scrollbar-color:hsl(var(--foreground) / .35) transparent}.frosted-scrollbar::-webkit-scrollbar{appearance:none;background:0 0;width:8px}.frosted-scrollbar::-webkit-scrollbar-track{-webkit-box-shadow:none;box-shadow:none;background:0 0}.frosted-scrollbar::-webkit-scrollbar-track-piece{-webkit-box-shadow:none;box-shadow:none;background:0 0}.frosted-scrollbar::-webkit-scrollbar-button{width:0;height:0;display:none}.frosted-scrollbar::-webkit-scrollbar-thumb{background-color:hsl(var(--foreground) / .35);background-clip:padding-box;border:2px solid #0000;border-radius:9999px}.frosted-scrollbar::-webkit-scrollbar-thumb:hover{background-color:hsl(var(--foreground) / .5)}.frosted-scrollbar::-webkit-scrollbar-corner{background:0 0}.scenic-foreground{color:hsl(var(--scenic-foreground))}html[data-wallpaper=background] .scenic-foreground{color:hsl(var(--foreground))}.scenic-chrome-button{color:hsl(var(--scenic-foreground) / .8);transition-property:color,background-color;transition-duration:.15s}.scenic-chrome-button:hover{background-color:hsl(var(--scenic-foreground));color:hsl(var(--scenic-foreground-inverse))}html[data-wallpaper=background] .scenic-chrome-button{color:hsl(var(--muted-foreground))}html[data-wallpaper=background] .scenic-chrome-button:hover{background-color:hsl(var(--foreground));color:hsl(var(--background))}.animate-shimmer{background-image:linear-gradient(90deg, hsl(var(--muted-foreground)) 0%, hsl(var(--muted-foreground)) 40%, hsl(var(--foreground) / .9) 50%, hsl(var(--muted-foreground)) 60%, hsl(var(--muted-foreground)) 100%);color:#0000;-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:2.5s ease-in-out infinite shimmer}.animate-headline-reset{transform-origin:0;animation:.6s ease-in-out headline-reset}.animate-roster-ring-glow{animation:1.6s ease-in-out infinite roster-ring-glow}.\[grid-template-columns\:repeat\(auto-fill\,minmax\(min\(220px\,100\%\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))}.\[scrollbar-width\:none\]{scrollbar-width:none}@keyframes radial-pulse{0%{box-shadow:0 0 0 0 hsl(var(--foreground) / .5)}50%{box-shadow:0 0 0 6px hsl(var(--foreground) / .1)}to{box-shadow:0 0 0 12px hsl(var(--foreground) / 0)}}@keyframes radial-pulse-brand{0%{box-shadow:0 0 0 0 hsl(var(--brand) / .5)}50%{box-shadow:0 0 0 6px hsl(var(--brand) / .1)}to{box-shadow:0 0 0 12px hsl(var(--brand) / 0)}}@keyframes shimmer{0%{background-position:150%}to{background-position:-50%}}@keyframes ai-spinner-ring-grow{0%{r:.5px}to{r:7px}}@keyframes ai-spinner-ring-fade{0%{stroke-opacity:1}to{stroke-opacity:0}}.ai-spinner-ring{animation:1.8s cubic-bezier(.165,.84,.44,1) infinite ai-spinner-ring-grow,1.8s cubic-bezier(.3,.61,.355,1) infinite ai-spinner-ring-fade}.ai-spinner-ring-second{animation-duration:1.7s,1.7s;animation-delay:-.5s,-.5s}@keyframes spin-slow{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}@keyframes headline-reset{0%,to{color:hsl(var(--foreground));transform:scale(1)rotate(0)}25%{color:hsl(var(--brand));transform:scale(1.06)rotate(-2deg)}50%{color:hsl(var(--brand));transform:scale(1.06)rotate(2deg)}75%{color:hsl(var(--foreground));transform:scale(1.02)rotate(-1deg)}}@keyframes roster-ring-glow{0%,to{opacity:.4}50%{opacity:1}}.diff-comment-marked-line{background:#eab30847!important;border-left:3px solid #eab308!important}.diff-comment-active-line{outline-offset:-1px!important;background:#ea820873!important;border-left:3px solid #ea8208!important;outline:1px solid #ea820899!important}.diff-gutter-add-comment{cursor:pointer;background-color:#0000;margin-left:3px;width:0!important}.diff-gutter-add-comment:after{content:"+";color:#0000;border-radius:3px;justify-content:center;align-items:center;width:18px;height:18px;font-size:18px;font-weight:700;line-height:1;transition:all .1s;display:flex}.diff-editor-panel .monaco-editor .margin-view-overlays:hover .diff-gutter-add-comment:after,.diff-editor-panel .monaco-editor .margin-view-overlays .cgmr.codicon-diff-gutter-add-comment:after{color:var(--vscode-editor-foreground,#ccc);background-color:#ffffff1a}.diff-editor-panel .monaco-editor .margin-view-overlays:hover .diff-gutter-add-comment:hover:after{color:#fff;background-color:#3b82f699}.diff-comment-glyph{cursor:pointer;margin-left:3px;width:0!important}.diff-comment-glyph:after{content:"💬";cursor:pointer;border-radius:3px;justify-content:center;align-items:center;width:18px;height:18px;font-size:14px;line-height:1;display:flex}.diff-comment-glyph-active{cursor:pointer;margin-left:3px;width:0!important}.diff-comment-glyph-active:after{content:"💬";cursor:pointer;background-color:#ea820866;border-radius:3px;justify-content:center;align-items:center;width:18px;height:18px;font-size:14px;line-height:1;display:flex}.terminal-scrollbar,.terminal-scrollbar .xterm-viewport{scrollbar-width:none;-ms-overflow-style:none}.terminal-scrollbar::-webkit-scrollbar{display:none}.terminal-scrollbar .xterm-viewport::-webkit-scrollbar{display:none}[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}[data-radix-scroll-area-viewport]>div{display:block!important}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-base::file-selector-button{font-size:1.1rem;line-height:1.65rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-\[-1px\]:before{content:var(--tw-content);inset:-1px}@keyframes ping-subtle{75%,to{content:var(--tw-content);opacity:0;transform:scale(1.15)}}.before\:animate-ping-subtle:before{content:var(--tw-content);animation:1.5s cubic-bezier(0,0,.2,1) infinite ping-subtle}.before\:rounded-full:before{content:var(--tw-content);border-radius:9999px}.before\:border:before{content:var(--tw-content);border-width:1px}.before\:border-orange-500\/60:before{content:var(--tw-content);border-color:#f9731699}.before\:border-primary\/60:before{content:var(--tw-content);border-color:hsl(var(--primary) / .6)}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:mb-0:last-child{margin-bottom:0}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.last\:border-b-0:last-child{border-bottom-width:0}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.focus-within\:opacity-100:focus-within{opacity:1}.focus-within\:ring-0:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-within\:ring-brand:focus-within{--tw-ring-color:hsl(var(--brand))}.focus-within\:ring-ring\/40:focus-within{--tw-ring-color:hsl(var(--ring) / .4)}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:\!bg-\[hsl\(var\(--scenic-foreground\)\)\]:hover{background-color:hsl(var(--scenic-foreground))!important}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/40:hover{background-color:hsl(var(--accent) / .4)}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-background:hover{background-color:hsl(var(--background))}.hover\:bg-background\/50:hover{background-color:hsl(var(--background) / .5)}.hover\:bg-brand:hover{background-color:hsl(var(--brand))}.hover\:bg-brand\/90:hover{background-color:hsl(var(--brand) / .9)}.hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-foreground:hover{background-color:hsl(var(--foreground))}.hover\:bg-foreground\/90:hover{background-color:hsl(var(--foreground) / .9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted) / .4)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-muted\/70:hover{background-color:hsl(var(--muted) / .7)}.hover\:bg-muted\/80:hover{background-color:hsl(var(--muted) / .8)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-white\/15:hover{background-color:#ffffff26}.hover\:\!text-\[hsl\(var\(--scenic-foreground-inverse\)\)\]:hover{color:hsl(var(--scenic-foreground-inverse))!important}.hover\:\!text-white:hover{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity,1))!important}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-background:hover{color:hsl(var(--background))}.hover\:text-brand:hover{color:hsl(var(--brand))}.hover\:text-brand\/80:hover{color:hsl(var(--brand) / .8)}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.hover\:text-destructive\/80:hover{color:hsl(var(--destructive) / .8)}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-foreground\/60:hover{-webkit-text-decoration-color:hsl(var(--foreground) / .6);text-decoration-color:hsl(var(--foreground) / .6)}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-destructive:focus{color:hsl(var(--destructive))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:pointer-events-auto:focus-visible{pointer-events:auto}.focus-visible\:bg-foreground\/5:focus-visible{background-color:hsl(var(--foreground) / .05)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color:hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.focus-visible\:ring-offset-sidebar:focus-visible{--tw-ring-offset-color:hsl(var(--sidebar-background))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:bg-transparent:hover:disabled{background-color:#0000}.disabled\:hover\:text-muted-foreground:hover:disabled{color:hsl(var(--muted-foreground))}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:text-foreground{color:hsl(var(--foreground))}.group\/chats:hover .group-hover\/chats\:opacity-100,.group\/img:hover .group-hover\/img\:opacity-100,.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:invert{--tw-invert:invert(100%);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)}.group\/summary:focus-visible .group-focus-visible\/summary\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-destructive-foreground{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity:1;color:rgb(254 242 242/var(--tw-text-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color:#dc2626}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-checked\:border-transparent[aria-checked=true]{border-color:#0000}.aria-checked\:bg-foreground[aria-checked=true]{background-color:hsl(var(--foreground))}.aria-checked\:text-background[aria-checked=true]{color:hsl(var(--background))}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:.2s ease-out accordion-up}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:.2s ease-out accordion-down}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent) / .5)}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on]{background-color:hsl(var(--accent))}.data-\[state\=on\]\:bg-foreground[data-state=on]{background-color:hsl(var(--foreground))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-background[data-state=active]{color:hsl(var(--background))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on]{color:hsl(var(--accent-foreground))}.data-\[state\=on\]\:text-background[data-state=on]{color:hsl(var(--background))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active],.data-\[state\=on\]\:shadow-sm[data-state=on]{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:.8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale:.9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x:13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x:-13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x:13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x:-13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=on\]\:hover\:bg-foreground:hover[data-state=on]{background-color:hsl(var(--foreground))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=on\]\:hover\:text-background:hover[data-state=on]{color:hsl(var(--background))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden,.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-state=checked] .group-data-\[state\=checked\]\:bg-primary{background-color:hsl(var(--primary))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-state=checked] .group-data-\[state\=checked\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}@container settings-page (width>=28rem){.\@md\/settings-page\:grid{display:grid}.\@md\/settings-page\:hidden{display:none}.\@md\/settings-page\:min-h-10{min-height:2.5rem}.\@md\/settings-page\:w-44{width:11rem}.\@md\/settings-page\:shrink-0{flex-shrink:0}.\@md\/settings-page\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@md\/settings-page\:flex-row{flex-direction:row}.\@md\/settings-page\:items-start{align-items:flex-start}.\@md\/settings-page\:items-center{align-items:center}.\@md\/settings-page\:gap-4{gap:1rem}}@media (hover:hover) and (pointer:fine){.can-hover\:opacity-0{opacity:0}.can-hover\:transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.can-hover\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.can-hover\:hover\:bg-foreground\/35:hover{background-color:hsl(var(--foreground) / .35)}.can-hover\:hover\:bg-foreground\/50:hover{background-color:hsl(var(--foreground) / .5)}.can-hover\:hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.can-hover\:hover\:bg-orange-500\/10:hover{background-color:#f973161a}.can-hover\:hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.can-hover\:hover\:text-destructive:hover{color:hsl(var(--destructive))}.can-hover\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.can-hover\:hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.group\/chats:hover .can-hover\:group-hover\/chats\:pointer-events-auto,.group\/sidebar:hover .can-hover\:group-hover\/sidebar\:pointer-events-auto,.group:hover .can-hover\:group-hover\:pointer-events-auto{pointer-events:auto}.group:hover .can-hover\:group-hover\:visible{visibility:visible}.group:hover .can-hover\:group-hover\:scale-\[1\.03\]{--tw-scale-x:1.03;--tw-scale-y:1.03;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .can-hover\:group-hover\:border-foreground\/50{border-color:hsl(var(--foreground) / .5)}.group:hover .can-hover\:group-hover\:bg-foreground\/10{background-color:hsl(var(--foreground) / .1)}.group:hover .can-hover\:group-hover\:bg-foreground\/50{background-color:hsl(var(--foreground) / .5)}.group:hover .can-hover\:group-hover\:text-foreground\/80{color:hsl(var(--foreground) / .8)}.group\/chats:hover .can-hover\:group-hover\/chats\:opacity-100,.group\/item:hover .can-hover\:group-hover\/item\:opacity-100,.group\/sidebar:hover .can-hover\:group-hover\/sidebar\:opacity-100,.group\/summary:hover .can-hover\:group-hover\/summary\:opacity-100,.group:hover .can-hover\:group-hover\:opacity-100{opacity:1}}@media (prefers-reduced-motion:no-preference){@keyframes pulse{50%{opacity:.5}}.motion-safe\:animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:scroll-auto{scroll-behavior:auto}.motion-reduce\:transition-none{transition-property:none}}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}.dark\:border-green-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-white\/25:is(.dark *){border-color:#ffffff40}.dark\:bg-background:is(.dark *){background-color:hsl(var(--background))}.dark\:bg-black\/50:is(.dark *){background-color:#00000080}.dark\:bg-brand:is(.dark *){background-color:hsl(var(--brand))}.dark\:bg-foreground:is(.dark *){background-color:hsl(var(--foreground))}.dark\:bg-foreground\/30:is(.dark *){background-color:hsl(var(--foreground) / .3)}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-950\/30:is(.dark *){background-color:#052e164d}.dark\:bg-muted:is(.dark *){background-color:hsl(var(--muted))}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\:text-foreground:is(.dark *){color:hsl(var(--foreground))}.dark\:text-green-300:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:shadow-\[inset_0_2px_4px_rgba\(0\,0\,0\,0\.35\)\]:is(.dark *){--tw-shadow:inset 0 2px 4px #00000059;--tw-shadow-colored:inset 0 2px 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dark\:invert:is(.dark *){--tw-invert:invert(100%);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)}.dark\:hover\:bg-brand\/90:hover:is(.dark *){background-color:hsl(var(--brand) / .9)}.dark\:hover\:bg-primary:hover:is(.dark *){background-color:hsl(var(--primary))}.dark\:hover\:bg-red-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(153 27 27/var(--tw-bg-opacity,1))}.dark\:hover\:bg-transparent:hover:is(.dark *){background-color:#0000}.dark\:hover\:text-foreground:hover:is(.dark *){color:hsl(var(--foreground))}.dark\:hover\:text-primary-foreground:hover:is(.dark *){color:hsl(var(--primary-foreground))}.group:hover .dark\:group-hover\:invert-0:is(.dark *){--tw-invert:invert(0);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)}.dark\:data-\[state\=active\]\:bg-foreground[data-state=active]:is(.dark *){background-color:hsl(var(--foreground))}.dark\:data-\[state\=active\]\:text-background[data-state=active]:is(.dark *){color:hsl(var(--background))}@media not all and (width>=768px){.max-md\:top-\[max\(1rem\,env\(safe-area-inset-top\,0px\)\)\]{top:max(1rem, env(safe-area-inset-top,0px))}.max-md\:hidden{display:none}.max-md\:max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.max-md\:translate-y-0{--tw-translate-y:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.max-md\:overflow-y-auto{overflow-y:auto}.max-md\:px-0{padding-left:0;padding-right:0}.max-md\:px-2{padding-left:.5rem;padding-right:.5rem}.max-md\:data-\[state\=closed\]\:zoom-out-100[data-state=closed]{--tw-exit-scale:1}.max-md\:data-\[state\=open\]\:zoom-in-100[data-state=open]{--tw-enter-scale:1}.max-md\:data-\[state\=closed\]\:slide-out-to-left-0[data-state=closed]{--tw-exit-translate-x:-0px}.max-md\:data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.max-md\:data-\[state\=open\]\:slide-in-from-left-0[data-state=open]{--tw-enter-translate-x:-0px}.max-md\:data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}}@media not all and (width>=640px){.max-sm\:hidden{display:none}}@media (width>=640px){.sm\:pointer-events-none{pointer-events:none}.sm\:absolute{position:absolute}.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-4{right:1rem}.sm\:top-3{top:.75rem}.sm\:top-auto{top:auto}.sm\:z-10{z-index:10}.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-9{height:2.25rem}.sm\:max-h-none{max-height:none}.sm\:w-52{width:13rem}.sm\:w-56{width:14rem}.sm\:w-9{width:2.25rem}.sm\:w-auto{width:auto}.sm\:max-w-\[320px\]{max-width:320px}.sm\:max-w-\[425px\]{max-width:425px}.sm\:max-w-\[500px\]{max-width:500px}.sm\:max-w-\[5rem\]{max-width:5rem}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-1{flex:1}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-\[repeat\(auto-fill\,minmax\(6\.5rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:items-start{align-items:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-4{gap:1rem}.sm\:gap-x-6{column-gap:1.5rem}.sm\:gap-y-8{row-gap:2rem}.sm\:space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:border-b-0{border-bottom-width:0}.sm\:border-r{border-right-width:1px}.sm\:p-4{padding:1rem}.sm\:text-left{text-align:left}.sm\:opacity-0{opacity:0}.sm\:data-\[state\=open\]\:pointer-events-auto[data-state=open]{pointer-events:auto}.sm\:data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y:100%}@media (hover:hover) and (pointer:fine){.group\/task-row:hover .sm\:can-hover\:group-hover\/task-row\:pointer-events-auto{pointer-events:auto}.group\/task-row:hover .sm\:can-hover\:group-hover\/task-row\:opacity-100{opacity:1}}}@media (width>=768px){.md\:absolute{position:absolute}.md\:-ml-\[6px\]{margin-left:-6px}.md\:ml-auto{margin-left:auto}.md\:mr-4{margin-right:1rem}.md\:block{display:block}.md\:inline{display:inline}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-\[71px\]{height:71px}.md\:h-\[95vh\]{height:95vh}.md\:h-\[min\(36rem\,85dvh\)\]{height:min(36rem,85dvh)}.md\:h-auto{height:auto}.md\:max-h-\[calc\(100svh-2rem\)\]{max-height:calc(100svh - 2rem)}.md\:min-h-\[103px\]{min-height:103px}.md\:w-52{width:13rem}.md\:w-\[80vw\]{width:80vw}.md\:w-\[calc\(100\%\/3_-_0\.5rem\)\]{width:calc(33.3333% - .5rem)}.md\:w-\[calc\(50\%_-_0\.375rem\)\]{width:calc(50% - .375rem)}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[1400px\]{max-width:1400px}.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:gap-2{gap:.5rem}.md\:self-auto{align-self:auto}.md\:overflow-x-auto{overflow-x:auto}.md\:overflow-y-hidden{overflow-y:hidden}.md\:p-6{padding:1.5rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:py-0{padding-top:0;padding-bottom:0}.md\:pb-4{padding-bottom:1rem}.md\:pl-4{padding-left:1rem}.md\:opacity-0{opacity:0}.md\:\[scrollbar-width\:none\]{scrollbar-width:none}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}}@media (width>=1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media print{.print\:block{display:block}.print\:hidden{display:none}.print\:h-auto{height:auto}.print\:max-w-none{max-width:none}.print\:flex-none{flex:none}.print\:overflow-visible{overflow:visible}.print\:p-0{padding:0}}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}@media (width>=768px){.md\:\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\*\+\*\]\:border-t>*+*{border-top-width:1px}.\[\&\>\*\+\*\]\:border-table-border>*+*{border-color:hsl(var(--table-border))}.\[\&\>\*\]\:rounded-none>*{border-radius:0}.\[\&\>button\:first-child\]\:rounded-l-md>button:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\>button\:last-child\]\:rounded-r-md>button:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>button\:not\(\:first-child\)\]\:-ml-px>button:not(:first-child){margin-left:-1px}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>button\]\:rounded-none>button{border-radius:0}.\[\&\>div\:first-child\]\:py-2>div:first-child{padding-top:.5rem;padding-bottom:.5rem}.\[\&\>div\]\:\!box-border>div{box-sizing:border-box!important}.\[\&\>div\]\:\!pr-4>div{padding-right:1rem!important}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:h-3\.5>svg{height:.875rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:w-3\.5>svg{width:.875rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate:90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke=\#ccc]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline-offset:2px;outline:2px solid #0000}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke=\#ccc]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke=\#ccc]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline-offset:2px;outline:2px solid #0000}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.825rem;line-height:1.1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_\[data-radix-scroll-area-viewport\]\>div\]\:\!block [data-radix-scroll-area-viewport]>div{display:block!important}.\[\&_\[data-radix-scroll-area-viewport\]\]\:max-h-56 [data-radix-scroll-area-viewport]{max-height:14rem}.\[\&_button\]\:w-full button{width:100%}.\[\&_button\]\:justify-start button{justify-content:flex-start}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-3 svg{width:.75rem;height:.75rem}.\[\&_svg\]\:size-3\.5 svg{width:.875rem;height:.875rem}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:size-5 svg{width:1.25rem;height:1.25rem}.\[\&_svg\]\:size-6 svg{width:1.5rem;height:1.5rem}.\[\&_svg\]\:h-auto svg{height:auto}.\[\&_svg\]\:max-w-full svg{max-width:100%}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}.\[\&_tr\]\:border-b-0 tr{border-bottom-width:0}.\[\&_tr\]\:border-table-border tr{border-color:hsl(var(--table-border))}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Lt as n}from"./dist-DZtmmQ-F.js";import{$t as r,M as i,Tn as a,v as o}from"./lucide-react-CNNzKD4G.js";import{t as s}from"./button-DhxraVUW.js";import{i as c,n as l,r as u,t as d}from"./tooltip-Cg_EhO9M.js";import{lt as f}from"./index-DdJcjvu2.js";import{n as p}from"./sorting-DqwxPMRN.js";var m=e(),h=t();function g(e){let t=(0,m.c)(9),{codingIndex:r,modelName:i}=e,a=p(r);if(a===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=[1,2,3,4,5],t[0]=s):s=t[0];let f;t[1]===a?f=t[2]:(f=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`div`,{className:`flex items-center gap-0.5`,children:s.map(e=>(0,h.jsx)(o,{className:`h-3 w-3 ${e<=a?`fill-yellow-400 text-yellow-400`:`text-gray-300`}`},e))})}),t[1]=a,t[2]=f);let g;t[3]!==r||t[4]!==i?(g=(0,h.jsx)(l,{children:(0,h.jsxs)(`p`,{className:n.body,children:[i,` was indexed `,r,` for coding intelligence`]})}),t[3]=r,t[4]=i,t[5]=g):g=t[5];let _;return t[6]!==f||t[7]!==g?(_=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[f,g]})}),t[6]=f,t[7]=g,t[8]=_):_=t[8],_}function _(e){let t=(0,m.c)(8),{id:n,checked:r,disabled:i,onChange:a}=e,o=i===void 0?!1:i,s;t[0]!==r||t[1]!==o||t[2]!==n||t[3]!==a?(s=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`span`,{className:`inline-flex`,children:(0,h.jsx)(f,{id:n,disabled:o,value:r,onChange:a,ariaLabel:`Select All Models`})})}),t[0]=r,t[1]=o,t[2]=n,t[3]=a,t[4]=s):s=t[4];let p;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,h.jsx)(l,{children:`Select All Models`}),t[5]=p):p=t[5];let g;return t[6]===s?g=t[7]:(g=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[s,p]})}),t[6]=s,t[7]=g),g}function v(e){let t=(0,m.c)(31),{sortBy:n,onSortByChange:f,showCodingIndex:p,showIntelligenceByPrice:g}=e,_=p===void 0?!1:p,v=g===void 0?!1:g,y=n===`alphabetical`?`secondary`:`ghost`,b;t[0]===f?b=t[1]:(b=()=>f(`alphabetical`),t[0]=f,t[1]=b);let x;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,h.jsx)(a,{className:`h-4 w-4`}),t[2]=x):x=t[2];let S;t[3]!==y||t[4]!==b?(S=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:y,size:`icon`,className:`h-8 w-8`,onClick:b,children:x})}),t[3]=y,t[4]=b,t[5]=S):S=t[5];let C;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsx)(l,{children:`Sort A–Z`}),t[6]=C):C=t[6];let w;t[7]===S?w=t[8]:(w=(0,h.jsxs)(d,{children:[S,C]}),t[7]=S,t[8]=w);let T=n===`price-low`||n===`price-high`?`secondary`:`ghost`,E;t[9]===f?E=t[10]:(E=()=>f(`price-low`),t[9]=f,t[10]=E);let D;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(r,{className:`h-4 w-4`}),t[11]=D):D=t[11];let O;t[12]!==E||t[13]!==T?(O=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:T,size:`icon`,className:`h-8 w-8`,onClick:E,children:D})}),t[12]=E,t[13]=T,t[14]=O):O=t[14];let k;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,h.jsx)(l,{children:`Sort by price`}),t[15]=k):k=t[15];let A;t[16]===O?A=t[17]:(A=(0,h.jsxs)(d,{children:[O,k]}),t[16]=O,t[17]=A);let j;t[18]!==f||t[19]!==_||t[20]!==n?(j=_?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:n===`coding-index`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`coding-index`),children:(0,h.jsx)(o,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by coding intelligence`})]}):null,t[18]=f,t[19]=_,t[20]=n,t[21]=j):j=t[21];let M;t[22]!==f||t[23]!==v||t[24]!==n?(M=v?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:n===`intelligence-by-price`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`intelligence-by-price`),children:(0,h.jsx)(i,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by price/intelligence`})]}):null,t[22]=f,t[23]=v,t[24]=n,t[25]=M):M=t[25];let N;return t[26]!==A||t[27]!==j||t[28]!==M||t[29]!==w?(N=(0,h.jsx)(u,{children:(0,h.jsxs)(`div`,{className:`flex items-center rounded-md p-0.5`,children:[w,A,j,M]})}),t[26]=A,t[27]=j,t[28]=M,t[29]=w,t[30]=N):N=t[30],N}export{v as n,g as r,_ as t};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Vt as n}from"./dist-DFsjr0PN.js";import{$t as r,M as i,Tn as a,v as o}from"./lucide-react-CNNzKD4G.js";import{t as s}from"./button-CltOBnLJ.js";import{i as c,n as l,r as u,t as d}from"./tooltip-JvDw-QDI.js";import{lt as f}from"./index-8x-2e2HM.js";import{n as p}from"./sorting-DqwxPMRN.js";var m=e(),h=t();function g(e){let t=(0,m.c)(9),{codingIndex:r,modelName:i}=e,a=p(r);if(a===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=[1,2,3,4,5],t[0]=s):s=t[0];let f;t[1]===a?f=t[2]:(f=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`div`,{className:`flex items-center gap-0.5`,children:s.map(e=>(0,h.jsx)(o,{className:`h-3 w-3 ${e<=a?`fill-yellow-400 text-yellow-400`:`text-gray-300`}`},e))})}),t[1]=a,t[2]=f);let g;t[3]!==r||t[4]!==i?(g=(0,h.jsx)(l,{children:(0,h.jsxs)(`p`,{className:n.body,children:[i,` was indexed `,r,` for coding intelligence`]})}),t[3]=r,t[4]=i,t[5]=g):g=t[5];let _;return t[6]!==f||t[7]!==g?(_=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[f,g]})}),t[6]=f,t[7]=g,t[8]=_):_=t[8],_}function _(e){let t=(0,m.c)(8),{id:n,checked:r,disabled:i,onChange:a}=e,o=i===void 0?!1:i,s;t[0]!==r||t[1]!==o||t[2]!==n||t[3]!==a?(s=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`span`,{className:`inline-flex`,children:(0,h.jsx)(f,{id:n,disabled:o,value:r,onChange:a,ariaLabel:`Select All Models`})})}),t[0]=r,t[1]=o,t[2]=n,t[3]=a,t[4]=s):s=t[4];let p;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,h.jsx)(l,{children:`Select All Models`}),t[5]=p):p=t[5];let g;return t[6]===s?g=t[7]:(g=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[s,p]})}),t[6]=s,t[7]=g),g}function v(e){let t=(0,m.c)(31),{sortBy:n,onSortByChange:f,showCodingIndex:p,showIntelligenceByPrice:g}=e,_=p===void 0?!1:p,v=g===void 0?!1:g,y=n===`alphabetical`?`secondary`:`ghost`,b;t[0]===f?b=t[1]:(b=()=>f(`alphabetical`),t[0]=f,t[1]=b);let x;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,h.jsx)(a,{className:`h-4 w-4`}),t[2]=x):x=t[2];let S;t[3]!==y||t[4]!==b?(S=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:y,size:`icon`,className:`h-8 w-8`,onClick:b,children:x})}),t[3]=y,t[4]=b,t[5]=S):S=t[5];let C;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsx)(l,{children:`Sort A–Z`}),t[6]=C):C=t[6];let w;t[7]===S?w=t[8]:(w=(0,h.jsxs)(d,{children:[S,C]}),t[7]=S,t[8]=w);let T=n===`price-low`||n===`price-high`?`secondary`:`ghost`,E;t[9]===f?E=t[10]:(E=()=>f(`price-low`),t[9]=f,t[10]=E);let D;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(r,{className:`h-4 w-4`}),t[11]=D):D=t[11];let O;t[12]!==E||t[13]!==T?(O=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:T,size:`icon`,className:`h-8 w-8`,onClick:E,children:D})}),t[12]=E,t[13]=T,t[14]=O):O=t[14];let k;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,h.jsx)(l,{children:`Sort by price`}),t[15]=k):k=t[15];let A;t[16]===O?A=t[17]:(A=(0,h.jsxs)(d,{children:[O,k]}),t[16]=O,t[17]=A);let j;t[18]!==f||t[19]!==_||t[20]!==n?(j=_?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:n===`coding-index`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`coding-index`),children:(0,h.jsx)(o,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by coding intelligence`})]}):null,t[18]=f,t[19]=_,t[20]=n,t[21]=j):j=t[21];let M;t[22]!==f||t[23]!==v||t[24]!==n?(M=v?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(s,{type:`button`,variant:n===`intelligence-by-price`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`intelligence-by-price`),children:(0,h.jsx)(i,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by price/intelligence`})]}):null,t[22]=f,t[23]=v,t[24]=n,t[25]=M):M=t[25];let N;return t[26]!==A||t[27]!==j||t[28]!==M||t[29]!==w?(N=(0,h.jsx)(u,{children:(0,h.jsxs)(`div`,{className:`flex items-center rounded-md p-0.5`,children:[w,A,j,M]})}),t[26]=A,t[27]=j,t[28]=M,t[29]=w,t[30]=N):N=t[30],N}export{v as n,g as r,_ as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{H as i,St as a,Vt as o}from"./dist-DFsjr0PN.js";import{r as s,t as c}from"./utils-Buz2Fe6i.js";import{$t as l,A as u,Sn as d,Tn as f,dt as p,gn as m}from"./lucide-react-CNNzKD4G.js";import{t as h}from"./button-CltOBnLJ.js";import{i as g,n as _,r as v,t as y}from"./tooltip-JvDw-QDI.js";import{$t as b,Dn as x,Ft as S,K as C,Nt as w,On as T,Rn as E,V as D,Vr as O,m as k}from"./api-BnJTzqjz.js";import{n as A}from"./scroll-area-DO1A2oHC.js";import{$t as j,Ar as M,Cr as N,Dr as P,Er as F,Or as I,Ot as L,St as R,Tr as z,Ut as ee,ft as te,gt as B,ht as V,kr as H,lt as U,mt as ne,pt as W,ut as G,wr as re}from"./index-8x-2e2HM.js";import{n as K,t as ie}from"./toggle-group-Db9wT9wS.js";import{n as ae,r as oe,t as se}from"./use-git-check-CLdZVT2V.js";import{t as ce}from"./sorting-DqwxPMRN.js";import{t as le}from"./pending-changes-Bn-0ak1d.js";var q=t(),J=r();function ue(e){let t=(0,q.c)(8),{gitLoading:n,gitInstalled:r,version:i,platform:a,plan:o,onCheckAgain:s}=e;if(n&&r===null){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,J.jsx)(p,{className:`h-5 w-5 animate-spin text-muted-foreground`})}),t[0]=e):e=t[0],e}if(r){let e;return t[1]===i?e=t[2]:(e=(0,J.jsx)(ae,{version:i}),t[1]=i,t[2]=e),e}let c;return t[3]!==n||t[4]!==s||t[5]!==o||t[6]!==a?(c=(0,J.jsx)(oe,{platform:a,plan:o,checking:n,onCheckAgain:s}),t[3]=n,t[4]=s,t[5]=o,t[6]=a,t[7]=c):c=t[7],c}var Y=e(n(),1);function de(e){let t=(0,q.c)(34),{model:n,disabled:r,willBeEnabled:i,isRecommended:a,onToggle:l}=e,u;t[0]===n.id?u=t[1]:(u=j(n.id),t[0]=n.id,t[1]=u);let d=u,f=n.pricing,p=i&&a,m;t[2]!==n.id||t[3]!==l?(m=function(){l(n.id)},t[2]=n.id,t[3]=l,t[4]=m):m=t[4];let h=m,v=r&&`opacity-25`,b;t[5]===v?b=t[6]:(b=c(`flex items-center space-x-3 p-3 hover:bg-muted/30 transition-colors cursor-default`,v),t[5]=v,t[6]=b);let x=`${d} ${i?`enabled`:`disabled`}`,S;t[7]!==r||t[8]!==h||t[9]!==n.id||t[10]!==x||t[11]!==i?(S=(0,J.jsx)(U,{id:n.id,disabled:r,value:i,onChange:h,ariaLabel:x}),t[7]=r,t[8]=h,t[9]=n.id,t[10]=x,t[11]=i,t[12]=S):S=t[12];let C=n.id,w;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(w=c(o.body,`peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate flex-1 w-0`),t[13]=w):w=t[13];let T;t[14]===p?T=t[15]:(T=p&&(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:` (Recommended)`}),t[14]=p,t[15]=T);let E;t[16]!==d||t[17]!==n.id||t[18]!==T?(E=(0,J.jsxs)(`label`,{htmlFor:C,className:w,children:[d,T]}),t[16]=d,t[17]=n.id,t[18]=T,t[19]=E):E=t[19];let D;t[20]===f?D=t[21]:(D=f&&(0,J.jsx)(`span`,{className:c(o.compact,`text-muted-foreground whitespace-nowrap flex-shrink-0`),children:(f.prompt??0)<=0&&(f.completion??0)<=0?`Free`:`${s(f.prompt??0)} in | ${s(f.completion??0)} out`}),t[20]=f,t[21]=D);let O;t[22]!==E||t[23]!==D?(O=(0,J.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[E,D]}),t[22]=E,t[23]=D,t[24]=O):O=t[24];let k;t[25]!==O||t[26]!==b||t[27]!==S?(k=(0,J.jsx)(g,{asChild:!0,children:(0,J.jsxs)(`div`,{className:b,children:[S,O]})}),t[25]=O,t[26]=b,t[27]=S,t[28]=k):k=t[28];let A;t[29]===n.description?A=t[30]:(A=n.description&&(0,J.jsx)(_,{side:`top`,className:`max-w-xs`,children:(0,J.jsx)(`p`,{className:o.body,children:n.description})}),t[29]=n.description,t[30]=A);let M;return t[31]!==k||t[32]!==A?(M=(0,J.jsxs)(y,{children:[k,A]}),t[31]=k,t[32]=A,t[33]=M):M=t[33],M}function fe(e){let t=/^[^:]+:\s+(.+)$/.exec(e);return(t?t[1]:e).trim()}function pe(e){return[j(e.id),e.name,fe(e.name)]}function me(e,t){let n=new Set(t.map(e=>e.toLowerCase()));return pe(e).some(e=>n.has(e.toLowerCase()))}function he(e,t){return e.filter(e=>me(e,t)).map(e=>e.id)}var X=i(`app.model-selector.ui`),Z=`rounded-full border-0 px-3 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`;function ge({provider:e,onModelsChange:t,isLoading:n,disabled:r,displayMode:i=`grid`,autoSelectRecommended:a=!1}){let[s,d]=(0,Y.useState)([]),[m,h]=(0,Y.useState)(new Set),[g,_]=(0,Y.useState)(new Set),[y,b]=(0,Y.useState)(new Map),[x,w]=(0,Y.useState)(!1),[T,E]=(0,Y.useState)(``),[D,O]=(0,Y.useState)(`alphabetical`);(0,Y.useEffect)(()=>{k()},[e]);let k=async()=>{w(!0),E(``),O(`alphabetical`);try{let t=await C(e);d(t.models);let n=new Set(t.enabledModelIds);h(n);let r=new Map,i=new Set;if(a)try{let{models:e}=await S();i=new Set(he(t.models,e)),r=new Map([...i].filter(e=>!n.has(e)).map(e=>[e,!0]))}catch(e){X.error(`Failed to load recommended models:`,e)}_(i),b(r),A(n,r,t.models)}catch(t){X.error(`Failed to load models for ${e}:`,t),d([]),h(new Set),_(new Set)}finally{w(!1)}},A=(e,n,r=s)=>{let i=new Set(e);r.forEach(e=>{n.has(e.id)&&(n.get(e.id)?i.add(e.id):i.delete(e.id))}),t?.(i)},M=e=>{b(t=>{let n=le(t,e,m);return A(m,n),n})},N=e=>{b(t=>{let n=new Map(t);return s.forEach(t=>{let r=m.has(t.id);e?r?n.delete(t.id):n.set(t.id,!0):r?n.set(t.id,!1):n.delete(t.id)}),A(m,n),n})},P=e=>j(e.id);function F(e,t=y){let n=t.has(e),r=t.get(e);return n?!!r:m.has(e)}let I=ce({models:s,query:T,sortBy:D,getDisplayName:P,getPriority:e=>+!F(e.id)}),L=D===`alphabetical`?`alphabetical`:`price`;function R(e){if(e===`alphabetical`){O(`alphabetical`);return}e===`price`&&O(`price-low`)}function z(){D!==`alphabetical`&&O(e=>e===`price-low`?`price-high`:`price-low`)}return x||n?(0,J.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,J.jsx)(p,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):s.length===0?(0,J.jsx)(`div`,{className:`text-center py-8`,children:(0,J.jsx)(`p`,{className:o.bodyMuted,children:`No models available for this provider.`})}):i===`compact`?(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:c(`flex items-center justify-between gap-3`,r&&`opacity-25`),children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,J.jsx)(U,{id:`select-all-models`,disabled:r,value:s.every(e=>F(e.id)),onChange:e=>N(e),ariaLabel:`Select all models`}),(0,J.jsx)(`label`,{htmlFor:`select-all-models`,className:c(o.body,`cursor-pointer`),children:`Select all models`})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,J.jsxs)(`div`,{className:`relative w-44 sm:w-52`,children:[(0,J.jsx)(u,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),(0,J.jsx)(re,{placeholder:`Search models...`,value:T,onChange:e=>E(e.target.value),disabled:r,className:`pl-8 h-9`})]}),(0,J.jsxs)(ie,{type:`single`,value:L,onValueChange:R,"aria-label":`Sort models`,variant:`outline`,className:`inline-flex rounded-full border bg-muted/40 p-1`,children:[(0,J.jsx)(K,{value:`alphabetical`,"aria-label":`Sort A–Z`,disabled:r,className:Z,children:(0,J.jsx)(f,{className:`h-4 w-4`})}),(0,J.jsx)(K,{value:`price`,"aria-label":`Sort by price`,disabled:r,className:Z,onClick:z,children:(0,J.jsx)(l,{className:`h-4 w-4`})})]})]})]}),(0,J.jsx)(v,{children:(0,J.jsx)(`div`,{className:`grid grid-cols-1 gap-0 overflow-hidden rounded-md border border-table-border`,children:I.length===0?(0,J.jsx)(`div`,{className:`text-center py-4`,children:(0,J.jsx)(`p`,{className:o.bodyMuted,children:T?`No models match your search.`:`No models available.`})}):I.map(e=>(0,J.jsx)(de,{model:e,disabled:r,willBeEnabled:F(e.id),isRecommended:g.has(e.id),onToggle:M},e.id))})})]}):null}function _e(e){let t=(0,q.c)(4),{providerSlug:n,modelsLoading:r,onModelsChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(ge,{provider:n,isLoading:r,displayMode:`compact`,disabled:!1,autoSelectRecommended:!0,onModelsChange:i})}),t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3],a}function Q(e,t,n){return e||t||n}function ve(e,t,n){return e||!t.trim()||!n}function ye(e){let t=(0,q.c)(38),{currentStep:n,savingOnboarding:r,gitLoading:i,validatingKey:a,connectingOpenRouter:o,apiKey:s,hasProvider:c,onSkip:l,onBack:u,onContinue:f,onValidate:g,onFinish:_}=e,v,y;t[0]!==s||t[1]!==o||t[2]!==c||t[3]!==r||t[4]!==a?(v=Q(r,a,o),y=ve(v,s,c),t[0]=s,t[1]=o,t[2]=c,t[3]=r,t[4]=a,t[5]=v,t[6]=y):(v=t[5],y=t[6]);let b=y,x;t[7]!==n||t[8]!==l||t[9]!==v?(x=n===`provider-selection`?(0,J.jsx)(h,{variant:`ghost`,onClick:l,disabled:v,children:`Skip for now`}):null,t[7]=n,t[8]=l,t[9]=v,t[10]=x):x=t[10];let S;t[11]===x?S=t[12]:(S=(0,J.jsx)(`div`,{children:x}),t[11]=x,t[12]=S);let C;t[13]!==n||t[14]!==u||t[15]!==v?(C=n===`git-check`?null:(0,J.jsx)(h,{variant:`outline`,onClick:u,disabled:v,children:`Back`}),t[13]=n,t[14]=u,t[15]=v,t[16]=C):C=t[16];let w;t[17]!==n||t[18]!==i||t[19]!==f?(w=n===`git-check`?(0,J.jsxs)(h,{onClick:f,disabled:i,className:`gap-2`,children:[`Continue `,(0,J.jsx)(d,{className:`h-4 w-4`})]}):null,t[17]=n,t[18]=i,t[19]=f,t[20]=w):w=t[20];let T;t[21]!==n||t[22]!==g||t[23]!==b||t[24]!==a?(T=n===`provider-selection`?(0,J.jsx)(h,{onClick:g,disabled:b,className:`gap-2`,children:a?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(p,{className:`h-4 w-4 animate-spin`}),`Validating...`]}):(0,J.jsxs)(J.Fragment,{children:[`Next `,(0,J.jsx)(d,{className:`h-4 w-4`})]})}):null,t[21]=n,t[22]=g,t[23]=b,t[24]=a,t[25]=T):T=t[25];let E;t[26]!==n||t[27]!==_||t[28]!==r?(E=n===`model-selection`?(0,J.jsx)(h,{onClick:_,disabled:r,className:`gap-2`,children:r?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(p,{className:`h-4 w-4 animate-spin`}),`Finishing...`]}):(0,J.jsxs)(J.Fragment,{children:[`Finish `,(0,J.jsx)(m,{className:`h-4 w-4`})]})}):null,t[26]=n,t[27]=_,t[28]=r,t[29]=E):E=t[29];let D;t[30]!==C||t[31]!==w||t[32]!==T||t[33]!==E?(D=(0,J.jsxs)(`div`,{className:`flex gap-3`,children:[C,w,T,E]}),t[30]=C,t[31]=w,t[32]=T,t[33]=E,t[34]=D):D=t[34];let O;return t[35]!==S||t[36]!==D?(O=(0,J.jsx)(`div`,{className:`px-6 py-4 border-t border-border bg-muted/10`,children:(0,J.jsxs)(I,{className:`flex items-center justify-between`,children:[S,D]})}),t[35]=S,t[36]=D,t[37]=O):O=t[37],O}function be(e){let t=(0,q.c)(22),{selectedProvider:n,onProviderChange:r,apiKey:i,onApiKeyChange:s,validatingKey:l,connectingOpenRouter:u,savingOnboarding:d,providerEnvValues:f,onProviderEnvChange:p,keyError:m,onConnectOpenRouter:h}=e,g;t[0]!==u||t[1]!==d||t[2]!==l?(g=Q(d,l,u),t[0]=u,t[1]=d,t[2]=l,t[3]=g):g=t[3];let _=g,v;t[4]!==i||t[5]!==s||t[6]!==h||t[7]!==r||t[8]!==_||t[9]!==n?(v=(0,J.jsx)(G,{selectedProvider:n,onProviderChange:r,showApiKeyInput:!0,apiKey:i,onApiKeyChange:s,variant:`dropdown`,isLoading:_,onConnectOpenRouter:h}),t[4]=i,t[5]=s,t[6]=h,t[7]=r,t[8]=_,t[9]=n,t[10]=v):v=t[10];let y;t[11]!==p||t[12]!==_||t[13]!==f||t[14]!==n?(y=n&&ne(n).map(e=>(0,J.jsx)(L,{label:(0,J.jsx)(N,{htmlFor:e,children:W(e)}),control:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`input`,{id:e,value:f[e]??``,onChange:t=>p(e,t.target.value),disabled:_,className:`h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base`,placeholder:a(n.slug)&&e===`LOCAL_API_URL`?n.api:e,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),n.slug===`azure`&&e===V(n)||a(n.slug)&&e===`LOCAL_API_URL`?(0,J.jsx)(`p`,{className:c(o.bodyMuted,`mt-2 break-all`),children:B(n,f)||n.api}):null]}),align:`start`},e)),t[11]=p,t[12]=_,t[13]=f,t[14]=n,t[15]=y):y=t[15];let b;t[16]===m?b=t[17]:(b=m?(0,J.jsx)(R,{variant:`error`,className:`mb-0`,children:m}):null,t[16]=m,t[17]=b);let x;return t[18]!==v||t[19]!==y||t[20]!==b?(x=(0,J.jsxs)(`div`,{className:`space-y-4`,children:[v,y,b]}),t[18]=v,t[19]=y,t[20]=b,t[21]=x):x=t[21],x}function xe(e){let t=(0,q.c)(3),{currentStep:n}=e;if(n===`provider-selection`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(M,{children:`Select an AI Provider`}),(0,J.jsx)(P,{children:`Choose your preferred AI provider and enter your API key.`})]}),t[0]=e):e=t[0],e}if(n===`model-selection`){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(M,{children:`Select Models`}),(0,J.jsx)(P,{children:`Choose which models you want to use with this provider.`})]}),t[1]=e):e=t[1],e}let r;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(M,{children:`Let's get started`}),(0,J.jsx)(P,{children:`First, we need to check that Git is installed on your system.`})]}),t[2]=r):r=t[2],r}function Se(e){let t=(0,q.c)(26),{currentStep:n}=e,r=function(e){return e===`provider-selection`&&n===`provider-selection`||n===`model-selection`},i=function(e){return n===e},a=i(`git-check`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,s;t[0]===a?s=t[1]:(s=c(`flex items-center justify-center h-8 w-8 rounded-full`,o.label,a),t[0]=a,t[1]=s);let l;t[2]===s?l=t[3]:(l=(0,J.jsx)(`div`,{className:s,children:`1`}),t[2]=s,t[3]=l);let u=r(`provider-selection`)?`bg-primary`:`bg-muted`,d;t[4]===u?d=t[5]:(d=c(`h-0.5 flex-1`,u),t[4]=u,t[5]=d);let f;t[6]===d?f=t[7]:(f=(0,J.jsx)(`div`,{className:d}),t[6]=d,t[7]=f);let p=i(`provider-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,m;t[8]===p?m=t[9]:(m=c(`flex items-center justify-center h-8 w-8 rounded-full`,o.label,p),t[8]=p,t[9]=m);let h;t[10]===m?h=t[11]:(h=(0,J.jsx)(`div`,{className:m,children:`2`}),t[10]=m,t[11]=h);let g=r(`model-selection`)?`bg-primary`:`bg-muted`,_;t[12]===g?_=t[13]:(_=c(`h-0.5 flex-1`,g),t[12]=g,t[13]=_);let v;t[14]===_?v=t[15]:(v=(0,J.jsx)(`div`,{className:_}),t[14]=_,t[15]=v);let y=i(`model-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,b;t[16]===y?b=t[17]:(b=c(`flex items-center justify-center h-8 w-8 rounded-full`,o.label,y),t[16]=y,t[17]=b);let x;t[18]===b?x=t[19]:(x=(0,J.jsx)(`div`,{className:b,children:`3`}),t[18]=b,t[19]=x);let S;return t[20]!==v||t[21]!==x||t[22]!==l||t[23]!==f||t[24]!==h?(S=(0,J.jsxs)(`div`,{className:`w-1/2 mx-auto flex items-center gap-2 mb-6`,children:[l,f,h,v,x]}),t[20]=v,t[21]=x,t[22]=l,t[23]=f,t[24]=h,t[25]=S):S=t[25],S}var $=i(`app.onboarding-dialog.ui`);async function Ce(){for(let e=0;e<120;e+=1){await new Promise(e=>window.setTimeout(e,1e3)),O.invalidate(`providers`);let e=(await w()).find(e=>e.slug.toLowerCase()===`openrouter`);if(e?.apiKey)return e}return null}function we(e,t,n){let[r,i]=(0,Y.useState)(`git-check`),a=se({enabled:e&&r===`git-check`}),o=(0,Y.useRef)(!1),[s,c]=(0,Y.useState)([]),[l,u]=(0,Y.useState)(null),[d,f]=(0,Y.useState)(``),[p,m]=(0,Y.useState)(!1),[h,g]=(0,Y.useState)({}),[_,v]=(0,Y.useState)(!1),[y,S]=(0,Y.useState)(``),[O,A]=(0,Y.useState)(new Set),[j,M]=(0,Y.useState)(!1),[N,P]=(0,Y.useState)(!1);async function F(){try{let e=await w();if(c(e),e.length>0&&!l){let t=te(e);t&&(u(t),f(t.apiKey??``),g(t.envValues??{}))}}catch(e){$.error(`Failed to load providers:`,e)}}async function I(){if(l){M(!0);try{await C(l.name),A(new Set)}catch(e){$.error(`Failed to load models:`,e)}finally{M(!1)}}}(0,Y.useEffect)(()=>{e&&r===`git-check`&&a.hasChecked&&!o.current&&(o.current=!0,a.gitInstalled&&i(`provider-selection`))},[e,r,a.hasChecked,a.gitInstalled]),(0,Y.useEffect)(()=>{e&&r===`provider-selection`&&s.length===0&&F()},[e,r,s.length]),(0,Y.useEffect)(()=>{e&&r===`model-selection`&&l&&I()},[e,r,l]);async function L(){if(!l||!d.trim()){S(`Please enter an API key`);return}let e=ne(l),t=e.find(e=>!h[e]?.trim());if(t){S(`Please enter ${W(t)}`);return}v(!0),S(``);try{e.length>0&&await x(Object.fromEntries(e.map(e=>[e,h[e].trim()]))),await T(l.slug,d),i(`model-selection`)}catch(e){S(e instanceof Error?e.message:`Failed to validate API key`)}finally{v(!1)}}async function R(){if(l){P(!0);try{for(let e of O)await D(l.slug,e);ee(),await k(),n?.(),t(!1)}catch(e){$.error(`Failed to complete onboarding:`,e)}finally{P(!1)}}}async function z(){P(!0);try{await k(),n?.(),t(!1)}catch(e){$.error(`Failed to skip onboarding:`,e)}finally{P(!1)}}function B(e){u(e),f(e.apiKey??``),g(e.envValues??{}),S(``)}function V(e,t){g(n=>({...n,[e]:t}))}function H(){i(`provider-selection`)}async function U(){if(!p){m(!0),S(``);try{await b(await E());let e=await Ce();if(!e){S(`OpenRouter connection timed out. You can enter an API key manually.`);return}u(e),f(e.apiKey??``),i(`model-selection`)}catch(e){S(e instanceof Error?e.message:`Failed to connect to OpenRouter`)}finally{m(!1)}}}function G(){r===`provider-selection`?i(`git-check`):r===`model-selection`&&i(`provider-selection`)}return{currentStep:r,git:a,selectedProvider:l,apiKey:d,setApiKey:f,connectingOpenRouter:p,validatingKey:_,savingOnboarding:N,providerEnvValues:h,keyError:y,modelsLoading:j,setEnabledModelIds:A,handleProviderChange:B,handleProviderEnvChange:V,handleGitCheckProceed:H,handleConnectOpenRouter:U,handleBack:G,skipOnboarding:z,validateAndMoveNext:L,finishOnboarding:R}}function Te(e){e.preventDefault()}function Ee(e){let t=(0,q.c)(47),{open:n,onOpenChange:r,onComplete:i}=e,a=we(n,r,i),o;t[0]===a.currentStep?o=t[1]:(o=(0,J.jsx)(Se,{currentStep:a.currentStep}),t[0]=a.currentStep,t[1]=o);let s;t[2]===a.currentStep?s=t[3]:(s=(0,J.jsx)(H,{children:(0,J.jsx)(xe,{currentStep:a.currentStep})}),t[2]=a.currentStep,t[3]=s);let c;t[4]!==o||t[5]!==s?(c=(0,J.jsxs)(`div`,{className:`px-6 pt-6 pb-2`,children:[o,s]}),t[4]=o,t[5]=s,t[6]=c):c=t[6];let l;t[7]!==a.currentStep||t[8]!==a.git?(l=a.currentStep===`git-check`?(0,J.jsx)(`div`,{className:`space-y-4`,children:(0,J.jsx)(ue,{gitLoading:a.git.loading,gitInstalled:a.git.gitInstalled,version:a.git.version,platform:a.git.platform,plan:a.git.plan,onCheckAgain:()=>void a.git.check()})}):null,t[7]=a.currentStep,t[8]=a.git,t[9]=l):l=t[9];let u;t[10]===a?u=t[11]:(u=a.currentStep===`provider-selection`?(0,J.jsx)(be,{selectedProvider:a.selectedProvider,onProviderChange:a.handleProviderChange,apiKey:a.apiKey,onApiKeyChange:a.setApiKey,validatingKey:a.validatingKey,connectingOpenRouter:a.connectingOpenRouter,savingOnboarding:a.savingOnboarding,providerEnvValues:a.providerEnvValues,onProviderEnvChange:a.handleProviderEnvChange,keyError:a.keyError,onConnectOpenRouter:()=>void a.handleConnectOpenRouter()}):null,t[10]=a,t[11]=u);let d;t[12]!==a.currentStep||t[13]!==a.modelsLoading||t[14]!==a.selectedProvider||t[15]!==a.setEnabledModelIds?(d=a.currentStep===`model-selection`&&a.selectedProvider?(0,J.jsx)(_e,{providerSlug:a.selectedProvider.slug,modelsLoading:a.modelsLoading,onModelsChange:a.setEnabledModelIds}):null,t[12]=a.currentStep,t[13]=a.modelsLoading,t[14]=a.selectedProvider,t[15]=a.setEnabledModelIds,t[16]=d):d=t[16];let f;t[17]!==l||t[18]!==u||t[19]!==d?(f=(0,J.jsx)(A,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,J.jsxs)(`div`,{className:`px-6 py-4`,children:[l,u,d]})}),t[17]=l,t[18]=u,t[19]=d,t[20]=f):f=t[20];let p=!!a.selectedProvider,m;t[21]===a?m=t[22]:(m=()=>void a.skipOnboarding(),t[21]=a,t[22]=m);let h,g;t[23]===a?(h=t[24],g=t[25]):(h=()=>void a.validateAndMoveNext(),g=()=>void a.finishOnboarding(),t[23]=a,t[24]=h,t[25]=g);let _;t[26]!==a.apiKey||t[27]!==a.connectingOpenRouter||t[28]!==a.currentStep||t[29]!==a.git.loading||t[30]!==a.handleBack||t[31]!==a.handleGitCheckProceed||t[32]!==a.savingOnboarding||t[33]!==a.validatingKey||t[34]!==h||t[35]!==g||t[36]!==p||t[37]!==m?(_=(0,J.jsx)(ye,{currentStep:a.currentStep,savingOnboarding:a.savingOnboarding,gitLoading:a.git.loading,validatingKey:a.validatingKey,connectingOpenRouter:a.connectingOpenRouter,apiKey:a.apiKey,hasProvider:p,onSkip:m,onBack:a.handleBack,onContinue:a.handleGitCheckProceed,onValidate:h,onFinish:g}),t[26]=a.apiKey,t[27]=a.connectingOpenRouter,t[28]=a.currentStep,t[29]=a.git.loading,t[30]=a.handleBack,t[31]=a.handleGitCheckProceed,t[32]=a.savingOnboarding,t[33]=a.validatingKey,t[34]=h,t[35]=g,t[36]=p,t[37]=m,t[38]=_):_=t[38];let v;t[39]!==_||t[40]!==c||t[41]!==f?(v=(0,J.jsxs)(F,{className:`max-w-2xl h-[min(42rem,90dvh)] flex flex-col p-0 overflow-hidden`,onInteractOutside:Te,children:[c,f,_]}),t[39]=_,t[40]=c,t[41]=f,t[42]=v):v=t[42];let y;return t[43]!==r||t[44]!==n||t[45]!==v?(y=(0,J.jsx)(z,{open:n,onOpenChange:r,children:v}),t[43]=r,t[44]=n,t[45]=v,t[46]=y):y=t[46],y}export{ye as OnboardingFooter,Ee as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{i,n as a,r as o,t as s}from"./tooltip-Cg_EhO9M.js";import{lr as c,sr as l,ur as u}from"./index-DdJcjvu2.js";var d=t(),f=e(n(),1),p=r(),m=`h-8 rounded-full border-0 bg-muted/40 p-0.5`,h=`rounded-full bg-foreground shadow-sm`,g=`h-7 rounded-full px-4 data-[state=active]:text-background`;function _(e){let t=(0,d.c)(12),{value:n,onValueChange:r,options:_,className:v}=e,y;t[0]===r?y=t[1]:(y=e=>r(e),t[0]=r,t[1]=y);let b;if(t[2]!==_){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=function(e){let t=(0,p.jsx)(u,{value:e.value,className:g,children:e.label});return e.tooltip?(0,p.jsxs)(s,{children:[(0,p.jsx)(i,{asChild:!0,children:t}),(0,p.jsx)(a,{children:e.tooltip})]},e.value):(0,p.jsx)(f.Fragment,{children:t},e.value)},t[4]=e):e=t[4],b=_.map(e),t[2]=_,t[3]=b}else b=t[3];let x;t[5]===b?x=t[6]:(x=(0,p.jsx)(c,{className:m,indicatorClassName:h,children:b}),t[5]=b,t[6]=x);let S;return t[7]!==v||t[8]!==y||t[9]!==x||t[10]!==n?(S=(0,p.jsx)(o,{children:(0,p.jsx)(l,{value:n,onValueChange:y,className:v,children:x})}),t[7]=v,t[8]=y,t[9]=x,t[10]=n,t[11]=S):S=t[11],S}export{_ as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{i,n as a,r as o,t as s}from"./tooltip-JvDw-QDI.js";import{cr as c,dr as l,ur as u}from"./index-8x-2e2HM.js";var d=t(),f=e(n(),1),p=r(),m=`h-8 rounded-full border-0 bg-muted/40 p-0.5`,h=`rounded-full bg-foreground shadow-sm`,g=`h-7 rounded-full px-4 data-[state=active]:text-background`;function _(e){let t=(0,d.c)(12),{value:n,onValueChange:r,options:_,className:v}=e,y;t[0]===r?y=t[1]:(y=e=>r(e),t[0]=r,t[1]=y);let b;if(t[2]!==_){let e;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=function(e){let t=(0,p.jsx)(l,{value:e.value,className:g,children:e.label});return e.tooltip?(0,p.jsxs)(s,{children:[(0,p.jsx)(i,{asChild:!0,children:t}),(0,p.jsx)(a,{children:e.tooltip})]},e.value):(0,p.jsx)(f.Fragment,{children:t},e.value)},t[4]=e):e=t[4],b=_.map(e),t[2]=_,t[3]=b}else b=t[3];let x;t[5]===b?x=t[6]:(x=(0,p.jsx)(u,{className:m,indicatorClassName:h,children:b}),t[5]=b,t[6]=x);let S;return t[7]!==v||t[8]!==y||t[9]!==x||t[10]!==n?(S=(0,p.jsx)(o,{children:(0,p.jsx)(c,{value:n,onValueChange:y,className:v,children:x})}),t[7]=v,t[8]=y,t[9]=x,t[10]=n,t[11]=S):S=t[11],S}export{_ as t};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Lt as n}from"./dist-DZtmmQ-F.js";import{t as r}from"./utils-BCj_kT9l.js";var i=e(),a=t();function o(e){let t=(0,i.c)(7),{size:n,className:o,"aria-label":s}=e,c=n===void 0?20:n,l;t[0]===o?l=t[1]:(l=r(`shrink-0 text-brand`,o),t[0]=o,t[1]=l);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,a.jsxs)(`g`,{fill:`none`,stroke:`currentColor`,strokeWidth:2,children:[(0,a.jsx)(`circle`,{className:`ai-spinner-ring`,cx:`8`,cy:`8`,r:7}),(0,a.jsx)(`circle`,{className:`ai-spinner-ring ai-spinner-ring-second`,cx:`8`,cy:`8`,r:7})]}),t[2]=u):u=t[2];let d;return t[3]!==s||t[4]!==c||t[5]!==l?(d=(0,a.jsx)(`svg`,{role:`img`,"aria-label":s,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,width:c,height:c,className:l,children:u}),t[3]=s,t[4]=c,t[5]=l,t[6]=d):d=t[6],d}function s(e){switch(e){case`searching`:return`Searching`;case`solving`:return`Thinking`;default:return`Working`}}function c(e){let t=(0,i.c)(20),{centered:c,className:l,containerClassName:u,label:d,size:f,state:p}=e,m=c===void 0?!1:c,h=f===void 0?`md`:f,g=p===void 0?`working`:p,_=h===`sm`?16:h===`lg`?32:20,v;t[0]!==d||t[1]!==g?(v=d??s(g),t[0]=d,t[1]=g,t[2]=v):v=t[2];let y=m&&`mx-auto`,b;t[3]!==l||t[4]!==y?(b=r(y,l),t[3]=l,t[4]=y,t[5]=b):b=t[5];let x;t[6]!==_||t[7]!==v||t[8]!==b?(x=(0,a.jsx)(o,{size:_,"aria-label":v,className:b}),t[6]=_,t[7]=v,t[8]=b,t[9]=x):x=t[9];let S=x;if(!m)return S;let C;t[10]===u?C=t[11]:(C=r(`flex h-full items-center justify-center`,u),t[10]=u,t[11]=C);let w;t[12]===d?w=t[13]:(w=d?(0,a.jsx)(`p`,{"aria-hidden":`true`,className:r(n.bodyMuted,`mt-2`),children:d}):null,t[12]=d,t[13]=w);let T;t[14]!==S||t[15]!==w?(T=(0,a.jsxs)(`div`,{className:`text-center`,children:[S,w]}),t[14]=S,t[15]=w,t[16]=T):T=t[16];let E;return t[17]!==T||t[18]!==C?(E=(0,a.jsx)(`div`,{className:C,children:T}),t[17]=T,t[18]=C,t[19]=E):E=t[19],E}export{c as t};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Vt as n}from"./dist-DFsjr0PN.js";import{t as r}from"./utils-Buz2Fe6i.js";var i=e(),a=t();function o(e){let t=(0,i.c)(7),{size:n,className:o,"aria-label":s}=e,c=n===void 0?20:n,l;t[0]===o?l=t[1]:(l=r(`shrink-0 text-brand`,o),t[0]=o,t[1]=l);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,a.jsxs)(`g`,{fill:`none`,stroke:`currentColor`,strokeWidth:2,children:[(0,a.jsx)(`circle`,{className:`ai-spinner-ring`,cx:`8`,cy:`8`,r:7}),(0,a.jsx)(`circle`,{className:`ai-spinner-ring ai-spinner-ring-second`,cx:`8`,cy:`8`,r:7})]}),t[2]=u):u=t[2];let d;return t[3]!==s||t[4]!==c||t[5]!==l?(d=(0,a.jsx)(`svg`,{role:`img`,"aria-label":s,xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,width:c,height:c,className:l,children:u}),t[3]=s,t[4]=c,t[5]=l,t[6]=d):d=t[6],d}function s(e){switch(e){case`searching`:return`Searching`;case`solving`:return`Thinking`;default:return`Working`}}function c(e){let t=(0,i.c)(20),{centered:c,className:l,containerClassName:u,label:d,size:f,state:p}=e,m=c===void 0?!1:c,h=f===void 0?`md`:f,g=p===void 0?`working`:p,_=h===`sm`?16:h===`lg`?32:20,v;t[0]!==d||t[1]!==g?(v=d??s(g),t[0]=d,t[1]=g,t[2]=v):v=t[2];let y=m&&`mx-auto`,b;t[3]!==l||t[4]!==y?(b=r(y,l),t[3]=l,t[4]=y,t[5]=b):b=t[5];let x;t[6]!==_||t[7]!==v||t[8]!==b?(x=(0,a.jsx)(o,{size:_,"aria-label":v,className:b}),t[6]=_,t[7]=v,t[8]=b,t[9]=x):x=t[9];let S=x;if(!m)return S;let C;t[10]===u?C=t[11]:(C=r(`flex h-full items-center justify-center`,u),t[10]=u,t[11]=C);let w;t[12]===d?w=t[13]:(w=d?(0,a.jsx)(`p`,{"aria-hidden":`true`,className:r(n.bodyMuted,`mt-2`),children:d}):null,t[12]=d,t[13]=w);let T;t[14]!==S||t[15]!==w?(T=(0,a.jsxs)(`div`,{className:`text-center`,children:[S,w]}),t[14]=S,t[15]=w,t[16]=T):T=t[16];let E;return t[17]!==T||t[18]!==C?(E=(0,a.jsx)(`div`,{className:C,children:T}),t[17]=T,t[18]=C,t[19]=E):E=t[19],E}export{c as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Vt as a,_n as o}from"./dist-DFsjr0PN.js";import{t as s}from"./utils-Buz2Fe6i.js";import{dt as c}from"./lucide-react-CNNzKD4G.js";import{t as l}from"./button-CltOBnLJ.js";import{$n as u,St as d,Yn as f}from"./api-BnJTzqjz.js";import{t as p}from"./use-toast-xpb5jNtN.js";import{At as m,B as h,Cr as g,Ct as _,Dt as v,Pt as y,bt as b,jt as x,kt as S,lt as C,wr as w}from"./index-8x-2e2HM.js";import{i as T}from"./commit-method-fields-CX9hg6Je.js";import{t as E}from"./use-settings-page-loading-CpaBd260.js";var D=t(),O=r();function ee(e){let t=(0,D.c)(4),{useBuiltInBrowser:n,disabled:r,onChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,O.jsx)(b,{title:`Built-in Browser`,description:`When enabled, Tarsk shows the Browser tab and opens detected dev URLs in the app. When disabled, the tab is hidden and URLs open in your system browser.`,controlLayout:`row-end`,action:(0,O.jsx)(C,{value:n,onChange:i,disabled:r,ariaLabel:`Built-in Browser`})}),t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3],a}function k(e){return e===o.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`}function A(e){let t=(0,D.c)(9),{commitMethod:n,loading:r,onChange:i}=e,a;t[0]===n?a=t[1]:(a=k(n),t[0]=n,t[1]=a);let o;t[2]!==n||t[3]!==r||t[4]!==i?(o=(0,O.jsx)(T,{commitMethod:n,onCommitMethodChange:i,disabled:r}),t[2]=n,t[3]=r,t[4]=i,t[5]=o):o=t[5];let s;return t[6]!==a||t[7]!==o?(s=(0,O.jsx)(b,{title:`Commit Method`,description:a,controlLayout:`row-end`,action:o}),t[6]=a,t[7]=o,t[8]=s):s=t[8],s}function j(e){let t=(0,D.c)(10),{allowAllCommands:n,patterns:r,disabled:i,onRemove:o}=e;if(n||r.length===0)return null;let c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,O.jsx)(g,{children:`Allowed command patterns`}),t[0]=c):c=t[0];let u;if(t[1]!==i||t[2]!==o||t[3]!==r){let e;t[5]!==i||t[6]!==o?(e=e=>(0,O.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-border px-3 py-2`,children:[(0,O.jsx)(`code`,{className:s(a.mono,a.bodyMuted),children:e}),(0,O.jsx)(l,{type:`button`,variant:`ghost`,size:`sm`,disabled:i,onClick:()=>o(e),children:`Remove`})]},e),t[5]=i,t[6]=o,t[7]=e):e=t[7],u=r.map(e),t[1]=i,t[2]=o,t[3]=r,t[4]=u}else u=t[4];let d;return t[8]===u?d=t[9]:(d=(0,O.jsxs)(`div`,{className:`space-y-2 mt-3`,children:[c,(0,O.jsx)(`ul`,{className:`space-y-1`,children:u})]}),t[8]=u,t[9]=d),d}function te(e){let t=(0,D.c)(16),{allowAllCommands:n,allowedCommandPatterns:r,loading:i,controlsDisabled:a,onAllowAllChange:o,onPatternsChange:s}=e,c=!n,l;t[0]===o?l=t[1]:(l=e=>o(!e),t[0]=o,t[1]=l);let u;t[2]!==i||t[3]!==c||t[4]!==l?(u=(0,O.jsx)(C,{value:c,onChange:l,disabled:i,ariaLabel:`Confirm Commands`}),t[2]=i,t[3]=c,t[4]=l,t[5]=u):u=t[5];let d;t[6]===s?d=t[7]:(d=e=>s(t=>t.filter(t=>t!==e)),t[6]=s,t[7]=d);let f;t[8]!==n||t[9]!==r||t[10]!==a||t[11]!==d?(f=(0,O.jsx)(j,{allowAllCommands:n,patterns:r,disabled:a,onRemove:d}),t[8]=n,t[9]=r,t[10]=a,t[11]=d,t[12]=f):f=t[12];let p;return t[13]!==u||t[14]!==f?(p=(0,O.jsx)(b,{title:`Confirm Commands`,description:`When enabled, the agent asks for approval before running bash commands, skill scripts, and browser shell calls.`,controlLayout:`row-end`,action:u,children:f}),t[13]=u,t[14]=f,t[15]=p):p=t[15],p}function M(e){let t=(0,D.c)(17),{runCmd:n,loading:r,suggestingCommand:i,suggestDisabled:a,onChange:o,onSuggest:s}=e,u;t[0]===o?u=t[1]:(u=e=>o(e.target.value),t[0]=o,t[1]=u);let d;t[2]!==r||t[3]!==n||t[4]!==u?(d=(0,O.jsx)(w,{id:`runCommand`,value:n,onChange:u,placeholder:`e.g. npm run dev`,className:`font-mono pr-28`,disabled:r}),t[2]=r,t[3]=n,t[4]=u,t[5]=d):d=t[5];let f;t[6]===s?f=t[7]:(f=()=>void s(),t[6]=s,t[7]=f);let p;t[8]===i?p=t[9]:(p=i?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(c,{className:`h-3 w-3 animate-spin`}),`Suggesting...`]}):`Suggest`,t[8]=i,t[9]=p);let m;t[10]!==a||t[11]!==f||t[12]!==p?(m=(0,O.jsx)(l,{variant:`ghost`,size:`sm`,className:`absolute right-1 top-1 h-8`,onClick:f,disabled:a,children:p}),t[10]=a,t[11]=f,t[12]=p,t[13]=m):m=t[13];let h;return t[14]!==d||t[15]!==m?(h=(0,O.jsx)(b,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,O.jsxs)(`div`,{className:`relative`,children:[d,m]})}),t[14]=d,t[15]=m,t[16]=h):h=t[16],h}function ne(e){let t=(0,D.c)(8),{saving:n,disabled:r,onSave:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=n?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(c,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[2]=n,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,O.jsx)(l,{onClick:a,disabled:r,children:o}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function N(e){let t=(0,D.c)(6),{value:n,loading:r,onChange:i}=e,a;t[0]===i?a=t[1]:(a=e=>i(e.target.value),t[0]=i,t[1]=a);let o;return t[2]!==r||t[3]!==a||t[4]!==n?(o=(0,O.jsx)(b,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,O.jsx)(h,{id:`setupScript`,value:n,onChange:a,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none`,disabled:r})}),t[2]=r,t[3]=a,t[4]=n,t[5]=o):o=t[5],o}var P=e(n(),1);async function F(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await d(e);t.setValue(n.setupScript??``),t.setRunCmd(n.runCommand??``),t.setCommitMethod(n.commitMethod??o.PullRequest),t.setAllowAllCommands(n.allowAllCommands!==!1),t.setAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalValue(n.setupScript??``),t.setOriginalRunCmd(n.runCommand??``),t.setOriginalCommitMethod(n.commitMethod??o.PullRequest),t.setOriginalAllowAllCommands(n.allowAllCommands!==!1),t.setOriginalAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1)}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to load coding settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function I(e,t,n){n(!0);try{let n=await f(e);n.runCommand?(t(n.runCommand),p({title:`Success`,description:`Suggested: ${n.runCommand}`})):p({title:`No command found`,description:`Could not detect a dev script in package.json`})}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function L(e,t,n,r){await u(e,{setupScript:t.trim()||null,runCommand:n.trim()||null,commitMethod:r})}async function R(e,t,n,r,i){(t!==r||JSON.stringify(n)!==JSON.stringify(i))&&await u(e,{allowAllCommands:t,allowedCommandPatterns:n})}async function z(e,t,n){t!==n&&await u(e,{useBuiltInBrowser:t})}function B(e){return e.value!==e.originalValue||e.runCmd!==e.originalRunCmd||e.commitMethod!==e.originalCommitMethod||e.allowAllCommands!==e.originalAllowAllCommands||JSON.stringify(e.allowedCommandPatterns)!==JSON.stringify(e.originalAllowedCommandPatterns)||e.useBuiltInBrowser!==e.originalUseBuiltInBrowser}async function V(e,t,n){n.setSaving(!0);try{return await L(e,t.value,t.runCmd,t.commitMethod),await R(e,t.allowAllCommands,t.allowedCommandPatterns,t.originalAllowAllCommands,t.originalAllowedCommandPatterns),await z(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),n.setOriginalValue(t.value),n.setOriginalRunCmd(t.runCmd),n.setOriginalCommitMethod(t.commitMethod),n.setOriginalAllowAllCommands(t.allowAllCommands),n.setOriginalAllowedCommandPatterns(t.allowedCommandPatterns),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),!0}catch(e){return p({title:`Error`,description:e instanceof Error?e.message:`Failed to save coding settings`,variant:`destructive`}),!1}finally{n.setSaving(!1)}}function H(e){let{setValue:t,setRunCmd:n,setCommitMethod:r,setAllowAllCommands:i,setAllowedCommandPatterns:a,setUseBuiltInBrowser:o,setOriginalValue:s,setOriginalRunCmd:c,setOriginalCommitMethod:l,setOriginalAllowAllCommands:u,setOriginalAllowedCommandPatterns:d,setOriginalUseBuiltInBrowser:f,setLoading:p,setSaving:m,setSuggestingCommand:h}=e;return e}function U(){let e=(0,D.c)(8),[t,n]=(0,P.useState)(``),[r,i]=(0,P.useState)(``),[a,s]=(0,P.useState)(o.PullRequest),[c,l]=(0,P.useState)(!0),u;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],e[0]=u):u=e[0];let[d,f]=(0,P.useState)(u),[p,m]=(0,P.useState)(!0),h;return e[1]!==c||e[2]!==d||e[3]!==a||e[4]!==r||e[5]!==p||e[6]!==t?(h={value:t,setValue:n,runCmd:r,setRunCmd:i,commitMethod:a,setCommitMethod:s,allowAllCommands:c,setAllowAllCommands:l,allowedCommandPatterns:d,setAllowedCommandPatterns:f,useBuiltInBrowser:p,setUseBuiltInBrowser:m},e[1]=c,e[2]=d,e[3]=a,e[4]=r,e[5]=p,e[6]=t,e[7]=h):h=e[7],h}function W(){let e=(0,D.c)(8),[t,n]=(0,P.useState)(``),[r,i]=(0,P.useState)(``),[a,s]=(0,P.useState)(o.PullRequest),[c,l]=(0,P.useState)(!0),u;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],e[0]=u):u=e[0];let[d,f]=(0,P.useState)(u),[p,m]=(0,P.useState)(!0),h;return e[1]!==c||e[2]!==d||e[3]!==a||e[4]!==r||e[5]!==p||e[6]!==t?(h={originalValue:t,setOriginalValue:n,originalRunCmd:r,setOriginalRunCmd:i,originalCommitMethod:a,setOriginalCommitMethod:s,originalAllowAllCommands:c,setOriginalAllowAllCommands:l,originalAllowedCommandPatterns:d,setOriginalAllowedCommandPatterns:f,originalUseBuiltInBrowser:p,setOriginalUseBuiltInBrowser:m},e[1]=c,e[2]=d,e[3]=a,e[4]=r,e[5]=p,e[6]=t,e[7]=h):h=e[7],h}function G(e){let t=(0,D.c)(80),n=i(),r=U(),a=W(),{value:o,setValue:s,runCmd:c,setRunCmd:l,commitMethod:u,setCommitMethod:d,allowAllCommands:f,setAllowAllCommands:p,allowedCommandPatterns:m,setAllowedCommandPatterns:h,useBuiltInBrowser:g,setUseBuiltInBrowser:_}=r,{originalValue:v,setOriginalValue:y,originalRunCmd:b,setOriginalRunCmd:x,originalCommitMethod:S,setOriginalCommitMethod:C,originalAllowAllCommands:w,setOriginalAllowAllCommands:T,originalAllowedCommandPatterns:O,setOriginalAllowedCommandPatterns:ee,originalUseBuiltInBrowser:k,setOriginalUseBuiltInBrowser:A}=a,[j,te]=(0,P.useState)(!1),[M,ne]=(0,P.useState)(!1),[N,L]=(0,P.useState)(!0),R;t[0]!==p||t[1]!==h||t[2]!==d||t[3]!==T||t[4]!==ee||t[5]!==C||t[6]!==x||t[7]!==A||t[8]!==y||t[9]!==l||t[10]!==_||t[11]!==s?(R={setValue:s,setRunCmd:l,setCommitMethod:d,setAllowAllCommands:p,setAllowedCommandPatterns:h,setUseBuiltInBrowser:_,setOriginalValue:y,setOriginalRunCmd:x,setOriginalCommitMethod:C,setOriginalAllowAllCommands:T,setOriginalAllowedCommandPatterns:ee,setOriginalUseBuiltInBrowser:A,setLoading:L,setSaving:te,setSuggestingCommand:ne},t[0]=p,t[1]=h,t[2]=d,t[3]=T,t[4]=ee,t[5]=C,t[6]=x,t[7]=A,t[8]=y,t[9]=l,t[10]=_,t[11]=s,t[12]=R):R=t[12];let z=H(R),G;t[13]!==e||t[14]!==z?(G=()=>F(e,z),t[13]=e,t[14]=z,t[15]=G):G=t[15];let K=G,q,J;t[16]===e?(q=t[17],J=t[18]):(q=()=>{e&&L(!0)},J=[e],t[16]=e,t[17]=q,t[18]=J),(0,P.useLayoutEffect)(q,J);let Y,X;t[19]===K?(Y=t[20],X=t[21]):(Y=()=>{K()},X=[K],t[19]=K,t[20]=Y,t[21]=X),(0,P.useEffect)(Y,X);let Z;t[22]===N?Z=t[23]:(Z=[N],t[22]=N,t[23]=Z);let re=E(e,Z),Q;t[24]===d?Q=t[25]:(Q=function(e){d(e)},t[24]=d,t[25]=Q);let ie=Q,$;t[26]!==e||t[27]!==l?($=async function(){e&&await I(e,l,ne)},t[26]=e,t[27]=l,t[28]=$):$=t[28];let ae=$,oe;t[29]!==f||t[30]!==m||t[31]!==u||t[32]!==n||t[33]!==w||t[34]!==O||t[35]!==S||t[36]!==b||t[37]!==k||t[38]!==v||t[39]!==e||t[40]!==c||t[41]!==z||t[42]!==g||t[43]!==o?(oe=async function(){e&&await V(e,{value:o,runCmd:c,commitMethod:u,allowAllCommands:f,allowedCommandPatterns:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalAllowAllCommands:w,originalAllowedCommandPatterns:O,originalUseBuiltInBrowser:k},z)&&n(`/`)},t[29]=f,t[30]=m,t[31]=u,t[32]=n,t[33]=w,t[34]=O,t[35]=S,t[36]=b,t[37]=k,t[38]=v,t[39]=e,t[40]=c,t[41]=z,t[42]=g,t[43]=o,t[44]=oe):oe=t[44];let se=oe,ce=N||j,le=N||M,ue;t[45]!==f||t[46]!==m||t[47]!==u||t[48]!==w||t[49]!==O||t[50]!==S||t[51]!==b||t[52]!==k||t[53]!==v||t[54]!==c||t[55]!==g||t[56]!==o?(ue=B({value:o,runCmd:c,commitMethod:u,allowAllCommands:f,allowedCommandPatterns:m,useBuiltInBrowser:g,originalValue:v,originalRunCmd:b,originalCommitMethod:S,originalAllowAllCommands:w,originalAllowedCommandPatterns:O,originalUseBuiltInBrowser:k}),t[45]=f,t[46]=m,t[47]=u,t[48]=w,t[49]=O,t[50]=S,t[51]=b,t[52]=k,t[53]=v,t[54]=c,t[55]=g,t[56]=o,t[57]=ue):ue=t[57];let de=ue,fe;return t[58]!==f||t[59]!==m||t[60]!==u||t[61]!==ce||t[62]!==ie||t[63]!==se||t[64]!==ae||t[65]!==de||t[66]!==N||t[67]!==re||t[68]!==c||t[69]!==j||t[70]!==p||t[71]!==h||t[72]!==l||t[73]!==_||t[74]!==s||t[75]!==le||t[76]!==M||t[77]!==g||t[78]!==o?(fe={value:o,setValue:s,runCmd:c,setRunCmd:l,commitMethod:u,saving:j,suggestingCommand:M,loading:N,allowAllCommands:f,setAllowAllCommands:p,allowedCommandPatterns:m,setAllowedCommandPatterns:h,useBuiltInBrowser:g,setUseBuiltInBrowser:_,pageLoading:re,handleCommitMethodChange:ie,handleSuggestCommand:ae,handleSave:se,controlsDisabled:ce,suggestDisabled:le,hasUnsavedChanges:de},t[58]=f,t[59]=m,t[60]=u,t[61]=ce,t[62]=ie,t[63]=se,t[64]=ae,t[65]=de,t[66]=N,t[67]=re,t[68]=c,t[69]=j,t[70]=p,t[71]=h,t[72]=l,t[73]=_,t[74]=s,t[75]=le,t[76]=M,t[77]=g,t[78]=o,t[79]=fe):fe=t[79],fe}function K(e){let t=(0,D.c)(44),{projectId:n}=e,{value:r,setValue:i,runCmd:a,setRunCmd:o,commitMethod:s,saving:c,suggestingCommand:l,loading:u,allowAllCommands:d,setAllowAllCommands:f,allowedCommandPatterns:p,setAllowedCommandPatterns:h,useBuiltInBrowser:g,setUseBuiltInBrowser:b,pageLoading:C,handleCommitMethodChange:w,handleSuggestCommand:T,handleSave:E,controlsDisabled:k,suggestDisabled:j,hasUnsavedChanges:P}=G(n);if(!n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,O.jsx)(m,{title:`No project selected`,children:`Please select a project from the sidebar to view its coding settings.`}),t[0]=e):e=t[0],e}let F=k||!P,I;t[1]!==E||t[2]!==c||t[3]!==F?(I=(0,O.jsx)(_,{title:`Setup`,description:`Scripts and command behavior Tarsk uses when working on this project.`,action:(0,O.jsx)(ne,{saving:c,disabled:F,onSave:E}),sticky:!1}),t[1]=E,t[2]=c,t[3]=F,t[4]=I):I=t[4];let L;t[5]!==u||t[6]!==i||t[7]!==r?(L=(0,O.jsx)(N,{value:r,loading:u,onChange:i}),t[5]=u,t[6]=i,t[7]=r,t[8]=L):L=t[8];let R;t[9]!==T||t[10]!==u||t[11]!==a||t[12]!==o||t[13]!==j||t[14]!==l?(R=(0,O.jsx)(M,{runCmd:a,loading:u,suggestingCommand:l,suggestDisabled:j,onChange:o,onSuggest:T}),t[9]=T,t[10]=u,t[11]=a,t[12]=o,t[13]=j,t[14]=l,t[15]=R):R=t[15];let z;t[16]!==s||t[17]!==w||t[18]!==u?(z=(0,O.jsx)(A,{commitMethod:s,loading:u,onChange:w}),t[16]=s,t[17]=w,t[18]=u,t[19]=z):z=t[19];let B;t[20]!==d||t[21]!==p||t[22]!==k||t[23]!==u||t[24]!==f||t[25]!==h?(B=(0,O.jsx)(te,{allowAllCommands:d,allowedCommandPatterns:p,loading:u,controlsDisabled:k,onAllowAllChange:f,onPatternsChange:h}),t[20]=d,t[21]=p,t[22]=k,t[23]=u,t[24]=f,t[25]=h,t[26]=B):B=t[26];let V;t[27]!==k||t[28]!==b||t[29]!==g?(V=(0,O.jsx)(ee,{useBuiltInBrowser:g,disabled:k,onChange:b}),t[27]=k,t[28]=b,t[29]=g,t[30]=V):V=t[30];let H;t[31]!==L||t[32]!==R||t[33]!==z||t[34]!==B||t[35]!==V?(H=(0,O.jsx)(x,{className:`max-w-none pt-6`,children:(0,O.jsxs)(S,{children:[L,R,z,B,V]})}),t[31]=L,t[32]=R,t[33]=z,t[34]=B,t[35]=V,t[36]=H):H=t[36];let U;t[37]!==I||t[38]!==H?(U=(0,O.jsxs)(y,{className:`shrink-0`,children:[I,H]}),t[37]=I,t[38]=H,t[39]=U):U=t[39];let W;return t[40]!==C||t[41]!==n||t[42]!==U?(W=(0,O.jsx)(v,{loading:C,children:U},n),t[40]=C,t[41]=n,t[42]=U,t[43]=W):W=t[43],W}export{K as default};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Lt as n}from"./dist-DZtmmQ-F.js";import{r}from"./store-D4D62vkY.js";import{u as i}from"./utils-BCj_kT9l.js";import{t as a}from"./button-DhxraVUW.js";import{At as o,Ct as s,Dt as c,Pt as l,i as u,jt as d}from"./index-DdJcjvu2.js";var f=e(),p=t();function m(e){let t=(0,f.c)(11),{projectId:m}=e,h=u(),g;t[0]===m?g=t[1]:(g=e=>e.projects.find(e=>e.projectId===m),t[0]=m,t[1]=g);let _=r(g);if(!m){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(o,{title:`No project selected`,children:`Please select a project from the sidebar to manage its danger zone.`}),t[2]=e):e=t[2],e}let v=_?.builtIn===!0,y;t[3]===_?y=t[4]:(y=_?i(_):``,t[3]=_,t[4]=y);let b=y,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,p.jsx)(s,{title:`Danger Zone`,description:`Irreversible actions for this project.`,sticky:!1}),t[5]=x):x=t[5];let S;return t[6]!==v||t[7]!==m||t[8]!==b||t[9]!==h?(S=(0,p.jsx)(c,{loading:!1,children:(0,p.jsxs)(l,{className:`shrink-0`,children:[x,(0,p.jsx)(d,{className:`max-w-none pt-6`,children:v?(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Built-in bots cannot be deleted.`}):(0,p.jsxs)(`div`,{className:`flex flex-col items-start gap-4`,children:[(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Permanently removes the project, its threads, and all associated storage. This action cannot be undone.`}),(0,p.jsx)(a,{type:`button`,variant:`destructive`,onClick:()=>{h({id:m,name:b})},children:`Delete Project`})]})})]})}),t[6]=v,t[7]=m,t[8]=b,t[9]=h,t[10]=S):S=t[10],S}export{m as default};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Vt as n}from"./dist-DFsjr0PN.js";import{r}from"./store-N5DWaLPi.js";import{u as i}from"./utils-Buz2Fe6i.js";import{t as a}from"./button-CltOBnLJ.js";import{At as o,Ct as s,Dt as c,Pt as l,i as u,jt as d}from"./index-8x-2e2HM.js";var f=e(),p=t();function m(e){let t=(0,f.c)(11),{projectId:m}=e,h=u(),g;t[0]===m?g=t[1]:(g=e=>e.projects.find(e=>e.projectId===m),t[0]=m,t[1]=g);let _=r(g);if(!m){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(o,{title:`No project selected`,children:`Please select a project from the sidebar to manage its danger zone.`}),t[2]=e):e=t[2],e}let v=_?.builtIn===!0,y;t[3]===_?y=t[4]:(y=_?i(_):``,t[3]=_,t[4]=y);let b=y,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,p.jsx)(s,{title:`Danger Zone`,description:`Irreversible actions for this project.`,sticky:!1}),t[5]=x):x=t[5];let S;return t[6]!==v||t[7]!==m||t[8]!==b||t[9]!==h?(S=(0,p.jsx)(c,{loading:!1,children:(0,p.jsxs)(l,{className:`shrink-0`,children:[x,(0,p.jsx)(d,{className:`max-w-none pt-6`,children:v?(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Built-in bots cannot be deleted.`}):(0,p.jsxs)(`div`,{className:`flex flex-col items-start gap-4`,children:[(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Permanently removes the project, its threads, and all associated storage. This action cannot be undone.`}),(0,p.jsx)(a,{type:`button`,variant:`destructive`,onClick:()=>{h({id:m,name:b})},children:`Delete Project`})]})})]})}),t[6]=v,t[7]=m,t[8]=b,t[9]=h,t[10]=S):S=t[10],S}export{m as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Lt as a,tt as o}from"./dist-DZtmmQ-F.js";import{t as s}from"./utils-BCj_kT9l.js";import{Kt as c,dt as l,qt as u,r as d}from"./lucide-react-CNNzKD4G.js";import{t as f}from"./button-DhxraVUW.js";import{Tt as p,Xn as m}from"./api-B_ZIptgC.js";import{t as h}from"./use-toast-xpb5jNtN.js";import{At as g,Cr as _,Ct as v,Dt as y,Pt as b,jt as x}from"./index-DdJcjvu2.js";import{t as S}from"./use-settings-page-loading-CpaBd260.js";var C=t(),w=e(n(),1),T=r();function E(e){let t=(0,C.c)(20),{entry:n,index:r,loading:i,onValueChange:a}=e,l=o(n.name),[d,p]=(0,w.useState)(!1),m=n.value.length>0||n.hasExistingValue,h=n.hasExistingValue&&!n.value?`••••••••`:`value`;(0,w.useEffect)(()=>{l||p(!1)},[l]);let g=_,v=l&&!d?`password`:`text`,y=n.value,b;t[0]!==r||t[1]!==a?(b=e=>a(r,e.target.value),t[0]=r,t[1]=a,t[2]=b):b=t[2];let x=s(`font-mono`,l&&`pr-10`),S;t[3]!==g||t[4]!==n.value||t[5]!==i||t[6]!==h||t[7]!==v||t[8]!==b||t[9]!==x?(S=(0,T.jsx)(g,{type:v,placeholder:h,value:y,onChange:b,className:x,disabled:i}),t[3]=g,t[4]=n.value,t[5]=i,t[6]=h,t[7]=v,t[8]=b,t[9]=x,t[10]=S):S=t[10];let E;t[11]!==m||t[12]!==l||t[13]!==i||t[14]!==p||t[15]!==d?(E=l?(0,T.jsx)(f,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 h-8 w-8 -translate-y-1/2 p-0`,onClick:()=>p(D),disabled:i||!m,"aria-label":d?`Hide value`:`Show value`,children:d?(0,T.jsx)(u,{className:`h-4 w-4 text-muted-foreground`}):(0,T.jsx)(c,{className:`h-4 w-4 text-muted-foreground`})}):null,t[11]=m,t[12]=l,t[13]=i,t[14]=p,t[15]=d,t[16]=E):E=t[16];let O;return t[17]!==S||t[18]!==E?(O=(0,T.jsxs)(`div`,{className:`relative flex-1`,children:[S,E]}),t[17]=S,t[18]=E,t[19]=O):O=t[19],O}function D(e){return!e}function O(e){let t=(0,C.c)(8),{saving:n,disabled:r,onSave:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=n?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(l,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[2]=n,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,T.jsx)(f,{onClick:a,disabled:r,children:o}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function k({projectId:e}){let t=i(),[n,r]=(0,w.useState)([]),[o,s]=(0,w.useState)([]),[c,l]=(0,w.useState)(!0),[u,C]=(0,w.useState)(!1),D=(0,w.useCallback)(async()=>{if(!e){l(!1);return}l(!0);try{let t=(await p(e)).vars.map(e=>({name:e.name,value:e.value??``,hasExistingValue:e.hasValue&&e.value===void 0}));r(t),s(t)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to load environment variables`,variant:`destructive`})}finally{l(!1)}},[e]);(0,w.useLayoutEffect)(()=>{e&&l(!0)},[e]),(0,w.useEffect)(()=>{D()},[D]);let k=S(e,[c]);function A(){r(e=>[...e,{name:``,value:``,hasExistingValue:!1}])}function j(e,t){r(n=>n.map((n,r)=>r===e?{...n,name:t.toUpperCase()}:n))}function M(e,t){r(n=>n.map((n,r)=>r===e?{...n,value:t}:n))}function N(e){r(t=>t.filter((t,n)=>n!==e))}function P(){if(n.length!==o.length)return!0;for(let e=0;e<n.length;e+=1){let t=n[e],r=o[e];if(!r||t.name!==r.name||t.value!==r.value||t.hasExistingValue!==r.hasExistingValue)return!0}return!1}async function F(){if(!(!e||!P())){C(!0);try{let r=n.map(e=>({name:e.name.trim(),value:e.value,hasExistingValue:e.hasExistingValue})).filter(e=>e.name.length>0),i=r.find((e,t)=>r.findIndex(t=>t.name===e.name)!==t);if(i)throw Error(`Duplicate environment variable name: ${i.name}`);let a=r.find(e=>!e.hasExistingValue&&!e.value.trim());if(a)throw Error(`Value is required for environment variable: ${a.name}`);await m(e,r.map(e=>({name:e.name,value:e.value.trim()||void 0}))),s(n.map(e=>({...e,value:``}))),await D(),t(`/`)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to save environment variables`,variant:`destructive`})}finally{C(!1)}}}let I=P();return e?(0,T.jsx)(y,{loading:k,children:(0,T.jsxs)(b,{className:`shrink-0`,children:[(0,T.jsx)(v,{title:`Environment Variables`,description:`Encrypted in Tarsk and injected for bash commands and MCP tools.`,action:(0,T.jsx)(f,{onClick:A,disabled:c||u,children:`Add`}),sticky:!1}),(0,T.jsxs)(x,{className:`max-w-none pt-6`,children:[n.length===0?(0,T.jsx)(`p`,{className:a.caption,children:`No environment variables configured`}):(0,T.jsx)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,t)=>(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(_,{placeholder:`API_KEY`,value:e.name,onChange:e=>j(t,e.target.value),className:`w-[35%] font-mono`,disabled:c}),(0,T.jsx)(E,{entry:e,index:t,loading:c,onValueChange:M}),(0,T.jsx)(f,{variant:`ghost`,size:`icon`,onClick:()=>N(t),className:`h-9 w-9 shrink-0`,disabled:c||u,"aria-label":`Remove variable`,children:(0,T.jsx)(d,{className:`h-3.5 w-3.5`})})]},t))}),I?(0,T.jsx)(`div`,{className:`flex justify-end pt-6`,children:(0,T.jsx)(O,{saving:u,disabled:u||c,onSave:F})}):null]})]})}):(0,T.jsx)(g,{title:`No project selected`,children:`Please select a project from the sidebar to manage environment variables.`})}export{k as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Vt as a,at as o}from"./dist-DFsjr0PN.js";import{t as s}from"./utils-Buz2Fe6i.js";import{Kt as c,dt as l,qt as u,r as d}from"./lucide-react-CNNzKD4G.js";import{t as f}from"./button-CltOBnLJ.js";import{Tt as p,Xn as m}from"./api-BnJTzqjz.js";import{t as h}from"./use-toast-xpb5jNtN.js";import{At as g,Ct as _,Dt as v,Pt as y,jt as b,wr as x}from"./index-8x-2e2HM.js";import{t as S}from"./use-settings-page-loading-CpaBd260.js";var C=t(),w=e(n(),1),T=r();function E(e){let t=(0,C.c)(20),{entry:n,index:r,loading:i,onValueChange:a}=e,l=o(n.name),[d,p]=(0,w.useState)(!1),m=n.value.length>0||n.hasExistingValue,h=n.hasExistingValue&&!n.value?`••••••••`:`value`;(0,w.useEffect)(()=>{l||p(!1)},[l]);let g=x,_=l&&!d?`password`:`text`,v=n.value,y;t[0]!==r||t[1]!==a?(y=e=>a(r,e.target.value),t[0]=r,t[1]=a,t[2]=y):y=t[2];let b=s(`font-mono`,l&&`pr-10`),S;t[3]!==g||t[4]!==n.value||t[5]!==i||t[6]!==h||t[7]!==_||t[8]!==y||t[9]!==b?(S=(0,T.jsx)(g,{type:_,placeholder:h,value:v,onChange:y,className:b,disabled:i}),t[3]=g,t[4]=n.value,t[5]=i,t[6]=h,t[7]=_,t[8]=y,t[9]=b,t[10]=S):S=t[10];let E;t[11]!==m||t[12]!==l||t[13]!==i||t[14]!==p||t[15]!==d?(E=l?(0,T.jsx)(f,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 h-8 w-8 -translate-y-1/2 p-0`,onClick:()=>p(D),disabled:i||!m,"aria-label":d?`Hide value`:`Show value`,children:d?(0,T.jsx)(u,{className:`h-4 w-4 text-muted-foreground`}):(0,T.jsx)(c,{className:`h-4 w-4 text-muted-foreground`})}):null,t[11]=m,t[12]=l,t[13]=i,t[14]=p,t[15]=d,t[16]=E):E=t[16];let O;return t[17]!==S||t[18]!==E?(O=(0,T.jsxs)(`div`,{className:`relative flex-1`,children:[S,E]}),t[17]=S,t[18]=E,t[19]=O):O=t[19],O}function D(e){return!e}function O(e){let t=(0,C.c)(8),{saving:n,disabled:r,onSave:i}=e,a;t[0]===i?a=t[1]:(a=()=>void i(),t[0]=i,t[1]=a);let o;t[2]===n?o=t[3]:(o=n?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(l,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[2]=n,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,T.jsx)(f,{onClick:a,disabled:r,children:o}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function k({projectId:e}){let t=i(),[n,r]=(0,w.useState)([]),[o,s]=(0,w.useState)([]),[c,l]=(0,w.useState)(!0),[u,C]=(0,w.useState)(!1),D=(0,w.useCallback)(async()=>{if(!e){l(!1);return}l(!0);try{let t=(await p(e)).vars.map(e=>({name:e.name,value:e.value??``,hasExistingValue:e.hasValue&&e.value===void 0}));r(t),s(t)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to load environment variables`,variant:`destructive`})}finally{l(!1)}},[e]);(0,w.useLayoutEffect)(()=>{e&&l(!0)},[e]),(0,w.useEffect)(()=>{D()},[D]);let k=S(e,[c]);function A(){r(e=>[...e,{name:``,value:``,hasExistingValue:!1}])}function j(e,t){r(n=>n.map((n,r)=>r===e?{...n,name:t.toUpperCase()}:n))}function M(e,t){r(n=>n.map((n,r)=>r===e?{...n,value:t}:n))}function N(e){r(t=>t.filter((t,n)=>n!==e))}function P(){if(n.length!==o.length)return!0;for(let e=0;e<n.length;e+=1){let t=n[e],r=o[e];if(!r||t.name!==r.name||t.value!==r.value||t.hasExistingValue!==r.hasExistingValue)return!0}return!1}async function F(){if(!(!e||!P())){C(!0);try{let r=n.map(e=>({name:e.name.trim(),value:e.value,hasExistingValue:e.hasExistingValue})).filter(e=>e.name.length>0),i=r.find((e,t)=>r.findIndex(t=>t.name===e.name)!==t);if(i)throw Error(`Duplicate environment variable name: ${i.name}`);let a=r.find(e=>!e.hasExistingValue&&!e.value.trim());if(a)throw Error(`Value is required for environment variable: ${a.name}`);await m(e,r.map(e=>({name:e.name,value:e.value.trim()||void 0}))),s(n.map(e=>({...e,value:``}))),await D(),t(`/`)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to save environment variables`,variant:`destructive`})}finally{C(!1)}}}let I=P();return e?(0,T.jsx)(v,{loading:k,children:(0,T.jsxs)(y,{className:`shrink-0`,children:[(0,T.jsx)(_,{title:`Environment Variables`,description:`Encrypted in Tarsk and injected for bash commands and MCP tools.`,action:(0,T.jsx)(f,{onClick:A,disabled:c||u,children:`Add`}),sticky:!1}),(0,T.jsxs)(b,{className:`max-w-none pt-6`,children:[n.length===0?(0,T.jsx)(`p`,{className:a.caption,children:`No environment variables configured`}):(0,T.jsx)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,t)=>(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(x,{placeholder:`API_KEY`,value:e.name,onChange:e=>j(t,e.target.value),className:`w-[35%] font-mono`,disabled:c}),(0,T.jsx)(E,{entry:e,index:t,loading:c,onValueChange:M}),(0,T.jsx)(f,{variant:`ghost`,size:`icon`,onClick:()=>N(t),className:`h-9 w-9 shrink-0`,disabled:c||u,"aria-label":`Remove variable`,children:(0,T.jsx)(d,{className:`h-3.5 w-3.5`})})]},t))}),I?(0,T.jsx)(`div`,{className:`flex justify-end pt-6`,children:(0,T.jsx)(O,{saving:u,disabled:u||c,onSave:F})}):null]})]})}):(0,T.jsx)(g,{title:`No project selected`,children:`Please select a project from the sidebar to manage environment variables.`})}export{k as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Cn as i,Dn as a,En as o,Fn as s,Lt as c,Nn as l,Pn as u,Tn as d,wn as f}from"./dist-DZtmmQ-F.js";import{t as p}from"./utils-BCj_kT9l.js";import{t as m}from"./button-DhxraVUW.js";import{Qn as h,et as g,nt as _}from"./api-B_ZIptgC.js";import{t as v}from"./use-toast-xpb5jNtN.js";import{$t as y,Bt as b,Ct as x,Dt as S,Ft as C,Ht as w,It as T,Lt as E,Pt as D,Rt as O,_t as k,jt as A,xt as j,zt as M}from"./index-DdJcjvu2.js";import{a as N,i as P,n as F,o as I,r as L,t as R}from"./table-DCmeRDBK.js";import{t as z}from"./use-settings-page-loading-CpaBd260.js";var B=e(n(),1),V=t(),H=r(),U=`__unspecified__`,W=`__default__`,G=`Unsupported`,K=`table-fixed`,q=`[&_tr]:border-b-0`,J=`h-9 px-0 py-2`,Y=p(J,`w-40`),X=p(J,`w-56`),Z=`py-2 pl-0 pr-4 align-middle`,Q=`py-2 pl-0 align-middle`;function $(e){let t=(0,V.c)(20),{alias:n,target:r,supportedReasoningEfforts:i,disabled:a,onReasoningChange:o}=e;if(!r)return null;if(i.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,H.jsx)(`span`,{className:c.bodyMuted,children:G}),t[0]=e):e=t[0],e}let s=r.reasoningEffort??W,l;t[1]!==n||t[2]!==o?(l=e=>o(n,e),t[1]=n,t[2]=o,t[3]=l):l=t[3];let d=`model-alias-${n}-reasoning`,p=`${f[n]} reasoning effort`,m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,H.jsx)(b,{placeholder:`Model default`}),t[4]=m):m=t[4];let h;t[5]!==d||t[6]!==p?(h=(0,H.jsx)(M,{id:d,className:`w-full min-w-0`,"aria-label":p,children:m}),t[5]=d,t[6]=p,t[7]=h):h=t[7];let g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,H.jsx)(E,{value:W,children:`Model default`}),t[8]=g):g=t[8];let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,H.jsx)(E,{value:`off`,children:u(`off`)}),t[9]=_):_=t[9];let v;t[10]===i?v=t[11]:(v=i.map(ee),t[10]=i,t[11]=v);let y;t[12]===v?y=t[13]:(y=(0,H.jsxs)(T,{children:[g,_,v]}),t[12]=v,t[13]=y);let x;return t[14]!==a||t[15]!==s||t[16]!==y||t[17]!==l||t[18]!==h?(x=(0,H.jsxs)(C,{value:s,onValueChange:l,disabled:a,children:[h,y]}),t[14]=a,t[15]=s,t[16]=y,t[17]=l,t[18]=h,t[19]=x):x=t[19],x}function ee(e){return(0,H.jsx)(E,{value:e,children:u(e)},e)}function te(e){let t=(0,V.c)(21),{value:n,onChange:r,enabledModels:c,disabled:l}=e,u=l===void 0?!1:l,p;if(t[0]!==c){p=new Map;for(let e of c){let t=e.provider??`other`,n=p.get(t);n?n.push(e):p.set(t,[e])}t[0]=c,t[1]=p}else p=t[1];let m=p,h;t[2]!==r||t[3]!==n?(h=function(e,t){let i={...n};if(t===U){delete i[e],r(i);return}let a=o(t);a&&(i[e]=a,r(i))},t[2]=r,t[3]=n,t[4]=h):h=t[4];let g=h,_;t[5]===c?_=t[6]:(_=function(e){if(!e)return;let t=e.provider.toLowerCase();return c.find(n=>n.id===e.model&&(n.provider??`other`).toLowerCase()===t)},t[5]=c,t[6]=_);let v=_,x;t[7]!==r||t[8]!==n?(x=function(e,t){let i=n[e];if(!i)return;let a={...i};if(t===W)delete a.reasoningEffort;else if(s(t))a.reasoningEffort=t;else return;r({...n,[e]:a})},t[7]=r,t[8]=n,t[9]=x):x=t[9];let S=x,w;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,H.jsx)(N,{className:q,children:(0,H.jsxs)(`tr`,{children:[(0,H.jsx)(P,{className:Y,children:`Name`}),(0,H.jsx)(P,{className:J,children:`Model`}),(0,H.jsx)(P,{className:X,children:`Reasoning`})]})}),t[10]=w):w=t[10];let D;t[11]!==u||t[12]!==c||t[13]!==v||t[14]!==g||t[15]!==S||t[16]!==m||t[17]!==n?(D=d.map(e=>{let t=n[e],r=t?a(t):U,o=v(t)?.supportedReasoningEfforts??[];return(0,H.jsxs)(I,{className:`hover:bg-transparent`,children:[(0,H.jsx)(L,{className:Z,children:(0,H.jsx)(j,{title:f[e],description:i[e]})}),(0,H.jsx)(L,{className:Z,children:(0,H.jsxs)(C,{value:r,onValueChange:t=>g(e,t),disabled:u,children:[(0,H.jsx)(M,{id:`model-alias-${e}`,className:`w-full min-w-0`,children:(0,H.jsx)(b,{placeholder:`Unspecified`,children:t?(0,H.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,H.jsx)(k,{providerSlug:t.provider}),(0,H.jsx)(`span`,{className:`truncate`,children:y(t.model)})]}):`Unspecified`})}),(0,H.jsxs)(T,{children:[(0,H.jsx)(E,{value:U,children:`Unspecified`}),c.length>0&&(0,H.jsx)(O,{}),[...m.entries()].map(ne)]})]})}),(0,H.jsx)(L,{className:Q,children:(0,H.jsx)($,{alias:e,target:t,supportedReasoningEfforts:o,disabled:u,onReasoningChange:S})})]},e)}),t[11]=u,t[12]=c,t[13]=v,t[14]=g,t[15]=S,t[16]=m,t[17]=n,t[18]=D):D=t[18];let A;return t[19]===D?A=t[20]:(A=(0,H.jsx)(`div`,{id:`model-aliases`,children:(0,H.jsxs)(R,{className:K,children:[w,(0,H.jsx)(F,{children:D})]})}),t[19]=D,t[20]=A),A}function ne(e){let[t,n]=e;return(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:p(c.dropdownGroupHeading,`flex items-center gap-1.5 px-2 py-1.5 uppercase`),children:[(0,H.jsx)(k,{providerSlug:t}),t]}),n.map(e=>{let n=a({provider:e.provider??t,model:e.id});return(0,H.jsx)(E,{value:n,children:y(e.id)},n)})]},t)}function re(e){return[...e].sort((e,t)=>{let n=(e.provider??``).localeCompare(t.provider??``);return n===0?y(e.id).localeCompare(y(t.id)):n})}function ie(){let[e,t]=(0,B.useState)({}),[n,r]=(0,B.useState)({}),[i,a]=(0,B.useState)([]),[o,s]=(0,B.useState)(!0),[c,u]=(0,B.useState)(!1),d=(0,B.useCallback)(async()=>{s(!0);try{let[e,n]=await Promise.all([g(),_().catch(()=>({}))]),i=e.modelAliases??{};a(re(Object.values(n).flat())),t(i),r(i)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to load model aliases`,variant:`destructive`})}finally{s(!1)}},[]);(0,B.useEffect)(()=>{d()},[d]);let f=z(`model-aliases`,[o]);function p(){return JSON.stringify(e)!==JSON.stringify(n)}async function y(){if(p()){u(!0);try{let t=Object.keys(e).length>0?e:void 0;if(t){let e=await _();l(t,Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.map(e=>e.id)])))}await h({modelAliases:t??null}),r(e),window.dispatchEvent(new Event(w)),await d()}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to save model aliases`,variant:`destructive`})}finally{u(!1)}}}return(0,H.jsx)(S,{loading:f,children:(0,H.jsxs)(D,{className:`shrink-0`,children:[(0,H.jsx)(x,{title:`Default Models`,description:`Choose the default model for new chats and map Tarsk-wide short names (fast, local, cheap, smart) to enabled models. Subagents can reference these aliases in AGENT.md. Set Cheap to enable Orchestrate mode.`,action:(0,H.jsx)(m,{onClick:()=>void y(),disabled:o||c||!p(),children:`Save`}),sticky:!1}),(0,H.jsx)(A,{className:`max-w-none pt-6`,children:(0,H.jsx)(te,{value:e,onChange:t,enabledModels:i,disabled:o||c})})]})})}export{ie as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{An as i,Bn as a,Mn as o,On as s,Rn as c,Vt as l,jn as u,kn as d,zn as f}from"./dist-DFsjr0PN.js";import{t as p}from"./utils-Buz2Fe6i.js";import{t as m}from"./button-CltOBnLJ.js";import{Qn as h,et as g,nt as _}from"./api-BnJTzqjz.js";import{t as v}from"./use-toast-xpb5jNtN.js";import{$t as y,Bt as b,Ct as x,Dt as S,Ft as C,Ht as w,It as T,Lt as E,Pt as D,Rt as O,_t as k,jt as A,xt as j,zt as M}from"./index-8x-2e2HM.js";import{a as N,i as P,n as F,o as I,r as L,t as R}from"./table-D0dYDkHb.js";import{t as z}from"./use-settings-page-loading-CpaBd260.js";var B=e(n(),1),V=t(),H=r(),U=`__unspecified__`,W=`__default__`,G=`Unsupported`,K=`table-fixed`,q=`[&_tr]:border-b-0`,J=`h-9 px-0 py-2`,Y=p(J,`w-40`),X=p(J,`w-56`),Z=`py-2 pl-0 pr-4 align-middle`,Q=`py-2 pl-0 align-middle`;function $(e){let t=(0,V.c)(20),{alias:n,target:r,supportedReasoningEfforts:i,disabled:a,onReasoningChange:o}=e;if(!r)return null;if(i.length===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,H.jsx)(`span`,{className:l.bodyMuted,children:G}),t[0]=e):e=t[0],e}let s=r.reasoningEffort??W,c;t[1]!==n||t[2]!==o?(c=e=>o(n,e),t[1]=n,t[2]=o,t[3]=c):c=t[3];let u=`model-alias-${n}-reasoning`,p=`${d[n]} reasoning effort`,m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,H.jsx)(b,{placeholder:`Model default`}),t[4]=m):m=t[4];let h;t[5]!==u||t[6]!==p?(h=(0,H.jsx)(M,{id:u,className:`w-full min-w-0`,"aria-label":p,children:m}),t[5]=u,t[6]=p,t[7]=h):h=t[7];let g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,H.jsx)(E,{value:W,children:`Model default`}),t[8]=g):g=t[8];let _;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,H.jsx)(E,{value:`off`,children:f(`off`)}),t[9]=_):_=t[9];let v;t[10]===i?v=t[11]:(v=i.map(ee),t[10]=i,t[11]=v);let y;t[12]===v?y=t[13]:(y=(0,H.jsxs)(T,{children:[g,_,v]}),t[12]=v,t[13]=y);let x;return t[14]!==a||t[15]!==s||t[16]!==y||t[17]!==c||t[18]!==h?(x=(0,H.jsxs)(C,{value:s,onValueChange:c,disabled:a,children:[h,y]}),t[14]=a,t[15]=s,t[16]=y,t[17]=c,t[18]=h,t[19]=x):x=t[19],x}function ee(e){return(0,H.jsx)(E,{value:e,children:f(e)},e)}function te(e){let t=(0,V.c)(21),{value:n,onChange:r,enabledModels:c,disabled:l}=e,f=l===void 0?!1:l,p;if(t[0]!==c){p=new Map;for(let e of c){let t=e.provider??`other`,n=p.get(t);n?n.push(e):p.set(t,[e])}t[0]=c,t[1]=p}else p=t[1];let m=p,h;t[2]!==r||t[3]!==n?(h=function(e,t){let i={...n};if(t===U){delete i[e],r(i);return}let a=u(t);a&&(i[e]=a,r(i))},t[2]=r,t[3]=n,t[4]=h):h=t[4];let g=h,_;t[5]===c?_=t[6]:(_=function(e){if(!e)return;let t=e.provider.toLowerCase();return c.find(n=>n.id===e.model&&(n.provider??`other`).toLowerCase()===t)},t[5]=c,t[6]=_);let v=_,x;t[7]!==r||t[8]!==n?(x=function(e,t){let i=n[e];if(!i)return;let o={...i};if(t===W)delete o.reasoningEffort;else if(a(t))o.reasoningEffort=t;else return;r({...n,[e]:o})},t[7]=r,t[8]=n,t[9]=x):x=t[9];let S=x,w;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,H.jsx)(N,{className:q,children:(0,H.jsxs)(`tr`,{children:[(0,H.jsx)(P,{className:Y,children:`Name`}),(0,H.jsx)(P,{className:J,children:`Model`}),(0,H.jsx)(P,{className:X,children:`Reasoning`})]})}),t[10]=w):w=t[10];let D;t[11]!==f||t[12]!==c||t[13]!==v||t[14]!==g||t[15]!==S||t[16]!==m||t[17]!==n?(D=i.map(e=>{let t=n[e],r=t?o(t):U,i=v(t)?.supportedReasoningEfforts??[];return(0,H.jsxs)(I,{className:`hover:bg-transparent`,children:[(0,H.jsx)(L,{className:Z,children:(0,H.jsx)(j,{title:d[e],description:s[e]})}),(0,H.jsx)(L,{className:Z,children:(0,H.jsxs)(C,{value:r,onValueChange:t=>g(e,t),disabled:f,children:[(0,H.jsx)(M,{id:`model-alias-${e}`,className:`w-full min-w-0`,children:(0,H.jsx)(b,{placeholder:`Unspecified`,children:t?(0,H.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,H.jsx)(k,{providerSlug:t.provider}),(0,H.jsx)(`span`,{className:`truncate`,children:y(t.model)})]}):`Unspecified`})}),(0,H.jsxs)(T,{children:[(0,H.jsx)(E,{value:U,children:`Unspecified`}),c.length>0&&(0,H.jsx)(O,{}),[...m.entries()].map(ne)]})]})}),(0,H.jsx)(L,{className:Q,children:(0,H.jsx)($,{alias:e,target:t,supportedReasoningEfforts:i,disabled:f,onReasoningChange:S})})]},e)}),t[11]=f,t[12]=c,t[13]=v,t[14]=g,t[15]=S,t[16]=m,t[17]=n,t[18]=D):D=t[18];let A;return t[19]===D?A=t[20]:(A=(0,H.jsx)(`div`,{id:`model-aliases`,children:(0,H.jsxs)(R,{className:K,children:[w,(0,H.jsx)(F,{children:D})]})}),t[19]=D,t[20]=A),A}function ne(e){let[t,n]=e;return(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:p(l.dropdownGroupHeading,`flex items-center gap-1.5 px-2 py-1.5 uppercase`),children:[(0,H.jsx)(k,{providerSlug:t}),t]}),n.map(e=>{let n=o({provider:e.provider??t,model:e.id});return(0,H.jsx)(E,{value:n,children:y(e.id)},n)})]},t)}function re(e){return[...e].sort((e,t)=>{let n=(e.provider??``).localeCompare(t.provider??``);return n===0?y(e.id).localeCompare(y(t.id)):n})}function ie(){let[e,t]=(0,B.useState)({}),[n,r]=(0,B.useState)({}),[i,a]=(0,B.useState)([]),[o,s]=(0,B.useState)(!0),[l,u]=(0,B.useState)(!1),d=(0,B.useCallback)(async()=>{s(!0);try{let[e,n]=await Promise.all([g(),_().catch(()=>({}))]),i=e.modelAliases??{};a(re(Object.values(n).flat())),t(i),r(i)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to load model aliases`,variant:`destructive`})}finally{s(!1)}},[]);(0,B.useEffect)(()=>{d()},[d]);let f=z(`model-aliases`,[o]);function p(){return JSON.stringify(e)!==JSON.stringify(n)}async function y(){if(p()){u(!0);try{let t=Object.keys(e).length>0?e:void 0;if(t){let e=await _();c(t,Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.map(e=>e.id)])))}await h({modelAliases:t??null}),r(e),window.dispatchEvent(new Event(w)),await d()}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to save model aliases`,variant:`destructive`})}finally{u(!1)}}}return(0,H.jsx)(S,{loading:f,children:(0,H.jsxs)(D,{className:`shrink-0`,children:[(0,H.jsx)(x,{title:`Default Models`,description:`Choose the default model for new chats and map Tarsk-wide short names (fast, local, cheap, smart) to enabled models. Subagents can reference these aliases in AGENT.md. Set Cheap to enable Orchestrate mode.`,action:(0,H.jsx)(m,{onClick:()=>void y(),disabled:o||l||!p(),children:`Save`}),sticky:!1}),(0,H.jsx)(A,{className:`max-w-none pt-6`,children:(0,H.jsx)(te,{value:e,onChange:t,enabledModels:i,disabled:o||l})})]})})}export{ie as default};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Dt as a}from"./dist-DFsjr0PN.js";import{r as o}from"./store-N5DWaLPi.js";import{Ot as s,dt as c}from"./lucide-react-CNNzKD4G.js";import{t as l}from"./button-CltOBnLJ.js";import{i as u,n as d,r as f,t as ee}from"./tooltip-JvDw-QDI.js";import{$n as p,Ct as m,Qr as h,St as g,Tn as _,er as v}from"./api-BnJTzqjz.js";import{t as y}from"./use-toast-xpb5jNtN.js";import{At as b,B as x,Ct as te,Dt as ne,Jn as re,Pt as ie,Qn as S,Xn as C,Yn as w,bt as ae,jt as oe,kt as se,o as ce,wr as le}from"./index-8x-2e2HM.js";import{t as ue}from"./use-settings-page-loading-CpaBd260.js";var T=t(),E=e(n(),1),D=r();function de(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>t(r),r.onerror=()=>n(Error(`The selected file is not a readable image.`)),r.src=e})}async function fe(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await g(e);t.setProjectPath(n.projectPath??null),t.setName(n.name??``),t.setProjectIcon(n.projectIcon??null),t.setOriginalName(n.name??``),t.setOriginalProjectIcon(n.projectIcon??null);try{let n=await m(e,`AGENTS.md`);t.setInstructions(n.content),t.setOriginalInstructions(n.content)}catch{t.setInstructions(``),t.setOriginalInstructions(``)}}catch(e){y({title:`Error`,description:e instanceof Error?e.message:`Failed to load project settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function O(e,t){try{let n=await de(e),r=document.createElement(`canvas`);r.width=256,r.height=256;let i=r.getContext(`2d`);if(!i)throw Error(`Could not prepare image conversion`);i.imageSmoothingEnabled=!0,i.imageSmoothingQuality=`high`;let a=Math.max(256/n.naturalWidth,256/n.naturalHeight),o=n.naturalWidth*a,s=n.naturalHeight*a;i.drawImage(n,(256-o)/2,(256-s)/2,o,s),t(r.toDataURL(`image/png`))}catch(e){y({title:`Could not use image`,description:e instanceof Error?e.message:`The selected file could not be read.`,variant:`destructive`})}}async function k(e,t){let n=e.target.files?.[0];if(e.target.value=``,!n)return;let r=URL.createObjectURL(n);try{await O(r,t)}finally{URL.revokeObjectURL(r)}}async function A(e,t,n){t!==n&&await v(e,t)}async function j(e,t,n){t!==n&&await _(e,`AGENTS.md`,t)}async function M(e,t,n){t!==n&&await p(e,{projectIcon:t})}async function pe(e,t,n,r,i,a){n.setSaving(!0);try{await A(e,t.name,t.originalName),await j(e,t.instructions,t.originalInstructions),await M(e,t.projectIcon,t.originalProjectIcon),n.setOriginalName(t.name),n.setOriginalInstructions(t.instructions),n.setOriginalProjectIcon(t.projectIcon),r&&await r(),await a(),i(`/`)}catch(e){y({title:`Error`,description:e instanceof Error?e.message:`Failed to save settings`,variant:`destructive`})}finally{n.setSaving(!1)}}function me(e){let t=(0,T.c)(26),{projectIcon:n,entityNoun:r,disabled:i,inputRef:a,onFileChange:o,onButtonClick:c,onRemove:l}=e,p;t[0]!==i||t[1]!==a||t[2]!==o?(p=(0,D.jsx)(`input`,{ref:a,type:`file`,accept:`image/*`,className:`sr-only`,onChange:o,disabled:i}),t[0]=i,t[1]=a,t[2]=o,t[3]=p):p=t[3];let m=n?`Change project icon`:`Choose project icon`,h;t[4]===n?h=t[5]:(h=n?(0,D.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`}):(0,D.jsx)(s,{className:`h-8 w-8 text-muted-foreground`,strokeWidth:1.5}),t[4]=n,t[5]=h);let g;t[6]!==i||t[7]!==c||t[8]!==m||t[9]!==h?(g=(0,D.jsx)(S,{asChild:!0,children:(0,D.jsx)(u,{asChild:!0,children:(0,D.jsx)(`button`,{type:`button`,className:`flex h-16 w-16 items-center justify-center overflow-hidden rounded-lg border border-border bg-muted/40 outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:c,disabled:i,"aria-label":m,children:h})})}),t[6]=i,t[7]=c,t[8]=m,t[9]=h,t[10]=g):g=t[10];let _;t[11]===r?_=t[12]:(_=(0,D.jsxs)(d,{side:`bottom`,className:`max-w-xs`,children:[`Choose an avatar for this `,r,` (pick any image from your computer)`]}),t[11]=r,t[12]=_);let v;t[13]!==g||t[14]!==_?(v=(0,D.jsx)(f,{delayDuration:300,children:(0,D.jsxs)(ee,{children:[g,_]})}),t[13]=g,t[14]=_,t[15]=v):v=t[15];let y;t[16]!==i||t[17]!==l||t[18]!==n?(y=n&&(0,D.jsx)(w,{children:(0,D.jsx)(C,{disabled:i,onSelect:l,children:`Remove`})}),t[16]=i,t[17]=l,t[18]=n,t[19]=y):y=t[19];let b;t[20]!==v||t[21]!==y?(b=(0,D.jsxs)(re,{children:[v,y]}),t[20]=v,t[21]=y,t[22]=b):b=t[22];let x;return t[23]!==p||t[24]!==b?(x=(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p,b]}),t[23]=p,t[24]=b,t[25]=x):x=t[25],x}function he(e){let t=(0,T.c)(6),{saving:n,disabled:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(c,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[0]=n,t[1]=a);let o;return t[2]!==r||t[3]!==i||t[4]!==a?(o=(0,D.jsx)(l,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function ge(e,t,n){let r=(0,T.c)(13),i;r[0]===e?i=r[1]:(i=function(t){return O(t,e)},r[0]=e,r[1]=i);let a=i,o,s;r[2]===a?(o=r[3],s=r[4]):(o=()=>{if(!h())return;let e=function(e){let t=e.detail.dataUrl;a(t)};return window.addEventListener(`tarsk:project-icon-selected`,e),()=>{window.removeEventListener(`tarsk:project-icon-selected`,e)}},s=[a],r[2]=a,r[3]=o,r[4]=s),(0,E.useEffect)(o,s);let c;r[5]===e?c=r[6]:(c=function(t){return k(t,e)},r[5]=e,r[6]=c);let l=c,u;r[7]!==n||r[8]!==t?(u=function(){h()&&t?ce(t):n.current?.click()},r[7]=n,r[8]=t,r[9]=u):u=r[9];let d=u,f;return r[10]!==d||r[11]!==l?(f={handleProjectIconChange:l,handleProjectIconButtonClick:d},r[10]=d,r[11]=l,r[12]=f):f=r[12],f}function N(e){let t=(0,T.c)(55),{projectId:n,onProjectUpdated:r}=e,s=i(),c;t[0]===n?c=t[1]:(c=e=>e.projects.find(e=>e.projectId===n)?.type,t[0]=n,t[1]=c);let l=a({type:o(c)})?`bot`:`project`,[u,d]=(0,E.useState)(``),[f,ee]=(0,E.useState)(``),[p,m]=(0,E.useState)(``),[h,g]=(0,E.useState)(!1),[_,v]=(0,E.useState)(!0),[y,re]=(0,E.useState)(``),[S,C]=(0,E.useState)(null),[w,ce]=(0,E.useState)(null),[de,O]=(0,E.useState)(null),k=(0,E.useRef)(null),A;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(A={setProjectPath:O,setName:d,setInstructions:ee,setProjectIcon:C,setOriginalName:re,setOriginalInstructions:m,setOriginalProjectIcon:ce,setLoading:v,setSaving:g},t[2]=A):A=t[2];let j=A,M;t[3]===n?M=t[4]:(M=()=>fe(n,j),t[3]=n,t[4]=M);let N=M,P,F;t[5]===n?(P=t[6],F=t[7]):(P=()=>{n&&v(!0)},F=[n],t[5]=n,t[6]=P,t[7]=F),(0,E.useLayoutEffect)(P,F);let I,L;t[8]===N?(I=t[9],L=t[10]):(I=()=>{N()},L=[N],t[8]=N,t[9]=I,t[10]=L),(0,E.useEffect)(I,L);let R;t[11]===_?R=t[12]:(R=[_],t[11]=_,t[12]=R);let z=ue(n,R),{handleProjectIconChange:B,handleProjectIconButtonClick:V}=ge(C,de,k),H;t[13]!==f||t[14]!==N||t[15]!==u||t[16]!==s||t[17]!==r||t[18]!==p||t[19]!==y||t[20]!==w||t[21]!==S||t[22]!==n?(H=async()=>{n&&await pe(n,{name:u,instructions:f,projectIcon:S,originalName:y,originalInstructions:p,originalProjectIcon:w},j,r,s,N)},t[13]=f,t[14]=N,t[15]=u,t[16]=s,t[17]=r,t[18]=p,t[19]=y,t[20]=w,t[21]=S,t[22]=n,t[23]=H):H=t[23];let _e=H,U=_||h,ve=u!==y||f!==p||S!==w;if(!n){let e;return t[24]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,D.jsx)(b,{title:`No project selected`,children:`Please select a project from the sidebar to view its settings.`}),t[24]=e):e=t[24],e}let ye=U||!ve,W;t[25]!==_e||t[26]!==h||t[27]!==ye?(W=(0,D.jsx)(te,{title:`Project Settings`,description:`Configure settings for your project.`,action:(0,D.jsx)(he,{saving:h,disabled:ye,onClick:_e}),sticky:!1}),t[25]=_e,t[26]=h,t[27]=ye,t[28]=W):W=t[28];let G;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>C(null),t[29]=G):G=t[29];let K;t[30]!==U||t[31]!==V||t[32]!==B||t[33]!==l||t[34]!==S?(K=(0,D.jsx)(`div`,{className:`flex justify-center`,children:(0,D.jsx)(me,{projectIcon:S,entityNoun:l,disabled:U,inputRef:k,onFileChange:B,onButtonClick:V,onRemove:G})}),t[30]=U,t[31]=V,t[32]=B,t[33]=l,t[34]=S,t[35]=K):K=t[35];let q;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(q=e=>d(e.target.value),t[36]=q):q=t[36];let J;t[37]!==_||t[38]!==u?(J=(0,D.jsx)(ae,{title:`Name`,controlLayout:`stack`,children:(0,D.jsx)(le,{id:`projectName`,value:u,onChange:q,placeholder:`Enter project name`,disabled:_})}),t[37]=_,t[38]=u,t[39]=J):J=t[39];let Y;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(Y=e=>ee(e.target.value),t[40]=Y):Y=t[40];let X;t[41]!==f||t[42]!==_?(X=(0,D.jsx)(ae,{title:`Instructions`,description:`Agent context and coding guidelines, stored in AGENTS.md. New threads start from a copy of this file.`,controlLayout:`stack`,children:(0,D.jsx)(x,{id:`projectInstructions`,value:f,onChange:Y,placeholder:`Add instructions for your agent in AGENTS.md...`,className:`font-mono min-h-[376px] resize-none`,disabled:_})}),t[41]=f,t[42]=_,t[43]=X):X=t[43];let Z;t[44]!==K||t[45]!==J||t[46]!==X?(Z=(0,D.jsx)(oe,{className:`max-w-none pt-6`,children:(0,D.jsxs)(se,{children:[K,J,X]})}),t[44]=K,t[45]=J,t[46]=X,t[47]=Z):Z=t[47];let Q;t[48]!==W||t[49]!==Z?(Q=(0,D.jsxs)(ie,{className:`shrink-0`,children:[W,Z]}),t[48]=W,t[49]=Z,t[50]=Q):Q=t[50];let $;return t[51]!==z||t[52]!==n||t[53]!==Q?($=(0,D.jsx)(ne,{loading:z,children:Q},n),t[51]=z,t[52]=n,t[53]=Q,t[54]=$):$=t[54],$}export{N as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Ct as a,Et as o,Lt as s,St as c,Tt as l,wt as u,xt as d}from"./dist-DZtmmQ-F.js";import{t as f}from"./utils-BCj_kT9l.js";import{dt as p}from"./lucide-react-CNNzKD4G.js";import{t as m}from"./button-DhxraVUW.js";import{$n as h,St as g}from"./api-B_ZIptgC.js";import{t as _}from"./use-toast-xpb5jNtN.js";import{At as v,Ct as y,Dt as b,Pt as x,jt as S,lt as C}from"./index-DdJcjvu2.js";import{t as w}from"./use-settings-page-loading-CpaBd260.js";var T=e(n(),1),E=t(),D=r(),O=o(),k=Math.ceil(O.length/2),A=[O.slice(0,k),O.slice(k)];function j(e){let t=(0,E.c)(14),{tool:n,enabled:r,disabled:i,onToggle:a}=e,o;t[0]!==a||t[1]!==n.name?(o=e=>a(n.name,e),t[0]=a,t[1]=n.name,t[2]=o):o=t[2];let c;t[3]!==i||t[4]!==r||t[5]!==o||t[6]!==n.displayName?(c=(0,D.jsx)(C,{value:r,onChange:o,disabled:i,ariaLabel:n.displayName}),t[3]=i,t[4]=r,t[5]=o,t[6]=n.displayName,t[7]=c):c=t[7];let l;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=f(s.body,`truncate`),t[8]=l):l=t[8];let u;t[9]===n.displayName?u=t[10]:(u=(0,D.jsx)(`span`,{className:l,children:n.displayName}),t[9]=n.displayName,t[10]=u);let d;return t[11]!==c||t[12]!==u?(d=(0,D.jsxs)(`div`,{className:`grid min-h-10 grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2`,children:[c,u]}),t[11]=c,t[12]=u,t[13]=d):d=t[13],d}function M(e,t,n){return!t.includes(e)&&!n.has(e)}function N(e,t,n){return t||n.has(e)}function P(e){let t=(0,E.c)(13),{tools:n,disabledTools:r,disabled:i,forceDisabledTools:a,onToggle:o}=e,s;if(t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==o||t[4]!==n){let e;t[6]!==i||t[7]!==r||t[8]!==a||t[9]!==o?(e=e=>(0,D.jsx)(j,{tool:e,enabled:M(e.name,r,a),disabled:N(e.name,i,a),onToggle:o},e.name),t[6]=i,t[7]=r,t[8]=a,t[9]=o,t[10]=e):e=t[10],s=n.map(e),t[0]=i,t[1]=r,t[2]=a,t[3]=o,t[4]=n,t[5]=s}else s=t[5];let c;return t[11]===s?c=t[12]:(c=(0,D.jsx)(`div`,{className:`divide-y divide-table-border`,children:s}),t[11]=s,t[12]=c),c}function F(e){let t=(0,E.c)(21),{disabledTools:n,onChange:r,disabled:i,forceDisabledTools:a}=e,o=i===void 0?!1:i,s,c,l,u;t[0]!==o||t[1]!==n||t[2]!==a||t[3]!==r?(s=new Set((a??[]).map(I)),c=function(e,t){let i=e.toLowerCase();if(!(s.has(i)&&t)){if(t){r(n.filter(e=>e!==i));return}n.includes(i)||r([...n,i].sort())}},l=`divide-y divide-table-border @md/settings-page:hidden`,u=O.map(e=>(0,D.jsx)(j,{tool:e,enabled:M(e.name,n,s),disabled:N(e.name,o,s),onToggle:c},e.name)),t[0]=o,t[1]=n,t[2]=a,t[3]=r,t[4]=s,t[5]=c,t[6]=l,t[7]=u):(s=t[4],c=t[5],l=t[6],u=t[7]);let d;t[8]!==l||t[9]!==u?(d=(0,D.jsx)(`div`,{className:l,children:u}),t[8]=l,t[9]=u,t[10]=d):d=t[10];let f;t[11]!==o||t[12]!==n||t[13]!==s||t[14]!==c?(f=A.map((e,t)=>(0,D.jsx)(P,{tools:e,disabledTools:n,disabled:o,forceDisabledTools:s,onToggle:c},t)),t[11]=o,t[12]=n,t[13]=s,t[14]=c,t[15]=f):f=t[15];let p;t[16]===f?p=t[17]:(p=(0,D.jsx)(`div`,{className:`hidden @md/settings-page:grid @md/settings-page:grid-cols-2 divide-x divide-table-border`,children:f}),t[16]=f,t[17]=p);let m;return t[18]!==d||t[19]!==p?(m=(0,D.jsxs)(D.Fragment,{children:[d,p]}),t[18]=d,t[19]=p,t[20]=m):m=t[20],m}function I(e){return e.toLowerCase()}function L(e,t){return JSON.stringify([...e].sort())!==JSON.stringify([...t].sort())}function R(e,t){return e?l({type:d,disabledTools:t}):t}async function z(e){let t=await g(e);return{disabledTools:l(t),toolsLocked:a(t),standardProject:u(t)}}function B(e,t){_({title:`Error`,description:e instanceof Error?e.message:t,variant:`destructive`})}function V(e){let t=(0,E.c)(6),{saving:n,disabled:r,onSave:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(p,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[0]=n,t[1]=a);let o;return t[2]!==r||t[3]!==i||t[4]!==a?(o=(0,D.jsx)(m,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function H({projectId:e,onProjectUpdated:t}){let n=i(),[r,a]=(0,T.useState)([]),[o,s]=(0,T.useState)([]),[l,u]=(0,T.useState)(!0),[d,f]=(0,T.useState)(!1),[p,m]=(0,T.useState)(!1),[g,_]=(0,T.useState)(!1),C=(0,T.useCallback)(async()=>{if(!e){u(!1);return}u(!0);try{let t=await z(e);a(t.disabledTools),s(t.disabledTools),m(t.toolsLocked),_(t.standardProject)}catch(e){B(e,`Failed to load tools settings`)}finally{u(!1)}},[e]);(0,T.useLayoutEffect)(()=>{e&&u(!0)},[e]),(0,T.useEffect)(()=>{C()},[C]);let E=w(e,[l]),O=L(r,o);async function k(){if(!(!e||!O)){f(!0);try{await h(e,{disabledTools:R(g,r)}),s(r),t&&await t(),await C(),n(`/`)}catch(e){B(e,`Failed to save tools settings`)}finally{f(!1)}}}return e?(0,D.jsx)(b,{loading:E,children:(0,D.jsxs)(x,{className:`shrink-0`,children:[(0,D.jsx)(y,{title:`Tools`,description:`Control which tools the agent can use in this project. Disabled tools are hidden from the agent.`,action:(0,D.jsx)(V,{saving:d,disabled:d||l||p||!O,onSave:()=>void k()}),sticky:!1}),(0,D.jsx)(S,{className:`max-w-none pt-6`,children:(0,D.jsx)(F,{disabledTools:r,onChange:a,disabled:l||d||p,forceDisabledTools:g?[...c]:void 0})})]})}):(0,D.jsx)(v,{title:`No project selected`,children:`Please select a project from the sidebar to configure tools.`})}export{H as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{At as a,Dt as o,Et as s,Ot as c,Tt as l,Vt as u,kt as d}from"./dist-DFsjr0PN.js";import{t as f}from"./utils-Buz2Fe6i.js";import{dt as p}from"./lucide-react-CNNzKD4G.js";import{t as m}from"./button-CltOBnLJ.js";import{$n as h,St as g}from"./api-BnJTzqjz.js";import{t as _}from"./use-toast-xpb5jNtN.js";import{At as v,Ct as y,Dt as b,Pt as x,jt as S,lt as C}from"./index-8x-2e2HM.js";import{t as w}from"./use-settings-page-loading-CpaBd260.js";var T=e(n(),1),E=t(),D=r(),O=a(),k=Math.ceil(O.length/2),A=[O.slice(0,k),O.slice(k)];function j(e){let t=(0,E.c)(14),{tool:n,enabled:r,disabled:i,onToggle:a}=e,o;t[0]!==a||t[1]!==n.name?(o=e=>a(n.name,e),t[0]=a,t[1]=n.name,t[2]=o):o=t[2];let s;t[3]!==i||t[4]!==r||t[5]!==o||t[6]!==n.displayName?(s=(0,D.jsx)(C,{value:r,onChange:o,disabled:i,ariaLabel:n.displayName}),t[3]=i,t[4]=r,t[5]=o,t[6]=n.displayName,t[7]=s):s=t[7];let c;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=f(u.body,`truncate`),t[8]=c):c=t[8];let l;t[9]===n.displayName?l=t[10]:(l=(0,D.jsx)(`span`,{className:c,children:n.displayName}),t[9]=n.displayName,t[10]=l);let d;return t[11]!==s||t[12]!==l?(d=(0,D.jsxs)(`div`,{className:`grid min-h-10 grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2`,children:[s,l]}),t[11]=s,t[12]=l,t[13]=d):d=t[13],d}function M(e,t,n){return!t.includes(e)&&!n.has(e)}function N(e,t,n){return t||n.has(e)}function P(e){let t=(0,E.c)(13),{tools:n,disabledTools:r,disabled:i,forceDisabledTools:a,onToggle:o}=e,s;if(t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==o||t[4]!==n){let e;t[6]!==i||t[7]!==r||t[8]!==a||t[9]!==o?(e=e=>(0,D.jsx)(j,{tool:e,enabled:M(e.name,r,a),disabled:N(e.name,i,a),onToggle:o},e.name),t[6]=i,t[7]=r,t[8]=a,t[9]=o,t[10]=e):e=t[10],s=n.map(e),t[0]=i,t[1]=r,t[2]=a,t[3]=o,t[4]=n,t[5]=s}else s=t[5];let c;return t[11]===s?c=t[12]:(c=(0,D.jsx)(`div`,{className:`divide-y divide-table-border`,children:s}),t[11]=s,t[12]=c),c}function F(e){let t=(0,E.c)(21),{disabledTools:n,onChange:r,disabled:i,forceDisabledTools:a}=e,o=i===void 0?!1:i,s,c,l,u;t[0]!==o||t[1]!==n||t[2]!==a||t[3]!==r?(s=new Set((a??[]).map(I)),c=function(e,t){let i=e.toLowerCase();if(!(s.has(i)&&t)){if(t){r(n.filter(e=>e!==i));return}n.includes(i)||r([...n,i].sort())}},l=`divide-y divide-table-border @md/settings-page:hidden`,u=O.map(e=>(0,D.jsx)(j,{tool:e,enabled:M(e.name,n,s),disabled:N(e.name,o,s),onToggle:c},e.name)),t[0]=o,t[1]=n,t[2]=a,t[3]=r,t[4]=s,t[5]=c,t[6]=l,t[7]=u):(s=t[4],c=t[5],l=t[6],u=t[7]);let d;t[8]!==l||t[9]!==u?(d=(0,D.jsx)(`div`,{className:l,children:u}),t[8]=l,t[9]=u,t[10]=d):d=t[10];let f;t[11]!==o||t[12]!==n||t[13]!==s||t[14]!==c?(f=A.map((e,t)=>(0,D.jsx)(P,{tools:e,disabledTools:n,disabled:o,forceDisabledTools:s,onToggle:c},t)),t[11]=o,t[12]=n,t[13]=s,t[14]=c,t[15]=f):f=t[15];let p;t[16]===f?p=t[17]:(p=(0,D.jsx)(`div`,{className:`hidden @md/settings-page:grid @md/settings-page:grid-cols-2 divide-x divide-table-border`,children:f}),t[16]=f,t[17]=p);let m;return t[18]!==d||t[19]!==p?(m=(0,D.jsxs)(D.Fragment,{children:[d,p]}),t[18]=d,t[19]=p,t[20]=m):m=t[20],m}function I(e){return e.toLowerCase()}function L(e,t){return JSON.stringify([...e].sort())!==JSON.stringify([...t].sort())}function R(e,t){return e?d({type:l,disabledTools:t}):t}async function z(e){let t=await g(e);return{disabledTools:d(t),toolsLocked:o(t),standardProject:c(t)}}function B(e,t){_({title:`Error`,description:e instanceof Error?e.message:t,variant:`destructive`})}function V(e){let t=(0,E.c)(6),{saving:n,disabled:r,onSave:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(p,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[0]=n,t[1]=a);let o;return t[2]!==r||t[3]!==i||t[4]!==a?(o=(0,D.jsx)(m,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function H({projectId:e,onProjectUpdated:t}){let n=i(),[r,a]=(0,T.useState)([]),[o,c]=(0,T.useState)([]),[l,u]=(0,T.useState)(!0),[d,f]=(0,T.useState)(!1),[p,m]=(0,T.useState)(!1),[g,_]=(0,T.useState)(!1),C=(0,T.useCallback)(async()=>{if(!e){u(!1);return}u(!0);try{let t=await z(e);a(t.disabledTools),c(t.disabledTools),m(t.toolsLocked),_(t.standardProject)}catch(e){B(e,`Failed to load tools settings`)}finally{u(!1)}},[e]);(0,T.useLayoutEffect)(()=>{e&&u(!0)},[e]),(0,T.useEffect)(()=>{C()},[C]);let E=w(e,[l]),O=L(r,o);async function k(){if(!(!e||!O)){f(!0);try{await h(e,{disabledTools:R(g,r)}),c(r),t&&await t(),await C(),n(`/`)}catch(e){B(e,`Failed to save tools settings`)}finally{f(!1)}}}return e?(0,D.jsx)(b,{loading:E,children:(0,D.jsxs)(x,{className:`shrink-0`,children:[(0,D.jsx)(y,{title:`Tools`,description:`Control which tools the agent can use in this project. Disabled tools are hidden from the agent.`,action:(0,D.jsx)(V,{saving:d,disabled:d||l||p||!O,onSave:()=>void k()}),sticky:!1}),(0,D.jsx)(S,{className:`max-w-none pt-6`,children:(0,D.jsx)(F,{disabledTools:r,onChange:a,disabled:l||d||p,forceDisabledTools:g?[...s]:void 0})})]})}):(0,D.jsx)(v,{title:`No project selected`,children:`Please select a project from the sidebar to configure tools.`})}export{H as default};