@qredence/fleet 0.6.6 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/web/client/assets/{action-swap-roll-Dbquwd1Y.js → action-swap-roll-BfVrBOVd.js} +1 -1
  3. package/dist/web/client/assets/{alert-dialog-C6Dkg1x6.js → alert-dialog-FCppNafx.js} +1 -1
  4. package/dist/web/client/assets/{artifacts-panel-8a_tn7Yb.js → artifacts-panel-C69vz-oo.js} +1 -1
  5. package/dist/web/client/assets/{badge-BjFxrtmB.js → badge-DOGhnsYk.js} +7 -7
  6. package/dist/web/client/assets/button-BJyg7l5W.js +1 -0
  7. package/dist/web/client/assets/{chat-command-palette-DhidLnw7.js → chat-command-palette-wyZjTNa8.js} +1 -1
  8. package/dist/web/client/assets/{chunk-YOKDWASO-C8deEx7Z.js → chunk-YOKDWASO-Dego39cu.js} +4 -4
  9. package/dist/web/client/assets/{citations-BYiDBo21.js → citations-BhyqbxcZ.js} +1 -1
  10. package/dist/web/client/assets/{command-Cre9BsOI.js → command-Bo31U-UD.js} +1 -1
  11. package/dist/web/client/assets/create-project-dialog-SDyXTpl-.js +1 -0
  12. package/dist/web/client/assets/{dialog-0KDCsqw0.js → dialog-DLIPvl1s.js} +1 -1
  13. package/dist/web/client/assets/{dist-CZDnnosQ.js → dist-QgsZ1U9l.js} +1 -1
  14. package/dist/web/client/assets/ease-DKi-MOH5.js +1 -0
  15. package/dist/web/client/assets/{fork-picker-dialog-BPSqUjKu.js → fork-picker-dialog-BDleMADF.js} +1 -1
  16. package/dist/web/client/assets/globals-DZbMyHfg.css +2 -0
  17. package/dist/web/client/assets/{highlighted-body-KPVGNVTW-CZcNaoxi.js → highlighted-body-KPVGNVTW-CSgDVUQp.js} +1 -1
  18. package/dist/web/client/assets/index-BARp0bjW.js +13 -0
  19. package/dist/web/client/assets/input-Ce8yLnXY.js +1 -0
  20. package/dist/web/client/assets/{input-group-Fky3fte_.js → input-group-BZLQiZOA.js} +1 -1
  21. package/dist/web/client/assets/is-ref-object-BD8OGh9C.js +1 -0
  22. package/dist/web/client/assets/{layout-constants-CC0ANQOP.js → layout-constants-Bl6XCvhY.js} +1 -1
  23. package/dist/web/client/assets/{markdown-code-BqFVdovL.js → markdown-code-DfJbKhL9.js} +1 -1
  24. package/dist/web/client/assets/{markdown-C-Y9gskI.js → markdown-yn-nhRzB.js} +2 -2
  25. package/dist/web/client/assets/mermaid-HWGCJPDP-BpEVCu9T.js +1 -0
  26. package/dist/web/client/assets/{message-queue-BUJK6bPQ.js → message-queue-CiptKSb6.js} +1 -1
  27. package/dist/web/client/assets/{model-selector-list-yOj8BeKr.js → model-selector-list-BHQ-Q8b9.js} +1 -1
  28. package/dist/web/client/assets/{notify-GSsGEKtR.js → notify-BC0a76VJ.js} +1 -1
  29. package/dist/web/client/assets/{openui-renderer-xe2-ekvP.js → openui-renderer-DrfHxs1t.js} +3 -3
  30. package/dist/web/client/assets/{preload-helper-Czpn1I53.js → preload-helper-BZ1Pz5am.js} +1 -1
  31. package/dist/web/client/assets/{prompt-input-BhVQxoyh.js → prompt-input-IwZOepG7.js} +1 -1
  32. package/dist/web/client/assets/{provider-label-BW_awXvw.js → provider-label-DNZOLldn.js} +1 -1
  33. package/dist/web/client/assets/{right-panel-registry-BpfG1iZV.js → right-panel-registry-CF7GLJrk.js} +2 -2
  34. package/dist/web/client/assets/routes-DCP1DP1g.js +16 -0
  35. package/dist/web/client/assets/select-COK0Kaq2.js +1 -0
  36. package/dist/web/client/assets/session-tool-renderer-Yu4G1165.js +1389 -0
  37. package/dist/web/client/assets/{session-tree-panel-BIEUJ1Zs.js → session-tree-panel-deGRKAhX.js} +1 -1
  38. package/dist/web/client/assets/settings-dialog-BU1Tw0CQ.js +2 -0
  39. package/dist/web/client/assets/{subagent-chat-panel-DA1GvHt8.js → subagent-chat-panel-bVnkDkgs.js} +1 -1
  40. package/dist/web/client/assets/{subagent-transcript-BGctBTbY.js → subagent-transcript-D_L-8PQi.js} +1 -1
  41. package/dist/web/client/assets/{subagent-utils-HbymlalM.js → subagent-utils-D7sXbLsS.js} +2 -2
  42. package/dist/web/client/assets/{subagents-panel-BJIdWRcV.js → subagents-panel-i5-12E1U.js} +1 -1
  43. package/dist/web/client/assets/surface-context-DWplCCcO.js +1 -0
  44. package/dist/web/client/assets/{switch-DIbInrPR.js → switch-DQETDDJT.js} +1 -1
  45. package/dist/web/client/assets/toast-BFeqSeaR.js +1 -0
  46. package/dist/web/client/assets/{tool-result-PSnAt_3f.js → tool-result-D7HtJ_yg.js} +2 -2
  47. package/dist/web/client/assets/{use-presence-D2YmRKr3.js → use-presence-rcUnm8Z7.js} +1 -1
  48. package/dist/web/client/assets/use-reduced-motion-BgG7f9xw.js +9 -0
  49. package/dist/web/client/assets/{workspace-panel-D3CMFw8W.js → workspace-panel-Clbmrdza.js} +1 -1
  50. package/dist/web/client/assets/{workspace-path-nav-DmxBrMV6.js → workspace-path-nav-eVT0rYvv.js} +2 -2
  51. package/dist/web/client/bundle-budget.json +5 -5
  52. package/dist/web/server/{_tanstack-start-manifest_v-MhCuqEzO-S6MEB7L5.js → _tanstack-start-manifest_v-CaT-3S-N-VAOGUHEJ.js} +26 -26
  53. package/dist/web/server/{artifacts-panel-BVfcZuA2-PB4RCSHV.js → artifacts-panel-BuAqeJzj-6DYYLKUW.js} +10 -10
  54. package/dist/web/server/{chat-command-palette-DlJDToBH-MVI6V743.js → chat-command-palette-Ca8gXVi2-P6EOQ43G.js} +6 -6
  55. package/dist/web/server/{chunk-KUBURZOL.js → chunk-35AFSKDX.js} +4 -4
  56. package/dist/web/server/{chunk-WBPESYPV.js → chunk-COWE2EJ6.js} +3 -3
  57. package/dist/web/server/{chunk-JT53AAM5.js → chunk-E4YWFQX5.js} +1442 -1063
  58. package/dist/web/server/{chunk-MM4HQ5EO.js → chunk-FPPKECLB.js} +7 -7
  59. package/dist/web/server/{chunk-VF3NJAD6.js → chunk-GCDOYNXR.js} +585 -634
  60. package/dist/web/server/{chunk-RWQWBZNI.js → chunk-ITKXE2Q5.js} +253 -215
  61. package/dist/web/server/{chunk-4QFOBBX5.js → chunk-J4Y2Z3XM.js} +2 -2
  62. package/dist/web/server/{chunk-SAIH5YPC.js → chunk-JFAUSHBI.js} +4 -4
  63. package/dist/web/server/{chunk-RQHQK66C.js → chunk-K4KN3QBT.js} +2 -2
  64. package/dist/web/server/{chunk-3VMFSSWK.js → chunk-M7BTY55G.js} +2 -2
  65. package/dist/web/server/{chunk-44MTKAFZ.js → chunk-PHHC52CO.js} +5 -5
  66. package/dist/web/server/{chunk-MSXGQVHG.js → chunk-UTV66W5H.js} +5 -5
  67. package/dist/web/server/{chunk-F5DJQ3PQ.js → chunk-WPSI5TBE.js} +1528 -2185
  68. package/dist/web/server/{create-project-dialog-UPz5_Ysf-FS6BL74M.js → create-project-dialog-DCvdysey-IZUGGDAN.js} +76 -15
  69. package/dist/web/server/{empty-plugin-adapters-Cqtvkauv-ILKI7W7V.js → empty-plugin-adapters-DOl-E2pL-RKRSN75W.js} +1 -1
  70. package/dist/web/server/{fork-picker-dialog-CZBpezXS-64KP23PO.js → fork-picker-dialog-QH00XmqX-6YLU5REF.js} +4 -4
  71. package/dist/web/server/{message-queue-D_Q3coUY-I3EJZXWR.js → message-queue-BzEFQR8k-2W53EW32.js} +4 -4
  72. package/dist/web/server/{model-selector-list-q6WkkOwQ-OT46QU5P.js → model-selector-list-BjoXmw92-TEKBPB3E.js} +6 -6
  73. package/dist/web/server/{openui-renderer-BqI6m6VI-HXEIYIYZ.js → openui-renderer-CJ7Q2zZ_-FPXKZPSO.js} +6 -6
  74. package/dist/web/server/{resources-panel-BKZ0M0RP-CMATPQQP.js → resources-panel-yVB4xF_K-OHFHXVU4.js} +5 -5
  75. package/dist/web/server/{router-BfuEp_JW-DNQ33L5J.js → router-UgU5vJxm-R33FGTXY.js} +3 -3
  76. package/dist/web/server/{routes-NdG3DsXJ-QKZT7TKM.js → routes-Cbbo-jh9-ZUPH4SJD.js} +37 -35
  77. package/dist/web/server/server.js +2410 -1672
  78. package/dist/web/server/{session-reasoning-panel-Dc-AnjdD-7KAZLD74.js → session-reasoning-panel-C50VbaQ8-4YLMVVY6.js} +5 -5
  79. package/dist/web/server/{session-tool-renderer-DaR8U5rb-TXWACWT7.js → session-tool-renderer-QcAkYD-V-6RXRKDH6.js} +6 -6
  80. package/dist/web/server/{session-tree-panel-V3l8WdmE-YBRDLHWU.js → session-tree-panel-CL49XSTK-4ZPK6AIV.js} +6 -6
  81. package/dist/web/server/{settings-dialog-C8U1VX75-6A2V6HSW.js → settings-dialog-DG9HEZeP-TWDRDGMN.js} +191 -120
  82. package/dist/web/server/{start-QK6aG02q-EMREW2SB.js → start-DEejK9Uj-FODAOTAO.js} +1 -1
  83. package/dist/web/server/{subagent-chat-panel-B9CtFTP5-6QDZ4RQY.js → subagent-chat-panel-Cg2CxshI-WWGFHTIF.js} +8 -8
  84. package/dist/web/server/{subagents-panel-Dw6yP5X4-BMN45GDD.js → subagents-panel-aC3Eo-MR-RNIPLCZQ.js} +9 -9
  85. package/dist/web/server/{workspace-panel-C246J-eO-2WGJWVE6.js → workspace-panel-DfdFkgHU-6HIOXRBX.js} +5 -5
  86. package/package.json +2 -2
  87. package/dist/web/client/assets/button-BrwYi6QP.js +0 -1
  88. package/dist/web/client/assets/create-project-dialog-DVOaxTzt.js +0 -1
  89. package/dist/web/client/assets/ease-2UPBQU5v.js +0 -1
  90. package/dist/web/client/assets/globals-CD6JXJJh.css +0 -2
  91. package/dist/web/client/assets/index-BEG-7vN-.js +0 -12
  92. package/dist/web/client/assets/input-tWLSIxES.js +0 -1
  93. package/dist/web/client/assets/is-ref-object-CEXqIz6L.js +0 -1
  94. package/dist/web/client/assets/mermaid-HWGCJPDP-CVNXPao6.js +0 -1
  95. package/dist/web/client/assets/routes-BIp_deev.js +0 -16
  96. package/dist/web/client/assets/select-Buvrx1fi.js +0 -1
  97. package/dist/web/client/assets/session-tool-renderer-CNcxpGsk.js +0 -1389
  98. package/dist/web/client/assets/settings-dialog-DAB6RL4u.js +0 -2
  99. package/dist/web/client/assets/surface-context-A-BjVzO_.js +0 -1
  100. package/dist/web/client/assets/toast-CS0pnDlS.js +0 -1
  101. package/dist/web/client/assets/use-reduced-motion-CaQBb3Qc.js +0 -9
