chatlab-cli 0.34.3 → 0.36.0

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 (184) hide show
  1. package/dist/{chat-command-QH7DXCAJ.mjs → chat-command-SXW67RF7.mjs} +9 -9
  2. package/dist/{chunk-AWXHYTD5.mjs → chunk-4YPNYQSP.mjs} +701 -7065
  3. package/dist/chunk-4YPNYQSP.mjs.map +1 -0
  4. package/dist/{chunk-SWUTRDGZ.mjs → chunk-AAGDVTP2.mjs} +2 -2
  5. package/dist/{chunk-ZVGDOSGG.mjs → chunk-BSGLH6G3.mjs} +188 -41
  6. package/dist/chunk-BSGLH6G3.mjs.map +1 -0
  7. package/dist/{chunk-2Q3HHVTS.mjs → chunk-CNEWMCGX.mjs} +18 -18
  8. package/dist/{chunk-3X26JJIP.mjs → chunk-GVW3BDGZ.mjs} +3 -3
  9. package/dist/{chunk-WJVE5Q4Y.mjs → chunk-JHON5FN7.mjs} +2 -2
  10. package/dist/{chunk-JYBPJWE2.mjs → chunk-LZGOIRLV.mjs} +13 -23
  11. package/dist/chunk-LZGOIRLV.mjs.map +1 -0
  12. package/dist/chunk-OWOEWZIC.mjs +19072 -0
  13. package/dist/chunk-OWOEWZIC.mjs.map +1 -0
  14. package/dist/{chunk-XIWVJAXH.mjs → chunk-U2NXHIJK.mjs} +34 -24
  15. package/dist/chunk-U2NXHIJK.mjs.map +1 -0
  16. package/dist/{chunk-6U2QZO3N.mjs → chunk-UNIKQFI5.mjs} +2 -2
  17. package/dist/{chunk-C2PD3BS7.mjs → chunk-VDWI4A4U.mjs} +2 -2
  18. package/dist/{chunk-AWGXYFIC.mjs → chunk-XDF6PMVZ.mjs} +2 -2
  19. package/dist/chunk-YKMQLAVP.mjs +25 -0
  20. package/dist/chunk-YKMQLAVP.mjs.map +1 -0
  21. package/dist/cli.mjs +10 -10
  22. package/dist/contacts-worker.mjs +2 -2
  23. package/dist/global-insight-worker.mjs +136 -4
  24. package/dist/global-insight-worker.mjs.map +1 -1
  25. package/dist/{http-D2F4QTQW.mjs → http-LVOGJFDL.mjs} +13 -13
  26. package/dist/{import-H7X2JU2O.mjs → import-7OU57ZHM.mjs} +8 -8
  27. package/dist/index.mjs +13 -13
  28. package/dist/{mcp-UURXRGDF.mjs → mcp-CUKHTTII.mjs} +9 -9
  29. package/dist/people-relationships-worker.mjs +2 -2
  30. package/dist/semantic-index-worker.mjs +1 -1
  31. package/dist/{src-MHCO4HYY.mjs → src-LORFXAUE.mjs} +121 -97
  32. package/dist/{stream-import-BHXACUCA.mjs → stream-import-7YUWIAD6.mjs} +8 -8
  33. package/dist/{worker-runtime-JOUCP2L4.mjs → worker-runtime-GQ5SY7E3.mjs} +6 -6
  34. package/dist-cli-web/assets/AISettingsTab-BmhNcUEh.js +1 -0
  35. package/dist-cli-web/assets/AboutTab-CFklrZt8.js +1 -0
  36. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-B-dIPvcs.js +110 -0
  37. package/dist-cli-web/assets/Alert-DJzXKcec.js +1 -0
  38. package/dist-cli-web/assets/ApiSettingsTab-DvDm421U.js +2 -0
  39. package/dist-cli-web/assets/BatchManageTab-DhIDH3Q1.js +1 -0
  40. package/dist-cli-web/assets/{BufferResource-Dak23r3B.js → BufferResource-DY3P-dGs.js} +1 -1
  41. package/dist-cli-web/assets/CanvasRenderer-As2MJTWZ.js +1 -0
  42. package/dist-cli-web/assets/ChatRecordDrawer-DHdas7Jp.js +1 -0
  43. package/dist-cli-web/assets/ChatRecordWorkspace-CVDPBmcl.js +11 -0
  44. package/dist-cli-web/assets/ChatRecordWorkspace-D_oJMtqh.css +1 -0
  45. package/dist-cli-web/assets/Checkbox-4F1WAuVF.js +1 -0
  46. package/dist-cli-web/assets/DataDirCleanupNotice-jebQ9il3.js +1 -0
  47. package/dist-cli-web/assets/DatePicker.vue_vue_type_script_setup_true_lang-Cal624eP.js +1 -0
  48. package/dist-cli-web/assets/DebugToolsPanel-BLU6SY8a.js +1 -0
  49. package/dist-cli-web/assets/EChart.vue_vue_type_script_setup_true_lang-CsgJ-Xn3.js +1 -0
  50. package/dist-cli-web/assets/EChartLine.vue_vue_type_script_setup_true_lang-BYhukELX.js +1 -0
  51. package/dist-cli-web/assets/EChartWordcloud-C16xh7Tx.js +1 -0
  52. package/dist-cli-web/assets/{Filter-CHKZVYB3.js → Filter-BEtPORqF.js} +1 -1
  53. package/dist-cli-web/assets/GlobalTaskBar-BvNmFO7q.js +1 -0
  54. package/dist-cli-web/assets/GlobalTaskBar-COW_uBX6.css +1 -0
  55. package/dist-cli-web/assets/GroupRelationshipGalaxyView-DEUIrvgz.js +1 -0
  56. package/dist-cli-web/assets/Label-Dgl3ghzT.js +1 -0
  57. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-CwDIA0UP.js +1 -0
  58. package/dist-cli-web/assets/MessageExportModal-DYjhBuzO.js +1 -0
  59. package/dist-cli-web/assets/PageHeader-CL9AFfvl.js +1 -0
  60. package/dist-cli-web/assets/PageTabs.vue_vue_type_script_setup_true_lang-C22kOxIK.js +1 -0
  61. package/dist-cli-web/assets/{RelationshipGalaxyCanvas-mJhEPzsY.js → RelationshipGalaxyCanvas-BnkcrIpk.js} +3 -3
  62. package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-Bf76yzmQ.js → RelationshipGalaxyThreeCanvas-CqdqveEJ.js} +166 -166
  63. package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-CMuibfiA.css → RelationshipGalaxyThreeCanvas-TYGOUDiv.css} +1 -1
  64. package/dist-cli-web/assets/{RenderTargetSystem-1rM7OF-M.js → RenderTargetSystem-CPwnC2X3.js} +1 -1
  65. package/dist-cli-web/assets/RovingFocusItem-j33Nsbbn.js +1 -0
  66. package/dist-cli-web/assets/ScreenCaptureModal-ByKxzNQe.js +1 -0
  67. package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-C6EHKB_i.js +1 -0
  68. package/dist-cli-web/assets/Select-jVtfc_xc.js +1 -0
  69. package/dist-cli-web/assets/SettingsModal-CjVax3I6.css +1 -0
  70. package/dist-cli-web/assets/SettingsModal-Dg27piEO.js +2 -0
  71. package/dist-cli-web/assets/StorageTab-QdcDqA6Q.js +1 -0
  72. package/dist-cli-web/assets/Switch-DYHM64k9.js +1 -0
  73. package/dist-cli-web/assets/Tabs-B6Nzq2NQ.js +1 -0
  74. package/dist-cli-web/assets/Tabs-CRZdCcU4.js +1 -0
  75. package/dist-cli-web/assets/ThemeCard.vue_vue_type_script_setup_true_lang-Bsq7gpC0.js +1 -0
  76. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-BLpQds4F.js +1 -0
  77. package/dist-cli-web/assets/VisuallyHiddenInput-IQpmK9yR.js +1 -0
  78. package/dist-cli-web/assets/{WebGLRenderer-Y0jQtBvK.js → WebGLRenderer-8JHbnkTc.js} +2 -2
  79. package/dist-cli-web/assets/{WebGPURenderer-BcUvCPhd.js → WebGPURenderer-CLWfB4CC.js} +2 -2
  80. package/dist-cli-web/assets/aiChat-4JvxWGXZ.js +8 -0
  81. package/dist-cli-web/assets/base-D6fxqD_X.js +1 -0
  82. package/dist-cli-web/assets/{browserAll-BsR1UaCC.js → browserAll-Cin6ghNg.js} +2 -2
  83. package/dist-cli-web/assets/chatlabSiteLocale-CrCNb8QP.js +1 -0
  84. package/dist-cli-web/assets/clamp-jFYhBC76.js +1 -0
  85. package/dist-cli-web/assets/cli-web-D7IBc3AX.js +1 -0
  86. package/dist-cli-web/assets/{dateFormat-B6JnNCxp.js → dateFormat-Bu4-Ux3L.js} +1 -1
  87. package/dist-cli-web/assets/{fetch-BAJ_VjWE.js → fetch-1NiXh-_B.js} +1 -1
  88. package/dist-cli-web/assets/{fetch-BNcHe2-O.js → fetch-2QEQPA9q.js} +8 -5
  89. package/dist-cli-web/assets/fetch-B2agy1hy.js +1 -0
  90. package/dist-cli-web/assets/{fetch-CPloHijF.js → fetch-B7kuohCt.js} +1 -1
  91. package/dist-cli-web/assets/{fetch-D7vgaLpy.js → fetch-BR71C0K9.js} +1 -1
  92. package/dist-cli-web/assets/{fetch-bdY0RMM3.js → fetch-Bk-7vxHV.js} +1 -1
  93. package/dist-cli-web/assets/fetch-C8tTTsCm.js +1 -0
  94. package/dist-cli-web/assets/{fetch-DtnhbqTN.js → fetch-CuUeyk0N.js} +1 -1
  95. package/dist-cli-web/assets/{fetch-bhHY8rO7.js → fetch-DPRDSI39.js} +1 -1
  96. package/dist-cli-web/assets/{fetch-DGvqctIb.js → fetch-OnnCjzee.js} +1 -1
  97. package/dist-cli-web/assets/{fetch-Clj_RVUD.js → fetch-_CN1EVMt.js} +1 -1
  98. package/dist-cli-web/assets/index-B4J99zv3.css +1 -0
  99. package/dist-cli-web/assets/index-BBeqtL8d.css +1 -0
  100. package/dist-cli-web/assets/index-BCEk6ZpL.js +64 -0
  101. package/dist-cli-web/assets/index-BIHFuCJK.js +1 -0
  102. package/dist-cli-web/assets/index-BUz_Vl9U.js +2 -0
  103. package/dist-cli-web/assets/index-BWZIoPV3.css +1 -0
  104. package/dist-cli-web/assets/index-BYQV3OA5.js +1 -0
  105. package/dist-cli-web/assets/index-CVVv_6qu.js +2 -0
  106. package/dist-cli-web/assets/index-CacwXQL4.js +1 -0
  107. package/dist-cli-web/assets/{index-DMYFpctK.js → index-Colc58j-.js} +3 -3
  108. package/dist-cli-web/assets/index-DImo7TQN.js +1 -0
  109. package/dist-cli-web/assets/index-DV9zQVPV.js +137 -0
  110. package/dist-cli-web/assets/index-DXKS-q-w.css +1 -0
  111. package/dist-cli-web/assets/index-DZc5A4_J.js +1 -0
  112. package/dist-cli-web/assets/index-DkWTvE7d.js +36 -0
  113. package/dist-cli-web/assets/index-DmEn0PAI.js +1 -0
  114. package/dist-cli-web/assets/index-b9eEQeVt.js +1 -0
  115. package/dist-cli-web/assets/index-waDxab2e.css +1 -0
  116. package/dist-cli-web/assets/insight-time-range-MJxLEu6o.js +1 -0
  117. package/dist-cli-web/assets/people-page-header-DNPjaSt4.js +1 -0
  118. package/dist-cli-web/assets/prompt-BgywZQ_g.js +1 -0
  119. package/dist-cli-web/assets/relationship-galaxy-connections-Cg4G5yYE.js +1 -0
  120. package/dist-cli-web/assets/semantic-index-config-builder-bji_UxYE.js +1 -0
  121. package/dist-cli-web/assets/service-DpU9fa-l.js +1 -0
  122. package/dist-cli-web/assets/useFormControl-De24E2zT.js +1 -0
  123. package/dist-cli-web/assets/useTable-C7BH94MF.js +1 -0
  124. package/dist-cli-web/assets/useToast-CxhJkhXK.js +1 -0
  125. package/dist-cli-web/assets/vendor-echarts-DfAMQxdr.js +11 -0
  126. package/dist-cli-web/assets/{vendor-echarts-wordcloud-Ca8n6qS6.js → vendor-echarts-wordcloud-BsaEJTPY.js} +1 -1
  127. package/dist-cli-web/assets/vendor-zrender-PFmZe1EY.js +8 -0
  128. package/dist-cli-web/assets/{webworkerAll-CfZWlukP.js → webworkerAll-BRnv6GvJ.js} +1 -1
  129. package/dist-cli-web/index.html +2 -2
  130. package/package.json +1 -1
  131. package/dist/chunk-2WYXD5ZP.mjs +0 -9451
  132. package/dist/chunk-2WYXD5ZP.mjs.map +0 -1
  133. package/dist/chunk-AWXHYTD5.mjs.map +0 -1
  134. package/dist/chunk-JYBPJWE2.mjs.map +0 -1
  135. package/dist/chunk-QZCNVAH6.mjs +0 -14
  136. package/dist/chunk-QZCNVAH6.mjs.map +0 -1
  137. package/dist/chunk-XIWVJAXH.mjs.map +0 -1
  138. package/dist/chunk-ZVGDOSGG.mjs.map +0 -1
  139. package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-kN3uxTW8.js +0 -110
  140. package/dist-cli-web/assets/CanvasRenderer-Cmjtvski.js +0 -1
  141. package/dist-cli-web/assets/DataDirCleanupNotice-B5tyDzK-.js +0 -1
  142. package/dist-cli-web/assets/EChartWordcloud-Bd3L3G8I.js +0 -1
  143. package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-CKf_gC1k.js +0 -1
  144. package/dist-cli-web/assets/MessageExportModal-ODYCcSnk.js +0 -1
  145. package/dist-cli-web/assets/PageHeader-Bn7Jn8JW.js +0 -1
  146. package/dist-cli-web/assets/ThemeCard.vue_vue_type_script_setup_true_lang-CADZpPia.js +0 -1
  147. package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-I3FYjhfs.js +0 -1
  148. package/dist-cli-web/assets/annual-summary-time-range-BIADd8qE.js +0 -1
  149. package/dist-cli-web/assets/base-BpxxC5Z5.js +0 -1
  150. package/dist-cli-web/assets/cli-web-BiWUOncc.js +0 -1
  151. package/dist-cli-web/assets/fetch-DSxgaVBO.js +0 -1
  152. package/dist-cli-web/assets/index-B6Gq11lw.css +0 -1
  153. package/dist-cli-web/assets/index-BJ2lywiG.js +0 -1
  154. package/dist-cli-web/assets/index-BT3_fSP6.js +0 -2
  155. package/dist-cli-web/assets/index-BVZhP1J5.js +0 -1
  156. package/dist-cli-web/assets/index-Br8r4pu8.js +0 -1
  157. package/dist-cli-web/assets/index-Byok4VaA.css +0 -1
  158. package/dist-cli-web/assets/index-CKnnxOci.js +0 -1
  159. package/dist-cli-web/assets/index-CXnYfvTv.js +0 -137
  160. package/dist-cli-web/assets/index-CsFLLk3T.css +0 -1
  161. package/dist-cli-web/assets/index-CzoOQ7zg.js +0 -1
  162. package/dist-cli-web/assets/index-D-dTTUGj.js +0 -1
  163. package/dist-cli-web/assets/index-DEbvEKzi.js +0 -2
  164. package/dist-cli-web/assets/index-KO7uPd8W.js +0 -64
  165. package/dist-cli-web/assets/index-ZsZwPLWy.css +0 -1
  166. package/dist-cli-web/assets/index-lkmJ6dI7.js +0 -1
  167. package/dist-cli-web/assets/index-y7xPDpsW.js +0 -53
  168. package/dist-cli-web/assets/people-page-header-gjTyODWs.js +0 -1
  169. package/dist-cli-web/assets/vendor-echarts-B-i_56Av.js +0 -11
  170. package/dist-cli-web/assets/vendor-zrender-5DcYjSZk.js +0 -8
  171. /package/dist/{chat-command-QH7DXCAJ.mjs.map → chat-command-SXW67RF7.mjs.map} +0 -0
  172. /package/dist/{chunk-SWUTRDGZ.mjs.map → chunk-AAGDVTP2.mjs.map} +0 -0
  173. /package/dist/{chunk-2Q3HHVTS.mjs.map → chunk-CNEWMCGX.mjs.map} +0 -0
  174. /package/dist/{chunk-3X26JJIP.mjs.map → chunk-GVW3BDGZ.mjs.map} +0 -0
  175. /package/dist/{chunk-WJVE5Q4Y.mjs.map → chunk-JHON5FN7.mjs.map} +0 -0
  176. /package/dist/{chunk-6U2QZO3N.mjs.map → chunk-UNIKQFI5.mjs.map} +0 -0
  177. /package/dist/{chunk-C2PD3BS7.mjs.map → chunk-VDWI4A4U.mjs.map} +0 -0
  178. /package/dist/{chunk-AWGXYFIC.mjs.map → chunk-XDF6PMVZ.mjs.map} +0 -0
  179. /package/dist/{http-D2F4QTQW.mjs.map → http-LVOGJFDL.mjs.map} +0 -0
  180. /package/dist/{import-H7X2JU2O.mjs.map → import-7OU57ZHM.mjs.map} +0 -0
  181. /package/dist/{mcp-UURXRGDF.mjs.map → mcp-CUKHTTII.mjs.map} +0 -0
  182. /package/dist/{src-MHCO4HYY.mjs.map → src-LORFXAUE.mjs.map} +0 -0
  183. /package/dist/{stream-import-BHXACUCA.mjs.map → stream-import-7YUWIAD6.mjs.map} +0 -0
  184. /package/dist/{worker-runtime-JOUCP2L4.mjs.map → worker-runtime-GQ5SY7E3.mjs.map} +0 -0
