coding-tool-x 3.8.7 → 3.8.8

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 (133) hide show
  1. package/dist/web/assets/{AgentsDrawer-C7ePByZx.js → AgentsDrawer-DRQuwi0m.js} +1 -1
  2. package/dist/web/assets/Analytics-Cf5KwEdj.js +1 -0
  3. package/dist/web/assets/AssetPathField-DyniM0pF.js +1 -0
  4. package/dist/web/assets/{ChatHistoryDrawer-Ccl4rhdz.js → ChatHistoryDrawer-CrfS0KYV.js} +1 -1
  5. package/dist/web/assets/{CollapseItem-MxG_UD4o.js → CollapseItem-ClMsJuUu.js} +1 -1
  6. package/dist/web/assets/{CommandsDrawer-DWbaxHRZ.js → CommandsDrawer-CzHelf56.js} +1 -1
  7. package/dist/web/assets/ConfigExportDrawer-BEZ8wTby.js +1 -0
  8. package/dist/web/assets/ConfigTemplates-Crg3xWe5.js +1 -0
  9. package/dist/web/assets/{ConfigTemplatesDrawer-CKMFsfEF.js → ConfigTemplatesDrawer-BqM32Im7.js} +1 -1
  10. package/dist/web/assets/{ConfigTemplatesPanel-Cvbnkvpt.js → ConfigTemplatesPanel-lTdutC8H.js} +1 -1
  11. package/dist/web/assets/{Divider-D28g1gwj.js → Divider-DsdbkHrG.js} +1 -1
  12. package/dist/web/assets/{FavoritesDrawer-DA-dR_vP.js → FavoritesDrawer-DDyWUBJR.js} +1 -1
  13. package/dist/web/assets/Forward-DLCL7aMY.js +1 -0
  14. package/dist/web/assets/{GatewayConvertDrawer-402_raGb.js → GatewayConvertDrawer-Rigtt_5J.js} +1 -1
  15. package/dist/web/assets/Home-tCSKmSHV.js +1 -0
  16. package/dist/web/assets/{MarkdownEditor-BvkDECwH.js → MarkdownEditor-BMMUufSc.js} +1 -1
  17. package/dist/web/assets/McpDrawer-CmE-d7VW.js +1 -0
  18. package/dist/web/assets/{McpFormDrawer-DPMnyt5L.js → McpFormDrawer-ByvS18od.js} +1 -1
  19. package/dist/web/assets/{PluginManager-FKVeugr4.js → PluginManager-C4kJlpVX.js} +1 -1
  20. package/dist/web/assets/{PluginsDrawer-MvM1R55d.js → PluginsDrawer-05R4k15x.js} +1 -1
  21. package/dist/web/assets/PluginsPanel-BCoEs7Og.js +1 -0
  22. package/dist/web/assets/PluginsPanel-CzGMK-Ap.css +1 -0
  23. package/dist/web/assets/ProjectList-BJt1OIaI.js +1 -0
  24. package/dist/web/assets/ProjectList-DG3yu8xZ.css +1 -0
  25. package/dist/web/assets/PromptsDrawer-DnwBf_oW.js +1 -0
  26. package/dist/web/assets/RecentSessionsDrawer-B7d-38wH.js +1 -0
  27. package/dist/web/assets/RecentSessionsDrawer-yrAD4p1A.css +1 -0
  28. package/dist/web/assets/SessionCard-BUgjHQwX.js +1 -0
  29. package/dist/web/assets/SessionList-B-bXZRFk.js +1 -0
  30. package/dist/web/assets/SessionList-qG_XpPBJ.css +1 -0
  31. package/dist/web/assets/{SettingsDrawer-lMjttbkD.js → SettingsDrawer-BITzjQLl.js} +1 -1
  32. package/dist/web/assets/SkillManager-D9jkNuRM.js +1 -0
  33. package/dist/web/assets/{SkillsDrawer-DF6JsSyj.js → SkillsDrawer-0Z4IefxC.js} +1 -1
  34. package/dist/web/assets/SkillsPanel-BKIVOj7n.js +1 -0
  35. package/dist/web/assets/{SkillsPanel-B3Nm5j32.css → SkillsPanel-C4ke56nF.css} +1 -1
  36. package/dist/web/assets/{SpeedTestDrawer-BaZkZqPP.js → SpeedTestDrawer-Bx1bYf5i.js} +1 -1
  37. package/dist/web/assets/Upload-CzC4rGI4.js +1 -0
  38. package/dist/web/assets/{WorkspaceDrawer-BFSwZ5yU.js → WorkspaceDrawer-eujtWpoq.js} +1 -1
  39. package/dist/web/assets/{WorkspaceManager-BHL1uYct.js → WorkspaceManager-CQ-8Ej68.js} +1 -1
  40. package/dist/web/assets/{WorkspacePanel-B5PooBtg.js → WorkspacePanel-Cql5qE2R.js} +1 -1
  41. package/dist/web/assets/headers-BqDmkMjy.js +1 -0
  42. package/dist/web/assets/{icons-B2Vg-IOC.js → icons-DmFe4b5j.js} +1 -1
  43. package/dist/web/assets/index-Cmmwj3Fx.js +2 -0
  44. package/dist/web/assets/{index-BohDDAy_.css → index-Cnbe696C.css} +1 -1
  45. package/dist/web/assets/{light-Cp0t7v32.js → light-0eavxNvt.js} +1 -1
  46. package/dist/web/assets/platforms-BmzzwnSw.js +1 -0
  47. package/dist/web/assets/platforms-DWXgmy2w.js +1 -0
  48. package/dist/web/assets/session-visibility-BAmxh3cK.js +1 -0
  49. package/dist/web/assets/sessions-D4yQtfKb.js +1 -0
  50. package/dist/web/assets/sessions-DqlbocLJ.js +1 -0
  51. package/dist/web/assets/use-message-DqCwefG6.js +1 -0
  52. package/dist/web/assets/{useResponsiveDrawer-D-DDpbnI.js → useResponsiveDrawer-DZd5rNk5.js} +1 -1
  53. package/dist/web/index.html +7 -7
  54. package/package.json +1 -1
  55. package/src/commands/search.js +17 -2
  56. package/src/config/paths.js +2 -0
  57. package/src/platforms/driver-registry.js +9 -1
  58. package/src/platforms/drivers/claude/session-history-adapter.js +72 -1
  59. package/src/platforms/drivers/claude/sessions-implementation.js +49 -7
  60. package/src/platforms/drivers/claude/sessions.js +30 -6
  61. package/src/platforms/drivers/codex/parser.js +57 -1
  62. package/src/platforms/drivers/codex/session-history-adapter.js +8 -2
  63. package/src/platforms/drivers/codex/sessions-implementation.js +25 -3
  64. package/src/platforms/drivers/codex/sessions.js +18 -1
  65. package/src/platforms/drivers/dsh/api-operations.js +396 -0
  66. package/src/platforms/drivers/dsh/channels-implementation.js +458 -0
  67. package/src/platforms/drivers/dsh/channels.js +191 -0
  68. package/src/platforms/drivers/dsh/common.js +571 -0
  69. package/src/platforms/drivers/dsh/native-config.js +93 -0
  70. package/src/platforms/drivers/dsh/native-logs.js +116 -0
  71. package/src/platforms/drivers/dsh/plugin-manager.js +117 -0
  72. package/src/platforms/drivers/dsh/projects.js +23 -0
  73. package/src/platforms/drivers/dsh/proxy-implementation.js +260 -0
  74. package/src/platforms/drivers/dsh/proxy.js +23 -0
  75. package/src/platforms/drivers/dsh/resources.js +346 -0
  76. package/src/platforms/drivers/dsh/sessions.js +587 -0
  77. package/src/platforms/drivers/dsh/statistics-implementation.js +238 -0
  78. package/src/platforms/drivers/dsh/statistics.js +24 -0
  79. package/src/platforms/drivers/gemini/session-history-adapter.js +49 -1
  80. package/src/platforms/drivers/gemini/sessions-implementation.js +46 -1
  81. package/src/platforms/drivers/gemini/sessions.js +2 -1
  82. package/src/platforms/drivers/omp/session-history-adapter.js +42 -1
  83. package/src/platforms/drivers/omp/sessions-implementation.js +51 -3
  84. package/src/platforms/drivers/omp/sessions.js +33 -2
  85. package/src/platforms/drivers/opencode/sessions-implementation.js +89 -9
  86. package/src/platforms/drivers/opencode/sessions.js +37 -1
  87. package/src/platforms/manifest-schema.js +43 -3
  88. package/src/platforms/manifests/dsh.json +542 -0
  89. package/src/platforms/path-resolver.js +2 -0
  90. package/src/platforms/platform-path-context.js +12 -2
  91. package/src/platforms/registry.js +16 -1
  92. package/src/platforms/runtime.js +5 -0
  93. package/src/platforms/session-history-adapters.js +1 -0
  94. package/src/server/api/platform-api-config.js +23 -2
  95. package/src/server/api/platform-route-factory.js +9 -2
  96. package/src/server/api/platforms.js +19 -1
  97. package/src/server/api/plugins.js +108 -13
  98. package/src/server/services/config-registry-service.js +10 -1
  99. package/src/server/services/config-templates-service.js +1 -0
  100. package/src/server/services/plugins-service.js +474 -103
  101. package/src/server/services/session-history-index.js +900 -140
  102. package/src/server/services/session-history-worker.js +3 -1
  103. package/src/server/services/skill-service.js +214 -7
  104. package/src/server/services/usage-log-utils.js +1 -0
  105. package/src/server/services/workspace-service.js +39 -10
  106. package/src/shared/driver-factories/api.js +22 -6
  107. package/src/shared/driver-factories/projects.js +8 -0
  108. package/dist/web/assets/Analytics-BVG6ehFv.js +0 -1
  109. package/dist/web/assets/AssetPathField-BZI9NvEr.js +0 -1
  110. package/dist/web/assets/ConfigExportDrawer-DrawKwxE.js +0 -1
  111. package/dist/web/assets/ConfigTemplates-AiRPv2cd.js +0 -1
  112. package/dist/web/assets/Home-CTF8ZWKW.js +0 -1
  113. package/dist/web/assets/McpDrawer-DZGHkuDm.js +0 -1
  114. package/dist/web/assets/PluginsPanel-CKuBs38B.js +0 -1
  115. package/dist/web/assets/PluginsPanel-D6ZqITcR.css +0 -1
  116. package/dist/web/assets/ProjectList-677RLZ8O.css +0 -1
  117. package/dist/web/assets/ProjectList-tsjwjXV1.js +0 -1
  118. package/dist/web/assets/PromptsDrawer-B-X9ci8n.js +0 -1
  119. package/dist/web/assets/RecentSessionsDrawer-CKFsOYDM.css +0 -1
  120. package/dist/web/assets/RecentSessionsDrawer-wLktMF_c.js +0 -1
  121. package/dist/web/assets/SessionCard-DkJPy0TY.js +0 -1
  122. package/dist/web/assets/SessionList-BpYRz1cX.css +0 -1
  123. package/dist/web/assets/SessionList-Gzhh4FOZ.js +0 -1
  124. package/dist/web/assets/SkillManager-CzFxWxx-.js +0 -1
  125. package/dist/web/assets/SkillsPanel--lLEts9y.js +0 -1
  126. package/dist/web/assets/Upload-BEQ-3Kqq.js +0 -1
  127. package/dist/web/assets/headers-cf-QapUq.js +0 -1
  128. package/dist/web/assets/index-BFInlZGI.js +0 -2
  129. package/dist/web/assets/platforms-CBkB45JP.js +0 -1
  130. package/dist/web/assets/platforms-FTpjxAT6.js +0 -1
  131. package/dist/web/assets/sessions-Cmy31slD.js +0 -1
  132. package/dist/web/assets/sessions-yC_oVVh8.js +0 -1
  133. package/dist/web/assets/use-message-DoLM8C1C.js +0 -1