@@ -1,2 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{$ as r,K as i,Y as a,q as o,t as s}from"./button-BrwYi6QP.js";import{t as c}from"./utils-Dpy9ZFOr.js";import{P as l,T as u,et as d,nt as f,rt as p}from"./createBaseUIEventDetails-DklXWq23.js";import{r as m}from"./toast-CS0pnDlS.js";import{N as h,S as g,_,a as v,c as y,g as b,r as x,t as S,v as C}from"./select-Buvrx1fi.js";import{t as w}from"./useBaseUiId-BlzQUkVG.js";import{t as T}from"./createLucideIcon-CQY2ECfR.js";import{a as E,i as D,n as O,o as k,r as A,s as j,t as M}from"./provider-label-BW_awXvw.js";import{t as N}from"./check-BTwIaCtI.js";import{t as P}from"./chevron-right-BPCB1mOg.js";import{i as F,r as I,t as L}from"./sparkles-C4VQyMox.js";import{t as R}from"./eye-iNSvs0UA.js";import{t as z}from"./hard-drive-B3opVeEB.js";import{i as B,n as V,r as H,t as U}from"./sun-C7zg8Oas.js";import{t as W}from"./loader-circle-BmKYM_C4.js";import{t as G}from"./pencil-Cbgq3ybX.js";import{t as K}from"./plug-wCz-036u.js";import{a as ee,n as te,r as ne}from"./right-panel-context-DHKWoetk.js";import{t as re}from"./refresh-cw-CqPE3kNY.js";import{t as ie}from"./rotate-ccw-DLkfsmG9.js";import{t as ae}from"./search-Cb6fFWew.js";import{a as oe,n as se,r as ce}from"./ui-preferences-1YaENqef.js";import{a as q,c as le,i as ue,n as J,r as de,s as fe,t as pe}from"./switch-DIbInrPR.js";import{a as me,n as he,o as ge,r as _e,t as ve}from"./dialog-0KDCsqw0.js";import{t as ye}from"./input-tWLSIxES.js";import{a as be,i as xe,n as Se,r as Ce,t as we}from"./input-group-Fky3fte_.js";import{c as Te,f as Ee,l as De,o as Oe}from"./tokens-CtP2s1Y3.js";import{t as Y}from"./notify-GSsGEKtR.js";import{t as X}from"./spinner-C3sPnLdu.js";import{a as ke,i as Ae,n as je,o as Me,r as Ne,s as Pe,t as Fe}from"./alert-dialog-C6Dkg1x6.js";var Ie={name:`box`,size:24,node:[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]};Ie.node;var Le=T(Ie),Re={name:`eye-off`,size:24,node:[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]};Re.node;var ze=T(Re),Be={name:`key-round`,size:24,node:[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]};Be.node;var Ve=T(Be),He={name:`layers`,size:24,node:[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]],aliases:[`layers-3`]};He.node;var Ue=T(He),We={name:`lock`,size:24,node:[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]};We.node;var Ge=T(We),Ke={name:`message-square`,size:24,node:[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]};Ke.node;var qe=T(Ke),Je={name:`paintbrush`,size:24,node:[[`path`,{d:`m14.622 17.897-10.68-2.913`,key:`vj2p1u`}],[`path`,{d:`M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z`,key:`18tc5c`}],[`path`,{d:`M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15`,key:`ytzfxy`}]]};Je.node;var Ye=T(Je),Xe={name:`save`,size:24,node:[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]};Xe.node;var Ze=T(Xe),Qe={name:`star`,size:24,node:[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]};Qe.node;var $e=T(Qe),et={name:`tag`,size:24,node:[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`,key:`vktsd0`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`kqv944`}]]};et.node;var tt=T(et),nt={name:`users`,size:24,node:[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]};nt.node;var rt=T(nt),Z=e(t(),1),Q=n(),it=new Set([`off`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]),at=new Map,ot=500;function st(e){let t=at.get(e);if(t)return t;let n=RegExp(`^${e.split(``).map(e=>e===`*`?`.*`:e===`?`?`.`:ft(e)).join(``)}$`);return at.size>=ot&&at.clear(),at.set(e,n),n}function ct(e,t){return t===void 0||t.length!==0&&t.some(t=>lt(e,t))}function lt(e,t){let n=ut(t.trim()).toLowerCase(),r=[e.id,e.modelId,e.name,e.key,e.provider&&e.modelId?`${e.provider}/${e.modelId}`:void 0,e.provider&&e.id?`${e.provider}/${e.id}`:void 0].filter(e=>typeof e==`string`).map(e=>e.toLowerCase());if(!dt(n))return r.includes(n);let i=st(n);return r.some(e=>i.test(e))}function ut(e){let t=e.lastIndexOf(`:`);if(t===-1)return e;let n=e.slice(t+1);return it.has(n)?e.slice(0,t):e}function dt(e){return e.includes(`*`)||e.includes(`?`)}function ft(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function pt(e,t){return`${e}/${t}`}function mt({className:e,interactive:t,padding:n,tone:r,...i}){return(0,Q.jsx)(`div`,{className:c(Ee({interactive:t,padding:n,tone:r}),e),...i})}function $({icon:e,title:t,subtitle:n,trailing:r,className:i,interactive:a=!0,tone:o=`default`}){return(0,Q.jsxs)(mt,{tone:o,padding:`md`,interactive:a,className:c(`items-center gap-3`,i),children:[e?(0,Q.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-md border border-border/40 bg-background/60 text-foreground/70`,children:e}):null,(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:t}),n?(0,Q.jsx)(`div`,{className:`mt-0.5 truncate text-xs text-muted-foreground`,children:n}):null]}),r?(0,Q.jsx)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:r}):null]})}function ht(e,t,n=!0){return t&&n&&e.trim().length===0}function gt({attemptedSave:e,label:t,onChange:n,onToggleVisibility:r,placeholder:i,required:a=!0,showPassword:o,value:s}){let l=(0,Z.useId)(),u=ht(s,e,a);return(0,Q.jsxs)(J,{"data-invalid":u||void 0,children:[(0,Q.jsx)(q,{htmlFor:l,children:t}),(0,Q.jsxs)(we,{children:[(0,Q.jsx)(Se,{align:`inline-start`,children:(0,Q.jsx)(Ge,{})}),(0,Q.jsx)(xe,{id:l,type:o?`text`:`password`,placeholder:i,value:s,onChange:e=>n(e.target.value),"aria-label":t,"aria-invalid":u||void 0}),(0,Q.jsx)(Se,{align:`inline-end`,children:(0,Q.jsx)(Ce,{size:`icon-xs`,className:c(Te,`transition-[background-color,transform] duration-150 active:scale-[0.96]`),"aria-label":o?`Hide value`:`Show value`,onClick:r,children:o?(0,Q.jsx)(ze,{}):(0,Q.jsx)(R,{})})})]})]})}function _t({attemptedSave:e,icon:t,inputType:n=`text`,label:r,onChange:i,placeholder:a,required:o=!0,value:s}){let c=(0,Z.useId)(),l=ht(s,e,o);return(0,Q.jsxs)(J,{"data-invalid":l||void 0,children:[(0,Q.jsx)(q,{htmlFor:c,children:r}),(0,Q.jsxs)(we,{children:[(0,Q.jsx)(Se,{align:`inline-start`,children:(0,Q.jsx)(t,{})}),(0,Q.jsx)(xe,{id:c,type:n,placeholder:a,value:s,onChange:e=>i(e.target.value),"aria-label":r,"aria-invalid":l||void 0})]})]})}var vt={unconfigured:`Add a key below to turn this on.`,unverified:`Checking the key…`,ready:`Ready.`,error:`The TypeSafe key could not be verified.`},yt={settings:`Using the key saved here.`,environment:`Using TYPESAFE_API_KEY from the server environment.`,none:`No key is set.`};function bt({enabled:e,keySource:t,status:n,onClearKey:r,onEnabledChange:i,onSaveKey:a}){let[o,c]=(0,Z.useState)(``),[l,u]=(0,Z.useState)(!1),[d,f]=(0,Z.useState)(!1),[p,m]=(0,Z.useState)(!1),h=(0,Z.useCallback)(async()=>{if(f(!0),!(!o.trim()||!a)){m(!0);try{await a(o.trim()),c(``),u(!1),f(!1)}finally{m(!1)}}},[o,a]),g=(0,Z.useCallback)(async()=>{if(r){m(!0);try{await r(),c(``)}finally{m(!1)}}},[r]),_=n===`unconfigured`||n===`error`;return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsx)($,{title:`Describe a command`,subtitle:`Recognise when a message is really asking for a built-in command, like "compact this" or "show the shortcuts". Messages you send are shared with TypeSafe for classification only when this is on. ${vt[n]}`,trailing:(0,Q.jsx)(pe,{"aria-label":`Describe a command`,checked:e,disabled:!i||!e&&_,onCheckedChange:i})}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-xl border p-4`,children:[(0,Q.jsx)(gt,{attemptedSave:d,label:`TypeSafe API key`,onChange:c,onToggleVisibility:()=>u(e=>!e),placeholder:`Paste your TypeSafe API key`,showPassword:l,value:o}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:yt[t]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(s,{type:`button`,size:`sm`,disabled:p||!o.trim(),onClick:()=>void h(),children:`Save key`}),t===`settings`?(0,Q.jsx)(s,{type:`button`,variant:`outline`,size:`sm`,disabled:p,onClick:()=>void g(),children:`Remove key`}):null]})]})]})}function xt({actions:e,children:t,description:n,title:r}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium text-balance`,children:r}),(0,Q.jsx)(`p`,{className:`mt-1 text-sm text-pretty text-muted-foreground`,children:n})]}),e?(0,Q.jsx)(`div`,{className:`flex shrink-0 items-center gap-1.5 pt-0.5`,children:e}):null]}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-3`,children:t})]})}function St({dirty:e,disabled:t,onRevert:n,onSave:r,saving:i}){return(0,Q.jsxs)(Q.Fragment,{children:[e?(0,Q.jsx)(s,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground transition-transform active:scale-[0.96]`,disabled:t||i,onClick:n,"aria-label":`Revert changes`,children:(0,Q.jsx)(ie,{})}):null,(0,Q.jsxs)(s,{type:`button`,variant:`outline`,size:`sm`,className:c(Oe,`transition-transform active:scale-[0.96]`,e&&`border-primary/30 text-primary`),disabled:!e||t||i,onClick:r,children:[i?(0,Q.jsx)(W,{className:`animate-spin`,"data-icon":`inline-start`}):(0,Q.jsx)(Ze,{"data-icon":`inline-start`}),`Commit`]})]})}var Ct=1500,wt=`Unknown or expired OAuth login`;function Tt(e){return new Promise(t=>{setTimeout(t,e)})}function Et({onConfigured:e,onOAuthLogin:t,providerId:n}){let[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(!1),[s,c]=(0,Z.useState)(``),l=(0,Z.useRef)(null),u=(0,Z.useRef)(0),d=(0,Z.useRef)(!1),f=(0,Z.useRef)(t),p=(0,Z.useRef)(e),m=(0,Z.useRef)(n);(0,Z.useEffect)(()=>{f.current=t,p.current=e,m.current=n},[e,t,n]);let h=(0,Z.useCallback)(async e=>{if(!(!e||!f.current))try{await f.current({providerId:m.current,loginId:e,cancel:!0})}catch{}},[]),g=(0,Z.useCallback)(()=>{l.current=null,d.current=!1,i(null),c(``),o(!1)},[]);(0,Z.useEffect)(()=>()=>{u.current+=1;let e=l.current;l.current=null,h(e)},[h]);let _=(0,Z.useCallback)((e,t)=>{if(t!==u.current){e.status===`waiting`&&e.loginId&&h(e.loginId);return}if(e.status===`success`){l.current=null,i(null),c(``),o(!1),Y.success(`Provider credentials applied to your active sessions.`),p.current?.();return}if(e.status===`error`){if(e.error===wt&&l.current===null)return;let t=l.current;l.current=null,t&&e.error!==`Login cancelled`&&h(t),i(e),o(!1);return}e.loginId&&(l.current=e.loginId),i(e)},[h]),v=(0,Z.useCallback)(async()=>{if(!f.current||d.current)return;d.current=!0;let e=u.current;o(!0);let t=l.current;if(l.current=null,i(null),await h(t),e!==u.current){d.current=!1;return}try{let t=await f.current({providerId:m.current});_(t,e)}catch(t){if(e!==u.current)return;i({status:`error`,error:t instanceof Error?t.message:`Failed to start OAuth sign-in`})}finally{d.current=!1,e===u.current&&o(!1)}},[_,h]),y=(0,Z.useCallback)(async()=>{let e=l.current;if(!f.current||!e)return;let t=u.current;o(!0);try{let n=await f.current({providerId:m.current,loginId:e,promptAnswer:s});c(``),_(n,t)}catch(e){if(t!==u.current)return;Y.error(e instanceof Error?e.message:`Failed to continue OAuth sign-in`)}finally{t===u.current&&o(!1)}},[_,s]),b=(0,Z.useCallback)(async()=>{u.current+=1;let e=l.current;g(),await h(e)},[h,g]);return(0,Z.useEffect)(()=>{if(!f.current||r?.status!==`waiting`||!r.loginId)return;let e=u.current,t=r.loginId,n=!1;return(async()=>{for(;!n;){try{let r=await f.current({providerId:m.current,loginId:t});if(n||e!==u.current||(_(r,e),r.status!==`waiting`))return}catch(r){if(n||e!==u.current||l.current!==t)return;l.current=null,h(t),i({status:`error`,error:r instanceof Error?r.message:`OAuth sign-in failed`});return}if(await Tt(Ct),n||e!==u.current||l.current!==t)return}})(),()=>{n=!0}},[_,h,r?.loginId,r?.status]),{busy:a,cancel:b,canStart:!!t,login:r,promptAnswer:s,setPromptAnswer:c,start:v,submitPrompt:y}}function Dt({onConfigured:e,onOAuthLogin:t,provider:n}){let{busy:r,cancel:i,canStart:a,login:o,promptAnswer:c,setPromptAnswer:l,start:u,submitPrompt:d}=Et({onConfigured:e,onOAuthLogin:t,providerId:n.id}),f=o?.status===`waiting`,p=o?.status===`error`?o.error:void 0,m=f?o?.authUrl:void 0,h=f?o?.userCode:void 0,g=f?o?.instructions:void 0,_=f?o?.prompt:void 0,v=n.authType===`oauth`;return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n.isConfigured&&v&&!f?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,Q.jsx)(N,{className:`size-3.5 text-muted-foreground`}),(0,Q.jsx)(`span`,{children:`Connected`})]}):null,f?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsxs)(`p`,{className:`text-sm`,children:[`Sign in with `,n.name,` to store OAuth credentials for this account.`]}),h?(0,Q.jsxs)(`p`,{className:`text-sm`,children:[`Enter this code: `,(0,Q.jsx)(`span`,{className:`font-mono text-foreground`,children:h})]}):null,g&&!h?(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:g}):null,m?(0,Q.jsxs)(s,{type:`button`,size:`sm`,onClick:()=>{window.open(m,`_blank`,`noopener,noreferrer`)},children:[(0,Q.jsx)(F,{"data-icon":`inline-start`}),`Open sign-in page`]}):_?null:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,Q.jsx)(X,{className:`size-3`}),`Waiting for sign-in…`]}),_?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:_.message}),(0,Q.jsx)(ye,{value:c,placeholder:_.placeholder,onChange:e=>l(e.target.value),"aria-label":_.message}),(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsxs)(s,{type:`button`,size:`sm`,disabled:r||!_.allowEmpty&&!c.trim(),onClick:()=>{d()},children:[r?(0,Q.jsx)(X,{"data-icon":`inline-start`}):null,`Continue`]})})]}):null,(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsx)(s,{type:`button`,variant:`ghost`,size:`sm`,disabled:r,onClick:()=>{i()},children:`Cancel sign-in`})})]}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[p?(0,Q.jsx)(fe,{className:`px-3 py-2`,children:(0,Q.jsx)(le,{className:`text-xs text-pretty`,children:p})}):(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:v&&n.isConfigured?`Sign in again with ${n.name} to refresh OAuth credentials.`:v?`Sign in with ${n.name}. No API key is stored; credentials are saved to auth.json.`:`Sign in with ${n.name} to use OAuth credentials; API-key editing remains available above.`}),(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsxs)(s,{type:`button`,size:`sm`,disabled:r||!a,onClick:()=>{u()},children:[r?(0,Q.jsx)(X,{"data-icon":`inline-start`}):null,`Sign in with `,n.name]})})]})]})}function Ot(e){switch(e.status){case`connected`:return`Connected`;case`anonymous`:return`Available without sign-in`;case`needs_auth`:return`Sign-in required`;case`disabled`:return`Disabled`;default:return e.status}}function kt(e){let t=e.transport===`http`?e.url:e.commandPreview;return[e.source===`builtin`?`Built-in`:`User`,e.transport===`http`?`HTTP`:`stdio`,Ot(e),t].filter(e=>!!e).join(` · `)}function At({connections:e,isLoading:t,isPending:n,onOAuth:r,onRemove:i,onUpsert:a}){let[o,c]=(0,Z.useState)(!1),[l,u]=(0,Z.useState)(`http`),[d,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(!0),[_,v]=(0,Z.useState)(``),[y,b]=(0,Z.useState)(``),[x,C]=(0,Z.useState)(``),[w,T]=(0,Z.useState)(``),[E,O]=(0,Z.useState)(``),[k,A]=(0,Z.useState)(null),j=()=>{f(``),m(``),g(!0),v(``),b(``),C(``),T(``),O(``),u(`http`),c(!1)},M=async()=>{if(!a)return;let e=d.trim();try{if(l===`http`)await a({name:e,transport:`http`,url:p.trim(),...h?{oauth:!0}:{},..._.trim()?{bearerTokenEnvVar:_.trim()}:{},force:!0});else{let t=x.split(/\s+/).map(e=>e.trim()).filter(Boolean),n=E.split(`
2
- `).map(e=>e.trim()).filter(Boolean).flatMap(e=>{let t=e.indexOf(`=`);if(t<=0)return[];let n=e.slice(0,t).trim(),r=e.slice(t+1).trim();return!n||!r?[]:[{child:n,source:r}]});await a({name:e,transport:`stdio`,command:y.trim(),...t.length>0?{args:t}:{},...w.trim()?{cwd:w.trim()}:{},...n.length>0?{env:n}:{},force:!0})}Y.success(`MCP connection saved`),j()}catch(e){Y.error(e instanceof Error?e.message:`Could not save MCP connection`)}},N=async e=>{if(i)try{await i({name:e}),Y.success(`Removed ${e}`),A(null)}catch(e){Y.error(e instanceof Error?e.message:`Could not remove MCP connection`)}},P=async e=>{if(r)try{await r({name:e,action:`logout`}),Y.success(`Signed out of ${e}`)}catch(e){Y.error(e instanceof Error?e.message:`Could not sign out`)}},F=(0,Z.useMemo)(()=>{if(r)return e=>async t=>{let n=!t.loginId&&!t.cancel;return await r({name:e.name,action:n&&e.status===`connected`?`reconnect`:`login`,loginId:t.loginId,promptAnswer:t.promptAnswer,cancel:t.cancel})}},[r]);return(0,Q.jsxs)(xt,{title:`MCP`,description:`Connect built-in and user MCP servers. Tokens stay on the server; this list only shows status and environment-variable names.`,actions:(0,Q.jsxs)(s,{type:`button`,size:`sm`,variant:`outline`,disabled:n||o,onClick:()=>c(!0),children:[(0,Q.jsx)(ee,{"data-icon":`inline-start`}),`Add server`]}),children:[t?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,Q.jsx)(X,{className:`size-3.5`}),`Loading MCP connections…`]}):null,o?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-xl border p-4`,children:[(0,Q.jsxs)(J,{children:[(0,Q.jsx)(q,{children:`Name`}),(0,Q.jsx)(ye,{value:d,onChange:e=>f(e.target.value),"aria-label":`MCP server name`})]}),(0,Q.jsxs)(J,{children:[(0,Q.jsx)(q,{children:`Transport`}),(0,Q.jsx)(S,{value:l,onValueChange:e=>u(e),options:[{label:`HTTP`,value:`http`},{label:`stdio`,value:`stdio`}]})]}),l===`http`?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(J,{children:[(0,Q.jsx)(q,{children:`URL`}),(0,Q.jsx)(ye,{value:p,onChange:e=>m(e.target.value),"aria-label":`MCP server URL`})]}),(0,Q.jsxs)(J,{orientation:`horizontal`,className:`items-center justify-between`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(q,{children:`OAuth`}),(0,Q.jsx)(de,{children:`Use the browser sign-in flow for this server.`})]}),(0,Q.jsx)(pe,{checked:h,onCheckedChange:e=>g(e),"aria-label":`Use OAuth`})]}),h?null:(0,Q.jsxs)(J,{children:[(0,Q.jsx)(q,{children:`Bearer token environment variable`}),(0,Q.jsx)(ye,{value:_,onChange:e=>v(e.target.value),"aria-label":`Bearer token environment variable`,placeholder:`MCP_BEARER_TOKEN`})]})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(J,{children:[(0,Q.jsx)(q,{children:`Command`}),(0,Q.jsx)(ye,{value:y,onChange:e=>b(e.target.value),"aria-label":`MCP command`})]}),(0,Q.jsxs)(J,{children:[(0,Q.jsx)(q,{children:`Arguments`}),(0,Q.jsx)(ye,{value:x,onChange:e=>C(e.target.value),"aria-label":`MCP command arguments`})]}),(0,Q.jsxs)(J,{children:[(0,Q.jsx)(q,{children:`Working directory`}),(0,Q.jsx)(ye,{value:w,onChange:e=>T(e.target.value),"aria-label":`MCP working directory`}),(0,Q.jsx)(de,{children:`Must stay inside the current workspace.`})]}),(0,Q.jsxs)(J,{children:[(0,Q.jsx)(q,{children:`Environment mappings`}),(0,Q.jsx)(be,{value:E,onChange:e=>O(e.target.value),"aria-label":`MCP environment mappings`,placeholder:`CHILD=SOURCE`}),(0,Q.jsx)(de,{children:`One CHILD=SOURCE pair per line. Only variable names are stored.`})]})]}),(0,Q.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Q.jsx)(s,{type:`button`,size:`sm`,variant:`ghost`,onClick:j,children:`Cancel`}),(0,Q.jsxs)(s,{type:`button`,size:`sm`,disabled:n||!d.trim(),onClick:()=>void M(),children:[n?(0,Q.jsx)(X,{"data-icon":`inline-start`}):null,`Save`]})]})]}):null,!t&&e.length===0&&!o?(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No MCP connections yet.`}):null,(0,Q.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map(e=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)($,{icon:(0,Q.jsx)(K,{className:`size-4`}),title:e.label,subtitle:kt(e),trailing:(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[e.usesOAuth&&e.status!==`needs_auth`?(0,Q.jsx)(s,{type:`button`,size:`sm`,variant:`ghost`,disabled:n||!r,onClick:()=>{P(e.name)},children:`Sign out`}):null,e.source===`user`?k===e.name?(0,Q.jsx)(s,{type:`button`,size:`sm`,variant:`destructive`,disabled:n,onClick:()=>{N(e.name)},children:`Confirm remove`}):(0,Q.jsx)(s,{type:`button`,size:`sm`,variant:`ghost`,disabled:n||!i,"aria-label":`Remove ${e.name}`,onClick:()=>A(e.name),children:(0,Q.jsx)(D,{className:`size-3.5`})}):null]})}),e.error?(0,Q.jsx)(fe,{className:`px-3 py-2`,children:(0,Q.jsx)(le,{className:`text-xs text-pretty`,children:e.error})}):null,e.usesOAuth&&F?(0,Q.jsx)(Dt,{provider:{id:e.name,name:e.label,isConfigured:e.status===`connected`,envVarName:``,authType:`oauth`,supportsOAuth:!0},onOAuthLogin:F(e)}):null]},`${e.source}:${e.name}`))})]})}var jt=[{value:`system`,label:`System`,icon:H},{value:`light`,label:`Light`,icon:U},{value:`dark`,label:`Dark`,icon:V}];function Mt({onThemePreferenceChange:e,themePreference:t}){return(0,Q.jsxs)(J,{orientation:`horizontal`,className:`items-center justify-between gap-6 rounded-xl border p-4`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(q,{children:`Theme`}),(0,Q.jsx)(de,{children:`Match the system theme or pick light or dark.`})]}),(0,Q.jsx)(`div`,{className:`shrink-0`,children:(0,Q.jsx)(S,{"aria-label":`Theme`,className:`w-[160px]`,onValueChange:t=>e(t),options:[...jt],value:t})})]})}function Nt(e,t){return`${e}/${t}`}function Pt(e,t){return ct({id:e.id,name:e.name,provider:e.provider,modelId:e.modelId},t)}function Ft({currentPatterns:e,enabled:t,model:n,models:r}){if(e===void 0&&t)return;let i=e??[],a=new Set(r.map(e=>It(e))),o=new Set;for(let t of r)Pt(t,e)&&o.add(It(t));return t?o.add(It(n)):o.delete(It(n)),[...i.filter(e=>a.has(e)?!1:t||!lt(n,e)),...o]}function It(e){return pt(e.provider,e.modelId)}function Lt(e){return[e.name,e.modelId,e.provider,e.id].join(` `).toLowerCase()}function Rt({configuredProviderIds:e,discoverableProviderIds:t,discoveringProviderId:n,enabledModels:r,modelOptions:i,onAddModels:a,onDiscoverProvider:o,onOpenChange:l,open:u,providerLabel:d=M}){let[f,p]=(0,Z.useState)(``),[m,h]=(0,Z.useState)(new Set),g=f.trim().toLowerCase(),_=(0,Z.useMemo)(()=>i.filter(t=>!e.has(t.provider)||Pt(t,r)?!1:!g||Lt(t).includes(g)),[e,r,i,g]),v=(0,Z.useMemo)(()=>{let e=new Map;for(let t of _){let n=e.get(t.provider);n?n.push(t):e.set(t.provider,[t])}return[...e.entries()]},[_]),y=(0,Z.useMemo)(()=>{let n=t??e;return Array.from(n).filter(t=>e.has(t)).sort((e,t)=>d(e).localeCompare(d(t)))},[e,t,d]),b=(0,Z.useMemo)(()=>{let e=new Map;for(let t of i)Pt(t,r)&&e.set(t.provider,(e.get(t.provider)??0)+1);return e},[r,i]),x=e=>{h(t=>{let n=new Set(t);return n.has(e.id)?n.delete(e.id):n.add(e.id),n})};return(0,Q.jsx)(ve,{open:u,onOpenChange:l,children:(0,Q.jsxs)(he,{className:`max-w-lg`,children:[(0,Q.jsxs)(me,{children:[(0,Q.jsx)(ge,{children:`Add models`}),(0,Q.jsxs)(_e,{children:[`Pick models discovered from your configured providers. For OpenAI Chat Completions, refresh runs`,` `,(0,Q.jsxs)(`span`,{className:`font-medium`,children:[`GET `,`{baseUrl}/models`]}),`.`]})]}),(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:y.map(e=>{let t=n===e,r=b.get(e)??0;return(0,Q.jsxs)(s,{type:`button`,variant:`outline`,size:`sm`,disabled:n!==null,onClick:()=>{o(e)},children:[t?(0,Q.jsx)(X,{"data-icon":`inline-start`}):(0,Q.jsx)(re,{"data-icon":`inline-start`}),d(e),r>0?(0,Q.jsxs)(`span`,{className:`tabular-nums text-muted-foreground`,children:[`· `,r,` active`]}):null]},e)})}),(0,Q.jsxs)(we,{children:[(0,Q.jsx)(Se,{align:`inline-start`,children:(0,Q.jsx)(ae,{})}),(0,Q.jsx)(xe,{"aria-label":`Search discovered models`,value:f,onChange:e=>p(e.target.value),placeholder:`Search discovered models…`})]}),(0,Q.jsx)(`div`,{className:`max-h-72 overflow-y-auto`,children:v.length===0?(0,Q.jsx)(`p`,{className:`py-6 text-center text-xs text-pretty text-muted-foreground`,children:_.length===0&&!g?`All discovered models are already in your list, or none are available yet.`:`No models match your search.`}):(0,Q.jsx)(`div`,{className:`flex flex-col gap-3`,children:v.map(([e,t])=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsxs)(`div`,{className:`px-2 text-caption font-medium tracking-wide text-muted-foreground uppercase`,children:[d(e),(b.get(e)??0)>0?(0,Q.jsxs)(`span`,{className:`ml-1 font-normal normal-case tabular-nums`,children:[`· `,b.get(e),` active`]}):null]}),t.map(e=>{let t=m.has(e.id);return(0,Q.jsxs)(`button`,{type:`button`,className:c(`flex w-full items-center gap-3 rounded-lg px-2 py-2 text-left transition-[background-color,transform] duration-150`,`hover:bg-muted/60 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none active:scale-[0.96]`,t&&`bg-muted/70`),"aria-pressed":t,onClick:()=>x(e),children:[(0,Q.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-[4px] border border-border/40 bg-background/60`,children:(0,Q.jsx)(O,{provider:e.provider,className:`text-foreground/70`})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-sm font-medium`,children:e.name}),(0,Q.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.modelId})]}),(0,Q.jsx)(`span`,{className:c(`size-4 rounded border border-border/60`,t&&`border-foreground bg-foreground`),"aria-hidden":!0})]},e.id)})]},e))})}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5`,children:[(0,Q.jsx)(s,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>l(!1),children:`Cancel`}),(0,Q.jsxs)(s,{type:`button`,size:`sm`,disabled:m.size===0,onClick:()=>{let e=_.filter(e=>m.has(e.id));e.length>0&&a(e),l(!1)},children:[`Add `,m.size>0?(0,Q.jsxs)(`span`,{className:`tabular-nums`,children:[`(`,m.size,`)`]}):null]})]})]})})}function zt({draft:e,discoveringProviderId:t,modelDirty:n,modelFilter:r,modelOptions:i,onAddModels:a,onDiscoverProvider:o,onModelFilterChange:l,onRemoveModel:u,onSetDefaultModel:d,onRevert:f,onSave:p,providers:m,saving:h,settingsLoading:g}){let[_,v]=(0,Z.useState)(!1),y=!e||g,b=r.trim().toLowerCase(),x=(0,Z.useMemo)(()=>{let t=new Set;for(let e of m)e.isConfigured&&t.add(e.id);for(let n of i)Pt(n,e?.enabledModels)&&t.add(n.provider);return t},[e?.enabledModels,i,m]),S=(0,Z.useMemo)(()=>{let e=new Set;for(let t of m)t.discoverable===!0&&x.has(t.id)&&e.add(t.id);return e},[x,m]),C=(0,Z.useMemo)(()=>t=>!!e?.defaultProvider&&!!e?.defaultModel&&t.provider===e.defaultProvider&&t.modelId===e.defaultModel,[e?.defaultModel,e?.defaultProvider]),w=(0,Z.useMemo)(()=>{let e=new Map;for(let t of m)(t.displayName||t.name)&&e.set(t.id,t.displayName??t.name??t.id);return t=>e.get(t)??M(t)},[m]),T=(0,Z.useMemo)(()=>i.filter(t=>Pt(t,e?.enabledModels)?!b||[t.name,t.modelId,t.provider,t.id].join(` `).toLowerCase().includes(b):!1),[e?.enabledModels,i,b]),E=(0,Z.useMemo)(()=>{let e=new Map;for(let t of T){let n=e.get(t.provider);n?n.push(t):e.set(t.provider,[t])}return[...e.entries()]},[T]),k=i.length===0?`No models discovered yet. Configure a provider, then add models.`:T.length===0&&!b?`Add models from your configured providers to make them available in chat.`:T.length===0?`No models match your search.`:null,A=()=>{v(!0)};return(0,Q.jsxs)(xt,{title:`LLM Models`,description:(0,Q.jsxs)(Q.Fragment,{children:[`Models available in chat. Discover from configured providers, add the ones you want, and remove any you do not need — changes save automatically. `,(0,Q.jsx)(`span`,{className:`tabular-nums`,children:T.length}),` in list`,i.length>0?(0,Q.jsxs)(Q.Fragment,{children:[` `,`· `,(0,Q.jsx)(`span`,{className:`tabular-nums`,children:i.length}),` discovered`]}):null,`.`]}),actions:(0,Q.jsx)(St,{dirty:n,disabled:y,onRevert:f,onSave:p,saving:h}),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(we,{className:`flex-1`,children:[(0,Q.jsx)(Se,{align:`inline-start`,children:(0,Q.jsx)(ae,{})}),(0,Q.jsx)(xe,{"aria-label":`Search listed models`,value:r,onChange:e=>l(e.target.value),placeholder:`Search listed models…`,disabled:y||T.length===0})]}),(0,Q.jsxs)(s,{type:`button`,variant:`outline`,size:`sm`,disabled:y,onClick:A,children:[(0,Q.jsx)(ee,{"data-icon":`inline-start`}),`Add models`]})]}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-3`,"data-testid":`runtime-models-list`,children:k?(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8`,children:[(0,Q.jsx)(`p`,{className:`px-1 text-center text-xs text-pretty text-muted-foreground`,children:k}),b?null:(0,Q.jsxs)(s,{type:`button`,variant:`outline`,size:`sm`,disabled:y,onClick:A,children:[(0,Q.jsx)(ee,{"data-icon":`inline-start`}),`Add models`]})]}):E.map(([e,t])=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Q.jsx)(`div`,{className:`px-1 text-xs font-medium text-muted-foreground`,children:w(e)}),t.map(e=>(0,Q.jsx)($,{icon:(0,Q.jsx)(O,{provider:e.provider}),title:e.name,subtitle:`${w(e.provider)} · ${e.modelId}`,trailing:(0,Q.jsxs)(`div`,{className:`flex items-center`,children:[C(e)?(0,Q.jsx)(`span`,{className:`px-2 text-xs font-medium text-muted-foreground`,children:`Default`}):d?(0,Q.jsxs)(s,{type:`button`,variant:`ghost`,size:`sm`,className:c(De,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 active:scale-[0.96]`),disabled:y,"aria-label":`Set ${e.name} as default`,onClick:()=>d(e),children:[(0,Q.jsx)($e,{"data-icon":`inline-start`}),`Set default`]}):null,(0,Q.jsxs)(s,{type:`button`,variant:`ghost`,size:`sm`,className:c(De,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 hover:text-destructive active:scale-[0.96]`),disabled:y,"aria-label":`Remove ${e.name}`,onClick:()=>u(e),children:[(0,Q.jsx)(D,{"data-icon":`inline-start`}),`Remove`]})]})},e.id))]},e))}),(0,Q.jsx)(Rt,{open:_,configuredProviderIds:x,discoverableProviderIds:S,discoveringProviderId:t,enabledModels:e?.enabledModels,modelOptions:i,onAddModels:a,onDiscoverProvider:o,onOpenChange:v,providerLabel:w})]})}var Bt=`https://opencode.ai/zen/v1`,Vt=`qwen35-122b-a10b`,Ht=`e.g. OpenCode Zen, Nebius, Groq…`,Ut=`model-a, model-b (comma-separated)`,Wt=[{value:`openai-completions`,label:`OpenAI Chat Completions`},{value:`openai-responses`,label:`OpenAI Responses`},{value:`anthropic-messages`,label:`Anthropic Messages`},{value:`google-genai`,label:`Google Generative AI`}];function Gt({attemptedSave:e,apiKey:t,api:n,baseUrl:r,modelId:i,models:a,displayName:o,isCustom:s,onApiKeyChange:c,onApiChange:l,onBaseUrlChange:u,onModelIdChange:d,onModelsChange:f,onDisplayNameChange:p,onTogglePassword:m,openAiChat:h,placeholder:g,showPassword:_}){let v=s&&l,y=s&&f;return(0,Q.jsxs)(ue,{className:`gap-2`,children:[(h||s)&&p?(0,Q.jsx)(_t,{attemptedSave:e,icon:tt,label:`Provider name`,placeholder:Ht,value:o??``,onChange:p}):null,v?(0,Q.jsx)(Kt,{value:n??`openai-completions`,onChange:l}):null,(0,Q.jsx)(gt,{attemptedSave:e,label:`API key`,placeholder:g,value:t,showPassword:_,onChange:c,onToggleVisibility:m}),h||s?(0,Q.jsx)(_t,{attemptedSave:e,icon:I,inputType:`url`,label:`Base URL`,placeholder:Bt,value:r,onChange:u}):null,y?(0,Q.jsx)(_t,{attemptedSave:e,icon:Ue,label:`Model ids`,placeholder:Ut,value:a??``,onChange:f}):null,h&&!y?(0,Q.jsx)(_t,{attemptedSave:e,icon:Le,label:`Model name`,placeholder:Vt,value:i,onChange:d}):null]})}function Kt({value:e,onChange:t}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:`API family`}),(0,Q.jsx)(S,{"aria-label":`API family`,value:e,options:Wt,placeholder:`Select API family`,onValueChange:e=>t(e)})]})}function qt(e){return e.authType===`oauth`}function Jt(e){return e.supportsOAuth===!0}var Yt={id:`custom`,name:`Custom provider`,isConfigured:!1,envVarName:`CUSTOM_PROVIDER_API_KEY`,displayName:`Custom provider`};function Xt(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}function Zt({onRemoveProvider:e,onUpdateProvider:t,providers:n}){let[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(!1),[s,c]=(0,Z.useState)(``),[l,u]=(0,Z.useState)(``),[d,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(`openai-completions`),[v,y]=(0,Z.useState)(``),[x,S]=(0,Z.useState)(!1),[w,T]=(0,Z.useState)(!1),[E,D]=(0,Z.useState)(``),[O,k]=(0,Z.useState)(!1),[A,j]=(0,Z.useState)(``),[M,N]=(0,Z.useState)(null),P=(0,Z.useMemo)(()=>[...n.filter(e=>e.id!==Yt.id),Yt],[n]),F=(0,Z.useMemo)(()=>P.filter(e=>e.isConfigured),[P]),I=(0,Z.useMemo)(()=>P.filter(e=>!e.isConfigured||e.id===`openai-chat-completions`&&e.providerFamily===void 0),[P]),L=(0,Z.useMemo)(()=>{let e=E.trim().toLowerCase();return e?F.filter(t=>Qt(t,e)):F},[F,E]),R=(0,Z.useMemo)(()=>{let e=A.trim().toLowerCase();return I.filter(t=>Qt(t,e))},[A,I]),z=(0,Z.useMemo)(()=>{let e=A.trim().toLowerCase();return F.filter(t=>Qt(t,e))},[F,A]),B=R.length>0||z.length>0,V=r&&!F.some(e=>e.id===r)?P.find(e=>e.id===r)??null:null,H=()=>{c(``),u(``),f(``),m(``),g(`openai-completions`),y(``),S(!1),T(!1)},U=()=>{i(null),o(!1),H()},W=(e,t)=>{k(!1),j(``),i(e),o(t?.newOccInstance===!0),H();let r=n.find(t=>t.id===e);u(r?.baseUrl??``),y(r?.displayName??(b(e)?r?.name??``:``)),g(r?.api??`openai-completions`),m((r?.modelIds??[]).join(`, `)),f(r?.modelIds?.[0]??``)},G=()=>{U(),j(``),k(!0)},K=()=>{k(!1),j(``)};return{activeProviders:F,addPickerOpen:O,addPickerQuery:A,api:h,apiKey:s,attemptedSave:w,baseUrl:l,canSave:(0,Z.useMemo)(()=>s.trim().length===0?!1:r?r===`custom`||b(r)?l.trim().length===0||Xt(p).length===0?!1:v.trim().length>0:C(r)?l.trim().length===0||d.trim().length===0?!1:_(r)||a?v.trim().length>0:!0:!0:!0,[s,l,d,p,v,r,a]),closeAddPicker:K,closeEditor:U,confirmRemoveProvider:M,credentialProviders:P,displayName:v,editingIsNewOccInstance:a,editingProvider:r,editingUnconfiguredProvider:V,filteredActiveProviders:L,filteredPickerAvailable:R,filteredPickerConfigured:z,handleRemove:async t=>{if(e)try{await e({providerId:t.id}),r===t.id&&U(),Y.success(`${t.name} removed from your configured providers.`),N(null)}catch(e){Y.error(e instanceof Error?e.message:`Failed to remove provider`)}},handleSave:async e=>{if(!t)return;T(!0);let n=e===`custom`||b(e),r=C(e);if(n){let n=Xt(p);if(!s.trim()||!l.trim()||!v.trim()||n.length===0)return;try{await t({providerId:e,apiKey:s.trim(),baseUrl:l.trim(),displayName:v.trim(),api:h,models:n,...e===`custom`?{createOccInstance:!0}:{}}),Y.success(`Provider credentials applied to your active sessions.`),U(),K()}catch(e){Y.error(e instanceof Error?e.message:`Failed to update provider`)}return}let i=r&&_(e),o=r&&(i||a);if(s.trim()&&!(r&&(!l.trim()||!d.trim()))&&!(o&&!v.trim()))try{await t({providerId:e,apiKey:s.trim(),...r?{baseUrl:l.trim(),modelId:d.trim(),...o?{displayName:v.trim()}:{},...a?{createOccInstance:!0}:{}}:{}}),Y.success(`Provider credentials applied to your active sessions.`),U(),K()}catch(e){Y.error(e instanceof Error?e.message:`Failed to update provider`)}},modelId:d,models:p,openAddPicker:G,openEditor:W,pickerHasResults:B,resetEditor:H,searchQuery:E,selectProviderFromPicker:e=>{W(e,{newOccInstance:C(e)})},setAddPickerOpen:k,setAddPickerQuery:j,setApi:g,setApiKey:c,setAttemptedSave:T,setBaseUrl:u,setConfirmRemoveProvider:N,setDisplayName:y,setEditingIsNewOccInstance:o,setEditingProvider:i,setModelId:f,setModels:m,setSearchQuery:D,setShowPassword:S,showPassword:x,unconfiguredProviders:I}}function Qt(e,t){if(!t)return!0;let n=Jt(e)?qt(e)?`oauth sign-in login`:`api key oauth sign-in login`:e.id===`custom`||b(e.id)?`custom provider endpoint openai anthropic google compatible`:C(e.id)?`api key base url model name chat completions`:``;return[e.name,e.envVarName,e.id,n].join(` `).toLowerCase().includes(t)}function $t({addPickerQuery:e,credentialProvidersLength:t,filteredPickerAvailable:n,filteredPickerConfigured:r,pickerHasResults:i,onClose:a,onQueryChange:o,onSelect:c}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(s,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Back to providers`,onClick:a,children:(0,Q.jsx)(j,{})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`p`,{className:`text-sm font-medium`,children:`Add provider`}),(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:`Choose a provider to store encrypted credentials for this account.`})]})]}),(0,Q.jsxs)(we,{children:[(0,Q.jsx)(Se,{align:`inline-start`,children:(0,Q.jsx)(ae,{})}),(0,Q.jsx)(xe,{type:`text`,placeholder:`Search providers…`,value:e,onChange:e=>o(e.target.value),"aria-label":`Search providers to add`})]}),(0,Q.jsx)(`div`,{className:`max-h-[min(24rem,50vh)] overflow-y-auto`,children:i?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n.length>0?(0,Q.jsx)(`div`,{className:`flex flex-col gap-1`,children:n.map(e=>(0,Q.jsx)(rn,{provider:e,configured:!1,onSelect:()=>c(e.id)},e.id))}):null,r.length>0?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[n.length>0?(0,Q.jsx)(`p`,{className:`px-2 pt-1 text-caption font-medium tracking-wide text-muted-foreground uppercase`,children:`Already configured`}):null,r.map(e=>(0,Q.jsx)(rn,{provider:e,configured:!0,onSelect:()=>c(e.id)},e.id))]}):null]}):(0,Q.jsx)(`p`,{className:`py-6 text-center text-xs text-pretty text-muted-foreground`,children:t===0?`No providers available.`:`No matching providers found.`})})]})}function en({onBack:e,onConfigured:t,onOAuthLogin:n,provider:r}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(s,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Back to provider list`,onClick:e,children:(0,Q.jsx)(j,{})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsxs)(`p`,{className:`text-sm font-medium`,children:[`Configure `,r.name]}),(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:`OAuth sign-in. Credentials are stored in auth.json for this account.`})]})]}),(0,Q.jsx)(Dt,{provider:r,onConfigured:t,onOAuthLogin:n},r.id)]})}function tn({provider:e,api:t,apiKey:n,baseUrl:r,modelId:i,models:a,displayName:o,showPassword:c,attemptedSave:l,isPending:u,canSave:d,onApiKeyChange:f,onApiChange:p,onBaseUrlChange:h,onModelIdChange:g,onModelsChange:_,onDisplayNameChange:v,onTogglePassword:y,onBack:x,onCancel:S,onConfigured:w,onOAuthLogin:T,onSave:E}){let D=e.id===`custom`||b(e.id),O=A[e.id]??(D?A.custom:{placeholder:`Enter credentials…`,help:`Stored securely in your local environment overrides.`}),k=C(e.id)&&!D,M=Jt(e);return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(s,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Back to provider list`,onClick:x,children:(0,Q.jsx)(j,{})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsxs)(`p`,{className:`text-sm font-medium`,children:[`Configure `,e.name]}),(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:D?`Name this custom provider, pick its API family, then enter its API key, https base URL, and model ids.`:k?`Name this OpenAI-compatible provider, then enter its API key, base URL, and model name.`:`Stored as ${e.envVarName} for this account.`})]})]}),(0,Q.jsx)(Gt,{attemptedSave:l,api:t,apiKey:n,baseUrl:r,modelId:i,models:a,displayName:o,isCustom:D,openAiChat:k,placeholder:O.placeholder,showPassword:c,onApiKeyChange:f,onApiChange:p,onBaseUrlChange:h,onModelIdChange:g,onModelsChange:_,onDisplayNameChange:v,onTogglePassword:y}),(0,Q.jsxs)(fe,{className:`px-3 py-2`,children:[(0,Q.jsx)(m,{}),(0,Q.jsx)(le,{className:`text-xs text-pretty`,children:O.help})]}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5`,children:[(0,Q.jsx)(s,{type:`button`,variant:`ghost`,size:`sm`,onClick:S,children:`Cancel`}),(0,Q.jsxs)(s,{type:`button`,size:`sm`,disabled:u||!d,onClick:E,children:[u?(0,Q.jsx)(X,{"data-icon":`inline-start`}):null,`Save`]})]}),M?(0,Q.jsx)(Dt,{provider:e,onConfigured:w??S,onOAuthLogin:T},`${e.id}-oauth`):null]})}function nn({confirmRemoveProvider:e,isPending:t,onClose:n,onConfirm:r}){return(0,Q.jsx)(Fe,{open:e!==null,onOpenChange:e=>{e||n()},children:(0,Q.jsxs)(Ae,{children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsxs)(Pe,{children:[`Remove `,e?.name??`provider`,`?`]}),(0,Q.jsx)(ke,{children:`This clears stored credentials for this provider from your workspace settings. Active sessions will stop using it immediately.`})]}),(0,Q.jsxs)(Me,{children:[(0,Q.jsx)(Ne,{disabled:t,children:`Cancel`}),(0,Q.jsxs)(je,{disabled:t||!e,onClick:()=>{e&&r(e)},children:[t?(0,Q.jsx)(X,{"data-icon":`inline-start`}):null,`Remove provider`]})]})]})})}function rn({configured:e,onSelect:t,provider:n}){let r=C(n.id),i=n.id===`custom`||b(n.id),a=qt(n),o=Jt(n);return(0,Q.jsxs)(`button`,{type:`button`,className:c(`flex w-full items-center gap-3 rounded-lg px-2 py-2 text-left transition-[background-color,transform] duration-150`,`hover:bg-muted/60 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none active:scale-[0.96]`),onClick:t,children:[(0,Q.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-[4px] border border-border/40 bg-background/60`,children:(0,Q.jsx)(O,{provider:i?`custom`:n.id,api:n.api,className:`text-foreground/70`})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-sm font-medium`,children:n.name}),(0,Q.jsxs)(`div`,{className:`truncate text-xs text-muted-foreground`,children:[a?`OAuth sign-in`:o?`API key or OAuth`:i?`API family + key + https base URL + models`:r?`API key + base URL + model name`:n.envVarName,e?` · Update`:``]})]})]})}function an({providers:e,editingProvider:t,form:n,operation:r,actions:i,onEdit:a,onCancelEdit:o,onSave:l,onRemove:u,onOAuthLogin:d,onConfigured:f}){let{api:p,apiKey:h,baseUrl:g,modelId:_,models:v,displayName:y,showPassword:x,attemptedSave:S,canSave:w}=n,{isPending:T,canRemove:E}=r,{onApiKeyChange:k,onApiChange:j,onBaseUrlChange:M,onModelIdChange:N,onModelsChange:P,onDisplayNameChange:F,onTogglePassword:I}=i;return(0,Q.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:e.map(e=>{let n=t===e.id,r=b(e.id),i=A[e.id]??A[r?`custom`:`openai-chat-completions`],L=C(e.id),R=qt(e),z=Jt(e);return(0,Q.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Q.jsx)($,{interactive:!1,icon:(0,Q.jsx)(O,{provider:e.id,api:e.api,className:`text-foreground/80`}),title:e.name,subtitle:R?`OAuth sign-in`:z?`API key or OAuth`:r?`Custom provider · API key + base URL + models`:L?`OpenAI-compatible · API key + base URL + model name`:e.envVarName,trailing:(0,Q.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Q.jsxs)(s,{type:`button`,variant:`ghost`,size:`sm`,className:c(De,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 hover:text-destructive active:scale-[0.96]`),disabled:T||!E,"aria-label":`Remove ${e.name}`,onClick:()=>u(e),children:[(0,Q.jsx)(D,{"data-icon":`inline-start`}),`Remove`]}),(0,Q.jsxs)(s,{type:`button`,variant:`ghost`,size:`sm`,className:c(De,`h-7 px-2 text-xs transition-[background-color,transform] duration-150 active:scale-[0.96]`),disabled:T,onClick:()=>{if(n){o();return}a(e.id)},children:[n?null:(0,Q.jsx)(G,{"data-icon":`inline-start`}),n?`Cancel`:`Update`]})]})}),n?(0,Q.jsx)(mt,{tone:`inset`,padding:`md`,className:`flex flex-col gap-2 border-t border-border/30`,children:R?(0,Q.jsx)(Dt,{provider:e,onConfigured:f,onOAuthLogin:d},e.id):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Gt,{attemptedSave:S,api:e.api??p,apiKey:h,baseUrl:g,modelId:_,models:v,displayName:y,isCustom:r,openAiChat:L,placeholder:i.placeholder,showPassword:x,onApiKeyChange:k,onApiChange:j,onBaseUrlChange:M,onModelIdChange:N,onModelsChange:P,onDisplayNameChange:r||e.providerFamily!==void 0?F:void 0,onTogglePassword:I}),(0,Q.jsxs)(fe,{className:`px-3 py-2`,children:[(0,Q.jsx)(m,{}),(0,Q.jsx)(le,{className:`text-xs text-pretty`,children:i.help})]}),(0,Q.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,Q.jsxs)(s,{type:`button`,size:`sm`,disabled:T||!w,onClick:()=>l(e.id),children:[T?(0,Q.jsx)(X,{"data-icon":`inline-start`}):null,`Save`]})}),z?(0,Q.jsx)(Dt,{provider:e,onConfigured:f,onOAuthLogin:d},`${e.id}-oauth`):null]})}):null]},e.id)})})}function on({isLoading:e,isPending:t,onOAuthLogin:n,onRemoveProvider:r,onUpdateProvider:i,providers:a}){let{activeProviders:o,addPickerOpen:c,addPickerQuery:l,api:u,apiKey:d,attemptedSave:f,baseUrl:p,canSave:m,closeAddPicker:h,closeEditor:g,confirmRemoveProvider:_,credentialProviders:v,displayName:y,editingProvider:b,editingUnconfiguredProvider:x,filteredActiveProviders:S,filteredPickerAvailable:C,filteredPickerConfigured:w,handleRemove:T,handleSave:E,modelId:D,models:O,openAddPicker:k,openEditor:A,pickerHasResults:j,searchQuery:M,selectProviderFromPicker:N,setAddPickerQuery:P,setApi:F,setApiKey:I,setBaseUrl:L,setConfirmRemoveProvider:R,setDisplayName:z,setModelId:B,setModels:V,setSearchQuery:H,setShowPassword:U,showPassword:W}=Zt({onRemoveProvider:r,onUpdateProvider:i,providers:a}),G={api:u,apiKey:d,baseUrl:p,modelId:D,models:O,displayName:y,showPassword:W,attemptedSave:f,canSave:m},K={isPending:t,canRemove:!!r},te={onApiKeyChange:I,onApiChange:F,onBaseUrlChange:L,onModelIdChange:B,onModelsChange:V,onDisplayNameChange:z,onTogglePassword:()=>U(e=>!e)};return(0,Q.jsxs)(xt,{title:`Providers`,description:"Locally, API keys are stored in `.env.local`. When deployed, they are stored encrypted in your account.",children:[c?(0,Q.jsx)($t,{addPickerQuery:l,credentialProvidersLength:v.length,filteredPickerAvailable:C,filteredPickerConfigured:w,pickerHasResults:j,onClose:h,onQueryChange:P,onSelect:N}):x&&qt(x)?(0,Q.jsx)(en,{provider:x,onBack:k,onConfigured:g,onOAuthLogin:n},x.id):x?(0,Q.jsx)(tn,{provider:x,api:u,apiKey:d,baseUrl:p,modelId:D,models:O,displayName:y,showPassword:W,attemptedSave:f,isPending:t,canSave:m,onApiKeyChange:I,onApiChange:F,onBaseUrlChange:L,onModelIdChange:B,onModelsChange:V,onDisplayNameChange:z,onTogglePassword:()=>U(e=>!e),onBack:k,onCancel:g,onConfigured:g,onOAuthLogin:n,onSave:()=>{b&&E(b)}}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(we,{className:`flex-1`,children:[(0,Q.jsx)(Se,{align:`inline-start`,children:(0,Q.jsx)(ae,{})}),(0,Q.jsx)(xe,{type:`text`,placeholder:`Search credentials…`,value:M,onChange:e=>H(e.target.value),"aria-label":`Search credentials`,disabled:e||o.length===0})]}),(0,Q.jsxs)(s,{type:`button`,variant:`outline`,size:`sm`,disabled:e||v.length===0,onClick:k,children:[(0,Q.jsx)(ee,{"data-icon":`inline-start`}),`Add provider`]})]}),e?(0,Q.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-xs text-muted-foreground`,children:[(0,Q.jsx)(X,{className:`size-3`}),(0,Q.jsx)(`span`,{children:`Loading…`})]}):o.length===0?(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8`,children:[(0,Q.jsx)(`p`,{className:`text-center text-xs text-pretty text-muted-foreground`,children:`No providers configured`}),(0,Q.jsxs)(s,{type:`button`,variant:`outline`,size:`sm`,disabled:v.length===0,onClick:k,children:[(0,Q.jsx)(ee,{"data-icon":`inline-start`}),`Add provider`]})]}):S.length===0?(0,Q.jsx)(`p`,{className:`py-6 text-center text-xs text-pretty text-muted-foreground`,children:`No matching providers found.`}):(0,Q.jsx)(an,{providers:S,editingProvider:b,form:G,operation:K,actions:te,onEdit:A,onCancelEdit:g,onSave:e=>void E(e),onRemove:R,onOAuthLogin:n,onConfigured:g})]}),(0,Q.jsx)(nn,{confirmRemoveProvider:_,isPending:t,onClose:()=>R(null),onConfirm:e=>{T(e)}})]})}function sn(e){return{defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,defaultThinkingLevel:e.defaultThinkingLevel,enabledModels:e.enabledModels===void 0?null:hn(e.enabledModels)}}function cn(e){let t=e.enabledModels,n=t==null?null:hn(t).toSorted();return{defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,defaultThinkingLevel:e.defaultThinkingLevel,enabledModels:n}}function ln(e){return{packages:e.packages,extensions:hn(e.extensions),skills:hn(e.skills),prompts:hn(e.prompts),themes:hn(e.themes),enableSkillCommands:e.enableSkillCommands}}function un(e){return{compaction:{enabled:e.compaction.enabled,reserveTokens:e.compaction.reserveTokens,keepRecentTokens:e.compaction.keepRecentTokens},retry:{enabled:e.retry.enabled,maxRetries:e.retry.maxRetries,baseDelayMs:e.retry.baseDelayMs},transport:e.transport,steeringMode:e.steeringMode,followUpMode:e.followUpMode}}function dn(e,t){return JSON.stringify(e)===JSON.stringify(t)}function fn(e){let t=e?[...e.skills,...e.prompts,...e.extensions,...e.packages,...e.themes,...e.agentsFiles]:[];return{active:t.filter(e=>e.activationStatus===`active`).length,staged:t.filter(e=>e.activationStatus===`staged`).length,reloadRequired:t.filter(e=>e.activationStatus===`reload-required`).length,diagnostics:e?.diagnostics??[],total:t.length}}function pn(e){return e.map(e=>typeof e==`string`?e:JSON.stringify(e))}function mn(e){let t=[];for(let n of e){let e=n.trim();if(!e)continue;if(!e.startsWith(`{`)){t.push(e);continue}let r=JSON.parse(e);if(!r||typeof r!=`object`||Array.isArray(r))throw Error(`Package JSON entries must be objects.`);t.push(r)}return t}function hn(e){return e.flatMap(e=>{let t=e.trim();return t?[t]:[]})}function gn({draft:e,setDraft:t,updateDraft:n,settings:r,providers:i,models:a,modelCatalog:o,onDiscoverModels:s,saveSettings:c,setSavingSection:l}){let[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)([]),[m,h]=(0,Z.useState)(null),g=(0,Z.useRef)(null),_=(0,Z.useMemo)(()=>{let e=new Set;for(let t of i)t.isConfigured&&e.add(t.id);return e},[i]),v=o??a,y=(0,Z.useMemo)(()=>{let t=new Map;for(let e of v)_.has(e.provider)&&t.set(e.id,e);for(let e of f)_.has(e.provider)&&t.set(e.id,e);let n=[...t.values()];return!e?.defaultProvider||!e.defaultModel||n.some(t=>t.provider===e.defaultProvider&&t.modelId===e.defaultModel)||!_.has(e.defaultProvider)?n:[{id:Nt(e.defaultProvider,e.defaultModel),name:e.defaultModel,provider:e.defaultProvider,modelId:e.defaultModel,available:!1},...n]},[v,_,f,e]),b=g.current??(r?cn(r.effective):null),x=!!e&&!!b&&!dn(cn(e),b),S=(0,Z.useCallback)(()=>{g.current=null},[]),C=async(e,n)=>{t(e),l(`models`);try{let r=await c(sn(e)),i={...r.effective,enabledModels:r.project.enabledModels??e.enabledModels??r.effective.enabledModels,defaultProvider:r.project.defaultProvider??e.defaultProvider??r.effective.defaultProvider,defaultModel:r.project.defaultModel??e.defaultModel??r.effective.defaultModel,defaultThinkingLevel:r.project.defaultThinkingLevel??e.defaultThinkingLevel??r.effective.defaultThinkingLevel};return g.current=cn(i),t(i),n?.silent||Y.success(`Pi settings saved`),!0}catch(e){return Y.error(e instanceof Error?e.message:`Settings save failed`),!1}finally{l(null)}},w=e=>{C(e)},T=(t,n)=>{if(!e)return;let r={...e,enabledModels:Ft({currentPatterns:e.enabledModels,enabled:n,model:t,models:y})};w(r)};return{modelFilter:u,setModelFilter:d,modelOptions:y,modelDirty:x,addModels:t=>{if(!e||t.length===0)return;let n=e.enabledModels;for(let e of t)n=Ft({currentPatterns:n,enabled:!0,model:e,models:y});w({...e,enabledModels:n})},removeModel:e=>{T(e,!1)},setDefaultModel:t=>{e&&C({...e,defaultProvider:t.provider,defaultModel:t.modelId})},discoverProvider:async e=>{if(s){h(e);try{let t=await s(e);p(e=>{let n=new Map(e.map(e=>[e.id,e]));for(let e of t)n.set(e.id,e);return[...n.values()]})}finally{h(null)}}},discoveringProviderId:m,commitModelSettings:C,revertModelDraft:()=>{r&&n(e=>({...e,defaultProvider:r.effective.defaultProvider,defaultModel:r.effective.defaultModel,defaultThinkingLevel:r.effective.defaultThinkingLevel,enabledModels:r.effective.enabledModels}))},resetCommittedModelBaseline:S}}var _n=[{value:`auto`,label:`Auto`},{value:`sse`,label:`SSE`},{value:`websocket`,label:`WebSocket`}],vn=[{value:`all`,label:`All`},{value:`one-at-a-time`,label:`One at a time`}];function yn({draft:e,updateDraft:t}){let n=!e;return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)($,{title:`Compaction`,subtitle:`Summarize old turns when context fills up`,trailing:(0,Q.jsx)(pe,{"aria-label":`Compaction`,checked:e?.compaction.enabled??!1,disabled:n,onCheckedChange:e=>t(t=>({...t,compaction:{...t.compaction,enabled:e}}))})}),(0,Q.jsx)($,{title:`Auto-retry`,subtitle:`Retry failed provider requests`,trailing:(0,Q.jsx)(pe,{"aria-label":`Auto-retry`,checked:e?.retry.enabled??!1,disabled:n,onCheckedChange:e=>t(t=>({...t,retry:{...t.retry,enabled:e}}))})}),(0,Q.jsx)($,{title:`Transport`,trailing:(0,Q.jsx)(S,{"aria-label":`Transport`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,transport:e})),options:[..._n],value:e?.transport??`auto`})}),(0,Q.jsx)($,{title:`Steering`,subtitle:`How queued steers are delivered mid-turn`,trailing:(0,Q.jsx)(S,{"aria-label":`Steering`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,steeringMode:e})),options:[...vn],value:e?.steeringMode??`all`})}),(0,Q.jsx)($,{title:`Follow-up`,subtitle:`How queued follow-ups run after the turn`,trailing:(0,Q.jsx)(S,{"aria-label":`Follow-up`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,followUpMode:e})),options:[...vn],value:e?.followUpMode??`all`})})]})}var bn=new Set([`auto`,`global`,`local`,`project`,`workspace`]);function xn(e){let t=e.source?.trim();if(t&&!bn.has(t))return t;let n=(e.workspacePath??e.path??``).trim();return n?Sn(n):e.name.trim()}function Sn(e){let t=e.replace(/\\/g,`/`);if(/^\/Users\//.test(t)||/^\/home\//.test(t)||/^[A-Za-z]:\//.test(t))return``;if(!t.startsWith(`/`)&&!/^[A-Za-z]:\//.test(t))return t.startsWith(`agent-workspace/`)?Cn(`../${t}`):t.startsWith(`../agent-workspace/.pi/`)?Cn(t.replace(`../agent-workspace/.pi/`,`../agent-workspace/pi/`)):Cn(t);let n=t.match(/\/(agent-workspace\/.+)$/);if(n?.[1])return Cn(`../${n[1].replace(/^agent-workspace\/\.pi\//,`agent-workspace/pi/`)}`);let r=t.match(/\/\.pi\/(extensions\/.+|skills\/.+|prompts\/.+|themes\/.+)$/);return r?.[1]?Cn(r[1]):``}function Cn(e){return e.replace(/\/SKILL\.md$/i,``).replace(/\/index\.(ts|tsx|js|jsx|mjs|cjs)$/i,``)}function wn(e,t){let n=Sn(t);return e.some(e=>Sn(e)===n)}function Tn(e,t){let n=t.trim();if(!n)return e;let r=Sn(n);return!r||wn(e,r)?e:[...e,r]}function En({addLabel:e,catalog:t,onChange:n,placeholder:r,values:i}){let[a,o]=(0,Z.useState)(``),c=new Set,l=[];for(let e of t){let t=xn(e);t.length===0||c.has(t)||(c.add(t),l.push({value:t,label:e.name||t}))}let u=new Map(l.map(e=>[e.value,e.label])),d=e=>u.get(e)??u.get(Sn(e)),f=l.filter(e=>!wn(i,e.value)),p=()=>{let e=a.trim();e&&(n(Tn(i,e)),o(``))};return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[i.length===0?(0,Q.jsx)(`p`,{className:`px-1 py-2 text-xs text-pretty text-muted-foreground`,children:`Nothing selected yet.`}):i.map(e=>{let t=d(e);return(0,Q.jsx)($,{interactive:!1,title:t??e,subtitle:t&&t!==e?e:void 0,trailing:(0,Q.jsx)(s,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":`Remove ${e}`,onClick:()=>n(i.filter(t=>t!==e)),children:(0,Q.jsx)(D,{})})},e)}),f.length>0?(0,Q.jsx)(S,{"aria-label":e,value:null,placeholder:e,options:f,onValueChange:e=>{e&&n(Tn(i,e))}}):(0,Q.jsxs)(we,{children:[(0,Q.jsx)(xe,{"aria-label":e,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),p())},placeholder:r}),(0,Q.jsx)(Se,{align:`inline-end`,children:(0,Q.jsxs)(Ce,{onClick:p,disabled:!a.trim(),children:[(0,Q.jsx)(ee,{"data-icon":`inline-start`}),`Add`]})})]})]})}function Dn({draft:e,onEnableSkillCommandsChange:t,onExtensionsChange:n,onPackageRowsChange:r,onPromptsChange:i,onRevert:a,onSave:o,onSkillsChange:s,onThemesChange:c,packageError:l,packageRows:u,resourceDirty:d,resources:f,resourceSummary:p,saving:m,scope:h=`harness`,settingsLoading:g,updateDraft:_}){let v=!e||g||!!l,y=p.total===0?`Empty`:p.reloadRequired>0?`${p.total} · ${p.reloadRequired} reload`:`${p.total}`;return(0,Q.jsx)(xt,{title:h===`skills`?`Skills`:`Pi Harness`,description:h===`skills`?`Pick detected workspace skills and slash-command discovery.`:`Runtime (compaction, retry, transport) plus packages, extensions, prompts, and themes.`,actions:(0,Q.jsx)(St,{dirty:d,disabled:v,onRevert:a,onSave:o,saving:m}),children:h===`skills`?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)($,{title:`Skill slash commands`,trailing:(0,Q.jsx)(pe,{"aria-label":`Skill slash commands`,checked:e?.enableSkillCommands??!0,disabled:!e,onCheckedChange:t})}),(0,Q.jsx)(On,{label:`Skills`,count:e?.skills.length??0,children:(0,Q.jsx)(En,{addLabel:`Add skill`,catalog:f?.skills??[],placeholder:`../agent-workspace/pi/skills`,values:e?.skills??[],onChange:s})})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(yn,{draft:e,updateDraft:_}),(0,Q.jsx)($,{interactive:!1,title:`Catalog`,subtitle:(0,Q.jsx)(`span`,{className:`tabular-nums`,children:y})}),(0,Q.jsxs)(On,{label:`Packages`,count:u.length,children:[(0,Q.jsx)(En,{addLabel:`Add package`,catalog:f?.packages??[],placeholder:`npm:pi-skills or {"source":"npm:pkg"}`,values:u,onChange:r}),l?(0,Q.jsx)(`p`,{className:`px-1 text-xs text-destructive`,children:l}):null]}),(0,Q.jsx)(On,{label:`Extensions`,count:e?.extensions.length??0,children:(0,Q.jsx)(En,{addLabel:`Add extension`,catalog:f?.extensions??[],placeholder:`../agent-workspace/pi/extensions`,values:e?.extensions??[],onChange:n})}),(0,Q.jsx)(On,{label:`Prompts`,count:e?.prompts.length??0,children:(0,Q.jsx)(En,{addLabel:`Add prompt`,catalog:f?.prompts??[],placeholder:`../agent-workspace/pi/prompts`,values:e?.prompts??[],onChange:i})}),(0,Q.jsx)(On,{label:`Themes`,count:e?.themes.length??0,children:(0,Q.jsx)(En,{addLabel:`Add theme`,catalog:f?.themes??[],placeholder:`../agent-workspace/pi/themes`,values:e?.themes??[],onChange:c})})]})})}function On({children:e,count:t,label:n}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Q.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2 px-1`,children:[(0,Q.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:n}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground tabular-nums`,children:t===1?`1 item`:`${t} items`})]}),e]})}function kn({isLoading:e,isPending:t,onUpdateProvider:n,providers:r}){let[i,a]=(0,Z.useState)(!1),[o,l]=(0,Z.useState)(``),[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(!1),_=(0,Z.useMemo)(()=>r.find(e=>e.id===`daytona`),[r]),v=(0,Z.useMemo)(()=>r.find(e=>e.id===`daytona-target`),[r]),y=!!(_?.isConfigured&&v?.isConfigured),b=()=>{l(``),d(``),p(!1),g(!1)},x=()=>{a(!1),b()},S=async()=>{if(n&&(g(!0),!(!o.trim()&&!u.trim())))try{o.trim()&&await n({providerId:`daytona`,apiKey:o.trim()}),u.trim()&&await n({providerId:`daytona-target`,apiKey:u.trim()}),Y.success(`Sandbox Provider updated successfully`),x()}catch(e){Y.error(e instanceof Error?e.message:`Failed to update provider`)}},C=o.trim().length>0||u.trim().length>0;return(0,Q.jsx)(xt,{title:`Sandbox`,description:`Configure isolated execution environments.`,children:e?(0,Q.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-xs text-muted-foreground`,children:[(0,Q.jsx)(X,{}),(0,Q.jsx)(`span`,{children:`Loading…`})]}):(0,Q.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Q.jsx)($,{interactive:!1,icon:(0,Q.jsx)(z,{className:`size-4 text-foreground/80`}),title:`Daytona`,subtitle:`DAYTONA_API_KEY · DAYTONA_TARGET`,trailing:(0,Q.jsx)(s,{type:`button`,variant:`ghost`,size:`sm`,className:c(De,`h-7 px-2 text-xs transition-[background-color,transform] duration-150 active:scale-[0.96]`),onClick:()=>{if(i){x();return}a(!0),b()},children:i?`Cancel`:y?`Update`:`Configure`})}),i?(0,Q.jsxs)(mt,{tone:`inset`,padding:`md`,className:`flex flex-col gap-2 border-t border-border/30`,children:[(0,Q.jsxs)(ue,{className:`gap-2`,children:[(0,Q.jsx)(gt,{attemptedSave:h,label:`Daytona API key`,placeholder:`Enter Daytona API Key…`,value:o,showPassword:f,required:!1,onChange:l,onToggleVisibility:()=>p(e=>!e)}),(0,Q.jsx)(_t,{attemptedSave:h,icon:I,label:`Region / target`,placeholder:`e.g. us-east`,value:u,required:!1,onChange:d})]}),(0,Q.jsxs)(fe,{className:`px-3 py-2`,children:[(0,Q.jsx)(m,{}),(0,Q.jsx)(le,{className:`text-xs text-pretty`,children:`Settings are stored securely in your local environment overrides. Provide at least one value to save.`})]}),(0,Q.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,Q.jsxs)(s,{type:`button`,size:`sm`,disabled:t||!C,onClick:()=>void S(),children:[t?(0,Q.jsx)(X,{"data-icon":`inline-start`}):null,`Save`]})})]}):null]})})}var An={appearance:{id:`appearance`,order:10,title:`Appearance`,ariaLabel:`Appearance settings`,icon:Ye,group:`workspace`},chat:{id:`chat`,order:20,title:`Chat`,ariaLabel:`Chat settings`,icon:qe,group:`workspace`},mcp:{id:`mcp`,order:25,title:`MCP`,ariaLabel:`MCP connection settings`,icon:K,group:`workspace`},sandbox:{id:`sandbox`,order:30,title:`Sandbox`,ariaLabel:`Sandbox settings`,icon:z,group:`advanced`},providers:{id:`providers`,order:40,title:`Providers`,ariaLabel:`Provider settings`,icon:Ve,group:`models`},"llm-models":{id:`llm-models`,order:50,title:`LLM Models`,ariaLabel:`LLM model settings`,icon:k,group:`models`},skills:{id:`skills`,order:60,title:`Skills`,ariaLabel:`Skill settings`,icon:L,group:`advanced`},"pi-harness":{id:`pi-harness`,order:70,title:`Pi Harness`,ariaLabel:`Pi harness settings`,icon:E,group:`advanced`},keybindings:{id:`keybindings`,order:80,title:`Keybindings`,ariaLabel:`Keybinding settings`,icon:B,group:`advanced`},sessions:{id:`sessions`,order:90,title:`Sessions`,ariaLabel:`Session settings`,icon:rt,group:`workspace`}},jn=[{id:`workspace`,label:`Workspace`},{id:`models`,label:`Models`},{id:`advanced`,label:`Advanced`}],Mn=Object.values(An).sort((e,t)=>e.order-t.order);function Nn(e){return Mn.some(t=>t.id===e)}function Pn({draft:e,settings:t,updateDraft:n}){let[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(),s=(0,Z.useMemo)(()=>pn(t?.effective.packages??[]),[t?.effective.packages]),c=r??s;return{packageRows:c,packageError:a,resourceDirty:!!e&&!!t&&(!dn(ln(e),ln(t.effective))||!dn(un(e),un(t.effective))||!dn(c.filter(e=>e.trim()),pn(t.effective.packages))),handlePackageRowsChange:e=>{i(e);try{let t=mn(e);o(void 0),n(e=>({...e,packages:t}))}catch(e){o(e instanceof Error?e.message:String(e))}},revertResourceDraft:()=>{t&&(n(e=>({...e,packages:t.effective.packages,extensions:t.effective.extensions,skills:t.effective.skills,prompts:t.effective.prompts,themes:t.effective.themes,enableSkillCommands:t.effective.enableSkillCommands,compaction:t.effective.compaction,retry:t.effective.retry,transport:t.effective.transport,steeringMode:t.effective.steeringMode,followUpMode:t.effective.followUpMode})),i(null),o(void 0))}}}function Fn({className:e,...t}){return(0,Q.jsx)(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,className:c(e),...t})}function In({className:e,...t}){return(0,Q.jsx)(`ol`,{"data-slot":`breadcrumb-list`,className:c(`flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground`,e),...t})}function Ln({className:e,...t}){return(0,Q.jsx)(`li`,{"data-slot":`breadcrumb-item`,className:c(`inline-flex items-center gap-1`,e),...t})}function Rn({className:e,...t}){return(0,Q.jsx)(`span`,{"data-slot":`breadcrumb-page`,"aria-current":`page`,className:c(`font-normal text-foreground`,e),...t})}function zn({children:e,className:t,...n}){return(0,Q.jsx)(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:c(`[&>svg]:size-3.5`,t),...n,children:e??(0,Q.jsx)(P,{})})}var Bn=Z.createContext(void 0);function Vn(){let e=Z.useContext(Bn);if(e===void 0)throw Error(f(53));return e}function Hn(e,t,n){if(!e)return 0;let r=getComputedStyle(e),i=`${t}${n===`x`?`Inline`:`Block`}`,a=parseFloat(r[`${i}Start`]);return n===`x`&&t===`margin`?a*2:a+parseFloat(r[`${i}End`])}var Un=`data-has-overflow-x`,Wn=`data-has-overflow-y`,Gn=`data-overflow-x-start`,Kn=`data-overflow-x-end`,qn=`data-overflow-y-start`,Jn=`data-overflow-y-end`,Yn=e=>t=>t?{[e]:``}:null,Xn={hasOverflowX:Yn(Un),hasOverflowY:Yn(Wn),overflowXStart:Yn(Gn),overflowXEnd:Yn(Kn),overflowYStart:Yn(qn),overflowYEnd:Yn(Jn),cornerHidden:()=>null},Zn=`--scroll-area-corner-height`,Qn=`--scroll-area-corner-width`,$n=`data-orientation`,er={x:0,y:0},tr={width:0,height:0},nr={xStart:!1,xEnd:!1,yStart:!1,yEnd:!1},rr={x:!0,y:!0,corner:!0},ir=Z.forwardRef(function(e,t){let{render:n,className:a,overflowEdgeThreshold:o,style:s,...c}=e,{xStart:l,xEnd:f,yStart:p,yEnd:m}=ar(o),h=w(),g=r(),_=r(),{nonce:y,disableStyleElements:b}=x(),[S,C]=Z.useState(!1),[T,E]=Z.useState(!1),[D,O]=Z.useState(!1),[k,A]=Z.useState(!1),[j,M]=Z.useState(!1),[N,P]=Z.useState(tr),[F,I]=Z.useState(tr),[L,R]=Z.useState(nr),[z,B]=Z.useState(rr),V=Z.useRef(null),H=Z.useRef(null),U=Z.useRef(null),W=Z.useRef(null),G=Z.useRef(null),K=Z.useRef(null),ee=Z.useRef(null),te=Z.useRef(null),ne=Z.useRef(0),re=Z.useRef(0),ie=Z.useRef(0),ae=Z.useRef(0),oe=Z.useRef(`vertical`),se=Z.useRef(er),ce=Z.useRef(null);function q(e){let t=e?O:E,n=e?g:_;t(!0),n.start(500,()=>{t(!1)})}let le=d(e=>{let t=e.x-se.current.x,n=e.y-se.current.y;se.current=e,n!==0&&q(!0),t!==0&&q(!1)}),ue=d(()=>{let e=H.current;e&&ce.current===null&&(ce.current=e.style.scrollSnapType,e.style.scrollSnapType=`none`)}),J=d(e=>{if(e.button!==0||te.current!==null&&(oe.current===`vertical`?G.current:K.current)?.hasPointerCapture(te.current))return;te.current=e.pointerId,ne.current=e.clientY,re.current=e.clientX,oe.current=e.currentTarget.getAttribute($n);let t=H.current;t&&(ie.current=t.scrollTop,ae.current=t.scrollLeft,ue()),(oe.current===`vertical`?G.current:K.current)?.setPointerCapture(e.pointerId)}),de=d(e=>{if(e.pointerId!==te.current)return;te.current=null,(oe.current===`vertical`?O:E)(!1),ce.current!==null&&(H.current&&(H.current.style.scrollSnapType=ce.current),ce.current=null);let t=oe.current===`vertical`?G.current:K.current;t?.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId)}),fe=d(e=>{if(e.pointerId!==te.current)return;if(e.buttons%2==0){de(e);return}let t=H.current;if(!t)return;let n=oe.current===`vertical`,r=n?G.current:K.current,i=n?U.current:W.current;if(!r||!i)return;let a=n?`y`:`x`,o=Hn(i,`padding`,a),s=Hn(r,`margin`,a),c=n?r.offsetHeight:r.offsetWidth,l=(n?i.offsetHeight:i.offsetWidth)-c-o-s,u=n?e.clientY-ne.current:e.clientX-re.current,d=l<=0?0:u/l,f=n?t.scrollHeight:t.scrollWidth,p=n?t.clientHeight:t.clientWidth,m=(n?ie.current:ae.current)+d*(f-p);n?t.scrollTop=m:t.scrollLeft=m,e.preventDefault(),q(n)});function pe(e){A(e.pointerType===`touch`)}function me(e){if(pe(e),e.pointerType!==`touch`){let t=i(V.current,e.target);C(t)}}let he=Z.useMemo(()=>({scrolling:T||D,hasOverflowX:!z.x,hasOverflowY:!z.y,overflowXStart:L.xStart,overflowXEnd:L.xEnd,overflowYStart:L.yStart,overflowYEnd:L.yEnd,cornerHidden:z.corner}),[T,D,z.x,z.y,z.corner,L]),ge={role:`presentation`,onPointerEnter:me,onPointerMove:me,onPointerDown:pe,onPointerLeave(){C(!1)},style:{position:`relative`,[Zn]:`${N.height}px`,[Qn]:`${N.width}px`}},_e=u(`div`,e,{state:he,ref:[t,V],props:[ge,c],stateAttributesMapping:Xn}),ve=Z.useMemo(()=>({handlePointerDown:J,handlePointerMove:fe,handlePointerUp:de,handleScroll:le,disableViewportSnap:ue,cornerSize:N,setCornerSize:P,thumbSize:F,setThumbSize:I,hasMeasuredScrollbar:j,setHasMeasuredScrollbar:M,touchModality:k,cornerRef:ee,scrollingX:T,scrollingY:D,hovering:S,setHovering:C,viewportRef:H,scrollbarYRef:U,scrollbarXRef:W,thumbYRef:G,thumbXRef:K,rootId:h,hiddenState:z,setHiddenState:B,overflowEdges:L,setOverflowEdges:R,viewportState:he,overflowEdgeThreshold:{xStart:l,xEnd:f,yStart:p,yEnd:m}}),[J,fe,de,le,ue,N,F,j,k,T,D,S,h,z,L,he,l,f,p,m]);return(0,Q.jsxs)(Bn.Provider,{value:ve,children:[!b&&v.getElement(y),_e]})});function ar(e){let t=typeof e==`number`?{xStart:e,xEnd:e,yStart:e,yEnd:e}:e;return{xStart:Math.max(0,t?.xStart||0),xEnd:Math.max(0,t?.xEnd||0),yStart:Math.max(0,t?.yStart||0),yEnd:Math.max(0,t?.yEnd||0)}}var or=Z.createContext(void 0),sr=`--scroll-area-overflow-x-start`,cr=`--scroll-area-overflow-x-end`,lr=`--scroll-area-overflow-y-start`,ur=`--scroll-area-overflow-y-end`,dr=`--scroll-area-thumb-height`,fr=`--scroll-area-thumb-width`,pr=[sr,cr,lr,ur],mr=!1;function hr(){mr||a||(typeof CSS<`u`&&`registerProperty`in CSS&&pr.forEach(e=>{try{CSS.registerProperty({name:e,syntax:`<length>`,inherits:!1,initialValue:`0px`})}catch{}}),mr=!0)}var gr=Z.forwardRef(function(e,t){let{render:n,className:i,style:a,...o}=e,{viewportRef:s,scrollbarYRef:c,scrollbarXRef:l,thumbYRef:f,thumbXRef:m,cornerRef:h,cornerSize:_,setCornerSize:b,setThumbSize:x,rootId:S,setHiddenState:C,hiddenState:w,setHasMeasuredScrollbar:T,handleScroll:E,touchModality:D,setHovering:O,setOverflowEdges:k,overflowEdgeThreshold:A,viewportState:j}=Vn(),M=g(),N=Z.useRef(!0),P=Z.useRef([NaN,NaN,NaN,NaN]),F=r(),I=r(),L=d(()=>{let e=s.current,t=c.current,n=l.current,r=f.current,i=m.current,a=h.current;if(!e)return;let o=e.scrollHeight,u=e.scrollWidth,d=e.clientHeight,p=e.clientWidth,g=e.scrollTop,v=e.scrollLeft,S=P.current,w=Number.isNaN(S[0]);if(S[0]=d,S[1]=o,S[2]=p,S[3]=u,w&&T(!0),o===0||u===0)return;let E=_r(e),D=E.y,O=E.x,j=p/u,N=d/o,F=Math.max(0,u-p),I=Math.max(0,o-d),L=0,R=0;O||(L=y(M===`rtl`?-v:v,F),R=F-L);let z=D?0:y(g,I),B=D?0:I-z,V=O?0:p,H=D?0:d,U=0,W=0;!O&&!D&&(U=t?.offsetWidth||0,W=n?.offsetHeight||0);let G=_.width===0&&_.height===0,K=G?U:0,ee=G?W:0,te=Hn(n,`padding`,`x`),ne=Hn(t,`padding`,`y`),re=Hn(i,`margin`,`x`),ie=Hn(r,`margin`,`y`),ae=V-te-re,oe=H-ne-ie,se=n?Math.min(n.offsetWidth-K,ae):ae,ce=t?Math.min(t.offsetHeight-ee,oe):oe,q=Math.max(16,se*j),le=Math.max(16,ce*N);if(x(e=>vr(e,{width:q,height:le})),t&&r){let e=yr(r,dr,g,I,o,le,t.offsetHeight-le-ne-ie);r.style.transform=`translate3d(0,${e}px,0)`}if(n&&i){let e=n.offsetWidth-q-te-re,t=yr(i,fr,M===`rtl`?-v:v,F,u,q,e);i.style.transform=`translate3d(${M===`rtl`?-t:t}px,0,0)`}let ue=[L,R,z,B];pr.forEach((t,n)=>{e.style.setProperty(t,`${ue[n]}px`)}),a&&b(e=>vr(e,{width:U,height:W})),C(e=>vr(e,E));let J={xStart:!O&&L>A.xStart,xEnd:!O&&R>A.xEnd,yStart:!D&&z>A.yStart,yEnd:!D&&B>A.yEnd};k(e=>vr(e,J))});p(()=>{hr()},[]),p(()=>{queueMicrotask(L)},[L,w,M,A.xStart,A.xEnd,A.yStart,A.yEnd]),p(()=>{s.current?.matches(`:hover`)&&O(!0)},[s,O]),p(()=>{let e=s.current;if(typeof ResizeObserver>`u`||!e)return;let t=!1,n=new ResizeObserver(()=>{if(!t){t=!0;let n=P.current;if(n[0]===e.clientHeight&&n[1]===e.scrollHeight&&n[2]===e.clientWidth&&n[3]===e.scrollWidth)return}L()});return n.observe(e),I.start(0,()=>{let t=e.getAnimations({subtree:!0});t.length!==0&&Promise.allSettled(t.map(e=>e.finished)).then(L).catch(()=>{})}),()=>{n.disconnect(),I.clear()}},[L,s,I]);function R(){N.current=!1}let z={role:`presentation`,...S&&{"data-id":`${S}-viewport`},tabIndex:w.x&&w.y?-1:0,className:v.className,style:{overflow:`scroll`},onScroll(){s.current&&(L(),(D||!N.current)&&E({x:s.current.scrollLeft,y:s.current.scrollTop}),F.start(100,()=>{N.current=!0}))},onWheel:R,onPointerMove:R,onPointerEnter:R,onKeyDown:R},B=u(`div`,e,{ref:[t,s],state:j,props:[z,o],stateAttributesMapping:Xn}),V=Z.useMemo(()=>({computeThumbPosition:L}),[L]);return(0,Q.jsx)(or.Provider,{value:V,children:B})});function _r(e){let t=e.clientHeight>=e.scrollHeight,n=e.clientWidth>=e.scrollWidth;return{y:t,x:n,corner:t||n}}function vr(e,t){for(let n in t)if(e[n]!==t[n])return t;return e}function yr(e,t,n,r,i,a,o){let s=h(n,0,r),c=n-s,l=Math.max(16,a*i/(i+Math.abs(c)));return e.style.setProperty(t,c?`${l}px`:``),(r?s/r*o:0)+(c>0?a-l:0)}var br=Z.createContext(void 0);function xr(){let e=Z.useContext(br);if(e===void 0)throw Error(f(54));return e}var Sr=Z.forwardRef(function(e,t){let{render:n,className:r,orientation:a=`vertical`,keepMounted:s=!1,style:c,...d}=e,{hovering:f,scrollingX:p,scrollingY:m,hiddenState:h,scrollbarYRef:_,scrollbarXRef:v,viewportRef:y,thumbYRef:b,thumbXRef:x,handlePointerDown:S,handlePointerUp:C,handleScroll:w,disableViewportSnap:T,rootId:E,thumbSize:D,hasMeasuredScrollbar:O,viewportState:k}=Vn(),A=a===`vertical`,j={...k,hovering:f,scrolling:A?m:p,orientation:a},M=g(),N=!O&&!s,P=A?h.y:h.x,F=s||!P;Z.useEffect(()=>{if(!F)return;let e=y.current,t=A?_.current:v.current;if(!t)return;function n(t){if(!e||t.ctrlKey)return;let n=!A,r=n?`scrollLeft`:`scrollTop`,i=n?t.deltaX:t.deltaY;if(i===0)return;let a=n?e.scrollWidth-e.clientWidth:e.scrollHeight-e.clientHeight,o=n&&M===`rtl`?-a:0,s=n&&M===`rtl`?0:a,c=e[r];c<=o&&i<0||c>=s&&i>0||(t.preventDefault(),e[r]=Math.min(s,Math.max(o,c+i)),w({x:e.scrollLeft,y:e.scrollTop}))}return l(t,`wheel`,n,{passive:!1})},[M,w,A,v,_,F,y]);let I={...E&&{"data-id":`${E}-scrollbar`},"aria-hidden":!0,onPointerDown(e){if(e.button!==0)return;let t=o(e.nativeEvent),n=A?b.current:x.current;if(n&&i(n,t))return;let r=y.current;if(!r)return;let a=A?_.current:v.current;if(!n||!a)return;let s=A?`y`:`x`,c=Hn(n,`margin`,s),l=Hn(a,`padding`,s),u=A?n.offsetHeight:n.offsetWidth,d=a.getBoundingClientRect(),f=A?e.clientY-d.top-u/2-l+c/2:e.clientX-d.left-u/2-l+c/2,p=A?r.scrollHeight:r.scrollWidth,m=A?r.clientHeight:r.clientWidth,h=(A?a.offsetHeight:a.offsetWidth)-u-l-c;if(h<=0)return;let g=f/h,C=p-m;T(),A?r.scrollTop=g*C:r.scrollLeft=M===`rtl`?-(1-g)*C:g*C,w({x:r.scrollLeft,y:r.scrollTop}),S(e)},onMouseDown(e){e.preventDefault()},onPointerUp:C,onPointerCancel:C,style:{position:`absolute`,touchAction:`none`,WebkitUserSelect:`none`,userSelect:`none`,visibility:N?`hidden`:void 0,...A?{top:0,bottom:`var(${Zn})`,insetInlineEnd:0,[dr]:`${D.height}px`}:{insetInlineStart:0,insetInlineEnd:`var(${Qn})`,bottom:0,[fr]:`${D.width}px`}}},L=u(`div`,e,{ref:[t,A?_:v],state:j,props:[I,d],stateAttributesMapping:Xn});return F?(0,Q.jsx)(br.Provider,{value:a,children:L}):null}),Cr=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{thumbYRef:o,thumbXRef:s,handlePointerDown:c,handlePointerMove:l,handlePointerUp:d,scrollingX:f,scrollingY:p,hasMeasuredScrollbar:m}=Vn(),h=xr(),g=h===`vertical`;return u(`div`,e,{ref:[t,g?o:s],state:{scrolling:g?p:f,orientation:h},props:[{onPointerDown:c,onPointerMove:l,onPointerUp:d,onPointerCancel:d,style:{visibility:m?void 0:`hidden`,...g?{height:`var(--scroll-area-thumb-height)`}:{width:`var(--scroll-area-thumb-width)`}}},a]})}),wr=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{cornerRef:o,cornerSize:s,hiddenState:c}=Vn(),l=u(`div`,e,{ref:[t,o],props:[{"aria-hidden":!0,style:{position:`absolute`,bottom:0,insetInlineEnd:0,width:s.width,height:s.height}},a]});return c.corner?null:l});function Tr({className:e,children:t,...n}){return(0,Q.jsxs)(ir,{"data-slot":`scroll-area`,className:c(`relative`,e),...n,children:[(0,Q.jsx)(gr,{"data-slot":`scroll-area-viewport`,className:`size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1`,children:t}),(0,Q.jsx)(Er,{}),(0,Q.jsx)(wr,{})]})}function Er({className:e,orientation:t=`vertical`,...n}){return(0,Q.jsx)(Sr,{"data-slot":`scroll-area-scrollbar`,"data-orientation":t,orientation:t,className:c(`flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent`,e),...n,children:(0,Q.jsx)(Cr,{"data-slot":`scroll-area-thumb`,className:`relative flex-1 rounded-full bg-border`})})}function Dr({children:e,description:t,label:n}){return(0,Q.jsxs)(J,{orientation:`horizontal`,className:`items-center justify-between gap-6 rounded-xl border p-4`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(q,{children:n}),(0,Q.jsx)(de,{children:t})]}),(0,Q.jsx)(`div`,{className:`shrink-0`,children:e})]})}function Or(){let{isLoadingMcp:e,isLoadingProviders:t,isUpdatingMcp:n,isUpdatingProvider:r,mcpConnections:i=[],modelCatalog:a,onDiscoverModels:o,onMcpOAuth:s,onOAuthLogin:c,onRemoveMcp:l,onRemoveProvider:u,onThemePreferenceChange:d,onUpdateMcp:f,onUpdateProvider:p,providers:m=[],saveSettings:h,settings:g,settingsLoading:_,themePreference:v}=ne(),{models:y,resources:b}=te(),[x,S]=(0,Z.useState)(null),[C,w]=(0,Z.useState)(null),T=fn(b),E=e=>{S(t=>t&&e(t))},{packageRows:D,packageError:O,resourceDirty:k,handlePackageRowsChange:A,revertResourceDraft:j}=Pn({draft:x,settings:g,updateDraft:E}),{modelFilter:M,setModelFilter:N,modelOptions:P,modelDirty:F,addModels:I,removeModel:L,setDefaultModel:R,discoverProvider:z,discoveringProviderId:B,commitModelSettings:V,revertModelDraft:H,resetCommittedModelBaseline:U}=gn({draft:x,setDraft:S,updateDraft:E,settings:g,providers:m,models:y,modelCatalog:a,onDiscoverModels:o,saveSettings:h,setSavingSection:w}),W=F||k;return(0,Z.useEffect)(()=>{if(!g)return;let e=g.effective;x&&W||x&&dn(x,e)||S(e)},[x,W,g]),{isLoadingMcp:e,isLoadingProviders:t,isUpdatingMcp:n,isUpdatingProvider:r,mcpConnections:i,onMcpOAuth:s,onOAuthLogin:c,onRemoveMcp:l,onRemoveProvider:u,onThemePreferenceChange:d,onUpdateMcp:f,onUpdateProvider:p,providers:m,resources:b,settingsLoading:_,themePreference:v,draft:x,savingSection:C,packageRows:D,packageError:O,modelFilter:M,setModelFilter:N,resourceSummary:T,modelOptions:P,modelDirty:F,resourceDirty:k,revertResourceDraft:j,revertModelDraft:H,resetDraft:()=>{g&&S(g.effective)},updateDraft:E,handlePackageRowsChange:A,addModels:I,removeModel:L,setDefaultModel:R,discoverProvider:z,discoveringProviderId:B,saveSection:async(e,t)=>{if(e===`models`&&x){if(!await V(x))throw Error(`Settings save failed`);return}w(e);try{await h(t),Y.success(`Pi settings saved`)}catch(e){throw Y.error(e instanceof Error?e.message:`Settings save failed`),e}finally{w(null)}},requestCloseSettings:async()=>C===`models`?`wait`:k?`discard-prompt`:F&&x?await V(x,{silent:!0})?`close`:`discard-prompt`:`close`,resetCommittedModelBaseline:U}}function kr({active:e,onClick:t,icon:n,label:r}){return(0,Q.jsxs)(`button`,{type:`button`,onClick:t,className:c(`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-label transition-colors`,e?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:bg-muted hover:text-foreground`),children:[(0,Q.jsx)(n,{className:`size-4 shrink-0`}),(0,Q.jsx)(`span`,{children:r})]})}function Ar({open:e,onOpenChange:t,initialTab:n}){return(0,Z.useEffect)(()=>{se(ce())},[]),(0,Q.jsx)(jr,{initialTab:n,onOpenChange:t,open:e})}function jr({initialTab:e,onOpenChange:t,open:n}){let r=(0,Z.useRef)(()=>{t(!1)});return(0,Q.jsx)(ve,{open:n,onOpenChange:(e,n)=>{if(e){t(!0);return}r.current(n)},children:n?(0,Q.jsx)(Nr,{initialTab:e,onCloseAttemptRef:r,onOpenChange:t}):null})}function Mr({activeTab:e,composerIntent:t,form:n,onComposerIntentChange:r,onComposerIntentKeyChange:i,preferences:a,updatePreference:o}){let{isLoadingMcp:s,isLoadingProviders:c,isUpdatingMcp:l,isUpdatingProvider:u,mcpConnections:d,onMcpOAuth:f,onOAuthLogin:p,onRemoveMcp:m,onRemoveProvider:h,onThemePreferenceChange:g,onUpdateMcp:_,onUpdateProvider:v,providers:y,resources:b,settingsLoading:x,themePreference:C,draft:w,savingSection:T,packageRows:E,packageError:D,modelFilter:O,setModelFilter:k,resourceSummary:A,modelOptions:j,modelDirty:M,resourceDirty:N,revertResourceDraft:P,revertModelDraft:F,updateDraft:I,handlePackageRowsChange:L,addModels:R,removeModel:z,setDefaultModel:B,discoverProvider:V,discoveringProviderId:H,saveSection:U}=n,W=e=>(0,Q.jsx)(Dn,{scope:e,draft:w,updateDraft:I,onEnableSkillCommandsChange:e=>I(t=>({...t,enableSkillCommands:e})),onExtensionsChange:e=>I(t=>({...t,extensions:e})),onPackageRowsChange:L,onPromptsChange:e=>I(t=>({...t,prompts:e})),onRevert:P,onSave:()=>w&&U(`resources`,{...ln(w),...e===`harness`?un(w):{}}),onSkillsChange:e=>I(t=>({...t,skills:e})),onThemesChange:e=>I(t=>({...t,themes:e})),packageError:D,packageRows:E,resourceDirty:N,resources:b,resourceSummary:A,saving:T===`resources`,settingsLoading:x});return{appearance:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Appearance`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Customize the look and feel of the interface.`})]}),(0,Q.jsx)(Mt,{onThemePreferenceChange:g,themePreference:C}),(0,Q.jsx)(Dr,{label:`Density`,description:`Adjust spacing across chat and panels.`,children:(0,Q.jsx)(S,{"aria-label":`Density`,value:a.density,onValueChange:e=>o(`density`,e),options:[{label:`Comfortable`,value:`comfortable`},{label:`Compact`,value:`compact`}]})}),(0,Q.jsx)(Dr,{label:`Motion`,description:`Respect the system setting or reduce UI motion.`,children:(0,Q.jsx)(S,{"aria-label":`Motion`,value:a.motion,onValueChange:e=>o(`motion`,e),options:[{label:`System`,value:`system`},{label:`Reduced`,value:`reduced`}]})})]}),chat:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Chat`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Control transcript behavior.`})]}),(0,Q.jsx)(Dr,{label:`Streaming transcript`,description:`Follow new output or preserve the reading position.`,children:(0,Q.jsx)(S,{"aria-label":`Streaming transcript`,value:a.transcript,onValueChange:e=>o(`transcript`,e),options:[{label:`Follow output`,value:`follow`},{label:`Manual`,value:`manual`}]})}),(0,Q.jsx)(bt,{enabled:t?.enabled??!1,keySource:t?.keySource??`none`,status:t?.status??`unconfigured`,onClearKey:()=>i?.(null),onEnabledChange:r,onSaveKey:e=>i?.(e)})]}),mcp:()=>(0,Q.jsx)(At,{connections:d,isLoading:s??!1,isPending:l??!1,onOAuth:f,onRemove:m,onUpsert:_}),sandbox:()=>(0,Q.jsx)(kn,{isLoading:c??!1,isPending:u??!1,providers:y,onUpdateProvider:v}),providers:()=>(0,Q.jsx)(on,{isLoading:c??!1,isPending:u??!1,providers:y,onOAuthLogin:p,onRemoveProvider:h,onUpdateProvider:v}),"llm-models":()=>(0,Q.jsx)(zt,{draft:w,discoveringProviderId:H,modelDirty:M,modelFilter:O,modelOptions:j,onAddModels:R,onDiscoverProvider:V,onModelFilterChange:k,onRemoveModel:z,onSetDefaultModel:B,providers:y,onRevert:F,onSave:()=>w&&U(`models`,sn(w)),saving:T===`models`,settingsLoading:x}),skills:()=>W(`skills`),"pi-harness":()=>W(`harness`),keybindings:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 text-sm`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Keybindings`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Every shortcut also has a visible control in the header, panel, or composer.`})]}),(0,Q.jsxs)(`div`,{className:`rounded-xl border p-4 font-mono text-xs leading-7`,children:[(0,Q.jsx)(`div`,{children:`Command palette: Ctrl/Command K`}),(0,Q.jsx)(`div`,{children:`Conversation sidebar: Ctrl/Command B`}),(0,Q.jsx)(`div`,{children:`Toggle Resources: Ctrl/Command Shift 1`}),(0,Q.jsx)(`div`,{children:`Toggle Workspace: Ctrl/Command Shift 2`}),(0,Q.jsx)(`div`,{children:`Toggle Artifacts: Ctrl/Command Shift 3`}),(0,Q.jsx)(`div`,{children:`Focus active panel: Ctrl/Command Shift P`}),(0,Q.jsx)(`div`,{children:`Return focus to chat: Ctrl/Command Shift C`}),(0,Q.jsx)(`div`,{children:`Close active panel: Escape`})]})]}),sessions:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Sessions`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Set local conversation preferences. Provider and workspace configuration remains Fleet Prime-owned.`})]}),(0,Q.jsx)(Dr,{label:`Confirm session deletion`,description:`Require confirmation before deleting a saved conversation.`,children:(0,Q.jsx)(pe,{checked:a.confirmSessionDelete,onCheckedChange:e=>o(`confirmSessionDelete`,e),"aria-label":`Confirm session deletion`})}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Provider credentials, OAuth, models, sandbox configuration, and workspace selection are managed by Fleet Prime and its CLI.`})]})}[e]()}function Nr({initialTab:e,onCloseAttemptRef:t,onOpenChange:n}){let r=Or(),{composerIntent:i,onComposerIntentChange:a,onComposerIntentKeyChange:o}=ne(),{resourceDirty:s,revertResourceDraft:c,resetDraft:l,requestCloseSettings:u,resetCommittedModelBaseline:d}=r,[f,p]=(0,Z.useState)(()=>e??`appearance`),[m,h]=(0,Z.useState)(ce);(0,Z.useEffect)(()=>{oe(m)},[m]);let g=(e,t)=>{h(n=>({...n,[e]:t}))},[_,v]=(0,Z.useState)(!1),[y,b]=(0,Z.useState)(`resource`),x=Mn.find(e=>e.id===f)??Mn[0],C=(e,t)=>{if(e){n(!0);return}t?.cancel(),(async()=>{let e=await u();if(e===`close`){n(!1);return}if(e===`wait`){Y.message(`Saving model list…`);return}b(s?`resource`:`model`),v(!0)})()};t.current=e=>{C(!1,e)};let w=()=>{c(),l(),d(),v(!1),n(!1)};(0,Z.useEffect)(()=>{d()},[d]);let T=(0,Q.jsx)(Mr,{activeTab:f,composerIntent:i,form:r,onComposerIntentChange:a,onComposerIntentKeyChange:o,preferences:m,updatePreference:g});return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(he,{className:`flex h-[min(640px,calc(100dvh-4rem))] w-full max-w-[calc(100%-2rem)] overflow-hidden rounded-2xl p-0 sm:max-w-[min(860px,calc(100%-2rem))]`,children:[(0,Q.jsx)(ge,{className:`sr-only`,children:`Settings`}),(0,Q.jsx)(_e,{className:`sr-only`,children:`Customize your settings here.`}),(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0`,children:[(0,Q.jsxs)(`nav`,{"aria-label":`Settings sections`,className:`hidden h-full w-52 shrink-0 flex-col border-r border-border bg-sidebar sm:flex`,children:[(0,Q.jsx)(`div`,{className:`px-6 pt-6 pb-2 text-label font-semibold`,children:`Settings`}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-2 pb-6`,children:jn.map(e=>(0,Q.jsxs)(`div`,{className:`py-2`,children:[(0,Q.jsx)(`p`,{className:`px-2 pb-1 text-caption font-medium uppercase tracking-wide text-muted-foreground`,children:e.label}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:Mn.filter(t=>t.group===e.id).map(e=>(0,Q.jsx)(kr,{active:f===e.id,onClick:()=>p(e.id),icon:e.icon,label:e.title},e.id))})]},e.id))})]}),(0,Q.jsxs)(`main`,{className:`flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,Q.jsx)(`header`,{className:`flex h-14 shrink-0 items-center gap-2 border-b border-border/10 px-6`,children:(0,Q.jsx)(`div`,{className:`flex flex-1 items-center justify-between`,children:(0,Q.jsx)(Fn,{children:(0,Q.jsxs)(In,{children:[(0,Q.jsx)(Ln,{className:`hidden sm:block`,children:`Settings`}),(0,Q.jsx)(zn,{className:`hidden sm:block`}),(0,Q.jsx)(Ln,{children:(0,Q.jsx)(Rn,{children:x.title})})]})})})}),(0,Q.jsx)(`div`,{className:`shrink-0 border-b border-border/10 bg-muted/5 px-4 py-2.5 sm:hidden`,children:(0,Q.jsx)(S,{"aria-label":`Settings sections`,value:f,onValueChange:e=>{Nn(e)&&p(e)},options:Mn.map(e=>({label:e.title,value:e.id}))})}),(0,Q.jsx)(Tr,{className:`min-h-0 flex-1`,children:(0,Q.jsx)(`div`,{id:`panel-${f}`,role:`tabpanel`,"aria-label":x.title,tabIndex:0,className:`p-6 outline-none`,children:T})})]})]})]}),(0,Q.jsx)(Fe,{open:_,onOpenChange:v,children:(0,Q.jsxs)(Ae,{children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(Pe,{children:`Discard unsaved changes?`}),(0,Q.jsx)(ke,{children:y===`resource`?`Your resource changes have not been committed. If you leave settings now, those changes will be lost.`:`Your model list could not be saved. If you leave settings now, those changes will be lost.`})]}),(0,Q.jsxs)(Me,{children:[(0,Q.jsx)(Ne,{children:`Keep editing`}),(0,Q.jsx)(je,{onClick:w,children:`Discard changes`})]})]})})]})}export{Ar as SettingsDialog};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./react-dom-B7th3XGm.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{$ as i,A as a,C as o,D as s,F as c,G as l,I as u,J as d,K as f,N as p,Q as m,R as h,S as g,W as _,X as v,Y as ee,Z as y,_ as b,a as te,et as x,f as S,g as ne,i as re,j as ie,n as ae,nt as C,p as oe,q as w,tt as se,v as T,x as ce,z as E}from"./button-BrwYi6QP.js";import{F as D,G as O,H as le,K as k,M as A,N as j,O as M,P as N,S as P,T as F,U as I,X as ue,Y as L,_ as R,a as de,ct as z,et as B,f as V,h as H,it as U,k as W,nt as G,o as fe,p as pe,q as me,r as he,rt as K,s as ge,st as _e,t as ve,w as q,x as ye,z as be}from"./createBaseUIEventDetails-DklXWq23.js";import{n as xe,r as Se,t as Ce}from"./useBaseUiId-BlzQUkVG.js";var J=e(t(),1);n();var Y=r(),we=`data-open`,Te=`data-closed`,X=`data-anchor-hidden`,Z={[h]:``},Q={[h]:``,[E]:``},Ee={[we]:``},De={[Te]:``},Oe={[X]:``},ke={open(e){return e?Z:null}},Ae={open(e){return e?Q:null}},je={open(e){return e?Ee:De},anchorHidden(e){return e?Oe:null}},Me={...je,...W};function Ne(e,t,n=!0){return e.filter(e=>e.parentId===t).flatMap(t=>[...!n||t.context?.open?[t]:[],...Ne(e,t.id,n)])}function Pe(e,t){let n=[],r=e.find(e=>e.id===t)?.parentId;for(;r;){let t=e.find(e=>e.id===r);r=t?.parentId,t&&(n=n.concat(t))}return n}function Fe(e){e.preventDefault(),e.stopPropagation()}function Ie(e){return`nativeEvent`in e}function Le(e){return e.pointerType===``&&e.isTrusted?!0:v&&e.pointerType?e.type===`click`&&e.buttons===1:e.detail===0&&!e.pointerType}function Re(e){return d?!1:!v&&e.width===0&&e.height===0||v&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType===`mouse`||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType===`touch`}function ze(e,t){let n=[`mouse`,`pen`];return t||n.push(``,void 0),n.includes(e)}function Be(e){let t=e.type;return t===`click`||t===`mousedown`||t===`keydown`||t===`keyup`}var Ve=0;function He(e,t={}){let{preventScroll:n=!1,sync:r=!1,shouldFocus:i}=t;cancelAnimationFrame(Ve);function a(){i&&!i()||e?.focus({preventScroll:n})}if(r)return a(),z;let o=requestAnimationFrame(a);return Ve=o,()=>{Ve===o&&(cancelAnimationFrame(o),Ve=0)}}var Ue={inert:new WeakMap,"aria-hidden":new WeakMap},We=`data-base-ui-inert`,Ge={inert:new WeakSet,"aria-hidden":new WeakSet},Ke=new WeakMap,qe=0;function Je(e){return Ge[e]}function Ye(e){return e?ue(e)?e.host:Ye(e.parentNode):null}var Xe=(e,t)=>t.map(t=>{if(e.contains(t))return t;let n=Ye(t);return e.contains(n)?n:null}).filter(e=>e!=null),Ze=e=>{let t=new Set;return e.forEach(e=>{let n=e;for(;n&&!t.has(n);)t.add(n),n=n.parentNode}),t},Qe=(e,t,n)=>{let r=[],i=e=>{!e||n.has(e)||Array.from(e.children).forEach(e=>{be(e)!==`script`&&(t.has(e)?i(e):r.push(e))})};return i(e),r};function $e(e,t,n,r,{mark:i=!0}){let a=null;r?a=`inert`:n&&(a=`aria-hidden`);let o=null,s=null,c=Xe(t,e),l=i?Qe(t,Ze(c),new Set(c)):[],u=[],d=[];if(a){let e=Ue[a],n=Je(a);s=n,o=e;let r=Xe(t,Array.from(t.querySelectorAll(`[aria-live]`))),i=c.concat(r);Qe(t,Ze(i),new Set(i)).forEach(t=>{let r=t.getAttribute(a),i=r!==null&&r!==`false`,o=(e.get(t)||0)+1;e.set(t,o),u.push(t),o===1&&i&&n.add(t),i||t.setAttribute(a,a===`inert`?``:`true`)})}return i&&l.forEach(e=>{let t=(Ke.get(e)||0)+1;Ke.set(e,t),d.push(e),t===1&&e.setAttribute(We,``)}),qe+=1,()=>{o&&u.forEach(e=>{let t=(o.get(e)||0)-1;o.set(e,t),t||(!s?.has(e)&&a&&e.removeAttribute(a),s?.delete(e))}),i&&d.forEach(e=>{let t=(Ke.get(e)||0)-1;Ke.set(e,t),t||e.removeAttribute(We)}),--qe,qe||(Ue.inert=new WeakMap,Ue[`aria-hidden`]=new WeakMap,Ge.inert=new WeakSet,Ge[`aria-hidden`]=new WeakSet,Ke=new WeakMap)}}function et(e,t={}){let{ariaHidden:n=!1,inert:r=!1,mark:i=!0}=t,a=x(e[0]).body;return $e(e,a,n,r,{mark:i})}function tt(){let e=new Map;return{emit(t,n){e.get(t)?.forEach(e=>e(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){e.get(t)?.delete(n)}}}var nt=class{nodesRef={current:[]};events=tt();addNode(e){this.nodesRef.current.push(e)}removeNode(e){let t=this.nodesRef.current.findIndex(t=>t===e);t!==-1&&this.nodesRef.current.splice(t,1)}},rt=J.createContext(null),it=J.createContext(null),at=()=>J.useContext(rt)?.id||null,ot=e=>{let t=J.useContext(it);return e??t};function st(e){let t=ye(),n=ot(e),r=at();return K(()=>{if(!t)return;let e={id:t,parentId:r};return n?.addNode(e),()=>{n?.removeNode(e)}},[n,t,r]),t}function ct(e){let{children:t,id:n}=e,r=at();return(0,Y.jsx)(rt.Provider,{value:J.useMemo(()=>({id:n,parentId:r}),[n,r]),children:t})}function lt(e){let{children:t,externalTree:n}=e,r=U(()=>n??new nt).current;return(0,Y.jsx)(it.Provider,{value:r,children:t})}function ut(e,t){let n=I(w(e));return e instanceof n.KeyboardEvent?`keyboard`:e instanceof n.FocusEvent?t||`keyboard`:`pointerType`in e?e.pointerType||`keyboard`:`touches`in e?`touch`:e instanceof n.MouseEvent?t||(e.detail===0?`keyboard`:`mouse`):``}var dt=20,$=[];function ft(){$=$.filter(e=>e.deref()?.isConnected)}function pt(e){ft(),e&&be(e)!==`body`&&($.push(new WeakRef(e)),$.length>dt&&($=$.slice(-20)))}function mt(){return ft(),$[$.length-1]?.deref()}function ht(e){return e?g(e)?e:o(e)[0]||e:null}function gt(e){if(e.hasAttribute(`tabindex`)&&!e.hasAttribute(`data-tabindex`)||!e.getAttribute(`role`)?.includes(`dialog`))return;let t=ne(e).filter(e=>{let t=e.getAttribute(`data-tabindex`)||``;return g(e)||e.hasAttribute(`data-tabindex`)&&!t.startsWith(`-`)}),n=e.getAttribute(`tabindex`);t.length===0?n!==`0`&&(e.setAttribute(`tabindex`,`0`),e.setAttribute(`data-tabindex`,`0`)):(n!==`-1`||e.hasAttribute(`data-tabindex`)&&e.getAttribute(`data-tabindex`)!==`-1`)&&(e.setAttribute(`tabindex`,`-1`),e.setAttribute(`data-tabindex`,`-1`))}function _t(e){let{context:t,children:n,disabled:r=!1,initialFocus:d=!0,returnFocus:p=!0,restoreFocus:m=!1,modal:h=!0,closeOnFocusOut:_=!0,openInteractionType:v=``,nextFocusableElement:y,previousFocusableElement:S,beforeContentFocusGuardRef:ne,externalTree:ie,getInsideElements:ae}=e,C=`rootStore`in t?t.rootStore:t,E=C.useState(`open`),D=C.useState(`domReferenceElement`),O=C.useState(`floatingElement`),{events:le,dataRef:A}=C.context,P=B(()=>A.current.floatingContext?.nodeId),F=d===!1,I=c(D)&&F,ue=Se(d),L=Se(p),R=Se(v),de=Se(E),z=ot(ie),V=re(),H=J.useRef(!1),U=J.useRef(!1),W=J.useRef(!1),G=J.useRef(null),pe=J.useRef(``),me=J.useRef(``),he=J.useRef(null),ge=J.useRef(null),_e=M(he,ne,V?.beforeInsideRef),ye=M(ge,V?.afterInsideRef),xe=i(),Ce=i(),we=j(),Te=V!=null,X=a(O),Z=B((e=X)=>e?o(e):[]),Q=B(()=>ae?.().filter(e=>e!=null)??[]);J.useEffect(()=>{if(r||!h)return;function e(e){e.key===`Tab`&&f(X,l(x(X)))&&Z().length===0&&!I&&Fe(e)}let t=x(X);return N(t,`keydown`,e)},[r,X,h,I,Z]),J.useEffect(()=>{if(r||!E)return;let e=x(X);function t(){W.current=!1}function n(e){let t=w(e),n=Q(),r=f(O,t)||f(D,t)||f(V?.portalNode,t)||n.some(e=>e===t||f(e,t));W.current=!r,me.current=e.pointerType||`keyboard`,t?.closest(`[data-base-ui-click-trigger]`)&&(U.current=!0,Ce.start(0,()=>{U.current=!1}))}function i(){me.current=`keyboard`}return se(N(e,`pointerdown`,n,!0),N(e,`pointerup`,t,!0),N(e,`pointercancel`,t,!0),N(e,`keydown`,i,!0),t)},[r,O,D,X,E,V,Ce,Q]),J.useEffect(()=>{if(r||!_)return;let e=x(X);function t(){U.current=!0,Ce.start(0,()=>{U.current=!1})}function n(e){let t=w(e);g(t)&&(G.current=t)}function i(t){let n=t.relatedTarget,r=t.currentTarget,i=w(t);h&&n==null&&i!=null&&f(O,i)&&pt(i),queueMicrotask(()=>{let o=P(),c=C.context.triggerElements,u=Q(),d=n?.hasAttribute(te(`focus-guard`))&&[he.current,ge.current,V?.beforeInsideRef.current,V?.afterInsideRef.current,V?.beforeOutsideRef.current,V?.afterOutsideRef.current,q(S),q(y)].includes(n),p=!(f(D,n)||f(O,n)||f(n,O)||f(V?.portalNode,n)||u.some(e=>e===n||f(e,n))||c.hasMatchingElement(e=>f(e,n))||d||z&&(Ne(z.nodesRef.current,o).find(e=>f(e.context?.elements.floating,n)||f(e.context?.elements.domReference,n))||Pe(z.nodesRef.current,o).find(e=>[e.context?.elements.floating,a(e.context?.elements.floating)].includes(n)||e.context?.elements.domReference===n)));if(r===D&&X&&gt(X),m&&r!==D&&!s(i)&&l(e)===e.body){if(k(X)&&(X.focus(),m===`popup`)){we.request(()=>{X.focus()});return}let e=Z(),t=G.current,n=(t&&e.includes(t)?t:null)||e[e.length-1]||X;k(n)&&n.focus()}if(A.current.insideReactTree){A.current.insideReactTree=!1;return}(I||!h)&&n&&p&&!U.current&&(I||n!==mt())&&(H.current=!0,C.setOpen(!1,ve(fe,t)))})}function o(){W.current||(A.current.insideReactTree=!0,xe.start(0,()=>{A.current.insideReactTree=!1}))}let c=k(D)?D:null;if(!(!O&&!c))return se(c&&N(c,`focusout`,i),c&&N(c,`pointerdown`,t),O&&N(O,`focusin`,n),O&&N(O,`focusout`,i),O&&V&&N(O,`focusout`,o,!0))},[r,D,O,X,h,z,V,C,_,m,Z,I,P,A,xe,Ce,we,y,S,Q]),J.useEffect(()=>{if(r||!O||!E)return;let e=Array.from(V?.portalNode?.querySelectorAll(`[${te(`portal`)}]`)||[]),t=(z?Pe(z.nodesRef.current,P()):[]).find(e=>c(e.context?.elements.domReference||null))?.context?.elements.domReference,n=et([O,...e,he.current,ge.current,V?.beforeOutsideRef.current,V?.afterOutsideRef.current,...Q(),t,q(S),q(y),I?D:null].filter(e=>e!=null),{ariaHidden:h||I,mark:!1}),i=et([O,...e].filter(e=>e!=null));return()=>{i(),n()}},[E,r,D,O,h,V,I,z,P,y,S,Q]),K(()=>{if(!E||r||!k(X))return;pe.current=``,me.current=``;let e=x(X),t=l(e);queueMicrotask(()=>{let n=ue.current,r=typeof n==`function`?n(R.current||``):n;if(r===void 0||r===!1||f(X,t))return;let i=null,a=()=>(i??=Z(X),i[0]||X),o;o=r===!0||r===null?a():q(r),o||=a();let s=f(X,l(e));He(o,{preventScroll:o===X,shouldFocus(){if(!de.current)return!1;if(s)return!0;let t=l(e);return!(t!==o&&f(X,t))}})})},[r,E,X,Z,ue,R,de]),K(()=>{if(r||!X)return;let e=x(X),t=l(e),n=R.current==null;pt(t);function i(e){if(e.open||(pe.current=ut(e.nativeEvent,me.current)),e.reason===`trigger-hover`&&e.nativeEvent.type===`mouseleave`&&(H.current=!0),e.reason===`outside-press`){if(e.nested)H.current=!1;else if(Le(e.nativeEvent)||Re(e.nativeEvent))H.current=!1;else{let e=!1;x(X).createElement(`div`).focus({get preventScroll(){return e=!0,!1}}),e?H.current=!1:H.current=!0}}}le.on(`openchange`,i);function a(e){let r=L.current,i=typeof r==`function`?r(e):r;if(i===void 0||i===!1)return null;i===null&&(i=!0);let a=D?.isConnected?D:null,o=t?.isConnected&&be(t)!==`body`?t:null,s=n?o||a:a||o;return s||=mt()||null,typeof i==`boolean`?s:q(i)||s||null}return()=>{le.off(`openchange`,i);let t=l(e),n=Q(),r=f(O,t)||n.some(e=>e===t||f(e,t))||z&&Ne(z.nodesRef.current,P(),!1).some(e=>f(e.context?.elements.floating,t)),o=L.current,s=pe.current,c=a(s);queueMicrotask(()=>{let n=ht(c),i=typeof o!=`boolean`;if(o&&!H.current&&k(n)&&(!(!i&&n!==t&&t!==e.body)||r)){let e={preventScroll:!0};s===`keyboard`&&(e.focusVisible=!0),n.focus(e)}H.current=!1})}},[r,O,X,L,R,le,z,D,P,Q]),K(()=>{if(!ee||E||!O)return;let e=l(x(O));!k(e)||!u(e)||f(O,e)&&e.blur()},[E,O]),K(()=>{if(!(r||!V))return V.setFocusManagerState({modal:h,closeOnFocusOut:_,open:E,onOpenChange:C.setOpen,domReference:D}),()=>{V.setFocusManagerState(null)}},[r,V,h,E,C,_,D]),K(()=>{if(!(r||!X))return gt(X),()=>{queueMicrotask(ft)}},[r,X]);let Ee=!r&&(!h||!I)&&(Te||h);return(0,Y.jsxs)(J.Fragment,{children:[Ee&&(0,Y.jsx)(oe,{"data-type":`inside`,ref:_e,onFocus:e=>{if(h){let e=Z();He(e[e.length-1])}else V?.portalNode&&(H.current=!1,ce(e,V.portalNode)?b(D)?.focus():q(S??V.beforeOutsideRef)?.focus())}}),n,Ee&&(0,Y.jsx)(oe,{"data-type":`inside`,ref:ye,onFocus:e=>{h?He(Z()[0]):V?.portalNode&&(_&&(H.current=!0),ce(e,V.portalNode)?T(D)?.focus():q(y??V.afterOutsideRef)?.focus())}})]})}function vt(){return!1}function yt(e){return{escapeKey:typeof e==`boolean`?e:e?.escapeKey??!1,outsidePress:typeof e==`boolean`?e:e?.outsidePress??!0}}function bt(e,t={}){let{enabled:n=!0,escapeKey:r=!0,outsidePress:a=!0,outsidePressEvent:o=`sloppy`,referencePress:s=vt,bubbles:c,externalTree:l}=t,u=`rootStore`in e?e.rootStore:e,d=u.useState(`open`),h=u.useState(`floatingElement`),{dataRef:g,events:_}=u.context,v=ot(l),y=B(typeof a==`function`?a:()=>!1),b=typeof a==`function`?y:a,S=b!==!1,ne=B(()=>o),{escapeKey:re,outsidePress:ae}=yt(c),C=J.useRef(!1),oe=J.useRef(!1),T=J.useRef(!1),ce=J.useRef(!1),E=J.useRef(!1),A=J.useRef(``),j=J.useRef(null),M=i(),P=i(),F=B(()=>{P.clear(),g.current.insideReactTree=!1}),I=B(e=>{let t=g.current.floatingContext?.nodeId;return(v?Ne(v.nodesRef.current,t):[]).some(t=>t.context?.open&&!t.context.dataRef.current[e])}),L=B(e=>ie(e,u.select(`floatingElement`))||ie(e,u.select(`domReferenceElement`))),R=B(e=>{s()&&u.setOpen(!1,ve(H,e.nativeEvent))}),z=B(e=>{if(!d||!n||!r||e.key!==`Escape`||E.current||!re&&I(`__escapeKeyBubbles`))return;let t=Ie(e)?e.nativeEvent:e,i=ve(de,t);u.setOpen(!1,i),i.isCanceled||e.preventDefault(),!re&&!i.isPropagationAllowed&&e.stopPropagation()}),V=B(()=>{g.current.insideReactTree=!0,P.start(0,F)}),U=B(e=>{if(!d||!n||e.button!==0)return;let t=w(e.nativeEvent);f(u.select(`floatingElement`),t)&&(C.current||(C.current=!0,oe.current=!1))}),W=B(e=>{!d||!n||(e.defaultPrevented||e.nativeEvent.defaultPrevented)&&C.current&&(oe.current=!0)});J.useEffect(()=>{function e(e){e.open||(ce.current=!1)}return _.on(`openchange`,e),()=>{_.off(`openchange`,e)}},[_]),J.useEffect(()=>{if(!d||!n)return d||(ce.current=!1),F;g.current.__escapeKeyBubbles=re,g.current.__outsidePressBubbles=ae;let e=new m,t=new m,i=x(h);function a(){e.clear(),E.current=!0}function o(){e.start(ee?5:0,()=>{E.current=!1})}function s(){T.current=!0,t.start(0,()=>{T.current=!1})}function c(){C.current=!1,oe.current=!1}function l(){let e=A.current,t=e===`pen`||!e?`mouse`:e,n=ne(),r=typeof n==`function`?n():n;return typeof r==`string`?r:r[t]}function _(e){let t=l();return t===`intentional`&&e.type!==`click`||t===`sloppy`&&e.type===`click`}function y(e){let t=g.current.floatingContext?.nodeId,n=v&&Ne(v.nodesRef.current,t).some(t=>ie(e,t.context?.elements.floating));return L(e)||n}function P(e){if(_(e)){e.type!==`click`&&!L(e)&&(t.clear(),T.current=!1),F();return}if(g.current.insideReactTree){F();return}let n=w(e),r=`[${te(`inert`)}]`,i=O(n)?n.getRootNode():null,a=Array.from((ue(i)?i:x(u.select(`floatingElement`))).querySelectorAll(r)),o=u.context.triggerElements;if(n&&(o.hasElement(n)||o.hasMatchingElement(e=>f(e,n))))return;let s=O(n)?n:null;for(;s&&!me(s);){let e=le(s);if(me(e)||!O(e))break;s=e}if(!(a.length&&O(n)&&!p(n)&&!f(n,u.select(`floatingElement`))&&a.every(e=>!f(s,e)))){if(k(n)&&!(`touches`in e)){let t=me(n),r=D(n),i=/auto|scroll/,a=t||i.test(r.overflowX),o=t||i.test(r.overflowY),s=a&&n.clientWidth>0&&n.scrollWidth>n.clientWidth,c=o&&n.clientHeight>0&&n.scrollHeight>n.clientHeight,l=r.direction===`rtl`,u=c&&(l?e.offsetX<=n.offsetWidth-n.clientWidth:e.offsetX>n.clientWidth),d=s&&e.offsetY>n.clientHeight;if(u||d)return}if(!y(e)){if(l()===`intentional`){if(e.detail!==0&&!Le(e)&&!ce.current)return;if(T.current){t.clear(),T.current=!1;return}}typeof b==`function`&&!b(e)||I(`__outsidePressBubbles`)||(u.setOpen(!1,ve(pe,e)),F())}}}function R(e){l()!==`sloppy`||e.pointerType===`touch`||!u.select(`open`)||!n||L(e)||P(e)}function de(e){if(l()!==`sloppy`||!u.select(`open`)||!n||L(e))return;let t=e.touches[0];t&&(j.current={startTime:Date.now(),startX:t.clientX,startY:t.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},M.start(1e3,()=>{j.current&&(j.current.dismissOnTouchEnd=!1,j.current.dismissOnMouseDown=!1)}))}function B(e,t){let n=w(e);if(!n)return;let r=N(n,e.type,()=>{t(e),r()})}function V(e){A.current=`touch`,B(e,de)}function H(e){M.clear(),e.type===`pointerdown`&&(e.button===0&&(ce.current=!0),A.current=e.pointerType),!(e.type===`mousedown`&&j.current&&!j.current.dismissOnMouseDown)&&B(e,e=>{e.type===`pointerdown`?R(e):P(e)})}function U(e){if(e.type===`pointercancel`&&(ce.current=!1),!C.current)return;let n=oe.current;if(c(),l()===`intentional`){if(e.type===`pointercancel`){n&&s();return}if(!y(e)){if(n){s();return}typeof b==`function`&&!b(e)||(t.clear(),T.current=!0,F())}}}function W(e){if(l()!==`sloppy`||!j.current||L(e))return;let t=e.touches[0];if(!t)return;let n=Math.abs(t.clientX-j.current.startX),r=Math.abs(t.clientY-j.current.startY),i=Math.sqrt(n*n+r*r);i>5&&(j.current.dismissOnTouchEnd=!0),i>10&&(P(e),M.clear(),j.current=null)}function G(e){B(e,W)}function fe(e){l()!==`sloppy`||!j.current||L(e)||(j.current.dismissOnTouchEnd&&P(e),M.clear(),j.current=null)}function he(e){B(e,fe)}let K=se(r&&se(N(i,`keydown`,z),N(i,`compositionstart`,a),N(i,`compositionend`,o)),S&&se(N(i,`click`,H,!0),N(i,`pointerdown`,H,!0),N(i,`pointerup`,U,!0),N(i,`pointercancel`,U,!0),N(i,`mousedown`,H,!0),N(i,`mouseup`,U,!0),N(i,`touchstart`,V,{capture:!0,passive:!0}),N(i,`touchmove`,G,{capture:!0,passive:!0}),N(i,`touchend`,he,{capture:!0,passive:!0})));return()=>{K(),e.clear(),t.clear(),c(),T.current=!1,F()}},[g,h,r,S,b,d,n,re,ae,z,F,ne,I,L,v,u,M]);let G=J.useMemo(()=>({onKeyDown:z,onPointerDown:R,onClick:R}),[z,R]),fe=J.useMemo(()=>({onKeyDown:z,onPointerDown:W,onMouseDown:W,onClickCapture:V,onMouseDownCapture(e){V(),U(e)},onPointerDownCapture(e){V(),U(e)},onMouseUpCapture:V,onTouchEndCapture:V,onTouchMoveCapture:V}),[z,V,U,W]);return J.useMemo(()=>n?{reference:G,floating:fe,trigger:G}:{},[n,G,fe])}var xt={open:e=>e.open,transitionStatus:e=>e.transitionStatus,domReferenceElement:e=>e.domReferenceElement,referenceElement:e=>e.positionReference??e.referenceElement,floatingElement:e=>e.floatingElement,floatingId:e=>e.floatingId},St=class extends C{constructor(e){let{syncOnly:t,nested:n,onOpenChange:r,triggerElements:i,...a}=e;super({...a,positionReference:a.referenceElement,domReferenceElement:a.referenceElement},{onOpenChange:r,dataRef:{current:{}},events:tt(),nested:n,triggerElements:i},xt),this.syncOnly=t}syncOpenEvent=(e,t)=>{(!e||!this.state.open||t!=null&&Be(t))&&(this.context.dataRef.current.openEvent=e?t:void 0)};dispatchOpenChange=(e,t)=>{this.syncOpenEvent(e,t.event);let n={open:e,reason:t.reason,nativeEvent:t.event,nested:this.context.nested,triggerElement:t.trigger};this.context.events.emit(`openchange`,n)};setOpen=(e,t)=>{if(this.syncOnly){this.context.onOpenChange?.(e,t);return}this.dispatchOpenChange(e,t),this.context.onOpenChange?.(e,t)}};function Ct(e){let{popupStore:t,treatPopupAsFloatingElement:n=!1,floatingRootContext:r,floatingId:i,nested:a,onOpenChange:o}=e,s=t.useState(`open`),c=t.useState(`activeTriggerElement`),l=t.useState(n?`popupElement`:`positionerElement`),u=t.context.triggerElements,d=o,f=J.useRef(null);r===void 0&&f.current===null&&(f.current=new St({open:s,transitionStatus:void 0,referenceElement:c,floatingElement:l,triggerElements:u,onOpenChange:d,floatingId:i,syncOnly:!0,nested:a}));let p=r??f.current;return t.useSyncedValue(`floatingId`,i),K(()=>{let e={open:s,floatingId:i,referenceElement:c,floatingElement:l};O(c)&&(e.domReferenceElement=c),p.state.positionReference===p.state.referenceElement&&(e.positionReference=c),p.update(e)},[s,i,c,l,p]),p.context.onOpenChange=d,p.context.nested=a,p}var wt={tabIndex:-1,[_]:``};function Tt(e){return t=>t!==`touch`||e.current}function Et(e,t=!1){let n=ye(),r=at()!=null,i=U(()=>e(n,r)).current;return Ct({popupStore:i,treatPopupAsFloatingElement:t,floatingRootContext:i.state.floatingRootContext,floatingId:n,nested:r,onOpenChange:i.setOpen}),i}function Dt({handle:e,store:t}){return K(()=>e.attachStore(t),[e,t]),null}function Ot(e){let t=e.context.triggerElements.size;e.select(`open`)&&e.state.triggerCount!==t&&e.set(`triggerCount`,t)}function kt(e,t){let n=J.useRef(null);return B(r=>{let i=n.current;if(i!==null){if(i.element===r&&i.store===t&&i.id===e)return;n.current=null;let a=i.store;a.context.triggerElements.getById(i.id)===i.element&&(a.context.triggerElements.delete(i.id),Ot(a))}r!==null&&e!==void 0&&(n.current={store:t,id:e,element:r},t.context.triggerElements.add(e,r),Ot(t))})}function At(e,t,n,r=!1){let i=e.preventUnmountingOnClose;t?i=!1:r&&(i=!0);let a=n?.id??null,o=e.activeTriggerId,s=e.activeTriggerElement;return(a||t)&&(o=a,s=n??null),{open:t,preventUnmountingOnClose:i,activeTriggerId:o,activeTriggerElement:s}}function jt(e){let t=!1;return e.preventUnmountOnClose=()=>{t=!0},()=>t}function Mt(e,t,n,r){let i=n.useState(`isMountedByTrigger`,e),a=kt(e,n),o=B(t=>{let i=n.select(`open`),a=n.select(`activeTriggerId`);if(a===e){let e={activeTriggerElement:t,...i?r:null};n.update(e);return}if(a==null&&i){let i={activeTriggerId:e??null,activeTriggerElement:t,...r};n.update(i)}}),s=B(e=>{a(e),e&&o(e)});return K(()=>(s(t.current),()=>s(null)),[s,t,n,e]),K(()=>{if(i){let e={activeTriggerElement:t.current,...r};n.update(e)}},[i,n,t,...Object.values(r)]),{registerTrigger:s,isMountedByThisTrigger:i}}function Nt(e,t={}){let{closeOnActiveTriggerUnmount:n=!1}=t,r=J.useRef(null),i=e.useState(`open`),a=e.useState(`triggerCount`),o=e.useState(`activeTriggerId`),s=e.useState(`activeTriggerElement`);K(()=>{if(!i){r.current=null,e.state.triggerCount!==0&&e.set(`triggerCount`,0);return}let t=e.context.triggerElements.size,a={};e.state.triggerCount!==t&&(a.triggerCount=t);let o=e.select(`activeTriggerId`),s=null;if(o){let t=e.context.triggerElements.getById(o);if(t)r.current=o,t!==e.state.activeTriggerElement&&(a.activeTriggerElement=t);else{for(let[t,n]of e.context.triggerElements.entries())if(n===e.state.activeTriggerElement){a.activeTriggerId=t,a.activeTriggerElement=n,r.current=t;break}a.activeTriggerId===void 0&&(r.current===o?s=o:r.current=null)}}else r.current=null;if(!s&&!o&&t===1){let t=e.context.triggerElements.entries().next();if(!t.done){let[e,n]=t.value;a.activeTriggerId=e,a.activeTriggerElement=n,r.current=e}}(a.triggerCount!==void 0||a.activeTriggerId!==void 0||a.activeTriggerElement!==void 0)&&e.update(a),s&&n&&queueMicrotask(()=>{if(e.select(`open`)&&e.select(`activeTriggerId`)===s&&!e.context.triggerElements.getById(s)){let t=ve(V);e.setOpen(!1,t),t.isCanceled||e.update({activeTriggerId:null,activeTriggerElement:null})}})},[i,e,a,o,s,n])}function Pt(e,t,n,r){let{mounted:i,setMounted:a,transitionStatus:o}=xe(e,!1,!1,r),s=t.useState(`preventUnmountingOnClose`),c=!e&&s;t.useSyncedValues({mounted:i,transitionStatus:o,preventUnmountingOnClose:c});let l=B(()=>{a(!1),t.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),n?.(),t.context.onOpenChangeComplete?.(!1)});return P({enabled:i&&!e&&!c,open:e,ref:t.context.popupRef,onComplete(){e||l()}}),{forceUnmount:l,transitionStatus:o}}function Ft(e,t){e.useSyncedValues(t),K(()=>()=>{e.update({activeTriggerProps:_e,inactiveTriggerProps:_e,popupProps:_e})},[e])}function It(e,t){K(()=>{!t&&e.state.openMethod!==null&&e.set(`openMethod`,null)},[t,e]),K(()=>()=>{e.state.openMethod!==null&&e.set(`openMethod`,null)},[e])}var Lt=class{constructor(){this.idMap=new Map}add(e,t){this.idMap.set(e,t)}delete(e){this.idMap.delete(e)}hasElement(e){for(let t of this.idMap.values())if(t===e)return!0;return!1}hasMatchingElement(e){for(let t of this.idMap.values())if(e(t))return!0;return!1}getById(e){return this.idMap.get(e)}entries(){return this.idMap.entries()}elements(){return this.idMap.values()}get size(){return this.idMap.size}};function Rt(e,t,n=!1){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:new St({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:e,floatingId:t,syncOnly:!0,nested:n,onOpenChange:void 0}),floatingId:t,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:_e,inactiveTriggerProps:_e,popupProps:_e}}var zt=e=>e.triggerIdProp??e.activeTriggerId,Bt=e=>e.openProp??e.open,Vt=e=>(e.popupElement?.id??e.floatingId)||void 0;function Ht(e,t){return t!==void 0&&Bt(e)&&zt(e)===t}function Ut(e,t){return Ht(e,t)?!0:t!==void 0&&Bt(e)&&zt(e)==null&&e.triggerCount===1}var Wt={open:Bt,mounted:e=>e.mounted,transitionStatus:e=>e.transitionStatus,floatingRootContext:e=>e.floatingRootContext,triggerCount:e=>e.triggerCount,preventUnmountingOnClose:e=>e.preventUnmountingOnClose,payload:e=>e.payload,activeTriggerId:zt,activeTriggerElement:e=>e.mounted?e.activeTriggerElement:null,popupId:Vt,isTriggerActive:(e,t)=>t!==void 0&&zt(e)===t,isOpenedByTrigger:(e,t)=>Ht(e,t),isMountedByTrigger:(e,t)=>t!==void 0&&zt(e)===t&&e.mounted,triggerProps:(e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps,triggerPopupId:(e,t)=>Ut(e,t)?Vt(e):void 0,popupProps:e=>e.popupProps,popupElement:e=>e.popupElement,positionerElement:e=>e.positionerElement},Gt=J.createContext(void 0);function Kt(e){let t=J.useContext(Gt);if(!e&&t===void 0)throw Error(G(27));return t}var qt=J.forwardRef(function(e,t){let{render:n,className:r,style:i,forceRender:a=!1,...o}=e,s=Kt(),c=s.useState(`open`),l=s.useState(`nested`),u=s.useState(`mounted`),d={open:c,transitionStatus:s.useState(`transitionStatus`)};return F(`div`,e,{state:d,ref:[s.context.backdropRef,t],stateAttributesMapping:Me,props:[{role:`presentation`,hidden:!u,style:{userSelect:`none`,WebkitUserSelect:`none`}},o],enabled:a||!l})}),Jt=J.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a=!1,nativeButton:o=!0,...s}=e,c=Kt(),l=c.useState(`open`),{getButtonProps:u,buttonRef:d}=R({disabled:a,native:o}),f={disabled:a};function p(e){l&&c.setOpen(!1,ve(he,e.nativeEvent))}return F(`button`,e,{state:f,ref:[t,d],props:[{onClick:p},s,u]})}),Yt=J.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,s=Kt(),c=Ce(a);return s.useSyncedValueWithCleanup(`descriptionElementId`,c),F(`p`,e,{ref:t,props:[{id:c},o]})}),Xt=J.createContext(void 0);function Zt(){let e=J.useContext(Xt);if(e===void 0)throw Error(G(26));return e}var Qt=`ArrowUp`,$t=`ArrowDown`,en=`ArrowLeft`,tn=`ArrowRight`,nn=`Home`,rn=new Set([Qt,$t,en,tn,nn,`End`]),an=`Shift`,on=[an,`Control`,`Alt`,`Meta`];function sn(e){return k(e)&&e.tagName===`INPUT`}function cn(e){return!!(sn(e)&&e.selectionStart!=null||k(e)&&e.tagName===`TEXTAREA`)}function ln(e,t,n,r){if(!e||!t||!t.scrollTo)return;let i=e.scrollLeft,a=e.scrollTop,o=e.clientWidth<e.scrollWidth,s=e.clientHeight<e.scrollHeight;if(o&&r!==`vertical`){let r=un(e,t,`left`),a=dn(e),o=dn(t);n===`ltr`&&(r+t.offsetWidth+o.scrollMarginRight>e.scrollLeft+e.clientWidth-a.scrollPaddingRight?i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight:r-o.scrollMarginLeft<e.scrollLeft+a.scrollPaddingLeft&&(i=r-o.scrollMarginLeft-a.scrollPaddingLeft)),n===`rtl`&&(r-o.scrollMarginLeft<e.scrollLeft+a.scrollPaddingLeft?i=r-o.scrollMarginLeft-a.scrollPaddingLeft:r+t.offsetWidth+o.scrollMarginRight>e.scrollLeft+e.clientWidth-a.scrollPaddingRight&&(i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight))}if(s&&r!==`horizontal`){let n=un(e,t,`top`),r=dn(e),i=dn(t);n-i.scrollMarginTop<e.scrollTop+r.scrollPaddingTop?a=n-i.scrollMarginTop-r.scrollPaddingTop:n+t.offsetHeight+i.scrollMarginBottom>e.scrollTop+e.clientHeight-r.scrollPaddingBottom&&(a=n+t.offsetHeight+i.scrollMarginBottom-e.clientHeight+r.scrollPaddingBottom)}e.scrollTo({left:i,top:a,behavior:`auto`})}function un(e,t,n){let r=n===`left`?`offsetLeft`:`offsetTop`,i=0;for(;t.offsetParent&&(i+=t[r],t.offsetParent!==e);)t=t.offsetParent;return i}function dn(e){let t=getComputedStyle(e);return{scrollMarginTop:parseFloat(t.scrollMarginTop)||0,scrollMarginRight:parseFloat(t.scrollMarginRight)||0,scrollMarginBottom:parseFloat(t.scrollMarginBottom)||0,scrollMarginLeft:parseFloat(t.scrollMarginLeft)||0,scrollPaddingTop:parseFloat(t.scrollPaddingTop)||0,scrollPaddingRight:parseFloat(t.scrollPaddingRight)||0,scrollPaddingBottom:parseFloat(t.scrollPaddingBottom)||0,scrollPaddingLeft:parseFloat(t.scrollPaddingLeft)||0}}var fn=`--nested-dialogs`,pn=`data-nested-dialog-open`,mn={...je,...W,nestedDialogOpen(e){return e?{[pn]:``}:null}},hn=J.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:a,initialFocus:o,...s}=e,c=Kt(),l=c.useState(`descriptionElementId`),u=c.useState(`disablePointerDismissal`),d=c.useState(`floatingRootContext`),f=c.useState(`popupProps`),p=c.useState(`modal`),m=c.useState(`mounted`),h=c.useState(`nested`),g=c.useState(`nestedOpenDialogCount`),_=c.useState(`open`),v=c.useState(`openMethod`),ee=c.useState(`titleElementId`),y=c.useState(`transitionStatus`),b=c.useState(`role`),te=d.useState(`floatingId`);Zt(),P({open:_,ref:c.context.popupRef,onComplete(){_&&c.context.onOpenChangeComplete?.(!0)}});let x=o===void 0?Tt(c.context.popupRef):o,S=g>0,ne=c.useStateSetter(`popupElement`),re=F(`div`,e,{state:{open:_,nested:h,transitionStatus:y,nestedDialogOpen:S},props:[f,{id:te,"aria-labelledby":ee,"aria-describedby":l,role:b,...wt,hidden:!m,onKeyDown(e){rn.has(e.key)&&e.stopPropagation()},style:{[fn]:g}},s],ref:[t,c.context.popupRef,ne],stateAttributesMapping:mn});return(0,Y.jsx)(_t,{context:d,openInteractionType:v,disabled:!m,closeOnFocusOut:!u,initialFocus:x,returnFocus:a,modal:p!==!1,restoreFocus:`popup`,children:re})}),gn=J.forwardRef(function(e,t){let{cutout:n,...r}=e,i;if(n){let e=n.getBoundingClientRect();i=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${e.left}px ${e.top}px,${e.left}px ${e.bottom}px,${e.right}px ${e.bottom}px,${e.right}px ${e.top}px,${e.left}px ${e.top}px)`}return(0,Y.jsx)(`div`,{ref:t,role:`presentation`,"data-base-ui-inert":``,...r,style:{position:`fixed`,inset:0,userSelect:`none`,WebkitUserSelect:`none`,clipPath:i}})}),_n=J.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,i=Kt(),a=i.useState(`mounted`),o=i.useState(`modal`),s=i.useState(`open`);return a||n?(0,Y.jsx)(Xt.Provider,{value:n,children:(0,Y.jsxs)(ae,{ref:t,...r,children:[a&&o===!0&&(0,Y.jsx)(gn,{ref:i.context.internalBackdropRef,inert:S(!s)}),e.children]})}):null}),vn={},yn={},bn=``;function xn(e,t){return L(e)?e:t}function Sn(e,t,n){return/hidden|clip/.test(e.getComputedStyle(xn(t,n)).overflowY)}function Cn(e){if(typeof document>`u`)return!1;let t=x(e);return I(t).innerWidth-t.documentElement.clientWidth>0}function wn(e){if(!(typeof CSS<`u`&&CSS.supports&&CSS.supports(`scrollbar-gutter`,`stable`))||typeof document>`u`)return!1;let t=x(e),n=t.documentElement,r=t.body,i=xn(n,r),a=i.style.overflowY,o=n.style.scrollbarGutter;n.style.scrollbarGutter=`stable`,i.style.overflowY=`scroll`;let s=i.offsetWidth;i.style.overflowY=`hidden`;let c=i.offsetWidth;return i.style.overflowY=a,n.style.scrollbarGutter=o,s===c}function Tn(e){let t=x(e),n=t.documentElement,r=t.body,i=xn(n,r),a={overflowY:i.style.overflowY,overflowX:i.style.overflowX};return Object.assign(i.style,{overflowY:`hidden`,overflowX:`hidden`}),()=>{Object.assign(i.style,a)}}function En(e){let t=x(e),n=t.documentElement,r=t.body,i=I(n),a=0,o=0,s=!1,c=A.create();if(ee&&(i.visualViewport?.scale??1)!==1)return()=>{};function l(){let t=i.getComputedStyle(n),c=i.getComputedStyle(r),l=(t.scrollbarGutter||``).includes(`both-edges`)?`stable both-edges`:`stable`;a=n.scrollTop,o=n.scrollLeft,vn={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},bn=n.style.scrollBehavior,yn={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};let u=n.scrollHeight>n.clientHeight,d=n.scrollWidth>n.clientWidth,f=t.overflowY===`scroll`||c.overflowY===`scroll`,p=t.overflowX===`scroll`||c.overflowX===`scroll`,m=Math.max(0,i.innerWidth-r.clientWidth),h=Math.max(0,i.innerHeight-r.clientHeight),g=parseFloat(c.marginTop)+parseFloat(c.marginBottom),_=parseFloat(c.marginLeft)+parseFloat(c.marginRight),v=xn(n,r);if(s=wn(e),s){n.style.scrollbarGutter=l,v.style.overflowY=`hidden`,v.style.overflowX=`hidden`;return}Object.assign(n.style,{scrollbarGutter:l,overflowY:`hidden`,overflowX:`hidden`}),(u||f)&&(n.style.overflowY=`scroll`),(d||p)&&(n.style.overflowX=`scroll`),Object.assign(r.style,{position:`relative`,height:g||h?`calc(100dvh - ${g+h}px)`:`100dvh`,width:_||m?`calc(100vw - ${_+m}px)`:`100vw`,boxSizing:`border-box`,overflowY:`hidden`,overflowX:`hidden`,scrollBehavior:`unset`}),r.scrollTop=a,r.scrollLeft=o,n.setAttribute(`data-base-ui-scroll-locked`,``),n.style.scrollBehavior=`unset`}function u(){Object.assign(n.style,vn),Object.assign(r.style,yn),s||(n.scrollTop=a,n.scrollLeft=o,n.removeAttribute(`data-base-ui-scroll-locked`),n.style.scrollBehavior=bn)}function d(){u(),c.request(l)}l();let f=N(i,`resize`,d);return()=>{c.cancel(),u(),typeof i.removeEventListener==`function`&&f()}}var Dn=new class{lockCount=0;restore=null;timeoutLock=m.create();timeoutUnlock=m.create();acquire(e){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}release=()=>{--this.lockCount,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(e){if(this.lockCount===0||this.restore!==null)return;let t=x(e),n=t.documentElement,r=t.body,i=I(n);if(Sn(i,n,r)){let t=new i.MutationObserver(()=>{Sn(i,n,r)||(t.disconnect(),this.restore=null,this.lock(e))}),a={attributes:!0};t.observe(n,a),t.observe(r,a),this.restore=()=>t.disconnect();return}let a=y||!Cn(e);this.restore=a?Tn(e):En(e)}};function On(e=!0,t=null){K(()=>{if(e)return Dn.acquire(t)},[e,t])}function kn({store:e,parentContext:t,isDrawer:n}){let r=e.useState(`open`),i=e.useState(`disablePointerDismissal`),a=e.useState(`modal`),o=e.useState(`popupElement`),s=e.useState(`floatingRootContext`),[c,l]=J.useState(0),[u,d]=J.useState(0),p=c===0,m=bt(s,{outsidePressEvent(){return e.context.internalBackdropRef.current||e.context.backdropRef.current?`intentional`:{mouse:a===`trap-focus`?`sloppy`:`intentional`,touch:`sloppy`}},outsidePress(t){if(!e.context.outsidePressEnabledRef.current||`button`in t&&t.button!==0)return!1;if(`touches`in t){if(t.type===`touchend`){if(t.changedTouches.length!==1||t.touches.length!==0)return!1}else if(t.touches.length!==1)return!1}let n=w(t);if(p&&!i){if(a){let t=e.context.internalBackdropRef.current,r=e.context.backdropRef.current;return t||r?t===n||r===n||f(n,o)&&!n?.hasAttribute(`data-base-ui-portal`):!0}return!0}return!1},escapeKey:p});return On(r&&a===!0,o),e.useContextCallback(`onNestedDialogOpen`,(e,t)=>{l(e),d(t)}),K(()=>(t?.onNestedDialogOpen&&(r?t.onNestedDialogOpen(c+1,u+ +!!n):t.onNestedDialogOpen(0,0)),()=>{t?.onNestedDialogOpen&&r&&t.onNestedDialogOpen(0,0)}),[n,r,c,u,t]),Ft(e,{activeTriggerProps:m.reference,inactiveTriggerProps:m.trigger,popupProps:m.floating,nestedOpenDialogCount:c,nestedOpenDrawerCount:u}),null}var An={...Wt,modal:e=>e.modal,nested:e=>e.nested,nestedOpenDialogCount:e=>e.nestedOpenDialogCount,nestedOpenDrawerCount:e=>e.nestedOpenDrawerCount,disablePointerDismissal:e=>e.disablePointerDismissal,openMethod:e=>e.openMethod,descriptionElementId:e=>e.descriptionElementId,titleElementId:e=>e.titleElementId,viewportElement:e=>e.viewportElement,role:e=>e.role},jn=class extends C{constructor(e,t,n){let r=new Lt,i=Mn(e,r,t,n);super(i,Nn(r),An)}setOpen=(e,t)=>{t.preventUnmountOnClose=()=>{this.set(`preventUnmountingOnClose`,!0)},!e&&t.trigger==null&&this.state.activeTriggerId!=null&&(t.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(e,t),!t.isCanceled&&(this.state.floatingRootContext.dispatchOpenChange(e,t),this.update(At(this.state,e,t.trigger)))}};function Mn(e,t,n,r=!1){return{...Rt(t,n,r),modal:!0,disablePointerDismissal:!1,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:`dialog`,...e}}function Nn(e){return{popupRef:J.createRef(),backdropRef:J.createRef(),internalBackdropRef:J.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:e,onOpenChange:void 0,onOpenChangeComplete:void 0}}function Pn(e,t){let{children:n,open:r,defaultOpen:i=!1,onOpenChange:a,onOpenChangeComplete:o,disablePointerDismissal:s=!1,modal:c=!0,actionsRef:l,handle:u,triggerId:d,defaultTriggerId:f=null}=t,p=e===`drawer`,m=e===`alert-dialog`,h=m?!0:c,g=m||s,_=m?`alertdialog`:`dialog`,v=Kt(!0),ee={modal:h,disablePointerDismissal:g,nested:v!=null,role:_},y=Et((e,t)=>new jn({open:i,openProp:r,activeTriggerId:f,triggerIdProp:d,...ee},e,t),!0);y.useControlledProp(`openProp`,r),y.useControlledProp(`triggerIdProp`,d),y.useSyncedValues(ee),y.useContextCallback(`onOpenChange`,a),y.useContextCallback(`onOpenChangeComplete`,o);let b=y.useState(`open`),te=y.useState(`mounted`),x=y.useState(`payload`);It(y,b),Nt(y);let{forceUnmount:S}=Pt(b,y);J.useImperativeHandle(l,()=>({unmount:S,close:()=>y.setOpen(!1,ve(ge))}),[S,y]);let ne=b||te;return(0,Y.jsxs)(Gt.Provider,{value:y,children:[u&&(0,Y.jsx)(Dt,{handle:u,store:y}),ne&&(0,Y.jsx)(kn,{store:y,parentContext:v?.context,isDrawer:p}),typeof n==`function`?n({payload:x}):n]})}var Fn=J.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,s=Kt(),c=Ce(a);return s.useSyncedValueWithCleanup(`titleElementId`,c),F(`h2`,e,{ref:t,props:[{id:c},o]})}),In={1:`bg-surface-1`,2:`bg-surface-2`,3:`bg-surface-3`,4:`bg-surface-4`,5:`bg-surface-5`,6:`bg-surface-6`,7:`bg-surface-7`,8:`bg-surface-8`},Ln={1:`shadow-surface-1`,2:`shadow-surface-2`,3:`shadow-surface-3`,4:`shadow-surface-4`,5:`shadow-surface-5`,6:`shadow-surface-6`,7:`shadow-surface-7`,8:`shadow-surface-8`};function Rn(e,t=e){let n=Math.round(Math.max(1,Math.min(8,e))),r=Math.round(Math.max(1,Math.min(8,t)));return`${In[n]} ${Ln[r]}`}var zn=(0,J.createContext)(1);function Bn(){return(0,J.useContext)(zn)}function Vn({value:e,children:t}){return(0,Y.jsx)(zn.Provider,{value:Math.max(1,Math.min(8,e)),children:t})}export{Ae as $,At as A,ct as B,Rt as C,Dt as D,wt as E,It as F,He as G,st as H,Mt as I,Re as J,ze as K,St as L,Pt as M,Ft as N,jt as O,Et as P,Me as Q,bt as R,qt as S,Lt as T,at as U,lt as V,ot as W,Ne as X,Fe as Y,je as Z,an as _,Pn as a,Yt as b,gn as c,en as d,ke as et,tn as f,on as g,nn as h,Fn as i,Nt as j,Tt as k,hn as l,rn as m,Bn as n,On as o,Qt as p,Le as q,Rn as r,_n as s,Vn as t,$t as u,cn as v,Wt as w,Jt as x,ln as y,_t as z};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./react-dom-B7th3XGm.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{$ as i,G as a,K as o,L as s,Q as c,et as l,f as u,m as d,nt as f,o as p,p as m,q as h,r as g,t as _,tt as v,u as y}from"./button-BrwYi6QP.js";import{t as b}from"./utils-Dpy9ZFOr.js";import{P as x,S,T as C,U as w,_ as T,at as E,et as ee,it as te,k as D,nt as O,rt as k,x as ne}from"./createBaseUIEventDetails-DklXWq23.js";import{t as A}from"./createLucideIcon-CQY2ECfR.js";import{t as j}from"./circle-check-DBhaebaM.js";import{t as M}from"./loader-circle-BmKYM_C4.js";import{t as N}from"./triangle-alert-BuzmrrqI.js";import{t as P}from"./x-DEU6H3M-.js";var F=e(t(),1),I=F.createContext(void 0);function L(){let e=F.useContext(I);if(!e)throw Error(O(73));return e}var R=0;function z(e){return R+=1,`${e}-${Math.random().toString(36).slice(2,6)}-${R}`}function B(e,t){if(typeof e==`string`)return{description:e};if(typeof e==`function`){let n=e(t);return typeof n==`string`?{description:n}:n}return e}function V(e){let t=new Map,n=0,r=0;return e.forEach((e,i)=>{let a=e.transitionStatus===`ending`;t.set(e.id,{value:e,domIndex:i,visibleIndex:a?-1:n,offsetY:r}),r+=e.height||0,a||(n+=1)}),t}function H(e,t){let n=0;return e.map(e=>{if(e.transitionStatus===`ending`)return e;let r=n>=t;return n+=1,e.limited===r?e:{...e,limited:r}})}var U={toasts:e=>e.toasts,isEmpty:e=>e.toasts.length===0,toast:(e,t)=>e.toastMetadata.get(t)?.value,toastIndex:(e,t)=>e.toastMetadata.get(t)?.domIndex??-1,toastOffsetY:(e,t)=>e.toastMetadata.get(t)?.offsetY??0,toastVisibleIndex:(e,t)=>e.toastMetadata.get(t)?.visibleIndex??-1,focused:e=>e.focused,expanded:e=>e.hovering||e.focused,expandedOrOutOfFocus:e=>e.hovering||e.focused||!e.isWindowFocused,prevFocusElement:e=>e.prevFocusElement},W=class extends f{timers=new Map;areTimersPaused=!1;constructor(e){super({...e,toastMetadata:V(e.toasts)},{},U)}setViewport=e=>{this.set(`viewport`,e)};syncProviderProps(e,t){let n=this.state.limit!==t;if(this.state.timeout===e&&!n)return;let r={timeout:e,limit:t};if(n){let e=H(this.state.toasts,t);r.toasts=e,r.toastMetadata=V(e)}this.update(r)}disposeEffect=()=>()=>{this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear()};removeToast(e,t=!1){let n=U.toastIndex(this.state,e);if(n===-1)return;let r=this.state.toasts[n];t||r?.onRemove?.();let i=[...this.state.toasts];i.splice(n,1),this.setToasts(i)}addToast=e=>{let{timeout:t,limit:n}=this.state,r=e.id||z(`toast`);if(e.id){let t=U.toast(this.state,e.id);if(t){if(t.transitionStatus===`ending`)this.removeToast(e.id,!0);else{let{id:t,transitionStatus:n,...r}=e;return this.updateToastInternal(e.id,r,!0,!0),e.id}}}let i={...e,id:r,updateKey:0,transitionStatus:`starting`},a=[i,...this.state.toasts];this.setToasts(H(a,n));let o=i.timeout??t;return i.type!==`loading`&&o>0&&this.scheduleTimer(r,o,()=>this.closeToast(r)),U.expandedOrOutOfFocus(this.state)&&this.pauseTimers(),r};updateToast=(e,t)=>{let n=U.toast(this.state,e);!n||n.transitionStatus===`ending`||this.updateToastInternal(e,typeof t==`function`?t(n):t,!1,!0)};updateToastInternal=(e,t,n=!1,r=!1)=>{let{timeout:i,toasts:a}=this.state,o=U.toast(this.state,e);if(!o||o.transitionStatus===`ending`)return;let s={...o,...t,...r&&{updateKey:o.updateKey+1}};this.setToasts(a.map(t=>t.id===e?s:t));let c=s.timeout??i,l=o.timeout??i,u=Object.hasOwn(t,`timeout`),d=s.transitionStatus!==`ending`&&s.type!==`loading`&&c>0,f=this.timers.has(e),p=l!==c,m=o.type===`loading`;if(!d&&f){this.clearTimer(e);return}d&&(!f||p||u||m||n)&&(this.clearTimer(e),this.scheduleTimer(e,c,()=>this.closeToast(e)),U.expandedOrOutOfFocus(this.state)&&this.pauseTimers())};closeToast=e=>{let t=e===void 0,{limit:n,toasts:r}=this.state,i;if(t)i=r,this.clearTimers();else{let t=U.toast(this.state,e);if(!t)return;i=[t],this.clearTimer(e)}let a=H(r.map(n=>t||n.id===e?{...n,transitionStatus:`ending`,height:0}:n),n);this.setToasts(a,!a.some(e=>e.transitionStatus!==`ending`)),i.forEach(e=>{e.transitionStatus!==`ending`&&e.onClose?.()}),this.handleFocusManagement(e)};promiseToast=(e,t)=>{let n=B(t.loading),r=this.addToast({...n,type:`loading`}),i=e.then(e=>{let n=B(t.success,e);return this.updateToast(r,{...n,type:`success`,timeout:n.timeout}),e}).catch(e=>{let n=B(t.error,e);return this.updateToast(r,{...n,type:`error`,timeout:n.timeout}),Promise.reject(e)});return{}.hasOwnProperty.call(t,`setPromise`)&&t.setPromise(i),i};pauseTimers(){this.areTimersPaused||(this.areTimersPaused=!0,this.timers.forEach(e=>{e.timeout&&(e.timeout.clear(),e.remaining=Math.max(e.remaining-(Date.now()-e.start),0))}))}resumeTimers(){this.areTimersPaused&&(this.areTimersPaused=!1,this.timers.forEach((e,t)=>{e.remaining=e.remaining>0?e.remaining:e.delay,e.timeout??=c.create(),e.timeout.start(e.remaining,()=>{this.handleTimerFired(t),e.callback()}),e.start=Date.now()}))}restoreFocusToPrevElement(){this.state.prevFocusElement?.focus({preventScroll:!0})}handleDocumentPointerDown=e=>{if(e.pointerType!==`touch`)return;let t=h(e);o(this.state.viewport,t)||(this.resumeTimers(),this.update({hovering:!1,focused:!1}))};scheduleTimer(e,t,n){let r=Date.now(),i=U.expandedOrOutOfFocus(this.state)?void 0:c.create();i?.start(t,()=>{this.handleTimerFired(e),n()}),this.timers.set(e,{timeout:i,start:r,delay:t,remaining:t,callback:n})}clearTimers(){this.timers.forEach(e=>{e.timeout?.clear()}),this.timers.clear(),this.areTimersPaused=!1}clearTimer(e){this.timers.get(e)?.timeout?.clear(),this.timers.delete(e),this.resetPausedStateIfNoTimersRemain()}handleTimerFired(e){this.timers.delete(e),this.resetPausedStateIfNoTimersRemain()}resetPausedStateIfNoTimersRemain(){this.timers.size===0&&(this.areTimersPaused=!1)}setToasts(e,t=e.length===0){let n={toasts:e,toastMetadata:V(e)};t&&(n.hovering=!1,n.focused=!1),this.update(n)}handleFocusManagement(e){let t=a(l(this.state.viewport));if(!this.state.viewport||!o(this.state.viewport,t)||!s(t))return;if(e===void 0){this.restoreFocusToPrevElement();return}let n=U.toasts(this.state),r=U.toastIndex(this.state,e),i=(e,t)=>{for(let r=e;r>=0&&r<n.length;r+=t)if(n[r].transitionStatus!==`ending`)return n[r];return null},c=i(r+1,1)??i(r-1,-1);c?c.ref?.current?.focus():this.restoreFocusToPrevElement()}},G=r(),re=function(e){let{children:t,timeout:n=5e3,limit:r=3,toastManager:i}=e,a=te(()=>new W({timeout:n,limit:r,viewport:null,toasts:[],hovering:!1,focused:!1,isWindowFocused:!0,prevFocusElement:null})).current;return E(a.disposeEffect),F.useEffect(function(){if(i)return i[` subscribe`](({action:e,options:t})=>{let n=t.id;e===`promise`&&t.promise?a.promiseToast(t.promise,t):e===`update`&&n?a.updateToast(n,t.updates):e===`close`?a.closeToast(n):a.addToast(t)})},[a,i]),(0,G.jsxs)(I.Provider,{value:a,children:[(0,G.jsx)(ie,{store:a,timeout:n,limit:r}),t]})};function ie(e){let{store:t,timeout:n,limit:r}=e;return k(()=>{t.syncProviderProps(n,r)},[t,n,r]),null}var K=`--toast-frontmost-height`,q=F.forwardRef(function(e,t){let{render:n,className:r,style:c,children:u,...f}=e,p=L(),g=i(),_=F.useRef(!1),y=F.useRef(!1),b=F.useRef(!1),S=p.useState(`isEmpty`),T=p.useState(`toasts`),E=p.useState(`focused`),ee=p.useState(`expanded`),te=p.useState(`prevFocusElement`),D=T[0]?.height,O=T.some(e=>e.transitionStatus===`ending`),k=T.filter(e=>e.priority===`high`);F.useEffect(()=>{let e=p.state.viewport;if(!e||S)return;let t=w(e),n=l(e);function r(t){t.key===`F6`&&h(t)!==e&&(t.preventDefault(),p.set(`prevFocusElement`,a(n)),e?.focus({preventScroll:!0}),p.pauseTimers(),p.set(`focused`,!0))}function i(e){h(e)===t&&(p.set(`isWindowFocused`,!1),p.pauseTimers())}function c(n){if(n.relatedTarget)return;let r=h(n),i=a(l(e));(r===t||!o(e,r)||!s(i))&&p.resumeTimers(),g.start(0,()=>p.set(`isWindowFocused`,!0))}return v(x(t,`keydown`,r),x(t,`blur`,i,!0),x(t,`focus`,c,!0),x(n,`pointerdown`,p.handleDocumentPointerDown,!0))},[p,g,S]);function ne(e){_.current=!0;let t=e.relatedTarget===p.state.viewport?T.find(e=>e.transitionStatus!==`ending`&&!e.limited):void 0;t?t.ref?.current?.focus():p.restoreFocusToPrevElement()}function A(e){e.key===`Tab`&&e.shiftKey&&h(e.nativeEvent)===p.state.viewport&&(e.preventDefault(),p.restoreFocusToPrevElement())}function j(){p.state.toasts.some(e=>e.transitionStatus===`ending`)||b.current||!y.current||(p.state.isWindowFocused&&p.resumeTimers(),p.set(`hovering`,!1),y.current=!1)}F.useEffect(j,[O,p]);function M(){p.pauseTimers(),p.set(`hovering`,!0),y.current=!1}function N(){p.state.isWindowFocused&&p.resumeTimers()}function P(){y.current=!0,j()}function I(e){e.pointerType===`touch`&&(b.current=!0)}function R(e){e.pointerType===`touch`&&(b.current=!1,j())}function z(){if(_.current){_.current=!1;return}E||s(a(l(p.state.viewport)))&&(p.set(`focused`,!0),p.pauseTimers())}function B(e){!E||o(p.state.viewport,e.relatedTarget)||(p.set(`focused`,!1),N())}let V={tabIndex:-1,role:`region`,"aria-live":`polite`,"aria-atomic":!1,"aria-relevant":`additions text`,"aria-label":`Notifications`,onMouseEnter:M,onMouseMove:M,onMouseLeave:P,onFocus:z,onBlur:B,onKeyDown:A,onClick:z,onPointerDown:I,onPointerUp:R,onPointerCancel:R,style:{[K]:D?`${D}px`:void 0}},H={expanded:ee},U=!S&&te&&(0,G.jsx)(m,{onFocus:ne}),W=C(`div`,e,{ref:[t,p.setViewport],state:H,props:[V,f,{children:(0,G.jsxs)(F.Fragment,{children:[U,u,U]})}]});return(0,G.jsxs)(F.Fragment,{children:[U,W,!E&&k.length>0&&(0,G.jsx)(`div`,{style:d,children:k.map(e=>(0,G.jsxs)(`div`,{role:`alert`,"aria-atomic":!0,children:[(0,G.jsx)(`div`,{children:e.title}),(0,G.jsx)(`div`,{children:e.description})]},e.id))})]})}),ae=e(n(),1),oe=F.createContext(void 0);function J(){let e=F.useContext(oe);if(!e)throw Error(O(66));return e}function se(e,t){let n=(t??w(e).getComputedStyle(e)).transform,r=0,i=0,a=1;if(n&&n!==`none`){let e=n.match(/matrix(?:3d)?\(([^)]+)\)/);if(e){let t=e[1].split(`, `).map(parseFloat);t.length===6?(r=t[4],i=t[5],a=Math.sqrt(t[0]*t[0]+t[1]*t[1])):t.length===16&&(r=t[12],i=t[13],a=t[0])}}return{x:r,y:i,scale:a}}function ce(e,t,n){switch(e){case`up`:return-n;case`down`:return n;case`left`:return-t;case`right`:return t;default:return 0}}var le=`--toast-index`,ue=`--toast-offset-y`,de=`--toast-height`,fe=`--toast-swipe-movement-x`,pe=`--toast-swipe-movement-y`,Y=`data-swipe-direction`,me={...D,swipeDirection(e){return e?{[Y]:e}:null}},he=40,ge=10,_e=.5,ve=1,ye=`${p},${y}`,be=F.forwardRef(function(e,t){let{toast:n,render:r,className:i,swipeDirection:s=[`down`,`right`],style:c,...d}=e,f=n.positionerProps?.anchor!==void 0,p=[];f||(p=Array.isArray(s)?s:[s]);let m=p.length>0,g=L(),[_,v]=F.useState(void 0),[y,b]=F.useState(!1),[w,T]=F.useState(!1),[E,te]=F.useState({x:0,y:0}),[D,O]=F.useState({x:0,y:0,scale:1}),[ne,A]=F.useState(),[j,M]=F.useState(),[N,P]=F.useState(null),I=F.useRef(null),R=F.useRef(void 0),z=F.useRef({x:0,y:0}),B=F.useRef({x:0,y:0,scale:1}),V=F.useRef(void 0),H=F.useRef(0),U=F.useRef(!1),W=F.useRef({x:0,y:0}),re=F.useRef(!1),ie=F.useRef({x:0,y:0}),K=F.useRef(null),q=F.useRef(null),J=g.useState(`toastIndex`,n.id),Y=g.useState(`toastVisibleIndex`,n.id),be=g.useState(`toastOffsetY`,n.id),xe=g.useState(`focused`),X=g.useState(`expanded`);S({open:n.transitionStatus!==`ending`,ref:I,onComplete(){n.transitionStatus===`ending`&&g.removeToast(n.id)}});let Z=ee((e=!1)=>{let t=I.current;if(!t)return;let r=t.style.height;t.style.height=`auto`;let i=t.offsetHeight;t.style.height=r;function a(){g.updateToastInternal(n.id,{ref:I,height:i,transitionStatus:void 0})}e?ae.flushSync(a):a()});k(()=>{let e=R.current;(n.transitionStatus===`starting`||e!==n.id)&&(e!==void 0&&(v(void 0),O({x:0,y:0,scale:1}),Q({x:0,y:0})),R.current=n.id,Z())},[Z,n.id,n.transitionStatus]);function Q(e){ie.current=e,te(e)}k(()=>()=>{q.current?.abort()},[]);function Se(e,t){let n=e=>e>0?e**_e:-(Math.abs(e)**_e),r=e>0&&!p.includes(`right`)||e<0&&!p.includes(`left`),i=t>0&&!p.includes(`down`)||t<0&&!p.includes(`up`);return{x:r?n(e):e,y:i?n(t):t}}let $=ee(e=>{if(e.pointerId!==K.current)return;K.current=null,q.current?.abort(),q.current=null,b(!1),T(!1),P(null);let t=B.current;if(e.type===`pointercancel`||U.current){Q({x:t.x,y:t.y}),v(void 0);return}let r=ie.current,i=r.x-t.x,a=r.y-t.y,o;for(let e of p)if(ce(e,i,a)>he){o=e;break}o?(v(o),g.closeToast(n.id)):(Q({x:t.x,y:t.y}),v(void 0))});function Ce(e){if(e.button!==0||(e.pointerType===`touch`&&g.pauseTimers(),h(e.nativeEvent)?.closest(`button,a,input,textarea,[role="button"],${ye}`)))return;U.current=!1,V.current=void 0,H.current=0,K.current=e.pointerId,z.current={x:e.clientX,y:e.clientY},W.current=z.current;let t=e.currentTarget,n=se(t);B.current=n,O(n),Q({x:n.x,y:n.y}),g.set(`hovering`,!0),b(!0),T(!1),P(null),re.current=!0,q.current?.abort();let r=new AbortController;q.current=r;let i=l(t);i.addEventListener(`pointerup`,$,{signal:r.signal}),i.addEventListener(`pointercancel`,$,{signal:r.signal}),t.setPointerCapture?.(e.pointerId)}function we(e){if(e.pointerId!==K.current)return;e.preventDefault(),re.current&&=(z.current={x:e.clientX,y:e.clientY},!1);let{clientY:t,clientX:n,movementX:r,movementY:i}=e;(i<0&&t>W.current.y||i>0&&t<W.current.y)&&(W.current={x:W.current.x,y:t}),(r<0&&n>W.current.x||r>0&&n<W.current.x)&&(W.current={x:n,y:W.current.y});let a=n-z.current.x,o=t-z.current.y,s=t-W.current.y,c=n-W.current.x,l=N;if(!w&&Math.sqrt(a*a+o*o)>=ve){T(!0);let e=p.includes(`left`)||p.includes(`right`),t=p.includes(`up`)||p.includes(`down`);e&&t&&(l=Math.abs(a)>Math.abs(o)?`horizontal`:`vertical`,P(l))}let u;if(!V.current)l===`vertical`?o>0?u=`down`:o<0&&(u=`up`):l===`horizontal`?a>0?u=`right`:a<0&&(u=`left`):u=Math.abs(a)>=Math.abs(o)?a>0?`right`:`left`:o>0?`down`:`up`,u&&p.includes(u)&&(V.current=u,H.current=ce(u,a,o),v(u));else{let e=V.current,t=ce(e,c,s);t>he?(U.current=!1,v(e)):!(p.includes(`left`)&&p.includes(`right`))&&!(p.includes(`up`)&&p.includes(`down`))&&H.current-t>=ge&&(U.current=!0)}let d=Se(a,o),f=B.current.x,m=B.current.y,h=p.includes(`left`)||p.includes(`right`),g=p.includes(`up`)||p.includes(`down`);l!==`vertical`&&h&&(f+=d.x),l!==`horizontal`&&g&&(m+=d.y),Q({x:f,y:m})}function Te(e){if(e.key===`Escape`){if(!I.current||!o(I.current,a(l(I.current))))return;g.closeToast(n.id)}}F.useEffect(()=>{let e=I.current;if(!m||!e)return;function t(t){K.current===null||!o(e,h(t))||t.preventDefault()}return x(e,`touchmove`,t,{passive:!1})},[m]);function Ee(){let e=E.x-D.x,t=E.y-D.y;return{transition:y?`none`:void 0,transform:y?`translateX(${E.x}px) translateY(${E.y}px) scale(${D.scale})`:void 0,[fe]:`${e}px`,[pe]:`${t}px`}}let De=n.priority===`high`,Oe={role:De?`alertdialog`:`dialog`,tabIndex:0,"aria-modal":!1,"aria-labelledby":ne,"aria-describedby":j,"aria-hidden":De&&!xe?!0:void 0,onPointerDown:m?Ce:void 0,onPointerMove:m?we:void 0,onPointerUp:m?$:void 0,onPointerCancel:m?$:void 0,onKeyDown:Te,inert:u(n.limited),style:{...Ee(),[le]:n.transitionStatus===`ending`?J:Y,[ue]:`${be}px`,[de]:n.height?`${n.height}px`:void 0}},ke=F.useMemo(()=>({toast:n,setTitleId:A,setDescriptionId:M,recalculateHeight:Z,visibleIndex:Y,expanded:X}),[n,A,M,Z,Y,X]),Ae={transitionStatus:n.transitionStatus,expanded:X,limited:n.limited||!1,type:n.type,swiping:y,swipeDirection:_},je=C(`div`,e,{ref:[t,I],state:Ae,stateAttributesMapping:me,props:[Oe,d]});return(0,G.jsx)(oe.Provider,{value:ke,children:je})}),xe=F.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{visibleIndex:o,expanded:s,recalculateHeight:c}=J(),l=F.useRef(null);return k(()=>{c();let e=l.current;if(!e||typeof ResizeObserver!=`function`||typeof MutationObserver!=`function`)return;let t=new ResizeObserver(()=>c(!0)),n=new MutationObserver(()=>c(!0));return t.observe(e),n.observe(e,{childList:!0,subtree:!0,characterData:!0}),()=>{t.disconnect(),n.disconnect()}},[c]),C(`div`,e,{ref:[t,l],state:{expanded:s,behind:o>0},props:a})});function X(e){return e==null||typeof e==`boolean`||e===``?!1:!Array.isArray(e)||e.some(X)}function Z(e){return F.isValidElement(e)&&X(e.props.children)}function Q(e,t,n){let{toast:r,setTitleId:i,setDescriptionId:a}=J(),o=n===`title`?i:a,s=t??(n===`title`?r.title:r.description);return{id:ne(e),children:s,type:r.type,setId:o}}function Se(e,t,n){let r=Z(e);return k(()=>{if(r)return n(t),()=>{n(e=>e===t?void 0:e)}},[r,t,n]),r?e:null}var $=F.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,children:o,...s}=e,{id:c,children:l,type:u,setId:d}=Q(a,o,`description`);return Se(C(`p`,e,{ref:t,state:{type:u},props:{...s,id:c,children:l}}),c,d)}),Ce=F.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,children:o,...s}=e,{id:c,children:l,type:u,setId:d}=Q(a,o,`title`);return Se(C(`h2`,e,{ref:t,state:{type:u},props:{...s,id:c,children:l}}),c,d)}),we=F.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a,nativeButton:o=!0,...s}=e,c=L(),{toast:l,expanded:u}=J(),[d,f]=F.useState(!1),{getButtonProps:p,buttonRef:m}=T({disabled:a,native:o}),h={type:l.type};return C(`button`,e,{ref:[t,m],state:h,props:[{"aria-hidden":!u&&!d,onClick(){c.closeToast(l.id)},onFocus(){f(!0)},onBlur(){f(!1)}},s,p]})}),Te=F.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a,nativeButton:o=!0,...s}=e,{toast:c}=J(),l=c.actionProps?.children??s.children,{getButtonProps:u,buttonRef:d}=T({disabled:a,native:o}),f={type:c.type},p=C(`button`,e,{ref:[t,d],state:f,props:[s,c.actionProps,u,{children:l}]});return Z(p)?p:null}),Ee=F.forwardRef(function(e,t){let{children:n,container:r,className:i,render:a,style:o,...s}=e,{node:c,subtree:l}=g({container:r,ref:t,componentProps:e,elementProps:s});return!l&&!c?null:(0,G.jsxs)(F.Fragment,{children:[l,c&&ae.createPortal(n,c)]})}),De=F.forwardRef(function(e,t){return(0,G.jsx)(Ee,{ref:t,...e})});function Oe(){let e=L(),t=e.useState(`toasts`);return F.useMemo(()=>({toasts:t,add:e.addToast,close:e.closeToast,update:e.updateToast,promise:e.promiseToast}),[t,e])}function ke(){let e=new Set;function t(t){e.forEach(e=>e(t))}return{" subscribe":function(t){return e.add(t),()=>{e.delete(t)}},add(e){let n=e.id||z(`toast`);return t({action:`add`,options:{...e,id:n,transitionStatus:`starting`}}),n},close(e){t({action:`close`,options:{id:e}})},update(e,n){t({action:`update`,options:{id:e,updates:n}})},promise(e,n){let r=e;return t({action:`promise`,options:{...n,promise:e,setPromise(e){r=e}}}),r}}}var Ae={name:`info`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]};Ae.node;var je=A(Ae),Me={name:`octagon-x`,size:24,node:[[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z`,key:`2d38gg`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]],aliases:[`x-octagon`]};Me.node;var Ne=A(Me),Pe=ke();function Fe({...e}){return(0,G.jsx)(re,{...e})}function Ie({...e}){return(0,G.jsx)(De,{"data-slot":`toast-portal`,...e})}function Le({className:e,...t}){return(0,G.jsx)(q,{"data-slot":`toast-viewport`,className:b(`pointer-events-none fixed inset-x-4 bottom-4 z-50 mx-auto w-auto max-w-sm outline-none sm:right-4 sm:left-auto sm:mx-0 sm:w-full`,e),...t})}function Re({className:e,...t}){return(0,G.jsx)(be,{"data-slot":`toast`,className:b(`group/toast pointer-events-auto absolute right-0 bottom-0 z-[calc(1000-var(--toast-index))] w-full origin-bottom rounded-2xl text-popover-foreground will-change-transform outline-none select-none focus-visible:ring-[3px] focus-visible:ring-ring/50`,`bg-surface-3 shadow-surface-3`,`[--gap:0.75rem] [--height:var(--toast-frontmost-height,var(--toast-height))] [--offset-y:calc(var(--toast-offset-y)*-1+calc(var(--toast-index)*var(--gap)*-1)+var(--toast-swipe-movement-y))] [--peek:0.75rem] [--scale:calc(max(0,1-(var(--toast-index)*0.1)))] [--shrink:calc(1-var(--scale))]`,`h-(--height) [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--peek))-(var(--shrink)*var(--height))))_scale(var(--scale))] [transition:transform_500ms_cubic-bezier(0.22,1,0.36,1),opacity_500ms,height_150ms]`,`after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']`,`data-expanded:h-(--toast-height) data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]`,`data-limited:opacity-0 data-starting-style:[transform:translateY(150%)]`,`[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]`,`data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]`,`data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]`,`data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]`,`data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]`,`data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]`,`data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]`,`data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]`,`data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]`,e),...t})}function ze({className:e,...t}){return(0,G.jsx)(xe,{"data-slot":`toast-content`,className:b(`flex h-full items-center gap-3 overflow-hidden p-4 transition-opacity duration-250 ease-[cubic-bezier(0.22,1,0.36,1)] data-behind:opacity-0 data-expanded:opacity-100`,e),...t})}function Be({className:e,...t}){return(0,G.jsx)(Ce,{"data-slot":`toast-title`,className:b(`text-sm font-medium`,e),...t})}function Ve({className:e,...t}){return(0,G.jsx)($,{"data-slot":`toast-description`,className:b(`text-sm text-muted-foreground`,e),...t})}function He({className:e,render:t=(0,G.jsx)(_,{variant:`outline`,size:`sm`}),...n}){return(0,G.jsx)(Te,{"data-slot":`toast-action`,render:t,className:b(`shrink-0`,e),...n})}function Ue({className:e,children:t,render:n=(0,G.jsx)(_,{variant:`ghost`,size:`icon-sm`}),...r}){return(0,G.jsx)(we,{"data-slot":`toast-close`,"aria-label":`Close toast`,render:n,className:b(`relative shrink-0 text-muted-foreground after:absolute after:-inset-2 after:content-[''] hover:text-foreground`,e),...r,children:t??(0,G.jsx)(P,{"aria-hidden":`true`})})}function We({type:e}){let t=null;return e===`success`&&(t=(0,G.jsx)(j,{"aria-hidden":`true`})),e===`info`&&(t=(0,G.jsx)(je,{"aria-hidden":`true`})),e===`warning`&&(t=(0,G.jsx)(N,{"aria-hidden":`true`})),e===`error`&&(t=(0,G.jsx)(Ne,{className:`text-destructive`,"aria-hidden":`true`})),e===`loading`&&(t=(0,G.jsx)(M,{className:`animate-spin`,"aria-hidden":`true`})),t?(0,G.jsx)(`span`,{"data-slot":`toast-icon`,className:`shrink-0 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4`,children:t}):null}function Ge(){let{toasts:e}=Oe();return e.map(e=>(0,G.jsx)(Re,{toast:e,children:(0,G.jsxs)(ze,{children:[(0,G.jsx)(We,{type:e.type}),(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,G.jsx)(Be,{}),(0,G.jsx)(Ve,{})]}),(0,G.jsx)(He,{}),(0,G.jsx)(Ue,{})]})},e.id))}function Ke({children:e,toastManager:t=Pe,...n}){return(0,G.jsxs)(Fe,{toastManager:t,...n,children:[e,(0,G.jsx)(Ie,{children:(0,G.jsx)(Le,{children:(0,G.jsx)(Ge,{})})})]})}export{Pe as n,je as r,Ke as t};
@@ -1,9 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{Mt as r,Nt as i,Pt as a,b as o,s,v as c,y as l}from"./is-ref-object-CEXqIz6L.js";import{f as u}from"./ease-2UPBQU5v.js";import{n as d,t as f}from"./use-presence-D2YmRKr3.js";var p=n(),m=e(t(),1);function h(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function g(...e){return t=>{let n=!1,r=e.map(e=>{let r=h(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():h(e[t],null)}}}}function _(...e){return m.useCallback(g(...e),e)}var v=class extends m.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(d(t)&&e.isPresent&&!this.props.isPresent&&this.props.pop!==!1){let e=t.offsetParent,n=d(e)&&e.offsetWidth||0,r=d(e)&&e.offsetHeight||0,i=getComputedStyle(t),a=this.props.sizeRef.current;a.height=parseFloat(i.height),a.width=parseFloat(i.width),a.top=t.offsetTop,a.left=t.offsetLeft,a.right=n-a.width-a.left,a.bottom=r-a.height-a.top,a.direction=i.direction}return null}componentDidUpdate(){}render(){return this.props.children}};function y({children:e,isPresent:t,anchorX:n,anchorY:r,root:i,pop:a}){let o=(0,m.useId)(),c=(0,m.useRef)(null),l=(0,m.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:`ltr`}),{nonce:u}=(0,m.useContext)(s),d=_(c,a===!1?void 0:e.props?.ref??e?.ref);return(0,m.useInsertionEffect)(()=>{let{width:e,height:s,top:d,left:f,right:p,bottom:m,direction:h}=l.current;if(t||a===!1||!c.current||!e||!s)return;let g=h===`rtl`,_=n===`left`?g?`right: ${p}`:`left: ${f}`:g?`left: ${f}`:`right: ${p}`,v=r===`bottom`?`bottom: ${m}`:`top: ${d}`;c.current.dataset.motionPopId=o;let y=document.createElement(`style`);u&&(y.nonce=u);let b=i??document.head;return b.appendChild(y),y.sheet&&y.sheet.insertRule(`
2
- [data-motion-pop-id="${o}"] {
3
- position: absolute !important;
4
- width: ${e}px !important;
5
- height: ${s}px !important;
6
- ${_}px !important;
7
- ${v}px !important;
8
- }
9
- `),()=>{c.current?.removeAttribute(`data-motion-pop-id`),b.contains(y)&&b.removeChild(y)}},[t]),(0,p.jsx)(v,{isPresent:t,childRef:c,sizeRef:l,pop:a,children:a===!1?e:m.cloneElement(e,{ref:d})})}var b=({children:e,initial:t,isPresent:n,onExitComplete:a,custom:o,presenceAffectsLayout:s,mode:c,anchorX:l,anchorY:d,root:f})=>{let h=i(x),g=(0,m.useId)(),_=(0,m.useRef)(n),v=(0,m.useRef)(a);u(()=>{_.current=n,v.current=a});let b=!0,S=(0,m.useMemo)(()=>(b=!1,{id:g,initial:t,isPresent:n,custom:o,onExitComplete:e=>{h.set(e,!0);for(let e of h.values())if(!e)return;a&&a()},register:e=>(h.set(e,!1),()=>{h.delete(e),!_.current&&!h.size&&v.current?.()})}),[n,h,a]);return s&&b&&(S={...S}),(0,m.useMemo)(()=>{h.forEach((e,t)=>h.set(t,!1))},[n]),m.useEffect(()=>{!n&&!h.size&&a&&a()},[n]),e=(0,p.jsx)(y,{pop:c===`popLayout`,isPresent:n,anchorX:l,anchorY:d,root:f,children:e}),(0,p.jsx)(r.Provider,{value:S,children:e})};function x(){return new Map}var S=e=>e.key||``;function C(e){let t=[];return m.Children.forEach(e,e=>{(0,m.isValidElement)(e)&&t.push(e)}),t}var w=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:o=!0,mode:s=`sync`,propagate:c=!1,anchorX:l=`left`,anchorY:d=`top`,root:h})=>{let[g,_]=f(c),v=(0,m.useMemo)(()=>C(e),[e]),y=c&&!g?[]:v.map(S),x=(0,m.useRef)(!0),w=(0,m.useRef)(v),T=i(()=>new Map),E=(0,m.useRef)(new Set),[D,O]=(0,m.useState)(v),[k,A]=(0,m.useState)(v);u(()=>{c&&!g&&!k.length&&_?.()},[g,c,k.length,_]),u(()=>{x.current=!1,w.current=v;for(let e=0;e<k.length;e++){let t=S(k[e]);y.includes(t)?(T.delete(t),E.current.delete(t)):T.get(t)!==!0&&T.set(t,!1)}},[k,y.length,y.join(`-`)]);let j=[];if(v!==D){let e=[...v],t=0;for(let n of k){let r=y.indexOf(S(n));r===-1?(e.splice(t++,0,n),j.push(n)):t=r+j.length+1}return s===`wait`&&j.length&&(e=j),A(C(e)),O(v),null}let{forceRender:M}=(0,m.useContext)(a);return(0,p.jsx)(p.Fragment,{children:k.map(e=>{let i=S(e),a=c&&!g?!1:v===k||y.includes(i);return(0,p.jsx)(b,{isPresent:a,initial:!x.current||n?void 0:!1,custom:t,presenceAffectsLayout:o,mode:s,root:h,onExitComplete:a?void 0:()=>{if(E.current.has(i))return;if(T.has(i))E.current.add(i),T.set(i,!0);else return;let e=!0;T.forEach(t=>{t||(e=!1)}),e&&(M?.(),A(w.current),c&&_?.(),r&&r())},anchorX:l,anchorY:d,children:e},i)})})};function T(){!l.current&&c();let[e]=(0,m.useState)(o.current);return e}export{w as n,T as t};