@@ -1 +0,0 @@
1
- .tab-slide-enter-active[data-v-e1ba851b],.tab-slide-leave-active[data-v-e1ba851b]{transition:opacity .2s ease,transform .2s ease}.tab-slide-enter-from[data-v-e1ba851b]{opacity:0;transform:translateY(10px)}.tab-slide-leave-to[data-v-e1ba851b]{opacity:0;transform:translateY(-10px)}
@@ -1 +0,0 @@
1
- import{d as V,v as E,o as l,c as u,$ as M,a0 as z,C as e,E as o,F as r,n as O,a as d,A as P,D as _,B as F,_ as J,Q as G,b as K,ap as Q,x as X,aq as Z,w as ee,K as te,G as U,I as q,N as H,u as se,H as ae}from"./index-y7xPDpsW.js";import{_ as ne}from"./LoadingState.vue_vue_type_script_setup_true_lang-CKf_gC1k.js";import{u as oe,w as ie}from"./annual-summary-time-range-BIADd8qE.js";import{_ as re,C as le,g as ce}from"./base-BpxxC5Z5.js";import{f as ue}from"./dateFormat-B6JnNCxp.js";import{_ as j}from"./ThemeCard.vue_vue_type_script_setup_true_lang-CADZpPia.js";import"./vendor-echarts-wordcloud-Ca8n6qS6.js";import"./vendor-snapdom--nZvo8Sg.js";import"./vendor-echarts-B-i_56Av.js";import"./vendor-zrender-5DcYjSZk.js";const de=1440*60*1e3;function ge(y){const t=new Map;for(const g of y){if(g.messageCount<=0)continue;const m=me(g.date);m!==null&&t.set(m,(t.get(m)??0)+g.messageCount)}const a=[...t.keys()].sort((g,m)=>g-m);if(a.length===0)return{longestActiveStreak:0,topWeekday:null,weekdayMessageRate:null,weekendMessageRate:null};const x=Array.from({length:7},()=>0);let p=1,k=1;a.forEach((g,m)=>{const h=(new Date(g).getUTCDay()+6)%7;x[h]+=t.get(g)??0,m!==0&&(g-a[m-1]===de?(k++,p=Math.max(p,k)):k=1)});const n=x.reduce((g,m)=>g+m,0),C=x[5]+x[6],f=Math.round(C/n*100),v=x.reduce((g,m,h)=>m>x[g]?h:g,0);return{longestActiveStreak:p,topWeekday:v+1,weekdayMessageRate:100-f,weekendMessageRate:f}}function me(y){const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(y);if(!t)return null;const a=Number(t[1]),x=Number(t[2]),p=Number(t[3]),k=Date.UTC(a,x-1,p),n=new Date(k);return n.getUTCFullYear()!==a||n.getUTCMonth()!==x-1||n.getUTCDate()!==p?null:k}const he={class:"grid grid-cols-2 gap-x-3 gap-y-4 sm:grid-cols-3 lg:grid-cols-4"},ve={class:"mb-1.5 text-[10px] font-semibold text-gray-500 dark:text-zinc-400"},ye={class:"grid grid-cols-7 gap-0.5","aria-hidden":"true"},xe=["title"],pe=V({__name:"AnnualCalendarGrid",props:{range:{},data:{}},setup(y){const t=y,{t:a}=E(),x=d(()=>Math.max(...t.data.map(v=>v.messageCount),1)),p=d(()=>new Map(t.data.map(v=>[v.date,v.messageCount]))),k=d(()=>new Date(t.range.startTs*1e3)),n=d(()=>new Date(t.range.endTs*1e3)),C=d(()=>{const v=k.value,g=n.value,m=[],h=t.range.year??v.getFullYear(),T=t.range.mode==="year"?new Date(h,0,1):new Date(v.getFullYear(),v.getMonth(),1),Y=t.range.mode==="year"?new Date(h,11,1):new Date(g.getFullYear(),g.getMonth(),1);for(;T<=Y;){const w=T.getFullYear(),S=T.getMonth(),L=`${w}-${String(S+1).padStart(2,"0")}`,A=new Date(w,S+1,0).getDate(),R=Array.from({length:A},(W,b)=>{const N=b+1,$=`${L}-${String(N).padStart(2,"0")}`,s=new Date(w,S,N),c=p.value.get($)??0,D=s>=f(v)&&s<=f(g);return{key:$,day:N,count:c,inRange:D,level:D&&c>0?Math.max(1,Math.ceil(c/x.value*4)):0}});m.push({key:L,label:t.range.mode==="year"?a("insight.monthLabel",{month:S+1}):L.replace("-","/"),leadingDays:(new Date(w,S,1).getDay()+6)%7,days:R}),T.setMonth(T.getMonth()+1)}return m});function f(v){return new Date(v.getFullYear(),v.getMonth(),v.getDate())}return(v,g)=>(l(),u("div",he,[(l(!0),u(M,null,z(C.value,m=>(l(),u("div",{key:m.key,class:"min-w-0"},[e("div",ve,o(m.label),1),e("div",ye,[(l(!0),u(M,null,z(m.leadingDays,h=>(l(),u("span",{key:`blank-${h}`,class:"aspect-square"}))),128)),(l(!0),u(M,null,z(m.days,h=>(l(),u("span",{key:h.key,class:O(["aspect-square min-h-[5px] rounded-[2px]",{"opacity-30":!h.inRange,"bg-gray-100 dark:bg-zinc-800":h.level===0,"bg-pink-100 dark:bg-pink-500/15":h.level===1,"bg-pink-200 dark:bg-pink-500/30":h.level===2,"bg-pink-400 dark:bg-pink-500/50":h.level===3,"bg-pink-600 dark:bg-pink-500/75":h.level===4}]),title:`${h.key}: ${h.count} ${r(a)("insight.messages")}`},null,10,xe))),128))])]))),128))]))}}),ke=V({__name:"AnnualMonthlyTrend",props:{range:{},data:{},height:{}},setup(y){const t=y,{t:a}=E(),x=d(()=>({labels:t.data.map(p=>t.range.mode==="year"?a("insight.monthLabel",{month:Number(p.month.slice(5))}):p.month.replace("-","/")),values:t.data.map(p=>p.value)}));return(p,k)=>(l(),P(r(re),{data:x.value,height:y.height??260,"border-radius":3},null,8,["data","height"]))}}),_e={class:"grid gap-4 lg:grid-cols-12"},fe={class:"relative z-10 min-w-0 p-5 sm:p-6"},we={class:"flex flex-col gap-5 xl:flex-row xl:items-start xl:justify-between"},be={class:"min-w-0"},De={class:"text-2xl font-bold text-gray-900 dark:text-white sm:text-3xl"},Ce={class:"mt-3 space-y-1.5 text-xs font-medium text-gray-500 dark:text-zinc-400"},Me={class:"flex items-center gap-2"},Te={class:"font-mono"},Se={class:"flex flex-wrap items-center gap-x-2 gap-y-1"},$e={class:"grid grid-cols-2 gap-x-6 gap-y-4 sm:grid-cols-4 xl:shrink-0"},ze={class:"font-mono text-xl font-black tabular-nums text-gray-900 dark:text-white"},Ae={class:"mt-1 truncate text-[10px] font-medium text-gray-500 dark:text-zinc-400"},Re={class:"mt-7 flex flex-wrap items-center justify-between gap-3"},Ye={class:"text-[11px] font-bold uppercase text-pink-600 dark:text-pink-400"},Le={class:"flex rounded-lg bg-gray-100 p-0.5 dark:bg-zinc-800"},Ne=["aria-pressed","onClick"],Be={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Fe={class:"mt-2"},Ue={class:"min-w-0 p-5 sm:p-6"},je={class:"flex items-start justify-between gap-4"},We={class:"text-[11px] font-bold uppercase text-pink-600 dark:text-pink-400"},Ie={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},Ve={class:"shrink-0 text-right"},Ee={class:"font-mono text-lg font-black tabular-nums text-gray-900 dark:text-white"},qe={class:"text-[9px] text-gray-400 dark:text-zinc-500"},Oe={class:"mt-5"},Pe={class:"min-w-0 p-5 sm:p-6"},Ke={class:"text-[11px] font-bold uppercase text-pink-600 dark:text-pink-400"},Ge={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},He={key:0,class:"mt-5 grid grid-cols-2 gap-x-5 gap-y-4 sm:grid-cols-3"},Je={class:"flex items-end justify-between gap-2"},Qe={class:"truncate text-xs font-medium text-gray-600 dark:text-zinc-300"},Xe={class:"font-mono text-xs font-black tabular-nums text-gray-900 dark:text-white"},Ze={class:"mt-2 h-1 overflow-hidden rounded-full bg-gray-100 dark:bg-zinc-800"},et={class:"mt-1.5 font-mono text-[9px] text-gray-400 dark:text-zinc-500"},tt={key:1,class:"flex h-28 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},st={class:"min-w-0 p-5 sm:p-6"},at={class:"flex items-start justify-between gap-3"},nt={class:"text-[11px] font-bold uppercase text-pink-600 dark:text-pink-400"},ot={class:"mt-1 text-[10px] text-gray-400 dark:text-zinc-500"},it={class:"flex shrink-0 gap-3 text-right"},rt={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},lt={class:"text-[9px] text-gray-400 dark:text-zinc-500"},ct={class:"font-mono text-sm font-black text-gray-900 dark:text-white"},ut={key:0,class:"mt-5 flex h-24 items-end gap-2"},dt={class:"flex h-16 w-full items-end rounded-sm bg-gray-100 dark:bg-zinc-800"},gt=["title"],mt={class:"w-full truncate text-center font-mono text-[8px] text-gray-400 dark:text-zinc-500"},ht={key:1,class:"flex h-24 items-center justify-center text-xs text-gray-400 dark:text-zinc-600"},vt={class:"min-w-0 p-5 sm:p-6"},yt={class:"text-[11px] font-bold uppercase text-pink-600 dark:text-pink-400"},xt={class:"mt-4 space-y-4"},pt={class:"truncate font-mono text-sm font-black tabular-nums text-gray-900 dark:text-white"},kt={class:"mt-1 text-[9px] leading-tight font-medium text-gray-500 dark:text-zinc-400"},_t={class:"mt-0.5 truncate text-[8px] text-gray-400 dark:text-zinc-500"},ft=V({__name:"AnnualInsightBoard",props:{range:{},metrics:{},coverage:{},monthlyActivity:{},monthlyDirectContacts:{},dailyActivity:{},messageTypes:{},textLength:{}},setup(y){const t=y,{t:a}=E(),x=K("messages"),p=d(()=>t.range.mode==="year"?a("insight.overviewCard.yearTitle",{year:t.range.year}):a("insight.overviewCard.recentTitle")),k=d(()=>ue(t.range.startTs,t.range.endTs,"YYYY/MM/DD")),n=d(()=>[{key:"messages",value:t.metrics.sentMessageCount},{key:"activeDays",value:t.metrics.activeDayCount},{key:"contacts",value:t.metrics.directContactCount},{key:"dailyMessages",value:t.metrics.averageMessagesPerDay}]),C=d(()=>t.monthlyActivity.reduce((s,c)=>!s||c.messageCount>s.messageCount?c:s,null)),f=d(()=>t.dailyActivity.reduce((s,c)=>!s||c.messageCount>s.messageCount?c:s,null)),v=d(()=>[...t.messageTypes].sort((s,c)=>c.count-s.count).slice(0,6)),g=d(()=>t.messageTypes.reduce((s,c)=>s+c.count,0)),m=d(()=>t.messageTypes.find(s=>s.type===Q.TEXT)?.count??0),h=d(()=>$(m.value,g.value)),T=d(()=>Math.max(...t.textLength.buckets.map(s=>s.count),1)),Y=d(()=>{const s=Math.max(1,Math.round((t.range.endTs-t.range.startTs)/86400)+1);return $(t.metrics.activeDayCount,s)}),w=d(()=>ge(t.dailyActivity)),S=d(()=>x.value==="messages"?t.monthlyActivity.map(s=>({month:s.month,value:s.messageCount})):t.monthlyDirectContacts.map(s=>({month:s.month,value:s.contactCount}))),L=d(()=>a(x.value==="messages"?"insight.sections.overviewDescription":"insight.sections.directContactsDescription")),A=["mon","tue","wed","thu","fri","sat","sun"],R=d(()=>[[{key:"dailyContacts",value:b(t.metrics.averageDirectContactsPerDay),detail:a("insight.overviewCard.perDay")},{key:"peakMonth",value:N(C.value?.month),detail:a("insight.overviewCard.messagesCount",{count:b(C.value?.messageCount??0)})},{key:"peakDay",value:f.value?.date.slice(5).replace("-","/")??"-",detail:a("insight.overviewCard.messagesCount",{count:b(f.value?.messageCount??0)})}],[{key:"longestActiveStreak",value:b(w.value.longestActiveStreak),detail:a("insight.overviewCard.consecutiveActiveDays")},{key:"topWeekday",value:W(w.value.topWeekday),detail:a("insight.overviewCard.mostMessagesSent")},{key:"weekendMessageRate",value:w.value.weekendMessageRate===null?"-":`${w.value.weekendMessageRate}%`,detail:w.value.weekdayMessageRate===null?a("insight.noData"):a("insight.overviewCard.weekdayMessageRate",{rate:w.value.weekdayMessageRate})}]]);function W(s){return s===null?"-":a(`common.weekday.${A[s-1]}`)}function b(s){return Number.isInteger(s)?s.toLocaleString():s.toLocaleString(void 0,{maximumFractionDigits:1})}function N(s){return s?t.range.mode==="year"?a("insight.monthLabel",{month:Number(s.slice(5))}):s.replace("-","/"):"-"}function $(s,c){return c>0?Math.round(s/c*100):0}return(s,c)=>{const D=J;return l(),u("div",_e,[_(r(j),{class:"relative isolate lg:col-span-8"},{default:F(()=>[_(r(le)),e("section",fe,[e("div",we,[e("div",be,[e("h2",De,o(p.value),1),e("div",Ce,[e("div",Me,[_(D,{name:"i-heroicons-calendar",class:"h-4 w-4 opacity-70"}),e("span",Te,o(k.value),1)]),e("div",Se,[_(D,{name:"i-heroicons-circle-stack",class:"h-4 w-4 opacity-70"}),e("span",null,o(r(a)("insight.status.coverage",{analyzed:y.coverage.analyzedSessions,total:y.coverage.totalSessions})),1)])])]),e("div",$e,[(l(!0),u(M,null,z(n.value,i=>(l(),u("div",{key:i.key,class:"min-w-0"},[e("div",ze,o(b(i.value)),1),e("div",Ae,o(r(a)(`insight.kpis.${i.key}`)),1)]))),128))])]),e("div",Re,[e("h3",Ye,o(r(a)("insight.sections.overview")),1),e("div",Le,[(l(),u(M,null,z(["messages","contacts"],i=>e("button",{key:i,type:"button",class:O(["rounded-md px-2.5 py-1 text-[10px] font-medium transition-colors",x.value===i?"bg-white text-gray-900 shadow-sm dark:bg-zinc-700 dark:text-white":"text-gray-500 hover:text-gray-700 dark:text-zinc-400 dark:hover:text-zinc-200"]),"aria-pressed":x.value===i,onClick:B=>x.value=i},o(r(a)(`insight.overviewCard.monthlyTrend.${i}`)),11,Ne)),64))])]),e("p",Be,o(L.value),1),e("div",Fe,[_(ke,{range:y.range,data:S.value,height:210},null,8,["range","data"])])])]),_:1}),_(r(j),{class:"lg:col-span-4"},{default:F(()=>[e("section",Ue,[e("div",je,[e("div",null,[e("h3",We,o(r(a)("insight.overviewCard.activity")),1),e("p",Ie,o(r(a)("insight.sections.activityDescription")),1)]),e("div",Ve,[e("div",Ee,o(y.metrics.activeDayCount),1),e("div",qe,o(r(a)("insight.overviewCard.activeRate",{rate:Y.value})),1)])]),e("div",Oe,[_(pe,{range:y.range,data:y.dailyActivity},null,8,["range","data"])])])]),_:1}),_(r(j),{class:"lg:col-span-5"},{default:F(()=>[e("section",Pe,[e("h3",Ke,o(r(a)("insight.sections.messageTypes")),1),e("p",Ge,o(r(a)("insight.sections.messageTypesDescription")),1),v.value.length?(l(),u("div",He,[(l(!0),u(M,null,z(v.value,i=>(l(),u("div",{key:i.type,class:"min-w-0"},[e("div",Je,[e("span",Qe,o(r(ce)(i.type,r(a))),1),e("span",Xe,o($(i.count,g.value))+"% ",1)]),e("div",Ze,[e("div",{class:"h-full rounded-full bg-pink-500",style:G({width:`${$(i.count,g.value)}%`})},null,4)]),e("div",et,o(b(i.count)),1)]))),128))])):(l(),u("div",tt,o(r(a)("insight.noData")),1))])]),_:1}),_(r(j),{class:"lg:col-span-3"},{default:F(()=>[e("section",st,[e("div",at,[e("div",null,[e("h3",nt,o(r(a)("insight.sections.textLength")),1),e("p",ot,o(r(a)("insight.overviewCard.textRatio"))+" "+o(h.value)+"% ",1)]),e("div",it,[e("div",null,[e("div",rt,o(y.textLength.median??"-"),1),e("div",lt,o(r(a)("insight.length.median")),1)]),e("div",null,[e("div",ct,o(y.textLength.p90??"-"),1),c[0]||(c[0]=e("div",{class:"text-[9px] text-gray-400 dark:text-zinc-500"},"P90",-1))])])]),y.textLength.textMessageCount?(l(),u("div",ut,[(l(!0),u(M,null,z(y.textLength.buckets,i=>(l(),u("div",{key:i.key,class:"flex min-w-0 flex-1 flex-col items-center gap-2"},[e("div",dt,[e("div",{class:"w-full rounded-sm bg-blue-500/80 dark:bg-blue-400/80",style:G({height:`${Math.max(4,i.count/T.value*100)}%`}),title:`${i.key}: ${i.count}`},null,12,gt)]),e("span",mt,o(i.key),1)]))),128))])):(l(),u("div",ht,o(r(a)("insight.noTextData")),1))])]),_:1}),_(r(j),{class:"lg:col-span-4"},{default:F(()=>[e("section",vt,[e("h3",yt,o(r(a)("insight.overviewCard.keyMetrics")),1),e("div",xt,[(l(!0),u(M,null,z(R.value,(i,B)=>(l(),u("div",{key:B,class:O(["grid grid-cols-3 divide-x divide-gray-200 dark:divide-white/10",{"border-t border-gray-200 pt-4 dark:border-white/10":B>0}])},[(l(!0),u(M,null,z(i,I=>(l(),u("div",{key:I.key,class:"min-w-0 px-3 first:pl-0 last:pr-0"},[e("div",pt,o(I.value),1),e("div",kt,o(r(a)(`insight.overviewCard.${I.key}`)),1),e("div",_t,o(I.detail),1)]))),128))],2))),128))])])]),_:1})])}}}),wt={class:"min-h-0 flex-1 overflow-y-auto"},bt={class:"mx-auto w-full max-w-[1120px] space-y-6 px-4 py-5 sm:px-6 sm:py-6"},Dt={class:"min-w-0"},Ct={key:1,class:"flex items-center gap-2 rounded-xl border border-amber-100 bg-amber-50/50 px-4 py-2.5 text-xs text-amber-800 backdrop-blur-sm dark:border-amber-950/40 dark:bg-amber-950/20 dark:text-amber-300"},Mt={key:2,class:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-red-200 bg-red-50/50 px-4 py-2.5 text-xs text-red-800 backdrop-blur-sm dark:border-red-950/40 dark:bg-red-950/20 dark:text-red-300"},Tt={key:0,class:"flex flex-wrap items-center justify-between gap-3 rounded-xl border border-gray-200 bg-white p-4 text-xs text-gray-600 dark:border-zinc-800 dark:bg-zinc-900/50 dark:text-zinc-300"},St={key:0},$t={key:1},Wt=V({__name:"index",setup(y){const{t}=E(),a=X(),{showSettings:x}=Z(a),p=new Date().getFullYear(),k=oe(),n=K(null),C=K("");let f=null,v=0;const g=d(()=>{const s=k.modelValue.value?.state;return s?s.mode==="recent"?{mode:"recent",days:365,acceptStale:!0}:{mode:"year",year:s.year??p,acceptStale:!0}:null}),m=d(()=>JSON.stringify(g.value)),h=d(()=>(n.value?.coverage.missingOwnerSessions??0)+(n.value?.coverage.unresolvedOwnerSessions??0)),T=d(()=>n.value?.task.status==="running"),Y=d(()=>n.value?.metrics!==null&&n.value?.metrics!==void 0),w=d(()=>Y.value&&n.value?.metrics?.sentMessageCount===0),S=d(()=>(n.value?.coverage.totalSessions??0)>0&&n.value?.coverage.analyzedSessions===0&&h.value>0),L=d(()=>k.modelValue.value?.state.mode==="year"?k.modelValue.value.state.year:void 0),A=d(()=>{const s=L.value,c=n.value?.latestDataYear;return s===void 0||c===null||c===void 0||s===c?null:{year:s,latestYear:c}});ee(m,()=>{b(),g.value&&(n.value=null,R(!1))},{immediate:!0}),ie(x,()=>{R(!1)}),te(b);async function R(s){const c=g.value;if(!c)return;const D=++v;C.value="";try{const i=s?await H().recomputeAnnualSummary(c):await H().getAnnualSummary(c);if(D!==v)return;n.value=i,i.metrics&&k.setAvailableYears(i.availableDataYears),i.task.status==="running"&&W()}catch(i){if(D!==v)return;const B=i instanceof Error?i.message:String(i);C.value=B,se(`Global insight annual summary failed: ${B}`,i instanceof Error?i.stack:void 0)}}function W(){b(),f=setTimeout(()=>{R(!1)},900)}function b(){f&&(clearTimeout(f),f=null)}function N(){const s=n.value?.latestDataYear;s&&k.switchToYear(s)}function $(){a.openSettings("data","missing-owner")}return(s,c)=>{const D=J,i=ae;return l(),u("main",wt,[e("div",bt,[h.value>0?(l(),u("button",{key:0,type:"button",class:"inline-flex w-fit max-w-full items-center gap-2 rounded-lg bg-amber-50 px-3 py-2 text-left text-xs text-amber-800 transition-colors hover:bg-amber-100 dark:bg-amber-950/20 dark:text-amber-300 dark:hover:bg-amber-950/30",onClick:$},[_(D,{name:"i-heroicons-user-circle",class:"h-4 w-4 shrink-0"}),e("span",Dt,o(r(t)("insight.status.ownerIssues",{count:h.value})),1),_(D,{name:"i-heroicons-arrow-right",class:"h-3.5 w-3.5 shrink-0 opacity-70"})])):U("",!0),n.value?.cache.status==="stale"||T.value&&Y.value?(l(),u("div",Ct,[_(D,{name:"i-heroicons-arrow-path",class:"h-4 w-4 shrink-0 animate-spin text-amber-600 dark:text-amber-400"}),q(" "+o(r(t)("insight.status.updating")),1)])):U("",!0),C.value||n.value?.task.status==="failed"?(l(),u("div",Mt,[e("span",null,o(r(t)("insight.status.failed")),1),_(i,{size:"xs",color:"error",variant:"soft",icon:"i-heroicons-arrow-path",onClick:c[0]||(c[0]=B=>R(!0))},{default:F(()=>[q(o(r(t)("insight.actions.retry")),1)]),_:1})])):U("",!0),!Y.value&&!C.value&&n.value?.task.status!=="failed"?(l(),P(ne,{key:3,height:"min(52vh, 420px)",text:n.value?.task.status==="running"?r(t)("insight.status.computingProgress",{processed:n.value.task.processedSessions,total:n.value.task.totalSessions}):r(t)("insight.status.loading")},null,8,["text"])):n.value?.metrics&&n.value.textLength?(l(),u(M,{key:4},[w.value&&!S.value?(l(),u("div",Tt,[A.value?(l(),u("span",St,o(r(t)("insight.status.noDataWithLatest",A.value)),1)):(l(),u("span",$t,o(r(t)("insight.noData")),1)),A.value?(l(),P(i,{key:2,size:"xs",variant:"soft",color:"neutral",icon:"i-heroicons-arrow-right",onClick:N},{default:F(()=>[q(o(r(t)("insight.actions.switchYear",{year:A.value.latestYear})),1)]),_:1})):U("",!0)])):U("",!0),_(ft,{range:n.value.range,metrics:n.value.metrics,coverage:n.value.coverage,"monthly-activity":n.value.monthlyActivity,"monthly-direct-contacts":n.value.monthlyDirectContacts,"daily-activity":n.value.dailyActivity,"message-types":n.value.messageTypes,"text-length":n.value.textLength},null,8,["range","metrics","coverage","monthly-activity","monthly-direct-contacts","daily-activity","message-types","text-length"])],64)):U("",!0)])])}}});export{Wt as default};
@@ -1 +0,0 @@
1
- import{d as v,v as _,c as b,D as t,B as n,F as e,o as l,R as y,S as k,A as c,U as x,V as w,W as S,X as V,a as u,Y as R,Z as B}from"./index-y7xPDpsW.js";import{P as C}from"./PageHeader-Bn7Jn8JW.js";import{_ as I}from"./TimeSelect.vue_vue_type_script_setup_true_lang-I3FYjhfs.js";import{p as A}from"./annual-summary-time-range-BIADd8qE.js";import"./vendor-snapdom--nZvo8Sg.js";import"./dateFormat-B6JnNCxp.js";const D={class:"flex h-full flex-col text-gray-900 dark:bg-page-dark dark:text-gray-100",style:{"padding-top":"var(--titlebar-area-height)"}},P=v({__name:"index",setup(T){const{t:a}=_(),r=R(),d=A(),{modelValue:i,componentKey:g,initialState:p,rangeSource:h}=d,s=u(()=>r.name==="insight-time-investment"?"time-investment":r.name==="insight-relationship-changes"?"relationship-changes":"annual-summary"),f=u(()=>[{id:"annual-summary",label:a("insight.tabs.annualSummary"),icon:"i-lucide-calendar-range",to:{name:"insight-annual-summary"}},{id:"time-investment",label:a("insight.tabs.timeInvestment"),icon:"i-lucide-clock-3",to:{name:"insight-time-investment"}},{id:"relationship-changes",label:a("insight.tabs.relationshipChanges"),icon:"i-lucide-git-compare-arrows",to:{name:"insight-relationship-changes"}}]);return(U,m)=>(l(),b("div",D,[t(C,{title:e(a)("insight.title"),icon:"i-heroicons-presentation-chart-bar","icon-class":"bg-pink-600 text-white dark:bg-pink-500 dark:text-white",size:"compact"},{default:n(()=>[t(e(y),{class:"mt-3 pb-1.5","model-value":s.value,items:f.value,"aria-label":e(a)("insight.tabs.nav")},k({_:2},[s.value==="annual-summary"?{name:"right",fn:n(()=>[(l(),c(I,{key:e(g),modelValue:e(i),"onUpdate:modelValue":m[0]||(m[0]=o=>x(i)?i.value=o:null),"range-source":e(h),"allowed-modes":["recent","year"],"allowed-recent-days":[365],"initial-state":e(p)},null,8,["modelValue","range-source","initial-state"]))]),key:"0"}:void 0]),1032,["model-value","items","aria-label"])]),_:1},8,["title"]),t(e(V),null,{default:n(({Component:o})=>[t(w,{name:"insight-tab-slide",mode:"out-in"},{default:n(()=>[(l(),c(S(o),{key:s.value}))]),_:2},1024)]),_:1})]))}}),N=B(P,[["__scopeId","data-v-a94720f4"]]);export{N as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MessageExportModal-ODYCcSnk.js","assets/index-y7xPDpsW.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-B6Gq11lw.css"])))=>i.map(i=>d[i]);
2
- import{d as Y,v as K,aA as ve,w as Z,y as xe,P as he,o as n,A as V,F as t,B as J,c as d,C as e,E as o,$ as O,a0 as G,n as F,G as L,D as j,_ as ee,Q as pe,a as k,b as U,T as Re,x as De,N as Ce,a8 as Le,r as Be,L as Ne,H as Ae,I as $e,u as Ve,ay as Fe,a5 as Oe,aB as Ue,aq as Ee,U as Pe,V as We,aC as He,J as Je,au as Ge,Y as Ye,an as Ke,av as Qe,p as Ze,Z as Xe}from"./index-y7xPDpsW.js";import{_ as Se,a as Me,b as le,c as et,d as Te,e as tt,u as at,f as st,I as nt,g as it,h as ot,i as lt,j as rt,k as ct,l as ut,m as dt,n as mt,C as gt,o as pt,L as vt,D as xt,M as ht,p as ft}from"./ActionToolsPanel.vue_vue_type_script_setup_true_lang-kN3uxTW8.js";import{_ as fe}from"./LoadingState.vue_vue_type_script_setup_true_lang-CKf_gC1k.js";import{a as Ie,g as bt}from"./base-BpxxC5Z5.js";import"./vendor-echarts-wordcloud-Ca8n6qS6.js";import{u as be,x as yt,j as ye,i as ke,k as se,n as qe,t as ze,s as kt,m as _t}from"./vendor-echarts-B-i_56Av.js";import{_ as _e}from"./ThemeCard.vue_vue_type_script_setup_true_lang-CADZpPia.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-DMYFpctK.js";import"./dateFormat-B6JnNCxp.js";import"./TimeSelect.vue_vue_type_script_setup_true_lang-I3FYjhfs.js";import"./PageHeader-Bn7Jn8JW.js";import"./vendor-zrender-5DcYjSZk.js";const wt={key:0,class:"relative z-10 flex flex-col h-full"},$t={class:"flex flex-col sm:flex-row items-center sm:items-start gap-6 px-6 pt-8 pb-4 sm:px-8"},Ct={class:"w-full flex-1 min-w-0"},St={class:"flex items-center gap-x-2 sm:gap-x-3 mb-6 sm:mb-8"},Mt={class:"text-2xl sm:text-4xl font-black tracking-tight text-blue-600 dark:text-blue-400 truncate"},jt={class:"text-2xl sm:text-4xl font-black tracking-tight text-pink-600 dark:text-pink-400 truncate"},Pt={class:"grid grid-cols-2 gap-4 sm:gap-10"},Tt={class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},It={class:"flex flex-col gap-2.5"},Rt=["title","onClick"],Dt={class:"shrink-0 text-[10px] sm:text-xs font-semibold tabular-nums text-gray-400/80"},At={key:0,class:"text-xs sm:text-sm font-medium text-gray-400"},qt={class:"hidden shrink-0 sm:block"},zt={class:"px-6 pb-6 pt-2 sm:px-8 mt-auto"},Lt={class:"mb-3 flex items-center justify-between"},Bt={class:"text-[10px] font-bold uppercase tracking-widest text-gray-400 dark:text-gray-500"},Nt={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},Vt={class:"mb-4 flex items-center gap-2.5"},Ft={class:"text-sm font-bold tracking-wide text-gray-900 dark:text-white"},Ot={class:"flex items-center justify-between mb-4 w-full"},Ut={class:"flex flex-col flex-1 min-w-0"},Et={class:"truncate text-[10px] font-bold uppercase tracking-wider text-gray-400 mb-1"},Wt={class:"flex flex-col flex-1 min-w-0 items-end text-right"},Ht={class:"truncate text-[10px] font-bold uppercase tracking-wider text-gray-400 mb-1"},Jt={class:"mt-auto pt-3 border-t border-gray-100 dark:border-white/5 flex flex-col"},Gt={key:0,class:"flex items-start justify-between gap-2 mb-2 min-h-[24px]"},Yt={class:"flex flex-1 flex-nowrap overflow-hidden gap-1"},Kt={key:0,class:"text-[11px] text-gray-400"},Qt={class:"flex flex-1 flex-nowrap overflow-hidden gap-1 justify-end"},Zt={key:0,class:"text-[11px] text-gray-400"},Xt={key:1,class:"flex flex-nowrap overflow-hidden items-center gap-x-1.5 mb-2 min-h-[24px]"},ea=["onClick"],ta={key:0,class:"shrink-0 text-gray-300 dark:text-gray-600 font-normal"},aa={key:0,class:"text-[11px] text-gray-400"},sa={class:"text-[10px] leading-relaxed text-gray-500 dark:text-gray-400"},na={class:"flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},ia={class:"flex items-center gap-1.5"},oa={class:"text-[9px] font-medium uppercase tracking-widest"},la=Y({__name:"LanguagePreferenceCard",props:{data:{},enableRecordNavigation:{type:Boolean,default:!0}},emits:["wordClick"],setup(_,{emit:s}){be([yt,ye,ke]);const{t:a}=K(),$=ve(),i=_,v=s,R=k(()=>i.data.members[0]),f=k(()=>i.data.members[1]);function g(r,u){return r.length<=u?r:r.slice(0,u)+"…"}function C(r){const u=r.posDistribution,l=u.noun+u.verb+u.adjective+u.adverb+u.modalParticle+u.interjection+u.other;return l===0?a("quotes.languagePreference.pos.styleBalanced"):u.noun/l>.5?a("quotes.languagePreference.pos.styleEncyclopedia"):u.verb/l>.45?a("quotes.languagePreference.pos.styleAction"):u.adjective/l>.3?a("quotes.languagePreference.pos.styleExpressive"):a("quotes.languagePreference.pos.styleBalanced")}function N(r){const l=[["ellipsis",r.ellipsis],["exclamation",r.exclamation],["question",r.question],["tilde",r.tilde],["noPunct",r.noPunct],["period",r.period]].reduce((y,P)=>y[1]>=P[1]?y:P);return{ellipsis:a("quotes.languagePreference.punctuation.personalityDeep"),exclamation:a("quotes.languagePreference.punctuation.personalityPassionate"),question:a("quotes.languagePreference.punctuation.personalityCurious"),tilde:a("quotes.languagePreference.punctuation.personalityCheerful"),noPunct:a("quotes.languagePreference.punctuation.personalityFreeflow"),period:a("quotes.languagePreference.punctuation.personalityPrecise")}[l[0]]||"-"}function q(r,u=5){return[["...",r.ellipsis],["!",r.exclamation],["?",r.question],["~",r.tilde],["。",r.period]].filter(([,c])=>c>0).sort((c,y)=>y[1]-c[1]).slice(0,u).map(([c])=>c)}const M=["#6366f1","#ec4899","#f97316","#22c55e","#3b82f6","#8b5cf6","#14b8a6","#f43f5e","#eab308","#06b6d4"],b=k(()=>{const r=R.value,u=f.value;if(!r||!u)return[];const l=i.data.sharedWords.slice(0,6).map((c,y)=>({word:c.word,color:M[y%M.length]}));return[{icon:"i-heroicons-book-open",iconBgClass:"bg-blue-100 dark:bg-blue-500/20",iconColorClass:"text-blue-600 dark:text-blue-400",title:a("quotes.languagePreference.card.diversityTitle"),leftName:r.name,leftValue:`${r.lexicalDiversity}%`,rightName:u.name,rightValue:`${u.lexicalDiversity}%`,valueClass:"text-lg text-blue-600 dark:text-blue-400",detail:{kind:"tags-single",tags:l},desc:a("quotes.languagePreference.card.diversityDesc")},{icon:"i-heroicons-sparkles",iconBgClass:"bg-violet-100 dark:bg-violet-500/20",iconColorClass:"text-violet-600 dark:text-violet-400",title:a("quotes.languagePreference.card.styleTitle"),leftName:r.name,leftValue:C(r),rightName:u.name,rightValue:C(u),valueClass:"text-xs text-violet-600 dark:text-violet-400",detail:{kind:"tags-vs",leftTags:r.modalParticles.slice(0,4).map(c=>c.word),rightTags:u.modalParticles.slice(0,4).map(c=>c.word)},desc:a("quotes.languagePreference.card.styleDesc")},{icon:"i-heroicons-finger-print",iconBgClass:"bg-orange-100 dark:bg-orange-500/20",iconColorClass:"text-orange-600 dark:text-orange-400",title:a("quotes.languagePreference.card.punctTitle"),leftName:r.name,leftValue:N(r.punctuation),rightName:u.name,rightValue:N(u.punctuation),valueClass:"text-xs text-orange-600 dark:text-orange-400",detail:{kind:"tags-vs",leftTags:q(r.punctuation,4),rightTags:q(u.punctuation,4)},desc:a("quotes.languagePreference.card.punctDesc")}]}),A=U(null);let w=null;function S(){A.value&&(w=se(A.value,void 0,{renderer:"canvas"}),h())}function h(){if(!w||!R.value||!f.value)return;const r=R.value.posDistribution,u=f.value.posDistribution,l=[{name:a("quotes.languagePreference.card.radarFactual"),max:0},{name:a("quotes.languagePreference.card.radarActive"),max:0},{name:a("quotes.languagePreference.card.radarDescriptive"),max:0},{name:a("quotes.languagePreference.card.radarAffable"),max:0},{name:a("quotes.languagePreference.card.radarIntense"),max:0}],c=[r.noun,r.verb,r.adjective,r.modalParticle+r.interjection,r.adverb],y=[u.noun,u.verb,u.adjective,u.modalParticle+u.interjection,u.adverb];for(let W=0;W<l.length;W++)l[W].max=Math.max(c[W],y[W],1)*1.3;const P=$.value?"#9ca3af":"#6b7280";w.setOption({backgroundColor:"transparent",tooltip:{trigger:"item"},legend:{bottom:0,itemWidth:10,itemHeight:10,textStyle:{fontSize:10,color:P},data:[R.value.name,f.value.name]},radar:{indicator:l,radius:"60%",center:["50%","50%"],splitArea:{areaStyle:{color:$.value?["rgba(255,255,255,0.02)","rgba(255,255,255,0.04)"]:["rgba(0,0,0,0.01)","rgba(0,0,0,0.03)"]}},axisName:{color:P,fontSize:10},splitLine:{lineStyle:{color:$.value?"rgba(255,255,255,0.08)":"rgba(0,0,0,0.06)"}},axisLine:{lineStyle:{color:$.value?"rgba(255,255,255,0.1)":"rgba(0,0,0,0.08)"}}},series:[{type:"radar",data:[{value:c,name:R.value.name,lineStyle:{color:"#3b82f6",width:2},areaStyle:{color:"rgba(59,130,246,0.15)"},itemStyle:{color:"#3b82f6"},symbol:"circle",symbolSize:4},{value:y,name:f.value.name,lineStyle:{color:"#ec4899",width:2},areaStyle:{color:"rgba(236,72,153,0.15)"},itemStyle:{color:"#ec4899"},symbol:"circle",symbolSize:4}]}]},{notMerge:!0})}function m(){w?.resize()}return Z(()=>i.data,()=>h(),{deep:!0}),Z($,()=>{w?.dispose(),S()}),xe(()=>{S(),window.addEventListener("resize",m)}),he(()=>{window.removeEventListener("resize",m),w?.dispose()}),(r,u)=>{const l=ee;return n(),V(t(Se),null,{default:J(()=>[R.value&&f.value?(n(),d("div",wt,[e("div",$t,[e("div",Ct,[e("div",St,[e("span",Mt,o(R.value.name),1),u[0]||(u[0]=e("span",{class:"text-sm sm:text-lg font-black text-gray-300 dark:text-gray-600 italic px-1 sm:px-2 shrink-0"}," VS ",-1)),e("span",jt,o(f.value.name),1)]),e("div",Pt,[(n(!0),d(O,null,G([R.value,f.value],(c,y)=>(n(),d("div",{key:c.memberId,class:"flex flex-col gap-3"},[e("div",Tt,o(t(a)("quotes.languagePreference.card.topCatchphrases")),1),e("div",It,[(n(!0),d(O,null,G(c.catchphrases.slice(0,3),(P,W)=>(n(),d("div",{key:W,class:"flex items-center gap-2 group"},[e("span",{class:F(["text-xs sm:text-sm font-black font-mono opacity-40 transition-opacity group-hover:opacity-100",y===0?"text-blue-600 dark:text-blue-400":"text-pink-600 dark:text-pink-400"])}," #"+o(W+1),3),e("span",{class:F(["truncate text-sm font-bold text-gray-700 transition-opacity dark:text-gray-200 sm:text-base",i.enableRecordNavigation?"cursor-pointer hover:opacity-70":""]),title:P.content,onClick:H=>i.enableRecordNavigation&&v("wordClick",P.content)}," 「"+o(g(P.content,12))+"」 ",11,Rt),e("span",Dt," ×"+o(P.count),1)]))),128)),c.catchphrases.length===0?(n(),d("div",At,"-")):L("",!0)])]))),128))])]),e("div",qt,[e("div",{ref_key:"radarRef",ref:A,style:{width:"250px",height:"230px"},class:"-mt-4 sm:-mr-4"},null,512)])]),e("div",zt,[e("div",Lt,[e("span",Bt,o(t(a)("quotes.languagePreference.card.languageProfiles")),1)]),e("div",Nt,[(n(!0),d(O,null,G(b.value,c=>(n(),d("div",{key:c.title,class:"flex min-w-0 flex-col p-4"},[e("div",Vt,[e("div",{class:F(["flex h-8 w-8 shrink-0 items-center justify-center rounded-lg",c.iconBgClass])},[j(l,{name:c.icon,class:F(["h-4 w-4",c.iconColorClass])},null,8,["name","class"])],2),e("span",Ft,o(c.title),1)]),e("div",Ot,[e("div",Ut,[e("span",Et,o(c.leftName),1),e("span",{class:F(["truncate text-xl font-black font-mono leading-none",c.valueClass])},o(c.leftValue),3)]),u[1]||(u[1]=e("div",{class:"px-2 shrink-0"},[e("span",{class:"text-[10px] font-black text-gray-300 dark:text-gray-600 italic"},"VS")],-1)),e("div",Wt,[e("span",Ht,o(c.rightName),1),e("span",{class:F(["truncate text-xl font-black font-mono leading-none",c.valueClass])},o(c.rightValue),3)])]),e("div",Jt,[c.detail.kind==="tags-vs"?(n(),d("div",Gt,[e("div",Yt,[(n(!0),d(O,null,G(c.detail.leftTags,y=>(n(),d("span",{key:y,class:"shrink-0 px-1.5 py-0.5 rounded-md text-[10px] font-semibold font-mono bg-blue-50 text-blue-600 dark:bg-blue-500/10 dark:text-blue-400"},o(y),1))),128)),c.detail.leftTags.length===0?(n(),d("span",Kt,"-")):L("",!0)]),e("div",Qt,[(n(!0),d(O,null,G(c.detail.rightTags,y=>(n(),d("span",{key:y,class:"shrink-0 px-1.5 py-0.5 rounded-md text-[10px] font-semibold font-mono bg-pink-50 text-pink-600 dark:bg-pink-500/10 dark:text-pink-400"},o(y),1))),128)),c.detail.rightTags.length===0?(n(),d("span",Zt,"-")):L("",!0)])])):c.detail.kind==="tags-single"?(n(),d("div",Xt,[(n(!0),d(O,null,G(c.detail.tags.slice(0,6),(y,P)=>(n(),d(O,{key:y.word},[e("span",{class:F(["shrink-0 text-[11px] font-bold transition-opacity",i.enableRecordNavigation?"cursor-pointer hover:opacity-80":""]),style:pe({color:y.color}),onClick:W=>i.enableRecordNavigation&&v("wordClick",y.word)},o(y.word),15,ea),P<c.detail.tags.slice(0,6).length-1?(n(),d("span",ta," · ")):L("",!0)],64))),128)),c.detail.tags.length===0?(n(),d("span",aa,"-")):L("",!0)])):L("",!0),e("p",sa,o(c.desc),1)])]))),128))])]),e("div",na,[e("div",ia,[j(l,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),u[2]||(u[2]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",oa,o(t(a)("quotes.languagePreference.card.watermark")),1)])])):L("",!0)]),_:1})}}}),ra={class:"px-5 py-4 sm:px-6"},ca={class:"mb-4 flex items-center justify-between"},ua={class:"flex items-center gap-2"},da={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},ma={key:0,class:"rounded-full bg-pink-100 px-2 py-0.5 text-[10px] font-bold text-pink-600 dark:bg-pink-900/30 dark:text-pink-400"},ga={key:0,class:"grid grid-cols-2 gap-6"},pa={class:"mb-3 text-center"},va={class:"text-sm font-semibold text-blue-600 dark:text-blue-400"},xa={class:"flex flex-wrap gap-2"},ha=["title","onClick"],fa={class:"text-[10px] font-semibold opacity-60"},ba={class:"mb-3 text-center"},ya={class:"text-sm font-semibold text-pink-600 dark:text-pink-400"},ka={class:"flex flex-wrap gap-2"},_a=["title","onClick"],wa={class:"text-[10px] font-semibold opacity-60"},$a={key:1,class:"mt-4 text-center text-xs text-gray-500 dark:text-gray-400"},Ca=Y({__name:"CatchphrasePKSection",props:{members:{},enableRecordNavigation:{type:Boolean,default:!0}},emits:["wordClick"],setup(_,{emit:s}){const{t:a}=K(),$=_,i=s,v=U(20),R=[{label:"10",value:10},{label:"20",value:20},{label:"30",value:30}],f=k(()=>$.members[0]),g=k(()=>$.members[1]),C=k(()=>f.value?.catchphrases.slice(0,v.value)??[]),N=k(()=>g.value?.catchphrases.slice(0,v.value)??[]),q=k(()=>{if(!f.value||!g.value)return new Set;const w=new Set(f.value.catchphrases.map(h=>h.content)),S=new Set(g.value.catchphrases.map(h=>h.content));return new Set([...w].filter(h=>S.has(h)))}),M=[{bg:"bg-amber-50 text-amber-600 ring-1 ring-amber-500/20 dark:bg-amber-500/10 dark:text-amber-400 dark:ring-amber-500/30",text:"text-amber-700 dark:text-amber-400 font-bold",badge:"bg-amber-500 text-white dark:bg-amber-600"},{bg:"bg-slate-50 text-slate-600 ring-1 ring-slate-500/20 dark:bg-slate-500/10 dark:text-slate-400 dark:ring-slate-500/30",text:"text-slate-700 dark:text-slate-300 font-bold",badge:"bg-slate-400 text-white dark:bg-slate-500"},{bg:"bg-orange-50 text-orange-600 ring-1 ring-orange-500/20 dark:bg-orange-500/10 dark:text-orange-400 dark:ring-orange-500/30",text:"text-orange-700 dark:text-orange-400 font-bold",badge:"bg-orange-400 text-white dark:bg-orange-500"}];function b(w){return w<M.length?M[w]:{bg:"bg-gray-50/50 text-gray-600 ring-1 ring-gray-900/5 dark:bg-gray-800/30 dark:text-gray-400 dark:ring-white/10",text:"text-gray-600 dark:text-gray-400",badge:"bg-transparent text-gray-400"}}function A(w,S=20){return w.length<=S?w:w.slice(0,S)+"..."}return(w,S)=>{const h=ee;return n(),V(t(_e),null,{default:J(()=>[e("div",ra,[e("div",ca,[e("div",ua,[j(h,{name:"i-heroicons-chat-bubble-bottom-center-text",class:"h-4 w-4 text-indigo-500"}),e("span",da,o(t(a)("quotes.languagePreference.catchphrasePK.title")),1),q.value.size>0?(n(),d("span",ma,o(t(a)("quotes.languagePreference.catchphrasePK.sharedCount",{count:q.value.size})),1)):L("",!0)]),j(t(Re),{modelValue:v.value,"onUpdate:modelValue":S[0]||(S[0]=m=>v.value=m),size:"xs",items:R},null,8,["modelValue"])]),f.value&&g.value?(n(),d("div",ga,[e("div",null,[e("div",pa,[e("span",va,o(f.value.name),1)]),e("div",xa,[(n(!0),d(O,null,G(C.value,(m,r)=>(n(),d("div",{key:m.content,class:F(["inline-flex items-center gap-1.5 rounded-full px-3 py-1 transition-opacity",[$.enableRecordNavigation?"cursor-pointer hover:opacity-75":"",q.value.has(m.content)?"bg-pink-50 text-pink-600 ring-1 ring-pink-500/20 dark:bg-pink-500/10 dark:text-pink-400 dark:ring-pink-500/30 shadow-sm":b(r).bg]]),title:m.content,onClick:u=>$.enableRecordNavigation&&i("wordClick",m.content)},[r<3?(n(),d("span",{key:0,class:F(["flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-[10px] font-bold",b(r).badge])},o(r+1),3)):L("",!0),e("span",{class:F(["text-[13px] font-medium",q.value.has(m.content)?"font-bold":b(r).text])},o(A(m.content)),3),e("span",fa,"×"+o(m.count),1)],10,ha))),128))])]),e("div",null,[e("div",ba,[e("span",ya,o(g.value.name),1)]),e("div",ka,[(n(!0),d(O,null,G(N.value,(m,r)=>(n(),d("div",{key:m.content,class:F(["inline-flex items-center gap-1.5 rounded-full px-3 py-1 transition-opacity",[$.enableRecordNavigation?"cursor-pointer hover:opacity-75":"",q.value.has(m.content)?"bg-pink-50 text-pink-600 ring-1 ring-pink-500/20 dark:bg-pink-500/10 dark:text-pink-400 dark:ring-pink-500/30 shadow-sm":b(r).bg]]),title:m.content,onClick:u=>$.enableRecordNavigation&&i("wordClick",m.content)},[r<3?(n(),d("span",{key:0,class:F(["flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-[10px] font-bold",b(r).badge])},o(r+1),3)):L("",!0),e("span",{class:F(["text-[13px] font-medium",q.value.has(m.content)?"font-bold":b(r).text])},o(A(m.content)),3),e("span",wa,"×"+o(m.count),1)],10,_a))),128))])])])):L("",!0),$.enableRecordNavigation?(n(),d("p",$a,o(t(a)("quotes.languagePreference.catchphrasePK.hint")),1)):L("",!0)])]),_:1})}}}),Sa={class:"px-5 py-4 sm:px-6"},Ma={class:"mb-4 flex items-center gap-2"},ja={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Pa={class:"flex flex-col gap-4 lg:flex-row lg:gap-6"},Ta={class:"flex-1"},Ia={key:0,class:"flex shrink-0 flex-col gap-3 lg:w-48"},Ra={class:"min-w-0"},Da={class:"truncate text-xs font-semibold text-gray-500 dark:text-gray-400"},Aa=Y({__name:"PosPortraitSection",props:{members:{}},setup(_){be([qe,ze,ye,kt,ke]);const{t:s}=K(),a=ve(),$=_,i=k(()=>$.members[0]),v=k(()=>$.members[1]);function R(M){const b=M.posDistribution,A=b.noun+b.verb+b.adjective+b.adverb+b.modalParticle+b.interjection+b.other;if(A===0)return{label:s("quotes.languagePreference.pos.styleBalanced"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"};const w=b.noun/A,S=b.verb/A,h=b.adjective/A;return w>.5?{label:s("quotes.languagePreference.pos.styleEncyclopedia"),icon:"i-heroicons-book-open-solid",colorClass:"text-indigo-600 dark:text-indigo-400"}:S>.45?{label:s("quotes.languagePreference.pos.styleAction"),icon:"i-heroicons-rocket-launch-solid",colorClass:"text-orange-600 dark:text-orange-400"}:h>.3?{label:s("quotes.languagePreference.pos.styleExpressive"),icon:"i-heroicons-paint-brush-solid",colorClass:"text-pink-600 dark:text-pink-400"}:{label:s("quotes.languagePreference.pos.styleBalanced"),icon:"i-heroicons-scale-solid",colorClass:"text-cyan-600 dark:text-cyan-400"}}const f=U(null);let g=null;function C(){f.value&&(g=se(f.value,void 0,{renderer:"canvas"}),N())}function N(){if(!g||!i.value||!v.value)return;const M=i.value.posDistribution,b=v.value.posDistribution,A=[s("quotes.languagePreference.card.radarNoun"),s("quotes.languagePreference.card.radarVerb"),s("quotes.languagePreference.card.radarAdj"),s("quotes.languagePreference.card.radarModal"),s("quotes.languagePreference.card.radarAdv")],w=[M.noun,M.verb,M.adjective,M.modalParticle+M.interjection,M.adverb],S=[b.noun,b.verb,b.adjective,b.modalParticle+b.interjection,b.adverb],h=a.value?"#9ca3af":"#6b7280";g.setOption({backgroundColor:"transparent",tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},legend:{data:[i.value.name,v.value.name],top:0,textStyle:{fontSize:11,color:h}},grid:{left:80,right:20,top:36,bottom:10},xAxis:{type:"value",show:!1},yAxis:{type:"category",data:A,axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:11,color:h}},series:[{name:i.value.name,type:"bar",data:w,itemStyle:{color:"#3b82f6",borderRadius:[0,4,4,0]},barGap:"20%",barCategoryGap:"40%"},{name:v.value.name,type:"bar",data:S,itemStyle:{color:"#ec4899",borderRadius:[0,4,4,0]}}]},{notMerge:!0})}function q(){g?.resize()}return Z(()=>$.members,()=>N(),{deep:!0}),Z(a,()=>{g?.dispose(),C()}),xe(()=>{C(),window.addEventListener("resize",q)}),he(()=>{window.removeEventListener("resize",q),g?.dispose()}),(M,b)=>{const A=ee;return n(),V(t(_e),null,{default:J(()=>[e("div",Sa,[e("div",Ma,[j(A,{name:"i-heroicons-chart-bar",class:"h-4 w-4 text-violet-500"}),e("span",ja,o(t(s)("quotes.languagePreference.pos.title")),1)]),e("div",Pa,[e("div",Ta,[e("div",{ref_key:"chartRef",ref:f,style:{width:"100%",height:"220px"}},null,512)]),i.value&&v.value?(n(),d("div",Ia,[(n(!0),d(O,null,G([i.value,v.value],w=>(n(),d("div",{key:w.memberId,class:"flex min-w-0 items-center gap-3 px-1 py-3"},[j(A,{name:R(w).icon,class:F(["h-5 w-5 shrink-0",R(w).colorClass])},null,8,["name","class"]),e("div",Ra,[e("div",Da,o(w.name),1),e("div",{class:F(["truncate text-sm font-bold",R(w).colorClass])},o(R(w).label),3)])]))),128))])):L("",!0)])])]),_:1})}}}),qa={class:"px-5 py-4 sm:px-6"},za={class:"mb-4 flex items-center gap-2"},La={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Ba={key:0,class:"grid grid-cols-1 gap-6 md:grid-cols-2"},Na={class:"mb-2 flex items-center justify-between"},Va={key:1,class:"flex h-[200px] items-center justify-center text-sm text-gray-400"},Fa=Y({__name:"ModalParticleSection",props:{members:{}},setup(_){be([qe,ze,ye,ke]);const{t:s}=K(),a=ve(),$=_,i=k(()=>$.members[0]),v=k(()=>$.members[1]),R=new Set(["呀","哒","滴","啦","哇","耶"]),f=new Set(["呢","吗","嘛"]),g=new Set(["吧","喔","噢","嘛"]),C=new Set(["嗯","哦","额","呃"]);function N(m){const r={label:s("quotes.languagePreference.modal.toneMixed"),colorClass:"bg-gray-50 text-gray-600 ring-1 ring-gray-900/5 dark:bg-gray-800/50 dark:text-gray-400 dark:ring-white/10"};if(m.modalParticles.length===0)return r;let u=0,l=0,c=0,y=0,P=0;for(const H of m.modalParticles)P+=H.count,R.has(H.word)&&(u+=H.count),f.has(H.word)&&(l+=H.count),g.has(H.word)&&(c+=H.count),C.has(H.word)&&(y+=H.count);if(P===0)return r;const W=Math.max(u,l,c,y);return W===u&&u/P>.3?{label:s("quotes.languagePreference.modal.toneSoft"),colorClass:"bg-pink-50 text-pink-600 ring-1 ring-pink-500/20 dark:bg-pink-500/10 dark:text-pink-400 dark:ring-pink-500/30"}:W===l&&l/P>.3?{label:s("quotes.languagePreference.modal.toneCurious"),colorClass:"bg-violet-50 text-violet-600 ring-1 ring-violet-500/20 dark:bg-violet-500/10 dark:text-violet-400 dark:ring-violet-500/30"}:W===c&&c/P>.3?{label:s("quotes.languagePreference.modal.toneCasual"),colorClass:"bg-emerald-50 text-emerald-600 ring-1 ring-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-400 dark:ring-emerald-500/30"}:W===y&&y/P>.3?{label:s("quotes.languagePreference.modal.toneCalm"),colorClass:"bg-blue-50 text-blue-600 ring-1 ring-blue-500/20 dark:bg-blue-500/10 dark:text-blue-400 dark:ring-blue-500/30"}:r}const q=U(null),M=U(null);let b=null,A=null;function w(m,r){const u=m.modalParticles.slice(0,8),l=a.value?"#9ca3af":"#6b7280";return{backgroundColor:"transparent",tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},grid:{left:40,right:20,top:4,bottom:4},xAxis:{type:"value",show:!1},yAxis:{type:"category",data:u.map(c=>c.word).reverse(),axisLine:{show:!1},axisTick:{show:!1},axisLabel:{fontSize:12,color:l},inverse:!1},series:[{type:"bar",data:u.map(c=>c.count).reverse(),itemStyle:{color:r,borderRadius:[0,4,4,0]},barWidth:"50%",label:{show:!0,position:"right",fontSize:10,color:l,formatter:"{c}"}}]}}function S(){q.value&&i.value&&(b=se(q.value,void 0,{renderer:"canvas"}),b.setOption(w(i.value,"#3b82f6"),{notMerge:!0})),M.value&&v.value&&(A=se(M.value,void 0,{renderer:"canvas"}),A.setOption(w(v.value,"#ec4899"),{notMerge:!0}))}function h(){b?.resize(),A?.resize()}return Z(()=>$.members,()=>{b&&i.value&&b.setOption(w(i.value,"#3b82f6"),{notMerge:!0}),A&&v.value&&A.setOption(w(v.value,"#ec4899"),{notMerge:!0})},{deep:!0}),Z(a,()=>{b?.dispose(),A?.dispose(),S()}),xe(()=>{S(),window.addEventListener("resize",h)}),he(()=>{window.removeEventListener("resize",h),b?.dispose(),A?.dispose()}),(m,r)=>{const u=ee;return n(),V(t(_e),null,{default:J(()=>[e("div",qa,[e("div",za,[j(u,{name:"i-heroicons-chat-bubble-oval-left-ellipsis",class:"h-4 w-4 text-pink-500"}),e("span",La,o(t(s)("quotes.languagePreference.modal.title")),1)]),i.value&&v.value?(n(),d("div",Ba,[(n(!0),d(O,null,G([i.value,v.value],(l,c)=>(n(),d("div",{key:l.memberId},[e("div",Na,[e("span",{class:F(["text-sm font-semibold",c===0?"text-blue-600 dark:text-blue-400":"text-pink-600 dark:text-pink-400"])},o(l.name),3),e("span",{class:F(["rounded-full px-2 py-0.5 text-[10px] font-bold",N(l).colorClass])},o(N(l).label),3)]),l.modalParticles.length>0?(n(),d("div",{key:0,ref_for:!0,ref:y=>{c===0?q.value=y:M.value=y},style:{width:"100%",height:"200px"}},null,512)):(n(),d("div",Va,o(t(s)("quotes.languagePreference.modal.empty")),1))]))),128))])):L("",!0)])]),_:1})}}}),Oa={class:"px-5 py-4 sm:px-6"},Ua={class:"mb-4 flex items-center gap-2"},Ea={class:"text-[15px] font-black tracking-tight text-gray-900 dark:text-white"},Wa={key:0,class:"grid grid-cols-1 gap-6 md:grid-cols-2"},Ha={class:"mb-2 flex items-center gap-2"},Ja={key:1,class:"flex h-[200px] items-center justify-center text-sm text-gray-400"},Ga=Y({__name:"PunctuationSection",props:{members:{}},setup(_){be([_t,ye,ke]);const{t:s}=K(),a=ve(),$=_,i=k(()=>$.members[0]),v=k(()=>$.members[1]),R=["#6366f1","#ec4899","#f97316","#22c55e","#06b6d4","#8b5cf6"];function f(S){const m=[["ellipsis",S.ellipsis],["exclamation",S.exclamation],["question",S.question],["tilde",S.tilde],["noPunct",S.noPunct],["period",S.period]].reduce((u,l)=>u[1]>=l[1]?u:l);return{ellipsis:{label:s("quotes.languagePreference.punctuation.personalityDeep"),colorClass:"bg-indigo-50 text-indigo-600 ring-1 ring-indigo-500/20 dark:bg-indigo-500/10 dark:text-indigo-400 dark:ring-indigo-500/30"},exclamation:{label:s("quotes.languagePreference.punctuation.personalityPassionate"),colorClass:"bg-rose-50 text-rose-600 ring-1 ring-rose-500/20 dark:bg-rose-500/10 dark:text-rose-400 dark:ring-rose-500/30"},question:{label:s("quotes.languagePreference.punctuation.personalityCurious"),colorClass:"bg-amber-50 text-amber-600 ring-1 ring-amber-500/20 dark:bg-amber-500/10 dark:text-amber-400 dark:ring-amber-500/30"},tilde:{label:s("quotes.languagePreference.punctuation.personalityCheerful"),colorClass:"bg-pink-50 text-pink-600 ring-1 ring-pink-500/20 dark:bg-pink-500/10 dark:text-pink-400 dark:ring-pink-500/30"},noPunct:{label:s("quotes.languagePreference.punctuation.personalityFreeflow"),colorClass:"bg-emerald-50 text-emerald-600 ring-1 ring-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-400 dark:ring-emerald-500/30"},period:{label:s("quotes.languagePreference.punctuation.personalityPrecise"),colorClass:"bg-blue-50 text-blue-600 ring-1 ring-blue-500/20 dark:bg-blue-500/10 dark:text-blue-400 dark:ring-blue-500/30"}}[m[0]]||{label:"-",colorClass:"bg-gray-50 text-gray-600 ring-1 ring-gray-900/5 dark:bg-gray-800/50 dark:text-gray-400 dark:ring-white/10"}}function g(S){return[{name:"...",value:S.ellipsis},{name:"!",value:S.exclamation},{name:"?",value:S.question},{name:"~",value:S.tilde},{name:"。",value:S.period},{name:s("quotes.languagePreference.punctuation.none"),value:S.noPunct}].filter(h=>h.value>0)}const C=U(null),N=U(null);let q=null,M=null;function b(S){return{backgroundColor:"transparent",tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},series:[{type:"pie",radius:["45%","75%"],center:["50%","50%"],avoidLabelOverlap:!1,padAngle:2,itemStyle:{borderRadius:4},label:{show:!0,fontSize:10,color:a.value?"#9ca3af":"#6b7280",formatter:"{b}"},emphasis:{label:{show:!0,fontWeight:"bold"},scaleSize:4},data:S.map((h,m)=>({...h,itemStyle:{color:R[m%R.length]}}))}]}}function A(){C.value&&i.value&&(q=se(C.value,void 0,{renderer:"canvas"}),q.setOption(b(g(i.value.punctuation)),{notMerge:!0})),N.value&&v.value&&(M=se(N.value,void 0,{renderer:"canvas"}),M.setOption(b(g(v.value.punctuation)),{notMerge:!0}))}function w(){q?.resize(),M?.resize()}return Z(()=>$.members,()=>{q&&i.value&&q.setOption(b(g(i.value.punctuation)),{notMerge:!0}),M&&v.value&&M.setOption(b(g(v.value.punctuation)),{notMerge:!0})},{deep:!0}),Z(a,()=>{q?.dispose(),M?.dispose(),A()}),xe(()=>{A(),window.addEventListener("resize",w)}),he(()=>{window.removeEventListener("resize",w),q?.dispose(),M?.dispose()}),(S,h)=>{const m=ee;return n(),V(t(_e),null,{default:J(()=>[e("div",Oa,[e("div",Ua,[j(m,{name:"i-heroicons-ellipsis-horizontal",class:"h-4 w-4 text-orange-500"}),e("span",Ea,o(t(s)("quotes.languagePreference.punctuation.title")),1)]),i.value&&v.value?(n(),d("div",Wa,[(n(!0),d(O,null,G([i.value,v.value],(r,u)=>(n(),d("div",{key:r.memberId,class:"flex flex-col items-center"},[e("div",Ha,[e("span",{class:F(["text-sm font-semibold",u===0?"text-blue-600 dark:text-blue-400":"text-pink-600 dark:text-pink-400"])},o(r.name),3),e("span",{class:F(["rounded-full px-2 py-0.5 text-[10px] font-bold",f(r.punctuation).colorClass])},o(f(r.punctuation).label),3)]),r.punctuation.total>0?(n(),d("div",{key:0,ref_for:!0,ref:l=>{u===0?C.value=l:N.value=l},style:{width:"100%",height:"200px"}},null,512)):(n(),d("div",Ja,o(t(s)("quotes.languagePreference.punctuation.empty")),1))]))),128))])):L("",!0)])]),_:1})}}}),Ya={class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Ka=Y({__name:"LanguagePreferenceTab",props:{sessionId:{},timeFilter:{},enableRecordNavigation:{type:Boolean,default:!0}},setup(_){const{t:s,locale:a}=K(),$=De(),i=_,v=U(null),R=U(!1),f=k(()=>v.value&&v.value.members.length>=2);async function g(){if(i.sessionId){R.value=!0;try{v.value=await Ce().getLanguagePreferenceAnalysis(i.sessionId,a.value,i.timeFilter)}catch(N){console.error("[LanguagePreferenceTab] Failed to load:",N)}finally{R.value=!1}}}function C(N){i.enableRecordNavigation&&$.openChatRecordDrawer({keywords:[N]})}return Z(()=>[i.sessionId,i.timeFilter],()=>g(),{immediate:!0,deep:!0}),(N,q)=>(n(),d("div",Ya,[R.value?(n(),V(t(fe),{key:0,text:t(s)("quotes.languagePreference.loading")},null,8,["text"])):f.value?v.value?(n(),d(O,{key:2},[j(la,{data:v.value,"enable-record-navigation":i.enableRecordNavigation,onWordClick:C},null,8,["data","enable-record-navigation"]),j(Ca,{members:v.value.members,"enable-record-navigation":i.enableRecordNavigation,onWordClick:C},null,8,["members","enable-record-navigation"]),j(Aa,{members:v.value.members},null,8,["members"]),j(Fa,{members:v.value.members},null,8,["members"]),j(Ga,{members:v.value.members},null,8,["members"])],64)):L("",!0):(n(),V(t(Me),{key:1,text:t(s)("quotes.languagePreference.empty")},null,8,["text"]))]))}}),Qa={class:"flex min-w-0 flex-col p-4"},Za={class:"mb-2 min-h-8"},Xa={class:"flex items-center justify-between gap-2"},es={class:"flex min-w-0 items-center gap-2"},ts={class:"truncate text-xs font-bold tracking-wide text-gray-900 dark:text-white"},as={key:0,class:"shrink-0"},ss={class:"flex h-full flex-col"},ns={class:"grid grid-cols-2 gap-2"},is={class:"flex min-w-0 flex-col items-center px-1 py-1.5 text-center"},os=["title"],ls={class:"flex min-w-0 flex-col items-center px-1 py-1.5 text-center"},rs=["title"],cs={class:"mt-auto pt-3 min-h-8 text-[10px] leading-relaxed text-gray-500 dark:text-gray-400 sm:min-h-6"},ge=Y({__name:"RelationshipMetricCard",props:{title:{},iconName:{},iconBgClass:{},iconColorClass:{},leftName:{default:"—"},leftValue:{default:"--"},rightName:{default:"—"},rightValue:{default:"--"},valueClass:{default:"text-gray-700 dark:text-gray-200"},description:{default:""}},setup(_){const s=Le(),a=k(()=>!!s["header-extra"]);return($,i)=>{const v=ee;return n(),d("div",Qa,[e("div",Za,[e("div",Xa,[e("div",es,[e("div",{class:F(["flex h-6 w-6 shrink-0 items-center justify-center rounded-full",_.iconBgClass])},[j(v,{name:_.iconName,class:F(["h-3.5 w-3.5",_.iconColorClass])},null,8,["name","class"])],2),e("span",ts,o(_.title),1)]),a.value?(n(),d("div",as,[Be($.$slots,"header-extra")])):L("",!0)])]),e("div",ss,[e("div",ns,[e("div",is,[e("div",{class:"w-full truncate text-[10px] font-semibold tracking-wide text-gray-500 dark:text-gray-400",title:_.leftName},o(_.leftName),9,os),e("div",{class:F(["mt-2 font-black font-mono leading-none tabular-nums",_.valueClass])},o(_.leftValue),3)]),e("div",ls,[e("div",{class:"w-full truncate text-[10px] font-semibold tracking-wide text-gray-500 dark:text-gray-400",title:_.rightName},o(_.rightName),9,rs),e("div",{class:F(["mt-2 font-black font-mono leading-none tabular-nums",_.valueClass])},o(_.rightValue),3)])]),e("p",cs,o(_.description),1)])])}}}),us={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},ds={class:"space-y-6"},ms={class:"relative z-10 flex flex-col items-center justify-center gap-10 px-6 pt-10 pb-6 sm:px-8 lg:flex-row lg:items-start lg:justify-between lg:gap-8 xl:gap-12"},gs={class:"flex min-w-0 max-w-full flex-1 flex-col items-center justify-center lg:items-start"},ps={class:"flex flex-col text-[15px] leading-relaxed text-gray-600 dark:text-gray-300"},vs={class:"mb-2 text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},xs={class:"mb-4 flex min-w-0 flex-wrap items-baseline gap-2"},hs={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},fs={class:"font-black text-5xl tracking-tight text-gray-900 dark:text-white"},bs={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},ys={class:"flex min-w-0 max-w-full flex-wrap items-baseline gap-x-1.5 gap-y-1"},ks={class:"text-base font-medium text-gray-600 dark:text-gray-300"},_s={class:"font-black text-3xl text-pink-500 dark:text-pink-400"},ws={class:"text-base font-medium text-gray-600 dark:text-gray-300"},$s={class:"max-w-full break-all text-xl font-bold leading-snug text-gray-900 dark:text-white"},Cs={class:"text-base font-medium text-gray-600 dark:text-gray-300"},Ss={class:"mt-8 flex w-full max-w-[320px] items-center justify-between gap-4"},Ms={class:"flex flex-1 flex-col items-center overflow-hidden"},js=["title"],Ps={class:"mt-1 text-2xl font-black text-blue-500 dark:text-blue-400"},Ts={class:"mt-0.5 text-[10px] font-medium text-gray-400"},Is={class:"flex flex-1 flex-col items-center overflow-hidden"},Rs=["title"],Ds={class:"mt-1 text-2xl font-black text-pink-500 dark:text-pink-400"},As={class:"mt-0.5 text-[10px] font-medium text-gray-400"},qs={key:0,class:"flex min-w-0 w-full max-w-[400px] flex-1 flex-col justify-center lg:max-w-[460px]"},zs={class:"mb-2 flex items-center justify-between px-1"},Ls={class:"text-sm font-bold text-gray-900 dark:text-white"},Bs={class:"text-[10px] font-medium text-gray-500 dark:text-gray-400"},Ns={class:"w-full"},Vs={class:"h-[200px] w-full"},Fs={class:"relative z-10 grid grid-cols-2 gap-3 p-4 pt-2 sm:p-6 sm:pt-2 lg:grid-cols-4"},Os={class:"relative z-10 flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},Us={class:"flex items-center gap-1.5"},Es={class:"text-[9px] font-medium uppercase tracking-widest"},Ws={class:"px-4 pb-5 sm:px-6 sm:pb-6"},Hs={key:0,class:"mt-6"},Js={class:"mb-3 text-xs font-semibold tracking-wide text-gray-400 uppercase dark:text-gray-500"},Gs={class:"grid gap-x-8 gap-y-4 sm:grid-cols-3"},Ys={class:"min-w-0"},Ks={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},Qs=["title"],Zs={class:"mt-0.5 text-xs text-gray-500 dark:text-gray-400"},Xs={class:"mt-5 flex justify-center"},en={key:1,class:"mt-3 overflow-x-auto rounded-lg border border-gray-200/80 dark:border-white/10"},tn={class:"min-w-full text-left text-sm"},an={class:"bg-gray-50/80 text-xs text-gray-500 dark:bg-white/[0.03] dark:text-gray-400"},sn={scope:"col",class:"px-4 py-2.5 font-medium"},nn={scope:"col",class:"px-4 py-2.5 text-right font-medium"},on={scope:"col",class:"px-4 py-2.5 text-right font-medium"},ln={scope:"col",class:"max-w-[180px] truncate px-4 py-2.5 text-right font-medium"},rn={scope:"col",class:"max-w-[180px] truncate px-4 py-2.5 text-right font-medium"},cn={class:"divide-y divide-gray-100 dark:divide-white/5"},un={class:"whitespace-nowrap px-4 py-2.5 font-medium text-gray-700 dark:text-gray-300"},dn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},mn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},gn={class:"whitespace-nowrap px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},pn={class:"whitespace-nowrap px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},vn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},xn={class:"px-4 py-2.5 text-right tabular-nums text-gray-600 dark:text-gray-400"},hn=Y({__name:"PrivateRelationshipView",props:{sessionId:{},timeFilter:{}},setup(_){const{t:s,locale:a}=K(),$=_,i=U(null),v=U(!1),R=U(!1),f=U("activity"),g=U(!1),C=U(300);async function N(x){if(!$.sessionId)return;const p=x?.localOnly==="perseverance";p?R.value=!0:v.value=!0;try{i.value=await Ce().getRelationshipStats($.sessionId,$.timeFilter,{perseveranceThreshold:C.value})}catch(z){console.error("Failed to load relationship stats:",z)}finally{p?R.value=!1:v.value=!1}}Z(()=>[$.sessionId,$.timeFilter],()=>N(),{immediate:!0,deep:!0});const q=[{label:"1m",value:60},{label:"3m",value:180},{label:"5m",value:300},{label:"10m",value:600},{label:"30m",value:1800}];function M(x){C.value!==x&&(C.value=x,N({localOnly:"perseverance"}))}const b=k({get:()=>C.value,set:x=>M(x)});function A(x){return s("views.relationship.perseverance.thresholdMinutes",{n:Math.round(x/60)})}const w=k(()=>s("views.relationship.perseverance.hintWithThreshold",{threshold:A(C.value)})),S=k(()=>i.value?.hasSessionIndex&&i.value.totalSessions>0),h=k(()=>i.value?.members[0]),m=k(()=>i.value?.members[1]),r=k(()=>{if(!h.value||!i.value)return 50;const x=(h.value.totalInitiateCount??0)+(m.value?.totalInitiateCount??0);return x===0?50:Math.round(h.value.totalInitiateCount/x*100)}),u=k(()=>{if(!i.value||i.value.months.length===0)return"";const x=[...i.value.months].sort((D,I)=>D.month.localeCompare(I.month)),p=x[0].month.replace("-","/"),z=x[x.length-1].month.replace("-","/");return p===z?p:`${p} – ${z}`}),l=k(()=>a.value.startsWith("en")?"max-w-[420px]":"max-w-[320px]"),c=k(()=>{if(!i.value||i.value.months.length===0||!h.value)return{};const x=[...i.value.months].sort((B,te)=>B.month.localeCompare(te.month)),p=x.map(B=>P(B.month)),z=h.value.name,D=m.value?.name??"—",I=x.map(B=>{const te=B.members.find(me=>me.memberId===h.value.memberId);return!te||B.totalSessions===0?50:Math.round(te.initiateCount/B.totalSessions*100)});return{tooltip:{trigger:"axis",formatter(B){const te=B[0],me=te.value;return`${te.axisValue}<br/>${z}: ${me}%<br/>${D}: ${100-me}%`}},grid:{left:40,right:20,top:20,bottom:30},xAxis:{type:"category",data:p,axisLabel:{fontSize:11}},yAxis:{type:"value",min:0,max:100,axisLabel:{formatter:"{value}%",fontSize:11},splitLine:{lineStyle:{type:"dashed"}}},series:[{type:"line",data:I,smooth:!0,symbol:"circle",symbolSize:6,lineStyle:{width:2,color:"#3b82f6"},itemStyle:{color:"#3b82f6"},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(59, 130, 246, 0.15)"},{offset:1,color:"rgba(59, 130, 246, 0)"}]}},markLine:{silent:!0,data:[{yAxis:50,lineStyle:{type:"dashed",color:"#9ca3af"}}],label:{show:!1},symbol:"none"}}]}});function y(x){const[p,z]=x.split("-");return s("views.relationship.monthFormat",{year:p,month:Number.parseInt(z,10)})}function P(x){const p=x.split("-");return s("views.relationship.monthShortFormat",{month:Number.parseInt(p[1],10)})}function W(x){return!x||!i.value?.iceBreakers?.length?0:i.value.iceBreakers.filter(p=>p.memberId===x).reduce((p,z)=>p+z.count,0)}function H(x){if(!x||!i.value?.responseLatency?.length)return null;const p=i.value.responseLatency.find(z=>z.memberId===x);return p?p.avgResponseTime:null}function ne(x){return!x||!i.value?.perseverance?.length?0:i.value.perseverance.find(z=>z.memberId===x)?.totalDoubleTexts??0}function re(x){const p=H(x);return p!=null?T(p):"--"}function ce(x){return i.value?.monthlyResponseLatency?.find(p=>p.month===x)?.members??[]}function ue(x){return i.value?.monthlyPerseverance?.find(p=>p.month===x)?.members??[]}function ie(x,p){return p?ce(x).find(D=>D.memberId===p)?.avgResponseTime??null:null}function de(x,p){const z=ie(x,p);return z==null?"—":T(z)}function ae(x,p){return p?ue(x).find(D=>D.memberId===p)?.doubleTextCount??0:0}function oe(x){return i.value?.iceBreakers?.filter(p=>p.month===x).reduce((p,z)=>p+z.count,0)??0}function Q(x){const p=ce(x),z=p.reduce((D,I)=>D+I.responseCount,0);return z===0?null:p.reduce((D,I)=>D+I.avgResponseTime*I.responseCount,0)/z}function T(x){const p=Math.max(0,Math.round(x));if(p<60)return s("views.relationship.responseLatency.seconds",{n:p});if(p<3600){const I=Math.floor(p/60),B=p%60;return s("views.relationship.responseLatency.minutesSeconds",{m:I,s:B})}const z=Math.floor(p/3600),D=Math.floor(p%3600/60);return D===0?s("views.relationship.responseLatency.hours",{n:z}):s("views.relationship.responseLatency.hoursMinutes",{h:z,m:D})}const X=k(()=>[...i.value?.months??[]].sort((x,p)=>x.month.localeCompare(p.month))),we=k(()=>[{label:s("views.relationship.trajectory.metrics.activity"),value:"activity"},{label:s("views.relationship.trajectory.metrics.response"),value:"response"},{label:s("views.relationship.trajectory.metrics.perseverance"),value:"perseverance"}]),E=k(()=>{const x=X.value,p=new Set(x.map(I=>I.month.slice(0,4))).size>1,z=x.map(I=>p?I.month.replace("-","/"):P(I.month)),D={color:["#3b82f6","#ec4899"],tooltip:{trigger:"axis"},legend:{top:4,textStyle:{fontSize:11}},grid:{left:52,right:24,top:44,bottom:34},xAxis:{type:"category",data:z,axisTick:{show:!1},axisLabel:{fontSize:11}},yAxis:{type:"value",min:0,minInterval:1,axisLabel:{fontSize:11},splitLine:{lineStyle:{type:"dashed"}}}};return f.value==="activity"?{...D,series:[{name:s("views.relationship.trajectory.conversations"),type:"bar",data:x.map(I=>I.totalSessions),barMaxWidth:32,itemStyle:{borderRadius:[4,4,0,0]}},{name:s("views.relationship.trajectory.iceBreaks"),type:"line",data:x.map(I=>oe(I.month)),smooth:!0,symbolSize:7,lineStyle:{width:2}}]}:f.value==="response"?{...D,tooltip:{trigger:"axis",valueFormatter(I){return typeof I=="number"?T(I):String(I??"—")}},yAxis:{type:"value",min:0,axisLabel:{fontSize:11,formatter(I){return T(I)}},splitLine:{lineStyle:{type:"dashed"}}},series:[{name:h.value?.name??"—",type:"line",data:x.map(I=>ie(I.month,h.value?.memberId)),connectNulls:!1,smooth:!0,symbolSize:7,lineStyle:{width:2}},{name:m.value?.name??"—",type:"line",data:x.map(I=>ie(I.month,m.value?.memberId)),connectNulls:!1,smooth:!0,symbolSize:7,lineStyle:{width:2}}]}:{...D,series:[{name:h.value?.name??"—",type:"bar",data:x.map(I=>ae(I.month,h.value?.memberId)),barMaxWidth:24,itemStyle:{borderRadius:[4,4,0,0]}},{name:m.value?.name??"—",type:"bar",data:x.map(I=>ae(I.month,m.value?.memberId)),barMaxWidth:24,itemStyle:{borderRadius:[4,4,0,0]}}]}}),je=k(()=>{const x=X.value.reduce((D,I)=>!D||I.totalSessions>D.totalSessions?I:D,null),p=X.value.map(D=>({month:D.month,count:oe(D.month)})).filter(D=>D.count>0).sort((D,I)=>I.count-D.count)[0],z=X.value.map(D=>({month:D.month,value:Q(D.month)})).filter(D=>D.value!=null).sort((D,I)=>D.value-I.value)[0];return[x&&x.totalSessions>0?{icon:"i-heroicons-chart-bar-square-solid",iconClass:"bg-blue-50 text-blue-500 dark:bg-blue-500/10 dark:text-blue-400",title:s("views.relationship.trajectory.activityPeak"),month:y(x.month),detail:s("views.relationship.trajectory.activityPeakDetail",{count:x.totalSessions})}:null,p?{icon:"i-heroicons-fire-solid",iconClass:"bg-pink-50 text-pink-500 dark:bg-pink-500/10 dark:text-pink-400",title:s("views.relationship.trajectory.iceBreakPeak"),month:y(p.month),detail:s("views.relationship.trajectory.iceBreakPeakDetail",{count:p.count})}:null,z?{icon:"i-heroicons-clock-solid",iconClass:"bg-blue-50 text-blue-500 dark:bg-blue-500/10 dark:text-blue-400",title:s("views.relationship.trajectory.fastestResponse"),month:y(z.month),detail:s("views.relationship.trajectory.fastestResponseDetail",{duration:T(z.value)})}:null].filter(D=>D!=null)});return(x,p)=>{const z=Ne,D=ee,I=Ae;return n(),d("div",{class:F(v.value?"h-full":"")},[v.value?(n(),V(t(fe),{key:0,variant:"page",text:t(s)("common.loading")},null,8,["text"])):(n(),d("div",us,[i.value&&!S.value?(n(),V(t(Me),{key:0,icon:"i-heroicons-heart",title:t(s)("views.relationship.empty.title"),description:t(s)("views.relationship.empty.description")},null,8,["title","description"])):i.value&&S.value?(n(),d(O,{key:1},[e("div",ds,[j(t(Se),{id:"shareable-poster"},{default:J(()=>[e("div",ms,[e("div",gs,[e("div",{class:F(["flex w-fit min-w-0 flex-col items-start text-left",l.value])},[e("div",ps,[e("p",vs,o(u.value),1),e("div",xs,[e("span",hs,o(t(s)("views.relationship.hero.totalSessionsPrefix")),1),e("span",fs,o(i.value.totalSessions),1),e("span",bs,o(t(s)("views.relationship.hero.totalSessionsSuffix")),1)]),e("div",ys,[e("span",ks,o(t(s)("views.relationship.hero.initiativePrefix")),1),e("span",_s,o(r.value>=50?r.value:100-r.value)+"% ",1),e("span",ws,o(t(s)("views.relationship.hero.initiativeByPrefix")),1),e("span",$s,o(r.value>=50?h.value?.name:m.value?.name),1),e("span",Cs,o(t(s)("views.relationship.hero.initiativeBySuffix")),1)])]),e("div",Ss,[e("div",Ms,[e("div",{class:"w-full truncate text-center text-xs font-bold text-gray-500 dark:text-gray-400",title:h.value?.name},o(h.value?.name),9,js),e("div",Ps,o(h.value?.totalInitiateCount),1),e("div",Ts,o(t(s)("views.relationship.hero.initiateTimes")),1)]),p[3]||(p[3]=e("div",{class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-gray-100 font-black text-[10px] italic text-gray-400 shadow-inner dark:bg-page-dark/80 dark:text-gray-500"}," VS ",-1)),e("div",Is,[e("div",{class:"w-full truncate text-center text-xs font-bold text-gray-500 dark:text-gray-400",title:m.value?.name},o(m.value?.name),9,Rs),e("div",Ds,o(m.value?.totalInitiateCount),1),e("div",As,o(t(s)("views.relationship.hero.initiateTimes")),1)])])],2)]),i.value.months.length>=2?(n(),d("div",qs,[e("div",zs,[e("span",Ls,o(t(s)("views.relationship.trend.title")),1),e("span",Bs,o(t(s)("views.relationship.trend.hint",{name:h.value?.name??""})),1)]),e("div",Ns,[e("div",Vs,[j(t(Ie),{option:c.value,height:200},null,8,["option"])])])])):L("",!0)]),e("div",Fs,[j(ge,{title:t(s)("views.relationship.closerTitle"),"icon-name":"i-heroicons-hand-raised-solid","icon-bg-class":"bg-blue-100 dark:bg-blue-500/20","icon-color-class":"text-blue-600 dark:text-blue-400","left-name":h.value?.name,"left-value":h.value?.totalCloseCount??0,"right-name":m.value?.name,"right-value":m.value?.totalCloseCount??0,"value-class":"text-lg text-blue-600 dark:text-blue-400",description:t(s)("views.relationship.closerHint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(ge,{title:t(s)("views.relationship.iceBreaker.title"),"icon-name":"i-heroicons-fire-solid","icon-bg-class":"bg-pink-100 dark:bg-pink-500/20","icon-color-class":"text-pink-600 dark:text-pink-400","left-name":h.value?.name,"left-value":W(h.value?.memberId),"right-name":m.value?.name,"right-value":W(m.value?.memberId),"value-class":"text-lg text-pink-600 dark:text-pink-400",description:t(s)("views.relationship.iceBreaker.hint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(ge,{title:t(s)("views.relationship.responseLatency.title"),"icon-name":"i-heroicons-clock-solid","icon-bg-class":"bg-amber-100 dark:bg-amber-500/20","icon-color-class":"text-amber-600 dark:text-amber-400","left-name":h.value?.name,"left-value":re(h.value?.memberId),"right-name":m.value?.name,"right-value":re(m.value?.memberId),"value-class":"text-base text-amber-600 dark:text-amber-400",description:t(s)("views.relationship.responseLatency.hint")},null,8,["title","left-name","left-value","right-name","right-value","description"]),j(ge,{title:t(s)("views.relationship.perseverance.title"),"icon-name":"i-heroicons-arrow-path-solid","icon-bg-class":"bg-purple-100 dark:bg-purple-500/20","icon-color-class":"text-purple-600 dark:text-purple-400","left-name":h.value?.name,"left-value":ne(h.value?.memberId),"right-name":m.value?.name,"right-value":ne(m.value?.memberId),"value-class":"text-lg text-purple-600 dark:text-purple-400",description:w.value},{"header-extra":J(()=>[j(z,{modelValue:b.value,"onUpdate:modelValue":p[0]||(p[0]=B=>b.value=B),items:q,"value-key":"value",size:"xs",class:"relative z-[120] w-16",ui:{content:"z-[121]"},disabled:R.value},null,8,["modelValue","disabled"])]),_:1},8,["title","left-name","left-value","right-name","right-value","description"])]),e("div",Os,[e("div",Us,[j(D,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),p[4]||(p[4]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",Es,o(t(s)("views.relationship.watermarkReport")),1)])]),_:1})]),j(t(le),{title:t(s)("views.relationship.trajectory.title"),description:t(s)("views.relationship.trajectory.description"),"show-divider":!1},{headerRight:J(()=>[j(t(Re),{modelValue:f.value,"onUpdate:modelValue":p[1]||(p[1]=B=>f.value=B),items:we.value,size:"sm",class:"max-w-[58vw] sm:max-w-none"},null,8,["modelValue","items"])]),default:J(()=>[e("div",Ws,[j(t(Ie),{option:E.value,height:280},null,8,["option"]),je.value.length>0?(n(),d("div",Hs,[e("p",Js,o(t(s)("views.relationship.trajectory.keyMoments")),1),e("div",Gs,[(n(!0),d(O,null,G(je.value,B=>(n(),d("div",{key:B.title,class:"flex min-w-0 items-start gap-3 py-1"},[e("div",{class:F(["flex h-8 w-8 shrink-0 items-center justify-center rounded-lg",B.iconClass])},[j(D,{name:B.icon,class:"h-4 w-4"},null,8,["name"])],2),e("div",Ys,[e("p",Ks,o(B.title),1),e("p",{class:"mt-0.5 truncate text-sm font-semibold text-gray-900 dark:text-white",title:B.month},o(B.month),9,Qs),e("p",Zs,o(B.detail),1)])]))),128))])])):L("",!0),e("div",Xs,[j(I,{color:"neutral",variant:"ghost",size:"sm",icon:g.value?"i-heroicons-chevron-up":"i-heroicons-chevron-down",onClick:p[2]||(p[2]=B=>g.value=!g.value)},{default:J(()=>[$e(o(g.value?t(s)("views.relationship.trajectory.hideAll"):t(s)("views.relationship.trajectory.showAll")),1)]),_:1},8,["icon"])]),g.value?(n(),d("div",en,[e("table",tn,[e("thead",an,[e("tr",null,[e("th",sn,o(t(s)("views.relationship.trajectory.month")),1),f.value==="activity"?(n(),d(O,{key:0},[e("th",nn,o(t(s)("views.relationship.trajectory.conversations")),1),e("th",on,o(t(s)("views.relationship.trajectory.iceBreaks")),1)],64)):(n(),d(O,{key:1},[e("th",ln,o(h.value?.name),1),e("th",rn,o(m.value?.name),1)],64))])]),e("tbody",cn,[(n(!0),d(O,null,G([...X.value].reverse(),B=>(n(),d("tr",{key:B.month},[e("td",un,o(y(B.month)),1),f.value==="activity"?(n(),d(O,{key:0},[e("td",dn,o(B.totalSessions),1),e("td",mn,o(oe(B.month)),1)],64)):f.value==="response"?(n(),d(O,{key:1},[e("td",gn,o(de(B.month,h.value?.memberId)),1),e("td",pn,o(de(B.month,m.value?.memberId)),1)],64)):(n(),d(O,{key:2},[e("td",vn,o(ae(B.month,h.value?.memberId)),1),e("td",xn,o(ae(B.month,m.value?.memberId)),1)],64))]))),128))])])])):L("",!0)])]),_:1},8,["title","description"])],64)):L("",!0)]))],2)}}}),fn={class:"relative z-10 px-6 pt-8 pb-5 sm:px-8 sm:pt-10"},bn={class:"flex flex-col gap-8 lg:flex-row lg:items-center lg:justify-between lg:gap-12"},yn={class:"min-w-0 flex-1"},kn={class:"text-sm font-medium tracking-wide text-gray-500 dark:text-gray-400"},_n={class:"mt-3 flex flex-wrap items-baseline gap-x-2 gap-y-1"},wn={class:"text-xl font-medium text-gray-700 dark:text-gray-300"},$n={class:"text-4xl font-black tracking-tight text-gray-900 dark:text-white sm:text-5xl"},Cn={class:"mt-3 max-w-xl text-sm leading-6 text-gray-500 dark:text-gray-400"},Sn={class:"w-full min-w-0 lg:max-w-[380px]"},Mn={class:"mb-3 flex items-center justify-between gap-4"},jn={class:"text-xs font-bold tracking-wide text-gray-700 dark:text-gray-300"},Pn={class:"text-[10px] font-medium text-gray-400 dark:text-gray-500"},Tn=["title"],In={class:"mt-2 flex justify-between text-[10px] font-medium text-gray-400 dark:text-gray-500"},Rn={class:"relative z-10 grid grid-cols-2 gap-x-3 gap-y-4 px-4 pt-2 pb-6 sm:px-6 lg:grid-cols-4"},Dn={class:"min-w-0"},An={class:"mt-1 truncate text-[10px] font-semibold text-gray-600 dark:text-gray-300"},qn={class:"mt-0.5 line-clamp-2 text-[9px] leading-4 text-gray-400 dark:text-gray-500"},zn={class:"relative z-10 flex items-center justify-between px-6 pb-4 opacity-40 mix-blend-luminosity dark:opacity-30 sm:px-8 sm:pb-5"},Ln={class:"flex items-center gap-1.5"},Bn={class:"text-[9px] font-medium uppercase tracking-widest"},Nn=Y({__name:"JourneyReportCard",props:{stats:{},filtered:{type:Boolean}},setup(_){const s=_,{t:a,locale:$}=K(),i=k(()=>new Intl.NumberFormat($.value)),v=k(()=>new Intl.DateTimeFormat($.value,{year:"numeric",month:"short",day:"numeric"})),R=k(()=>new Intl.DateTimeFormat($.value,{year:"numeric",month:"short"})),f=k(()=>s.stats.range),g=k(()=>Math.max(...s.stats.months.map(m=>m.messageCount),1)),C=k(()=>({gridTemplateColumns:`repeat(${s.stats.months.length}, minmax(2px, 1fr))`,gap:s.stats.months.length>96?"1px":"2px"})),N=k(()=>{const m=f.value.spanDays;if(m<30)return a("views.journey.duration.days",{count:m});const r=Math.floor(m/365),u=Math.floor(m%365/30);return r>0?u>0?a("views.journey.duration.yearsMonths",{years:r,months:u}):a("views.journey.duration.years",{count:r}):a("views.journey.duration.months",{count:Math.max(1,u)})}),q=k(()=>[{icon:"i-heroicons-sparkles-solid",colorClass:"text-pink-500 dark:text-pink-400",label:a("views.journey.metrics.peakMonth"),value:s.stats.peakMonth?A(s.stats.peakMonth.month):"—",subtext:s.stats.peakMonth?a("views.journey.metrics.messagesAndDays",{messages:M(s.stats.peakMonth.messageCount),days:M(s.stats.peakMonth.activeDays)}):"—"},{icon:"i-heroicons-calendar-days-solid",colorClass:"text-indigo-500 dark:text-indigo-400",label:a("views.journey.metrics.activeMonths"),value:a("views.journey.metrics.monthsRatio",{active:M(f.value.activeMonths),total:M(f.value.spanMonths)}),subtext:a("views.journey.metrics.activeDays",{count:M(f.value.activeDays)})},{icon:"i-heroicons-chat-bubble-left-right-solid",colorClass:"text-blue-500 dark:text-blue-400",label:a("views.journey.metrics.longestConversation"),value:s.stats.longestSegment?w(s.stats.longestSegment.durationSeconds):"—",subtext:s.stats.longestSegment?a("views.journey.metrics.conversationDetail",{date:b(s.stats.longestSegment.startTs),count:M(s.stats.longestSegment.messageCount)}):a("views.journey.metrics.noIndex")},{icon:"i-heroicons-moon-solid",colorClass:"text-violet-500 dark:text-violet-400",label:a("views.journey.metrics.longestSilence"),value:s.stats.longestSilence?w(s.stats.longestSilence.durationSeconds):"—",subtext:s.stats.longestSilence?s.stats.longestSilence.reopenedBy?a("views.journey.metrics.reopenedBy",{name:s.stats.longestSilence.reopenedBy.name}):a("views.journey.metrics.reopened"):s.stats.hasSessionIndex?a("views.journey.metrics.noSilence"):a("views.journey.metrics.noIndex")}]);function M(m){return i.value.format(m)}function b(m){return v.value.format(m*1e3)}function A(m){const[r,u]=m.split("-").map(Number);return R.value.format(new Date(r,u-1,1))}function w(m){const r=Math.max(0,Math.round(m/60));if(r<1)return a("views.journey.duration.lessThanMinute");if(r<60)return a("views.journey.duration.minutes",{count:r});const u=Math.floor(r/60);if(u<24){const y=r%60;return y>0?a("views.journey.duration.hoursMinutes",{hours:u,minutes:y}):a("views.journey.duration.hours",{count:u})}const l=Math.floor(u/24),c=u%24;return c>0?a("views.journey.duration.daysHours",{days:l,hours:c}):a("views.journey.duration.days",{count:l})}function S(m){if(m===0)return"4px";const r=Math.sqrt(m/g.value);return`${Math.round(10+r*50)}px`}function h(m,r){return a("views.journey.hero.monthTooltip",{month:A(m),count:M(r)})}return(m,r)=>{const u=ee;return n(),V(t(Se),null,{default:J(()=>[e("div",fn,[e("div",bn,[e("div",yn,[e("p",kn,o(b(f.value.firstMessageTs))+" – "+o(b(f.value.lastMessageTs)),1),e("div",_n,[e("span",wn,o(t(a)("views.journey.hero.prefix")),1),e("span",$n,o(N.value),1)]),e("p",Cn,o(t(a)(_.filtered?"views.journey.hero.filteredSummary":"views.journey.hero.summary",{activeMonths:M(f.value.activeMonths),activeDays:M(f.value.activeDays)})),1)]),e("div",Sn,[e("div",Mn,[e("p",jn,o(t(a)("views.journey.hero.footprint")),1),e("p",Pn,o(t(a)("views.journey.hero.monthCount",{count:M(f.value.spanMonths)})),1)]),e("div",{class:"grid h-16 items-end overflow-hidden rounded-xl bg-gray-50/80 px-3 py-2 dark:bg-white/[0.035]",style:pe(C.value)},[(n(!0),d(O,null,G(_.stats.months,l=>(n(),d("div",{key:l.month,class:F(["min-w-0 rounded-t-sm",l.messageCount>0?"bg-pink-400/80 dark:bg-pink-400/75":"bg-gray-200 dark:bg-white/10"]),style:pe({height:S(l.messageCount)}),title:h(l.month,l.messageCount)},null,14,Tn))),128))],4),e("div",In,[e("span",null,o(A(_.stats.months[0].month)),1),e("span",null,o(A(_.stats.months[_.stats.months.length-1].month)),1)])])])]),e("div",Rn,[(n(!0),d(O,null,G(q.value,l=>(n(),d("div",{key:l.label,class:"flex min-w-0 items-start gap-2.5 px-2 py-1"},[j(u,{name:l.icon,class:F(["mt-0.5 h-4 w-4 shrink-0",l.colorClass])},null,8,["name","class"]),e("div",Dn,[e("p",{class:F(["truncate text-sm font-black leading-tight tabular-nums",l.colorClass])},o(l.value),3),e("p",An,o(l.label),1),e("p",qn,o(l.subtext),1)])]))),128))]),e("div",zn,[e("div",Ln,[j(u,{name:"i-heroicons-chat-bubble-left-right-solid",class:"h-3.5 w-3.5"}),r[0]||(r[0]=e("span",{class:"text-[10px] font-bold uppercase tracking-wider"},"ChatLab",-1))]),e("span",Bn,o(t(a)("views.journey.watermark")),1)])]),_:1})}}}),Vn={key:1,class:"main-content mx-auto max-w-[920px] space-y-6 p-4 sm:p-6"},Fn={class:"grid gap-4 px-5 pb-6 sm:grid-cols-2 sm:px-6 lg:grid-cols-3"},On={class:"min-w-0"},Un={class:"text-xs font-medium text-gray-500 dark:text-gray-400"},En={class:"mt-0.5 text-sm font-semibold text-gray-900 dark:text-white"},Wn={class:"mt-1 text-xs leading-5 text-gray-500 dark:text-gray-400"},Hn={class:"space-y-3 px-5 pb-5 sm:px-6 sm:pb-6"},Jn={class:"font-mono text-xl font-black tabular-nums text-gray-900 dark:text-white"},Gn={class:"min-w-0"},Yn={class:"h-1.5 overflow-hidden rounded-full bg-gray-200/80 dark:bg-white/10"},Kn={class:"mt-2 text-xs text-gray-500 dark:text-gray-400"},Qn={key:0,class:"text-left sm:min-w-28 sm:text-right"},Zn={class:"text-xs font-semibold text-gray-700 dark:text-gray-300"},Xn={class:"mt-0.5 text-[10px] text-gray-400 dark:text-gray-500"},ei=Y({__name:"JourneyView",props:{sessionId:{},timeFilter:{},timeRange:{}},setup(_){const s=_,{t:a,locale:$}=K(),i=U(null),v=U(!1),R=U(!1),f=k(()=>new Intl.NumberFormat($.value)),g=k(()=>new Intl.DateTimeFormat($.value,{year:"numeric",month:"short",day:"numeric"})),C=k(()=>new Intl.DateTimeFormat($.value,{year:"numeric",month:"short"})),N=k(()=>s.timeRange?s.timeFilter?.startTs!=null&&s.timeFilter.startTs>s.timeRange.start||s.timeFilter?.endTs!=null&&s.timeFilter.endTs<s.timeRange.end:!1),q=k(()=>i.value?.range!=null),M=k(()=>Math.max(...i.value?.years.map(l=>l.messageCount)??[],1)),b=k(()=>{if(!i.value?.range)return[];const l=[{id:"start",order:0,timestamp:i.value.range.firstMessageTs,icon:"i-heroicons-play-solid",iconClass:"bg-emerald-50 text-emerald-600 dark:bg-emerald-500/10 dark:text-emerald-400",title:a("views.journey.milestones.start"),date:S(i.value.range.firstMessageTs),detail:a("views.journey.milestones.startDetail")}];return i.value.peakMonth&&l.push({id:"peak",order:1,timestamp:m(i.value.peakMonth.month),icon:"i-heroicons-sparkles-solid",iconClass:"bg-pink-50 text-pink-600 dark:bg-pink-500/10 dark:text-pink-400",title:a("views.journey.milestones.peak"),date:h(i.value.peakMonth.month),detail:a("views.journey.milestones.peakDetail",{count:w(i.value.peakMonth.messageCount)})}),i.value.longestSegment&&l.push({id:"conversation",order:2,timestamp:i.value.longestSegment.startTs,icon:"i-heroicons-chat-bubble-left-right-solid",iconClass:"bg-blue-50 text-blue-600 dark:bg-blue-500/10 dark:text-blue-400",title:a("views.journey.milestones.longestConversation"),date:S(i.value.longestSegment.startTs),detail:a("views.journey.milestones.conversationDetail",{duration:r(i.value.longestSegment.durationSeconds),count:w(i.value.longestSegment.messageCount)})}),i.value.longestSilence&&l.push({id:"silence",order:3,timestamp:i.value.longestSilence.endTs,icon:"i-heroicons-moon-solid",iconClass:"bg-violet-50 text-violet-600 dark:bg-violet-500/10 dark:text-violet-400",title:a("views.journey.milestones.longestSilence"),date:a("views.journey.milestones.silenceRange",{start:S(i.value.longestSilence.startTs),end:S(i.value.longestSilence.endTs)}),detail:i.value.longestSilence.reopenedBy?a("views.journey.milestones.silenceDetailWithMember",{duration:r(i.value.longestSilence.durationSeconds),name:i.value.longestSilence.reopenedBy.name}):a("views.journey.milestones.silenceDetail",{duration:r(i.value.longestSilence.durationSeconds)})}),l.push({id:"end",order:4,timestamp:i.value.range.lastMessageTs,icon:"i-heroicons-flag-solid",iconClass:"bg-amber-50 text-amber-600 dark:bg-amber-500/10 dark:text-amber-400",title:a("views.journey.milestones.end"),date:S(i.value.range.lastMessageTs),detail:a(N.value?"views.journey.milestones.filteredEndDetail":"views.journey.milestones.endDetail")}),l.sort((c,y)=>c.timestamp-y.timestamp||c.order-y.order)});Z(()=>[s.sessionId,s.timeFilter],()=>A(),{immediate:!0,deep:!0});async function A(){if(s.sessionId){v.value=!0,R.value=!1;try{i.value=await Ce().getJourneyStats(s.sessionId,s.timeFilter)}catch(l){i.value=null,R.value=!0;const c=l instanceof Error?l.message:String(l);console.error("Failed to load journey stats:",l),Ve(`Journey stats load failed: ${c}`,l instanceof Error?l.stack:void 0)}finally{v.value=!1}}}function w(l){return f.value.format(l)}function S(l){return g.value.format(l*1e3)}function h(l){const[c,y]=l.split("-").map(Number);return C.value.format(new Date(c,y-1,1))}function m(l){const[c,y]=l.split("-").map(Number);return Math.floor(new Date(c,y-1,1).getTime()/1e3)}function r(l){const c=Math.max(0,Math.round(l/60));if(c<1)return a("views.journey.duration.lessThanMinute");if(c<60)return a("views.journey.duration.minutes",{count:c});const y=Math.floor(c/60);if(y<24){const H=c%60;return H>0?a("views.journey.duration.hoursMinutes",{hours:y,minutes:H}):a("views.journey.duration.hours",{count:y})}const P=Math.floor(y/24),W=y%24;return W>0?a("views.journey.duration.daysHours",{days:P,hours:W}):a("views.journey.duration.days",{count:P})}function u(l){return l===0?"0%":`${Math.max(4,Math.round(l/M.value*100))}%`}return(l,c)=>{const y=ee;return n(),d("div",{class:F(v.value?"h-full":"")},[v.value?(n(),V(t(fe),{key:0,variant:"page",text:t(a)("common.loading")},null,8,["text"])):(n(),d("div",Vn,[q.value?i.value?(n(),d(O,{key:1},[j(Nn,{stats:i.value,filtered:N.value},null,8,["stats","filtered"]),j(t(le),{title:t(a)("views.journey.milestones.title"),description:t(a)("views.journey.milestones.description"),"show-divider":!1},{default:J(()=>[e("div",Fn,[(n(!0),d(O,null,G(b.value,P=>(n(),d("div",{key:P.id,class:"flex min-w-0 items-start gap-3 py-1"},[e("div",{class:F(["flex h-9 w-9 shrink-0 items-center justify-center rounded-xl",P.iconClass])},[j(y,{name:P.icon,class:"h-4 w-4"},null,8,["name"])],2),e("div",On,[e("p",Un,o(P.title),1),e("p",En,o(P.date),1),e("p",Wn,o(P.detail),1)])]))),128))])]),_:1},8,["title","description"]),j(t(le),{title:t(a)("views.journey.years.title"),description:t(a)("views.journey.years.description"),"show-divider":!1},{default:J(()=>[e("div",Hn,[(n(!0),d(O,null,G(i.value.years,P=>(n(),d("div",{key:P.year,class:"grid gap-3 rounded-xl bg-gray-50/70 px-4 py-3 dark:bg-white/[0.025] sm:grid-cols-[72px_minmax(0,1fr)_auto] sm:items-center"},[e("div",Jn,o(P.year),1),e("div",Gn,[e("div",Yn,[e("div",{class:"h-full rounded-full bg-pink-400 dark:bg-pink-400/80",style:pe({width:u(P.messageCount)})},null,4)]),e("p",Kn,[P.messageCount>0?(n(),d(O,{key:0},[$e(o(t(a)("views.journey.years.summary",{messages:w(P.messageCount),days:w(P.activeDays),months:w(P.activeMonths)})),1)],64)):(n(),d(O,{key:1},[$e(o(t(a)("views.journey.years.quiet")),1)],64))])]),P.messageCount>0?(n(),d("div",Qn,[e("p",Zn,o(h(P.peakMonth)),1),e("p",Xn,o(t(a)("views.journey.years.peak",{count:w(P.peakMonthMessageCount)})),1)])):L("",!0)]))),128))])]),_:1},8,["title","description"])],64)):L("",!0):(n(),V(t(Me),{key:0,icon:"🗓️",text:t(a)(R.value?"views.journey.loadError":"views.journey.empty"),padding:"lg"},null,8,["text"]))]))],2)}}}),ti={class:"main-content mx-auto max-w-[920px] space-y-4 p-4 sm:space-y-6 sm:p-6"},ai={class:"grid grid-cols-1 gap-6 lg:grid-cols-2"},si={class:"p-3 sm:p-5"},ni={class:"p-3 sm:p-5"},ii=Y({__name:"PrivateChatOverview",props:{session:{},memberActivity:{},messageTypes:{},hourlyActivity:{},dailyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{}},setup(_){const{t:s}=K(),a=_,{dailyChartData:$}=at(()=>a.dailyActivity),i=k(()=>({labels:a.messageTypes.map(f=>bt(f.type,s)),values:a.messageTypes.map(f=>f.count)})),v=k(()=>{if(a.memberActivity.length<2)return null;const g=[...a.memberActivity].sort((N,q)=>q.messageCount-N.messageCount).slice(0,2),C=g[0].messageCount+g[1].messageCount;return{member1:{name:g[0].name,avatar:g[0].avatar,count:g[0].messageCount,percentage:C>0?Math.round(g[0].messageCount/C*100):0},member2:{name:g[1].name,avatar:g[1].avatar,count:g[1].messageCount,percentage:C>0?Math.round(g[1].messageCount/C*100):0},total:C}}),R=k(()=>v.value?{labels:[v.value.member1.name,v.value.member2.name],values:[v.value.member1.count,v.value.member2.count]}:{labels:[],values:[]});return(f,g)=>(n(),d("div",ti,[j(et,{session:_.session,"daily-activity":_.dailyActivity,"message-types":_.messageTypes,"hourly-activity":_.hourlyActivity,"time-range":_.timeRange,"filtered-message-count":_.filteredMessageCount,"filtered-member-count":_.filteredMemberCount,"time-filter":_.timeFilter},null,8,["session","daily-activity","message-types","hourly-activity","time-range","filtered-message-count","filtered-member-count","time-filter"]),e("div",ai,[j(t(le),{title:t(s)("analysis.overview.messageTypeDistribution"),"show-divider":!1},{default:J(()=>[e("div",si,[j(t(Te),{data:i.value,height:280},null,8,["data"])])]),_:1},8,["title"]),v.value?(n(),V(t(le),{key:0,title:t(s)("analysis.overview.memberComparison"),"show-divider":!1},{default:J(()=>[e("div",ni,[j(t(Te),{data:R.value,height:280},null,8,["data"])])]),_:1},8,["title"])):L("",!0)]),j(tt,{"daily-activity":_.dailyActivity,"daily-chart-data":t($)},null,8,["daily-activity","daily-chart-data"])]))}}),oi={class:"flex h-full flex-col"},li={class:"min-h-0 flex-1 overflow-auto"},ri=Y({__name:"PrivateChatInsights",props:{sessionId:{},session:{},memberActivity:{},messageTypes:{},hourlyActivity:{},dailyActivity:{},timeRange:{},filteredMessageCount:{},filteredMemberCount:{},timeFilter:{}},setup(_){const{t:s}=K(),a=_,$=k(()=>[{id:"overview",label:s("analysis.tabs.overview"),icon:"i-heroicons-squares-2x2"},{id:"relationship",label:s("analysis.subTabs.insights.relationship"),icon:"i-heroicons-heart"},{id:"journey",label:s("analysis.subTabs.insights.journey"),icon:"i-heroicons-map"},{id:"type-analysis",label:s("analysis.subTabs.insights.typeAnalysis"),icon:"i-heroicons-chart-pie"},{id:"time-analysis",label:s("analysis.subTabs.insights.timeAnalysis"),icon:"i-heroicons-clock"},{id:"topic",label:s("analysis.subTabs.insights.topic"),icon:"i-heroicons-cloud"},{id:"language-preference",label:s("analysis.subTabs.insights.languagePreference"),icon:"i-heroicons-language"}]),i=U("overview"),v=U(null),R=k(()=>({...a.timeFilter,memberId:v.value}));return(f,g)=>(n(),d("div",oi,[j(t(Fe),{modelValue:i.value,"onUpdate:modelValue":g[1]||(g[1]=C=>i.value=C),items:$.value,"persist-key":"privateInsightsTab"},{right:J(()=>[i.value==="type-analysis"||i.value==="time-analysis"?(n(),V(st,{key:0,modelValue:v.value,"onUpdate:modelValue":g[0]||(g[0]=C=>v.value=C),"session-id":a.sessionId},null,8,["modelValue","session-id"])):L("",!0)]),_:1},8,["modelValue","items"]),e("div",li,[j(t(nt),{"active-key":i.value},{default:J(({viewKey:C})=>[C==="overview"?(n(),V(ii,{key:0,session:a.session,"member-activity":a.memberActivity,"message-types":a.messageTypes,"hourly-activity":a.hourlyActivity,"daily-activity":a.dailyActivity,"time-range":a.timeRange,"filtered-message-count":a.filteredMessageCount,"filtered-member-count":a.filteredMemberCount,"time-filter":a.timeFilter},null,8,["session","member-activity","message-types","hourly-activity","daily-activity","time-range","filtered-message-count","filtered-member-count","time-filter"])):C==="type-analysis"?(n(),V(it,{key:1,"session-id":a.sessionId,"session-name":a.session.name,"time-filter":R.value},null,8,["session-id","session-name","time-filter"])):C==="time-analysis"?(n(),V(ot,{key:2,"session-id":a.sessionId,"session-name":a.session.name,"time-filter":R.value},null,8,["session-id","session-name","time-filter"])):C==="relationship"?(n(),V(hn,{key:3,"session-id":a.sessionId,"time-filter":a.timeFilter},null,8,["session-id","time-filter"])):C==="journey"?(n(),V(ei,{key:4,"session-id":a.sessionId,"time-filter":a.timeFilter,"time-range":a.timeRange},null,8,["session-id","time-filter","time-range"])):C==="topic"?(n(),V(t(lt),{key:5,"session-id":a.sessionId,"time-filter":a.timeFilter,"show-shared-topics":!0},null,8,["session-id","time-filter"])):C==="language-preference"?(n(),V(t(Ka),{key:6,"session-id":a.sessionId,"time-filter":a.timeFilter},null,8,["session-id","time-filter"])):L("",!0)]),_:1},8,["active-key"])])]))}}),ci={class:"relative flex h-full flex-col dark:bg-page-dark",style:{"padding-top":"var(--titlebar-area-height)"}},ui=["aria-label"],di={class:"relative flex-1 overflow-y-auto"},mi={class:"h-full"},gi={key:2,class:"flex h-full items-center justify-center"},pi={class:"text-gray-500"},vi={class:"flex h-full flex-col overflow-hidden bg-white dark:bg-page-dark"},xi={class:"flex flex-none items-center justify-between border-b border-gray-200 px-5 py-3 dark:border-gray-700"},hi={class:"text-lg font-semibold text-gray-900 dark:text-white"},fi={class:"text-sm text-gray-500 dark:text-gray-400"},bi={class:"flex-1 overflow-hidden"},yi=Y({__name:"index",setup(_){const s=Ge(()=>Qe(()=>import("./MessageExportModal-ODYCcSnk.js"),__vite__mapDeps([0,1,2,3]))),{t:a}=K(),$=Ye(),i=Ke(),v=Oe(),R=De(),f=Ue(),{currentSessionId:g}=Ee(v),C=U(!1),N=U(!1),q=U(!1),M=U(!1),b=U(!1);function A(){R.openChatRecordDrawer({})}const w=[{id:"insights",labelKey:"analysis.tabs.insights",icon:"i-heroicons-presentation-chart-bar"},{id:"ai-chat",labelKey:"analysis.tabs.aiChat",icon:"i-heroicons-chat-bubble-left-ellipsis"},{id:"lab",labelKey:"analysis.tabs.lab",icon:"i-heroicons-beaker"}],S=k(()=>f.debugMode?[...w,{id:"debug",labelKey:"analysis.tabs.debug",icon:"i-heroicons-bug-ant"}]:w),{activeTab:h,isLoading:m,isInitialLoad:r,isSessionSwitching:u,session:l,memberActivity:c,hourlyActivity:y,dailyActivity:P,messageTypes:W,timeRangeValue:H,fullTimeRange:ne,timeFilter:re,initialTimeState:ce,loadAnalysisData:ue,handleTimeRangeInitialized:ie}=rt({route:$,router:i,currentSessionId:g,selectSession:v.selectSession,defaultTab:f.defaultSessionTab,validTabIds:S.value.map(Q=>Q.id)});Ze("session-switch-loading",u);const de=k(()=>c.value.reduce((Q,T)=>Q+T.messageCount,0)),ae=k(()=>c.value.filter(Q=>Q.messageCount>0).length),oe=k(()=>{if(!l.value)return null;if(l.value.memberAvatar)return l.value.memberAvatar;if(c.value.length===0)return null;if(l.value.ownerId){const T=c.value.find(X=>X.platformId!==l.value?.ownerId);if(T?.avatar)return T.avatar}const Q=c.value.find(T=>T.name===l.value?.name);return Q?.avatar?Q.avatar:(c.value.length,null)});return(Q,T)=>{const X=Ae,we=Je;return n(),d("div",ci,[t(u)?(n(),d("div",{key:0,"data-testid":"private-chat-switch-loading",class:"absolute inset-0 z-20 flex cursor-wait items-center justify-center bg-page-bg/15 backdrop-blur-[1.5px] dark:bg-page-dark/15",style:{paddingTop:"var(--titlebar-area-height)"},role:"status","aria-live":"polite","aria-label":t(a)("common.loading")},[j(ft)],8,ui)):L("",!0),t(l)?(n(),d(O,{key:1},[j(ct,{"active-tab":t(h),"onUpdate:activeTab":T[0]||(T[0]=E=>Pe(h)?h.value=E:null),"time-range-value":t(H),"onUpdate:timeRangeValue":T[1]||(T[1]=E=>Pe(H)?H.value=E:null),title:t(l).name,avatar:oe.value,icon:"i-heroicons-user","icon-class":"bg-pink-600 text-white dark:bg-pink-500 dark:text-white",tabs:S.value,"current-session-id":t(g),"initial-time-state":t(ce),onOpenIncrementalImport:T[2]||(T[2]=E=>q.value=!0),onOpenMemberManagement:T[3]||(T[3]=E=>b.value=!0),onOpenChatRecord:A,"onUpdate:fullRange":T[4]||(T[4]=E=>ne.value=E),onTimeRangeInitialized:t(ie)},null,8,["active-tab","time-range-value","title","avatar","tabs","current-session-id","initial-time-state","onTimeRangeInitialized"]),e("div",di,[t(m)&&!t(u)?(n(),V(t(fe),{key:0,variant:"overlay",text:t(a)("common.loading")},null,8,["text"])):L("",!0),e("div",mi,[j(We,{name:"tab-slide",mode:"out-in"},{default:J(()=>[t(h)==="insights"?(n(),V(ri,{key:"insights-"+t(g),"session-id":t(g),session:t(l),"member-activity":t(c),"message-types":t(W),"hourly-activity":t(y),"daily-activity":t(P),"time-range":t(ne),"filtered-message-count":de.value,"filtered-member-count":ae.value,"time-filter":t(re)},null,8,["session-id","session","member-activity","message-types","hourly-activity","daily-activity","time-range","filtered-message-count","filtered-member-count","time-filter"])):t(h)==="ai-chat"?(n(),V(t(gt),{key:"ai-chat-"+t(g),"session-id":t(g),"session-name":t(l).name,"chat-type":"private"},null,8,["session-id","session-name"])):t(h)==="memory"?(n(),V(pt,{key:"memory-"+t(g),"session-id":t(g),"session-name":t(l).name},null,8,["session-id","session-name"])):t(h)==="lab"?(n(),V(vt,{key:"lab-"+t(g),"session-id":t(g),"chat-type":"private"},null,8,["session-id"])):t(h)==="debug"?(n(),V(t(xt),{key:"debug-"+t(g),"session-id":t(g)},null,8,["session-id"])):L("",!0)]),_:1})])]),j(ut,{onOpenIncrementalImport:T[5]||(T[5]=E=>q.value=!0),onOpenSemanticIndex:T[6]||(T[6]=E=>C.value=!0),onOpenMemberManagement:T[7]||(T[7]=E=>b.value=!0),onOpenChatRecord:A,onOpenMessageExport:T[8]||(T[8]=E=>M.value=!0)})],64)):t(r)?L("",!0):(n(),d("div",gi,[e("p",pi,o(t(a)("analysis.privateChat.loadError")),1)])),t(g)&&t(l)?(n(),V(dt,{key:3,modelValue:C.value,"onUpdate:modelValue":T[9]||(T[9]=E=>C.value=E),"session-id":t(g),"message-count":t(l).messageCount},null,8,["modelValue","session-id","message-count"])):L("",!0),t(g)&&t(l)?(n(),V(He,{key:4,modelValue:N.value,"onUpdate:modelValue":T[10]||(T[10]=E=>N.value=E),"session-id":t(g),"chat-type":"private","auto-check":""},null,8,["modelValue","session-id"])):L("",!0),t(g)&&t(l)?(n(),V(mt,{key:5,modelValue:q.value,"onUpdate:modelValue":T[11]||(T[11]=E=>q.value=E),"session-id":t(g),"session-name":t(l).name,onImported:T[12]||(T[12]=()=>{t(ue)(),t(v).loadSessions()})},null,8,["modelValue","session-id","session-name"])):L("",!0),t(g)?(n(),V(t(s),{key:6,modelValue:M.value,"onUpdate:modelValue":T[13]||(T[13]=E=>M.value=E)},null,8,["modelValue"])):L("",!0),t(g)?(n(),V(we,{key:7,open:b.value,"onUpdate:open":T[15]||(T[15]=E=>b.value=E),ui:{content:"max-w-6xl h-[85vh]"}},{content:J(()=>[e("div",vi,[e("div",xi,[e("div",null,[e("h2",hi,o(t(a)("analysis.tooltip.memberManagement")),1),e("p",fi,o(t(a)("members.private.description",{count:t(l)?.memberCount??0})),1)]),j(X,{variant:"ghost",icon:"i-heroicons-x-mark",size:"sm",onClick:T[14]||(T[14]=E=>b.value=!1)})]),e("div",bi,[j(ht,{"session-id":t(g),"show-header":!1,"chat-type":"private",onDataChanged:t(ue)},null,8,["session-id","onDataChanged"])])])]),_:1},8,["open"])):L("",!0)])}}}),Ai=Xe(yi,[["__scopeId","data-v-e1ba851b"]]);export{Ai as default};