dsh-plugin-core 0.2.14 → 0.4.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 (432) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +52 -83
  3. package/dist/design/tokens-css.d.ts +1 -1
  4. package/dist/design/tokens-css.d.ts.map +1 -1
  5. package/dist/design/tokens-css.generated.d.ts +2 -0
  6. package/dist/design/tokens-css.generated.d.ts.map +1 -0
  7. package/dist/design/tokens-css.generated.js +4 -0
  8. package/dist/design/tokens-css.generated.js.map +1 -0
  9. package/dist/design/tokens-css.js +1 -252
  10. package/dist/design/tokens-css.js.map +1 -1
  11. package/dist/explorer/FileBrowser.d.ts +41 -0
  12. package/dist/explorer/FileBrowser.d.ts.map +1 -0
  13. package/dist/explorer/FileBrowser.js +659 -0
  14. package/dist/explorer/FileBrowser.js.map +1 -0
  15. package/dist/explorer/explorer-css.d.ts +1 -1
  16. package/dist/explorer/explorer-css.d.ts.map +1 -1
  17. package/dist/explorer/explorer-css.generated.d.ts +2 -0
  18. package/dist/explorer/explorer-css.generated.d.ts.map +1 -0
  19. package/dist/explorer/explorer-css.generated.js +4 -0
  20. package/dist/explorer/explorer-css.generated.js.map +1 -0
  21. package/dist/explorer/explorer-css.js +1 -31
  22. package/dist/explorer/explorer-css.js.map +1 -1
  23. package/dist/explorer/index.d.ts +4 -2
  24. package/dist/explorer/index.d.ts.map +1 -1
  25. package/dist/explorer/index.js +4 -2
  26. package/dist/explorer/index.js.map +1 -1
  27. package/dist/explorer/open.d.ts +103 -0
  28. package/dist/explorer/open.d.ts.map +1 -0
  29. package/dist/explorer/open.js +282 -0
  30. package/dist/explorer/open.js.map +1 -0
  31. package/dist/explorer/preview/BytesPreview.d.ts +13 -0
  32. package/dist/explorer/preview/BytesPreview.d.ts.map +1 -0
  33. package/dist/explorer/preview/BytesPreview.js +56 -0
  34. package/dist/explorer/preview/BytesPreview.js.map +1 -0
  35. package/dist/explorer/preview/HtmlPreview.d.ts +18 -0
  36. package/dist/explorer/preview/HtmlPreview.d.ts.map +1 -0
  37. package/dist/explorer/preview/HtmlPreview.js +112 -0
  38. package/dist/explorer/preview/HtmlPreview.js.map +1 -0
  39. package/dist/explorer/preview/OfficePreview.d.ts +11 -0
  40. package/dist/explorer/preview/OfficePreview.d.ts.map +1 -0
  41. package/dist/explorer/preview/OfficePreview.js +53 -0
  42. package/dist/explorer/preview/OfficePreview.js.map +1 -0
  43. package/dist/explorer/preview/TextPreview.d.ts +17 -0
  44. package/dist/explorer/preview/TextPreview.d.ts.map +1 -0
  45. package/dist/explorer/preview/TextPreview.js +95 -0
  46. package/dist/explorer/preview/TextPreview.js.map +1 -0
  47. package/dist/explorer/preview/index.d.ts +10 -3
  48. package/dist/explorer/preview/index.d.ts.map +1 -1
  49. package/dist/explorer/preview/index.js +52 -55
  50. package/dist/explorer/preview/index.js.map +1 -1
  51. package/dist/explorer/preview/md-labels.d.ts +3 -0
  52. package/dist/explorer/preview/md-labels.d.ts.map +1 -0
  53. package/dist/explorer/preview/md-labels.js +12 -0
  54. package/dist/explorer/preview/md-labels.js.map +1 -0
  55. package/dist/explorer/types.d.ts +186 -4
  56. package/dist/explorer/types.d.ts.map +1 -1
  57. package/dist/explorer/types.js +401 -14
  58. package/dist/explorer/types.js.map +1 -1
  59. package/dist/host/index.d.ts +66 -0
  60. package/dist/host/index.d.ts.map +1 -0
  61. package/dist/host/index.js +60 -0
  62. package/dist/host/index.js.map +1 -0
  63. package/dist/session/SessionViewModal.d.ts +42 -0
  64. package/dist/session/SessionViewModal.d.ts.map +1 -0
  65. package/dist/session/SessionViewModal.js +997 -0
  66. package/dist/session/SessionViewModal.js.map +1 -0
  67. package/dist/session/changes.d.ts +73 -0
  68. package/dist/session/changes.d.ts.map +1 -0
  69. package/dist/session/changes.js +134 -0
  70. package/dist/session/changes.js.map +1 -0
  71. package/dist/session/faces.d.ts +198 -0
  72. package/dist/session/faces.d.ts.map +1 -0
  73. package/dist/session/faces.js +17 -0
  74. package/dist/session/faces.js.map +1 -0
  75. package/dist/session/index.d.ts +5 -23
  76. package/dist/session/index.d.ts.map +1 -1
  77. package/dist/session/index.js +25 -70
  78. package/dist/session/index.js.map +1 -1
  79. package/dist/session/mirror/ChangedFileDiff.d.ts +22 -0
  80. package/dist/session/mirror/ChangedFileDiff.d.ts.map +1 -0
  81. package/dist/session/mirror/ChangedFileDiff.js +157 -0
  82. package/dist/session/mirror/ChangedFileDiff.js.map +1 -0
  83. package/dist/session/mirror/ChangedFilesCard.d.ts +18 -0
  84. package/dist/session/mirror/ChangedFilesCard.d.ts.map +1 -0
  85. package/dist/session/mirror/ChangedFilesCard.js +158 -0
  86. package/dist/session/mirror/ChangedFilesCard.js.map +1 -0
  87. package/dist/session/mirror/ChatGroupSeat.d.ts +24 -0
  88. package/dist/session/mirror/ChatGroupSeat.d.ts.map +1 -0
  89. package/dist/session/mirror/ChatGroupSeat.js +134 -0
  90. package/dist/session/mirror/ChatGroupSeat.js.map +1 -0
  91. package/dist/session/mirror/ChatNodeSeat.d.ts +43 -0
  92. package/dist/session/mirror/ChatNodeSeat.d.ts.map +1 -0
  93. package/dist/session/mirror/ChatNodeSeat.js +133 -0
  94. package/dist/session/mirror/ChatNodeSeat.js.map +1 -0
  95. package/dist/session/mirror/ChatView.d.ts +47 -0
  96. package/dist/session/mirror/ChatView.d.ts.map +1 -0
  97. package/dist/session/mirror/ChatView.js +127 -0
  98. package/dist/session/mirror/ChatView.js.map +1 -0
  99. package/dist/session/mirror/CommandCard.d.ts +20 -0
  100. package/dist/session/mirror/CommandCard.d.ts.map +1 -0
  101. package/dist/session/mirror/CommandCard.js +69 -0
  102. package/dist/session/mirror/CommandCard.js.map +1 -0
  103. package/dist/session/mirror/Deliverables.d.ts +24 -0
  104. package/dist/session/mirror/Deliverables.d.ts.map +1 -0
  105. package/dist/session/mirror/Deliverables.js +134 -0
  106. package/dist/session/mirror/Deliverables.js.map +1 -0
  107. package/dist/session/mirror/GenericCommandCard.d.ts +25 -0
  108. package/dist/session/mirror/GenericCommandCard.d.ts.map +1 -0
  109. package/dist/session/mirror/GenericCommandCard.js +567 -0
  110. package/dist/session/mirror/GenericCommandCard.js.map +1 -0
  111. package/dist/session/mirror/MessageIconActions.d.ts +16 -0
  112. package/dist/session/mirror/MessageIconActions.d.ts.map +1 -0
  113. package/dist/session/mirror/MessageIconActions.js +71 -0
  114. package/dist/session/mirror/MessageIconActions.js.map +1 -0
  115. package/dist/session/mirror/MessageItem.d.ts +66 -0
  116. package/dist/session/mirror/MessageItem.d.ts.map +1 -0
  117. package/dist/session/mirror/MessageItem.js +135 -0
  118. package/dist/session/mirror/MessageItem.js.map +1 -0
  119. package/dist/session/mirror/ReasoningRow.d.ts +11 -0
  120. package/dist/session/mirror/ReasoningRow.d.ts.map +1 -0
  121. package/dist/session/mirror/ReasoningRow.js +49 -0
  122. package/dist/session/mirror/ReasoningRow.js.map +1 -0
  123. package/dist/session/mirror/StatDialog.d.ts +20 -0
  124. package/dist/session/mirror/StatDialog.d.ts.map +1 -0
  125. package/dist/session/mirror/StatDialog.js +36 -0
  126. package/dist/session/mirror/StatDialog.js.map +1 -0
  127. package/dist/session/mirror/TurnProcessNodeView.d.ts +10 -0
  128. package/dist/session/mirror/TurnProcessNodeView.d.ts.map +1 -0
  129. package/dist/session/mirror/TurnProcessNodeView.js +68 -0
  130. package/dist/session/mirror/TurnProcessNodeView.js.map +1 -0
  131. package/dist/session/mirror/TurnTailNodeView.d.ts +32 -0
  132. package/dist/session/mirror/TurnTailNodeView.d.ts.map +1 -0
  133. package/dist/session/mirror/TurnTailNodeView.js +48 -0
  134. package/dist/session/mirror/TurnTailNodeView.js.map +1 -0
  135. package/dist/session/mirror/TurnTriggerNodeView.d.ts +14 -0
  136. package/dist/session/mirror/TurnTriggerNodeView.d.ts.map +1 -0
  137. package/dist/session/mirror/TurnTriggerNodeView.js +87 -0
  138. package/dist/session/mirror/TurnTriggerNodeView.js.map +1 -0
  139. package/dist/session/mirror/TurnUsagePanel.d.ts +21 -0
  140. package/dist/session/mirror/TurnUsagePanel.d.ts.map +1 -0
  141. package/dist/session/mirror/TurnUsagePanel.js +41 -0
  142. package/dist/session/mirror/TurnUsagePanel.js.map +1 -0
  143. package/dist/session/mirror/message-chrome.d.ts +33 -0
  144. package/dist/session/mirror/message-chrome.d.ts.map +1 -0
  145. package/dist/session/mirror/message-chrome.js +158 -0
  146. package/dist/session/mirror/message-chrome.js.map +1 -0
  147. package/dist/session/mirror/process-groups.d.ts +56 -0
  148. package/dist/session/mirror/process-groups.d.ts.map +1 -0
  149. package/dist/session/mirror/process-groups.js +202 -0
  150. package/dist/session/mirror/process-groups.js.map +1 -0
  151. package/dist/session/official-classes.d.ts +28 -0
  152. package/dist/session/official-classes.d.ts.map +1 -0
  153. package/dist/session/official-classes.js +146 -0
  154. package/dist/session/official-classes.js.map +1 -0
  155. package/dist/session/open-session-view.d.ts +17 -0
  156. package/dist/session/open-session-view.d.ts.map +1 -0
  157. package/dist/session/open-session-view.js +136 -0
  158. package/dist/session/open-session-view.js.map +1 -0
  159. package/dist/session/session-css.d.ts +1 -1
  160. package/dist/session/session-css.d.ts.map +1 -1
  161. package/dist/session/session-css.generated.d.ts +2 -0
  162. package/dist/session/session-css.generated.d.ts.map +1 -0
  163. package/dist/session/session-css.generated.js +4 -0
  164. package/dist/session/session-css.generated.js.map +1 -0
  165. package/dist/session/session-css.js +1 -17
  166. package/dist/session/session-css.js.map +1 -1
  167. package/dist/ui/AlertModal.d.ts +28 -0
  168. package/dist/ui/AlertModal.d.ts.map +1 -0
  169. package/dist/ui/AlertModal.js +29 -0
  170. package/dist/ui/AlertModal.js.map +1 -0
  171. package/dist/ui/Button.d.ts.map +1 -1
  172. package/dist/ui/Button.js +14 -1
  173. package/dist/ui/Button.js.map +1 -1
  174. package/dist/ui/Card.d.ts +4 -2
  175. package/dist/ui/Card.d.ts.map +1 -1
  176. package/dist/ui/Card.js +12 -6
  177. package/dist/ui/Card.js.map +1 -1
  178. package/dist/ui/Chip.d.ts +9 -1
  179. package/dist/ui/Chip.d.ts.map +1 -1
  180. package/dist/ui/Chip.js +8 -2
  181. package/dist/ui/Chip.js.map +1 -1
  182. package/dist/ui/CodeViewer.d.ts +36 -0
  183. package/dist/ui/CodeViewer.d.ts.map +1 -0
  184. package/dist/ui/CodeViewer.js +90 -0
  185. package/dist/ui/CodeViewer.js.map +1 -0
  186. package/dist/ui/ConfirmModal.d.ts +30 -0
  187. package/dist/ui/ConfirmModal.d.ts.map +1 -0
  188. package/dist/ui/ConfirmModal.js +23 -0
  189. package/dist/ui/ConfirmModal.js.map +1 -0
  190. package/dist/ui/DateTimePicker.d.ts +45 -0
  191. package/dist/ui/DateTimePicker.d.ts.map +1 -0
  192. package/dist/ui/DateTimePicker.js +447 -0
  193. package/dist/ui/DateTimePicker.js.map +1 -0
  194. package/dist/ui/Field.d.ts +11 -2
  195. package/dist/ui/Field.d.ts.map +1 -1
  196. package/dist/ui/Field.js +15 -5
  197. package/dist/ui/Field.js.map +1 -1
  198. package/dist/ui/MarqueeText.d.ts.map +1 -1
  199. package/dist/ui/MarqueeText.js +3 -1
  200. package/dist/ui/MarqueeText.js.map +1 -1
  201. package/dist/ui/Modal.d.ts +25 -3
  202. package/dist/ui/Modal.d.ts.map +1 -1
  203. package/dist/ui/Modal.js +41 -7
  204. package/dist/ui/Modal.js.map +1 -1
  205. package/dist/ui/ModelPicker.d.ts +25 -12
  206. package/dist/ui/ModelPicker.d.ts.map +1 -1
  207. package/dist/ui/ModelPicker.js +67 -19
  208. package/dist/ui/ModelPicker.js.map +1 -1
  209. package/dist/ui/PanelDock.d.ts +127 -0
  210. package/dist/ui/PanelDock.d.ts.map +1 -0
  211. package/dist/ui/PanelDock.js +297 -0
  212. package/dist/ui/PanelDock.js.map +1 -0
  213. package/dist/ui/Picker.d.ts +8 -2
  214. package/dist/ui/Picker.d.ts.map +1 -1
  215. package/dist/ui/Picker.js +86 -18
  216. package/dist/ui/Picker.js.map +1 -1
  217. package/dist/ui/SectionHead.d.ts +3 -3
  218. package/dist/ui/SectionHead.d.ts.map +1 -1
  219. package/dist/ui/SectionHead.js +4 -4
  220. package/dist/ui/SectionHead.js.map +1 -1
  221. package/dist/ui/Segmented.d.ts +4 -0
  222. package/dist/ui/Segmented.d.ts.map +1 -1
  223. package/dist/ui/Segmented.js +88 -31
  224. package/dist/ui/Segmented.js.map +1 -1
  225. package/dist/ui/Textarea.d.ts +2 -0
  226. package/dist/ui/Textarea.d.ts.map +1 -1
  227. package/dist/ui/Textarea.js +6 -1
  228. package/dist/ui/Textarea.js.map +1 -1
  229. package/dist/ui/Toast.d.ts +41 -8
  230. package/dist/ui/Toast.d.ts.map +1 -1
  231. package/dist/ui/Toast.js +216 -28
  232. package/dist/ui/Toast.js.map +1 -1
  233. package/dist/ui/WorkspacePicker.d.ts +15 -28
  234. package/dist/ui/WorkspacePicker.d.ts.map +1 -1
  235. package/dist/ui/WorkspacePicker.js +18 -27
  236. package/dist/ui/WorkspacePicker.js.map +1 -1
  237. package/dist/ui/card-css.d.ts +1 -1
  238. package/dist/ui/card-css.d.ts.map +1 -1
  239. package/dist/ui/card-css.generated.d.ts +2 -0
  240. package/dist/ui/card-css.generated.d.ts.map +1 -0
  241. package/dist/ui/card-css.generated.js +4 -0
  242. package/dist/ui/card-css.generated.js.map +1 -0
  243. package/dist/ui/card-css.js +1 -35
  244. package/dist/ui/card-css.js.map +1 -1
  245. package/dist/ui/chip-css.d.ts +1 -1
  246. package/dist/ui/chip-css.d.ts.map +1 -1
  247. package/dist/ui/chip-css.generated.d.ts +2 -0
  248. package/dist/ui/chip-css.generated.d.ts.map +1 -0
  249. package/dist/ui/chip-css.generated.js +4 -0
  250. package/dist/ui/chip-css.generated.js.map +1 -0
  251. package/dist/ui/chip-css.js +1 -17
  252. package/dist/ui/chip-css.js.map +1 -1
  253. package/dist/ui/code-viewer-css.d.ts +2 -0
  254. package/dist/ui/code-viewer-css.d.ts.map +1 -0
  255. package/dist/ui/code-viewer-css.generated.d.ts +2 -0
  256. package/dist/ui/code-viewer-css.generated.d.ts.map +1 -0
  257. package/dist/ui/code-viewer-css.generated.js +4 -0
  258. package/dist/ui/code-viewer-css.generated.js.map +1 -0
  259. package/dist/ui/code-viewer-css.js +3 -0
  260. package/dist/ui/code-viewer-css.js.map +1 -0
  261. package/dist/ui/code-viewer-lang.d.ts +15 -0
  262. package/dist/ui/code-viewer-lang.d.ts.map +1 -0
  263. package/dist/ui/code-viewer-lang.js +190 -0
  264. package/dist/ui/code-viewer-lang.js.map +1 -0
  265. package/dist/ui/code-viewer-theme.d.ts +5 -0
  266. package/dist/ui/code-viewer-theme.d.ts.map +1 -0
  267. package/dist/ui/code-viewer-theme.js +138 -0
  268. package/dist/ui/code-viewer-theme.js.map +1 -0
  269. package/dist/ui/controls/back-to-top-css.generated.d.ts +2 -0
  270. package/dist/ui/controls/back-to-top-css.generated.d.ts.map +1 -0
  271. package/dist/ui/controls/back-to-top-css.generated.js +4 -0
  272. package/dist/ui/controls/back-to-top-css.generated.js.map +1 -0
  273. package/dist/ui/controls/button-css.generated.d.ts +2 -0
  274. package/dist/ui/controls/button-css.generated.d.ts.map +1 -0
  275. package/dist/ui/controls/button-css.generated.js +4 -0
  276. package/dist/ui/controls/button-css.generated.js.map +1 -0
  277. package/dist/ui/controls/datetime-css.generated.d.ts +2 -0
  278. package/dist/ui/controls/datetime-css.generated.d.ts.map +1 -0
  279. package/dist/ui/controls/datetime-css.generated.js +4 -0
  280. package/dist/ui/controls/datetime-css.generated.js.map +1 -0
  281. package/dist/ui/controls/field-css.generated.d.ts +2 -0
  282. package/dist/ui/controls/field-css.generated.d.ts.map +1 -0
  283. package/dist/ui/controls/field-css.generated.js +4 -0
  284. package/dist/ui/controls/field-css.generated.js.map +1 -0
  285. package/dist/ui/controls/hint-css.generated.d.ts +2 -0
  286. package/dist/ui/controls/hint-css.generated.d.ts.map +1 -0
  287. package/dist/ui/controls/hint-css.generated.js +4 -0
  288. package/dist/ui/controls/hint-css.generated.js.map +1 -0
  289. package/dist/ui/controls/loading-css.generated.d.ts +2 -0
  290. package/dist/ui/controls/loading-css.generated.d.ts.map +1 -0
  291. package/dist/ui/controls/loading-css.generated.js +4 -0
  292. package/dist/ui/controls/loading-css.generated.js.map +1 -0
  293. package/dist/ui/controls/segmented-css.generated.d.ts +2 -0
  294. package/dist/ui/controls/segmented-css.generated.d.ts.map +1 -0
  295. package/dist/ui/controls/segmented-css.generated.js +4 -0
  296. package/dist/ui/controls/segmented-css.generated.js.map +1 -0
  297. package/dist/ui/controls-css.d.ts +7 -8
  298. package/dist/ui/controls-css.d.ts.map +1 -1
  299. package/dist/ui/controls-css.js +13 -11
  300. package/dist/ui/controls-css.js.map +1 -1
  301. package/dist/ui/css.d.ts +5 -0
  302. package/dist/ui/css.d.ts.map +1 -1
  303. package/dist/ui/css.js +13 -4
  304. package/dist/ui/css.js.map +1 -1
  305. package/dist/ui/datetime-logic.d.ts +100 -0
  306. package/dist/ui/datetime-logic.d.ts.map +1 -0
  307. package/dist/ui/datetime-logic.js +193 -0
  308. package/dist/ui/datetime-logic.js.map +1 -0
  309. package/dist/ui/feedback-css.d.ts +1 -1
  310. package/dist/ui/feedback-css.d.ts.map +1 -1
  311. package/dist/ui/feedback-css.generated.d.ts +2 -0
  312. package/dist/ui/feedback-css.generated.d.ts.map +1 -0
  313. package/dist/ui/feedback-css.generated.js +4 -0
  314. package/dist/ui/feedback-css.generated.js.map +1 -0
  315. package/dist/ui/feedback-css.js +1 -53
  316. package/dist/ui/feedback-css.js.map +1 -1
  317. package/dist/ui/host-data.d.ts +103 -0
  318. package/dist/ui/host-data.d.ts.map +1 -0
  319. package/dist/ui/host-data.js +106 -0
  320. package/dist/ui/host-data.js.map +1 -0
  321. package/dist/ui/host-toast.d.ts +23 -0
  322. package/dist/ui/host-toast.d.ts.map +1 -0
  323. package/dist/ui/host-toast.js +34 -0
  324. package/dist/ui/host-toast.js.map +1 -0
  325. package/dist/ui/index.d.ts +12 -6
  326. package/dist/ui/index.d.ts.map +1 -1
  327. package/dist/ui/index.js +10 -4
  328. package/dist/ui/index.js.map +1 -1
  329. package/dist/ui/marquee-css.d.ts +2 -0
  330. package/dist/ui/marquee-css.d.ts.map +1 -0
  331. package/dist/ui/marquee-css.generated.d.ts +2 -0
  332. package/dist/ui/marquee-css.generated.d.ts.map +1 -0
  333. package/dist/ui/marquee-css.generated.js +4 -0
  334. package/dist/ui/marquee-css.generated.js.map +1 -0
  335. package/dist/ui/marquee-css.js +4 -0
  336. package/dist/ui/marquee-css.js.map +1 -0
  337. package/dist/ui/modal-host.d.ts +30 -0
  338. package/dist/ui/modal-host.d.ts.map +1 -0
  339. package/dist/ui/modal-host.js +101 -0
  340. package/dist/ui/modal-host.js.map +1 -0
  341. package/dist/ui/official.d.ts.map +1 -1
  342. package/dist/ui/official.js +45 -1
  343. package/dist/ui/official.js.map +1 -1
  344. package/dist/ui/panel-dock-css.d.ts +2 -0
  345. package/dist/ui/panel-dock-css.d.ts.map +1 -0
  346. package/dist/ui/panel-dock-css.generated.d.ts +2 -0
  347. package/dist/ui/panel-dock-css.generated.d.ts.map +1 -0
  348. package/dist/ui/panel-dock-css.generated.js +4 -0
  349. package/dist/ui/panel-dock-css.generated.js.map +1 -0
  350. package/dist/ui/panel-dock-css.js +4 -0
  351. package/dist/ui/panel-dock-css.js.map +1 -0
  352. package/dist/ui/panel-dock-logic.d.ts +50 -0
  353. package/dist/ui/panel-dock-logic.d.ts.map +1 -0
  354. package/dist/ui/panel-dock-logic.js +64 -0
  355. package/dist/ui/panel-dock-logic.js.map +1 -0
  356. package/dist/ui/picker-css.d.ts +1 -1
  357. package/dist/ui/picker-css.d.ts.map +1 -1
  358. package/dist/ui/picker-css.generated.d.ts +2 -0
  359. package/dist/ui/picker-css.generated.d.ts.map +1 -0
  360. package/dist/ui/picker-css.generated.js +4 -0
  361. package/dist/ui/picker-css.generated.js.map +1 -0
  362. package/dist/ui/picker-css.js +1 -48
  363. package/dist/ui/picker-css.js.map +1 -1
  364. package/dist/ui/picker-icons.d.ts +12 -0
  365. package/dist/ui/picker-icons.d.ts.map +1 -0
  366. package/dist/ui/picker-icons.js +29 -0
  367. package/dist/ui/picker-icons.js.map +1 -0
  368. package/dist/ui/picker-logic.d.ts +4 -1
  369. package/dist/ui/picker-logic.d.ts.map +1 -1
  370. package/dist/ui/picker-logic.js +1 -2
  371. package/dist/ui/picker-logic.js.map +1 -1
  372. package/dist/ui/resizer.d.ts +3 -1
  373. package/dist/ui/resizer.d.ts.map +1 -1
  374. package/dist/ui/resizer.js +1 -1
  375. package/dist/ui/resizer.js.map +1 -1
  376. package/dist/ui/toast-host.d.ts +24 -0
  377. package/dist/ui/toast-host.d.ts.map +1 -0
  378. package/dist/ui/toast-host.js +20 -0
  379. package/dist/ui/toast-host.js.map +1 -0
  380. package/dist/utils/date.d.ts +8 -0
  381. package/dist/utils/date.d.ts.map +1 -1
  382. package/dist/utils/date.js +16 -0
  383. package/dist/utils/date.js.map +1 -1
  384. package/dist/utils/i18n.d.ts +1 -1
  385. package/dist/utils/i18n.d.ts.map +1 -1
  386. package/dist/utils/i18n.js +437 -18
  387. package/dist/utils/i18n.js.map +1 -1
  388. package/dist/utils/index.d.ts +1 -1
  389. package/dist/utils/index.d.ts.map +1 -1
  390. package/dist/utils/index.js +1 -1
  391. package/dist/utils/index.js.map +1 -1
  392. package/dist/utils/path.d.ts.map +1 -1
  393. package/dist/utils/path.js +1 -0
  394. package/dist/utils/path.js.map +1 -1
  395. package/docs/README.md +12 -5
  396. package/docs/design/architecture.md +38 -8
  397. package/docs/design/copywriting.md +95 -0
  398. package/docs/design/doc-format.md +80 -0
  399. package/docs/design/doc-format.ts +39 -0
  400. package/docs/design/external/dsh-host.md +150 -1
  401. package/docs/design/features.md +4 -17
  402. package/docs/design/methods.md +13 -34
  403. package/docs/design/structure.md +25 -22
  404. package/docs/design/style.md +24 -50
  405. package/docs/help/design.doc.ts +112 -0
  406. package/docs/help/design.md +88 -0
  407. package/docs/help/explorer.doc.ts +136 -0
  408. package/docs/help/explorer.md +68 -0
  409. package/docs/help/index.doc.ts +79 -0
  410. package/docs/help/index.md +28 -0
  411. package/docs/help/integration.doc.ts +114 -0
  412. package/docs/help/integration.md +127 -0
  413. package/docs/help/methods.md +58 -0
  414. package/docs/help/session.doc.ts +154 -0
  415. package/docs/help/session.md +91 -0
  416. package/docs/help/style.md +80 -0
  417. package/docs/help/ui.doc.ts +404 -0
  418. package/docs/help/ui.md +342 -0
  419. package/docs/help/utils.doc.ts +133 -0
  420. package/docs/help/utils.md +96 -0
  421. package/docs/requirements.md +33 -12
  422. package/package.json +44 -3
  423. package/dist/ui/ErrorBoundary.d.ts +0 -22
  424. package/dist/ui/ErrorBoundary.d.ts.map +0 -1
  425. package/dist/ui/ErrorBoundary.js +0 -30
  426. package/dist/ui/ErrorBoundary.js.map +0 -1
  427. package/docs/design/features/design.md +0 -55
  428. package/docs/design/features/explorer.md +0 -73
  429. package/docs/design/features/session.md +0 -70
  430. package/docs/design/features/ui.md +0 -225
  431. package/docs/design/features/utils.md +0 -64
  432. package/docs/examples/integration.md +0 -103