@@ -0,0 +1 @@
1
+ import{$ as e,$t as t,B as o,Bt as r,C as n,Ct as a,Dt as l,F as i,G as s,H as d,I as u,It as c,J as p,K as f,Lt as h,M as v,N as g,Nt as b,Ot as m,Q as w,Qt as y,Rt as x,Tt as $,U as S,Ut as C,V as M,Vt as z,W as O,Wt as j,X as T,Xt as E,Y as B,Yt as A,Z as _,Zt as P,_ as W,_n as H,an as R,at as F,b as k,bn as D,bt as I,ct as L,dt as N,et as X,gn as Y,gt as V,hn as U,ht as q,it as K,jt as Q,lt as Z,nn as G,nt as J,ot as ee,pn as te,q as oe,qt as re,rt as ne,st as ae,tn as le,tt as ie,ut as se,vn as de,wn as ue,x as ce,yn as pe,z as fe,zt as he}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as ve,D as ge,F as be,G as me,I as we,M as ye,N as xe,Q as $e,V as Se,Z as Ce,b as Me,dt as ze,f as Oe,g as je,h as Te,j as Ee,l as Be,st as Ae,tt as _e,v as Pe,y as We,z as He}from"./vue-vendor-BqZbbXHA.js";var Re=[],Fe=new WeakMap;function ke(){Re.forEach(e=>e(...Fe.get(e))),Re=[]}function De(e,...t){Fe.set(e,t),Re.includes(e)||1===Re.push(e)&&requestAnimationFrame(ke)}function Ie(){return null!==Ee()}var Le,Ne,Xe,Ye,Ve="undefined"!=typeof window;function Ue(e){if(Ne)return;let t=!1;Se(()=>{Ne||null==Le||Le.then(()=>{t||e()})}),He(()=>{t=!0})}Le=Ve?null===(Ye=null===(Xe=document)||void 0===Xe?void 0:Xe.fonts)||void 0===Ye?void 0:Ye.ready:void 0,Ne=!1,void 0!==Le?Le.then(()=>{Ne=!0}):Ne=!0;var qe=A("n-internal-select-menu"),Ke=A("n-internal-select-menu-body"),Qe="__disabled__";function Ze(e){const o=xe(j,null),r=xe(re,null),n=xe(C,null),a=xe(Ke,null),l=Ae();if("undefined"!=typeof document){l.value=document.fullscreenElement;const e=()=>{l.value=document.fullscreenElement};Se(()=>{G("fullscreenchange",document,e)}),He(()=>{le("fullscreenchange",document,e)})}return t(()=>{var t;const{to:i}=e;return void 0!==i?!1===i?Qe:!0===i?l.value||"body":i:(null==o?void 0:o.value)?null!==(t=o.value.$el)&&void 0!==t?t:o.value:(null==r?void 0:r.value)?r.value:(null==n?void 0:n.value)?n.value:(null==a?void 0:a.value)?a.value:null!=i?i:l.value||"body"})}Ze.tdkey=Qe,Ze.propTo={type:[String,Object,Boolean],default:void 0};var Ge=null;function Je(){if(null===Ge&&null===(Ge=document.getElementById("v-binder-view-measurer"))){(Ge=document.createElement("div")).id="v-binder-view-measurer";const{style:e}=Ge;e.position="fixed",e.left="0",e.right="0",e.top="0",e.bottom="0",e.pointerEvents="none",e.visibility="hidden",document.body.appendChild(Ge)}return Ge.getBoundingClientRect()}function et(e){const t=e.getBoundingClientRect(),o=Je();return{left:t.left-o.left,top:t.top-o.top,bottom:o.height+o.top-t.bottom,right:o.width+o.left-t.right,width:t.width,height:t.height}}function tt(e){if(null===e)return null;const t=function(e){return 9===e.nodeType?null:e.parentNode}(e);if(null===t)return null;if(9===t.nodeType)return document;if(1===t.nodeType){const{overflow:e,overflowX:o,overflowY:r}=getComputedStyle(t);if(/(auto|scroll|overlay)/.test(e+r+o))return t}return tt(t)}var ot=ve({name:"Binder",props:{syncTargetWithParent:Boolean,syncTarget:{type:Boolean,default:!0}},setup(e){var t;me("VBinder",null===(t=Ee())||void 0===t?void 0:t.proxy);const o=xe("VBinder",null),r=Ae(null);let n=[];const a=()=>{for(const e of n)le("scroll",e,i,!0);n=[]},l=new Set,i=()=>{De(s)},s=()=>{l.forEach(e=>e())},d=new Set,u=()=>{d.forEach(e=>e())};return He(()=>{le("resize",window,u),a()}),{targetRef:r,setTargetRef:t=>{r.value=t,o&&e.syncTargetWithParent&&o.setTargetRef(t)},addScrollListener:e=>{0===l.size&&(()=>{let e=r.value;for(;e=tt(e),null!==e;)n.push(e);for(const t of n)G("scroll",t,i,!0)})(),l.has(e)||l.add(e)},removeScrollListener:e=>{l.has(e)&&l.delete(e),0===l.size&&a()},addResizeListener:e=>{0===d.size&&G("resize",window,u),d.has(e)||d.add(e)},removeResizeListener:e=>{d.has(e)&&d.delete(e),0===d.size&&le("resize",window,u)}}},render(){return z("binder",this.$slots)}}),rt=ve({name:"Target",setup(){const{setTargetRef:e,syncTarget:t}=xe("VBinder");return{syncTarget:t,setTargetDirective:{mounted:e,updated:e}}},render(){const{syncTarget:e,setTargetDirective:t}=this;return e?_e(r("follower",this.$slots),[[t]]):r("follower",this.$slots)}}),nt="@@mmoContext",at={mounted(e,{value:t}){e[nt]={handler:void 0},"function"==typeof t&&(e[nt].handler=t,G("mousemoveoutside",e,t))},updated(e,{value:t}){const o=e[nt];"function"==typeof t?o.handler?o.handler!==t&&(le("mousemoveoutside",e,o.handler),o.handler=t,G("mousemoveoutside",e,t)):(e[nt].handler=t,G("mousemoveoutside",e,t)):o.handler&&(le("mousemoveoutside",e,o.handler),o.handler=void 0)},unmounted(e){const{handler:t}=e[nt];t&&le("mousemoveoutside",e,t),e[nt].handler=void 0}},{c:lt}=ue(),it="vueuc-style",st={top:"bottom",bottom:"top",left:"right",right:"left"},dt={start:"end",center:"center",end:"start"},ut={top:"height",bottom:"height",left:"width",right:"width"},ct={"bottom-start":"top left",bottom:"top center","bottom-end":"top right","top-start":"bottom left",top:"bottom center","top-end":"bottom right","right-start":"top left",right:"center left","right-end":"bottom left","left-start":"top right",left:"center right","left-end":"bottom right"},pt={"bottom-start":"bottom left",bottom:"bottom center","bottom-end":"bottom right","top-start":"top left",top:"top center","top-end":"top right","right-start":"top right",right:"center right","right-end":"bottom right","left-start":"top left",left:"center left","left-end":"bottom left"},ft={"bottom-start":"right","bottom-end":"left","top-start":"right","top-end":"left","right-start":"bottom","right-end":"top","left-start":"bottom","left-end":"top"},ht={top:!0,bottom:!1,left:!0,right:!1},vt={top:"end",bottom:"start",left:"end",right:"start"};var gt,bt=lt([lt(".v-binder-follower-container",{position:"absolute",left:"0",right:"0",top:"0",height:"0",pointerEvents:"none",zIndex:"auto"}),lt(".v-binder-follower-content",{position:"absolute",zIndex:"auto"},[lt("> *",{pointerEvents:"all"})])]),mt=ve({name:"Follower",inheritAttrs:!1,props:{show:Boolean,enabled:{type:Boolean,default:void 0},placement:{type:String,default:"bottom"},syncTrigger:{type:Array,default:["resize","scroll"]},to:[String,Object],flip:{type:Boolean,default:!0},internalShift:Boolean,x:Number,y:Number,width:String,minWidth:String,containerClass:String,teleportDisabled:Boolean,zindexable:{type:Boolean,default:!0},zIndex:Number,overlap:Boolean},setup(e){const o=xe("VBinder"),r=t(()=>void 0!==e.enabled?e.enabled:e.show),n=Ae(null),a=Ae(null),l=()=>{const{syncTrigger:t}=e;t.includes("scroll")&&o.addScrollListener(d),t.includes("resize")&&o.addResizeListener(d)},i=()=>{o.removeScrollListener(d),o.removeResizeListener(d)};Se(()=>{r.value&&(d(),l())});const s=h();bt.mount({id:"vueuc/binder",head:!0,anchorMetaName:it,ssr:s}),He(()=>{i()}),Ue(()=>{r.value&&d()});const d=()=>{if(!r.value)return;const t=n.value;if(null===t)return;const l=o.targetRef,{x:i,y:s,overlap:d}=e,u=void 0!==i&&void 0!==s?function(e,t){const o=Je();return{top:t,left:e,height:0,width:0,right:o.width-e,bottom:o.height-t}}(i,s):et(l);t.style.setProperty("--v-target-width",`${Math.round(u.width)}px`),t.style.setProperty("--v-target-height",`${Math.round(u.height)}px`);const{width:c,minWidth:p,placement:f,internalShift:h,flip:v}=e;t.setAttribute("v-placement",f),d?t.setAttribute("v-overlap",""):t.removeAttribute("v-overlap");const{style:g}=t;g.width="target"===c?`${u.width}px`:void 0!==c?c:"",g.minWidth="target"===p?`${u.width}px`:void 0!==p?p:"";const b=et(t),m=et(a.value),{left:w,top:y,placement:x}=function(e,t,o,r,n,a){if(!n||a)return{placement:e,top:0,left:0};const[l,i]=e.split("-");let s=null!=i?i:"center",d={top:0,left:0};const u=(e,n,a)=>{let l=0,i=0;const s=o[e]-t[n]-t[e];return s>0&&r&&(a?i=ht[n]?s:-s:l=ht[n]?s:-s),{left:l,top:i}},c="left"===l||"right"===l;if("center"!==s){const r=ft[e],n=st[r],a=ut[r];if(o[a]>t[a]){if(t[r]+t[a]<o[a]){const e=(o[a]-t[a])/2;t[r]<e||t[n]<e?t[r]<t[n]?(s=dt[i],d=u(a,n,c)):d=u(a,r,c):s="center"}}else o[a]<t[a]&&t[n]<0&&t[r]>t[n]&&(s=dt[i])}else{const e="bottom"===l||"top"===l?"left":"top",r=st[e],n=ut[e],a=(o[n]-t[n])/2;(t[e]<a||t[r]<a)&&(t[e]>t[r]?(s=vt[e],d=u(n,e,c)):(s=vt[r],d=u(n,r,c)))}let p=l;return t[l]<o[ut[l]]&&t[l]<t[st[l]]&&(p=st[l]),{placement:"center"!==s?`${p}-${s}`:p,left:d.left,top:d.top}}(f,u,b,h,v,d),$=function(e,t){return t?pt[e]:ct[e]}(x,d),{left:S,top:C,transform:M}=function(e,t,o,r,n,a){if(a)switch(e){case"bottom-start":case"left-end":return{top:`${Math.round(o.top-t.top+o.height)}px`,left:`${Math.round(o.left-t.left)}px`,transform:"translateY(-100%)"};case"bottom-end":case"right-end":return{top:`${Math.round(o.top-t.top+o.height)}px`,left:`${Math.round(o.left-t.left+o.width)}px`,transform:"translateX(-100%) translateY(-100%)"};case"top-start":case"left-start":return{top:`${Math.round(o.top-t.top)}px`,left:`${Math.round(o.left-t.left)}px`,transform:""};case"top-end":case"right-start":return{top:`${Math.round(o.top-t.top)}px`,left:`${Math.round(o.left-t.left+o.width)}px`,transform:"translateX(-100%)"};case"top":return{top:`${Math.round(o.top-t.top)}px`,left:`${Math.round(o.left-t.left+o.width/2)}px`,transform:"translateX(-50%)"};case"right":return{top:`${Math.round(o.top-t.top+o.height/2)}px`,left:`${Math.round(o.left-t.left+o.width)}px`,transform:"translateX(-100%) translateY(-50%)"};case"left":return{top:`${Math.round(o.top-t.top+o.height/2)}px`,left:`${Math.round(o.left-t.left)}px`,transform:"translateY(-50%)"};default:return{top:`${Math.round(o.top-t.top+o.height)}px`,left:`${Math.round(o.left-t.left+o.width/2)}px`,transform:"translateX(-50%) translateY(-100%)"}}switch(e){case"bottom-start":return{top:`${Math.round(o.top-t.top+o.height+r)}px`,left:`${Math.round(o.left-t.left+n)}px`,transform:""};case"bottom-end":return{top:`${Math.round(o.top-t.top+o.height+r)}px`,left:`${Math.round(o.left-t.left+o.width+n)}px`,transform:"translateX(-100%)"};case"top-start":return{top:`${Math.round(o.top-t.top+r)}px`,left:`${Math.round(o.left-t.left+n)}px`,transform:"translateY(-100%)"};case"top-end":return{top:`${Math.round(o.top-t.top+r)}px`,left:`${Math.round(o.left-t.left+o.width+n)}px`,transform:"translateX(-100%) translateY(-100%)"};case"right-start":return{top:`${Math.round(o.top-t.top+r)}px`,left:`${Math.round(o.left-t.left+o.width+n)}px`,transform:""};case"right-end":return{top:`${Math.round(o.top-t.top+o.height+r)}px`,left:`${Math.round(o.left-t.left+o.width+n)}px`,transform:"translateY(-100%)"};case"left-start":return{top:`${Math.round(o.top-t.top+r)}px`,left:`${Math.round(o.left-t.left+n)}px`,transform:"translateX(-100%)"};case"left-end":return{top:`${Math.round(o.top-t.top+o.height+r)}px`,left:`${Math.round(o.left-t.left+n)}px`,transform:"translateX(-100%) translateY(-100%)"};case"top":return{top:`${Math.round(o.top-t.top+r)}px`,left:`${Math.round(o.left-t.left+o.width/2+n)}px`,transform:"translateY(-100%) translateX(-50%)"};case"right":return{top:`${Math.round(o.top-t.top+o.height/2+r)}px`,left:`${Math.round(o.left-t.left+o.width+n)}px`,transform:"translateY(-50%)"};case"left":return{top:`${Math.round(o.top-t.top+o.height/2+r)}px`,left:`${Math.round(o.left-t.left+n)}px`,transform:"translateY(-50%) translateX(-100%)"};default:return{top:`${Math.round(o.top-t.top+o.height+r)}px`,left:`${Math.round(o.left-t.left+o.width/2+n)}px`,transform:"translateX(-50%)"}}}(x,m,u,y,w,d);t.setAttribute("v-placement",x),t.style.setProperty("--v-offset-left",`${Math.round(w)}px`),t.style.setProperty("--v-offset-top",`${Math.round(y)}px`),t.style.transform=`translateX(${S}) translateY(${C}) ${M}`,t.style.setProperty("--v-transform-origin",$),t.style.transformOrigin=$};Ce(r,e=>{e?(l(),u()):i()});const u=()=>{we().then(d).catch(e=>{})};["placement","x","y","internalShift","flip","width","overlap","minWidth"].forEach(t=>{Ce(ze(e,t),d)}),["teleportDisabled"].forEach(t=>{Ce(ze(e,t),u)}),Ce(ze(e,"syncTrigger"),e=>{e.includes("resize")?o.addResizeListener(d):o.removeResizeListener(d),e.includes("scroll")?o.addScrollListener(d):o.removeScrollListener(d)});const c=P();return{VBinder:o,mergedEnabled:r,offsetContainerRef:a,followerRef:n,mergedTo:t(()=>{const{to:t}=e;if(void 0!==t)return t;c.value}),syncPosition:d}},render(){return ye(c,{show:this.show,to:this.mergedTo,disabled:this.teleportDisabled},{default:()=>{var e,t;const o=ye("div",{class:["v-binder-follower-container",this.containerClass],ref:"offsetContainerRef"},[ye("div",{class:"v-binder-follower-content",ref:"followerRef"},null===(t=(e=this.$slots).default)||void 0===t?void 0:t.call(e))]);return this.zindexable?_e(o,[[x,{enabled:this.mergedEnabled,zIndex:this.zIndex}]]):o}})}});function wt(e,t=!0,o=[]){return e.forEach(e=>{if(null!==e)if("object"==typeof e)if(Array.isArray(e))wt(e,t,o);else if(e.type===je){if(null===e.children)return;Array.isArray(e.children)&&wt(e.children,t,o)}else{if(e.type===Te&&t)return;o.push(e)}else"string"!=typeof e&&"number"!=typeof e||o.push(ge(String(e)))}),o}function yt(e,t,o){if(!t)return null;const r=wt(t(o));return 1===r.length?r[0]:(m("getFirstSlotVNode",`slot[${e}] should have exactly one child`),null)}function xt(e,t=[],o){const r={};return t.forEach(t=>{r[t]=e[t]}),Object.assign(r,o)}function $t(e,...t){return"function"==typeof e?e(...t):"string"==typeof e?ge(e):"number"==typeof e?ge(String(e)):null}var St=ie(N,"WeakMap"),Ct=s(Object.keys,Object),Mt=Object.prototype.hasOwnProperty;function zt(e){return _(e)?f(e):function(e){if(!T(e))return Ct(e);var t=[];for(var o in Object(e))Mt.call(e,o)&&"constructor"!=o&&t.push(o);return t}(e)}var Ot=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,jt=/^\w*$/;function Tt(e,t){if(F(e))return!1;var o=typeof e;return!("number"!=o&&"symbol"!=o&&"boolean"!=o&&null!=e&&!ae(e))||(jt.test(e)||!Ot.test(e)||null!=t&&e in Object(t))}function Et(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var o=function(){var r=arguments,n=t?t.apply(this,r):r[0],a=o.cache;if(a.has(n))return a.get(n);var l=e.apply(this,r);return o.cache=a.set(n,l)||a,l};return o.cache=new(Et.Cache||S),o}Et.Cache=S;var Bt,At,_t,Pt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wt=/\\(\\)?/g,Ht=(Bt=function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Pt,function(e,o,r,n){t.push(r?n.replace(Wt,"$1"):o||e)}),t},At=Et(Bt,function(e){return 500===_t.size&&_t.clear(),e}),_t=At.cache,At);function Rt(e,t){return F(e)?e:Tt(e,t)?[e]:Ht(d(e))}function Ft(e){if("string"==typeof e||ae(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function kt(e,t){for(var o=0,r=(t=Rt(t,e)).length;null!=e&&o<r;)e=e[Ft(t[o++])];return o&&o==r?e:void 0}function Dt(e,t,o){var r=null==e?void 0:kt(e,t);return void 0===r?o:r}var It=Object.prototype.propertyIsEnumerable,Lt=Object.getOwnPropertySymbols,Nt=Lt?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var o=-1,r=null==e?0:e.length,n=0,a=[];++o<r;){var l=e[o];t(l,o,e)&&(a[n++]=l)}return a}(Lt(e),function(t){return It.call(e,t)}))}:function(){return[]};function Xt(e){return function(e,t,o){var r=t(e);return F(e)?r:function(e,t){for(var o=-1,r=t.length,n=e.length;++o<r;)e[n+o]=t[o];return e}(r,o(e))}(e,zt,Nt)}var Yt=ie(N,"DataView"),Vt=ie(N,"Promise"),Ut=ie(N,"Set"),qt="[object Map]",Kt="[object Promise]",Qt="[object Set]",Zt="[object WeakMap]",Gt="[object DataView]",Jt=J(Yt),eo=J(O),to=J(Vt),oo=J(Ut),ro=J(St),no=Z;(Yt&&no(new Yt(new ArrayBuffer(1)))!=Gt||O&&no(new O)!=qt||Vt&&no(Vt.resolve())!=Kt||Ut&&no(new Ut)!=Qt||St&&no(new St)!=Zt)&&(no=function(e){var t=Z(e),o="[object Object]"==t?e.constructor:void 0,r=o?J(o):"";if(r)switch(r){case Jt:return Gt;case eo:return qt;case to:return Kt;case oo:return Qt;case ro:return Zt}return t});var ao=no;function lo(e){var t=-1,o=null==e?0:e.length;for(this.__data__=new S;++t<o;)this.add(e[t])}function io(e,t){for(var o=-1,r=null==e?0:e.length;++o<r;)if(t(e[o],o,e))return!0;return!1}function so(e,t){return e.has(t)}lo.prototype.add=lo.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},lo.prototype.has=function(e){return this.__data__.has(e)};function uo(e,t,o,r,n,a){var l=1&o,i=e.length,s=t.length;if(i!=s&&!(l&&s>i))return!1;var d=a.get(e),u=a.get(t);if(d&&u)return d==t&&u==e;var c=-1,p=!0,f=2&o?new lo:void 0;for(a.set(e,t),a.set(t,e);++c<i;){var h=e[c],v=t[c];if(r)var g=l?r(v,h,c,t,e,a):r(h,v,c,e,t,a);if(void 0!==g){if(g)continue;p=!1;break}if(f){if(!io(t,function(e,t){if(!so(f,t)&&(h===e||n(h,e,o,r,a)))return f.push(t)})){p=!1;break}}else if(h!==v&&!n(h,v,o,r,a)){p=!1;break}}return a.delete(e),a.delete(t),p}function co(e){var t=-1,o=Array(e.size);return e.forEach(function(e,r){o[++t]=[r,e]}),o}function po(e){var t=-1,o=Array(e.size);return e.forEach(function(e){o[++t]=e}),o}var fo=se?se.prototype:void 0,ho=fo?fo.valueOf:void 0;var vo=Object.prototype.hasOwnProperty;var go="[object Arguments]",bo="[object Array]",mo="[object Object]",wo=Object.prototype.hasOwnProperty;function yo(t,r,n,a,l,i){var s=F(t),d=F(r),u=s?bo:ao(t),c=d?bo:ao(r),f=(u=u==go?mo:u)==mo,h=(c=c==go?mo:c)==mo,v=u==c;if(v&&p(t)){if(!p(r))return!1;s=!0,f=!1}if(v&&!f)return i||(i=new M),s||oe(t)?uo(t,r,n,a,l,i):function(t,r,n,a,l,i,s){switch(n){case"[object DataView]":if(t.byteLength!=r.byteLength||t.byteOffset!=r.byteOffset)return!1;t=t.buffer,r=r.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=r.byteLength||!i(new o(t),new o(r)));case"[object Boolean]":case"[object Date]":case"[object Number]":return e(+t,+r);case"[object Error]":return t.name==r.name&&t.message==r.message;case"[object RegExp]":case"[object String]":return t==r+"";case"[object Map]":var d=co;case"[object Set]":var u=1&a;if(d||(d=po),t.size!=r.size&&!u)return!1;var c=s.get(t);if(c)return c==r;a|=2,s.set(t,r);var p=uo(d(t),d(r),a,l,i,s);return s.delete(t),p;case"[object Symbol]":if(ho)return ho.call(t)==ho.call(r)}return!1}(t,r,u,n,a,l,i);if(!(1&n)){var g=f&&wo.call(t,"__wrapped__"),b=h&&wo.call(r,"__wrapped__");if(g||b){var m=g?t.value():t,w=b?r.value():r;return i||(i=new M),l(m,w,n,a,i)}}return!!v&&(i||(i=new M),function(e,t,o,r,n,a){var l=1&o,i=Xt(e),s=i.length;if(s!=Xt(t).length&&!l)return!1;for(var d=s;d--;){var u=i[d];if(!(l?u in t:vo.call(t,u)))return!1}var c=a.get(e),p=a.get(t);if(c&&p)return c==t&&p==e;var f=!0;a.set(e,t),a.set(t,e);for(var h=l;++d<s;){var v=e[u=i[d]],g=t[u];if(r)var b=l?r(g,v,u,t,e,a):r(v,g,u,e,t,a);if(!(void 0===b?v===g||n(v,g,o,r,a):b)){f=!1;break}h||(h="constructor"==u)}if(f&&!h){var m=e.constructor,w=t.constructor;m==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof m&&m instanceof m&&"function"==typeof w&&w instanceof w||(f=!1)}return a.delete(e),a.delete(t),f}(t,r,n,a,l,i))}function xo(e,t,o,r,n){return e===t||(null==e||null==t||!L(e)&&!L(t)?e!=e&&t!=t:yo(e,t,o,r,xo,n))}function $o(e){return e==e&&!K(e)}function So(e,t){return function(o){return null!=o&&(o[e]===t&&(void 0!==t||e in Object(o)))}}function Co(e){var t=function(e){for(var t=zt(e),o=t.length;o--;){var r=t[o],n=e[r];t[o]=[r,n,$o(n)]}return t}(e);return 1==t.length&&t[0][2]?So(t[0][0],t[0][1]):function(o){return o===e||function(e,t,o,r){var n=o.length,a=n,l=!r;if(null==e)return!a;for(e=Object(e);n--;){var i=o[n];if(l&&i[2]?i[1]!==e[i[0]]:!(i[0]in e))return!1}for(;++n<a;){var s=(i=o[n])[0],d=e[s],u=i[1];if(l&&i[2]){if(void 0===d&&!(s in e))return!1}else{var c=new M;if(r)var p=r(d,u,s,e,t,c);if(!(void 0===p?xo(u,d,3,r,c):p))return!1}}return!0}(o,e,t)}}function Mo(e,t){return null!=e&&t in Object(e)}function zo(e,t){return null!=e&&function(e,t,o){for(var r=-1,n=(t=Rt(t,e)).length,a=!1;++r<n;){var l=Ft(t[r]);if(!(a=null!=e&&o(e,l)))break;e=e[l]}return a||++r!=n?a:!!(n=null==e?0:e.length)&&w(n)&&X(l,n)&&(F(e)||B(e))}(e,t,Mo)}function Oo(e){return Tt(e)?(t=Ft(e),function(e){return null==e?void 0:e[t]}):function(e){return function(t){return kt(t,e)}}(e);var t}function jo(e){return"function"==typeof e?e:null==e?ne:"object"==typeof e?F(e)?(t=e[0],o=e[1],Tt(t)&&$o(o)?So(Ft(t),o):function(e){var r=Dt(e,t);return void 0===r&&r===o?zo(e,t):xo(o,r,3)}):Co(e):Oo(e);var t,o}var To,Eo,Bo=(To=function(e,t){return e&&fe(e,t,zt)},function(e,t){if(null==e)return e;if(!_(e))return To(e,t);for(var o=e.length,r=Eo?o:-1,n=Object(e);(Eo?r--:++r<o)&&!1!==t(n[r],r,n););return e});function Ao(e,t){var o=-1,r=_(e)?Array(e.length):[];return Bo(e,function(e,n,a){r[++o]=t(e,n,a)}),r}var _o={height:"calc(var(--n-option-height) * 7.6)",paddingTiny:"4px 0",paddingSmall:"4px 0",paddingMedium:"4px 0",paddingLarge:"4px 0",paddingHuge:"4px 0",optionPaddingTiny:"0 12px",optionPaddingSmall:"0 12px",optionPaddingMedium:"0 12px",optionPaddingLarge:"0 12px",optionPaddingHuge:"0 12px",loadingSize:"18px"};function Po(e){const{borderRadius:t,popoverColor:o,textColor3:r,dividerColor:n,textColor2:a,primaryColorPressed:l,textColorDisabled:i,primaryColor:s,opacityDisabled:d,hoverColor:u,fontSizeTiny:c,fontSizeSmall:p,fontSizeMedium:f,fontSizeLarge:h,fontSizeHuge:v,heightTiny:g,heightSmall:b,heightMedium:m,heightLarge:w,heightHuge:y}=e;return Object.assign(Object.assign({},_o),{optionFontSizeTiny:c,optionFontSizeSmall:p,optionFontSizeMedium:f,optionFontSizeLarge:h,optionFontSizeHuge:v,optionHeightTiny:g,optionHeightSmall:b,optionHeightMedium:m,optionHeightLarge:w,optionHeightHuge:y,borderRadius:t,color:o,groupHeaderTextColor:r,actionDividerColor:n,optionTextColor:a,optionTextColorPressed:l,optionTextColorDisabled:i,optionTextColorActive:s,optionOpacityDisabled:d,optionCheckColor:s,optionColorPending:u,optionColorActive:"rgba(0, 0, 0, 0)",optionColorActivePending:u,actionTextColor:a,loadingColor:s})}var Wo=v({name:"InternalSelectMenu",common:n,peers:{Scrollbar:ce,Empty:W},self:Po}),{cubicBezierEaseIn:Ho,cubicBezierEaseOut:Ro}=i;function Fo({transformOrigin:e="inherit",duration:t=".2s",enterScale:o=".9",originalTransform:r="",originalTransition:n=""}={}){return[U("&.fade-in-scale-up-transition-leave-active",{transformOrigin:e,transition:`opacity ${t} ${Ho}, transform ${t} ${Ho} ${n&&`,${n}`}`}),U("&.fade-in-scale-up-transition-enter-active",{transformOrigin:e,transition:`opacity ${t} ${Ro}, transform ${t} ${Ro} ${n&&`,${n}`}`}),U("&.fade-in-scale-up-transition-enter-from, &.fade-in-scale-up-transition-leave-to",{opacity:0,transform:`${r} scale(${o})`}),U("&.fade-in-scale-up-transition-leave-from, &.fade-in-scale-up-transition-enter-to",{opacity:1,transform:`${r} scale(1)`})]}var ko={space:"6px",spaceArrow:"10px",arrowOffset:"10px",arrowOffsetVertical:"10px",arrowHeight:"6px",padding:"8px 14px"};function Do(e){const{boxShadow2:t,popoverColor:o,textColor2:r,borderRadius:n,fontSize:a,dividerColor:l}=e;return Object.assign(Object.assign({},ko),{fontSize:a,borderRadius:n,color:o,dividerColor:l,textColor:r,boxShadow:t})}var Io,Lo,No=v({name:"Popover",common:n,peers:{Scrollbar:ce},self:Do}),Xo={top:"bottom",bottom:"top",left:"right",right:"left"},Yo="var(--n-arrow-height) * 1.414",Vo=U([Y("popover","\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n position: relative;\n font-size: var(--n-font-size);\n color: var(--n-text-color);\n box-shadow: var(--n-box-shadow);\n word-break: break-word;\n ",[U(">",[Y("scrollbar","\n height: inherit;\n max-height: inherit;\n ")]),D("raw","\n background-color: var(--n-color);\n border-radius: var(--n-border-radius);\n ",[D("scrollable",[D("show-header-or-footer","padding: var(--n-padding);")])]),de("header","\n padding: var(--n-padding);\n border-bottom: 1px solid var(--n-divider-color);\n transition: border-color .3s var(--n-bezier);\n "),de("footer","\n padding: var(--n-padding);\n border-top: 1px solid var(--n-divider-color);\n transition: border-color .3s var(--n-bezier);\n "),pe("scrollable, show-header-or-footer",[de("content","\n padding: var(--n-padding);\n ")])]),Y("popover-shared","\n transform-origin: inherit;\n ",[Y("popover-arrow-wrapper","\n position: absolute;\n overflow: hidden;\n pointer-events: none;\n ",[Y("popover-arrow",`\n transition: background-color .3s var(--n-bezier);\n position: absolute;\n display: block;\n width: calc(${Yo});\n height: calc(${Yo});\n box-shadow: 0 0 8px 0 rgba(0, 0, 0, .12);\n transform: rotate(45deg);\n background-color: var(--n-color);\n pointer-events: all;\n `)]),U("&.popover-transition-enter-from, &.popover-transition-leave-to","\n opacity: 0;\n transform: scale(.85);\n "),U("&.popover-transition-enter-to, &.popover-transition-leave-from","\n transform: scale(1);\n opacity: 1;\n "),U("&.popover-transition-enter-active","\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier),\n opacity .15s var(--n-bezier-ease-out),\n transform .15s var(--n-bezier-ease-out);\n "),U("&.popover-transition-leave-active","\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier),\n opacity .15s var(--n-bezier-ease-in),\n transform .15s var(--n-bezier-ease-in);\n ")]),qo("top-start",`\n top: calc(${Yo} / -2);\n left: calc(${Uo("top-start")} - var(--v-offset-left));\n `),qo("top",`\n top: calc(${Yo} / -2);\n transform: translateX(calc(${Yo} / -2)) rotate(45deg);\n left: 50%;\n `),qo("top-end",`\n top: calc(${Yo} / -2);\n right: calc(${Uo("top-end")} + var(--v-offset-left));\n `),qo("bottom-start",`\n bottom: calc(${Yo} / -2);\n left: calc(${Uo("bottom-start")} - var(--v-offset-left));\n `),qo("bottom",`\n bottom: calc(${Yo} / -2);\n transform: translateX(calc(${Yo} / -2)) rotate(45deg);\n left: 50%;\n `),qo("bottom-end",`\n bottom: calc(${Yo} / -2);\n right: calc(${Uo("bottom-end")} + var(--v-offset-left));\n `),qo("left-start",`\n left: calc(${Yo} / -2);\n top: calc(${Uo("left-start")} - var(--v-offset-top));\n `),qo("left",`\n left: calc(${Yo} / -2);\n transform: translateY(calc(${Yo} / -2)) rotate(45deg);\n top: 50%;\n `),qo("left-end",`\n left: calc(${Yo} / -2);\n bottom: calc(${Uo("left-end")} + var(--v-offset-top));\n `),qo("right-start",`\n right: calc(${Yo} / -2);\n top: calc(${Uo("right-start")} - var(--v-offset-top));\n `),qo("right",`\n right: calc(${Yo} / -2);\n transform: translateY(calc(${Yo} / -2)) rotate(45deg);\n top: 50%;\n `),qo("right-end",`\n right: calc(${Yo} / -2);\n bottom: calc(${Uo("right-end")} + var(--v-offset-top));\n `),...(Io={top:["right-start","left-start"],right:["top-end","bottom-end"],bottom:["right-end","left-end"],left:["top-start","bottom-start"]},Lo=(e,t)=>{const o=["right","left"].includes(t),r=o?"width":"height";return e.map(e=>{const n="end"===e.split("-")[1],a=`calc((var(--v-target-${r}, 0px) - ${Yo}) / 2)`,l=Uo(e);return U(`[v-placement="${e}"] >`,[Y("popover-shared",[pe("center-arrow",[Y("popover-arrow",`${t}: calc(max(${a}, ${l}) ${n?"+":"-"} var(--v-offset-${o?"left":"top"}));`)])])])})},(F(Io)?ee:Ao)(Io,jo(Lo)))]);function Uo(e){return["top","bottom"].includes(e.split("-")[0])?"var(--n-arrow-offset)":"var(--n-arrow-offset-vertical)"}function qo(e,t){const o=e.split("-")[0],r=["top","bottom"].includes(o)?"height: var(--n-space-arrow);":"width: var(--n-space-arrow);";return U(`[v-placement="${e}"] >`,[Y("popover-shared",`\n margin-${Xo[o]}: var(--n-space);\n `,[pe("show-arrow",`\n margin-${Xo[o]}: var(--n-space-arrow);\n `),pe("overlap","\n margin: 0;\n "),H("popover-arrow-wrapper",`\n right: 0;\n left: 0;\n top: 0;\n bottom: 0;\n ${o}: 100%;\n ${Xo[o]}: auto;\n ${r}\n `,[Y("popover-arrow",t)])])])}var Ko=Object.assign(Object.assign({},g.props),{to:Ze.propTo,show:Boolean,trigger:String,showArrow:Boolean,delay:Number,duration:Number,raw:Boolean,arrowPointToCenter:Boolean,arrowClass:String,arrowStyle:[String,Object],arrowWrapperClass:String,arrowWrapperStyle:[String,Object],displayDirective:String,x:Number,y:Number,flip:Boolean,overlap:Boolean,placement:String,width:[Number,String],keepAliveOnHover:Boolean,scrollable:Boolean,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],footerClass:String,footerStyle:[Object,String],internalDeactivateImmediately:Boolean,animated:Boolean,onClickoutside:Function,internalTrapFocus:Boolean,internalOnAfterLeave:Function,minWidth:Number,maxWidth:Number});function Qo({arrowClass:e,arrowStyle:t,arrowWrapperClass:o,arrowWrapperStyle:r,clsPrefix:n}){return ye("div",{key:"__popover-arrow__",style:r,class:[`${n}-popover-arrow-wrapper`,o]},ye("div",{class:[`${n}-popover-arrow`,e],style:t}))}var Zo=ve({name:"PopoverBody",inheritAttrs:!1,props:Ko,setup(e,{slots:t,attrs:o}){const{namespaceRef:r,mergedClsPrefixRef:n,inlineThemeDisabled:l,mergedRtlRef:i}=V(e),s=g("Popover","-popover",Vo,No,e,n),d=u("Popover",i,n),c=Ae(null),p=xe("NPopover"),f=Ae(null),h=Ae(e.show),v=Ae(!1);$e(()=>{const{show:t}=e;!t||(void 0===gt&&(gt=navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),gt)||e.internalDeactivateImmediately||(v.value=!0)});const m=Me(()=>{const{trigger:t,onClickoutside:o}=e,r=[],{positionManuallyRef:{value:n}}=p;return n||("click"!==t||o||r.push([he,z,void 0,{capture:!0}]),"hover"===t&&r.push([at,M])),o&&r.push([he,z,void 0,{capture:!0}]),("show"===e.displayDirective||e.animated&&v.value)&&r.push([Oe,e.show]),r}),w=Me(()=>{const{common:{cubicBezierEaseInOut:e,cubicBezierEaseIn:t,cubicBezierEaseOut:o},self:{space:r,spaceArrow:n,padding:a,fontSize:l,textColor:i,dividerColor:d,color:u,boxShadow:c,borderRadius:p,arrowHeight:f,arrowOffset:h,arrowOffsetVertical:v}}=s.value;return{"--n-box-shadow":c,"--n-bezier":e,"--n-bezier-ease-in":t,"--n-bezier-ease-out":o,"--n-font-size":l,"--n-text-color":i,"--n-color":u,"--n-divider-color":d,"--n-border-radius":p,"--n-arrow-height":f,"--n-arrow-offset":h,"--n-arrow-offset-vertical":v,"--n-padding":a,"--n-space":r,"--n-space-arrow":n}}),y=Me(()=>{const t="trigger"===e.width?void 0:Q(e.width),o=[];t&&o.push({width:t});const{maxWidth:r,minWidth:n}=e;return r&&o.push({maxWidth:Q(r)}),n&&o.push({maxWidth:Q(n)}),l||o.push(w.value),o}),x=l?q("popover",void 0,w,e):void 0;function $(t){"hover"===e.trigger&&e.keepAliveOnHover&&e.show&&p.handleMouseEnter(t)}function S(t){"hover"===e.trigger&&e.keepAliveOnHover&&p.handleMouseLeave(t)}function M(t){"hover"!==e.trigger||O().contains(te(t))||p.handleMouseMoveOutside(t)}function z(t){("click"===e.trigger&&!O().contains(te(t))||e.onClickoutside)&&p.handleClickOutside(t)}function O(){return p.getTriggerElement()}return p.setBodyInstance({syncPosition:function(){var e;null===(e=c.value)||void 0===e||e.syncPosition()}}),He(()=>{p.setBodyInstance(null)}),Ce(ze(e,"show"),t=>{e.animated||(h.value=!!t)}),me(C,f),me(re,null),me(j,null),{displayed:v,namespace:r,isMounted:p.isMountedRef,zIndex:p.zIndexRef,followerRef:c,adjustedTo:Ze(e),followerEnabled:h,renderContentNode:function(){if(null==x||x.onRender(),!("show"===e.displayDirective||e.show||e.animated&&v.value))return null;let r;const l=p.internalRenderBodyRef.value,{value:i}=n;if(l)r=l([`${i}-popover-shared`,(null==d?void 0:d.value)&&`${i}-popover--rtl`,null==x?void 0:x.themeClass.value,e.overlap&&`${i}-popover-shared--overlap`,e.showArrow&&`${i}-popover-shared--show-arrow`,e.arrowPointToCenter&&`${i}-popover-shared--center-arrow`],f,y.value,$,S);else{const{value:n}=p.extraClassRef,{internalTrapFocus:l}=e,u=!I(t.header)||!I(t.footer),c=()=>{var o,r;const n=u?ye(je,null,a(t.header,t=>t?ye("div",{class:[`${i}-popover__header`,e.headerClass],style:e.headerStyle},t):null),a(t.default,o=>o?ye("div",{class:[`${i}-popover__content`,e.contentClass],style:e.contentStyle},t):null),a(t.footer,t=>t?ye("div",{class:[`${i}-popover__footer`,e.footerClass],style:e.footerStyle},t):null)):e.scrollable?null===(o=t.default)||void 0===o?void 0:o.call(t):ye("div",{class:[`${i}-popover__content`,e.contentClass],style:e.contentStyle},t);return[e.scrollable?ye(k,{themeOverrides:s.value.peerOverrides.Scrollbar,theme:s.value.peers.Scrollbar,contentClass:u?void 0:`${i}-popover__content ${null!==(r=e.contentClass)&&void 0!==r?r:""}`,contentStyle:u?void 0:e.contentStyle},{default:()=>n}):n,e.showArrow?Qo({arrowClass:e.arrowClass,arrowStyle:e.arrowStyle,arrowWrapperClass:e.arrowWrapperClass,arrowWrapperStyle:e.arrowWrapperStyle,clsPrefix:i}):null]};r=ye("div",be({class:[`${i}-popover`,`${i}-popover-shared`,(null==d?void 0:d.value)&&`${i}-popover--rtl`,null==x?void 0:x.themeClass.value,n.map(e=>`${i}-${e}`),{[`${i}-popover--scrollable`]:e.scrollable,[`${i}-popover--show-header-or-footer`]:u,[`${i}-popover--raw`]:e.raw,[`${i}-popover-shared--overlap`]:e.overlap,[`${i}-popover-shared--show-arrow`]:e.showArrow,[`${i}-popover-shared--center-arrow`]:e.arrowPointToCenter}],ref:f,style:y.value,onKeydown:p.handleKeydown,onMouseenter:$,onMouseleave:S},o),l?ye(b,{active:e.show,autoFocus:!0},{default:c}):c())}return _e(r,m.value)}}},render(){return ye(mt,{ref:"followerRef",zIndex:this.zIndex,show:this.show,enabled:this.followerEnabled,to:this.adjustedTo,x:this.x,y:this.y,flip:this.flip,placement:this.placement,containerClass:this.namespace,overlap:this.overlap,width:"trigger"===this.width?"target":void 0,teleportDisabled:this.adjustedTo===Ze.tdkey},{default:()=>this.animated?ye(Be,{name:"popover-transition",appear:this.isMounted,onEnter:()=>{this.followerEnabled=!0},onAfterLeave:()=>{var e;null===(e=this.internalOnAfterLeave)||void 0===e||e.call(this),this.followerEnabled=!1,this.displayed=!1}},{default:this.renderContentNode}):this.renderContentNode()})}}),Go=Object.keys(Ko),Jo={focus:["onFocus","onBlur"],click:["onClick"],hover:["onMouseenter","onMouseleave"],manual:[],nested:["onFocus","onBlur","onMouseenter","onMouseleave","onClick"]};var er={show:{type:Boolean,default:void 0},defaultShow:Boolean,showArrow:{type:Boolean,default:!0},trigger:{type:String,default:"hover"},delay:{type:Number,default:100},duration:{type:Number,default:100},raw:Boolean,placement:{type:String,default:"top"},x:Number,y:Number,arrowPointToCenter:Boolean,disabled:Boolean,getDisabled:Function,displayDirective:{type:String,default:"if"},arrowClass:String,arrowStyle:[String,Object],arrowWrapperClass:String,arrowWrapperStyle:[String,Object],flip:{type:Boolean,default:!0},animated:{type:Boolean,default:!0},width:{type:[Number,String],default:void 0},overlap:Boolean,keepAliveOnHover:{type:Boolean,default:!0},zIndex:Number,to:Ze.propTo,scrollable:Boolean,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],footerClass:String,footerStyle:[Object,String],onClickoutside:Function,"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],internalDeactivateImmediately:Boolean,internalSyncTargetWithParent:Boolean,internalInheritedEventHandlers:{type:Array,default:()=>[]},internalTrapFocus:Boolean,internalExtraClass:{type:Array,default:()=>[]},onShow:[Function,Array],onHide:[Function,Array],arrow:{type:Boolean,default:void 0},minWidth:Number,maxWidth:Number},tr=ve({name:"Popover",inheritAttrs:!1,props:Object.assign(Object.assign(Object.assign({},g.props),er),{internalOnAfterLeave:Function,internalRenderBody:Function}),slots:Object,__popover__:!0,setup(e){const o=P(),r=Ae(null),n=Me(()=>e.show),a=Ae(e.defaultShow),l=y(n,a),i=t(()=>!e.disabled&&l.value),s=()=>{if(e.disabled)return!0;const{getDisabled:t}=e;return!!(null==t?void 0:t())},d=()=>!s()&&l.value,u=E(e,["arrow","showArrow"]),c=Me(()=>!e.overlap&&u.value);let p=null;const f=Ae(null),h=Ae(null),v=t(()=>void 0!==e.x&&void 0!==e.y);function g(t){const{"onUpdate:show":o,onUpdateShow:r,onShow:n,onHide:l}=e;a.value=t,o&&$(o,t),r&&$(r,t),t&&n&&$(n,!0),t&&l&&$(l,!1)}function b(){const{value:e}=f;e&&(window.clearTimeout(e),f.value=null)}function m(){const{value:e}=h;e&&(window.clearTimeout(e),h.value=null)}function w(){const t=s();if("hover"===e.trigger&&!t){if(m(),null!==f.value)return;if(d())return;const t=()=>{g(!0),f.value=null},{delay:o}=e;0===o?t():f.value=window.setTimeout(t,o)}}function x(){const t=s();if("hover"===e.trigger&&!t){if(b(),null!==h.value)return;if(!d())return;const t=()=>{g(!1),h.value=null},{duration:o}=e;0===o?t():h.value=window.setTimeout(t,o)}}return me("NPopover",{getTriggerElement:function(){var e;return null===(e=r.value)||void 0===e?void 0:e.targetRef},handleKeydown:function(t){e.internalTrapFocus&&"Escape"===t.key&&(b(),m(),g(!1))},handleMouseEnter:w,handleMouseLeave:x,handleClickOutside:function(t){var o;d()&&("click"===e.trigger&&(b(),m(),g(!1)),null===(o=e.onClickoutside)||void 0===o||o.call(e,t))},handleMouseMoveOutside:function(){x()},setBodyInstance:function(e){p=e},positionManuallyRef:v,isMountedRef:o,zIndexRef:ze(e,"zIndex"),extraClassRef:ze(e,"internalExtraClass"),internalRenderBodyRef:ze(e,"internalRenderBody")}),$e(()=>{l.value&&s()&&g(!1)}),{binderInstRef:r,positionManually:v,mergedShowConsideringDisabledProp:i,uncontrolledShow:a,mergedShowArrow:c,getMergedShow:d,setShow:function(e){a.value=e},handleClick:function(){"click"!==e.trigger||s()||(b(),m(),g(!d()))},handleMouseEnter:w,handleMouseLeave:x,handleFocus:function(){const t=s();if("focus"===e.trigger&&!t){if(d())return;g(!0)}},handleBlur:function(){const t=s();if("focus"===e.trigger&&!t){if(!d())return;g(!1)}},syncPosition:function(){p&&p.syncPosition()}}},render(){var e;const{positionManually:t,$slots:o}=this;let r,n=!1;if(!t&&(r=function(e,t="default",o){const r=e[t];if(!r)return m("getFirstSlotVNode",`slot[${t}] is empty`),null;const n=wt(r(o));return 1===n.length?n[0]:(m("getFirstSlotVNode",`slot[${t}] should have exactly one child`),null)}(o,"trigger"),r)){r=We(r),r=r.type===Pe?ye("span",[r]):r;const o={onClick:this.handleClick,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onFocus:this.handleFocus,onBlur:this.handleBlur};if(null===(e=r.type)||void 0===e?void 0:e.__popover__)n=!0,r.props||(r.props={internalSyncTargetWithParent:!0,internalInheritedEventHandlers:[]}),r.props.internalSyncTargetWithParent=!0,r.props.internalInheritedEventHandlers?r.props.internalInheritedEventHandlers=[o,...r.props.internalInheritedEventHandlers]:r.props.internalInheritedEventHandlers=[o];else{const{internalInheritedEventHandlers:e}=this,n=[o,...e];a=r,l=e?"nested":t?"manual":this.trigger,i={onBlur:e=>{n.forEach(t=>{t.onBlur(e)})},onFocus:e=>{n.forEach(t=>{t.onFocus(e)})},onClick:e=>{n.forEach(t=>{t.onClick(e)})},onMouseenter:e=>{n.forEach(t=>{t.onMouseenter(e)})},onMouseleave:e=>{n.forEach(t=>{t.onMouseleave(e)})}},Jo[l].forEach(e=>{a.props?a.props=Object.assign({},a.props):a.props={};const t=a.props[e],o=i[e];a.props[e]=t?(...e)=>{t(...e),o(...e)}:o})}}var a,l,i;return ye(ot,{ref:"binderInstRef",syncTarget:!n,syncTargetWithParent:this.internalSyncTargetWithParent},{default:()=>{this.mergedShowConsideringDisabledProp;const e=this.getMergedShow();return[this.internalTrapFocus&&e?_e(ye("div",{style:{position:"fixed",top:0,right:0,bottom:0,left:0}}),[[x,{enabled:e,zIndex:this.zIndex}]]):null,t?null:ye(rt,null,{default:()=>r}),ye(Zo,xt(this.$props,Go,Object.assign(Object.assign({},this.$attrs),{showArrow:this.mergedShowArrow,show:e})),{default:()=>{var e,t;return null===(t=(e=this.$slots).default)||void 0===t?void 0:t.call(e)},header:()=>{var e,t;return null===(t=(e=this.$slots).header)||void 0===t?void 0:t.call(e)},footer:()=>{var e,t;return null===(t=(e=this.$slots).footer)||void 0===t?void 0:t.call(e)}})]}})}}),or={paddingSingle:"0 26px 0 12px",paddingMultiple:"3px 26px 0 12px",clearSize:"16px",arrowSize:"16px"};var rr=v({name:"InternalSelection",common:n,peers:{Popover:No},self:function(e){const{borderRadius:t,textColor2:o,textColorDisabled:r,inputColor:n,inputColorDisabled:a,primaryColor:l,primaryColorHover:i,warningColor:s,warningColorHover:d,errorColor:u,errorColorHover:c,borderColor:p,iconColor:f,iconColorDisabled:h,clearColor:v,clearColorHover:g,clearColorPressed:b,placeholderColor:m,placeholderColorDisabled:w,fontSizeTiny:y,fontSizeSmall:x,fontSizeMedium:$,fontSizeLarge:S,heightTiny:C,heightSmall:M,heightMedium:z,heightLarge:O,fontWeight:j}=e;return Object.assign(Object.assign({},or),{fontSizeTiny:y,fontSizeSmall:x,fontSizeMedium:$,fontSizeLarge:S,heightTiny:C,heightSmall:M,heightMedium:z,heightLarge:O,borderRadius:t,fontWeight:j,textColor:o,textColorDisabled:r,placeholderColor:m,placeholderColorDisabled:w,color:n,colorDisabled:a,colorActive:n,border:`1px solid ${p}`,borderHover:`1px solid ${i}`,borderActive:`1px solid ${l}`,borderFocus:`1px solid ${i}`,boxShadowHover:"none",boxShadowActive:`0 0 0 2px ${R(l,{alpha:.2})}`,boxShadowFocus:`0 0 0 2px ${R(l,{alpha:.2})}`,caretColor:l,arrowColor:f,arrowColorDisabled:h,loadingColor:l,borderWarning:`1px solid ${s}`,borderHoverWarning:`1px solid ${d}`,borderActiveWarning:`1px solid ${s}`,borderFocusWarning:`1px solid ${d}`,boxShadowHoverWarning:"none",boxShadowActiveWarning:`0 0 0 2px ${R(s,{alpha:.2})}`,boxShadowFocusWarning:`0 0 0 2px ${R(s,{alpha:.2})}`,colorActiveWarning:n,caretColorWarning:s,borderError:`1px solid ${u}`,borderHoverError:`1px solid ${c}`,borderActiveError:`1px solid ${u}`,borderFocusError:`1px solid ${c}`,boxShadowHoverError:"none",boxShadowActiveError:`0 0 0 2px ${R(u,{alpha:.2})}`,boxShadowFocusError:`0 0 0 2px ${R(u,{alpha:.2})}`,colorActiveError:n,caretColorError:u,clearColor:v,clearColorHover:g,clearColorPressed:b})}}),nr={paddingTiny:"0 8px",paddingSmall:"0 10px",paddingMedium:"0 12px",paddingLarge:"0 14px",clearSize:"16px"};var ar=v({name:"Input",common:n,peers:{Scrollbar:ce},self:function(e){const{textColor2:t,textColor3:o,textColorDisabled:r,primaryColor:n,primaryColorHover:a,inputColor:l,inputColorDisabled:i,borderColor:s,warningColor:d,warningColorHover:u,errorColor:c,errorColorHover:p,borderRadius:f,lineHeight:h,fontSizeTiny:v,fontSizeSmall:g,fontSizeMedium:b,fontSizeLarge:m,heightTiny:w,heightSmall:y,heightMedium:x,heightLarge:$,actionColor:S,clearColor:C,clearColorHover:M,clearColorPressed:z,placeholderColor:O,placeholderColorDisabled:j,iconColor:T,iconColorDisabled:E,iconColorHover:B,iconColorPressed:A,fontWeight:_}=e;return Object.assign(Object.assign({},nr),{fontWeight:_,countTextColorDisabled:r,countTextColor:o,heightTiny:w,heightSmall:y,heightMedium:x,heightLarge:$,fontSizeTiny:v,fontSizeSmall:g,fontSizeMedium:b,fontSizeLarge:m,lineHeight:h,lineHeightTextarea:h,borderRadius:f,iconSize:"16px",groupLabelColor:S,groupLabelTextColor:t,textColor:t,textColorDisabled:r,textDecorationColor:t,caretColor:n,placeholderColor:O,placeholderColorDisabled:j,color:l,colorDisabled:i,colorFocus:l,groupLabelBorder:`1px solid ${s}`,border:`1px solid ${s}`,borderHover:`1px solid ${a}`,borderDisabled:`1px solid ${s}`,borderFocus:`1px solid ${a}`,boxShadowFocus:`0 0 0 2px ${R(n,{alpha:.2})}`,loadingColor:n,loadingColorWarning:d,borderWarning:`1px solid ${d}`,borderHoverWarning:`1px solid ${u}`,colorFocusWarning:l,borderFocusWarning:`1px solid ${u}`,boxShadowFocusWarning:`0 0 0 2px ${R(d,{alpha:.2})}`,caretColorWarning:d,loadingColorError:c,borderError:`1px solid ${c}`,borderHoverError:`1px solid ${p}`,colorFocusError:l,borderFocusError:`1px solid ${p}`,boxShadowFocusError:`0 0 0 2px ${R(c,{alpha:.2})}`,caretColorError:c,clearColor:C,clearColorHover:M,clearColorPressed:z,iconColor:T,iconColorDisabled:E,iconColorHover:B,iconColorPressed:A,suffixTextColor:t})}});function lr(e){const{boxShadow2:t}=e;return{menuBoxShadow:t}}var ir=v({name:"Select",common:n,peers:{InternalSelection:rr,InternalSelectMenu:Wo},self:lr}),sr=A("n-message-api"),dr=A("n-message-provider");function ur(){const e=xe(sr,null);return null===e&&l("use-message","No outer <n-message-provider /> founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),e}export{qe as A,mt as C,ot as D,rt as E,Ie as M,Ve as N,Ze as O,De as P,wt as S,it as T,Po as _,lr as a,xt as b,rr as c,er as d,Qo as f,Wo as g,Fo as h,ir as i,Ue as j,Ke as k,or as l,Do as m,sr as n,ar as o,No as p,dr as r,nr as s,ur as t,tr as u,Dt as v,lt as w,yt as x,$t as y};
@@ -1 +1 @@
1
- import{F as e,I as t,It as n,Jt as r,N as o,Nt as i,Qt as a,Rt as s,Tt as l,Ut as d,Wt as c,Zt as u,gn as h,gt as m,hn as v,ht as b,jt as f,kt as p,qt as g,vn as w,w as y,y as z,yn as $,zt as x}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as S,F as k,G as C,H as E,M as B,N as F,Q as M,V as R,Z as H,b as O,dt as A,f as T,l as W,st as D,tt as N,z as P}from"./vue-vendor-BqZbbXHA.js";import{n as U,t as j}from"./use-lock-html-scroll-DXIqmUW4.js";import{J as L}from"./index-BFInlZGI.js";var I=S({name:"NDrawerContent",inheritAttrs:!1,props:{blockScroll:Boolean,show:{type:Boolean,default:void 0},displayDirective:{type:String,required:!0},placement:{type:String,required:!0},contentClass:String,contentStyle:[Object,String],nativeScrollbar:{type:Boolean,required:!0},scrollbarProps:Object,trapFocus:{type:Boolean,default:!0},autoFocus:{type:Boolean,default:!0},showMask:{type:[Boolean,String],required:!0},maxWidth:Number,maxHeight:Number,minWidth:Number,minHeight:Number,resizable:Boolean,onClickoutside:Function,onAfterLeave:Function,onAfterEnter:Function,onEsc:Function},setup(e){const n=D(!!e.show),o=D(null),i=F(r);let a=0,s="",l=null;const u=D(!1),h=D(!1),v=O(()=>"top"===e.placement||"bottom"===e.placement),{mergedClsPrefixRef:b,mergedRtlRef:f}=m(e),p=t("Drawer",f,b),w=S,{doUpdateHeight:y,doUpdateWidth:z}=i;function $(t){var n,r;if(h.value)if(v.value){let r=(null===(n=o.value)||void 0===n?void 0:n.offsetHeight)||0;const i=a-t.clientY;r+="bottom"===e.placement?i:-i,r=(t=>{const{maxHeight:n}=e;if(n&&t>n)return n;const{minHeight:r}=e;return r&&t<r?r:t})(r),y(r),a=t.clientY}else{let n=(null===(r=o.value)||void 0===r?void 0:r.offsetWidth)||0;const i=a-t.clientX;n+="right"===e.placement?i:-i,n=(t=>{const{maxWidth:n}=e;if(n&&t>n)return n;const{minWidth:r}=e;return r&&t<r?r:t})(n),z(n),a=t.clientX}}function S(){h.value&&(a=0,h.value=!1,document.body.style.cursor=s,document.body.removeEventListener("mousemove",$),document.body.removeEventListener("mouseup",S),document.body.removeEventListener("mouseleave",w))}M(()=>{e.show&&(n.value=!0)}),H(()=>e.show,e=>{e||S()}),P(()=>{S()});const k=O(()=>{const{show:t}=e,n=[[T,t]];return e.showMask||n.push([x,e.onClickoutside,void 0,{capture:!0}]),n});return j(O(()=>e.blockScroll&&n.value)),C(g,o),C(d,null),C(c,null),{bodyRef:o,rtlEnabled:p,mergedClsPrefix:i.mergedClsPrefixRef,isMounted:i.isMountedRef,mergedTheme:i.mergedThemeRef,displayed:n,transitionName:O(()=>({right:"slide-in-from-right-transition",left:"slide-in-from-left-transition",top:"slide-in-from-top-transition",bottom:"slide-in-from-bottom-transition"}[e.placement])),handleAfterLeave:function(){var t;n.value=!1,null===(t=e.onAfterLeave)||void 0===t||t.call(e)},bodyDirectives:k,handleMousedownResizeTrigger:e=>{h.value=!0,a=v.value?e.clientY:e.clientX,s=document.body.style.cursor,document.body.style.cursor=v.value?"ns-resize":"ew-resize",document.body.addEventListener("mousemove",$),document.body.addEventListener("mouseleave",w),document.body.addEventListener("mouseup",S)},handleMouseenterResizeTrigger:()=>{null!==l&&(window.clearTimeout(l),l=null),h.value?u.value=!0:l=window.setTimeout(()=>{u.value=!0},300)},handleMouseleaveResizeTrigger:()=>{null!==l&&(window.clearTimeout(l),l=null),u.value=!1},isDragging:h,isHoverOnResizeTrigger:u}},render(){const{$slots:e,mergedClsPrefix:t}=this;return"show"===this.displayDirective||this.displayed||this.show?N(B("div",{role:"none"},B(i,{disabled:!this.showMask||!this.trapFocus,active:this.show,autoFocus:this.autoFocus,onEsc:this.onEsc},{default:()=>B(W,{name:this.transitionName,appear:this.isMounted,onAfterEnter:this.onAfterEnter,onAfterLeave:this.handleAfterLeave},{default:()=>N(B("div",k(this.$attrs,{role:"dialog",ref:"bodyRef","aria-modal":"true",class:[`${t}-drawer`,this.rtlEnabled&&`${t}-drawer--rtl`,`${t}-drawer--${this.placement}-placement`,this.isDragging&&`${t}-drawer--unselectable`,this.nativeScrollbar&&`${t}-drawer--native-scrollbar`]}),[this.resizable?B("div",{class:[`${t}-drawer__resize-trigger`,(this.isDragging||this.isHoverOnResizeTrigger)&&`${t}-drawer__resize-trigger--hover`],onMouseenter:this.handleMouseenterResizeTrigger,onMouseleave:this.handleMouseleaveResizeTrigger,onMousedown:this.handleMousedownResizeTrigger}):null,this.nativeScrollbar?B("div",{class:[`${t}-drawer-content-wrapper`,this.contentClass],style:this.contentStyle,role:"none"},e):B(z,Object.assign({},this.scrollbarProps,{contentStyle:this.contentStyle,contentClass:[`${t}-drawer-content-wrapper`,this.contentClass],theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar}),e)]),this.bodyDirectives)})})),[[T,"if"===this.displayDirective||this.displayed||this.show]]):null}}),{cubicBezierEaseIn:X,cubicBezierEaseOut:Y}=e;var{cubicBezierEaseIn:_,cubicBezierEaseOut:q}=e;var{cubicBezierEaseIn:V,cubicBezierEaseOut:J}=e;var{cubicBezierEaseIn:Q,cubicBezierEaseOut:Z}=e;var G=v([h("drawer","\n word-break: break-word;\n line-height: var(--n-line-height);\n position: absolute;\n pointer-events: all;\n box-shadow: var(--n-box-shadow);\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n background-color: var(--n-color);\n color: var(--n-text-color);\n box-sizing: border-box;\n ",[function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-right"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${V}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${J}`}),v(`&.${n}-transition-enter-to`,{transform:"translateX(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateX(100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateX(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateX(100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-left"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${_}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${q}`}),v(`&.${n}-transition-enter-to`,{transform:"translateX(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateX(-100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateX(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateX(-100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-top"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${Q}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${Z}`}),v(`&.${n}-transition-enter-to`,{transform:"translateY(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateY(-100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateY(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateY(-100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-bottom"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${X}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${Y}`}),v(`&.${n}-transition-enter-to`,{transform:"translateY(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateY(100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateY(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateY(100%)"})]}(),$("unselectable","\n user-select: none; \n -webkit-user-select: none;\n "),$("native-scrollbar",[h("drawer-content-wrapper","\n overflow: auto;\n height: 100%;\n ")]),w("resize-trigger","\n position: absolute;\n background-color: #0000;\n transition: background-color .3s var(--n-bezier);\n ",[$("hover","\n background-color: var(--n-resize-trigger-color-hover);\n ")]),h("drawer-content-wrapper","\n box-sizing: border-box;\n "),h("drawer-content","\n height: 100%;\n display: flex;\n flex-direction: column;\n ",[$("native-scrollbar",[h("drawer-body-content-wrapper","\n height: 100%;\n overflow: auto;\n ")]),h("drawer-body","\n flex: 1 0 0;\n overflow: hidden;\n "),h("drawer-body-content-wrapper","\n box-sizing: border-box;\n padding: var(--n-body-padding);\n "),h("drawer-header","\n font-weight: var(--n-title-font-weight);\n line-height: 1;\n font-size: var(--n-title-font-size);\n color: var(--n-title-text-color);\n padding: var(--n-header-padding);\n transition: border .3s var(--n-bezier);\n border-bottom: 1px solid var(--n-divider-color);\n border-bottom: var(--n-header-border-bottom);\n display: flex;\n justify-content: space-between;\n align-items: center;\n ",[w("main","\n flex: 1;\n "),w("close","\n margin-left: 6px;\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n ")]),h("drawer-footer","\n display: flex;\n justify-content: flex-end;\n border-top: var(--n-footer-border-top);\n transition: border .3s var(--n-bezier);\n padding: var(--n-footer-padding);\n ")]),$("right-placement","\n top: 0;\n bottom: 0;\n right: 0;\n border-top-left-radius: var(--n-border-radius);\n border-bottom-left-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 3px;\n height: 100%;\n top: 0;\n left: 0;\n transform: translateX(-1.5px);\n cursor: ew-resize;\n ")]),$("left-placement","\n top: 0;\n bottom: 0;\n left: 0;\n border-top-right-radius: var(--n-border-radius);\n border-bottom-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 3px;\n height: 100%;\n top: 0;\n right: 0;\n transform: translateX(1.5px);\n cursor: ew-resize;\n ")]),$("top-placement","\n top: 0;\n left: 0;\n right: 0;\n border-bottom-left-radius: var(--n-border-radius);\n border-bottom-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 100%;\n height: 3px;\n bottom: 0;\n left: 0;\n transform: translateY(1.5px);\n cursor: ns-resize;\n ")]),$("bottom-placement","\n left: 0;\n bottom: 0;\n right: 0;\n border-top-left-radius: var(--n-border-radius);\n border-top-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 100%;\n height: 3px;\n top: 0;\n left: 0;\n transform: translateY(-1.5px);\n cursor: ns-resize;\n ")])]),v("body",[v(">",[h("drawer-container","\n position: fixed;\n ")])]),h("drawer-container","\n position: relative;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n ",[v("> *","\n pointer-events: all;\n ")]),h("drawer-mask","\n background-color: rgba(0, 0, 0, .3);\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n ",[$("invisible","\n background-color: rgba(0, 0, 0, 0)\n "),y({enterDuration:"0.2s",leaveDuration:"0.2s",enterCubicBezier:"var(--n-bezier-in)",leaveCubicBezier:"var(--n-bezier-out)"})])]),K=S({name:"Drawer",inheritAttrs:!1,props:Object.assign(Object.assign({},o.props),{show:Boolean,width:[Number,String],height:[Number,String],placement:{type:String,default:"right"},maskClosable:{type:Boolean,default:!0},showMask:{type:[Boolean,String],default:!0},to:[String,Object],displayDirective:{type:String,default:"if"},nativeScrollbar:{type:Boolean,default:!0},zIndex:Number,onMaskClick:Function,scrollbarProps:Object,contentClass:String,contentStyle:[Object,String],trapFocus:{type:Boolean,default:!0},onEsc:Function,autoFocus:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},blockScroll:{type:Boolean,default:!0},maxWidth:Number,maxHeight:Number,minWidth:Number,minHeight:Number,resizable:Boolean,defaultWidth:{type:[Number,String],default:251},defaultHeight:{type:[Number,String],default:251},onUpdateWidth:[Function,Array],onUpdateHeight:[Function,Array],"onUpdate:width":[Function,Array],"onUpdate:height":[Function,Array],"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],onAfterEnter:Function,onAfterLeave:Function,drawerStyle:[String,Object],drawerClass:String,target:null,onShow:Function,onHide:Function}),setup(e){const{mergedClsPrefixRef:t,namespaceRef:n,inlineThemeDisabled:i}=m(e),s=u(),d=o("Drawer","-drawer",G,L,e,t),c=D(e.defaultWidth),h=D(e.defaultHeight),v=a(A(e,"width"),c),g=a(A(e,"height"),h),w=O(()=>{const{placement:t}=e;return"top"===t||"bottom"===t?"":f(v.value)}),y=O(()=>{const{placement:t}=e;return"left"===t||"right"===t?"":f(g.value)}),z=O(()=>[{width:w.value,height:y.value},e.drawerStyle||""]);function $(t){const{onMaskClick:n,maskClosable:r}=e;r&&S(!1),n&&n(t)}const x=U();function S(t){const{onHide:n,onUpdateShow:r,"onUpdate:show":o}=e;r&&l(r,t),o&&l(o,t),n&&!t&&l(n,t)}C(r,{isMountedRef:s,mergedThemeRef:d,mergedClsPrefixRef:t,doUpdateShow:S,doUpdateHeight:t=>{const{onUpdateHeight:n,"onUpdate:width":r}=e;n&&l(n,t),r&&l(r,t),h.value=t},doUpdateWidth:t=>{const{onUpdateWidth:n,"onUpdate:width":r}=e;n&&l(n,t),r&&l(r,t),c.value=t}});const k=O(()=>{const{common:{cubicBezierEaseInOut:e,cubicBezierEaseIn:t,cubicBezierEaseOut:n},self:{color:r,textColor:o,boxShadow:i,lineHeight:a,headerPadding:s,footerPadding:l,borderRadius:c,bodyPadding:u,titleFontSize:h,titleTextColor:m,titleFontWeight:v,headerBorderBottom:b,footerBorderTop:f,closeIconColor:p,closeIconColorHover:g,closeIconColorPressed:w,closeColorHover:y,closeColorPressed:z,closeIconSize:$,closeSize:x,closeBorderRadius:S,resizableTriggerColorHover:k}}=d.value;return{"--n-line-height":a,"--n-color":r,"--n-border-radius":c,"--n-text-color":o,"--n-box-shadow":i,"--n-bezier":e,"--n-bezier-out":n,"--n-bezier-in":t,"--n-header-padding":s,"--n-body-padding":u,"--n-footer-padding":l,"--n-title-text-color":m,"--n-title-font-size":h,"--n-title-font-weight":v,"--n-header-border-bottom":b,"--n-footer-border-top":f,"--n-close-icon-color":p,"--n-close-icon-color-hover":g,"--n-close-icon-color-pressed":w,"--n-close-size":x,"--n-close-color-hover":y,"--n-close-color-pressed":z,"--n-close-icon-size":$,"--n-close-border-radius":S,"--n-resize-trigger-color-hover":k}}),E=i?b("drawer",void 0,k,e):void 0;return{mergedClsPrefix:t,namespace:n,mergedBodyStyle:z,handleOutsideClick:function(e){$(e)},handleMaskClick:$,handleEsc:function(t){var n;null===(n=e.onEsc)||void 0===n||n.call(e),e.show&&e.closeOnEsc&&p(t)&&(x.value||S(!1))},mergedTheme:d,cssVars:i?void 0:k,themeClass:null==E?void 0:E.themeClass,onRender:null==E?void 0:E.onRender,isMounted:s}},render(){const{mergedClsPrefix:e}=this;return B(n,{to:this.to,show:this.show},{default:()=>{var t;return null===(t=this.onRender)||void 0===t||t.call(this),N(B("div",{class:[`${e}-drawer-container`,this.namespace,this.themeClass],style:this.cssVars,role:"none"},this.showMask?B(W,{name:"fade-in-transition",appear:this.isMounted},{default:()=>this.show?B("div",{"aria-hidden":!0,class:[`${e}-drawer-mask`,"transparent"===this.showMask&&`${e}-drawer-mask--invisible`],onClick:this.handleMaskClick}):null}):null,B(I,Object.assign({},this.$attrs,{class:[this.drawerClass,this.$attrs.class],style:[this.mergedBodyStyle,this.$attrs.style],blockScroll:this.blockScroll,contentStyle:this.contentStyle,contentClass:this.contentClass,placement:this.placement,scrollbarProps:this.scrollbarProps,show:this.show,displayDirective:this.displayDirective,nativeScrollbar:this.nativeScrollbar,onAfterEnter:this.onAfterEnter,onAfterLeave:this.onAfterLeave,trapFocus:this.trapFocus,autoFocus:this.autoFocus,resizable:this.resizable,maxHeight:this.maxHeight,minHeight:this.minHeight,maxWidth:this.maxWidth,minWidth:this.minWidth,showMask:this.showMask,onEsc:this.handleEsc,onClickoutside:this.handleOutsideClick}),this.$slots)),[[s,{zIndex:this.zIndex,enabled:this.show}]])}})}});function ee(e=520,t=null){const n=D("undefined"!=typeof window?window.innerWidth:1200),r=()=>{n.value=window.innerWidth};R(()=>{window.addEventListener("resize",r)}),E(()=>{window.removeEventListener("resize",r)});const o=O(()=>n.value<640),i=O(()=>n.value>=640&&n.value<1024);return{drawerWidth:O(()=>{if(n.value<640)return"100%";if(n.value<768)return Math.min(.95*n.value,e);if(n.value<1024){const r=t||e;return Math.min(.85*n.value,r)}return e}),isMobile:o,isTablet:i,windowWidth:n}}export{K as n,ee as t};
1
+ import{F as e,I as t,It as n,Jt as r,N as o,Nt as i,Qt as a,Rt as s,Tt as l,Ut as d,Wt as c,Zt as u,gn as h,gt as m,hn as v,ht as b,jt as f,kt as p,qt as g,vn as w,w as y,y as z,yn as $,zt as x}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as S,F as k,G as C,H as E,M as B,N as F,Q as M,V as R,Z as H,b as O,dt as A,f as T,l as W,st as D,tt as N,z as P}from"./vue-vendor-BqZbbXHA.js";import{n as U,t as j}from"./use-lock-html-scroll-DXIqmUW4.js";import{J as L}from"./index-Cmmwj3Fx.js";var I=S({name:"NDrawerContent",inheritAttrs:!1,props:{blockScroll:Boolean,show:{type:Boolean,default:void 0},displayDirective:{type:String,required:!0},placement:{type:String,required:!0},contentClass:String,contentStyle:[Object,String],nativeScrollbar:{type:Boolean,required:!0},scrollbarProps:Object,trapFocus:{type:Boolean,default:!0},autoFocus:{type:Boolean,default:!0},showMask:{type:[Boolean,String],required:!0},maxWidth:Number,maxHeight:Number,minWidth:Number,minHeight:Number,resizable:Boolean,onClickoutside:Function,onAfterLeave:Function,onAfterEnter:Function,onEsc:Function},setup(e){const n=D(!!e.show),o=D(null),i=F(r);let a=0,s="",l=null;const u=D(!1),h=D(!1),v=O(()=>"top"===e.placement||"bottom"===e.placement),{mergedClsPrefixRef:b,mergedRtlRef:f}=m(e),p=t("Drawer",f,b),w=S,{doUpdateHeight:y,doUpdateWidth:z}=i;function $(t){var n,r;if(h.value)if(v.value){let r=(null===(n=o.value)||void 0===n?void 0:n.offsetHeight)||0;const i=a-t.clientY;r+="bottom"===e.placement?i:-i,r=(t=>{const{maxHeight:n}=e;if(n&&t>n)return n;const{minHeight:r}=e;return r&&t<r?r:t})(r),y(r),a=t.clientY}else{let n=(null===(r=o.value)||void 0===r?void 0:r.offsetWidth)||0;const i=a-t.clientX;n+="right"===e.placement?i:-i,n=(t=>{const{maxWidth:n}=e;if(n&&t>n)return n;const{minWidth:r}=e;return r&&t<r?r:t})(n),z(n),a=t.clientX}}function S(){h.value&&(a=0,h.value=!1,document.body.style.cursor=s,document.body.removeEventListener("mousemove",$),document.body.removeEventListener("mouseup",S),document.body.removeEventListener("mouseleave",w))}M(()=>{e.show&&(n.value=!0)}),H(()=>e.show,e=>{e||S()}),P(()=>{S()});const k=O(()=>{const{show:t}=e,n=[[T,t]];return e.showMask||n.push([x,e.onClickoutside,void 0,{capture:!0}]),n});return j(O(()=>e.blockScroll&&n.value)),C(g,o),C(d,null),C(c,null),{bodyRef:o,rtlEnabled:p,mergedClsPrefix:i.mergedClsPrefixRef,isMounted:i.isMountedRef,mergedTheme:i.mergedThemeRef,displayed:n,transitionName:O(()=>({right:"slide-in-from-right-transition",left:"slide-in-from-left-transition",top:"slide-in-from-top-transition",bottom:"slide-in-from-bottom-transition"}[e.placement])),handleAfterLeave:function(){var t;n.value=!1,null===(t=e.onAfterLeave)||void 0===t||t.call(e)},bodyDirectives:k,handleMousedownResizeTrigger:e=>{h.value=!0,a=v.value?e.clientY:e.clientX,s=document.body.style.cursor,document.body.style.cursor=v.value?"ns-resize":"ew-resize",document.body.addEventListener("mousemove",$),document.body.addEventListener("mouseleave",w),document.body.addEventListener("mouseup",S)},handleMouseenterResizeTrigger:()=>{null!==l&&(window.clearTimeout(l),l=null),h.value?u.value=!0:l=window.setTimeout(()=>{u.value=!0},300)},handleMouseleaveResizeTrigger:()=>{null!==l&&(window.clearTimeout(l),l=null),u.value=!1},isDragging:h,isHoverOnResizeTrigger:u}},render(){const{$slots:e,mergedClsPrefix:t}=this;return"show"===this.displayDirective||this.displayed||this.show?N(B("div",{role:"none"},B(i,{disabled:!this.showMask||!this.trapFocus,active:this.show,autoFocus:this.autoFocus,onEsc:this.onEsc},{default:()=>B(W,{name:this.transitionName,appear:this.isMounted,onAfterEnter:this.onAfterEnter,onAfterLeave:this.handleAfterLeave},{default:()=>N(B("div",k(this.$attrs,{role:"dialog",ref:"bodyRef","aria-modal":"true",class:[`${t}-drawer`,this.rtlEnabled&&`${t}-drawer--rtl`,`${t}-drawer--${this.placement}-placement`,this.isDragging&&`${t}-drawer--unselectable`,this.nativeScrollbar&&`${t}-drawer--native-scrollbar`]}),[this.resizable?B("div",{class:[`${t}-drawer__resize-trigger`,(this.isDragging||this.isHoverOnResizeTrigger)&&`${t}-drawer__resize-trigger--hover`],onMouseenter:this.handleMouseenterResizeTrigger,onMouseleave:this.handleMouseleaveResizeTrigger,onMousedown:this.handleMousedownResizeTrigger}):null,this.nativeScrollbar?B("div",{class:[`${t}-drawer-content-wrapper`,this.contentClass],style:this.contentStyle,role:"none"},e):B(z,Object.assign({},this.scrollbarProps,{contentStyle:this.contentStyle,contentClass:[`${t}-drawer-content-wrapper`,this.contentClass],theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar}),e)]),this.bodyDirectives)})})),[[T,"if"===this.displayDirective||this.displayed||this.show]]):null}}),{cubicBezierEaseIn:X,cubicBezierEaseOut:Y}=e;var{cubicBezierEaseIn:_,cubicBezierEaseOut:q}=e;var{cubicBezierEaseIn:V,cubicBezierEaseOut:J}=e;var{cubicBezierEaseIn:Q,cubicBezierEaseOut:Z}=e;var G=v([h("drawer","\n word-break: break-word;\n line-height: var(--n-line-height);\n position: absolute;\n pointer-events: all;\n box-shadow: var(--n-box-shadow);\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n background-color: var(--n-color);\n color: var(--n-text-color);\n box-sizing: border-box;\n ",[function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-right"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${V}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${J}`}),v(`&.${n}-transition-enter-to`,{transform:"translateX(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateX(100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateX(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateX(100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-left"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${_}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${q}`}),v(`&.${n}-transition-enter-to`,{transform:"translateX(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateX(-100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateX(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateX(-100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-top"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${Q}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${Z}`}),v(`&.${n}-transition-enter-to`,{transform:"translateY(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateY(-100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateY(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateY(-100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-bottom"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${X}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${Y}`}),v(`&.${n}-transition-enter-to`,{transform:"translateY(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateY(100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateY(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateY(100%)"})]}(),$("unselectable","\n user-select: none; \n -webkit-user-select: none;\n "),$("native-scrollbar",[h("drawer-content-wrapper","\n overflow: auto;\n height: 100%;\n ")]),w("resize-trigger","\n position: absolute;\n background-color: #0000;\n transition: background-color .3s var(--n-bezier);\n ",[$("hover","\n background-color: var(--n-resize-trigger-color-hover);\n ")]),h("drawer-content-wrapper","\n box-sizing: border-box;\n "),h("drawer-content","\n height: 100%;\n display: flex;\n flex-direction: column;\n ",[$("native-scrollbar",[h("drawer-body-content-wrapper","\n height: 100%;\n overflow: auto;\n ")]),h("drawer-body","\n flex: 1 0 0;\n overflow: hidden;\n "),h("drawer-body-content-wrapper","\n box-sizing: border-box;\n padding: var(--n-body-padding);\n "),h("drawer-header","\n font-weight: var(--n-title-font-weight);\n line-height: 1;\n font-size: var(--n-title-font-size);\n color: var(--n-title-text-color);\n padding: var(--n-header-padding);\n transition: border .3s var(--n-bezier);\n border-bottom: 1px solid var(--n-divider-color);\n border-bottom: var(--n-header-border-bottom);\n display: flex;\n justify-content: space-between;\n align-items: center;\n ",[w("main","\n flex: 1;\n "),w("close","\n margin-left: 6px;\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n ")]),h("drawer-footer","\n display: flex;\n justify-content: flex-end;\n border-top: var(--n-footer-border-top);\n transition: border .3s var(--n-bezier);\n padding: var(--n-footer-padding);\n ")]),$("right-placement","\n top: 0;\n bottom: 0;\n right: 0;\n border-top-left-radius: var(--n-border-radius);\n border-bottom-left-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 3px;\n height: 100%;\n top: 0;\n left: 0;\n transform: translateX(-1.5px);\n cursor: ew-resize;\n ")]),$("left-placement","\n top: 0;\n bottom: 0;\n left: 0;\n border-top-right-radius: var(--n-border-radius);\n border-bottom-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 3px;\n height: 100%;\n top: 0;\n right: 0;\n transform: translateX(1.5px);\n cursor: ew-resize;\n ")]),$("top-placement","\n top: 0;\n left: 0;\n right: 0;\n border-bottom-left-radius: var(--n-border-radius);\n border-bottom-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 100%;\n height: 3px;\n bottom: 0;\n left: 0;\n transform: translateY(1.5px);\n cursor: ns-resize;\n ")]),$("bottom-placement","\n left: 0;\n bottom: 0;\n right: 0;\n border-top-left-radius: var(--n-border-radius);\n border-top-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 100%;\n height: 3px;\n top: 0;\n left: 0;\n transform: translateY(-1.5px);\n cursor: ns-resize;\n ")])]),v("body",[v(">",[h("drawer-container","\n position: fixed;\n ")])]),h("drawer-container","\n position: relative;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n ",[v("> *","\n pointer-events: all;\n ")]),h("drawer-mask","\n background-color: rgba(0, 0, 0, .3);\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n ",[$("invisible","\n background-color: rgba(0, 0, 0, 0)\n "),y({enterDuration:"0.2s",leaveDuration:"0.2s",enterCubicBezier:"var(--n-bezier-in)",leaveCubicBezier:"var(--n-bezier-out)"})])]),K=S({name:"Drawer",inheritAttrs:!1,props:Object.assign(Object.assign({},o.props),{show:Boolean,width:[Number,String],height:[Number,String],placement:{type:String,default:"right"},maskClosable:{type:Boolean,default:!0},showMask:{type:[Boolean,String],default:!0},to:[String,Object],displayDirective:{type:String,default:"if"},nativeScrollbar:{type:Boolean,default:!0},zIndex:Number,onMaskClick:Function,scrollbarProps:Object,contentClass:String,contentStyle:[Object,String],trapFocus:{type:Boolean,default:!0},onEsc:Function,autoFocus:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},blockScroll:{type:Boolean,default:!0},maxWidth:Number,maxHeight:Number,minWidth:Number,minHeight:Number,resizable:Boolean,defaultWidth:{type:[Number,String],default:251},defaultHeight:{type:[Number,String],default:251},onUpdateWidth:[Function,Array],onUpdateHeight:[Function,Array],"onUpdate:width":[Function,Array],"onUpdate:height":[Function,Array],"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],onAfterEnter:Function,onAfterLeave:Function,drawerStyle:[String,Object],drawerClass:String,target:null,onShow:Function,onHide:Function}),setup(e){const{mergedClsPrefixRef:t,namespaceRef:n,inlineThemeDisabled:i}=m(e),s=u(),d=o("Drawer","-drawer",G,L,e,t),c=D(e.defaultWidth),h=D(e.defaultHeight),v=a(A(e,"width"),c),g=a(A(e,"height"),h),w=O(()=>{const{placement:t}=e;return"top"===t||"bottom"===t?"":f(v.value)}),y=O(()=>{const{placement:t}=e;return"left"===t||"right"===t?"":f(g.value)}),z=O(()=>[{width:w.value,height:y.value},e.drawerStyle||""]);function $(t){const{onMaskClick:n,maskClosable:r}=e;r&&S(!1),n&&n(t)}const x=U();function S(t){const{onHide:n,onUpdateShow:r,"onUpdate:show":o}=e;r&&l(r,t),o&&l(o,t),n&&!t&&l(n,t)}C(r,{isMountedRef:s,mergedThemeRef:d,mergedClsPrefixRef:t,doUpdateShow:S,doUpdateHeight:t=>{const{onUpdateHeight:n,"onUpdate:width":r}=e;n&&l(n,t),r&&l(r,t),h.value=t},doUpdateWidth:t=>{const{onUpdateWidth:n,"onUpdate:width":r}=e;n&&l(n,t),r&&l(r,t),c.value=t}});const k=O(()=>{const{common:{cubicBezierEaseInOut:e,cubicBezierEaseIn:t,cubicBezierEaseOut:n},self:{color:r,textColor:o,boxShadow:i,lineHeight:a,headerPadding:s,footerPadding:l,borderRadius:c,bodyPadding:u,titleFontSize:h,titleTextColor:m,titleFontWeight:v,headerBorderBottom:b,footerBorderTop:f,closeIconColor:p,closeIconColorHover:g,closeIconColorPressed:w,closeColorHover:y,closeColorPressed:z,closeIconSize:$,closeSize:x,closeBorderRadius:S,resizableTriggerColorHover:k}}=d.value;return{"--n-line-height":a,"--n-color":r,"--n-border-radius":c,"--n-text-color":o,"--n-box-shadow":i,"--n-bezier":e,"--n-bezier-out":n,"--n-bezier-in":t,"--n-header-padding":s,"--n-body-padding":u,"--n-footer-padding":l,"--n-title-text-color":m,"--n-title-font-size":h,"--n-title-font-weight":v,"--n-header-border-bottom":b,"--n-footer-border-top":f,"--n-close-icon-color":p,"--n-close-icon-color-hover":g,"--n-close-icon-color-pressed":w,"--n-close-size":x,"--n-close-color-hover":y,"--n-close-color-pressed":z,"--n-close-icon-size":$,"--n-close-border-radius":S,"--n-resize-trigger-color-hover":k}}),E=i?b("drawer",void 0,k,e):void 0;return{mergedClsPrefix:t,namespace:n,mergedBodyStyle:z,handleOutsideClick:function(e){$(e)},handleMaskClick:$,handleEsc:function(t){var n;null===(n=e.onEsc)||void 0===n||n.call(e),e.show&&e.closeOnEsc&&p(t)&&(x.value||S(!1))},mergedTheme:d,cssVars:i?void 0:k,themeClass:null==E?void 0:E.themeClass,onRender:null==E?void 0:E.onRender,isMounted:s}},render(){const{mergedClsPrefix:e}=this;return B(n,{to:this.to,show:this.show},{default:()=>{var t;return null===(t=this.onRender)||void 0===t||t.call(this),N(B("div",{class:[`${e}-drawer-container`,this.namespace,this.themeClass],style:this.cssVars,role:"none"},this.showMask?B(W,{name:"fade-in-transition",appear:this.isMounted},{default:()=>this.show?B("div",{"aria-hidden":!0,class:[`${e}-drawer-mask`,"transparent"===this.showMask&&`${e}-drawer-mask--invisible`],onClick:this.handleMaskClick}):null}):null,B(I,Object.assign({},this.$attrs,{class:[this.drawerClass,this.$attrs.class],style:[this.mergedBodyStyle,this.$attrs.style],blockScroll:this.blockScroll,contentStyle:this.contentStyle,contentClass:this.contentClass,placement:this.placement,scrollbarProps:this.scrollbarProps,show:this.show,displayDirective:this.displayDirective,nativeScrollbar:this.nativeScrollbar,onAfterEnter:this.onAfterEnter,onAfterLeave:this.onAfterLeave,trapFocus:this.trapFocus,autoFocus:this.autoFocus,resizable:this.resizable,maxHeight:this.maxHeight,minHeight:this.minHeight,maxWidth:this.maxWidth,minWidth:this.minWidth,showMask:this.showMask,onEsc:this.handleEsc,onClickoutside:this.handleOutsideClick}),this.$slots)),[[s,{zIndex:this.zIndex,enabled:this.show}]])}})}});function ee(e=520,t=null){const n=D("undefined"!=typeof window?window.innerWidth:1200),r=()=>{n.value=window.innerWidth};R(()=>{window.addEventListener("resize",r)}),E(()=>{window.removeEventListener("resize",r)});const o=O(()=>n.value<640),i=O(()=>n.value>=640&&n.value<1024);return{drawerWidth:O(()=>{if(n.value<640)return"100%";if(n.value<768)return Math.min(.95*n.value,e);if(n.value<1024){const r=t||e;return Math.min(.85*n.value,r)}return e}),isMobile:o,isTablet:i,windowWidth:n}}export{K as n,ee as t};
@@ -5,18 +5,18 @@
5
5
  <link rel="icon" href="/favicon.ico">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
7
  <title>coding-tool-x · AI 编程工作台</title>
8
- <script type="module" crossorigin src="/assets/index-BFInlZGI.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-Cmmwj3Fx.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/vue-vendor-BqZbbXHA.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-BeLZJZij.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/vendors-D0c_0KLP.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/client-UDwXBP9i.js">
13
- <link rel="modulepreload" crossorigin href="/assets/icons-B2Vg-IOC.js">
14
- <link rel="modulepreload" crossorigin href="/assets/platforms-FTpjxAT6.js">
15
- <link rel="modulepreload" crossorigin href="/assets/platforms-CBkB45JP.js">
16
- <link rel="modulepreload" crossorigin href="/assets/use-message-DoLM8C1C.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/icons-DmFe4b5j.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/platforms-BmzzwnSw.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/platforms-DWXgmy2w.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/use-message-DqCwefG6.js">
17
17
  <link rel="modulepreload" crossorigin href="/assets/use-lock-html-scroll-DXIqmUW4.js">
18
- <link rel="modulepreload" crossorigin href="/assets/light-Cp0t7v32.js">
19
- <link rel="stylesheet" crossorigin href="/assets/index-BohDDAy_.css">
18
+ <link rel="modulepreload" crossorigin href="/assets/light-0eavxNvt.js">
19
+ <link rel="stylesheet" crossorigin href="/assets/index-Cnbe696C.css">
20
20
  </head>
21
21
  <body>
22
22
  <div id="app"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coding-tool-x",
3
- "version": "3.8.7",
3
+ "version": "3.8.8",
4
4
  "description": "Vibe Coding 增强工作助手 - 智能会话管理、动态渠道切换、全局搜索、实时监控",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -96,10 +96,14 @@ function reportDriverFailure(result) {
96
96
  async function searchSessionsAcrossProjects(config = {}, keyword, limitOrOptions = 15, maybeOptions = {}) {
97
97
  const { limit, options } = resolveLimitAndOptions(limitOrOptions, maybeOptions);
98
98
  const spinner = ora(`[SEARCH] 正在搜索 "${keyword}"...`).start();
99
+ const operationOptions = { config };
100
+ for (const key of ['projectName', 'project', 'contextLength', 'force', 'consistency']) {
101
+ if (options[key] !== undefined) operationOptions[key] = options[key];
102
+ }
99
103
  const result = await invokeSessionOperation(
100
104
  config,
101
105
  'searchAcrossProjects',
102
- [keyword, limit, { config }],
106
+ [keyword, limit, operationOptions],
103
107
  options
104
108
  );
105
109
  const searchResults = normalizeSearchResults(result);
@@ -128,7 +132,11 @@ async function searchSessionsAcrossProjects(config = {}, keyword, limitOrOptions
128
132
  return [];
129
133
  }
130
134
 
131
- allResults.sort((a, b) => b.matchCount - a.matchCount);
135
+ allResults.sort((a, b) => {
136
+ const aUpdated = searchTimestamp(a.updatedAt ?? a.lastUpdated ?? a.mtimeMs ?? a.mtime);
137
+ const bUpdated = searchTimestamp(b.updatedAt ?? b.lastUpdated ?? b.mtimeMs ?? b.mtime);
138
+ return bUpdated - aUpdated || a.sessionId.localeCompare(b.sessionId);
139
+ });
132
140
  const totalMatches = allResults.reduce((sum, resultItem) => sum + resultItem.matchCount, 0);
133
141
 
134
142
  console.clear();
@@ -183,6 +191,13 @@ async function searchSessionsAcrossProjects(config = {}, keyword, limitOrOptions
183
191
  return choices;
184
192
  }
185
193
 
194
+ function searchTimestamp(value) {
195
+ const numeric = Number(value);
196
+ if (Number.isFinite(numeric) && numeric > 0) return numeric;
197
+ const parsed = Date.parse(String(value || ''));
198
+ return Number.isFinite(parsed) ? parsed : 0;
199
+ }
200
+
186
201
  /**
187
202
  * 处理搜索会话
188
203
  */
@@ -53,6 +53,7 @@ const LEGACY_STATS_DIR = path.join(LEGACY_DIR, 'stats');
53
53
  const CONTROL_MANIFEST_PATH = path.join(CONFIG_DIR, 'effective-control.json');
54
54
  const SKILL_ARTIFACTS_DIR = path.join(STORAGE_DIR, 'skill-artifacts');
55
55
  const SKILL_REFRESH_TASKS_PATH = path.join(RUNTIME_DIR, 'skill-refresh-tasks.json');
56
+ const PLUGIN_REFRESH_TASKS_PATH = path.join(RUNTIME_DIR, 'plugin-refresh-tasks.json');
56
57
 
57
58
  // 旧目录(升级时自动合并到 ~/.cc-tool)
58
59
  const LEGACY_BASE_DIRS = [
@@ -416,6 +417,7 @@ const PATHS = {
416
417
  effectiveControlManifest: CONTROL_MANIFEST_PATH,
417
418
  skillArtifacts: SKILL_ARTIFACTS_DIR,
418
419
  skillRefreshTasks: SKILL_REFRESH_TASKS_PATH,
420
+ pluginRefreshTasks: PLUGIN_REFRESH_TASKS_PATH,
419
421
 
420
422
  // 渠道配置
421
423
  channelsDir: CHANNELS_DIR,
@@ -48,7 +48,15 @@ function getDriverRegistry() {
48
48
  'generic-mcp': createGenericMcpDriver,
49
49
  'generic-prompt': createGenericPromptDriver,
50
50
  'opencode-conversion': require('./drivers/opencode/conversion').createDriver,
51
- 'claude-health': require('./drivers/claude/health').createDriver
51
+ 'claude-health': require('./drivers/claude/health').createDriver,
52
+ 'dsh-api': require('./drivers/dsh/api-operations').createDriver,
53
+ 'dsh-projects': require('./drivers/dsh/projects').createDriver,
54
+ 'dsh-sessions': require('./drivers/dsh/sessions').createDriver,
55
+ 'dsh-native-config': require('./drivers/dsh/native-config').createDriver,
56
+ 'dsh-channels': require('./drivers/dsh/channels').createDriver,
57
+ 'dsh-proxy': require('./drivers/dsh/proxy').createDriver,
58
+ 'dsh-statistics': require('./drivers/dsh/statistics').createDriver,
59
+ 'dsh-native-logs': require('./drivers/dsh/native-logs').createDriver
52
60
  }
53
61
  });
54
62
  registerLegacyDrivers(defaultRegistry);
@@ -150,6 +150,77 @@ async function inventory({ projectsDir } = {}) {
150
150
  return descriptors;
151
151
  }
152
152
 
153
+ /** Read a bounded prefix for project/session list summaries. */
154
+ function readSessionSummaryHead(filePath, maxBytes = 64 * 1024) {
155
+ let fd;
156
+ try {
157
+ fd = fs.openSync(filePath, 'r');
158
+ const buffer = Buffer.alloc(maxBytes);
159
+ const bytesRead = fs.readSync(fd, buffer, 0, buffer.length, 0);
160
+ return buffer.subarray(0, bytesRead).toString('utf8')
161
+ .split(/\r?\n/)
162
+ .filter(line => line.trim())
163
+ .map(line => {
164
+ try { return JSON.parse(line); } catch (_) { return null; }
165
+ })
166
+ .filter(Boolean);
167
+ } catch (_) {
168
+ return [];
169
+ } finally {
170
+ if (fd !== undefined) {
171
+ try { fs.closeSync(fd); } catch (_) {}
172
+ }
173
+ }
174
+ }
175
+
176
+ async function summarize(descriptor) {
177
+ const lines = readSessionSummaryHead(descriptor.filePath);
178
+ const { fullPath, projectName: displayName } = parseRealProjectPath(
179
+ descriptor.projectHint,
180
+ { projectsDir: descriptor.projectsDir }
181
+ );
182
+ let firstMessage = null;
183
+ let gitBranch = null;
184
+ let provider = null;
185
+ let model = null;
186
+ let startedAt = null;
187
+ for (const json of lines) {
188
+ const payload = json.message && typeof json.message === 'object' && !Array.isArray(json.message)
189
+ ? json.message
190
+ : {};
191
+ const timestamp = json.timestamp || payload.timestamp || null;
192
+ const timestampMs = timestamp ? new Date(timestamp).getTime() : null;
193
+ if (timestampMs && startedAt === null) startedAt = timestampMs;
194
+ const metadata = json.type === 'metadata' || json.type === 'summary';
195
+ if (metadata) {
196
+ gitBranch = json.gitBranch || payload.gitBranch || gitBranch;
197
+ provider = json.provider || payload.provider || provider;
198
+ model = json.model || payload.model || model;
199
+ }
200
+ const role = json.role || payload.role
201
+ || (json.type === 'user' || json.type === 'human' ? 'user' : null);
202
+ const rawContent = json.content !== undefined ? json.content : payload.content;
203
+ if (!firstMessage && role === 'user') firstMessage = getClaudeUserText(rawContent) || null;
204
+ if (json.model || payload.model) model = json.model || payload.model;
205
+ if (json.provider || payload.provider) provider = json.provider || payload.provider;
206
+ }
207
+ return {
208
+ session: {
209
+ sessionId: descriptor.sessionId,
210
+ projectName: descriptor.projectHint || 'unknown',
211
+ projectDisplayName: displayName || descriptor.projectHint || 'unknown',
212
+ projectFullPath: fullPath || null,
213
+ firstMessage,
214
+ gitBranch,
215
+ provider,
216
+ model,
217
+ startedAt,
218
+ updatedAt: descriptor.mtimeMs,
219
+ extraJson: JSON.stringify({ cwd: fullPath || null })
220
+ }
221
+ };
222
+ }
223
+
153
224
  /**
154
225
  * Parse a Claude session file into normalized session + messages.
155
226
  * @param {{filePath: string, size: number, mtimeMs: number, sessionId: string, projectHint: string}} descriptor
@@ -310,4 +381,4 @@ async function parse(descriptor) {
310
381
  };
311
382
  }
312
383
 
313
- module.exports = { configure, inventory, parse, getClaudeUserText };
384
+ module.exports = { configure, inventory, summarize, parse, getClaudeUserText };
@@ -208,6 +208,10 @@ async function getProjectsWithStats(config = {}, options = {}) {
208
208
  return getSessionHistoryIndex(config).listProjects('claude', { ...options, config });
209
209
  }
210
210
 
211
+ async function getProjectsPage(config = {}, options = {}) {
212
+ return getSessionHistoryIndex(config).listProjectsPage('claude', { ...options, config });
213
+ }
214
+
211
215
  // ===== Path resolution helpers (kept for mutation/conversion paths) =====
212
216
 
213
217
  function parseRealProjectPath(encodedName, config = {}) {
@@ -327,7 +331,7 @@ function extractCwdFromSessionHeader(sessionFile) {
327
331
  // ===== Counts: delegates to index =====
328
332
 
329
333
  async function getProjectAndSessionCounts(config = {}, options = {}) {
330
- const projects = await getSessionHistoryIndex().listProjects('claude', { ...options, config });
334
+ const projects = await getSessionHistoryIndex().getAllProjects('claude', { ...options, config });
331
335
  let sessionCount = 0;
332
336
  for (const project of projects) sessionCount += project.sessionCount || 0;
333
337
  return { projectCount: projects.length, sessionCount };
@@ -362,6 +366,23 @@ async function getSessionsForProject(config, projectName, options = {}) {
362
366
  const totalSize = sessions.reduce((sum, s) => sum + (s.size || 0), 0);
363
367
  return { sessions, totalSize };
364
368
  }
369
+
370
+ async function getSessionsPage(config, projectName, options = {}) {
371
+ const payload = await getSessionHistoryIndex(config).listSessionsPage('claude', projectName, { ...options, config });
372
+ const forkRelations = getForkRelations();
373
+ return {
374
+ ...payload,
375
+ sessions: payload.sessions.map(session => ({
376
+ sessionId: session.sessionId,
377
+ mtime: session.mtime,
378
+ size: session.size,
379
+ filePath: session.filePath,
380
+ gitBranch: session.gitBranch || null,
381
+ firstMessage: session.firstMessage || null,
382
+ forkedFrom: forkRelations[session.sessionId] || null
383
+ }))
384
+ };
385
+ }
365
386
  // ===== Mutations (sync) =====
366
387
 
367
388
  function deleteSession(config, projectName, sessionId) {
@@ -439,6 +460,7 @@ async function searchSessions(config, projectName, keyword, contextLength = 15,
439
460
  const results = await getSessionHistoryIndex().searchSessions('claude', keyword, { projectName, contextLength, ...options, config });
440
461
  const aliases = loadAliases();
441
462
  return results.map(r => ({
463
+ ...r,
442
464
  sessionId: r.sessionId,
443
465
  alias: aliases[r.sessionId] || null,
444
466
  matchCount: r.matchCount,
@@ -465,18 +487,25 @@ async function getRecentSessions(config, limit = 5, options = {}) {
465
487
  }));
466
488
  }
467
489
 
468
- async function searchSessionsAcrossProjects(config, keyword, contextLength = 35) {
490
+ async function searchSessionsAcrossProjects(config, keyword, limit = 35, options = {}) {
469
491
  const allResults = [];
492
+ const searchOptions = {
493
+ ...options,
494
+ contextLength: Number(options.contextLength) || 35,
495
+ limit: Math.max(1, Math.min(200, Number(limit) || 35)),
496
+ config,
497
+ projectName: options.projectName || null
498
+ };
470
499
 
471
500
  try {
472
- const claudeResults = await getSessionHistoryIndex().searchSessions('claude', keyword, { contextLength });
501
+ const claudeResults = await getSessionHistoryIndex().searchSessions('claude', keyword, searchOptions);
473
502
  for (const r of claudeResults) allResults.push({ ...r, channel: 'claude' });
474
503
  } catch (_) {}
475
504
 
476
505
  try {
477
506
  if (fs.existsSync(CODEX_PROJECTS_DIR)) {
478
507
  const { searchSessions: codexSearch } = require('../codex/sessions-implementation');
479
- const codexResults = await codexSearch(keyword);
508
+ const codexResults = await codexSearch(keyword, searchOptions);
480
509
  for (const r of codexResults) allResults.push({ ...r, channel: 'codex' });
481
510
  }
482
511
  } catch (_) {}
@@ -484,13 +513,24 @@ async function searchSessionsAcrossProjects(config, keyword, contextLength = 35)
484
513
  try {
485
514
  if (fs.existsSync(GEMINI_PROJECTS_DIR)) {
486
515
  const { searchSessions: geminiSearch } = require('../gemini/sessions-implementation');
487
- const geminiResults = await geminiSearch(keyword, contextLength);
516
+ const geminiResults = await geminiSearch(keyword, searchOptions.contextLength, searchOptions);
488
517
  for (const r of geminiResults) allResults.push({ ...r, channel: 'gemini' });
489
518
  }
490
519
  } catch (_) {}
491
520
 
492
- allResults.sort((a, b) => (b.matchCount || 0) - (a.matchCount || 0));
493
- return allResults;
521
+ allResults.sort((a, b) => {
522
+ const updatedA = sessionTimestamp(a.updatedAt ?? a.lastUpdated ?? a.mtimeMs ?? a.mtime);
523
+ const updatedB = sessionTimestamp(b.updatedAt ?? b.lastUpdated ?? b.mtimeMs ?? b.mtime);
524
+ return updatedB - updatedA || String(a.sessionId || '').localeCompare(String(b.sessionId || ''));
525
+ });
526
+ return allResults.slice(0, searchOptions.limit);
527
+ }
528
+
529
+ function sessionTimestamp(value) {
530
+ const numeric = Number(value);
531
+ if (Number.isFinite(numeric) && numeric > 0) return numeric;
532
+ const parsed = Date.parse(String(value || ''));
533
+ return Number.isFinite(parsed) ? parsed : 0;
494
534
  }
495
535
  function hasActualMessages(sessionFile) {
496
536
  if (!sessionFile || !fs.existsSync(sessionFile)) return false;
@@ -513,7 +553,9 @@ module.exports = {
513
553
  configure,
514
554
  getProjects,
515
555
  getProjectsWithStats,
556
+ getProjectsPage,
516
557
  getSessionsForProject,
558
+ getSessionsPage,
517
559
  deleteSession,
518
560
  forkSession,
519
561
  launch,
@@ -11,7 +11,7 @@ function createDriver(context = {}) {
11
11
  servicePath: './claude/sessions-implementation',
12
12
  localServicePath: '../platforms/drivers/claude/sessions-implementation',
13
13
  adapterLocalPath: '../platforms/drivers/claude/session-history-adapter',
14
- adapterMethods: { inventory: 'inventory', parse: 'parse' },
14
+ adapterMethods: { inventory: 'inventory', summarize: 'summarize', parse: 'parse' },
15
15
  methods: {
16
16
  launch: 'launch',
17
17
  saveSessionOrder: 'saveSessionOrder',
@@ -44,6 +44,14 @@ function createDriver(context = {}) {
44
44
  request
45
45
  );
46
46
  },
47
+ listSessionsPage: (service, projectNameOrRequest, options = {}) => {
48
+ const descriptorRequest = projectNameOrRequest && typeof projectNameOrRequest === 'object';
49
+ const request = descriptorRequest ? projectNameOrRequest : options;
50
+ const projectName = descriptorRequest
51
+ ? request.params?.projectName
52
+ : projectNameOrRequest;
53
+ return service.getSessionsPage(request.config || {}, projectName, request);
54
+ },
47
55
  recent: (service, limitOrRequest, options = {}) => {
48
56
  const descriptorRequest = limitOrRequest && typeof limitOrRequest === 'object';
49
57
  const request = descriptorRequest ? limitOrRequest : options;
@@ -59,11 +67,27 @@ function createDriver(context = {}) {
59
67
  contextLength,
60
68
  options
61
69
  ),
62
- searchAcrossProjects: (service, keyword, limit, options = {}) => service.searchSessionsAcrossProjects(
63
- options.config || {},
64
- keyword,
65
- limit
66
- )
70
+ searchAcrossProjects: (service, requestOrKeyword, limit, options = {}) => {
71
+ if (requestOrKeyword && typeof requestOrKeyword === 'object' && !Array.isArray(requestOrKeyword)) {
72
+ const request = requestOrKeyword;
73
+ const query = request.query || {};
74
+ const requestLimit = Number.parseInt(query.limit, 10) || 35;
75
+ return service.searchSessionsAcrossProjects(
76
+ request.config || options.config || {},
77
+ query.keyword || query.q || query.query || '',
78
+ requestLimit,
79
+ {
80
+ ...request,
81
+ ...options,
82
+ config: request.config || options.config || {},
83
+ projectName: query.projectName || query.project || null,
84
+ limit: requestLimit,
85
+ contextLength: Number(query.context) || 35
86
+ }
87
+ );
88
+ }
89
+ return service.searchSessionsAcrossProjects(options.config || {}, requestOrKeyword, limit, options);
90
+ }
67
91
  },
68
92
  onSuccess: operation => {
69
93
  if (['delete', 'fork', 'saveSessionOrder'].includes(operation)) {