dsh-plugin-core 0.31.0 → 0.33.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 (685) hide show
  1. package/dist/adv/explorer/FileBrowser.d.ts +58 -0
  2. package/dist/adv/explorer/FileBrowser.d.ts.map +1 -0
  3. package/dist/adv/explorer/FileBrowser.js +632 -0
  4. package/dist/adv/explorer/FileBrowser.js.map +1 -0
  5. package/dist/adv/explorer/crumb-nav.d.ts +45 -0
  6. package/dist/adv/explorer/crumb-nav.d.ts.map +1 -0
  7. package/dist/adv/explorer/crumb-nav.js +78 -0
  8. package/dist/adv/explorer/crumb-nav.js.map +1 -0
  9. package/dist/adv/explorer/crumbs-menu.d.ts +37 -0
  10. package/dist/adv/explorer/crumbs-menu.d.ts.map +1 -0
  11. package/dist/adv/explorer/crumbs-menu.js +102 -0
  12. package/dist/adv/explorer/crumbs-menu.js.map +1 -0
  13. package/dist/adv/explorer/explorer-css.d.ts +2 -0
  14. package/dist/adv/explorer/explorer-css.d.ts.map +1 -0
  15. package/dist/adv/explorer/explorer-css.generated.d.ts +2 -0
  16. package/dist/adv/explorer/explorer-css.generated.d.ts.map +1 -0
  17. package/dist/adv/explorer/explorer-css.generated.js +4 -0
  18. package/dist/adv/explorer/explorer-css.generated.js.map +1 -0
  19. package/dist/adv/explorer/explorer-css.js +3 -0
  20. package/dist/adv/explorer/explorer-css.js.map +1 -0
  21. package/dist/adv/explorer/fs-face.d.ts +36 -0
  22. package/dist/adv/explorer/fs-face.d.ts.map +1 -0
  23. package/dist/adv/explorer/fs-face.js +74 -0
  24. package/dist/adv/explorer/fs-face.js.map +1 -0
  25. package/dist/adv/explorer/index.d.ts +6 -0
  26. package/dist/adv/explorer/index.d.ts.map +1 -0
  27. package/dist/adv/explorer/index.js +6 -0
  28. package/dist/adv/explorer/index.js.map +1 -0
  29. package/dist/adv/explorer/landing.d.ts +26 -0
  30. package/dist/adv/explorer/landing.d.ts.map +1 -0
  31. package/dist/adv/explorer/landing.js +43 -0
  32. package/dist/adv/explorer/landing.js.map +1 -0
  33. package/dist/adv/explorer/open.d.ts +137 -0
  34. package/dist/adv/explorer/open.d.ts.map +1 -0
  35. package/dist/adv/explorer/open.js +350 -0
  36. package/dist/adv/explorer/open.js.map +1 -0
  37. package/dist/adv/explorer/picker-placement.d.ts +69 -0
  38. package/dist/adv/explorer/picker-placement.d.ts.map +1 -0
  39. package/dist/adv/explorer/picker-placement.js +122 -0
  40. package/dist/adv/explorer/picker-placement.js.map +1 -0
  41. package/dist/adv/explorer/preview/BytesPreview.d.ts +12 -0
  42. package/dist/adv/explorer/preview/BytesPreview.d.ts.map +1 -0
  43. package/dist/adv/explorer/preview/BytesPreview.js +60 -0
  44. package/dist/adv/explorer/preview/BytesPreview.js.map +1 -0
  45. package/dist/adv/explorer/preview/HtmlPreview.d.ts +17 -0
  46. package/dist/adv/explorer/preview/HtmlPreview.d.ts.map +1 -0
  47. package/dist/adv/explorer/preview/HtmlPreview.js +113 -0
  48. package/dist/adv/explorer/preview/HtmlPreview.js.map +1 -0
  49. package/dist/adv/explorer/preview/OfficePreview.d.ts +12 -0
  50. package/dist/adv/explorer/preview/OfficePreview.d.ts.map +1 -0
  51. package/dist/adv/explorer/preview/OfficePreview.js +63 -0
  52. package/dist/adv/explorer/preview/OfficePreview.js.map +1 -0
  53. package/dist/adv/explorer/preview/TextPreview.d.ts +18 -0
  54. package/dist/adv/explorer/preview/TextPreview.d.ts.map +1 -0
  55. package/dist/adv/explorer/preview/TextPreview.js +122 -0
  56. package/dist/adv/explorer/preview/TextPreview.js.map +1 -0
  57. package/dist/adv/explorer/preview/index.d.ts +24 -0
  58. package/dist/adv/explorer/preview/index.d.ts.map +1 -0
  59. package/dist/adv/explorer/preview/index.js +58 -0
  60. package/dist/adv/explorer/preview/index.js.map +1 -0
  61. package/dist/adv/explorer/preview/md-labels.d.ts +3 -0
  62. package/dist/adv/explorer/preview/md-labels.d.ts.map +1 -0
  63. package/dist/adv/explorer/preview/md-labels.js +12 -0
  64. package/dist/adv/explorer/preview/md-labels.js.map +1 -0
  65. package/dist/adv/explorer/preview-title-bar.d.ts +26 -0
  66. package/dist/adv/explorer/preview-title-bar.d.ts.map +1 -0
  67. package/dist/adv/explorer/preview-title-bar.js +48 -0
  68. package/dist/adv/explorer/preview-title-bar.js.map +1 -0
  69. package/dist/adv/explorer/types.d.ts +259 -0
  70. package/dist/adv/explorer/types.d.ts.map +1 -0
  71. package/dist/adv/explorer/types.js +379 -0
  72. package/dist/adv/explorer/types.js.map +1 -0
  73. package/dist/adv/session/SessionViewModal.d.ts +37 -0
  74. package/dist/adv/session/SessionViewModal.d.ts.map +1 -0
  75. package/dist/adv/session/SessionViewModal.js +1133 -0
  76. package/dist/adv/session/SessionViewModal.js.map +1 -0
  77. package/dist/adv/session/changes.d.ts +73 -0
  78. package/dist/adv/session/changes.d.ts.map +1 -0
  79. package/dist/adv/session/changes.js +134 -0
  80. package/dist/adv/session/changes.js.map +1 -0
  81. package/dist/adv/session/faces.d.ts +244 -0
  82. package/dist/adv/session/faces.d.ts.map +1 -0
  83. package/dist/adv/session/faces.js +17 -0
  84. package/dist/adv/session/faces.js.map +1 -0
  85. package/dist/adv/session/index.d.ts +7 -0
  86. package/dist/adv/session/index.d.ts.map +1 -0
  87. package/dist/adv/session/index.js +27 -0
  88. package/dist/adv/session/index.js.map +1 -0
  89. package/dist/adv/session/mirror/AskCard.d.ts +35 -0
  90. package/dist/adv/session/mirror/AskCard.d.ts.map +1 -0
  91. package/dist/adv/session/mirror/AskCard.js +131 -0
  92. package/dist/adv/session/mirror/AskCard.js.map +1 -0
  93. package/dist/adv/session/mirror/BashRow.d.ts +14 -0
  94. package/dist/adv/session/mirror/BashRow.d.ts.map +1 -0
  95. package/dist/adv/session/mirror/BashRow.js +143 -0
  96. package/dist/adv/session/mirror/BashRow.js.map +1 -0
  97. package/dist/adv/session/mirror/ChangedFileDiff.d.ts +25 -0
  98. package/dist/adv/session/mirror/ChangedFileDiff.d.ts.map +1 -0
  99. package/dist/adv/session/mirror/ChangedFileDiff.js +178 -0
  100. package/dist/adv/session/mirror/ChangedFileDiff.js.map +1 -0
  101. package/dist/adv/session/mirror/ChangedFilesCard.d.ts +18 -0
  102. package/dist/adv/session/mirror/ChangedFilesCard.d.ts.map +1 -0
  103. package/dist/adv/session/mirror/ChangedFilesCard.js +165 -0
  104. package/dist/adv/session/mirror/ChangedFilesCard.js.map +1 -0
  105. package/dist/adv/session/mirror/ChatGroupSeat.d.ts +24 -0
  106. package/dist/adv/session/mirror/ChatGroupSeat.d.ts.map +1 -0
  107. package/dist/adv/session/mirror/ChatGroupSeat.js +135 -0
  108. package/dist/adv/session/mirror/ChatGroupSeat.js.map +1 -0
  109. package/dist/adv/session/mirror/ChatNodeSeat.d.ts +43 -0
  110. package/dist/adv/session/mirror/ChatNodeSeat.d.ts.map +1 -0
  111. package/dist/adv/session/mirror/ChatNodeSeat.js +133 -0
  112. package/dist/adv/session/mirror/ChatNodeSeat.js.map +1 -0
  113. package/dist/adv/session/mirror/ChatView.d.ts +47 -0
  114. package/dist/adv/session/mirror/ChatView.d.ts.map +1 -0
  115. package/dist/adv/session/mirror/ChatView.js +138 -0
  116. package/dist/adv/session/mirror/ChatView.js.map +1 -0
  117. package/dist/adv/session/mirror/CommandCard.d.ts +20 -0
  118. package/dist/adv/session/mirror/CommandCard.d.ts.map +1 -0
  119. package/dist/adv/session/mirror/CommandCard.js +69 -0
  120. package/dist/adv/session/mirror/CommandCard.js.map +1 -0
  121. package/dist/adv/session/mirror/ContextInjectionRow.d.ts +18 -0
  122. package/dist/adv/session/mirror/ContextInjectionRow.d.ts.map +1 -0
  123. package/dist/adv/session/mirror/ContextInjectionRow.js +50 -0
  124. package/dist/adv/session/mirror/ContextInjectionRow.js.map +1 -0
  125. package/dist/adv/session/mirror/Deliverables.d.ts +24 -0
  126. package/dist/adv/session/mirror/Deliverables.d.ts.map +1 -0
  127. package/dist/adv/session/mirror/Deliverables.js +175 -0
  128. package/dist/adv/session/mirror/Deliverables.js.map +1 -0
  129. package/dist/adv/session/mirror/GenericCommandCard.d.ts +136 -0
  130. package/dist/adv/session/mirror/GenericCommandCard.d.ts.map +1 -0
  131. package/dist/adv/session/mirror/GenericCommandCard.js +948 -0
  132. package/dist/adv/session/mirror/GenericCommandCard.js.map +1 -0
  133. package/dist/adv/session/mirror/MessageIconActions.d.ts +16 -0
  134. package/dist/adv/session/mirror/MessageIconActions.d.ts.map +1 -0
  135. package/dist/adv/session/mirror/MessageIconActions.js +69 -0
  136. package/dist/adv/session/mirror/MessageIconActions.js.map +1 -0
  137. package/dist/adv/session/mirror/MessageItem.d.ts +93 -0
  138. package/dist/adv/session/mirror/MessageItem.d.ts.map +1 -0
  139. package/dist/adv/session/mirror/MessageItem.js +194 -0
  140. package/dist/adv/session/mirror/MessageItem.js.map +1 -0
  141. package/dist/adv/session/mirror/ReasoningRow.d.ts +11 -0
  142. package/dist/adv/session/mirror/ReasoningRow.d.ts.map +1 -0
  143. package/dist/adv/session/mirror/ReasoningRow.js +111 -0
  144. package/dist/adv/session/mirror/ReasoningRow.js.map +1 -0
  145. package/dist/adv/session/mirror/RunningStatus.d.ts +12 -0
  146. package/dist/adv/session/mirror/RunningStatus.d.ts.map +1 -0
  147. package/dist/adv/session/mirror/RunningStatus.js +57 -0
  148. package/dist/adv/session/mirror/RunningStatus.js.map +1 -0
  149. package/dist/adv/session/mirror/StatDialog.d.ts +20 -0
  150. package/dist/adv/session/mirror/StatDialog.d.ts.map +1 -0
  151. package/dist/adv/session/mirror/StatDialog.js +49 -0
  152. package/dist/adv/session/mirror/StatDialog.js.map +1 -0
  153. package/dist/adv/session/mirror/ToolDetails.d.ts +65 -0
  154. package/dist/adv/session/mirror/ToolDetails.d.ts.map +1 -0
  155. package/dist/adv/session/mirror/ToolDetails.js +268 -0
  156. package/dist/adv/session/mirror/ToolDetails.js.map +1 -0
  157. package/dist/adv/session/mirror/TurnProcessNodeView.d.ts +10 -0
  158. package/dist/adv/session/mirror/TurnProcessNodeView.d.ts.map +1 -0
  159. package/dist/adv/session/mirror/TurnProcessNodeView.js +57 -0
  160. package/dist/adv/session/mirror/TurnProcessNodeView.js.map +1 -0
  161. package/dist/adv/session/mirror/TurnTailNodeView.d.ts +57 -0
  162. package/dist/adv/session/mirror/TurnTailNodeView.d.ts.map +1 -0
  163. package/dist/adv/session/mirror/TurnTailNodeView.js +106 -0
  164. package/dist/adv/session/mirror/TurnTailNodeView.js.map +1 -0
  165. package/dist/adv/session/mirror/TurnTriggerNodeView.d.ts +16 -0
  166. package/dist/adv/session/mirror/TurnTriggerNodeView.d.ts.map +1 -0
  167. package/dist/adv/session/mirror/TurnTriggerNodeView.js +103 -0
  168. package/dist/adv/session/mirror/TurnTriggerNodeView.js.map +1 -0
  169. package/dist/adv/session/mirror/TurnUsagePanel.d.ts +21 -0
  170. package/dist/adv/session/mirror/TurnUsagePanel.d.ts.map +1 -0
  171. package/dist/adv/session/mirror/TurnUsagePanel.js +41 -0
  172. package/dist/adv/session/mirror/TurnUsagePanel.js.map +1 -0
  173. package/dist/adv/session/mirror/control-details.d.ts +9 -0
  174. package/dist/adv/session/mirror/control-details.d.ts.map +1 -0
  175. package/dist/adv/session/mirror/control-details.js +549 -0
  176. package/dist/adv/session/mirror/control-details.js.map +1 -0
  177. package/dist/adv/session/mirror/detail-i18n.d.ts +4 -0
  178. package/dist/adv/session/mirror/detail-i18n.d.ts.map +1 -0
  179. package/dist/adv/session/mirror/detail-i18n.js +153 -0
  180. package/dist/adv/session/mirror/detail-i18n.js.map +1 -0
  181. package/dist/adv/session/mirror/message-chrome.d.ts +39 -0
  182. package/dist/adv/session/mirror/message-chrome.d.ts.map +1 -0
  183. package/dist/adv/session/mirror/message-chrome.js +153 -0
  184. package/dist/adv/session/mirror/message-chrome.js.map +1 -0
  185. package/dist/adv/session/mirror/process-groups.d.ts +56 -0
  186. package/dist/adv/session/mirror/process-groups.d.ts.map +1 -0
  187. package/dist/adv/session/mirror/process-groups.js +204 -0
  188. package/dist/adv/session/mirror/process-groups.js.map +1 -0
  189. package/dist/adv/session/official-classes.d.ts +28 -0
  190. package/dist/adv/session/official-classes.d.ts.map +1 -0
  191. package/dist/adv/session/official-classes.js +152 -0
  192. package/dist/adv/session/official-classes.js.map +1 -0
  193. package/dist/adv/session/open-review.d.ts +13 -0
  194. package/dist/adv/session/open-review.d.ts.map +1 -0
  195. package/dist/adv/session/open-review.js +32 -0
  196. package/dist/adv/session/open-review.js.map +1 -0
  197. package/dist/adv/session/open-session-view.d.ts +19 -0
  198. package/dist/adv/session/open-session-view.d.ts.map +1 -0
  199. package/dist/adv/session/open-session-view.js +147 -0
  200. package/dist/adv/session/open-session-view.js.map +1 -0
  201. package/dist/adv/session/pending-inputs.d.ts +33 -0
  202. package/dist/adv/session/pending-inputs.d.ts.map +1 -0
  203. package/dist/adv/session/pending-inputs.js +130 -0
  204. package/dist/adv/session/pending-inputs.js.map +1 -0
  205. package/dist/adv/session/session-css.d.ts +2 -0
  206. package/dist/adv/session/session-css.d.ts.map +1 -0
  207. package/dist/adv/session/session-css.generated.d.ts +2 -0
  208. package/dist/adv/session/session-css.generated.d.ts.map +1 -0
  209. package/dist/adv/session/session-css.generated.js +4 -0
  210. package/dist/adv/session/session-css.generated.js.map +1 -0
  211. package/dist/adv/session/session-css.js +3 -0
  212. package/dist/adv/session/session-css.js.map +1 -0
  213. package/dist/adv/session/tail-follow.d.ts +29 -0
  214. package/dist/adv/session/tail-follow.d.ts.map +1 -0
  215. package/dist/adv/session/tail-follow.js +106 -0
  216. package/dist/adv/session/tail-follow.js.map +1 -0
  217. package/dist/design/tokens-css.generated.d.ts +1 -1
  218. package/dist/design/tokens-css.generated.d.ts.map +1 -1
  219. package/dist/design/tokens-css.generated.js +1 -1
  220. package/dist/design/tokens-css.generated.js.map +1 -1
  221. package/dist/ui/Button.d.ts.map +1 -1
  222. package/dist/ui/Button.js +6 -2
  223. package/dist/ui/Button.js.map +1 -1
  224. package/dist/ui/Checkbox.d.ts.map +1 -1
  225. package/dist/ui/Checkbox.js +7 -3
  226. package/dist/ui/Checkbox.js.map +1 -1
  227. package/dist/ui/DateTimePicker.d.ts.map +1 -1
  228. package/dist/ui/DateTimePicker.js +4 -3
  229. package/dist/ui/DateTimePicker.js.map +1 -1
  230. package/dist/ui/Field.d.ts.map +1 -1
  231. package/dist/ui/Field.js +15 -7
  232. package/dist/ui/Field.js.map +1 -1
  233. package/dist/ui/Modal.d.ts +7 -6
  234. package/dist/ui/Modal.d.ts.map +1 -1
  235. package/dist/ui/Modal.js +6 -6
  236. package/dist/ui/Modal.js.map +1 -1
  237. package/dist/ui/Pagination.d.ts.map +1 -1
  238. package/dist/ui/Pagination.js +3 -1
  239. package/dist/ui/Pagination.js.map +1 -1
  240. package/dist/ui/Picker.d.ts.map +1 -1
  241. package/dist/ui/Picker.js +3 -2
  242. package/dist/ui/Picker.js.map +1 -1
  243. package/dist/ui/Segmented.d.ts.map +1 -1
  244. package/dist/ui/Segmented.js +4 -1
  245. package/dist/ui/Segmented.js.map +1 -1
  246. package/dist/ui/SideSheet.d.ts.map +1 -1
  247. package/dist/ui/SideSheet.js +6 -5
  248. package/dist/ui/SideSheet.js.map +1 -1
  249. package/dist/ui/Textarea.d.ts.map +1 -1
  250. package/dist/ui/Textarea.js +4 -1
  251. package/dist/ui/Textarea.js.map +1 -1
  252. package/dist/ui/actions/Button.d.ts +102 -0
  253. package/dist/ui/actions/Button.d.ts.map +1 -0
  254. package/dist/ui/actions/Button.js +233 -0
  255. package/dist/ui/actions/Button.js.map +1 -0
  256. package/dist/ui/actions/button-css.generated.d.ts +2 -0
  257. package/dist/ui/actions/button-css.generated.d.ts.map +1 -0
  258. package/dist/ui/actions/button-css.generated.js +4 -0
  259. package/dist/ui/actions/button-css.generated.js.map +1 -0
  260. package/dist/ui/display/Card.d.ts +65 -0
  261. package/dist/ui/display/Card.d.ts.map +1 -0
  262. package/dist/ui/display/Card.js +109 -0
  263. package/dist/ui/display/Card.js.map +1 -0
  264. package/dist/ui/display/Chip.d.ts +28 -0
  265. package/dist/ui/display/Chip.d.ts.map +1 -0
  266. package/dist/ui/display/Chip.js +36 -0
  267. package/dist/ui/display/Chip.js.map +1 -0
  268. package/dist/ui/display/CodeViewer.d.ts +38 -0
  269. package/dist/ui/display/CodeViewer.d.ts.map +1 -0
  270. package/dist/ui/display/CodeViewer.js +107 -0
  271. package/dist/ui/display/CodeViewer.js.map +1 -0
  272. package/dist/ui/display/FieldHint.d.ts +18 -0
  273. package/dist/ui/display/FieldHint.d.ts.map +1 -0
  274. package/dist/ui/display/FieldHint.js +40 -0
  275. package/dist/ui/display/FieldHint.js.map +1 -0
  276. package/dist/ui/display/FlipText.d.ts +43 -0
  277. package/dist/ui/display/FlipText.d.ts.map +1 -0
  278. package/dist/ui/display/FlipText.js +59 -0
  279. package/dist/ui/display/FlipText.js.map +1 -0
  280. package/dist/ui/display/LiveText.d.ts +13 -0
  281. package/dist/ui/display/LiveText.d.ts.map +1 -0
  282. package/dist/ui/display/LiveText.js +19 -0
  283. package/dist/ui/display/LiveText.js.map +1 -0
  284. package/dist/ui/display/MarqueeText.d.ts +22 -0
  285. package/dist/ui/display/MarqueeText.d.ts.map +1 -0
  286. package/dist/ui/display/MarqueeText.js +52 -0
  287. package/dist/ui/display/MarqueeText.js.map +1 -0
  288. package/dist/ui/display/SectionHead.d.ts +35 -0
  289. package/dist/ui/display/SectionHead.d.ts.map +1 -0
  290. package/dist/ui/display/SectionHead.js +45 -0
  291. package/dist/ui/display/SectionHead.js.map +1 -0
  292. package/dist/ui/display/Surface.d.ts +43 -0
  293. package/dist/ui/display/Surface.d.ts.map +1 -0
  294. package/dist/ui/display/Surface.js +39 -0
  295. package/dist/ui/display/Surface.js.map +1 -0
  296. package/dist/ui/display/Table.d.ts +30 -0
  297. package/dist/ui/display/Table.d.ts.map +1 -0
  298. package/dist/ui/display/Table.js +96 -0
  299. package/dist/ui/display/Table.js.map +1 -0
  300. package/dist/ui/display/card-css.d.ts +2 -0
  301. package/dist/ui/display/card-css.d.ts.map +1 -0
  302. package/dist/ui/display/card-css.generated.d.ts +2 -0
  303. package/dist/ui/display/card-css.generated.d.ts.map +1 -0
  304. package/dist/ui/display/card-css.generated.js +4 -0
  305. package/dist/ui/display/card-css.generated.js.map +1 -0
  306. package/dist/ui/display/card-css.js +5 -0
  307. package/dist/ui/display/card-css.js.map +1 -0
  308. package/dist/ui/display/chip-css.d.ts +2 -0
  309. package/dist/ui/display/chip-css.d.ts.map +1 -0
  310. package/dist/ui/display/chip-css.generated.d.ts +2 -0
  311. package/dist/ui/display/chip-css.generated.d.ts.map +1 -0
  312. package/dist/ui/display/chip-css.generated.js +4 -0
  313. package/dist/ui/display/chip-css.generated.js.map +1 -0
  314. package/dist/ui/display/chip-css.js +12 -0
  315. package/dist/ui/display/chip-css.js.map +1 -0
  316. package/dist/ui/display/code-viewer-css.d.ts +2 -0
  317. package/dist/ui/display/code-viewer-css.d.ts.map +1 -0
  318. package/dist/ui/display/code-viewer-css.generated.d.ts +2 -0
  319. package/dist/ui/display/code-viewer-css.generated.d.ts.map +1 -0
  320. package/dist/ui/display/code-viewer-css.generated.js +4 -0
  321. package/dist/ui/display/code-viewer-css.generated.js.map +1 -0
  322. package/dist/ui/display/code-viewer-css.js +3 -0
  323. package/dist/ui/display/code-viewer-css.js.map +1 -0
  324. package/dist/ui/display/code-viewer-lang.d.ts +15 -0
  325. package/dist/ui/display/code-viewer-lang.d.ts.map +1 -0
  326. package/dist/ui/display/code-viewer-lang.js +190 -0
  327. package/dist/ui/display/code-viewer-lang.js.map +1 -0
  328. package/dist/ui/display/code-viewer-theme.d.ts +5 -0
  329. package/dist/ui/display/code-viewer-theme.d.ts.map +1 -0
  330. package/dist/ui/display/code-viewer-theme.js +138 -0
  331. package/dist/ui/display/code-viewer-theme.js.map +1 -0
  332. package/dist/ui/display/flip-css.d.ts +2 -0
  333. package/dist/ui/display/flip-css.d.ts.map +1 -0
  334. package/dist/ui/display/flip-css.generated.d.ts +2 -0
  335. package/dist/ui/display/flip-css.generated.d.ts.map +1 -0
  336. package/dist/ui/display/flip-css.generated.js +4 -0
  337. package/dist/ui/display/flip-css.generated.js.map +1 -0
  338. package/dist/ui/display/flip-css.js +4 -0
  339. package/dist/ui/display/flip-css.js.map +1 -0
  340. package/dist/ui/display/hint-css.generated.d.ts +2 -0
  341. package/dist/ui/display/hint-css.generated.d.ts.map +1 -0
  342. package/dist/ui/display/hint-css.generated.js +4 -0
  343. package/dist/ui/display/hint-css.generated.js.map +1 -0
  344. package/dist/ui/display/marquee-css.d.ts +2 -0
  345. package/dist/ui/display/marquee-css.d.ts.map +1 -0
  346. package/dist/ui/display/marquee-css.generated.d.ts +2 -0
  347. package/dist/ui/display/marquee-css.generated.d.ts.map +1 -0
  348. package/dist/ui/display/marquee-css.generated.js +4 -0
  349. package/dist/ui/display/marquee-css.generated.js.map +1 -0
  350. package/dist/ui/display/marquee-css.js +4 -0
  351. package/dist/ui/display/marquee-css.js.map +1 -0
  352. package/dist/ui/display/section-head-css.generated.d.ts +2 -0
  353. package/dist/ui/display/section-head-css.generated.d.ts.map +1 -0
  354. package/dist/ui/display/section-head-css.generated.js +4 -0
  355. package/dist/ui/display/section-head-css.generated.js.map +1 -0
  356. package/dist/ui/display/surface-css.d.ts +2 -0
  357. package/dist/ui/display/surface-css.d.ts.map +1 -0
  358. package/dist/ui/display/surface-css.generated.d.ts +2 -0
  359. package/dist/ui/display/surface-css.generated.d.ts.map +1 -0
  360. package/dist/ui/display/surface-css.generated.js +4 -0
  361. package/dist/ui/display/surface-css.generated.js.map +1 -0
  362. package/dist/ui/display/surface-css.js +7 -0
  363. package/dist/ui/display/surface-css.js.map +1 -0
  364. package/dist/ui/display/table-css.generated.d.ts +2 -0
  365. package/dist/ui/display/table-css.generated.d.ts.map +1 -0
  366. package/dist/ui/display/table-css.generated.js +4 -0
  367. package/dist/ui/display/table-css.generated.js.map +1 -0
  368. package/dist/ui/display/table-logic.d.ts +110 -0
  369. package/dist/ui/display/table-logic.d.ts.map +1 -0
  370. package/dist/ui/display/table-logic.js +81 -0
  371. package/dist/ui/display/table-logic.js.map +1 -0
  372. package/dist/ui/display/table-plain-css.generated.d.ts +2 -0
  373. package/dist/ui/display/table-plain-css.generated.d.ts.map +1 -0
  374. package/dist/ui/display/table-plain-css.generated.js +4 -0
  375. package/dist/ui/display/table-plain-css.generated.js.map +1 -0
  376. package/dist/ui/display/table-shared.d.ts +101 -0
  377. package/dist/ui/display/table-shared.d.ts.map +1 -0
  378. package/dist/ui/display/table-shared.js +229 -0
  379. package/dist/ui/display/table-shared.js.map +1 -0
  380. package/dist/ui/feedback/AlertModal.d.ts +41 -0
  381. package/dist/ui/feedback/AlertModal.d.ts.map +1 -0
  382. package/dist/ui/feedback/AlertModal.js +45 -0
  383. package/dist/ui/feedback/AlertModal.js.map +1 -0
  384. package/dist/ui/feedback/ConfirmModal.d.ts +50 -0
  385. package/dist/ui/feedback/ConfirmModal.d.ts.map +1 -0
  386. package/dist/ui/feedback/ConfirmModal.js +47 -0
  387. package/dist/ui/feedback/ConfirmModal.js.map +1 -0
  388. package/dist/ui/feedback/Loader.d.ts +49 -0
  389. package/dist/ui/feedback/Loader.d.ts.map +1 -0
  390. package/dist/ui/feedback/Loader.js +79 -0
  391. package/dist/ui/feedback/Loader.js.map +1 -0
  392. package/dist/ui/feedback/LoaderBar.d.ts +38 -0
  393. package/dist/ui/feedback/LoaderBar.d.ts.map +1 -0
  394. package/dist/ui/feedback/LoaderBar.js +79 -0
  395. package/dist/ui/feedback/LoaderBar.js.map +1 -0
  396. package/dist/ui/feedback/Loading.d.ts +69 -0
  397. package/dist/ui/feedback/Loading.d.ts.map +1 -0
  398. package/dist/ui/feedback/Loading.js +164 -0
  399. package/dist/ui/feedback/Loading.js.map +1 -0
  400. package/dist/ui/feedback/Modal.d.ts +73 -0
  401. package/dist/ui/feedback/Modal.d.ts.map +1 -0
  402. package/dist/ui/feedback/Modal.js +83 -0
  403. package/dist/ui/feedback/Modal.js.map +1 -0
  404. package/dist/ui/feedback/SideSheet.d.ts +70 -0
  405. package/dist/ui/feedback/SideSheet.d.ts.map +1 -0
  406. package/dist/ui/feedback/SideSheet.js +130 -0
  407. package/dist/ui/feedback/SideSheet.js.map +1 -0
  408. package/dist/ui/feedback/Toast.d.ts +45 -0
  409. package/dist/ui/feedback/Toast.d.ts.map +1 -0
  410. package/dist/ui/feedback/Toast.js +225 -0
  411. package/dist/ui/feedback/Toast.js.map +1 -0
  412. package/dist/ui/feedback/feedback-css.d.ts +2 -0
  413. package/dist/ui/feedback/feedback-css.d.ts.map +1 -0
  414. package/dist/ui/feedback/feedback-css.generated.d.ts +2 -0
  415. package/dist/ui/feedback/feedback-css.generated.d.ts.map +1 -0
  416. package/dist/ui/feedback/feedback-css.generated.js +4 -0
  417. package/dist/ui/feedback/feedback-css.generated.js.map +1 -0
  418. package/dist/ui/feedback/feedback-css.js +4 -0
  419. package/dist/ui/feedback/feedback-css.js.map +1 -0
  420. package/dist/ui/feedback/host-toast.d.ts +23 -0
  421. package/dist/ui/feedback/host-toast.d.ts.map +1 -0
  422. package/dist/ui/feedback/host-toast.js +34 -0
  423. package/dist/ui/feedback/host-toast.js.map +1 -0
  424. package/dist/ui/feedback/loader-bar-art.d.ts +6 -0
  425. package/dist/ui/feedback/loader-bar-art.d.ts.map +1 -0
  426. package/dist/ui/feedback/loader-bar-art.js +6 -0
  427. package/dist/ui/feedback/loader-bar-art.js.map +1 -0
  428. package/dist/ui/feedback/loader-bar-css.generated.d.ts +2 -0
  429. package/dist/ui/feedback/loader-bar-css.generated.d.ts.map +1 -0
  430. package/dist/ui/feedback/loader-bar-css.generated.js +4 -0
  431. package/dist/ui/feedback/loader-bar-css.generated.js.map +1 -0
  432. package/dist/ui/feedback/loader-css.generated.d.ts +2 -0
  433. package/dist/ui/feedback/loader-css.generated.d.ts.map +1 -0
  434. package/dist/ui/feedback/loader-css.generated.js +4 -0
  435. package/dist/ui/feedback/loader-css.generated.js.map +1 -0
  436. package/dist/ui/feedback/loading-css.generated.d.ts +2 -0
  437. package/dist/ui/feedback/loading-css.generated.d.ts.map +1 -0
  438. package/dist/ui/feedback/loading-css.generated.js +4 -0
  439. package/dist/ui/feedback/loading-css.generated.js.map +1 -0
  440. package/dist/ui/feedback/loading-host.d.ts +49 -0
  441. package/dist/ui/feedback/loading-host.d.ts.map +1 -0
  442. package/dist/ui/feedback/loading-host.js +57 -0
  443. package/dist/ui/feedback/loading-host.js.map +1 -0
  444. package/dist/ui/feedback/modal-host.d.ts +51 -0
  445. package/dist/ui/feedback/modal-host.d.ts.map +1 -0
  446. package/dist/ui/feedback/modal-host.js +170 -0
  447. package/dist/ui/feedback/modal-host.js.map +1 -0
  448. package/dist/ui/feedback/side-sheet-css.d.ts +2 -0
  449. package/dist/ui/feedback/side-sheet-css.d.ts.map +1 -0
  450. package/dist/ui/feedback/side-sheet-css.generated.d.ts +2 -0
  451. package/dist/ui/feedback/side-sheet-css.generated.d.ts.map +1 -0
  452. package/dist/ui/feedback/side-sheet-css.generated.js +4 -0
  453. package/dist/ui/feedback/side-sheet-css.generated.js.map +1 -0
  454. package/dist/ui/feedback/side-sheet-css.js +2 -0
  455. package/dist/ui/feedback/side-sheet-css.js.map +1 -0
  456. package/dist/ui/feedback/toast-host.d.ts +24 -0
  457. package/dist/ui/feedback/toast-host.d.ts.map +1 -0
  458. package/dist/ui/feedback/toast-host.js +20 -0
  459. package/dist/ui/feedback/toast-host.js.map +1 -0
  460. package/dist/ui/feedback-css.generated.d.ts +1 -1
  461. package/dist/ui/feedback-css.generated.d.ts.map +1 -1
  462. package/dist/ui/feedback-css.generated.js +1 -1
  463. package/dist/ui/feedback-css.generated.js.map +1 -1
  464. package/dist/ui/index.d.ts +44 -44
  465. package/dist/ui/index.d.ts.map +1 -1
  466. package/dist/ui/index.js +44 -44
  467. package/dist/ui/index.js.map +1 -1
  468. package/dist/ui/infra/chevron.d.ts +22 -0
  469. package/dist/ui/infra/chevron.d.ts.map +1 -0
  470. package/dist/ui/infra/chevron.js +33 -0
  471. package/dist/ui/infra/chevron.js.map +1 -0
  472. package/dist/ui/infra/controls-css.d.ts +16 -0
  473. package/dist/ui/infra/controls-css.d.ts.map +1 -0
  474. package/dist/ui/infra/controls-css.js +26 -0
  475. package/dist/ui/infra/controls-css.js.map +1 -0
  476. package/dist/ui/infra/css.d.ts +35 -0
  477. package/dist/ui/infra/css.d.ts.map +1 -0
  478. package/dist/ui/infra/css.js +52 -0
  479. package/dist/ui/infra/css.js.map +1 -0
  480. package/dist/ui/infra/host-data.d.ts +119 -0
  481. package/dist/ui/infra/host-data.d.ts.map +1 -0
  482. package/dist/ui/infra/host-data.js +122 -0
  483. package/dist/ui/infra/host-data.js.map +1 -0
  484. package/dist/ui/infra/locale.d.ts +4 -0
  485. package/dist/ui/infra/locale.d.ts.map +1 -0
  486. package/dist/ui/infra/locale.js +17 -0
  487. package/dist/ui/infra/locale.js.map +1 -0
  488. package/dist/ui/infra/overlay-css.d.ts +2 -0
  489. package/dist/ui/infra/overlay-css.d.ts.map +1 -0
  490. package/dist/ui/infra/overlay-css.generated.d.ts +2 -0
  491. package/dist/ui/infra/overlay-css.generated.d.ts.map +1 -0
  492. package/dist/ui/infra/overlay-css.generated.js +4 -0
  493. package/dist/ui/infra/overlay-css.generated.js.map +1 -0
  494. package/dist/ui/infra/overlay-css.js +2 -0
  495. package/dist/ui/infra/overlay-css.js.map +1 -0
  496. package/dist/ui/infra/overlay.d.ts +62 -0
  497. package/dist/ui/infra/overlay.d.ts.map +1 -0
  498. package/dist/ui/infra/overlay.js +94 -0
  499. package/dist/ui/infra/overlay.js.map +1 -0
  500. package/dist/ui/infra/panel-css.d.ts +2 -0
  501. package/dist/ui/infra/panel-css.d.ts.map +1 -0
  502. package/dist/ui/infra/panel-css.generated.d.ts +2 -0
  503. package/dist/ui/infra/panel-css.generated.d.ts.map +1 -0
  504. package/dist/ui/infra/panel-css.generated.js +4 -0
  505. package/dist/ui/infra/panel-css.generated.js.map +1 -0
  506. package/dist/ui/infra/panel-css.js +2 -0
  507. package/dist/ui/infra/panel-css.js.map +1 -0
  508. package/dist/ui/infra/panel.d.ts +41 -0
  509. package/dist/ui/infra/panel.d.ts.map +1 -0
  510. package/dist/ui/infra/panel.js +37 -0
  511. package/dist/ui/infra/panel.js.map +1 -0
  512. package/dist/ui/infra/side-panel-css.d.ts +2 -0
  513. package/dist/ui/infra/side-panel-css.d.ts.map +1 -0
  514. package/dist/ui/infra/side-panel-css.generated.d.ts +2 -0
  515. package/dist/ui/infra/side-panel-css.generated.d.ts.map +1 -0
  516. package/dist/ui/infra/side-panel-css.generated.js +4 -0
  517. package/dist/ui/infra/side-panel-css.generated.js.map +1 -0
  518. package/dist/ui/infra/side-panel-css.js +2 -0
  519. package/dist/ui/infra/side-panel-css.js.map +1 -0
  520. package/dist/ui/infra/thenable.d.ts +9 -0
  521. package/dist/ui/infra/thenable.d.ts.map +1 -0
  522. package/dist/ui/infra/thenable.js +15 -0
  523. package/dist/ui/infra/thenable.js.map +1 -0
  524. package/dist/ui/infra/ticker.d.ts +8 -0
  525. package/dist/ui/infra/ticker.d.ts.map +1 -0
  526. package/dist/ui/infra/ticker.js +49 -0
  527. package/dist/ui/infra/ticker.js.map +1 -0
  528. package/dist/ui/infra/tooltip.d.ts +29 -0
  529. package/dist/ui/infra/tooltip.d.ts.map +1 -0
  530. package/dist/ui/infra/tooltip.js +10 -0
  531. package/dist/ui/infra/tooltip.js.map +1 -0
  532. package/dist/ui/inputs/Checkbox.d.ts +24 -0
  533. package/dist/ui/inputs/Checkbox.d.ts.map +1 -0
  534. package/dist/ui/inputs/Checkbox.js +35 -0
  535. package/dist/ui/inputs/Checkbox.js.map +1 -0
  536. package/dist/ui/inputs/DateTimePicker.d.ts +45 -0
  537. package/dist/ui/inputs/DateTimePicker.d.ts.map +1 -0
  538. package/dist/ui/inputs/DateTimePicker.js +462 -0
  539. package/dist/ui/inputs/DateTimePicker.js.map +1 -0
  540. package/dist/ui/inputs/Field.d.ts +125 -0
  541. package/dist/ui/inputs/Field.d.ts.map +1 -0
  542. package/dist/ui/inputs/Field.js +175 -0
  543. package/dist/ui/inputs/Field.js.map +1 -0
  544. package/dist/ui/inputs/InputGroup.d.ts +91 -0
  545. package/dist/ui/inputs/InputGroup.d.ts.map +1 -0
  546. package/dist/ui/inputs/InputGroup.js +125 -0
  547. package/dist/ui/inputs/InputGroup.js.map +1 -0
  548. package/dist/ui/inputs/ModelPicker.d.ts +48 -0
  549. package/dist/ui/inputs/ModelPicker.d.ts.map +1 -0
  550. package/dist/ui/inputs/ModelPicker.js +101 -0
  551. package/dist/ui/inputs/ModelPicker.js.map +1 -0
  552. package/dist/ui/inputs/Picker.d.ts +56 -0
  553. package/dist/ui/inputs/Picker.d.ts.map +1 -0
  554. package/dist/ui/inputs/Picker.js +244 -0
  555. package/dist/ui/inputs/Picker.js.map +1 -0
  556. package/dist/ui/inputs/Segmented.d.ts +99 -0
  557. package/dist/ui/inputs/Segmented.d.ts.map +1 -0
  558. package/dist/ui/inputs/Segmented.js +135 -0
  559. package/dist/ui/inputs/Segmented.js.map +1 -0
  560. package/dist/ui/inputs/Textarea.d.ts +36 -0
  561. package/dist/ui/inputs/Textarea.d.ts.map +1 -0
  562. package/dist/ui/inputs/Textarea.js +35 -0
  563. package/dist/ui/inputs/Textarea.js.map +1 -0
  564. package/dist/ui/inputs/WorkspacePicker.d.ts +35 -0
  565. package/dist/ui/inputs/WorkspacePicker.d.ts.map +1 -0
  566. package/dist/ui/inputs/WorkspacePicker.js +39 -0
  567. package/dist/ui/inputs/WorkspacePicker.js.map +1 -0
  568. package/dist/ui/inputs/datetime-css.generated.d.ts +2 -0
  569. package/dist/ui/inputs/datetime-css.generated.d.ts.map +1 -0
  570. package/dist/ui/inputs/datetime-css.generated.js +4 -0
  571. package/dist/ui/inputs/datetime-css.generated.js.map +1 -0
  572. package/dist/ui/inputs/datetime-logic.d.ts +102 -0
  573. package/dist/ui/inputs/datetime-logic.d.ts.map +1 -0
  574. package/dist/ui/inputs/datetime-logic.js +200 -0
  575. package/dist/ui/inputs/datetime-logic.js.map +1 -0
  576. package/dist/ui/inputs/field-css.generated.d.ts +2 -0
  577. package/dist/ui/inputs/field-css.generated.d.ts.map +1 -0
  578. package/dist/ui/inputs/field-css.generated.js +4 -0
  579. package/dist/ui/inputs/field-css.generated.js.map +1 -0
  580. package/dist/ui/inputs/input-group-css.generated.d.ts +2 -0
  581. package/dist/ui/inputs/input-group-css.generated.d.ts.map +1 -0
  582. package/dist/ui/inputs/input-group-css.generated.js +4 -0
  583. package/dist/ui/inputs/input-group-css.generated.js.map +1 -0
  584. package/dist/ui/inputs/picker-css.d.ts +2 -0
  585. package/dist/ui/inputs/picker-css.d.ts.map +1 -0
  586. package/dist/ui/inputs/picker-css.generated.d.ts +2 -0
  587. package/dist/ui/inputs/picker-css.generated.d.ts.map +1 -0
  588. package/dist/ui/inputs/picker-css.generated.js +4 -0
  589. package/dist/ui/inputs/picker-css.generated.js.map +1 -0
  590. package/dist/ui/inputs/picker-css.js +4 -0
  591. package/dist/ui/inputs/picker-css.js.map +1 -0
  592. package/dist/ui/inputs/picker-icons.d.ts +12 -0
  593. package/dist/ui/inputs/picker-icons.d.ts.map +1 -0
  594. package/dist/ui/inputs/picker-icons.js +29 -0
  595. package/dist/ui/inputs/picker-icons.js.map +1 -0
  596. package/dist/ui/inputs/picker-logic.d.ts +33 -0
  597. package/dist/ui/inputs/picker-logic.d.ts.map +1 -0
  598. package/dist/ui/inputs/picker-logic.js +68 -0
  599. package/dist/ui/inputs/picker-logic.js.map +1 -0
  600. package/dist/ui/inputs/segmented-css.generated.d.ts +2 -0
  601. package/dist/ui/inputs/segmented-css.generated.d.ts.map +1 -0
  602. package/dist/ui/inputs/segmented-css.generated.js +4 -0
  603. package/dist/ui/inputs/segmented-css.generated.js.map +1 -0
  604. package/dist/ui/layout/PanelDock.d.ts +132 -0
  605. package/dist/ui/layout/PanelDock.d.ts.map +1 -0
  606. package/dist/ui/layout/PanelDock.js +390 -0
  607. package/dist/ui/layout/PanelDock.js.map +1 -0
  608. package/dist/ui/layout/QuickToolbar.d.ts +54 -0
  609. package/dist/ui/layout/QuickToolbar.d.ts.map +1 -0
  610. package/dist/ui/layout/QuickToolbar.js +254 -0
  611. package/dist/ui/layout/QuickToolbar.js.map +1 -0
  612. package/dist/ui/layout/SplitGroup.d.ts +37 -0
  613. package/dist/ui/layout/SplitGroup.d.ts.map +1 -0
  614. package/dist/ui/layout/SplitGroup.js +36 -0
  615. package/dist/ui/layout/SplitGroup.js.map +1 -0
  616. package/dist/ui/layout/panel-dock-css.d.ts +2 -0
  617. package/dist/ui/layout/panel-dock-css.d.ts.map +1 -0
  618. package/dist/ui/layout/panel-dock-css.generated.d.ts +2 -0
  619. package/dist/ui/layout/panel-dock-css.generated.d.ts.map +1 -0
  620. package/dist/ui/layout/panel-dock-css.generated.js +4 -0
  621. package/dist/ui/layout/panel-dock-css.generated.js.map +1 -0
  622. package/dist/ui/layout/panel-dock-css.js +4 -0
  623. package/dist/ui/layout/panel-dock-css.js.map +1 -0
  624. package/dist/ui/layout/panel-dock-logic.d.ts +67 -0
  625. package/dist/ui/layout/panel-dock-logic.d.ts.map +1 -0
  626. package/dist/ui/layout/panel-dock-logic.js +110 -0
  627. package/dist/ui/layout/panel-dock-logic.js.map +1 -0
  628. package/dist/ui/layout/quick-toolbar-css.generated.d.ts +2 -0
  629. package/dist/ui/layout/quick-toolbar-css.generated.d.ts.map +1 -0
  630. package/dist/ui/layout/quick-toolbar-css.generated.js +4 -0
  631. package/dist/ui/layout/quick-toolbar-css.generated.js.map +1 -0
  632. package/dist/ui/layout/quick-toolbar-logic.d.ts +76 -0
  633. package/dist/ui/layout/quick-toolbar-logic.d.ts.map +1 -0
  634. package/dist/ui/layout/quick-toolbar-logic.js +40 -0
  635. package/dist/ui/layout/quick-toolbar-logic.js.map +1 -0
  636. package/dist/ui/layout/resizer.d.ts +29 -0
  637. package/dist/ui/layout/resizer.d.ts.map +1 -0
  638. package/dist/ui/layout/resizer.js +42 -0
  639. package/dist/ui/layout/resizer.js.map +1 -0
  640. package/dist/ui/layout/split-group-css.generated.d.ts +2 -0
  641. package/dist/ui/layout/split-group-css.generated.d.ts.map +1 -0
  642. package/dist/ui/layout/split-group-css.generated.js +4 -0
  643. package/dist/ui/layout/split-group-css.generated.js.map +1 -0
  644. package/dist/ui/navigation/Pagination.d.ts +59 -0
  645. package/dist/ui/navigation/Pagination.d.ts.map +1 -0
  646. package/dist/ui/navigation/Pagination.js +112 -0
  647. package/dist/ui/navigation/Pagination.js.map +1 -0
  648. package/dist/ui/navigation/pagination-css.generated.d.ts +2 -0
  649. package/dist/ui/navigation/pagination-css.generated.d.ts.map +1 -0
  650. package/dist/ui/navigation/pagination-css.generated.js +4 -0
  651. package/dist/ui/navigation/pagination-css.generated.js.map +1 -0
  652. package/dist/ui/navigation/pagination-logic.d.ts +36 -0
  653. package/dist/ui/navigation/pagination-logic.d.ts.map +1 -0
  654. package/dist/ui/navigation/pagination-logic.js +73 -0
  655. package/dist/ui/navigation/pagination-logic.js.map +1 -0
  656. package/dist/ui/official.js +2 -2
  657. package/dist/ui/official.js.map +1 -1
  658. package/dist/ui/overlay-css.generated.d.ts +1 -1
  659. package/dist/ui/overlay-css.generated.d.ts.map +1 -1
  660. package/dist/ui/overlay-css.generated.js +1 -1
  661. package/dist/ui/overlay-css.generated.js.map +1 -1
  662. package/dist/ui/overlay.d.ts +13 -0
  663. package/dist/ui/overlay.d.ts.map +1 -1
  664. package/dist/ui/overlay.js +33 -0
  665. package/dist/ui/overlay.js.map +1 -1
  666. package/dist/ui/side-sheet-css.generated.d.ts +1 -1
  667. package/dist/ui/side-sheet-css.generated.d.ts.map +1 -1
  668. package/dist/ui/side-sheet-css.generated.js +1 -1
  669. package/dist/ui/side-sheet-css.generated.js.map +1 -1
  670. package/dist/utils/i18n.d.ts +2 -2
  671. package/dist/utils/i18n.d.ts.map +1 -1
  672. package/dist/utils/i18n.js +1 -1
  673. package/dist/utils/i18n.js.map +1 -1
  674. package/docs/README.md +1 -1
  675. package/docs/design/architecture.md +9 -8
  676. package/docs/design/copywriting.md +23 -0
  677. package/docs/design/external/dsh-host.md +5 -5
  678. package/docs/design/structure.md +132 -128
  679. package/docs/design/style.md +5 -5
  680. package/docs/help/ui.doc.ts +4 -4
  681. package/docs/help/ui.md +4 -4
  682. package/docs/help/utils.doc.ts +3 -3
  683. package/docs/help/utils.md +3 -3
  684. package/docs/requirements.md +30 -276
  685. package/package.json +1 -1