@@ -0,0 +1,103 @@
1
+ /**
2
+ * 领域选择器的宿主数据面 —— ModelPicker / WorkspacePicker 的「现成数据」。
3
+ *
4
+ * 用户 2026-10-20 拍板:这两个领域选择器**自己取数、自己显示**,消费方不再传数组
5
+ * (反转 requirements §6 对领域选择器的旧口径;通用 `Picker` 仍是 props 进数据的纯零件)。
6
+ *
7
+ * 两条数据通路(均为真机验证过的口子):
8
+ * - 工作区:宿主 client 服务 `workspaces` 的快照(getSnapshot + subscribe,follow 流实时更新)。
9
+ * - 模型目录:**插件宿主侧** `llm.listModels()` 现查 → `serveModelCatalog()` 挂成只读路由 →
10
+ * 客户端 fetch(`@deepseek-ai/*` 的 `remote.llm` 只有 listProviders,**拿不到每个供应商的
11
+ * 模型列表**,2026-10-20 真机定位后弃用该路径)。
12
+ *
13
+ * 接线:宿主 `apply` 调 `serveModelCatalog(ctx, { path })`,客户端 `apply` 调
14
+ * `connectHost(ctx, { modelsPath: path })`——同一个 path 常量,消费方不碰数据本身。
15
+ */
16
+ /** 一条路由:一个供应商 + 它的模型(与宿主侧 `ModelRouteData` 同形)。 */
17
+ export interface ModelRoute {
18
+ provider: string;
19
+ displayName: string;
20
+ models: readonly {
21
+ id: string;
22
+ name?: string;
23
+ }[];
24
+ }
25
+ export type ModelCatalogState = {
26
+ status: 'loading';
27
+ } | {
28
+ status: 'unavailable';
29
+ reason: string;
30
+ } | {
31
+ status: 'ready';
32
+ routes: readonly ModelRoute[];
33
+ };
34
+ /** 模型目录的 observable store(useSyncExternalStore 直接消费)。 */
35
+ declare class ModelCatalogStore {
36
+ private snapshot;
37
+ private readonly listeners;
38
+ readonly getSnapshot: () => ModelCatalogState;
39
+ readonly subscribe: (listener: () => void) => (() => void);
40
+ private update;
41
+ setRoutes(routes: readonly ModelRoute[]): void;
42
+ setUnavailable(reason: string): void;
43
+ }
44
+ /** 模型目录单例(ModelPicker 消费;connectHost 负责喂)。 */
45
+ export declare const modelCatalog: ModelCatalogStore;
46
+ /** 官方 `workspaces` client 服务 `list` 的一行(`WorkspaceView` 的消费子集,见 docs/design/external/dsh-host.md §11)。 */
47
+ export interface HostWorkspaceItem {
48
+ workspaceId: string;
49
+ title: string;
50
+ /**
51
+ * 工作区绝对路径(官方 `WorkspaceView.path`,realpath 归一形态)——**路径 → 工作区匹配用**
52
+ * (`workspaceAnchorForPath` 最长前缀)。宿主没给时 undefined ⇒ 该工作区不参与路径匹配
53
+ * (仍可靠 title 进 `anchorSessionForTitle`)。
54
+ */
55
+ path?: string;
56
+ /** 本工作区名下的会话 id(追加序);文件浏览的 sessionId 只能从这来。 */
57
+ sessionIds?: readonly string[];
58
+ /** 更新时间戳;「最近打开的工作区」排序用。 */
59
+ updatedAt?: number;
60
+ }
61
+ /**
62
+ * 官方 `workspaces` client 服务的 `list`(WorkspaceSource 结构化子集)。
63
+ * ⚠️ `sessionIds` / `updatedAt` 由官方 `WorkspaceView` 提供(dsh-host.md §11 已核实);
64
+ * 本宿主没给时保持 undefined,取锚点方自行判空,不得编造。
65
+ */
66
+ export interface HostWorkspaceSource {
67
+ getSnapshot: () => {
68
+ items: readonly HostWorkspaceItem[];
69
+ };
70
+ subscribe: (listener: () => void) => () => void;
71
+ }
72
+ /**
73
+ * 工作区列表的 observable store:直接镜像官方 WorkspaceSource 的 `items`
74
+ * (宿主权威快照,follow 流实时推 —— 源变我们就变,不自持第二份状态机)。
75
+ */
76
+ declare class WorkspaceListStore {
77
+ private items;
78
+ private readonly listeners;
79
+ private unsubscribe;
80
+ /** 换源(仅 connectHost 调;重复调用换到新源)。 */
81
+ setSource(source: HostWorkspaceSource): void;
82
+ readonly getSnapshot: () => readonly HostWorkspaceItem[];
83
+ readonly subscribe: (listener: () => void) => (() => void);
84
+ }
85
+ /** 工作区列表单例(WorkspacePicker 消费;connectHost 负责喂)。 */
86
+ export declare const workspaceList: WorkspaceListStore;
87
+ /** 插件 client 的最小 ctx 形状(cordis client context 的结构化子集)。 */
88
+ export interface HostClientContext {
89
+ inject: (deps: string[], cb: (sub: unknown) => void) => void;
90
+ }
91
+ export interface ConnectHostOptions {
92
+ /** 模型目录路由(宿主侧 `serveModelCatalog` 注册的同一个 path);不传 = 不取模型目录。 */
93
+ modelsPath?: string;
94
+ }
95
+ /**
96
+ * 把宿主数据面接进核心(插件 client `apply` 里调**一次**)。
97
+ *
98
+ * 工作区走本地 client 服务注入;模型目录走宿主路由 fetch。哪条失败只影响那一块,
99
+ * 选择器照常渲染空态 / 降级提示 —— 绝不让数据面拖住插件启动。
100
+ */
101
+ export declare function connectHost(ctx: HostClientContext, options?: ConnectHostOptions): void;
102
+ export {};
103
+ //# sourceMappingURL=host-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-data.d.ts","sourceRoot":"","sources":["../../src/ui/host-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,mDAAmD;AACnD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACjD;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,CAAA;AAEtD,yDAAyD;AACzD,cAAM,iBAAiB;IACrB,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAElD,QAAQ,CAAC,WAAW,QAAO,iBAAiB,CAAiB;IAE7D,QAAQ,CAAC,SAAS,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAKxD;IAED,OAAO,CAAC,MAAM;IAKd,SAAS,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI;IAI9C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGrC;AAED,8CAA8C;AAC9C,eAAO,MAAM,YAAY,mBAA0B,CAAA;AAInD,0GAA0G;AAC1G,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM;QAAE,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;KAAE,CAAA;IAC1D,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;CAChD;AAED;;;GAGG;AACH,cAAM,kBAAkB;IACtB,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,WAAW,CAA0B;IAE7C,oCAAoC;IACpC,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAU5C,QAAQ,CAAC,WAAW,QAAO,SAAS,iBAAiB,EAAE,CAAc;IAErE,QAAQ,CAAC,SAAS,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAKxD;CACF;AAED,mDAAmD;AACnD,eAAO,MAAM,aAAa,oBAA2B,CAAA;AAIrD,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAQD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,GAAE,kBAAuB,GAAG,IAAI,CAiB1F"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * 领域选择器的宿主数据面 —— ModelPicker / WorkspacePicker 的「现成数据」。
3
+ *
4
+ * 用户 2026-10-20 拍板:这两个领域选择器**自己取数、自己显示**,消费方不再传数组
5
+ * (反转 requirements §6 对领域选择器的旧口径;通用 `Picker` 仍是 props 进数据的纯零件)。
6
+ *
7
+ * 两条数据通路(均为真机验证过的口子):
8
+ * - 工作区:宿主 client 服务 `workspaces` 的快照(getSnapshot + subscribe,follow 流实时更新)。
9
+ * - 模型目录:**插件宿主侧** `llm.listModels()` 现查 → `serveModelCatalog()` 挂成只读路由 →
10
+ * 客户端 fetch(`@deepseek-ai/*` 的 `remote.llm` 只有 listProviders,**拿不到每个供应商的
11
+ * 模型列表**,2026-10-20 真机定位后弃用该路径)。
12
+ *
13
+ * 接线:宿主 `apply` 调 `serveModelCatalog(ctx, { path })`,客户端 `apply` 调
14
+ * `connectHost(ctx, { modelsPath: path })`——同一个 path 常量,消费方不碰数据本身。
15
+ */
16
+ /** 模型目录的 observable store(useSyncExternalStore 直接消费)。 */
17
+ class ModelCatalogStore {
18
+ constructor() {
19
+ this.snapshot = { status: 'loading' };
20
+ this.listeners = new Set();
21
+ this.getSnapshot = () => this.snapshot;
22
+ this.subscribe = (listener) => {
23
+ this.listeners.add(listener);
24
+ return () => {
25
+ this.listeners.delete(listener);
26
+ };
27
+ };
28
+ }
29
+ update(next) {
30
+ this.snapshot = next;
31
+ for (const listener of this.listeners)
32
+ listener();
33
+ }
34
+ setRoutes(routes) {
35
+ this.update({ status: 'ready', routes });
36
+ }
37
+ setUnavailable(reason) {
38
+ this.update({ status: 'unavailable', reason });
39
+ }
40
+ }
41
+ /** 模型目录单例(ModelPicker 消费;connectHost 负责喂)。 */
42
+ export const modelCatalog = new ModelCatalogStore();
43
+ /**
44
+ * 工作区列表的 observable store:直接镜像官方 WorkspaceSource 的 `items`
45
+ * (宿主权威快照,follow 流实时推 —— 源变我们就变,不自持第二份状态机)。
46
+ */
47
+ class WorkspaceListStore {
48
+ constructor() {
49
+ this.items = [];
50
+ this.listeners = new Set();
51
+ this.getSnapshot = () => this.items;
52
+ this.subscribe = (listener) => {
53
+ this.listeners.add(listener);
54
+ return () => {
55
+ this.listeners.delete(listener);
56
+ };
57
+ };
58
+ }
59
+ /** 换源(仅 connectHost 调;重复调用换到新源)。 */
60
+ setSource(source) {
61
+ this.unsubscribe?.();
62
+ const pull = () => {
63
+ this.items = source.getSnapshot().items;
64
+ for (const listener of this.listeners)
65
+ listener();
66
+ };
67
+ pull();
68
+ this.unsubscribe = source.subscribe(pull);
69
+ }
70
+ }
71
+ /** 工作区列表单例(WorkspacePicker 消费;connectHost 负责喂)。 */
72
+ export const workspaceList = new WorkspaceListStore();
73
+ function isWorkspaceSource(value) {
74
+ if (value === null || typeof value !== 'object')
75
+ return false;
76
+ const rec = value;
77
+ return typeof rec.getSnapshot === 'function' && typeof rec.subscribe === 'function';
78
+ }
79
+ /**
80
+ * 把宿主数据面接进核心(插件 client `apply` 里调**一次**)。
81
+ *
82
+ * 工作区走本地 client 服务注入;模型目录走宿主路由 fetch。哪条失败只影响那一块,
83
+ * 选择器照常渲染空态 / 降级提示 —— 绝不让数据面拖住插件启动。
84
+ */
85
+ export function connectHost(ctx, options = {}) {
86
+ ctx.inject(['workspaces'], (sub) => {
87
+ const source = sub?.workspaces?.list;
88
+ if (isWorkspaceSource(source))
89
+ workspaceList.setSource(source);
90
+ });
91
+ const modelsPath = options.modelsPath;
92
+ if (modelsPath === undefined)
93
+ return;
94
+ void fetch(modelsPath)
95
+ .then((response) => (response.ok ? response.json() : Promise.reject(new Error(`HTTP ${response.status}`))))
96
+ .then((data) => {
97
+ const routes = data?.routes;
98
+ if (!Array.isArray(routes))
99
+ throw new Error('模型目录响应缺少 routes');
100
+ modelCatalog.setRoutes(routes);
101
+ })
102
+ .catch((error) => {
103
+ modelCatalog.setUnavailable(String(error));
104
+ });
105
+ }
106
+ //# sourceMappingURL=host-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-data.js","sourceRoot":"","sources":["../../src/ui/host-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface HostToastAction {
2
+ text: string;
3
+ onClick: () => void;
4
+ }
5
+ export interface HostToastOptions {
6
+ /** 仅宿主原生支持 'success' 一个语义色;不传则是默认中性条。 */
7
+ tone?: 'success';
8
+ /** 停留时长(毫秒),默认 3000。 */
9
+ holdMs?: number;
10
+ /** 右侧动作(宿主原生渲染为蓝色可点文字)。 */
11
+ actions?: HostToastAction[];
12
+ /** 淡出完成后触发。 */
13
+ onDismiss?: () => void;
14
+ }
15
+ /**
16
+ * 宿主原生 Toast(直接包 `@deepseek-ai/dsh-client-ui-primitives` 的 `Toast`)。
17
+ *
18
+ * 放在独立子路径 `dsh-plugin-core/ui/host` 导出,**不**经 `dsh-plugin-core/ui` 入口,
19
+ * 避免 `ui` 入口静态 import 官方平台模块导致 Node 单测崩(旧坑)。
20
+ * 仅用于「宿主原生」对比 demo;项目内通常请用 `notify`。
21
+ */
22
+ export declare function showHostToast(message: string, opts?: HostToastOptions): void;
23
+ //# sourceMappingURL=host-toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-toast.d.ts","sourceRoot":"","sources":["../../src/ui/host-toast.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2BAA2B;IAC3B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,eAAe;IACf,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAwB5E"}
@@ -0,0 +1,34 @@
1
+ import { createElement as h } from 'react';
2
+ import { createRoot } from 'react-dom/client';
3
+ import { Official } from './official.js';
4
+ /**
5
+ * 宿主原生 Toast(直接包 `@deepseek-ai/dsh-client-ui-primitives` 的 `Toast`)。
6
+ *
7
+ * 放在独立子路径 `dsh-plugin-core/ui/host` 导出,**不**经 `dsh-plugin-core/ui` 入口,
8
+ * 避免 `ui` 入口静态 import 官方平台模块导致 Node 单测崩(旧坑)。
9
+ * 仅用于「宿主原生」对比 demo;项目内通常请用 `notify`。
10
+ */
11
+ export function showHostToast(message, opts) {
12
+ if (typeof document === 'undefined')
13
+ return;
14
+ const container = document.createElement('div');
15
+ document.body.appendChild(container);
16
+ const root = createRoot(container);
17
+ const close = () => {
18
+ root.unmount();
19
+ container.remove();
20
+ };
21
+ root.render(h(Official.Toast, {
22
+ text: message,
23
+ tone: opts?.tone,
24
+ holdMs: opts?.holdMs ?? 3000,
25
+ actions: opts?.actions !== undefined
26
+ ? opts.actions.map((a) => ({ label: a.text, onClick: a.onClick }))
27
+ : undefined,
28
+ onDone: () => {
29
+ close();
30
+ opts?.onDismiss?.();
31
+ },
32
+ }));
33
+ }
34
+ //# sourceMappingURL=host-toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-toast.js","sourceRoot":"","sources":["../../src/ui/host-toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAkBxC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,IAAuB;IACpE,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC/C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IACpC,MAAM,IAAI,GAAS,UAAU,CAAC,SAAS,CAAC,CAAA;IACxC,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,SAAS,CAAC,MAAM,EAAE,CAAA;IACpB,CAAC,CAAA;IACD,IAAI,CAAC,MAAM,CACT,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,IAAI,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI;QAC5B,OAAO,EACL,IAAI,EAAE,OAAO,KAAK,SAAS;YACzB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,SAAS;QACf,MAAM,EAAE,GAAG,EAAE;YACX,KAAK,EAAE,CAAA;YACP,IAAI,EAAE,SAAS,EAAE,EAAE,CAAA;QACrB,CAAC;KACF,CAAC,CACH,CAAA;AACH,CAAC"}
@@ -1,14 +1,18 @@
1
1
  export { CONTROLS_DOMAIN, ensureControls, getStyleKit, setStyleKit } from './css.js';
