dsh-plugin-core 0.33.1 → 0.33.3

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 (665) hide show
  1. package/README.md +9 -9
  2. package/dist/adv/explorer/open.js +4 -4
  3. package/dist/adv/explorer/open.js.map +1 -1
  4. package/dist/adv/session/SessionViewModal.d.ts.map +1 -1
  5. package/dist/adv/session/SessionViewModal.js +6 -3
  6. package/dist/adv/session/SessionViewModal.js.map +1 -1
  7. package/dist/adv/session/mirror/ChatView.d.ts +1 -3
  8. package/dist/adv/session/mirror/ChatView.d.ts.map +1 -1
  9. package/dist/adv/session/mirror/ChatView.js +10 -36
  10. package/dist/adv/session/mirror/ChatView.js.map +1 -1
  11. package/dist/adv/session/mirror/GenericCommandCard.d.ts +6 -1
  12. package/dist/adv/session/mirror/GenericCommandCard.d.ts.map +1 -1
  13. package/dist/adv/session/mirror/GenericCommandCard.js +8 -3
  14. package/dist/adv/session/mirror/GenericCommandCard.js.map +1 -1
  15. package/dist/adv/session/mirror/MessageItem.d.ts +4 -3
  16. package/dist/adv/session/mirror/MessageItem.d.ts.map +1 -1
  17. package/dist/adv/session/mirror/MessageItem.js +19 -9
  18. package/dist/adv/session/mirror/MessageItem.js.map +1 -1
  19. package/dist/{session/mirror/BashRow.d.ts → adv/session/mirror/SkillRow.d.ts} +4 -5
  20. package/dist/adv/session/mirror/SkillRow.d.ts.map +1 -0
  21. package/dist/adv/session/mirror/SkillRow.js +86 -0
  22. package/dist/adv/session/mirror/SkillRow.js.map +1 -0
  23. package/dist/adv/session/official-classes.d.ts +3 -1
  24. package/dist/adv/session/official-classes.d.ts.map +1 -1
  25. package/dist/adv/session/official-classes.js +33 -32
  26. package/dist/adv/session/official-classes.js.map +1 -1
  27. package/dist/ui/feedback/host-toast.d.ts +1 -1
  28. package/dist/ui/feedback/host-toast.js +1 -1
  29. package/dist/utils/i18n.d.ts +1 -1
  30. package/dist/utils/i18n.d.ts.map +1 -1
  31. package/dist/utils/i18n.js +12 -0
  32. package/dist/utils/i18n.js.map +1 -1
  33. package/docs/design/external/dsh-host.md +33 -0
  34. package/docs/help/explorer.doc.ts +1 -1
  35. package/docs/help/explorer.md +1 -1
  36. package/docs/help/integration.doc.ts +2 -2
  37. package/docs/help/integration.md +2 -2
  38. package/docs/help/session.doc.ts +1 -1
  39. package/docs/help/session.md +1 -1
  40. package/docs/help/ui.doc.ts +1 -1
  41. package/docs/help/ui.md +1 -1
  42. package/package.json +16 -16
  43. package/dist/explorer/ExplorerPanel.d.ts +0 -25
  44. package/dist/explorer/ExplorerPanel.d.ts.map +0 -1
  45. package/dist/explorer/ExplorerPanel.js +0 -111
  46. package/dist/explorer/ExplorerPanel.js.map +0 -1
  47. package/dist/explorer/FileBrowser.d.ts +0 -58
  48. package/dist/explorer/FileBrowser.d.ts.map +0 -1
  49. package/dist/explorer/FileBrowser.js +0 -632
  50. package/dist/explorer/FileBrowser.js.map +0 -1
  51. package/dist/explorer/crumb-nav.d.ts +0 -45
  52. package/dist/explorer/crumb-nav.d.ts.map +0 -1
  53. package/dist/explorer/crumb-nav.js +0 -78
  54. package/dist/explorer/crumb-nav.js.map +0 -1
  55. package/dist/explorer/crumbs-menu.d.ts +0 -37
  56. package/dist/explorer/crumbs-menu.d.ts.map +0 -1
  57. package/dist/explorer/crumbs-menu.js +0 -102
  58. package/dist/explorer/crumbs-menu.js.map +0 -1
  59. package/dist/explorer/explorer-css.d.ts +0 -2
  60. package/dist/explorer/explorer-css.d.ts.map +0 -1
  61. package/dist/explorer/explorer-css.generated.d.ts +0 -2
  62. package/dist/explorer/explorer-css.generated.d.ts.map +0 -1
  63. package/dist/explorer/explorer-css.generated.js +0 -4
  64. package/dist/explorer/explorer-css.generated.js.map +0 -1
  65. package/dist/explorer/explorer-css.js +0 -3
  66. package/dist/explorer/explorer-css.js.map +0 -1
  67. package/dist/explorer/fs-face.d.ts +0 -36
  68. package/dist/explorer/fs-face.d.ts.map +0 -1
  69. package/dist/explorer/fs-face.js +0 -74
  70. package/dist/explorer/fs-face.js.map +0 -1
  71. package/dist/explorer/index.d.ts +0 -6
  72. package/dist/explorer/index.d.ts.map +0 -1
  73. package/dist/explorer/index.js +0 -6
  74. package/dist/explorer/index.js.map +0 -1
  75. package/dist/explorer/landing.d.ts +0 -26
  76. package/dist/explorer/landing.d.ts.map +0 -1
  77. package/dist/explorer/landing.js +0 -43
  78. package/dist/explorer/landing.js.map +0 -1
  79. package/dist/explorer/open.d.ts +0 -137
  80. package/dist/explorer/open.d.ts.map +0 -1
  81. package/dist/explorer/open.js +0 -350
  82. package/dist/explorer/open.js.map +0 -1
  83. package/dist/explorer/picker-placement.d.ts +0 -69
  84. package/dist/explorer/picker-placement.d.ts.map +0 -1
  85. package/dist/explorer/picker-placement.js +0 -122
  86. package/dist/explorer/picker-placement.js.map +0 -1
  87. package/dist/explorer/preview/BytesPreview.d.ts +0 -12
  88. package/dist/explorer/preview/BytesPreview.d.ts.map +0 -1
  89. package/dist/explorer/preview/BytesPreview.js +0 -60
  90. package/dist/explorer/preview/BytesPreview.js.map +0 -1
  91. package/dist/explorer/preview/HtmlPreview.d.ts +0 -17
  92. package/dist/explorer/preview/HtmlPreview.d.ts.map +0 -1
  93. package/dist/explorer/preview/HtmlPreview.js +0 -113
  94. package/dist/explorer/preview/HtmlPreview.js.map +0 -1
  95. package/dist/explorer/preview/OfficePreview.d.ts +0 -12
  96. package/dist/explorer/preview/OfficePreview.d.ts.map +0 -1
  97. package/dist/explorer/preview/OfficePreview.js +0 -63
  98. package/dist/explorer/preview/OfficePreview.js.map +0 -1
  99. package/dist/explorer/preview/TextPreview.d.ts +0 -18
  100. package/dist/explorer/preview/TextPreview.d.ts.map +0 -1
  101. package/dist/explorer/preview/TextPreview.js +0 -122
  102. package/dist/explorer/preview/TextPreview.js.map +0 -1
  103. package/dist/explorer/preview/index.d.ts +0 -24
  104. package/dist/explorer/preview/index.d.ts.map +0 -1
  105. package/dist/explorer/preview/index.js +0 -58
  106. package/dist/explorer/preview/index.js.map +0 -1
  107. package/dist/explorer/preview/md-labels.d.ts +0 -3
  108. package/dist/explorer/preview/md-labels.d.ts.map +0 -1
  109. package/dist/explorer/preview/md-labels.js +0 -12
  110. package/dist/explorer/preview/md-labels.js.map +0 -1
  111. package/dist/explorer/preview-title-bar.d.ts +0 -26
  112. package/dist/explorer/preview-title-bar.d.ts.map +0 -1
  113. package/dist/explorer/preview-title-bar.js +0 -48
  114. package/dist/explorer/preview-title-bar.js.map +0 -1
  115. package/dist/explorer/types.d.ts +0 -259
  116. package/dist/explorer/types.d.ts.map +0 -1
  117. package/dist/explorer/types.js +0 -379
  118. package/dist/explorer/types.js.map +0 -1
  119. package/dist/session/SessionViewModal.d.ts +0 -37
  120. package/dist/session/SessionViewModal.d.ts.map +0 -1
  121. package/dist/session/SessionViewModal.js +0 -1133
  122. package/dist/session/SessionViewModal.js.map +0 -1
  123. package/dist/session/changes.d.ts +0 -73
  124. package/dist/session/changes.d.ts.map +0 -1
  125. package/dist/session/changes.js +0 -134
  126. package/dist/session/changes.js.map +0 -1
  127. package/dist/session/faces.d.ts +0 -244
  128. package/dist/session/faces.d.ts.map +0 -1
  129. package/dist/session/faces.js +0 -17
  130. package/dist/session/faces.js.map +0 -1
  131. package/dist/session/index.d.ts +0 -7
  132. package/dist/session/index.d.ts.map +0 -1
  133. package/dist/session/index.js +0 -27
  134. package/dist/session/index.js.map +0 -1
  135. package/dist/session/mirror/AskCard.d.ts +0 -35
  136. package/dist/session/mirror/AskCard.d.ts.map +0 -1
  137. package/dist/session/mirror/AskCard.js +0 -131
  138. package/dist/session/mirror/AskCard.js.map +0 -1
  139. package/dist/session/mirror/BashRow.d.ts.map +0 -1
  140. package/dist/session/mirror/BashRow.js +0 -143
  141. package/dist/session/mirror/BashRow.js.map +0 -1
  142. package/dist/session/mirror/ChangedFileDiff.d.ts +0 -25
  143. package/dist/session/mirror/ChangedFileDiff.d.ts.map +0 -1
  144. package/dist/session/mirror/ChangedFileDiff.js +0 -178
  145. package/dist/session/mirror/ChangedFileDiff.js.map +0 -1
  146. package/dist/session/mirror/ChangedFilesCard.d.ts +0 -18
  147. package/dist/session/mirror/ChangedFilesCard.d.ts.map +0 -1
  148. package/dist/session/mirror/ChangedFilesCard.js +0 -165
  149. package/dist/session/mirror/ChangedFilesCard.js.map +0 -1
  150. package/dist/session/mirror/ChatGroupSeat.d.ts +0 -24
  151. package/dist/session/mirror/ChatGroupSeat.d.ts.map +0 -1
  152. package/dist/session/mirror/ChatGroupSeat.js +0 -135
  153. package/dist/session/mirror/ChatGroupSeat.js.map +0 -1
  154. package/dist/session/mirror/ChatNodeSeat.d.ts +0 -43
  155. package/dist/session/mirror/ChatNodeSeat.d.ts.map +0 -1
  156. package/dist/session/mirror/ChatNodeSeat.js +0 -133
  157. package/dist/session/mirror/ChatNodeSeat.js.map +0 -1
  158. package/dist/session/mirror/ChatView.d.ts +0 -47
  159. package/dist/session/mirror/ChatView.d.ts.map +0 -1
  160. package/dist/session/mirror/ChatView.js +0 -138
  161. package/dist/session/mirror/ChatView.js.map +0 -1
  162. package/dist/session/mirror/CommandCard.d.ts +0 -20
  163. package/dist/session/mirror/CommandCard.d.ts.map +0 -1
  164. package/dist/session/mirror/CommandCard.js +0 -69
  165. package/dist/session/mirror/CommandCard.js.map +0 -1
  166. package/dist/session/mirror/ContextInjectionRow.d.ts +0 -18
  167. package/dist/session/mirror/ContextInjectionRow.d.ts.map +0 -1
  168. package/dist/session/mirror/ContextInjectionRow.js +0 -50
  169. package/dist/session/mirror/ContextInjectionRow.js.map +0 -1
  170. package/dist/session/mirror/Deliverables.d.ts +0 -24
  171. package/dist/session/mirror/Deliverables.d.ts.map +0 -1
  172. package/dist/session/mirror/Deliverables.js +0 -175
  173. package/dist/session/mirror/Deliverables.js.map +0 -1
  174. package/dist/session/mirror/GenericCommandCard.d.ts +0 -136
  175. package/dist/session/mirror/GenericCommandCard.d.ts.map +0 -1
  176. package/dist/session/mirror/GenericCommandCard.js +0 -948
  177. package/dist/session/mirror/GenericCommandCard.js.map +0 -1
  178. package/dist/session/mirror/MessageIconActions.d.ts +0 -16
  179. package/dist/session/mirror/MessageIconActions.d.ts.map +0 -1
  180. package/dist/session/mirror/MessageIconActions.js +0 -69
  181. package/dist/session/mirror/MessageIconActions.js.map +0 -1
  182. package/dist/session/mirror/MessageItem.d.ts +0 -93
  183. package/dist/session/mirror/MessageItem.d.ts.map +0 -1
  184. package/dist/session/mirror/MessageItem.js +0 -194
  185. package/dist/session/mirror/MessageItem.js.map +0 -1
  186. package/dist/session/mirror/ReasoningRow.d.ts +0 -11
  187. package/dist/session/mirror/ReasoningRow.d.ts.map +0 -1
  188. package/dist/session/mirror/ReasoningRow.js +0 -111
  189. package/dist/session/mirror/ReasoningRow.js.map +0 -1
  190. package/dist/session/mirror/RunningStatus.d.ts +0 -12
  191. package/dist/session/mirror/RunningStatus.d.ts.map +0 -1
  192. package/dist/session/mirror/RunningStatus.js +0 -57
  193. package/dist/session/mirror/RunningStatus.js.map +0 -1
  194. package/dist/session/mirror/StatDialog.d.ts +0 -20
  195. package/dist/session/mirror/StatDialog.d.ts.map +0 -1
  196. package/dist/session/mirror/StatDialog.js +0 -49
  197. package/dist/session/mirror/StatDialog.js.map +0 -1
  198. package/dist/session/mirror/ToolDetails.d.ts +0 -65
  199. package/dist/session/mirror/ToolDetails.d.ts.map +0 -1
  200. package/dist/session/mirror/ToolDetails.js +0 -268
  201. package/dist/session/mirror/ToolDetails.js.map +0 -1
  202. package/dist/session/mirror/TurnProcessNodeView.d.ts +0 -10
  203. package/dist/session/mirror/TurnProcessNodeView.d.ts.map +0 -1
  204. package/dist/session/mirror/TurnProcessNodeView.js +0 -57
  205. package/dist/session/mirror/TurnProcessNodeView.js.map +0 -1
  206. package/dist/session/mirror/TurnTailNodeView.d.ts +0 -57
  207. package/dist/session/mirror/TurnTailNodeView.d.ts.map +0 -1
  208. package/dist/session/mirror/TurnTailNodeView.js +0 -106
  209. package/dist/session/mirror/TurnTailNodeView.js.map +0 -1
  210. package/dist/session/mirror/TurnTriggerNodeView.d.ts +0 -16
  211. package/dist/session/mirror/TurnTriggerNodeView.d.ts.map +0 -1
  212. package/dist/session/mirror/TurnTriggerNodeView.js +0 -103
  213. package/dist/session/mirror/TurnTriggerNodeView.js.map +0 -1
  214. package/dist/session/mirror/TurnUsagePanel.d.ts +0 -21
  215. package/dist/session/mirror/TurnUsagePanel.d.ts.map +0 -1
  216. package/dist/session/mirror/TurnUsagePanel.js +0 -41
  217. package/dist/session/mirror/TurnUsagePanel.js.map +0 -1
  218. package/dist/session/mirror/control-details.d.ts +0 -9
  219. package/dist/session/mirror/control-details.d.ts.map +0 -1
  220. package/dist/session/mirror/control-details.js +0 -549
  221. package/dist/session/mirror/control-details.js.map +0 -1
  222. package/dist/session/mirror/detail-i18n.d.ts +0 -4
  223. package/dist/session/mirror/detail-i18n.d.ts.map +0 -1
  224. package/dist/session/mirror/detail-i18n.js +0 -153
  225. package/dist/session/mirror/detail-i18n.js.map +0 -1
  226. package/dist/session/mirror/message-chrome.d.ts +0 -39
  227. package/dist/session/mirror/message-chrome.d.ts.map +0 -1
  228. package/dist/session/mirror/message-chrome.js +0 -153
  229. package/dist/session/mirror/message-chrome.js.map +0 -1
  230. package/dist/session/mirror/process-groups.d.ts +0 -56
  231. package/dist/session/mirror/process-groups.d.ts.map +0 -1
  232. package/dist/session/mirror/process-groups.js +0 -202
  233. package/dist/session/mirror/process-groups.js.map +0 -1
  234. package/dist/session/official-classes.d.ts +0 -28
  235. package/dist/session/official-classes.d.ts.map +0 -1
  236. package/dist/session/official-classes.js +0 -152
  237. package/dist/session/official-classes.js.map +0 -1
  238. package/dist/session/open-review.d.ts +0 -13
  239. package/dist/session/open-review.d.ts.map +0 -1
  240. package/dist/session/open-review.js +0 -32
  241. package/dist/session/open-review.js.map +0 -1
  242. package/dist/session/open-session-view.d.ts +0 -19
  243. package/dist/session/open-session-view.d.ts.map +0 -1
  244. package/dist/session/open-session-view.js +0 -147
  245. package/dist/session/open-session-view.js.map +0 -1
  246. package/dist/session/pending-inputs.d.ts +0 -33
  247. package/dist/session/pending-inputs.d.ts.map +0 -1
  248. package/dist/session/pending-inputs.js +0 -130
  249. package/dist/session/pending-inputs.js.map +0 -1
  250. package/dist/session/session-css.d.ts +0 -2
  251. package/dist/session/session-css.d.ts.map +0 -1
  252. package/dist/session/session-css.generated.d.ts +0 -2
  253. package/dist/session/session-css.generated.d.ts.map +0 -1
  254. package/dist/session/session-css.generated.js +0 -4
  255. package/dist/session/session-css.generated.js.map +0 -1
  256. package/dist/session/session-css.js +0 -3
  257. package/dist/session/session-css.js.map +0 -1
  258. package/dist/session/tail-follow.d.ts +0 -29
  259. package/dist/session/tail-follow.d.ts.map +0 -1
  260. package/dist/session/tail-follow.js +0 -106
  261. package/dist/session/tail-follow.js.map +0 -1
  262. package/dist/session/types.d.ts +0 -28
  263. package/dist/session/types.d.ts.map +0 -1
  264. package/dist/session/types.js +0 -12
  265. package/dist/session/types.js.map +0 -1
  266. package/dist/ui/AlertModal.d.ts +0 -41
  267. package/dist/ui/AlertModal.d.ts.map +0 -1
  268. package/dist/ui/AlertModal.js +0 -45
  269. package/dist/ui/AlertModal.js.map +0 -1
  270. package/dist/ui/Button.d.ts +0 -102
  271. package/dist/ui/Button.d.ts.map +0 -1
  272. package/dist/ui/Button.js +0 -233
  273. package/dist/ui/Button.js.map +0 -1
  274. package/dist/ui/Card.d.ts +0 -65
  275. package/dist/ui/Card.d.ts.map +0 -1
  276. package/dist/ui/Card.js +0 -109
  277. package/dist/ui/Card.js.map +0 -1
  278. package/dist/ui/Checkbox.d.ts +0 -24
  279. package/dist/ui/Checkbox.d.ts.map +0 -1
  280. package/dist/ui/Checkbox.js +0 -35
  281. package/dist/ui/Checkbox.js.map +0 -1
  282. package/dist/ui/Chip.d.ts +0 -28
  283. package/dist/ui/Chip.d.ts.map +0 -1
  284. package/dist/ui/Chip.js +0 -36
  285. package/dist/ui/Chip.js.map +0 -1
  286. package/dist/ui/CodeViewer.d.ts +0 -38
  287. package/dist/ui/CodeViewer.d.ts.map +0 -1
  288. package/dist/ui/CodeViewer.js +0 -107
  289. package/dist/ui/CodeViewer.js.map +0 -1
  290. package/dist/ui/ConfirmModal.d.ts +0 -50
  291. package/dist/ui/ConfirmModal.d.ts.map +0 -1
  292. package/dist/ui/ConfirmModal.js +0 -47
  293. package/dist/ui/ConfirmModal.js.map +0 -1
  294. package/dist/ui/DateTimePicker.d.ts +0 -45
  295. package/dist/ui/DateTimePicker.d.ts.map +0 -1
  296. package/dist/ui/DateTimePicker.js +0 -462
  297. package/dist/ui/DateTimePicker.js.map +0 -1
  298. package/dist/ui/EmptyState.d.ts +0 -12
  299. package/dist/ui/EmptyState.d.ts.map +0 -1
  300. package/dist/ui/EmptyState.js +0 -10
  301. package/dist/ui/EmptyState.js.map +0 -1
  302. package/dist/ui/Field.d.ts +0 -125
  303. package/dist/ui/Field.d.ts.map +0 -1
  304. package/dist/ui/Field.js +0 -175
  305. package/dist/ui/Field.js.map +0 -1
  306. package/dist/ui/FieldHint.d.ts +0 -18
  307. package/dist/ui/FieldHint.d.ts.map +0 -1
  308. package/dist/ui/FieldHint.js +0 -40
  309. package/dist/ui/FieldHint.js.map +0 -1
  310. package/dist/ui/FlipText.d.ts +0 -43
  311. package/dist/ui/FlipText.d.ts.map +0 -1
  312. package/dist/ui/FlipText.js +0 -59
  313. package/dist/ui/FlipText.js.map +0 -1
  314. package/dist/ui/InputGroup.d.ts +0 -91
  315. package/dist/ui/InputGroup.d.ts.map +0 -1
  316. package/dist/ui/InputGroup.js +0 -125
  317. package/dist/ui/InputGroup.js.map +0 -1
  318. package/dist/ui/LiveText.d.ts +0 -13
  319. package/dist/ui/LiveText.d.ts.map +0 -1
  320. package/dist/ui/LiveText.js +0 -19
  321. package/dist/ui/LiveText.js.map +0 -1
  322. package/dist/ui/Loader.d.ts +0 -49
  323. package/dist/ui/Loader.d.ts.map +0 -1
  324. package/dist/ui/Loader.js +0 -79
  325. package/dist/ui/Loader.js.map +0 -1
  326. package/dist/ui/LoaderBar.d.ts +0 -38
  327. package/dist/ui/LoaderBar.d.ts.map +0 -1
  328. package/dist/ui/LoaderBar.js +0 -79
  329. package/dist/ui/LoaderBar.js.map +0 -1
  330. package/dist/ui/Loading.d.ts +0 -69
  331. package/dist/ui/Loading.d.ts.map +0 -1
  332. package/dist/ui/Loading.js +0 -164
  333. package/dist/ui/Loading.js.map +0 -1
  334. package/dist/ui/MarqueeText.d.ts +0 -22
  335. package/dist/ui/MarqueeText.d.ts.map +0 -1
  336. package/dist/ui/MarqueeText.js +0 -52
  337. package/dist/ui/MarqueeText.js.map +0 -1
  338. package/dist/ui/Modal.d.ts +0 -73
  339. package/dist/ui/Modal.d.ts.map +0 -1
  340. package/dist/ui/Modal.js +0 -83
  341. package/dist/ui/Modal.js.map +0 -1
  342. package/dist/ui/ModelPicker.d.ts +0 -48
  343. package/dist/ui/ModelPicker.d.ts.map +0 -1
  344. package/dist/ui/ModelPicker.js +0 -101
  345. package/dist/ui/ModelPicker.js.map +0 -1
  346. package/dist/ui/Pagination.d.ts +0 -59
  347. package/dist/ui/Pagination.d.ts.map +0 -1
  348. package/dist/ui/Pagination.js +0 -112
  349. package/dist/ui/Pagination.js.map +0 -1
  350. package/dist/ui/PanelDock.d.ts +0 -132
  351. package/dist/ui/PanelDock.d.ts.map +0 -1
  352. package/dist/ui/PanelDock.js +0 -390
  353. package/dist/ui/PanelDock.js.map +0 -1
  354. package/dist/ui/Picker.d.ts +0 -56
  355. package/dist/ui/Picker.d.ts.map +0 -1
  356. package/dist/ui/Picker.js +0 -244
  357. package/dist/ui/Picker.js.map +0 -1
  358. package/dist/ui/QuickToolbar.d.ts +0 -54
  359. package/dist/ui/QuickToolbar.d.ts.map +0 -1
  360. package/dist/ui/QuickToolbar.js +0 -254
  361. package/dist/ui/QuickToolbar.js.map +0 -1
  362. package/dist/ui/SectionHead.d.ts +0 -35
  363. package/dist/ui/SectionHead.d.ts.map +0 -1
  364. package/dist/ui/SectionHead.js +0 -45
  365. package/dist/ui/SectionHead.js.map +0 -1
  366. package/dist/ui/Segmented.d.ts +0 -99
  367. package/dist/ui/Segmented.d.ts.map +0 -1
  368. package/dist/ui/Segmented.js +0 -135
  369. package/dist/ui/Segmented.js.map +0 -1
  370. package/dist/ui/SideSheet.d.ts +0 -70
  371. package/dist/ui/SideSheet.d.ts.map +0 -1
  372. package/dist/ui/SideSheet.js +0 -130
  373. package/dist/ui/SideSheet.js.map +0 -1
  374. package/dist/ui/SplitGroup.d.ts +0 -37
  375. package/dist/ui/SplitGroup.d.ts.map +0 -1
  376. package/dist/ui/SplitGroup.js +0 -36
  377. package/dist/ui/SplitGroup.js.map +0 -1
  378. package/dist/ui/Surface.d.ts +0 -43
  379. package/dist/ui/Surface.d.ts.map +0 -1
  380. package/dist/ui/Surface.js +0 -39
  381. package/dist/ui/Surface.js.map +0 -1
  382. package/dist/ui/Table.d.ts +0 -30
  383. package/dist/ui/Table.d.ts.map +0 -1
  384. package/dist/ui/Table.js +0 -96
  385. package/dist/ui/Table.js.map +0 -1
  386. package/dist/ui/Textarea.d.ts +0 -36
  387. package/dist/ui/Textarea.d.ts.map +0 -1
  388. package/dist/ui/Textarea.js +0 -35
  389. package/dist/ui/Textarea.js.map +0 -1
  390. package/dist/ui/Toast.d.ts +0 -45
  391. package/dist/ui/Toast.d.ts.map +0 -1
  392. package/dist/ui/Toast.js +0 -225
  393. package/dist/ui/Toast.js.map +0 -1
  394. package/dist/ui/WorkspacePicker.d.ts +0 -35
  395. package/dist/ui/WorkspacePicker.d.ts.map +0 -1
  396. package/dist/ui/WorkspacePicker.js +0 -39
  397. package/dist/ui/WorkspacePicker.js.map +0 -1
  398. package/dist/ui/card-css.d.ts +0 -2
  399. package/dist/ui/card-css.d.ts.map +0 -1
  400. package/dist/ui/card-css.generated.d.ts +0 -2
  401. package/dist/ui/card-css.generated.d.ts.map +0 -1
  402. package/dist/ui/card-css.generated.js +0 -4
  403. package/dist/ui/card-css.generated.js.map +0 -1
  404. package/dist/ui/card-css.js +0 -5
  405. package/dist/ui/card-css.js.map +0 -1
  406. package/dist/ui/chevron.d.ts +0 -22
  407. package/dist/ui/chevron.d.ts.map +0 -1
  408. package/dist/ui/chevron.js +0 -33
  409. package/dist/ui/chevron.js.map +0 -1
  410. package/dist/ui/chip-css.d.ts +0 -2
  411. package/dist/ui/chip-css.d.ts.map +0 -1
  412. package/dist/ui/chip-css.generated.d.ts +0 -2
  413. package/dist/ui/chip-css.generated.d.ts.map +0 -1
  414. package/dist/ui/chip-css.generated.js +0 -4
  415. package/dist/ui/chip-css.generated.js.map +0 -1
  416. package/dist/ui/chip-css.js +0 -12
  417. package/dist/ui/chip-css.js.map +0 -1
  418. package/dist/ui/code-viewer-css.d.ts +0 -2
  419. package/dist/ui/code-viewer-css.d.ts.map +0 -1
  420. package/dist/ui/code-viewer-css.generated.d.ts +0 -2
  421. package/dist/ui/code-viewer-css.generated.d.ts.map +0 -1
  422. package/dist/ui/code-viewer-css.generated.js +0 -4
  423. package/dist/ui/code-viewer-css.generated.js.map +0 -1
  424. package/dist/ui/code-viewer-css.js +0 -3
  425. package/dist/ui/code-viewer-css.js.map +0 -1
  426. package/dist/ui/code-viewer-lang.d.ts +0 -15
  427. package/dist/ui/code-viewer-lang.d.ts.map +0 -1
  428. package/dist/ui/code-viewer-lang.js +0 -190
  429. package/dist/ui/code-viewer-lang.js.map +0 -1
  430. package/dist/ui/code-viewer-theme.d.ts +0 -5
  431. package/dist/ui/code-viewer-theme.d.ts.map +0 -1
  432. package/dist/ui/code-viewer-theme.js +0 -138
  433. package/dist/ui/code-viewer-theme.js.map +0 -1
  434. package/dist/ui/controls/button-css.generated.d.ts +0 -2
  435. package/dist/ui/controls/button-css.generated.d.ts.map +0 -1
  436. package/dist/ui/controls/button-css.generated.js +0 -4
  437. package/dist/ui/controls/button-css.generated.js.map +0 -1
  438. package/dist/ui/controls/datetime-css.generated.d.ts +0 -2
  439. package/dist/ui/controls/datetime-css.generated.d.ts.map +0 -1
  440. package/dist/ui/controls/datetime-css.generated.js +0 -4
  441. package/dist/ui/controls/datetime-css.generated.js.map +0 -1
  442. package/dist/ui/controls/field-css.generated.d.ts +0 -2
  443. package/dist/ui/controls/field-css.generated.d.ts.map +0 -1
  444. package/dist/ui/controls/field-css.generated.js +0 -4
  445. package/dist/ui/controls/field-css.generated.js.map +0 -1
  446. package/dist/ui/controls/hint-css.generated.d.ts +0 -2
  447. package/dist/ui/controls/hint-css.generated.d.ts.map +0 -1
  448. package/dist/ui/controls/hint-css.generated.js +0 -4
  449. package/dist/ui/controls/hint-css.generated.js.map +0 -1
  450. package/dist/ui/controls/input-group-css.generated.d.ts +0 -2
  451. package/dist/ui/controls/input-group-css.generated.d.ts.map +0 -1
  452. package/dist/ui/controls/input-group-css.generated.js +0 -4
  453. package/dist/ui/controls/input-group-css.generated.js.map +0 -1
  454. package/dist/ui/controls/loader-bar-css.generated.d.ts +0 -2
  455. package/dist/ui/controls/loader-bar-css.generated.d.ts.map +0 -1
  456. package/dist/ui/controls/loader-bar-css.generated.js +0 -4
  457. package/dist/ui/controls/loader-bar-css.generated.js.map +0 -1
  458. package/dist/ui/controls/loader-css.generated.d.ts +0 -2
  459. package/dist/ui/controls/loader-css.generated.d.ts.map +0 -1
  460. package/dist/ui/controls/loader-css.generated.js +0 -4
  461. package/dist/ui/controls/loader-css.generated.js.map +0 -1
  462. package/dist/ui/controls/loading-css.generated.d.ts +0 -2
  463. package/dist/ui/controls/loading-css.generated.d.ts.map +0 -1
  464. package/dist/ui/controls/loading-css.generated.js +0 -4
  465. package/dist/ui/controls/loading-css.generated.js.map +0 -1
  466. package/dist/ui/controls/pagination-css.generated.d.ts +0 -2
  467. package/dist/ui/controls/pagination-css.generated.d.ts.map +0 -1
  468. package/dist/ui/controls/pagination-css.generated.js +0 -4
  469. package/dist/ui/controls/pagination-css.generated.js.map +0 -1
  470. package/dist/ui/controls/quick-toolbar-css.generated.d.ts +0 -2
  471. package/dist/ui/controls/quick-toolbar-css.generated.d.ts.map +0 -1
  472. package/dist/ui/controls/quick-toolbar-css.generated.js +0 -4
  473. package/dist/ui/controls/quick-toolbar-css.generated.js.map +0 -1
  474. package/dist/ui/controls/section-head-css.generated.d.ts +0 -2
  475. package/dist/ui/controls/section-head-css.generated.d.ts.map +0 -1
  476. package/dist/ui/controls/section-head-css.generated.js +0 -4
  477. package/dist/ui/controls/section-head-css.generated.js.map +0 -1
  478. package/dist/ui/controls/segmented-css.generated.d.ts +0 -2
  479. package/dist/ui/controls/segmented-css.generated.d.ts.map +0 -1
  480. package/dist/ui/controls/segmented-css.generated.js +0 -4
  481. package/dist/ui/controls/segmented-css.generated.js.map +0 -1
  482. package/dist/ui/controls/split-group-css.generated.d.ts +0 -2
  483. package/dist/ui/controls/split-group-css.generated.d.ts.map +0 -1
  484. package/dist/ui/controls/split-group-css.generated.js +0 -4
  485. package/dist/ui/controls/split-group-css.generated.js.map +0 -1
  486. package/dist/ui/controls/table-css.generated.d.ts +0 -2
  487. package/dist/ui/controls/table-css.generated.d.ts.map +0 -1
  488. package/dist/ui/controls/table-css.generated.js +0 -4
  489. package/dist/ui/controls/table-css.generated.js.map +0 -1
  490. package/dist/ui/controls/table-plain-css.generated.d.ts +0 -2
  491. package/dist/ui/controls/table-plain-css.generated.d.ts.map +0 -1
  492. package/dist/ui/controls/table-plain-css.generated.js +0 -4
  493. package/dist/ui/controls/table-plain-css.generated.js.map +0 -1
  494. package/dist/ui/controls-css.d.ts +0 -16
  495. package/dist/ui/controls-css.d.ts.map +0 -1
  496. package/dist/ui/controls-css.js +0 -26
  497. package/dist/ui/controls-css.js.map +0 -1
  498. package/dist/ui/css.d.ts +0 -35
  499. package/dist/ui/css.d.ts.map +0 -1
  500. package/dist/ui/css.js +0 -52
  501. package/dist/ui/css.js.map +0 -1
  502. package/dist/ui/datetime-logic.d.ts +0 -102
  503. package/dist/ui/datetime-logic.d.ts.map +0 -1
  504. package/dist/ui/datetime-logic.js +0 -200
  505. package/dist/ui/datetime-logic.js.map +0 -1
  506. package/dist/ui/feedback-css.d.ts +0 -2
  507. package/dist/ui/feedback-css.d.ts.map +0 -1
  508. package/dist/ui/feedback-css.generated.d.ts +0 -2
  509. package/dist/ui/feedback-css.generated.d.ts.map +0 -1
  510. package/dist/ui/feedback-css.generated.js +0 -4
  511. package/dist/ui/feedback-css.generated.js.map +0 -1
  512. package/dist/ui/feedback-css.js +0 -4
  513. package/dist/ui/feedback-css.js.map +0 -1
  514. package/dist/ui/flip-css.d.ts +0 -2
  515. package/dist/ui/flip-css.d.ts.map +0 -1
  516. package/dist/ui/flip-css.generated.d.ts +0 -2
  517. package/dist/ui/flip-css.generated.d.ts.map +0 -1
  518. package/dist/ui/flip-css.generated.js +0 -4
  519. package/dist/ui/flip-css.generated.js.map +0 -1
  520. package/dist/ui/flip-css.js +0 -4
  521. package/dist/ui/flip-css.js.map +0 -1
  522. package/dist/ui/host-data.d.ts +0 -119
  523. package/dist/ui/host-data.d.ts.map +0 -1
  524. package/dist/ui/host-data.js +0 -122
  525. package/dist/ui/host-data.js.map +0 -1
  526. package/dist/ui/host-toast.d.ts +0 -23
  527. package/dist/ui/host-toast.d.ts.map +0 -1
  528. package/dist/ui/host-toast.js +0 -34
  529. package/dist/ui/host-toast.js.map +0 -1
  530. package/dist/ui/loader-bar-art.d.ts +0 -6
  531. package/dist/ui/loader-bar-art.d.ts.map +0 -1
  532. package/dist/ui/loader-bar-art.js +0 -6
  533. package/dist/ui/loader-bar-art.js.map +0 -1
  534. package/dist/ui/loading-host.d.ts +0 -49
  535. package/dist/ui/loading-host.d.ts.map +0 -1
  536. package/dist/ui/loading-host.js +0 -57
  537. package/dist/ui/loading-host.js.map +0 -1
  538. package/dist/ui/locale.d.ts +0 -4
  539. package/dist/ui/locale.d.ts.map +0 -1
  540. package/dist/ui/locale.js +0 -17
  541. package/dist/ui/locale.js.map +0 -1
  542. package/dist/ui/marquee-css.d.ts +0 -2
  543. package/dist/ui/marquee-css.d.ts.map +0 -1
  544. package/dist/ui/marquee-css.generated.d.ts +0 -2
  545. package/dist/ui/marquee-css.generated.d.ts.map +0 -1
  546. package/dist/ui/marquee-css.generated.js +0 -4
  547. package/dist/ui/marquee-css.generated.js.map +0 -1
  548. package/dist/ui/marquee-css.js +0 -4
  549. package/dist/ui/marquee-css.js.map +0 -1
  550. package/dist/ui/modal-host.d.ts +0 -51
  551. package/dist/ui/modal-host.d.ts.map +0 -1
  552. package/dist/ui/modal-host.js +0 -170
  553. package/dist/ui/modal-host.js.map +0 -1
  554. package/dist/ui/overlay-css.d.ts +0 -2
  555. package/dist/ui/overlay-css.d.ts.map +0 -1
  556. package/dist/ui/overlay-css.generated.d.ts +0 -2
  557. package/dist/ui/overlay-css.generated.d.ts.map +0 -1
  558. package/dist/ui/overlay-css.generated.js +0 -4
  559. package/dist/ui/overlay-css.generated.js.map +0 -1
  560. package/dist/ui/overlay-css.js +0 -2
  561. package/dist/ui/overlay-css.js.map +0 -1
  562. package/dist/ui/overlay.d.ts +0 -62
  563. package/dist/ui/overlay.d.ts.map +0 -1
  564. package/dist/ui/overlay.js +0 -94
  565. package/dist/ui/overlay.js.map +0 -1
  566. package/dist/ui/pagination-logic.d.ts +0 -36
  567. package/dist/ui/pagination-logic.d.ts.map +0 -1
  568. package/dist/ui/pagination-logic.js +0 -73
  569. package/dist/ui/pagination-logic.js.map +0 -1
  570. package/dist/ui/panel-css.d.ts +0 -2
  571. package/dist/ui/panel-css.d.ts.map +0 -1
  572. package/dist/ui/panel-css.generated.d.ts +0 -2
  573. package/dist/ui/panel-css.generated.d.ts.map +0 -1
  574. package/dist/ui/panel-css.generated.js +0 -4
  575. package/dist/ui/panel-css.generated.js.map +0 -1
  576. package/dist/ui/panel-css.js +0 -2
  577. package/dist/ui/panel-css.js.map +0 -1
  578. package/dist/ui/panel-dock-css.d.ts +0 -2
  579. package/dist/ui/panel-dock-css.d.ts.map +0 -1
  580. package/dist/ui/panel-dock-css.generated.d.ts +0 -2
  581. package/dist/ui/panel-dock-css.generated.d.ts.map +0 -1
  582. package/dist/ui/panel-dock-css.generated.js +0 -4
  583. package/dist/ui/panel-dock-css.generated.js.map +0 -1
  584. package/dist/ui/panel-dock-css.js +0 -4
  585. package/dist/ui/panel-dock-css.js.map +0 -1
  586. package/dist/ui/panel-dock-logic.d.ts +0 -67
  587. package/dist/ui/panel-dock-logic.d.ts.map +0 -1
  588. package/dist/ui/panel-dock-logic.js +0 -110
  589. package/dist/ui/panel-dock-logic.js.map +0 -1
  590. package/dist/ui/panel.d.ts +0 -41
  591. package/dist/ui/panel.d.ts.map +0 -1
  592. package/dist/ui/panel.js +0 -37
  593. package/dist/ui/panel.js.map +0 -1
  594. package/dist/ui/picker-css.d.ts +0 -2
  595. package/dist/ui/picker-css.d.ts.map +0 -1
  596. package/dist/ui/picker-css.generated.d.ts +0 -2
  597. package/dist/ui/picker-css.generated.d.ts.map +0 -1
  598. package/dist/ui/picker-css.generated.js +0 -4
  599. package/dist/ui/picker-css.generated.js.map +0 -1
  600. package/dist/ui/picker-css.js +0 -4
  601. package/dist/ui/picker-css.js.map +0 -1
  602. package/dist/ui/picker-icons.d.ts +0 -12
  603. package/dist/ui/picker-icons.d.ts.map +0 -1
  604. package/dist/ui/picker-icons.js +0 -29
  605. package/dist/ui/picker-icons.js.map +0 -1
  606. package/dist/ui/picker-logic.d.ts +0 -33
  607. package/dist/ui/picker-logic.d.ts.map +0 -1
  608. package/dist/ui/picker-logic.js +0 -68
  609. package/dist/ui/picker-logic.js.map +0 -1
  610. package/dist/ui/quick-toolbar-logic.d.ts +0 -76
  611. package/dist/ui/quick-toolbar-logic.d.ts.map +0 -1
  612. package/dist/ui/quick-toolbar-logic.js +0 -40
  613. package/dist/ui/quick-toolbar-logic.js.map +0 -1
  614. package/dist/ui/resizer.d.ts +0 -29
  615. package/dist/ui/resizer.d.ts.map +0 -1
  616. package/dist/ui/resizer.js +0 -42
  617. package/dist/ui/resizer.js.map +0 -1
  618. package/dist/ui/side-panel-css.d.ts +0 -2
  619. package/dist/ui/side-panel-css.d.ts.map +0 -1
  620. package/dist/ui/side-panel-css.generated.d.ts +0 -2
  621. package/dist/ui/side-panel-css.generated.d.ts.map +0 -1
  622. package/dist/ui/side-panel-css.generated.js +0 -4
  623. package/dist/ui/side-panel-css.generated.js.map +0 -1
  624. package/dist/ui/side-panel-css.js +0 -2
  625. package/dist/ui/side-panel-css.js.map +0 -1
  626. package/dist/ui/side-sheet-css.d.ts +0 -2
  627. package/dist/ui/side-sheet-css.d.ts.map +0 -1
  628. package/dist/ui/side-sheet-css.generated.d.ts +0 -2
  629. package/dist/ui/side-sheet-css.generated.d.ts.map +0 -1
  630. package/dist/ui/side-sheet-css.generated.js +0 -4
  631. package/dist/ui/side-sheet-css.generated.js.map +0 -1
  632. package/dist/ui/side-sheet-css.js +0 -2
  633. package/dist/ui/side-sheet-css.js.map +0 -1
  634. package/dist/ui/surface-css.d.ts +0 -2
  635. package/dist/ui/surface-css.d.ts.map +0 -1
  636. package/dist/ui/surface-css.generated.d.ts +0 -2
  637. package/dist/ui/surface-css.generated.d.ts.map +0 -1
  638. package/dist/ui/surface-css.generated.js +0 -4
  639. package/dist/ui/surface-css.generated.js.map +0 -1
  640. package/dist/ui/surface-css.js +0 -7
  641. package/dist/ui/surface-css.js.map +0 -1
  642. package/dist/ui/table-logic.d.ts +0 -110
  643. package/dist/ui/table-logic.d.ts.map +0 -1
  644. package/dist/ui/table-logic.js +0 -81
  645. package/dist/ui/table-logic.js.map +0 -1
  646. package/dist/ui/table-shared.d.ts +0 -101
  647. package/dist/ui/table-shared.d.ts.map +0 -1
  648. package/dist/ui/table-shared.js +0 -229
  649. package/dist/ui/table-shared.js.map +0 -1
  650. package/dist/ui/thenable.d.ts +0 -9
  651. package/dist/ui/thenable.d.ts.map +0 -1
  652. package/dist/ui/thenable.js +0 -15
  653. package/dist/ui/thenable.js.map +0 -1
  654. package/dist/ui/ticker.d.ts +0 -8
  655. package/dist/ui/ticker.d.ts.map +0 -1
  656. package/dist/ui/ticker.js +0 -49
  657. package/dist/ui/ticker.js.map +0 -1
  658. package/dist/ui/toast-host.d.ts +0 -24
  659. package/dist/ui/toast-host.d.ts.map +0 -1
  660. package/dist/ui/toast-host.js +0 -20
  661. package/dist/ui/toast-host.js.map +0 -1
  662. package/dist/ui/tooltip.d.ts +0 -29
  663. package/dist/ui/tooltip.d.ts.map +0 -1
  664. package/dist/ui/tooltip.js +0 -10
  665. package/dist/ui/tooltip.js.map +0 -1