@@ -0,0 +1,111 @@
1
+ // 官方对照:ui-chat@0.2.1-rc.5 lib/client.js:6107-6260(reasoningText / latestCompletedParagraphFirstLine /
2
+ // ReasoningRow)+ ReasoningContent(lib/client.js:6568-6576)。
3
+ // root[data-variant=think][data-state=running|ok][data-expanded][data-preview]
4
+ // > [running] visuallyHidden「正在思考」
5
+ // > DisclosureRow(icon=IconThinkOutlineRegular 14px,title=t("message.think")=「思考」,running ⇒ 整行 shimmer)
6
+ // collapsedContent = separator(data-shimmer-decoration, 2×2px) + summary[data-streaming]
7
+ // > summaryText > TextShimmer(summary)
8
+ // content = thinkBody > MarkdownText(compact, streaming=running)
9
+ // 折叠态 root 固定一行高(contain:size layout + height 24px+delta);[data-preview] 缺失 ⇒ separator/summary 隐藏。
10
+ import { Fragment, createElement as h, useMemo, useState } from 'react';
11
+ import { DisclosureRow, IconThinkOutlineRegular, MarkdownText, TextShimmer } from '../../../ui/official.js';
12
+ import { officialClass } from '../official-classes.js';
13
+ import { markdownLabels } from '../../explorer/preview/md-labels.js';
14
+ /** 官方 firstLine(lib/client.js:6140 区):首行。 */
15
+ function firstLine(text) {
16
+ const newline = text.indexOf('\n');
17
+ return newline === -1 ? text : text.slice(0, newline);
18
+ }
19
+ /** 官方 reasoningText:剥掉模型签名包裹(`<signature>…</signature>`),无可见内容返回空串。 */
20
+ function reasoningText(text) {
21
+ if (text[0] !== '<')
22
+ return text;
23
+ const opening = '<signature>';
24
+ if (opening.startsWith(text))
25
+ return '';
26
+ if (!text.startsWith(opening))
27
+ return text;
28
+ const end = text.indexOf('</signature>', 11);
29
+ if (end === -1)
30
+ return '';
31
+ let start = end + 12;
32
+ while (start < text.length) {
33
+ if (text[start] === '\n')
34
+ start += 1;
35
+ else if (text[start] === '\r' && text[start + 1] === '\n')
36
+ start += 2;
37
+ else
38
+ break;
39
+ }
40
+ return text.slice(start);
41
+ }
42
+ /** 官方 latestCompletedParagraphFirstLine:最后一段已结束段落的首行(流式预览用)。 */
43
+ function latestCompletedParagraphFirstLine(text) {
44
+ let summary = '';
45
+ let paragraphStart = 0;
46
+ const separator = /\r?\n(?:[\t ]*\r?\n)+/g;
47
+ for (;;) {
48
+ const nextParagraph = separator.exec(text);
49
+ const paragraphEnd = nextParagraph === null ? text.length : nextParagraph.index + nextParagraph[0].indexOf('\n');
50
+ const newline = text.indexOf('\n', paragraphStart);
51
+ if (newline !== -1 && newline <= paragraphEnd) {
52
+ const candidate = text.slice(paragraphStart, newline).trim();
53
+ if (candidate !== '')
54
+ summary = candidate;
55
+ }
56
+ if (nextParagraph === null)
57
+ return summary;
58
+ paragraphStart = nextParagraph.index + nextParagraph[0].length;
59
+ }
60
+ }
61
+ /** 思考行:折叠 = 「思考 · 首行预览 ⌄」;展开 = thinkBody 全文(MarkdownText compact)。 */
62
+ export function ReasoningRowMirror(props) {
63
+ const { text: rawText, running = false, preview: settledPreview = true, t } = props;
64
+ const [open, setOpen] = useState(false);
65
+ const text = useMemo(() => reasoningText(rawText), [rawText]);
66
+ if (text !== rawText && text.trim() === '')
67
+ return null;
68
+ const summaryText = running ? latestCompletedParagraphFirstLine(text) : firstLine(text);
69
+ // lib 目标是 ES2020(无 String.replaceAll)⇒ split/join 等价去 `**`。
70
+ const summary = summaryText.split('**').join('');
71
+ const preview = !open && summary !== '' && (running || settledPreview);
72
+ return h('div', {
73
+ className: officialClass('ReasoningRow', 'root') ?? '',
74
+ 'data-variant': 'think',
75
+ 'data-state': running ? 'running' : 'ok',
76
+ 'data-expanded': open || undefined,
77
+ 'data-preview': preview || undefined,
78
+ }, running
79
+ ? h('span', { className: officialClass('accessibility', 'visuallyHidden') ?? '' }, t('reasoningRunning'))
80
+ : null, h(DisclosureRow, {
81
+ icon: h(IconThinkOutlineRegular, { size: 14 }),
82
+ title: t('thinkLabel'),
83
+ running,
84
+ open,
85
+ expandable: true,
86
+ expandOnRowClick: true,
87
+ onToggle: () => { setOpen(value => !value); },
88
+ rowClassName: officialClass('ReasoningRow', 'row') ?? '',
89
+ leadingClassName: officialClass('ReasoningRow', 'leading') ?? '',
90
+ titleClassName: officialClass('ReasoningRow', 'title') ?? '',
91
+ collapsedContent: h(Fragment, null, h('span', {
92
+ className: officialClass('ReasoningRow', 'separator') ?? '',
93
+ 'data-shimmer-decoration': true,
94
+ 'aria-hidden': true,
95
+ }),
96
+ // 官方是 summary > summaryText 两层:外层 nowrap 截断、内层 text-overflow:ellipsis(省略号)。
97
+ h('span', {
98
+ className: officialClass('ReasoningRow', 'summary') ?? '',
99
+ 'data-streaming': running || undefined,
100
+ }, h('span', { className: officialClass('ReasoningRow', 'summaryText') ?? '' }, h(TextShimmer, null, summary)))),
101
+ children: open
102
+ ? h('div', { className: officialClass('ReasoningRow', 'thinkBody') ?? '' }, h(MarkdownText, {
103
+ text,
104
+ streaming: running,
105
+ labels: markdownLabels(),
106
+ variant: 'compact',
107
+ }))
108
+ : undefined,
109
+ }));
110
+ }
111
+ //# sourceMappingURL=ReasoningRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReasoningRow.js","sourceRoot":"","sources":["../../../../src/adv/session/mirror/ReasoningRow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { createElement as h } from 'react';
2
+ import type { Translate } from '../../../utils/i18n.js';
3
+ /**
4
+ * 运行中状态行:会话流末尾一行「深度求索中,用时 N 秒 ···」(蓝色 shimmer)。
5
+ * @param startTime - 当前 turn 开始时间;undefined = 尚未起轮(只显示「深度求索中」)。
6
+ * @param t - 翻译席位。
7
+ */
8
+ export declare function RunningStatusMirror(props: {
9
+ startTime: number | undefined;
10
+ t: Translate;
11
+ }): ReturnType<typeof h>;
12
+ //# sourceMappingURL=RunningStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunningStatus.d.ts","sourceRoot":"","sources":["../../../../src/adv/session/mirror/RunningStatus.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAuB,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAuBvD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,CAAC,EAAE,SAAS,CAAA;CACb,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CA+BvB"}
@@ -0,0 +1,57 @@
1
+ // 官方对照:ui-chat@0.2.1-rc.5 lib/client.js:5580-5638(RunningWhaleTail + RunningStatus;
2
+ // 0.2.2-alpha.3 仅多 paused/holding 两个占位参数,默认渲染同构)
3
+ // root div.running[data-chat-running]
4
+ // > visuallyHidden(role=status) > runningDivider(.5px 顶部横线,官方 CSS 按「前一项是否 tail」显隐)
5
+ // > runningContent > runningIcon(鲸尾:animated APNG mask + still SVG 兜底)+ TextShimmer(label)
6
+ // label:startTime 缺失 =「深度求索中」;否则「深度求索中,用时 {duration} ···」(duration = formatRunDuration)。
7
+ // ⚠ 0.2.x 起运行态只由这一行代表:turn 未关闭时官方 TurnProcessNodeView 整块不渲染(见 TurnProcessNodeView.ts)。
8
+ import { createElement as h, useEffect, useState } from 'react';
9
+ import { TextShimmer } from '../../../ui/official.js';
10
+ import { officialClass } from '../official-classes.js';
11
+ import { durationText, formatRunDuration } from './message-chrome.js';
12
+ /** 官方 LIVE_RUN_CLOCK_INTERVAL_MS(lib/client.js:979)。 */
13
+ const LIVE_RUN_CLOCK_INTERVAL_MS = 1000;
14
+ /** 官方静态兜底 SVG 的鲸尾路径(lib/client.js:6340 REST_PATH,16×16)。 */
15
+ const REST_PATH = 'M8.844 13.742C8.967 12.328 8.45 10.4 8.45 9.65C8.45 8.94 8.88 8.43 9.6 8.43C11.285 8.43 12.106 8.281 12.685 8.104C13.71 7.791 14.585 6.768 15.055 5.945C15.137 5.803 14.99 5.641 14.829 5.671C13.829 5.86 12.828 5.376 11.827 4.978C10.659 4.514 9.491 4.707 8.935 4.876C8.805 4.915 8.658 4.819 8.636 4.686C8.468 3.643 7.405 2.615 5.498 2.238C4.54 2.048 3.748 1.574 3.347 1.202C3.252 1.113 3.088 1.125 3.03 1.242C2.628 2.059 2.168 3.82 5.248 6.115C5.82 6.494 6.31 6.785 6.574 7.637C6.72 8.104 6.157 9.168 6.061 9.368C5.157 11.27 5.089 12.19 4.926 13.742';
16
+ /** 官方 RunningWhaleTail:APNG mask 动画(官方 CSS 提供资源)+ 静态 SVG 兜底。 */
17
+ function RunningWhaleTail() {
18
+ return h('span', { className: officialClass('ChatView', 'runningIcon') ?? '', 'aria-hidden': 'true' }, h('span', { className: officialClass('ChatView', 'runningWhaleAnimated') ?? '' }), h('svg', {
19
+ className: officialClass('ChatView', 'runningWhaleStill') ?? '',
20
+ width: '100%',
21
+ height: '100%',
22
+ viewBox: '0 0 16 16',
23
+ fill: 'none',
24
+ }, h('path', { d: REST_PATH, stroke: 'currentColor', strokeWidth: 1 })));
25
+ }
26
+ /**
27
+ * 运行中状态行:会话流末尾一行「深度求索中,用时 N 秒 ···」(蓝色 shimmer)。
28
+ * @param startTime - 当前 turn 开始时间;undefined = 尚未起轮(只显示「深度求索中」)。
29
+ * @param t - 翻译席位。
30
+ */
31
+ export function RunningStatusMirror(props) {
32
+ const { startTime, t } = props;
33
+ const [now, setNow] = useState(() => Date.now());
34
+ useEffect(() => {
35
+ if (startTime === undefined)
36
+ return;
37
+ setNow(Date.now());
38
+ const timer = setInterval(() => { setNow(Date.now()); }, LIVE_RUN_CLOCK_INTERVAL_MS);
39
+ return () => { clearInterval(timer); };
40
+ }, [startTime]);
41
+ const label = startTime === undefined
42
+ ? t('chatDeepDiving')
43
+ : t('chatDeepDivingFor', { duration: durationText(formatRunDuration(Math.max(1000, now - startTime), t)) });
44
+ return h('div', {
45
+ className: officialClass('ChatView', 'running') ?? '',
46
+ 'data-chat-running': true,
47
+ }, h('span', {
48
+ className: officialClass('accessibility', 'visuallyHidden') ?? '',
49
+ role: 'status',
50
+ 'aria-live': 'polite',
51
+ 'aria-atomic': 'true',
52
+ }, t('chatDeepDiving')), h('span', { className: officialClass('ChatView', 'runningDivider') ?? '', 'aria-hidden': 'true' }), h('span', { className: officialClass('ChatView', 'runningContent') ?? '' }, h(RunningWhaleTail, null), h(TextShimmer, {
53
+ active: true,
54
+ className: officialClass('ChatView', 'runningText') ?? '',
55
+ }, label)));
56
+ }
57
+ //# sourceMappingURL=RunningStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunningStatus.js","sourceRoot":"","sources":["../../../../src/adv/session/mirror/RunningStatus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { CSSProperties, RefObject } from 'react';
2
+ /**
3
+ * 官方 stat-dialog.ts 的 MEASURE_STYLE:首趟(pos 未定)时面板「隐藏但仍布局」,
4
+ * 好让 useAnchoredPosition 量到真实尺寸。官方要求面板铺 `pos ?? MEASURE_STYLE`;
5
+ * 漏了它 ⇒ 首趟完全无定位、面板落进文档流撑长页面(真机 2026-10-23:点用量无反应 + 滚动条变长)。
6
+ */
7
+ export declare const STAT_MEASURE_STYLE: CSSProperties;
8
+ export interface StatDialogSeat {
9
+ open: boolean;
10
+ setOpen(open: boolean): void;
11
+ rootRef: RefObject<HTMLSpanElement | null>;
12
+ panelRef: RefObject<HTMLDivElement | null>;
13
+ pos: CSSProperties | undefined;
14
+ }
15
+ /** 官方 useStatDialog:把弹层挂在触发器上方(side: 'top'),点外 / Esc 关闭。 */
16
+ export declare function useStatDialog(controlled?: {
17
+ open?: boolean;
18
+ setOpen?(open: boolean): void;
19
+ }): StatDialogSeat;
20
+ //# sourceMappingURL=StatDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatDialog.d.ts","sourceRoot":"","sources":["../../../../src/adv/session/mirror/StatDialog.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMrD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAyD,CAAA;AAE1F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IAC1C,QAAQ,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC1C,GAAG,EAAE,aAAa,GAAG,SAAS,CAAA;CAC/B;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,GAAG,cAAc,CA4B5G"}
@@ -0,0 +1,49 @@
1
+ // 官方对照:packages/client/ui-chat/src/client/chat/stat-dialog.js(0.1.7-rc.2 lib/client.js:6278-6350)
2
+ // PANEL_MARGIN = 12 / PANEL_GAP = 8(lib/client.js:6281-6283)
3
+ // useStatDialog = 受控开关 + useAnchoredPosition(side:'top') + useDismissOnOutsidePointer + Escape 关闭。
4
+ // 官方用的是 primitives 的同名 hook,这里直接复用同一份实现(不是自绘定位)。
5
+ import { useEffect, useRef, useState } from 'react';
6
+ import { useAnchoredPosition, useDismissOnOutsidePointer } from '../../../ui/official.js';
7
+ const PANEL_MARGIN = 12;
8
+ const PANEL_GAP = 8;
9
+ /**
10
+ * 官方 stat-dialog.ts 的 MEASURE_STYLE:首趟(pos 未定)时面板「隐藏但仍布局」,
11
+ * 好让 useAnchoredPosition 量到真实尺寸。官方要求面板铺 `pos ?? MEASURE_STYLE`;
12
+ * 漏了它 ⇒ 首趟完全无定位、面板落进文档流撑长页面(真机 2026-10-23:点用量无反应 + 滚动条变长)。
13
+ */
14
+ export const STAT_MEASURE_STYLE = { visibility: 'hidden', left: 0, top: 0 };
15
+ /** 官方 useStatDialog:把弹层挂在触发器上方(side: 'top'),点外 / Esc 关闭。 */
16
+ export function useStatDialog(controlled) {
17
+ const [ownOpen, setOwnOpen] = useState(false);
18
+ const open = controlled?.open ?? ownOpen;
19
+ const setOpen = controlled?.setOpen ?? setOwnOpen;
20
+ const rootRef = useRef(null);
21
+ const panelRef = useRef(null);
22
+ const pos = useAnchoredPosition({ open, anchorRef: rootRef, panelRef, side: 'top', gap: PANEL_GAP, margin: PANEL_MARGIN });
23
+ useDismissOnOutsidePointer(rootRef, open, setOpen, panelRef);
24
+ useEffect(() => {
25
+ if (!open)
26
+ return;
27
+ const onKeyDown = (event) => {
28
+ if (event.key === 'Escape')
29
+ setOpen(false);
30
+ };
31
+ // 官方 chat:6806-6820:pointerdown 之外还要捕获阶段 click(只发 click 的交互也得关)。
32
+ const onClick = (event) => {
33
+ const target = event.target;
34
+ if (!(target instanceof Node))
35
+ return;
36
+ if (rootRef.current?.contains(target) === true || panelRef.current?.contains(target) === true)
37
+ return;
38
+ setOpen(false);
39
+ };
40
+ document.addEventListener('keydown', onKeyDown);
41
+ document.addEventListener('click', onClick, true);
42
+ return () => {
43
+ document.removeEventListener('keydown', onKeyDown);
44
+ document.removeEventListener('click', onClick, true);
45
+ };
46
+ }, [open, setOpen]);
47
+ return { open, setOpen, rootRef, panelRef, pos };
48
+ }
49
+ //# sourceMappingURL=StatDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatDialog.js","sourceRoot":"","sources":["../../../../src/adv/session/mirror/StatDialog.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,+DAA+D;AAC/D,qGAAqG;AACrG,iDAAiD;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AAEzF,MAAM,YAAY,GAAG,EAAE,CAAA;AACvB,MAAM,SAAS,GAAG,CAAC,CAAA;AAEnB;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkB,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAA;AAU1F,4DAA4D;AAC5D,MAAM,UAAU,aAAa,CAAC,UAA8D;IAC1F,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI,IAAI,OAAO,CAAA;IACxC,MAAM,OAAO,GAAG,UAAU,EAAE,OAAO,IAAI,UAAU,CAAA;IACjD,MAAM,OAAO,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAA;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACpD,MAAM,GAAG,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;IAC1H,0BAA0B,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC5D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAC/C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC,CAAA;QACD,iEAAiE;QACjE,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAQ,EAAE;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YAC3B,IAAI,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC;gBAAE,OAAM;YACrC,IAAI,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI;gBAAE,OAAM;YACrG,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC,CAAA;QACD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAC/C,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QACjD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAClD,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QACtD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IACnB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;AAClD,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { type ReactElement } from 'react';
2
+ import { type Translate } from '../../../utils/i18n.js';
3
+ export interface DetailField {
4
+ label: string;
5
+ value: string;
6
+ }
7
+ export interface DetailItemModel {
8
+ title?: string;
9
+ subtitle?: string;
10
+ description?: string;
11
+ fields: DetailField[];
12
+ lines?: readonly string[];
13
+ status?: {
14
+ value: 'completed' | 'in_progress' | 'pending';
15
+ label: string;
16
+ };
17
+ badge?: {
18
+ tone?: string;
19
+ label: string;
20
+ };
21
+ location?: {
22
+ path: string;
23
+ line?: number;
24
+ };
25
+ change?: {
26
+ value?: 'added' | 'removed' | 'updated';
27
+ label: string;
28
+ };
29
+ previousStatus?: string;
30
+ markdown?: string;
31
+ code?: {
32
+ text: string;
33
+ language?: string;
34
+ };
35
+ groups?: {
36
+ label: string;
37
+ items: DetailItemModel[];
38
+ }[];
39
+ }
40
+ export interface ToolDetailsModel {
41
+ items: DetailItemModel[];
42
+ summary?: string;
43
+ empty?: string;
44
+ caption?: string;
45
+ unchanged?: {
46
+ label: string;
47
+ items: DetailItemModel[];
48
+ };
49
+ }
50
+ /**
51
+ * 官方 detailsCardModel(3985-4029)的「目标 / 定时任务」子集。
52
+ * 结算成功且结果为合法 JSON 才出详情卡;其余一律 null ⇒ 调用方走 ioCard 兜底。
53
+ */
54
+ export declare function detailsCardModel(name: string, argsRaw: string, output: string, settled: boolean, isError: boolean, t: Translate): ToolDetailsModel | null;
55
+ /** 官方 DetailsRow 的摘要优先级(4080):summary → 第一项 title → empty → 原摘要。 */
56
+ export declare function detailsSummary(model: ToolDetailsModel): string | undefined;
57
+ /** 官方 ToolDetails(1458-1492):caption + 空态 / 列表 + 可折叠的「未变更」组。 */
58
+ export declare function ToolDetailsView({ model, t, onOpenFile }: {
59
+ model: ToolDetailsModel;
60
+ t: Translate;
61
+ onOpenFile?: (path: string, options?: {
62
+ line?: number;
63
+ }) => void;
64
+ }): ReactElement;
65
+ //# sourceMappingURL=ToolDetails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolDetails.d.ts","sourceRoot":"","sources":["../../../../src/adv/session/mirror/ToolDetails.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAU7D,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAGlE,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAC7D,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1E,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,EAAE,CAAA;KAAE,EAAE,CAAA;CACvD;AACD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,EAAE,CAAA;KAAE,CAAA;CACxD;AAqID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAmCzJ;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAE1E;AA4ED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE;IACxD,KAAK,EAAE,gBAAgB,CAAA;IACvB,CAAC,EAAE,SAAS,CAAA;IACZ,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACjE,GAAG,YAAY,CAcf"}
@@ -0,0 +1,268 @@
1
+ // 官方对照:ui-tool `components/ToolDetails`(lib/client.js:1357-1492)
2
+ // + `models/details-card-model`(:2988-3010、:3805-3821、:3854-3977、:3985-4029)。
3
+ //
4
+ // 本轮只移植「目标 / 定时任务」两族的模型(官方 `controlDetails` / `inspectionDetails`
5
+ // 那 400+ 行仍落回 ioCard);视图保留这两族真正会用到的字段。
6
+ // shortcut: control/inspection 系工具无专属详情,等宿主真机有样本再按同一模型接口补。
7
+ import { createElement as h } from 'react';
8
+ import { CodeBlock, IconCheckOutlineRegular, IconChevronRightOutlineRegular, IconPlayOutlineRegular, MarkdownText, } from '../../../ui/official.js';
9
+ import { officialClass } from '../official-classes.js';
10
+ import { markdownLabels } from '../../explorer/preview/md-labels.js';
11
+ import { getLocale } from '../../../utils/i18n.js';
12
+ import { controlDetails, inspectionDetails } from './control-details.js';
13
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
14
+ const nonempty = (value) => typeof value === 'string' && value.trim() !== '';
15
+ const count = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;
16
+ function detailJson(text) {
17
+ try {
18
+ return JSON.parse(text);
19
+ }
20
+ catch {
21
+ return undefined;
22
+ }
23
+ }
24
+ /** 官方 formatDate(3808-3821):本地化绝对时间,格式化失败退回原始 ISO 串。 */
25
+ function formatDate(date, fallback) {
26
+ try {
27
+ return new Intl.DateTimeFormat(getLocale(), {
28
+ year: 'numeric', month: 'short', day: 'numeric',
29
+ hour: '2-digit', minute: '2-digit', second: '2-digit', timeZoneName: 'short',
30
+ }).format(date);
31
+ }
32
+ catch {
33
+ return fallback;
34
+ }
35
+ }
36
+ /** 官方 goalDetail(3854-3883):形状不全一律返回 null ⇒ 落回 ioCard,不半渲染。 */
37
+ function goalDetail(value, t) {
38
+ if (!isRecord(value))
39
+ return null;
40
+ if (value.goal === null)
41
+ return { items: [], empty: t('detailGoalEmpty') };
42
+ const goal = value.goal;
43
+ if (!isRecord(goal) || !nonempty(goal.id) || !nonempty(goal.objective))
44
+ return null;
45
+ if (!count(goal.revision) || !count(goal.roundsStarted) || !count(goal.maxGoalRounds))
46
+ return null;
47
+ const phase = goal.phase;
48
+ if (phase !== 'active' && phase !== 'paused' && phase !== 'blocked' && phase !== 'complete')
49
+ return null;
50
+ if (value.activation !== 'armed' && value.activation !== 'disarmed')
51
+ return null;
52
+ const phases = {
53
+ active: () => t('detailGoalActive'),
54
+ paused: () => t('detailGoalPaused'),
55
+ blocked: () => t('detailGoalBlocked'),
56
+ complete: () => t('detailGoalComplete'),
57
+ };
58
+ const fields = [
59
+ {
60
+ label: t('detailState'),
61
+ value: phase === 'active' && value.activation === 'disarmed' ? t('detailGoalDisarmed') : phases[phase](),
62
+ },
63
+ { label: t('detailGoalRounds'), value: `${goal.roundsStarted} / ${goal.maxGoalRounds}` },
64
+ ];
65
+ if (goal.blockedReason !== undefined) {
66
+ const reason = goal.blockedReason;
67
+ if (!isRecord(reason) || !nonempty(reason.code) || !nonempty(reason.message))
68
+ return null;
69
+ fields.push({ label: t('detailGoalReason'), value: reason.message });
70
+ }
71
+ return { items: [{ title: goal.objective, fields }] };
72
+ }
73
+ const WEEKDAY_KEYS = [
74
+ 'detailWeekday1', 'detailWeekday2', 'detailWeekday3', 'detailWeekday4',
75
+ 'detailWeekday5', 'detailWeekday6', 'detailWeekday7',
76
+ ];
77
+ /** 官方 interval(3894-3899)。 */
78
+ function interval(seconds, t) {
79
+ if (seconds % 86400 === 0)
80
+ return t('detailDays', { count: seconds / 86400 });
81
+ if (seconds % 3600 === 0)
82
+ return t('detailHours', { count: seconds / 3600 });
83
+ if (seconds % 60 === 0)
84
+ return t('detailMinutes', { count: seconds / 60 });
85
+ return t('detailSeconds', { count: seconds });
86
+ }
87
+ const shortTime = (time) => time.replace(/:00\.000$/, '').replace(/\.000$/, '');
88
+ function weekdayText(days, t) {
89
+ if (!Array.isArray(days) || days.length === 0)
90
+ return undefined;
91
+ const labels = [];
92
+ for (const day of days) {
93
+ if (typeof day !== 'number' || !Number.isInteger(day))
94
+ return undefined;
95
+ const key = WEEKDAY_KEYS[day - 1];
96
+ if (key === undefined)
97
+ return undefined;
98
+ labels.push(t(key));
99
+ }
100
+ return labels.join(t('detailWeekdayJoin'));
101
+ }
102
+ /** 官方 scheduleItem(3916-3977):只认形状齐全、时间可解析的记录。 */
103
+ function scheduleItem(value, t) {
104
+ if (!isRecord(value) || !nonempty(value.id) || !nonempty(value.prompt))
105
+ return null;
106
+ if (typeof value.scheduledAt !== 'string')
107
+ return null;
108
+ if (value.deliveryMode !== 'host' && value.deliveryMode !== 'session-local')
109
+ return null;
110
+ if (value.state !== 'scheduled' && value.state !== 'overdue')
111
+ return null;
112
+ const date = new Date(value.scheduledAt);
113
+ if (!Number.isFinite(date.getTime()) || date.toISOString() !== value.scheduledAt)
114
+ return null;
115
+ let frequency;
116
+ switch (value.kind) {
117
+ case 'at':
118
+ frequency = t('detailScheduleOnce');
119
+ break;
120
+ case 'after':
121
+ if (!count(value.afterSeconds) || value.afterSeconds === 0)
122
+ return null;
123
+ frequency = t('detailScheduleOnce');
124
+ break;
125
+ case 'every':
126
+ if (!count(value.everySeconds) || value.everySeconds === 0)
127
+ return null;
128
+ frequency = t('detailScheduleEvery', { interval: interval(value.everySeconds, t) });
129
+ break;
130
+ case 'daily':
131
+ if (!nonempty(value.time) || !nonempty(value.timeZone))
132
+ return null;
133
+ frequency = t('detailScheduleDaily', { time: shortTime(value.time), zone: value.timeZone });
134
+ break;
135
+ case 'weekly': {
136
+ const days = weekdayText(value.weekdays, t);
137
+ if (!nonempty(value.time) || !nonempty(value.timeZone) || days === undefined)
138
+ return null;
139
+ frequency = t('detailScheduleWeekly', { days, time: shortTime(value.time), zone: value.timeZone });
140
+ break;
141
+ }
142
+ case 'cron':
143
+ if (!nonempty(value.expression) || !nonempty(value.timeZone))
144
+ return null;
145
+ frequency = t('detailScheduleCron', { expression: value.expression, zone: value.timeZone });
146
+ break;
147
+ default:
148
+ return null;
149
+ }
150
+ return {
151
+ title: nonempty(value.title) ? value.title : value.prompt,
152
+ fields: [
153
+ { label: t('detailScheduleWhen'), value: formatDate(date, value.scheduledAt) },
154
+ { label: t('detailScheduleFrequency'), value: frequency },
155
+ { label: t('detailState'), value: value.state === 'scheduled' ? t('detailScheduleScheduled') : t('detailScheduleOverdue') },
156
+ ],
157
+ };
158
+ }
159
+ /**
160
+ * 官方 detailsCardModel(3985-4029)的「目标 / 定时任务」子集。
161
+ * 结算成功且结果为合法 JSON 才出详情卡;其余一律 null ⇒ 调用方走 ioCard 兜底。
162
+ */
163
+ export function detailsCardModel(name, argsRaw, output, settled, isError, t) {
164
+ if (!settled || isError || output === '')
165
+ return null;
166
+ const args = detailJson(argsRaw);
167
+ if (!isRecord(args))
168
+ return null;
169
+ const value = detailJson(output);
170
+ // 官方顺序(3992):control → inspection → goal/schedule;前两者吃文本格式,JSON 解析失败也可能出卡。
171
+ const recorded = controlDetails(name, args, output, value, t) ?? inspectionDetails(name, args, output, value, t);
172
+ if (recorded !== null)
173
+ return recorded;
174
+ if (value === undefined)
175
+ return null;
176
+ switch (name) {
177
+ case 'create_goal':
178
+ case 'get_goal':
179
+ case 'update_goal':
180
+ return goalDetail(value, t);
181
+ case 'schedule_create':
182
+ case 'schedule_update': {
183
+ const item = scheduleItem(value, t);
184
+ return item === null ? null : { items: [item] };
185
+ }
186
+ case 'schedule_list': {
187
+ if (!Array.isArray(value))
188
+ return null;
189
+ const items = [];
190
+ for (const entry of value) {
191
+ const item = scheduleItem(entry, t);
192
+ if (item === null)
193
+ return null;
194
+ items.push(item);
195
+ }
196
+ return { items, summary: t('detailScheduleCount', { count: items.length }), empty: t('detailScheduleEmpty') };
197
+ }
198
+ case 'schedule_delete':
199
+ if (!isRecord(value) || !nonempty(value.id) || value.deleted !== true)
200
+ return null;
201
+ return { items: [{ title: value.id, fields: [{ label: t('detailState'), value: t('detailScheduleDeleted') }] }] };
202
+ default:
203
+ return null;
204
+ }
205
+ }
206
+ /** 官方 DetailsRow 的摘要优先级(4080):summary → 第一项 title → empty → 原摘要。 */
207
+ export function detailsSummary(model) {
208
+ return model.summary ?? model.items[0]?.title ?? model.empty;
209
+ }
210
+ /** 官方 DetailItem(1357-1449)本轮用到的字段;markdown/code/groups 由后续模型补齐。 */
211
+ function DetailItem({ item, t, onOpenFile }) {
212
+ const cls = (semantic) => officialClass('ToolDetails', semantic) ?? '';
213
+ const status = item.status;
214
+ return h('li', { className: cls('item'), 'data-change': item.change?.value }, item.title !== undefined
215
+ ? h('div', { className: cls('heading') }, status !== undefined
216
+ ? h('span', { className: cls('status'), role: 'img', 'aria-label': item.change?.label ?? status.label }, item.change?.value === 'added' ? '+' : item.change?.value === 'removed' ? '−'
217
+ : status.value === 'completed' ? h(IconCheckOutlineRegular, { size: 14 })
218
+ : status.value === 'in_progress' ? h(IconPlayOutlineRegular, { size: 14 })
219
+ : h('span', { className: cls('pending') }))
220
+ : null, item.location !== undefined && onOpenFile !== undefined
221
+ ? h('button', {
222
+ className: cls('path'), type: 'button',
223
+ onClick: () => {
224
+ const location = item.location;
225
+ if (location !== undefined) {
226
+ if (location.line === undefined)
227
+ onOpenFile(location.path);
228
+ else
229
+ onOpenFile(location.path, { line: location.line });
230
+ }
231
+ },
232
+ }, item.title)
233
+ : h('span', { className: cls('text') }, item.title), item.badge !== undefined
234
+ ? h('span', { className: cls('badge'), 'data-tone': item.badge.tone }, item.badge.label)
235
+ : null, status !== undefined
236
+ ? h('span', { className: cls('statusText') }, item.previousStatus !== undefined
237
+ ? h('span', null, h('span', { className: cls('previous') }, item.previousStatus), h('span', null, ' → '))
238
+ : null, h('span', null, status.label), item.change?.value === 'updated' && item.previousStatus === undefined
239
+ ? h('span', null, ' · ', item.change.label)
240
+ : null)
241
+ : null)
242
+ : null, item.subtitle !== undefined ? h('div', { className: cls('subtitle') }, item.subtitle) : null, item.description !== undefined ? h('p', { className: cls('description') }, item.description) : null, item.fields.length > 0
243
+ ? h('dl', { className: cls('fields') }, item.fields.map(field => h('div', { key: field.label, className: cls('field') }, h('dt', null, field.label), h('dd', null, field.value))))
244
+ : null, item.lines !== undefined
245
+ ? h('ul', { className: cls('lines') }, item.lines.map((line, index) => h('li', { key: index }, line)))
246
+ : null, item.markdown !== undefined
247
+ ? h('div', { className: cls('prose') }, h(MarkdownText, { text: item.markdown, labels: markdownLabels() }))
248
+ : null, item.code !== undefined
249
+ ? h(CodeBlock, {
250
+ code: item.code.text,
251
+ lang: item.code.language,
252
+ toolbarLabels: { codeLabel: t('codeBlockLabel'), wrapLabel: t('diffWrapLabel'), unwrapLabel: t('diffUnwrapLabel') },
253
+ copyLabel: t('copyLabel'),
254
+ copiedLabel: t('copiedLabel'),
255
+ className: cls('code'),
256
+ })
257
+ : null, ...(item.groups ?? []).map((group, index) => h('details', { key: index, className: cls('group') }, h('summary', null, h(IconChevronRightOutlineRegular), h('span', null, group.label)), h('ul', { className: cls('list') }, group.items.map((child, childIndex) => h(DetailItem, { key: childIndex, item: child, t, onOpenFile }))))));
258
+ }
259
+ /** 官方 ToolDetails(1458-1492):caption + 空态 / 列表 + 可折叠的「未变更」组。 */
260
+ export function ToolDetailsView({ model, t, onOpenFile }) {
261
+ const cls = (semantic) => officialClass('ToolDetails', semantic) ?? '';
262
+ return h('div', { className: cls('root'), 'data-caption': model.caption !== undefined || undefined }, model.caption !== undefined ? h('div', { className: cls('caption') }, model.caption) : null, model.items.length === 0
263
+ ? h('p', { className: cls('empty') }, model.empty)
264
+ : h('ul', { className: cls('list') }, model.items.map((item, index) => h(DetailItem, { key: index, item, t, onOpenFile }))), model.unchanged !== undefined
265
+ ? h('details', { className: cls('unchanged') }, h('summary', null, h(IconChevronRightOutlineRegular), model.unchanged.label), h('ul', { className: cls('list') }, model.unchanged.items.map((item, index) => h(DetailItem, { key: index, item, t, onOpenFile }))))
266
+ : null);
267
+ }
268
+ //# sourceMappingURL=ToolDetails.js.map