2
2
  export { filterGroups, flattenOptions, groupOf, labelsOf, toGroups, toggleValue, type PickerGroup, type PickerOption, } from './picker-logic.js';
3
3
  export { Picker, type PickerProps, type PickerSize } from './Picker.js';
4
+ export { DateTimePicker, type DateTimeOutput, type DateTimePickerProps, type DateTimeSize, } from './DateTimePicker.js';
5
+ export { buildMonthCells, ceilToPrecision, clampUnit, floorToPrecision, formatDateTimeIso, monthCaption, msToParts, nowParts, nowTimeFor, parseDateTime, partsOf, partsToMs, rangeIsValid, sameLocalDay, stepMax, stepUnit, toEndDraft, weekdayLabels, type DateTimeParts, type DateTimePrecision, type DayCell, type DayRef, type EndDraft, type StepUnit, type TimeParts, } from './datetime-logic.js';
4
6
  export { ModelPicker, type ModelPickerProps, type ModelPickerVariant } from './ModelPicker.js';
5
- export { FilePicker, WorkspacePicker, type FilePickerProps, type WorkspacePickerProps, } from './WorkspacePicker.js';
6
- export { Modal, type ModalProps } from './Modal.js';
7
+ export { WorkspacePicker, type WorkspacePickerProps } from './WorkspacePicker.js';
8
+ export { connectHost, modelCatalog, workspaceList, type ConnectHostOptions, type HostClientContext, type HostWorkspaceItem, type HostWorkspaceSource, type ModelCatalogState, type ModelRoute, } from './host-data.js';
9
+ export { Modal, type ModalProps, type ModalSize } from './Modal.js';
10
+ export { AlertModal, type AlertModalProps, type AlertSeverity, } from './AlertModal.js';
11
+ export { ConfirmModal, type ConfirmModalProps, type ConfirmTone, } from './ConfirmModal.js';
12
+ export { alertModal, confirmModal, type AlertOptions, type ConfirmOptions, } from './modal-host.js';
7
13
  export { CARD_ACCENTS, Card, StripCard, type CardAccent, type CardSharedProps, } from './Card.js';