@@ -1,18 +0,0 @@
1
- import { createElement as h } from 'react';
2
- import type { Translate } from '../../utils/i18n.js';
3
- /** 点变更文件出去的出口载荷:带「改动身份」,调用方据此开审阅(本包走文件预览 dock 的 content 槽)。 */
4
- export interface ChangedFileReviewLocator {
5
- readonly sessionId: string;
6
- readonly seq: number;
7
- readonly index: number;
8
- /** 工作区相对路径(作审阅头)。 */
9
- readonly display: string;
10
- }
11
- export declare function ChangedFilesCard(props: {
12
- sessionId: string;
13
- seq: number;
14
- /** 点击出口:官方 openReview(index) 的等价物,带改动身份。无则整张卡不可点。 */
15
- onOpenReview?: (locator: ChangedFileReviewLocator) => void;
16
- t: Translate;
17
- }): ReturnType<typeof h> | null;
18
- //# sourceMappingURL=ChangedFilesCard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChangedFilesCard.d.ts","sourceRoot":"","sources":["../../../src/session/mirror/ChangedFilesCard.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAyD,MAAM,OAAO,CAAA;AAWjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AA4BpD,+DAA+D;AAC/D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,qBAAqB;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,qDAAqD;IACrD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAA;IAC1D,CAAC,EAAE,SAAS,CAAA;CACb,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAwI9B"}
@@ -1,165 +0,0 @@
1
- // 官方 ChangedFiles 卡(@deepseek-ai/dsh-client-ui-deliverables client.js:1351-1476,
2
- // 0.2.1-rc.2 解包核实)镜像:
3
- // div.card[data-changed-files][data-single?]
4
- // ├─ header(button;单文件 = 打开该文件,多文件 = 静态头):
5
- // │ tile(40×40 图标块)+ titles > title(已编辑 x / 已编辑 N 个文件)
6
- // │ + stat(计数 +N -M 常显上色 / 二进制 / 超限;hover 时换显「预览」提示)
7
- // ├─ ul.list > li > HoverCard > button.row(仅多文件):路径(ellipsis)+ 每文件计数;
8
- // │ hover 500ms 出该文件的 diff 预览卡,点行 = 打开该文件
9
- // └─ button.toggle(files > COLLAPSED_ROWS=4 才出):「全部 N 个文件 / 收起」+ Chevron
10
- // 官方差异(有意):① 图标单文件 = FileTypeIcon(path),多文件 = FileTypeIcon(kind:'code')
11
- // (渲染成「文件带尖括号」代码图标);② 官方点击 = openReview 开右侧 review 标签页(宿主
12
- // ctx.sidebarRight.openResource),本包无该槽 ⇒ 点击改走调用方给的 onOpen(文件预览核心入口,
13
- // 见 SessionViewModal 的 onOpenFile → openFilePreview),不在本卡里自绘弹窗;③ hover 预览的 diff
14
- // 数据走宿主只读路由 `api/changes.diff`(官方走注入的 useChangesDiff 服务,本包拿同一路由自己拉)。
15
- // 二进制 / 超限文件不显示计数,只出状态词(官方同)。
16
- import { createElement as h, Fragment, useEffect, useRef, useState } from 'react';
17
- import { HoverCard } from '../../ui/official.js';
18
- import { IconChevronDownOutlineRegular, IconChevronUpOutlineRegular, } from '../../ui/official.js';
19
- import { FileTypeIcon } from '../../ui/official.js';
20
- import { baseNameOf } from '../../utils/index.js';
21
- import { officialClass } from '../official-classes.js';
22
- import { changesSummaryUrl, parseChangesSummary } from '../changes.js';
23
- import { ChangedFileDiff } from './ChangedFileDiff.js';
24
- /** 官方 ChangedFiles 模块类(ui-deliverables;取不到 = 空类,不白屏)。 */
25
- const C = (semantic) => officialClass('ChangedFiles', semantic) ?? '';
26
- /** 会话级缓存:同一 (sessionId, seq) 只拉一次(官方 ChangesSummaryStore 同语义)。 */
27
- const cache = new Map();
28
- /** 官方 COLLAPSED_ROWS(适配收尾消息的汇总高度):超过才折叠 + 出 toggle。 */
29
- const COLLAPSED_ROWS = 4;
30
- /** 官方 Counts:added(成功色)+ deleted(错误色),常显不靠 hover。 */
31
- function Counts(props) {
32
- const grouped = new Intl.NumberFormat('en-US');
33
- return h(Fragment, null, h('span', { className: C('added') }, `+${grouped.format(props.added)}`), ' ', h('span', { className: C('deleted') }, `-${grouped.format(props.deleted)}`));
34
- }
35
- /** 计数或状态词(官方 binary / oversized 顶替计数)。 */
36
- function countsOf(file, t) {
37
- if (file.binary === true)
38
- return t('changesBinary');
39
- if (file.oversized === true)
40
- return t('changesOversized');
41
- return h(Counts, { added: file.added, deleted: file.deleted });
42
- }
43
- export function ChangedFilesCard(props) {
44
- const { sessionId, seq, onOpenReview, t } = props;
45
- const url = changesSummaryUrl(sessionId, seq);
46
- const [summary, setSummary] = useState(undefined);
47
- const [expanded, setExpanded] = useState(false);
48
- // 官方 cardRef:既定 preview 卡的宽度基准,也是 header / row hover 预览的定位锚。
49
- const cardRef = useRef(null);
50
- useEffect(() => {
51
- if (cache.has(url)) {
52
- setSummary(cache.get(url));
53
- return;
54
- }
55
- let alive = true;
56
- void (async () => {
57
- let next = null;
58
- try {
59
- const res = await fetch(url);
60
- next = res.ok ? parseChangesSummary(await res.json()) : null;
61
- }
62
- catch {
63
- next = null; // 路由缺席 / 网络失败 = 不渲染,不猜
64
- }
65
- cache.set(url, next);
66
- if (alive)
67
- setSummary(next);
68
- })();
69
- return () => { alive = false; };
70
- }, [url]);
71
- if (summary === undefined || summary === null || summary.total === 0 || summary.files.length === 0)
72
- return null;
73
- const single = summary.total === 1 ? summary.files[0] : undefined;
74
- // 图标:单文件 = FileTypeIcon(path);多文件 = FileTypeIcon(kind:'code')(官方渲染「文件带尖括号」)。
75
- const icon = single !== undefined
76
- ? h(FileTypeIcon, { path: single.path, size: 20 })
77
- : h(FileTypeIcon, { kind: 'code', size: 20 });
78
- const title = single === undefined
79
- ? t('changesMulti', { count: String(summary.total) })
80
- : t('changesSingle', { name: baseNameOf(single.path) });
81
- const foldable = summary.files.length > COLLAPSED_ROWS;
82
- const rows = foldable && !expanded ? summary.files.slice(0, COLLAPSED_ROWS) : summary.files;
83
- const headerBody = h(Fragment, null, h('span', { className: C('tile') }, icon), h('span', { className: C('titles') }, h('span', { className: C('title') }, title), h('span', { className: C('stat') },
84
- // 官方 deliv:1384-1388:header 恒用 turn 级汇总;binary/oversized 只看单文件那一份。
85
- h('span', { className: C('statCounts') }, countsOf({
86
- added: summary.added,
87
- deleted: summary.deleted,
88
- ...(single?.binary === true ? { binary: true } : {}),
89
- ...(single?.oversized === true ? { oversized: true } : {}),
90
- }, t)),
91
- // 官方 previewHint:hover/focus 时替换计数显示(提示这张卡可以 hover 出 diff 预览)。
92
- h('span', { className: C('previewHint') }, t('deliverPreviewHint')))));
93
- // 官方 header 永远是 button → openReview(0);本包无 review 槽 ⇒ 走 onOpenReview(带改动身份)。
94
- // 多文件头代表整组变更,官方 openReview(0) 开第一份 ⇒ 这里传 index 0。无 onOpenReview 则不可点。
95
- const headerLocator = {
96
- sessionId,
97
- seq,
98
- index: 0,
99
- display: single?.display ?? summary.files[0].display,
100
- };
101
- const headerNode = onOpenReview === undefined
102
- ? h('div', { className: C('header') }, headerBody)
103
- : h('button', {
104
- type: 'button',
105
- className: C('header'),
106
- title: headerLocator.display,
107
- onClick: () => { onOpenReview(headerLocator); },
108
- }, headerBody);
109
- /** 官方 hover 预览卡(variant preview + dwell 500 + 宽度跟整卡);content 挂上才取数。 */
110
- const previewOf = (index, display) => h(ChangedFileDiff, { sessionId, seq, index, display, t });
111
- const rowOf = (file, index) => {
112
- const body = h(Fragment, null, h('span', { className: C('path') }, file.display), h('span', { className: C('counts') }, countsOf(file, t)));
113
- // 官方行点击 = openReview(index):带改动身份出去,调用方开审阅。无 onOpenReview 则不可点。
114
- const locator = { sessionId, seq, index, display: file.display };
115
- const row = onOpenReview === undefined
116
- ? h('div', { className: C('row'), title: file.path }, body)
117
- : h('button', {
118
- type: 'button',
119
- className: C('row'),
120
- title: file.path,
121
- onClick: () => { onOpenReview(locator); },
122
- }, body);
123
- return h(HoverCard, {
124
- key: file.display,
125
- variant: 'preview',
126
- widthAnchorRef: cardRef,
127
- openDelayMs: 500,
128
- anchor: row,
129
- content: previewOf(index, file.display),
130
- });
131
- };
132
- const list = single === undefined
133
- ? h('ul', { className: C('list') }, rows.map((file) => {
134
- // 折叠视图下 rows 是子集,必须用 summary.files 的真实下标(changes.diff 的 index 语义)。
135
- const index = summary.files.indexOf(file);
136
- return h('li', { key: file.display }, rowOf(file, index));
137
- }))
138
- : null;
139
- const toggle = foldable
140
- ? h('button', {
141
- type: 'button',
142
- className: C('toggle'),
143
- 'aria-expanded': expanded,
144
- 'aria-label': t(expanded ? 'deliverCollapseAria' : 'deliverExpandAria', { count: summary.files.length }),
145
- onClick: () => { setExpanded((value) => !value); },
146
- }, h('span', null, t(expanded ? 'changesCollapse' : 'changesAll', { count: summary.files.length })), expanded ? h(IconChevronUpOutlineRegular, {}) : h(IconChevronDownOutlineRegular, {}))
147
- : null;
148
- // 单文件:头本身就是那一个文件的预览锚(官方同);多文件:锚在各行上。
149
- const header = single === undefined
150
- ? headerNode
151
- : h(HoverCard, {
152
- variant: 'preview',
153
- widthAnchorRef: cardRef,
154
- openDelayMs: 500,
155
- anchor: headerNode,
156
- content: previewOf(0, single.display),
157
- });
158
- return h('div', {
159
- ref: cardRef,
160
- className: C('card'),
161
- 'data-changed-files': true,
162
- 'data-single': single !== undefined || undefined,
163
- }, header, list, toggle);
164
- }
165
- //# sourceMappingURL=ChangedFilesCard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChangedFilesCard.js","sourceRoot":"","sources":["../../../src/session/mirror/ChangedFilesCard.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,sBAAsB;AACtB,+CAA+C;AAC/C,8CAA8C;AAC9C,6DAA6D;AAC7D,2DAA2D;AAC3D,yEAAyE;AACzE,gDAAgD;AAChD,6EAA6E;AAC7E,yEAAyE;AACzE,2DAA2D;AAC3D,qEAAqE;AACrE,iFAAiF;AACjF,sEAAsE;AACtE,+BAA+B;AAC/B,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAuB,MAAM,eAAe,CAAA;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,yDAAyD;AACzD,MAAM,CAAC,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAA;AAErF,kEAAkE;AAClE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiC,CAAA;AAEtD,uDAAuD;AACvD,MAAM,cAAc,GAAG,CAAC,CAAA;AAExB,qDAAqD;AACrD,SAAS,MAAM,CAAC,KAAyC;IACvD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IAC9C,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,EACrB,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EACvE,GAAG,EACH,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAC5E,CAAA;AACH,CAAC;AAED,0CAA0C;AAC1C,SAAS,QAAQ,CAAC,IAAyE,EAAE,CAAY;IACvG,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,eAAe,CAAC,CAAA;IACnD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAA;IACzD,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;AAChE,CAAC;AAWD,MAAM,UAAU,gBAAgB,CAAC,KAMhC;IACC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,KAAK,CAAA;IACjD,MAAM,GAAG,GAAG,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC7C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAoC,SAAS,CAAC,CAAA;IACpF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,6DAA6D;IAC7D,MAAM,OAAO,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1B,OAAM;QACR,CAAC;QACD,IAAI,KAAK,GAAG,IAAI,CAAA;QAChB,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,IAAI,GAA0B,IAAI,CAAA;YACtC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC5B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,GAAG,IAAI,CAAA,CAAC,uBAAuB;YACrC,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACpB,IAAI,KAAK;gBAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC,CAAC,EAAE,CAAA;QACJ,OAAO,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAA,CAAC,CAAC,CAAA;IAChC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IACT,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/G,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,6EAA6E;IAC7E,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS;QAC/B,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS;QAChC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAA;IACtD,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAA;IAE3F,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EACjC,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EACzC,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAClC,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,EAC3C,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;IAChC,mEAAmE;IACnE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,EAAE,CAAC,CAAC,CAAC;IACN,+DAA+D;IAC/D,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CACpE,CACF,CACF,CAAA;IACD,6EAA6E;IAC7E,sEAAsE;IACtE,MAAM,aAAa,GAA6B;QAC9C,SAAS;QACT,GAAG;QACH,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO;KACtD,CAAA;IACD,MAAM,UAAU,GAAG,YAAY,KAAK,SAAS;QAC3C,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;QAClD,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC;YACtB,KAAK,EAAE,aAAa,CAAC,OAAO;YAC5B,OAAO,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA,CAAC,CAAC;SAC/C,EAAE,UAAU,CAAC,CAAA;IAElB,uEAAuE;IACvE,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,OAAe,EAAa,EAAE,CAC9D,CAAC,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;IAE3D,MAAM,KAAK,GAAG,CAAC,IAAoC,EAAE,KAAa,EAAa,EAAE;QAC/E,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EAC3B,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EACjD,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACzD,CAAA;QACD,gEAAgE;QAChE,MAAM,OAAO,GAA6B,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAA;QAC1F,MAAM,GAAG,GAAG,YAAY,KAAK,SAAS;YACpC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC;YAC3D,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,OAAO,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC;aACzC,EAAE,IAAI,CAAC,CAAA;QACZ,OAAO,CAAC,CAAC,SAAS,EAAE;YAClB,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,OAAO,EAAE,SAAS;YAClB,cAAc,EAAE,OAAO;YACvB,WAAW,EAAE,GAAG;YAChB,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;SACxC,CAAC,CAAA;IACJ,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS;QAC/B,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,mEAAmE;YACnE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACzC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,IAAI,CAAA;IACR,MAAM,MAAM,GAAG,QAAQ;QACrB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC;YACtB,eAAe,EAAE,QAAQ;YACzB,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxG,OAAO,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;SAClD,EACC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAChG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,CAAC,CACrF;QACH,CAAC,CAAC,IAAI,CAAA;IACR,qCAAqC;IACrC,MAAM,MAAM,GAAG,MAAM,KAAK,SAAS;QACjC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;YACX,OAAO,EAAE,SAAS;YAClB,cAAc,EAAE,OAAO;YACvB,WAAW,EAAE,GAAG;YAChB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;SACtC,CAAC,CAAA;IACN,OAAO,CAAC,CAAC,KAAK,EAAE;QACd,GAAG,EAAE,OAAO;QACZ,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,oBAAoB,EAAE,IAAI;QAC1B,aAAa,EAAE,MAAM,KAAK,SAAS,IAAI,SAAS;KACjD,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;AAC1B,CAAC"}
@@ -1,24 +0,0 @@
1
- import { createElement as h } from 'react';
2
- import type { ComponentType } from 'react';
3
- import type { Translate } from '../../utils/i18n.js';
4
- import type { ChatNodeStoreFace } from '../faces.js';
5
- import { type NodeRenderer } from './ChatNodeSeat.js';
6
- import { type ProcessActivity, type ProcessGroupSnapshot } from './process-groups.js';
7
- /** 官方 PROCESS_ICONS(lib/client.js:2187-2201);工具行图标同源(edit/write=铅笔、generic=sparkle)。 */
8
- export declare const PROCESS_ICONS: Record<ProcessActivity | 'thinking', ComponentType<{
9
- size?: number;
10
- className?: string;
11
- }>>;
12
- /** 过程分组(二级收折):汇总行 + 组内条目。 */
13
- export declare function ChatGroupSeatMirror(props: {
14
- group: ProcessGroupSnapshot;
15
- /** 官方 grouped:历史轮(turn 非 open)才收折。 */
16
- grouped: boolean;
17
- store?: ChatNodeStoreFace;
18
- openState: ReadonlyMap<number, number>;
19
- onSetOpen(turn: number, answerStep: number, open: boolean): void;
20
- foldCompleted: boolean;
21
- renderNode: NodeRenderer;
22
- t: Translate;
23
- }): ReturnType<typeof h> | null;
24
- //# sourceMappingURL=ChatGroupSeat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatGroupSeat.d.ts","sourceRoot":"","sources":["../../../src/session/mirror/ChatGroupSeat.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,IAAI,CAAC,EAA4C,MAAM,OAAO,CAAA;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAiB1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAA+B,MAAM,aAAa,CAAA;AACjF,OAAO,EAAwC,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC3F,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAEnG,wFAAwF;AACxF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,eAAe,GAAG,UAAU,EAAE,aAAa,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAepH,CAAA;AAOD,6BAA6B;AAC7B,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,KAAK,EAAE,oBAAoB,CAAA;IAC3B,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IAChE,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,YAAY,CAAA;IACxB,CAAC,EAAE,SAAS,CAAA;CACb,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CA2G9B"}
@@ -1,135 +0,0 @@
1
- // 官方对照:packages/client/ui-chat/src/client/chat/ChatGroupSeat.js(0.1.7-rc.2 lib/client.js:2178-2385)
2
- // 二级收折:root[data-step-process] > title(button,activity 图标 ↔ 箭头 hover/展开互换,
3
- // label = processTitle(summary))+ body(max-height min(400px,50vh),上下 24px 渐隐遮罩,
4
- // --dsh-chat-flow-gap:8px)> content > 组内条目(ChatNodeSeat 逐个,三级各自展开)。
5
- // 外层可见性沿用官方 outerHidden:foldCompleted && turn 已闭合 && 有 spec && !alwaysOpen
6
- // && 存储的 answerStep 不匹配 ⇒ 整组 hidden(一级「用时 N 秒」行收起时组随之隐藏)。
7
- // grouped(历史轮才收折:policy.stepGrouping === 'history' && turn 非 open)为 false 时
8
- // 隐藏标题行、body 展开不限高(expandedBody)。
9
- import { createElement as h, useCallback, useEffect, useRef, useState } from 'react';
10
- import { IconAgentPresetOutlineRegular, IconApiOutlineRegular, IconBrowseOutlineRegular, IconChevronDownOutlineRegular, IconChevronUpOutlineRegular, IconCodeOutlineRegular, IconEditOutlineRegular, IconGlobeOutlineRegular, IconPlanOutlineRegular, IconQuestionOutlineRegular, IconSearchOutlineRegular, IconSparkleRegular, IconThinkOutlineRegular, } from '../../ui/official.js';
11
- import { officialClass } from '../official-classes.js';
12
- import { ChatNodeSeatMirror, readPresentation } from './ChatNodeSeat.js';
13
- import { processTitle } from './process-groups.js';
14
- /** 官方 PROCESS_ICONS(lib/client.js:2187-2201);工具行图标同源(edit/write=铅笔、generic=sparkle)。 */
15
- export const PROCESS_ICONS = {
16
- thinking: IconThinkOutlineRegular,
17
- read: IconBrowseOutlineRegular,
18
- readImage: IconBrowseOutlineRegular,
19
- search: IconSearchOutlineRegular,
20
- edit: IconEditOutlineRegular,
21
- write: IconEditOutlineRegular,
22
- commands: IconApiOutlineRegular,
23
- code: IconCodeOutlineRegular,
24
- webSearch: IconGlobeOutlineRegular,
25
- webFetch: IconBrowseOutlineRegular,
26
- subagents: IconAgentPresetOutlineRegular,
27
- plan: IconPlanOutlineRegular,
28
- questions: IconQuestionOutlineRegular,
29
- tools: IconSparkleRegular,
30
- };
31
- /** 官方图标尺寸(14px,除 thinking/commands/webSearch/plan/questions 用默认)。 */
32
- const SMALL_ICONS = new Set([
33
- 'read', 'readImage', 'search', 'edit', 'write', 'code', 'webFetch', 'subagents', 'tools',
34
- ]);
35
- /** 过程分组(二级收折):汇总行 + 组内条目。 */
36
- export function ChatGroupSeatMirror(props) {
37
- const { group, grouped, store, openState, onSetOpen, foldCompleted, renderNode, t } = props;
38
- const [open, setOpen] = useState(false);
39
- const first = group.members[0];
40
- const firstNode = first === undefined ? undefined : store?.get(first.key);
41
- const presentation = first === undefined
42
- ? undefined
43
- : readPresentation(store, first.key);
44
- const spec = presentation?.spec ?? undefined;
45
- const location = firstNode?.location;
46
- const reason = location?.kind === 'turn' || location?.kind === 'step'
47
- ? location.turn?.end?.data?.reason?.kind
48
- : undefined;
49
- // 官方 ChatGroupSeat 的 alwaysOpen(0.2.1-rc.5 chat:4159):多 turnClosed === false 分支,且含 interrupted。
50
- const alwaysOpen = presentation?.turnClosed === false
51
- || presentation?.hasInterleavedInput === true
52
- || reason === 'aborted'
53
- || reason === 'interrupted'
54
- || reason === 'error';
55
- const storedAnswerStep = openState.get(group.data.turn);
56
- const outerHidden = foldCompleted && presentation?.turnClosed === true && spec !== undefined
57
- && !alwaysOpen && storedAnswerStep !== (spec.answerStep ?? 0);
58
- useEffect(() => {
59
- if (outerHidden)
60
- setOpen(false);
61
- }, [outerHidden]);
62
- const bodyRef = useRef(null);
63
- const [edges, setEdges] = useState({ up: false, down: false });
64
- const measure = useCallback(() => {
65
- const el = bodyRef.current;
66
- if (el === null)
67
- return;
68
- setEdges({
69
- up: el.scrollTop > 1,
70
- down: el.scrollTop + el.clientHeight < el.scrollHeight - 1,
71
- });
72
- }, []);
73
- useEffect(() => {
74
- if (grouped && open)
75
- measure();
76
- }, [grouped, open, measure]);
77
- if (first === undefined || firstNode === undefined)
78
- return null;
79
- const label = group.data.closed ? processTitle(group.data.summary, t) : t('stepProcessDoneThinking');
80
- const activity = group.data.summary.counts[0]?.kind ?? 'thinking';
81
- const ActivityIcon = PROCESS_ICONS[activity] ?? IconThinkOutlineRegular;
82
- const bodyClass = [
83
- officialClass('ChatGroupSeat', 'body') ?? '',
84
- grouped ? '' : officialClass('ChatGroupSeat', 'expandedBody') ?? '',
85
- grouped && edges.up ? officialClass('ChatGroupSeat', 'fadeTop') ?? '' : '',
86
- grouped && edges.down ? officialClass('ChatGroupSeat', 'fadeBottom') ?? '' : '',
87
- ].filter(part => part !== '').join(' ');
88
- return h('div', {
89
- className: officialClass('ChatGroupSeat', 'root') ?? '',
90
- 'data-chat-group-key': group.key,
91
- 'data-chat-flow-key': group.key,
92
- 'data-chat-anchor-key': `group:${group.key}`,
93
- 'data-chat-turn': group.data.turn,
94
- 'data-step-process': true,
95
- 'data-group-expanded-mode': !grouped || undefined,
96
- hidden: outerHidden || undefined,
97
- }, grouped
98
- ? h('button', {
99
- type: 'button',
100
- className: officialClass('ChatGroupSeat', 'title') ?? '',
101
- 'aria-expanded': open,
102
- onClick: () => { setOpen(value => !value); },
103
- }, h('span', {
104
- className: officialClass('ChatGroupSeat', 'leading') ?? '',
105
- 'aria-hidden': true,
106
- }, h('span', {
107
- className: officialClass('ChatGroupSeat', 'activityIcon') ?? '',
108
- 'data-step-process-icon': true,
109
- }, h(ActivityIcon, SMALL_ICONS.has(activity) ? { size: 14 } : {})), open
110
- ? h(IconChevronUpOutlineRegular, { className: officialClass('ChatGroupSeat', 'chevron') ?? '' })
111
- : h(IconChevronDownOutlineRegular, { className: officialClass('ChatGroupSeat', 'chevron') ?? '' })), h('span', { className: officialClass('ChatGroupSeat', 'label') ?? '' }, label))
112
- : null, h('div', {
113
- ref: bodyRef,
114
- className: bodyClass,
115
- 'data-step-process-body': true,
116
- 'data-scroll-up': edges.up || undefined,
117
- 'data-scroll-down': edges.down || undefined,
118
- onScroll: measure,
119
- hidden: grouped && !open || undefined,
120
- }, h('div', {
121
- className: officialClass('ChatGroupSeat', 'content') ?? '',
122
- 'data-step-process-content': true,
123
- 'data-chat-flow': '',
124
- }, group.members.map(member => h(ChatNodeSeatMirror, {
125
- key: JSON.stringify([member.key, member.groupPart ?? null]),
126
- node: store?.get(member.key) ?? { key: member.key, kind: '', anchorSeq: 0 },
127
- groupPart: member.groupPart,
128
- store,
129
- openState,
130
- onSetOpen,
131
- foldCompleted,
132
- renderNode,
133
- })))));
134
- }
135
- //# sourceMappingURL=ChatGroupSeat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatGroupSeat.js","sourceRoot":"","sources":["../../../src/session/mirror/ChatGroupSeat.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,2EAA2E;AAC3E,kFAAkF;AAClF,sEAAsE;AACtE,2EAA2E;AAC3E,4DAA4D;AAC5D,4EAA4E;AAC5E,oCAAoC;AACpC,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpF,OAAO,EACL,6BAA6B,EAC7B,qBAAqB,EACrB,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGtD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAqB,MAAM,mBAAmB,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAmD,MAAM,qBAAqB,CAAA;AAEnG,wFAAwF;AACxF,MAAM,CAAC,MAAM,aAAa,GAA+F;IACvH,QAAQ,EAAE,uBAAuB;IACjC,IAAI,EAAE,wBAAwB;IAC9B,SAAS,EAAE,wBAAwB;IACnC,MAAM,EAAE,wBAAwB;IAChC,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE,qBAAqB;IAC/B,IAAI,EAAE,sBAAsB;IAC5B,SAAS,EAAE,uBAAuB;IAClC,QAAQ,EAAE,wBAAwB;IAClC,SAAS,EAAE,6BAA6B;IACxC,IAAI,EAAE,sBAAsB;IAC5B,SAAS,EAAE,0BAA0B;IACrC,KAAK,EAAE,kBAAkB;CAC1B,CAAA;AAED,qEAAqE;AACrE,MAAM,WAAW,GAA8C,IAAI,GAAG,CAAC;IACrE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO;CACzF,CAAC,CAAA;AAEF,6BAA6B;AAC7B,MAAM,UAAU,mBAAmB,CAAC,KAUnC;IACC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,KAAK,CAAA;IAC3F,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACzE,MAAM,YAAY,GAA4C,KAAK,KAAK,SAAS;QAC/E,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IACtC,MAAM,IAAI,GAAG,YAAY,EAAE,IAAI,IAAI,SAAS,CAAA;IAC5C,MAAM,QAAQ,GAAG,SAAS,EAAE,QAAQ,CAAA;IACpC,MAAM,MAAM,GAAG,QAAQ,EAAE,IAAI,KAAK,MAAM,IAAI,QAAQ,EAAE,IAAI,KAAK,MAAM;QACnE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;QACxC,CAAC,CAAC,SAAS,CAAA;IACb,gGAAgG;IAChG,MAAM,UAAU,GAAG,YAAY,EAAE,UAAU,KAAK,KAAK;WAChD,YAAY,EAAE,mBAAmB,KAAK,IAAI;WAC1C,MAAM,KAAK,SAAS;WACpB,MAAM,KAAK,aAAa;WACxB,MAAM,KAAK,OAAO,CAAA;IACvB,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvD,MAAM,WAAW,GAAG,aAAa,IAAI,YAAY,EAAE,UAAU,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;WACvF,CAAC,UAAU,IAAI,gBAAgB,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAA;IAC/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW;YAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IACjB,MAAM,OAAO,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACnD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAiC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9F,MAAM,OAAO,GAAG,WAAW,CAAC,GAAS,EAAE;QACrC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAA;QAC1B,IAAI,EAAE,KAAK,IAAI;YAAE,OAAM;QACvB,QAAQ,CAAC;YACP,EAAE,EAAE,EAAE,CAAC,SAAS,GAAG,CAAC;YACpB,IAAI,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,GAAG,CAAC;SAC3D,CAAC,CAAA;IACJ,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,IAAI,IAAI;YAAE,OAAO,EAAE,CAAA;IAChC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAC5B,IAAI,KAAK,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAA;IACpG,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,UAAU,CAAA;IACjE,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,uBAAuB,CAAA;IACvE,MAAM,SAAS,GAAG;QAChB,aAAa,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE;QAC5C,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,eAAe,EAAE,cAAc,CAAC,IAAI,EAAE;QACnE,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QAC1E,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,eAAe,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;KAChF,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvC,OAAO,CAAC,CAAC,KAAK,EAAE;QACd,SAAS,EAAE,aAAa,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE;QACvD,qBAAqB,EAAE,KAAK,CAAC,GAAG;QAChC,oBAAoB,EAAE,KAAK,CAAC,GAAG;QAC/B,sBAAsB,EAAE,SAAS,KAAK,CAAC,GAAG,EAAE;QAC5C,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;QACjC,mBAAmB,EAAE,IAAI;QACzB,0BAA0B,EAAE,CAAC,OAAO,IAAI,SAAS;QACjD,MAAM,EAAE,WAAW,IAAI,SAAS;KACjC,EACC,OAAO;QACL,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,EAAE;YACxD,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;SAC5C,EACC,CAAC,CAAC,MAAM,EAAE;YACR,SAAS,EAAE,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,IAAI,EAAE;YAC1D,aAAa,EAAE,IAAI;SACpB,EACC,CAAC,CAAC,MAAM,EAAE;YACR,SAAS,EAAE,aAAa,CAAC,eAAe,EAAE,cAAc,CAAC,IAAI,EAAE;YAC/D,wBAAwB,EAAE,IAAI;SAC/B,EAAE,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAClE,IAAI;YACF,CAAC,CAAC,CAAC,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YAChG,CAAC,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CACrG,EACD,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAC/E;QACH,CAAC,CAAC,IAAI,EACR,CAAC,CAAC,KAAK,EAAE;QACP,GAAG,EAAE,OAAO;QACZ,SAAS,EAAE,SAAS;QACpB,wBAAwB,EAAE,IAAI;QAC9B,gBAAgB,EAAE,KAAK,CAAC,EAAE,IAAI,SAAS;QACvC,kBAAkB,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS;QAC3C,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,OAAO,IAAI,CAAC,IAAI,IAAI,SAAS;KACtC,EACC,CAAC,CAAC,KAAK,EAAE;QACP,SAAS,EAAE,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,IAAI,EAAE;QAC1D,2BAA2B,EAAE,IAAI;QACjC,gBAAgB,EAAE,EAAE;KACrB,EACC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE;QAChD,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;QAC3D,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;QAC3E,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK;QACL,SAAS;QACT,SAAS;QACT,aAAa;QACb,UAAU;KACX,CAAC,CAAC,CACJ,CACF,CACF,CAAA;AACH,CAAC"}
@@ -1,43 +0,0 @@
1
- import { createElement as h } from 'react';
2
- import type { ReactNode } from 'react';
3
- import type { ChatNodeFace, ChatNodeStoreFace, NodeLocationFace, TurnLocationFace, TurnProcessPresentationFace, TurnProcessSpecFace } from '../faces.js';
4
- /**
5
- * 官方 TURN_PROCESS_INDEPENDENT_KINDS(lib/client.js:1525):这些 kind 永远不进过程折叠区。
6
- */
7
- export declare const TURN_PROCESS_INDEPENDENT_KINDS: ReadonlySet<string>;
8
- /**
9
- * 读过程席位快照。宿主 API 形态变了也只降级成「不折叠」,不让整个弹窗白屏。
10
- */
11
- export declare function readPresentation(store: ChatNodeStoreFace | undefined, key: string): TurnProcessPresentationFace | undefined;
12
- /** 交给节点视图的 Turn 过程席位(官方 owner.turnProcess,ChatNodeSeat.tsx:1693-1706)。 */
13
- export interface TurnProcessHandle {
14
- spec?: TurnProcessSpecFace;
15
- foldable: boolean;
16
- hasContent: boolean;
17
- open: boolean;
18
- /** 官方 turnProcessAlwaysOpen(node):live / 已停止 / 失败的 turn 不允许折叠。 */
19
- alwaysOpen: boolean;
20
- setOpen(open: boolean): void;
21
- }
22
- /** 节点视图渲染函数(官方 slot "conversation.chat.node" 的等价物)。 */
23
- export type NodeRenderer = (node: ChatNodeFace, turnProcess: TurnProcessHandle | undefined,
24
- /** 官方 groupPart:'reasoning' 只渲染思考块(组内),'response' 只渲染回复正文(组外)。 */
25
- groupPart?: 'response' | 'reasoning') => ReactNode;
26
- /** 取节点所属 turn(官方 turnOf,ChatNodeSeat.tsx:1660)。 */
27
- export declare function turnOf(node: ChatNodeFace | undefined): number | undefined;
28
- /** 官方 turnProcessAlwaysOpen(0.2.1-rc.5 chat:3644-3649):live / aborted / interrupted / error 的 turn 不折叠。 */
29
- export declare function turnProcessAlwaysOpen(node: ChatNodeFace | undefined): boolean;
30
- /** 一个 keyed 节点 → 一个 flowItem(官方 ChatNodeSeat 的 JSX 等价物)。 */
31
- export declare function ChatNodeSeatMirror(props: {
32
- node: ChatNodeFace;
33
- groupPart?: 'response' | 'reasoning';
34
- store?: ChatNodeStoreFace;
35
- /** turn → 已展开的 answerStep(官方 store 的 storedTurnProcessEntry)。 */
36
- openState: ReadonlyMap<number, number>;
37
- onSetOpen(turn: number, answerStep: number, open: boolean): void;
38
- /** 官方 usePresentation(policy => policy.foldCompletedTurns);历史只读视图恒 true。 */
39
- foldCompleted: boolean;
40
- renderNode: NodeRenderer;
41
- }): ReturnType<typeof h> | null;
42
- export type { NodeLocationFace, TurnLocationFace };
43
- //# sourceMappingURL=ChatNodeSeat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatNodeSeat.d.ts","sourceRoot":"","sources":["../../../src/session/mirror/ChatNodeSeat.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,2BAA2B,EAC3B,mBAAmB,EACpB,MAAM,aAAa,CAAA;AAEpB;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,WAAW,CAAC,MAAM,CAS7D,CAAA;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS,CAS3H;AAED,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,mBAAmB,CAAA;IAC1B,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,OAAO,CAAA;IACb,kEAAkE;IAClE,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CAC7B;AAED,uDAAuD;AACvD,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,iBAAiB,GAAG,SAAS;AAC1C,kEAAkE;AAClE,SAAS,CAAC,EAAE,UAAU,GAAG,WAAW,KACjC,SAAS,CAAA;AAEd,mDAAmD;AACnD,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGzE;AAED,2GAA2G;AAC3G,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAK7E;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,CAAC,EAAE,UAAU,GAAG,WAAW,CAAA;IACpC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,iEAAiE;IACjE,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IAChE,4EAA4E;IAC5E,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,YAAY,CAAA;CACzB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAgE9B;AAED,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
@@ -1,133 +0,0 @@
1
- // 官方对照:packages/client/ui-chat/src/client/chat/ChatNodeSeat.tsx(0.1.7-rc.2 lib/client.js:1668-1771)
2
- // + 同文件里的 ChatNodeList(lib/client.js:5004-5038,order → seat 列表)。
3
- //
4
- // 这是「官方把一个 turn 折成一行」的全部判定,逐行照抄(源码行号见兄弟项目 ui-map §十七):
5
- // liveProcess = presentation && !turnClosed
6
- // alwaysOpen = liveProcess || hasInterleavedInput || turnProcessAlwaysOpen(node)
7
- // processOpen = alwaysOpen || stored.answerStep === spec.answerStep
8
- // processWindowReady = spec && presentation && foldCompleted && presentation.turn === spec.turn && (turnStarted || turnClosed)
9
- // processMember = !TURN_PROCESS_INDEPENDENT_KINDS.has(kind) && anchorSeq >= spec.processStartSeq
10
- // && (liveProcess || spec.answerAnchorSeq === null || anchorSeq < spec.answerAnchorSeq
11
- // || groupPart === 'reasoning' && kind === 'assistant-step' && data.step === spec.answerStep)
12
- // processAnswer = !liveProcess && groupPart !== 'reasoning' && kind === 'assistant-step' && data.step === spec.answerStep
13
- // ownsDisclosure = kind === 'turn-process' || processAnswer
14
- // foldable = processWindowReady && (liveProcess || processMember || ownsDisclosure)
15
- // controllerInactive = kind === 'turn-process' && foldCompleted && !foldable
16
- // compactAnswer = processAnswer && foldable && presentation.compactAnswer && !processOpen
17
- // processHidden = controllerInactive || (foldable && processMember && !processOpen)
18
- // 折叠 = 给 flowItem 写 hidden 属性(官方由 useSearchableHidden 响应式置位,这里声明式写)。
19
- // ⚠ 与官方的两点已知偏差(只读历史场景等价,写在此处便于日后 diff):
20
- // 1. 官方每个 seat 各自订阅 nodeStore/processSource;我们按「外层快照变化 ⇒ 整体重算」读取。
21
- // 2. 官方 grouped('chat') 的分组项(ChatGroupSeat)由 process-groups.ts 算法移植补齐。
22
- import { createElement as h } from 'react';
23
- import { officialClass } from '../official-classes.js';
24
- /**
25
- * 官方 TURN_PROCESS_INDEPENDENT_KINDS(lib/client.js:1525):这些 kind 永远不进过程折叠区。
26
- */
27
- export const TURN_PROCESS_INDEPENDENT_KINDS = new Set([
28
- 'system-prompt',
29
- 'user',
30
- 'steering',
31
- 'turn-trigger',
32
- 'turn-process',
33
- 'turn-error',
34
- 'turn-max-tokens',
35
- 'turn-tail',
36
- ]);
37
- /**
38
- * 读过程席位快照。宿主 API 形态变了也只降级成「不折叠」,不让整个弹窗白屏。
39
- */
40
- export function readPresentation(store, key) {
41
- if (store === undefined)
42
- return undefined;
43
- try {
44
- const source = store.processSource;
45
- if (typeof source !== 'function')
46
- return undefined;
47
- return source.call(store, key)?.getSnapshot();
48
- }
49
- catch {
50
- return undefined;
51
- }
52
- }
53
- /** 取节点所属 turn(官方 turnOf,ChatNodeSeat.tsx:1660)。 */
54
- export function turnOf(node) {
55
- const location = node?.location;
56
- return location?.kind === 'turn' || location?.kind === 'step' ? location.turn?.turn : undefined;
57
- }
58
- /** 官方 turnProcessAlwaysOpen(0.2.1-rc.5 chat:3644-3649):live / aborted / interrupted / error 的 turn 不折叠。 */
59
- export function turnProcessAlwaysOpen(node) {
60
- const location = node?.location;
61
- if (location?.kind !== 'turn' && location?.kind !== 'step')
62
- return false;
63
- const reason = location.turn?.end?.data?.reason?.kind;
64
- return location.turn?.status === 'open' || reason === 'aborted' || reason === 'interrupted' || reason === 'error';
65
- }
66
- /** 一个 keyed 节点 → 一个 flowItem(官方 ChatNodeSeat 的 JSX 等价物)。 */
67
- export function ChatNodeSeatMirror(props) {
68
- const { node, groupPart, store, openState, onSetOpen, foldCompleted, renderNode } = props;
69
- const turn = turnOf(node);
70
- const presentation = readPresentation(store, node.key);
71
- // 官方 spec 来自 presentation;弹窗读归档会话时投影可能更薄 ⇒ turn-process 自身 data 兜底。
72
- const spec = (presentation?.spec ?? undefined)
73
- ?? (node.kind === 'turn-process' ? node.data : undefined);
74
- const liveProcess = presentation !== undefined && presentation.turnClosed !== true;
75
- const interleavedInput = presentation?.hasInterleavedInput === true;
76
- const alwaysOpen = liveProcess || interleavedInput || turnProcessAlwaysOpen(node);
77
- const storedAnswerStep = turn === undefined ? undefined : openState.get(turn);
78
- const processOpen = alwaysOpen || (spec !== undefined && storedAnswerStep === (spec.answerStep ?? 0));
79
- const setOpen = (open) => {
80
- if (spec !== undefined && !alwaysOpen && turn !== undefined)
81
- onSetOpen(turn, spec.answerStep ?? 0, open);
82
- };
83
- const processWindowReady = spec !== undefined && presentation !== undefined && foldCompleted
84
- && presentation.turn === spec.turn
85
- && (presentation.turnStarted === true || presentation.turnClosed === true);
86
- const dataStep = typeof node.data?.step === 'number' ? node.data.step : undefined;
87
- const processMember = processWindowReady && spec !== undefined
88
- && !TURN_PROCESS_INDEPENDENT_KINDS.has(node.kind)
89
- && node.anchorSeq >= spec.processStartSeq
90
- && (liveProcess
91
- || spec.answerAnchorSeq === null
92
- || node.anchorSeq < spec.answerAnchorSeq
93
- || (groupPart === 'reasoning' && node.kind === 'assistant-step' && dataStep === spec.answerStep));
94
- const processAnswer = processWindowReady && spec !== undefined && !liveProcess
95
- && groupPart !== 'reasoning'
96
- && node.kind === 'assistant-step'
97
- && dataStep === spec.answerStep;
98
- const ownsDisclosure = node.kind === 'turn-process' || processAnswer;
99
- const foldable = processWindowReady && (liveProcess || processMember || ownsDisclosure);
100
- const turnProcess = spec === undefined ? undefined : {
101
- spec,
102
- foldable,
103
- hasContent: !interleavedInput && (presentation?.hasExternalProcess === true || spec.inlineReasoning),
104
- open: processOpen,
105
- alwaysOpen,
106
- setOpen,
107
- };
108
- const controllerInactive = node.kind === 'turn-process' && foldCompleted && !foldable;
109
- const compactAnswer = processAnswer && foldable && presentation?.compactAnswer === true && !processOpen;
110
- const processHidden = controllerInactive || (foldable && processMember && !processOpen);
111
- // ⚠ groupPart 必须传给节点视图:'reasoning' 只渲染思考块、'response' 只渲染回复正文
112
- // (官方块渲染器 lib/client.js:5824-5825)。漏传会把整步(思考+文本+工具块)全画出来——
113
- // 步内工具块再画一张 = 与独立工具节点重复(真机踩过,2026-09-27)。
114
- const inner = renderNode(node, turnProcess, groupPart);
115
- if (inner === null || inner === undefined)
116
- return null;
117
- const flowKey = groupPart === undefined || groupPart === 'response' ? node.key : JSON.stringify([node.key, groupPart]);
118
- return h('div', {
119
- className: officialClass('ChatView', 'flowItem') ?? '',
120
- 'data-chat-anchor-key': flowKey,
121
- 'data-chat-flow-key': flowKey,
122
- 'data-chat-paging-anchor': node.kind !== 'turn-process' || undefined,
123
- 'data-chat-node-key': node.key,
124
- 'data-chat-group-part': groupPart,
125
- 'data-chat-flow-kind': node.kind,
126
- 'data-chat-turn': turn,
127
- 'data-turn-process-member': processMember || undefined,
128
- 'data-turn-process-hidden': processHidden || undefined,
129
- 'data-turn-process-answer': compactAnswer || undefined,
130
- hidden: processHidden || undefined,
131
- }, inner);
132
- }
133
- //# sourceMappingURL=ChatNodeSeat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatNodeSeat.js","sourceRoot":"","sources":["../../../src/session/mirror/ChatNodeSeat.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- import { createElement as h } from 'react';
2
- import type { ReactNode } from 'react';
3
- import type { Translate } from '../../utils/i18n.js';
4
- import type { ChatNodeStoreFace, TurnsFace } from '../faces.js';
5
- import type { NodeRenderer } from './ChatNodeSeat.js';
6
- import type { ChatEntry, ProcessGroupSnapshot } from './process-groups.js';
7
- /** 会话区骨架:frame > root > scroll > column(类名一律取官方 ChatView.module.css,取不到 = 空类)。
8
- *
9
- * `dshpc-sv-frame` / `dshpc-sv-scroll` = 本包**稳定钩子类**(不走 officialClass 发现,官方类命中时也照样挂):
10
- * 会话区**纵向间距的唯一真源**。官方 scroll 自带纵向 16px、官方 frame 的纵向值又不确定,
11
- * 归一方案(移植自兄弟项目 2026-10-03 定尺):**scroll 钩子把官方纵向 16px 归零,
12
- * frame 钩子独自定 17/17**,两条钩子都用双类名提高特异性压过官方 CSS module(0,2,0 > 0,1,0),
13
- * 不依赖注入顺序 ⇒ 命中 / 未命中两条路径纵向完全一致。
14
- */
15
- export declare function ChatViewFrame(props: {
16
- children?: ReactNode;
17
- }): ReturnType<typeof h>;
18
- /** 官方 ChatNodeList:order → seat 列表(grouped 视图 = entries + groups 路径)。 */
19
- export declare function ChatNodeListMirror(props: {
20
- order: readonly string[];
21
- store?: ChatNodeStoreFace;
22
- /** 官方 grouped('chat') 的 entries + 组快照(buildProcessGroups 产出);缺省走 order 兜底。 */
23
- entries?: ReadonlyArray<ChatEntry>;
24
- groups?: ReadonlyMap<string, ProcessGroupSnapshot>;
25
- /** 官方 timeline.turns(判 turn 是否 open ⇒ grouped 政策)。 */
26
- turns?: TurnsFace;
27
- openState: ReadonlyMap<number, number>;
28
- onSetOpen(turn: number, answerStep: number, open: boolean): void;
29
- foldCompleted: boolean;
30
- renderNode: NodeRenderer;
31
- t: Translate;
32
- }): Array<ReturnType<typeof h> | null>;
33
- /** 加载 / 空态提示行(13px tertiary)。 */
34
- export declare function ChatHint(props: {
35
- text: string;
36
- }): ReturnType<typeof h>;
37
- /** 「加载更早记录」按钮(官方 older:按钮 4px 12px / 12px 字号 / radius-sm / 底色 interactive-bg-hover-solid)。 */
38
- export declare function ChatOlderButton(props: {
39
- label: string;
40
- onClick: () => void;
41
- }): ReturnType<typeof h>;
42
- /** 「到底部」悬浮钮(官方 toBottom:34×34 圆形悬浮,仅在有更多历史时显示)。 */
43
- export declare function ChatToBottom(props: {
44
- label: string;
45
- onClick: () => void;
46
- }): ReturnType<typeof h>;
47
- //# sourceMappingURL=ChatView.d.ts.map