8
- export { Chip, type ChipProps } from './Chip.js';
9
- export { showToast, type ToastVariant } from './Toast.js';
10
- export { EmptyState, type EmptyStateProps } from './EmptyState.js';
11
- export { ErrorBoundary, type ErrorBoundaryProps } from './ErrorBoundary.js';
14
+ export { Chip, type ChipProps, type ChipSize, type ChipTone } from './Chip.js';
15
+ export { showToast, notify, type ToastVariant, type ToastPosition, type ToastOptions, type ToastAction, type NotifyOptions, } from './Toast.js';
12
16
  export { Button, IconButton, type ButtonProps, type ButtonSize, type ButtonVariant, type IconButtonProps } from './Button.js';
13
17
  export { Segmented, type SegmentedProps } from './Segmented.js';
14
18
  export { Textarea, type TextareaProps } from './Textarea.js';
@@ -21,5 +25,7 @@ export { getTooltipRenderer, setTooltipRenderer, type TooltipRenderProps, type T
21
25
  export { LiveText } from './LiveText.js';
22
26
  export { BackToTop, type BackToTopProps } from './BackToTop.js';
23
27
  export { startResizeLayoutWidth, type ResizeOptions } from './resizer.js';
28
+ export { DockPanel, PanelDock, createPanelDock, type DockCloseButton, type DockCloseReason, type DockPanelProps, type PanelDockController, type PanelDockOptions, type PanelDockProps, } from './PanelDock.js';
29
+ export { DEFAULT_PANEL_ID, clampWidth, closePanel, emptyDock, isOpen, openPanel, othersWidth, setPanelWidth, type DockState, type OpenResult, } from './panel-dock-logic.js';
24
30
  export { FIELD_ANCHOR_STYLE, FIELD_LABEL_STYLE, Input, NumberInput, PrefixedInput, fieldMetricsOf, type EditorOption, type FieldSize, type InputProps, type NumberInputProps, type PrefixedInputProps, } from './Field.js';
25
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACpF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC9F,OAAO,EACL,UAAU,EACV,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,KAAK,UAAU,EACf,KAAK,eAAe,GACrB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE3E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7H,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"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"}
package/dist/ui/index.js CHANGED
@@ -4,14 +4,18 @@
4
4
  export { CONTROLS_DOMAIN, ensureControls, getStyleKit, setStyleKit } from './css.js';
5
5
  export { filterGroups, flattenOptions, groupOf, labelsOf, toGroups, toggleValue, } from './picker-logic.js';
6
6
  export { Picker } from './Picker.js';
7
+ export { DateTimePicker, } from './DateTimePicker.js';
8
+ export { buildMonthCells, ceilToPrecision, clampUnit, floorToPrecision, formatDateTimeIso, monthCaption, msToParts, nowParts, nowTimeFor, parseDateTime, partsOf, partsToMs, rangeIsValid, sameLocalDay, stepMax, stepUnit, toEndDraft, weekdayLabels, } from './datetime-logic.js';
7
9
  export { ModelPicker } from './ModelPicker.js';
8
- export { FilePicker, WorkspacePicker, } from './WorkspacePicker.js';
10
+ export { WorkspacePicker } from './WorkspacePicker.js';
11
+ export { connectHost, modelCatalog, workspaceList, } from './host-data.js';
9
12
  export { Modal } from './Modal.js';
13
+ export { AlertModal, } from './AlertModal.js';
14
+ export { ConfirmModal, } from './ConfirmModal.js';
15
+ export { alertModal, confirmModal, } from './modal-host.js';
10
16
  export { CARD_ACCENTS, Card, StripCard, } from './Card.js';
11
17
  export { Chip } from './Chip.js';
12
- export { showToast } from './Toast.js';
13
- export { EmptyState } from './EmptyState.js';
14
- export { ErrorBoundary } from './ErrorBoundary.js';
18
+ export { showToast, notify, } from './Toast.js';
15
19
  export { Button, IconButton } from './Button.js';
16
20
  export { Segmented } from './Segmented.js';
17
21
  export { Textarea } from './Textarea.js';
@@ -24,5 +28,7 @@ export { getTooltipRenderer, setTooltipRenderer, } from './tooltip.js';
24
28
  export { LiveText } from './LiveText.js';
25
29
  export { BackToTop } from './BackToTop.js';
26
30
  export { startResizeLayoutWidth } from './resizer.js';
31
+ export { DockPanel, PanelDock, createPanelDock, } from './PanelDock.js';
32
+ export { DEFAULT_PANEL_ID, clampWidth, closePanel, emptyDock, isOpen, openPanel, othersWidth, setPanelWidth, } from './panel-dock-logic.js';
27
33
  export { FIELD_ANCHOR_STYLE, FIELD_LABEL_STYLE, Input, NumberInput, PrefixedInput, fieldMetricsOf, } from './Field.js';
28
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,sDAAsD;AACtD,gDAAgD;AAChD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACpF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,WAAW,GAGZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAqC,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,WAAW,EAAkD,MAAM,kBAAkB,CAAA;AAC9F,OAAO,EACL,UAAU,EACV,eAAe,GAGhB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAmB,MAAM,YAAY,CAAA;AACnD,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,SAAS,GAGV,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,IAAI,EAAkB,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAA;AAE3E,OAAO,EAAE,MAAM,EAAE,UAAU,EAA+E,MAAM,aAAa,CAAA;AAC7H,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAqB,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAGnB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAsB,MAAM,cAAc,CAAA;AACzE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,aAAa,EACb,cAAc,GAMf,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,sDAAsD;AACtD,gDAAgD;AAChD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACpF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,WAAW,GAGZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAqC,MAAM,aAAa,CAAA;AACvE,OAAO,EACL,cAAc,GAIf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,eAAe,EACf,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,UAAU,EACV,aAAa,EACb,OAAO,EACP,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,GAQd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAkD,MAAM,kBAAkB,CAAA;AAC9F,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAA;AACjF,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,GAOd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,KAAK,EAAmC,MAAM,YAAY,CAAA;AACnE,OAAO,EACL,UAAU,GAGX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,YAAY,GAGb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,UAAU,EACV,YAAY,GAGb,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,SAAS,GAGV,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,IAAI,EAAgD,MAAM,WAAW,CAAA;AAC9E,OAAO,EACL,SAAS,EACT,MAAM,GAMP,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,MAAM,EAAE,UAAU,EAA+E,MAAM,aAAa,CAAA;AAC7H,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAqB,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAGnB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAsB,MAAM,cAAc,CAAA;AACzE,OAAO,EACL,SAAS,EACT,SAAS,EACT,eAAe,GAOhB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,aAAa,GAGd,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,aAAa,EACb,cAAc,GAMf,MAAM,YAAY,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { MARQUEE_CSS } from './marquee-css.generated.js';
2
+ //# sourceMappingURL=marquee-css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marquee-css.d.ts","sourceRoot":"","sources":["../../src/ui/marquee-css.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const MARQUEE_CSS = "/* \u8DD1\u9A6C\u706F\uFF08MarqueeText\uFF09\uFF1A\u53CC\u5C42\u2014\u2014\u5916\u5C42\u53EA\u88C1\u526A\uFF0C\u5185\u5C42\u624D transform \u6EDA\u52A8\uFF1B\u975E hover \u5185\u5C42\u81EA\u5E26\u7701\u7565\u53F7\u3002\n 2026-10-20\uFF1A\u672C\u6587\u4EF6\u539F\u662F\u6742\u70E9\u300Cselect.css\u300D\uFF08\u4E0B\u62C9 / \u65E5\u5386 / \u65F6\u5206\u7684\u76AE\u80A4\u90FD\u88C5\u8FC7\uFF09\uFF0C\u968F\u7740\u90A3\u4E9B\u63A7\u4EF6\n \u4E00\u4E2A\u4E2A\u5220\u5B8C\uFF0C\u6700\u540E\u53EA\u5269\u8DD1\u9A6C\u706F\uFF0C\u6545\u6309\u672C\u5305\u300C\u4E00\u4E2A css \u670D\u52A1\u4E00\u4E2A\u5BF9\u8C61\u300D\u7684\u683C\u5C40\u6539\u540D\u5F52\u6863\u3002\n \u540C\u6279\u6E05\u6389\u7684\u8FD8\u6709\u96F6\u5F15\u7528\u7684\u7701\u7565\u53F7\u7C7B .dshpc-ellipsis \u2014\u2014 \u672C\u5305\u4E09\u4E2A\u7528\u5230\u622A\u65AD\u7684\u5730\u65B9\u90FD\u6CA1\u91C7\u7EB3\u5B83\u3002 */\n.dshpc-mq{display:block;overflow:hidden;white-space:nowrap;}\n.dshpc-mq .dshpc-mq-in{display:inline-block;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:top;}\n/* \u26A0\uFE0F \u8DD1\u6CD5\uFF08\u7528\u6237 2026-10-03 \u62CD\u677F\uFF09\uFF1A**\u8DD1\u4E00\u904D\u3001\u505C\u5728\u5C3E\u5B57**\uFF08\u64AD\u653E 1 \u6B21 + forwards\uFF09\uFF0C\u4E0D\u6765\u56DE\u5F39\u3001\u4E0D\u65E0\u9650\u8DD1\u3002\n \u6EDA\u8DDD = \u7CBE\u786E\u6EA2\u51FA\u91CF \u21D2 \u505C\u4E0B\u65F6\u6700\u540E\u4E00\u4E2A\u5B57\u6B63\u597D\u8D34\u53F3\u7F18\uFF0C**\u4E0D\u4F1A\u8DD1\u8FDB\u9ED1\u5757**\uFF08\u9ED1\u5757\u662F\u65E7\u624B\u5199\u7248\u628A\n \u5185\u5C42\u76D2\u5B50\u88C1\u4E86\u3001\u6309\u300C\u534A\u622A\u6587\u672C\u300D\u5E73\u79FB\u5BFC\u81F4\u7684\uFF09\u3002\u9F20\u6807\u79FB\u5F00 \u21D2 :hover \u5931\u6548 \u21D2 \u81EA\u52A8\u590D\u4F4D\u56DE\u7701\u7565\u53F7\u6001\u3002 */\n.dshpc-mq-run:hover .dshpc-mq-in{max-width:none;overflow:visible;animation:dshpc-mq-scroll var(--dshpc-mq-dur,6s) linear .4s 1 forwards;}\n@keyframes dshpc-mq-scroll{from{transform:translateX(0)}to{transform:translateX(var(--dshpc-mq-dist,-40px))}}\n/* \u6EA2\u51FA\u6E10\u5F71\uFF08\u7528\u6237 2026-10-24 \u62CD\u677F\u300C\u5DE6\u53F3\u7A0D\u5FAE\u6709\u70B9\u6E10\u5F71\u300D\uFF1B\u5B98\u65B9\u53E3\u5F84 = dsh-client-ui-primitives@0.2.1-rc.2\n PathLabel.module.css:13-15\uFF1Amask-image \u7EBF\u6027\u6E10\u9690 + 28px \u968F\u5B98\u65B9\uFF09\u3002\u26A0\uFE0F \u53EA\u5728 **hover \u6EDA\u52A8\u6001** \u52A0\uFF1A\n \u9759\u6001\u6001\uFF08\u4E09\u4E2A\u70B9\uFF09\u4E0D\u8981\u6E10\u5F71\uFF08\u7528\u6237 2026-10-24 \u4E8C\u6B21\u62CD\u677F\uFF09\uFF0Chover \u6EDA\u52A8\u65F6\u4E24\u7AEF\u6E10\u5F71\u2014\u2014\u5DE6\u7F18\u67D4\u5316\u88AB\u88C1\u7684\u6587\u5B57\u5934\u3002 */\n.dshpc-mq-run:hover{mask-image:linear-gradient(to right, transparent, #000 28px, #000 calc(100% - 28px), transparent);}\n";
2
+ //# sourceMappingURL=marquee-css.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marquee-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/marquee-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,qyFAAksC,CAAA"}
@@ -0,0 +1,4 @@
1
+ // ⚠️ 生成物,勿手改。真源 = src/ui/marquee.css
2
+ // 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
3
+ export const MARQUEE_CSS = "/* 跑马灯(MarqueeText):双层——外层只裁剪,内层才 transform 滚动;非 hover 内层自带省略号。\n 2026-10-20:本文件原是杂烩「select.css」(下拉 / 日历 / 时分的皮肤都装过),随着那些控件\n 一个个删完,最后只剩跑马灯,故按本包「一个 css 服务一个对象」的格局改名归档。\n 同批清掉的还有零引用的省略号类 .dshpc-ellipsis —— 本包三个用到截断的地方都没采纳它。 */\n.dshpc-mq{display:block;overflow:hidden;white-space:nowrap;}\n.dshpc-mq .dshpc-mq-in{display:inline-block;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:top;}\n/* ⚠️ 跑法(用户 2026-10-03 拍板):**跑一遍、停在尾字**(播放 1 次 + forwards),不来回弹、不无限跑。\n 滚距 = 精确溢出量 ⇒ 停下时最后一个字正好贴右缘,**不会跑进黑块**(黑块是旧手写版把\n 内层盒子裁了、按「半截文本」平移导致的)。鼠标移开 ⇒ :hover 失效 ⇒ 自动复位回省略号态。 */\n.dshpc-mq-run:hover .dshpc-mq-in{max-width:none;overflow:visible;animation:dshpc-mq-scroll var(--dshpc-mq-dur,6s) linear .4s 1 forwards;}\n@keyframes dshpc-mq-scroll{from{transform:translateX(0)}to{transform:translateX(var(--dshpc-mq-dist,-40px))}}\n/* 溢出渐影(用户 2026-10-24 拍板「左右稍微有点渐影」;官方口径 = dsh-client-ui-primitives@0.2.1-rc.2\n PathLabel.module.css:13-15:mask-image 线性渐隐 + 28px 随官方)。⚠️ 只在 **hover 滚动态** 加:\n 静态态(三个点)不要渐影(用户 2026-10-24 二次拍板),hover 滚动时两端渐影——左缘柔化被裁的文字头。 */\n.dshpc-mq-run:hover{mask-image:linear-gradient(to right, transparent, #000 28px, #000 calc(100% - 28px), transparent);}\n";
4
+ //# sourceMappingURL=marquee-css.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marquee-css.generated.js","sourceRoot":"","sources":["../../src/ui/marquee-css.generated.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,qEAAqE;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG,+rCAA+rC,CAAA"}
@@ -0,0 +1,4 @@
1
+ // 跑马灯(MarqueeText)样式。
2
+ // 类名与变量统一 dshpc 前缀。
3
+ export { MARQUEE_CSS } from './marquee-css.generated.js';
4
+ //# sourceMappingURL=marquee-css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marquee-css.js","sourceRoot":"","sources":["../../src/ui/marquee-css.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,oBAAoB;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { type AlertModalProps } from './AlertModal.js';
2
+ import { type ConfirmModalProps } from './ConfirmModal.js';
3
+ export interface HostConfirmArgs {
4
+ title?: string;
5
+ description?: string;
6
+ confirmText?: string;
7
+ cancelText?: string;
8
+ danger?: boolean;
9
+ }
10
+ export interface HostAlertArgs {
11
+ title?: string;
12
+ description?: string;
13
+ confirmText?: string;
14
+ }
15
+ export interface HostDialogHandlers {
16
+ confirm: (opts: HostConfirmArgs) => Promise<boolean>;
17
+ alert: (opts: HostAlertArgs) => Promise<void>;
18
+ }
19
+ export declare function registerHostDialog(handlers: HostDialogHandlers): void;
20
+ export type ConfirmOptions = Omit<ConfirmModalProps, 'onConfirm' | 'onCancel'> & {
21
+ skin?: 'core' | 'host';
22
+ };
23
+ export type AlertOptions = Omit<AlertModalProps, 'onConfirm'> & {
24
+ skin?: 'core' | 'host';
25
+ };
26
+ /** 命令式确认框:Promise 形式,`true`=确定 / `false`=取消(或点遮罩 / Esc)。`skin:"host"` 走宿主原生 Modal。 */
27
+ export declare function confirmModal(opts: ConfirmOptions): Promise<boolean>;
28
+ /** 命令式警告框:Promise 在关闭时 resolve(单按钮,关闭即确认)。`skin:"host"` 走宿主原生 Modal。 */
29
+ export declare function alertModal(opts: AlertOptions): Promise<void>;
30
+ //# sourceMappingURL=modal-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-host.d.ts","sourceRoot":"","sources":["../../src/ui/modal-host.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAmDxE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AACD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AACD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACpD,KAAK,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9C;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAErE;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAC3G,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAE1F,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BnE;AAED,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB5D"}
@@ -0,0 +1,101 @@
1
+ import { createElement as h, Fragment } from 'react';
2
+ import { createRoot } from 'react-dom/client';
3
+ import { ensureControls, getStyleKit } from './css.js';
4
+ import { AlertModal } from './AlertModal.js';
5
+ import { ConfirmModal } from './ConfirmModal.js';
6
+ // ⚠️ core 的 StyleKit / i18n 都是**模块级单例**(见 css.ts 注释),不依赖 React Context,
7
+ // 所以命令式弹窗所在的独立 root 天然能读到它们——无需手动注入插件上下文。
8
+ // 唯一读不到的是「插件自己定义的 React Context」,那是用户的私有环境,命令式本就不继承。
9
+ let hostRoot = null;
10
+ let hostContainer = null;
11
+ let entries = [];
12
+ let idSeq = 0;
13
+ /** 取(懒建)常驻挂载根;非浏览器环境返回 null。 */
14
+ function getHostRoot() {
15
+ if (typeof document === 'undefined')
16
+ return null;
17
+ if (hostRoot === null) {
18
+ hostContainer = document.createElement('div');
19
+ hostContainer.setAttribute('data-dshpc-modal-host', '');
20
+ document.body.appendChild(hostContainer);
21
+ hostRoot = createRoot(hostContainer);
22
+ }
23
+ return hostRoot;
24
+ }
25
+ /** 重渲染当前堆叠;空了就卸载回收,不残留空根。 */
26
+ function flush() {
27
+ const root = getHostRoot();
28
+ if (root === null)
29
+ return;
30
+ ensureControls(getStyleKit());
31
+ if (entries.length === 0) {
32
+ root.unmount();
33
+ hostContainer?.remove();
34
+ hostRoot = null;
35
+ hostContainer = null;
36
+ return;
37
+ }
38
+ root.render(h(Fragment, null, entries.map((e) => e.node)));
39
+ }
40
+ function dismiss(id) {
41
+ entries = entries.filter((e) => e.id !== id);
42
+ flush();
43
+ }
44
+ let hostHandlers = null;
45
+ export function registerHostDialog(handlers) {
46
+ hostHandlers = handlers;
47
+ }
48
+ /** 命令式确认框:Promise 形式,`true`=确定 / `false`=取消(或点遮罩 / Esc)。`skin:"host"` 走宿主原生 Modal。 */
49
+ export function confirmModal(opts) {
50
+ if (opts.skin === 'host') {
51
+ if (hostHandlers !== null) {
52
+ return hostHandlers.confirm({
53
+ title: opts.title == null ? undefined : String(opts.title),
54
+ description: opts.message == null ? undefined : String(opts.message),
55
+ confirmText: opts.confirmText,
56
+ cancelText: opts.cancelText,
57
+ danger: opts.tone === 'danger',
58
+ });
59
+ }
60
+ console.warn('[dsh-plugin-core] confirmModal skin:"host" 需先引入官方适配层 official.js,已回落到 core 皮肤');
61
+ }
62
+ const { skin: _skin, ...core } = opts;
63
+ void _skin;
64
+ return new Promise((resolve) => {
65
+ const id = ++idSeq;
66
+ const close = (result) => {
67
+ dismiss(id);
68
+ resolve(result);
69
+ };
70
+ entries.push({
71
+ id,
72
+ node: h(ConfirmModal, { ...core, onConfirm: () => close(true), onCancel: () => close(false) }),
73
+ });
74
+ flush();
75
+ });
76
+ }
77
+ /** 命令式警告框:Promise 在关闭时 resolve(单按钮,关闭即确认)。`skin:"host"` 走宿主原生 Modal。 */
78
+ export function alertModal(opts) {
79
+ if (opts.skin === 'host') {
80
+ if (hostHandlers !== null) {
81
+ return hostHandlers.alert({
82
+ title: opts.title == null ? undefined : String(opts.title),
83
+ description: opts.message == null ? undefined : String(opts.message),
84
+ confirmText: opts.confirmText,
85
+ });
86
+ }
87
+ console.warn('[dsh-plugin-core] alertModal skin:"host" 需先引入官方适配层 official.js,已回落到 core 皮肤');
88
+ }
89
+ const { skin: _skin, ...core } = opts;
90
+ void _skin;
91
+ return new Promise((resolve) => {
92
+ const id = ++idSeq;
93
+ const close = () => {
94
+ dismiss(id);
95
+ resolve();
96
+ };
97
+ entries.push({ id, node: h(AlertModal, { ...core, onConfirm: close }) });
98
+ flush();
99
+ });
100
+ }
101
+ //# sourceMappingURL=modal-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-host.js","sourceRoot":"","sources":["../../src/ui/modal-host.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"official.d.ts","sourceRoot":"","sources":["../../src/ui/official.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAA;AAEjE,cAAc,uCAAuC,CAAA;AAErD,0CAA0C;AAC1C,OAAO,EAAE,QAAQ,EAAE,CAAA;AAInB;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,OAAO,QAAQ,EAC1D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAUtB"}
1
+ {"version":3,"file":"official.d.ts","sourceRoot":"","sources":["../../src/ui/official.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAA;AAEjE,cAAc,uCAAuC,CAAA;AAErD,0CAA0C;AAC1C,OAAO,EAAE,QAAQ,EAAE,CAAA;AAQnB;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,OAAO,QAAQ,EAC1D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAUtB"}