dsh-plugin-core 0.32.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 (632) 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/ui/actions/Button.d.ts +102 -0
  218. package/dist/ui/actions/Button.d.ts.map +1 -0
  219. package/dist/ui/actions/Button.js +233 -0
  220. package/dist/ui/actions/Button.js.map +1 -0
  221. package/dist/ui/actions/button-css.generated.d.ts +2 -0
  222. package/dist/ui/actions/button-css.generated.d.ts.map +1 -0
  223. package/dist/ui/actions/button-css.generated.js +4 -0
  224. package/dist/ui/actions/button-css.generated.js.map +1 -0
  225. package/dist/ui/display/Card.d.ts +65 -0
  226. package/dist/ui/display/Card.d.ts.map +1 -0
  227. package/dist/ui/display/Card.js +109 -0
  228. package/dist/ui/display/Card.js.map +1 -0
  229. package/dist/ui/display/Chip.d.ts +28 -0
  230. package/dist/ui/display/Chip.d.ts.map +1 -0
  231. package/dist/ui/display/Chip.js +36 -0
  232. package/dist/ui/display/Chip.js.map +1 -0
  233. package/dist/ui/display/CodeViewer.d.ts +38 -0
  234. package/dist/ui/display/CodeViewer.d.ts.map +1 -0
  235. package/dist/ui/display/CodeViewer.js +107 -0
  236. package/dist/ui/display/CodeViewer.js.map +1 -0
  237. package/dist/ui/display/FieldHint.d.ts +18 -0
  238. package/dist/ui/display/FieldHint.d.ts.map +1 -0
  239. package/dist/ui/display/FieldHint.js +40 -0
  240. package/dist/ui/display/FieldHint.js.map +1 -0
  241. package/dist/ui/display/FlipText.d.ts +43 -0
  242. package/dist/ui/display/FlipText.d.ts.map +1 -0
  243. package/dist/ui/display/FlipText.js +59 -0
  244. package/dist/ui/display/FlipText.js.map +1 -0
  245. package/dist/ui/display/LiveText.d.ts +13 -0
  246. package/dist/ui/display/LiveText.d.ts.map +1 -0
  247. package/dist/ui/display/LiveText.js +19 -0
  248. package/dist/ui/display/LiveText.js.map +1 -0
  249. package/dist/ui/display/MarqueeText.d.ts +22 -0
  250. package/dist/ui/display/MarqueeText.d.ts.map +1 -0
  251. package/dist/ui/display/MarqueeText.js +52 -0
  252. package/dist/ui/display/MarqueeText.js.map +1 -0
  253. package/dist/ui/display/SectionHead.d.ts +35 -0
  254. package/dist/ui/display/SectionHead.d.ts.map +1 -0
  255. package/dist/ui/display/SectionHead.js +45 -0
  256. package/dist/ui/display/SectionHead.js.map +1 -0
  257. package/dist/ui/display/Surface.d.ts +43 -0
  258. package/dist/ui/display/Surface.d.ts.map +1 -0
  259. package/dist/ui/display/Surface.js +39 -0
  260. package/dist/ui/display/Surface.js.map +1 -0
  261. package/dist/ui/display/Table.d.ts +30 -0
  262. package/dist/ui/display/Table.d.ts.map +1 -0
  263. package/dist/ui/display/Table.js +96 -0
  264. package/dist/ui/display/Table.js.map +1 -0
  265. package/dist/ui/display/card-css.d.ts +2 -0
  266. package/dist/ui/display/card-css.d.ts.map +1 -0
  267. package/dist/ui/display/card-css.generated.d.ts +2 -0
  268. package/dist/ui/display/card-css.generated.d.ts.map +1 -0
  269. package/dist/ui/display/card-css.generated.js +4 -0
  270. package/dist/ui/display/card-css.generated.js.map +1 -0
  271. package/dist/ui/display/card-css.js +5 -0
  272. package/dist/ui/display/card-css.js.map +1 -0
  273. package/dist/ui/display/chip-css.d.ts +2 -0
  274. package/dist/ui/display/chip-css.d.ts.map +1 -0
  275. package/dist/ui/display/chip-css.generated.d.ts +2 -0
  276. package/dist/ui/display/chip-css.generated.d.ts.map +1 -0
  277. package/dist/ui/display/chip-css.generated.js +4 -0
  278. package/dist/ui/display/chip-css.generated.js.map +1 -0
  279. package/dist/ui/display/chip-css.js +12 -0
  280. package/dist/ui/display/chip-css.js.map +1 -0
  281. package/dist/ui/display/code-viewer-css.d.ts +2 -0
  282. package/dist/ui/display/code-viewer-css.d.ts.map +1 -0
  283. package/dist/ui/display/code-viewer-css.generated.d.ts +2 -0
  284. package/dist/ui/display/code-viewer-css.generated.d.ts.map +1 -0
  285. package/dist/ui/display/code-viewer-css.generated.js +4 -0
  286. package/dist/ui/display/code-viewer-css.generated.js.map +1 -0
  287. package/dist/ui/display/code-viewer-css.js +3 -0
  288. package/dist/ui/display/code-viewer-css.js.map +1 -0
  289. package/dist/ui/display/code-viewer-lang.d.ts +15 -0
  290. package/dist/ui/display/code-viewer-lang.d.ts.map +1 -0
  291. package/dist/ui/display/code-viewer-lang.js +190 -0
  292. package/dist/ui/display/code-viewer-lang.js.map +1 -0
  293. package/dist/ui/display/code-viewer-theme.d.ts +5 -0
  294. package/dist/ui/display/code-viewer-theme.d.ts.map +1 -0
  295. package/dist/ui/display/code-viewer-theme.js +138 -0
  296. package/dist/ui/display/code-viewer-theme.js.map +1 -0
  297. package/dist/ui/display/flip-css.d.ts +2 -0
  298. package/dist/ui/display/flip-css.d.ts.map +1 -0
  299. package/dist/ui/display/flip-css.generated.d.ts +2 -0
  300. package/dist/ui/display/flip-css.generated.d.ts.map +1 -0
  301. package/dist/ui/display/flip-css.generated.js +4 -0
  302. package/dist/ui/display/flip-css.generated.js.map +1 -0
  303. package/dist/ui/display/flip-css.js +4 -0
  304. package/dist/ui/display/flip-css.js.map +1 -0
  305. package/dist/ui/display/hint-css.generated.d.ts +2 -0
  306. package/dist/ui/display/hint-css.generated.d.ts.map +1 -0
  307. package/dist/ui/display/hint-css.generated.js +4 -0
  308. package/dist/ui/display/hint-css.generated.js.map +1 -0
  309. package/dist/ui/display/marquee-css.d.ts +2 -0
  310. package/dist/ui/display/marquee-css.d.ts.map +1 -0
  311. package/dist/ui/display/marquee-css.generated.d.ts +2 -0
  312. package/dist/ui/display/marquee-css.generated.d.ts.map +1 -0
  313. package/dist/ui/display/marquee-css.generated.js +4 -0
  314. package/dist/ui/display/marquee-css.generated.js.map +1 -0
  315. package/dist/ui/display/marquee-css.js +4 -0
  316. package/dist/ui/display/marquee-css.js.map +1 -0
  317. package/dist/ui/display/section-head-css.generated.d.ts +2 -0
  318. package/dist/ui/display/section-head-css.generated.d.ts.map +1 -0
  319. package/dist/ui/display/section-head-css.generated.js +4 -0
  320. package/dist/ui/display/section-head-css.generated.js.map +1 -0
  321. package/dist/ui/display/surface-css.d.ts +2 -0
  322. package/dist/ui/display/surface-css.d.ts.map +1 -0
  323. package/dist/ui/display/surface-css.generated.d.ts +2 -0
  324. package/dist/ui/display/surface-css.generated.d.ts.map +1 -0
  325. package/dist/ui/display/surface-css.generated.js +4 -0
  326. package/dist/ui/display/surface-css.generated.js.map +1 -0
  327. package/dist/ui/display/surface-css.js +7 -0
  328. package/dist/ui/display/surface-css.js.map +1 -0
  329. package/dist/ui/display/table-css.generated.d.ts +2 -0
  330. package/dist/ui/display/table-css.generated.d.ts.map +1 -0
  331. package/dist/ui/display/table-css.generated.js +4 -0
  332. package/dist/ui/display/table-css.generated.js.map +1 -0
  333. package/dist/ui/display/table-logic.d.ts +110 -0
  334. package/dist/ui/display/table-logic.d.ts.map +1 -0
  335. package/dist/ui/display/table-logic.js +81 -0
  336. package/dist/ui/display/table-logic.js.map +1 -0
  337. package/dist/ui/display/table-plain-css.generated.d.ts +2 -0
  338. package/dist/ui/display/table-plain-css.generated.d.ts.map +1 -0
  339. package/dist/ui/display/table-plain-css.generated.js +4 -0
  340. package/dist/ui/display/table-plain-css.generated.js.map +1 -0
  341. package/dist/ui/display/table-shared.d.ts +101 -0
  342. package/dist/ui/display/table-shared.d.ts.map +1 -0
  343. package/dist/ui/display/table-shared.js +229 -0
  344. package/dist/ui/display/table-shared.js.map +1 -0
  345. package/dist/ui/feedback/AlertModal.d.ts +41 -0
  346. package/dist/ui/feedback/AlertModal.d.ts.map +1 -0
  347. package/dist/ui/feedback/AlertModal.js +45 -0
  348. package/dist/ui/feedback/AlertModal.js.map +1 -0
  349. package/dist/ui/feedback/ConfirmModal.d.ts +50 -0
  350. package/dist/ui/feedback/ConfirmModal.d.ts.map +1 -0
  351. package/dist/ui/feedback/ConfirmModal.js +47 -0
  352. package/dist/ui/feedback/ConfirmModal.js.map +1 -0
  353. package/dist/ui/feedback/Loader.d.ts +49 -0
  354. package/dist/ui/feedback/Loader.d.ts.map +1 -0
  355. package/dist/ui/feedback/Loader.js +79 -0
  356. package/dist/ui/feedback/Loader.js.map +1 -0
  357. package/dist/ui/feedback/LoaderBar.d.ts +38 -0
  358. package/dist/ui/feedback/LoaderBar.d.ts.map +1 -0
  359. package/dist/ui/feedback/LoaderBar.js +79 -0
  360. package/dist/ui/feedback/LoaderBar.js.map +1 -0
  361. package/dist/ui/feedback/Loading.d.ts +69 -0
  362. package/dist/ui/feedback/Loading.d.ts.map +1 -0
  363. package/dist/ui/feedback/Loading.js +164 -0
  364. package/dist/ui/feedback/Loading.js.map +1 -0
  365. package/dist/ui/feedback/Modal.d.ts +73 -0
  366. package/dist/ui/feedback/Modal.d.ts.map +1 -0
  367. package/dist/ui/feedback/Modal.js +83 -0
  368. package/dist/ui/feedback/Modal.js.map +1 -0
  369. package/dist/ui/feedback/SideSheet.d.ts +70 -0
  370. package/dist/ui/feedback/SideSheet.d.ts.map +1 -0
  371. package/dist/ui/feedback/SideSheet.js +130 -0
  372. package/dist/ui/feedback/SideSheet.js.map +1 -0
  373. package/dist/ui/feedback/Toast.d.ts +45 -0
  374. package/dist/ui/feedback/Toast.d.ts.map +1 -0
  375. package/dist/ui/feedback/Toast.js +225 -0
  376. package/dist/ui/feedback/Toast.js.map +1 -0
  377. package/dist/ui/feedback/feedback-css.d.ts +2 -0
  378. package/dist/ui/feedback/feedback-css.d.ts.map +1 -0
  379. package/dist/ui/feedback/feedback-css.generated.d.ts +2 -0
  380. package/dist/ui/feedback/feedback-css.generated.d.ts.map +1 -0
  381. package/dist/ui/feedback/feedback-css.generated.js +4 -0
  382. package/dist/ui/feedback/feedback-css.generated.js.map +1 -0
  383. package/dist/ui/feedback/feedback-css.js +4 -0
  384. package/dist/ui/feedback/feedback-css.js.map +1 -0
  385. package/dist/ui/feedback/host-toast.d.ts +23 -0
  386. package/dist/ui/feedback/host-toast.d.ts.map +1 -0
  387. package/dist/ui/feedback/host-toast.js +34 -0
  388. package/dist/ui/feedback/host-toast.js.map +1 -0
  389. package/dist/ui/feedback/loader-bar-art.d.ts +6 -0
  390. package/dist/ui/feedback/loader-bar-art.d.ts.map +1 -0
  391. package/dist/ui/feedback/loader-bar-art.js +6 -0
  392. package/dist/ui/feedback/loader-bar-art.js.map +1 -0
  393. package/dist/ui/feedback/loader-bar-css.generated.d.ts +2 -0
  394. package/dist/ui/feedback/loader-bar-css.generated.d.ts.map +1 -0
  395. package/dist/ui/feedback/loader-bar-css.generated.js +4 -0
  396. package/dist/ui/feedback/loader-bar-css.generated.js.map +1 -0
  397. package/dist/ui/feedback/loader-css.generated.d.ts +2 -0
  398. package/dist/ui/feedback/loader-css.generated.d.ts.map +1 -0
  399. package/dist/ui/feedback/loader-css.generated.js +4 -0
  400. package/dist/ui/feedback/loader-css.generated.js.map +1 -0
  401. package/dist/ui/feedback/loading-css.generated.d.ts +2 -0
  402. package/dist/ui/feedback/loading-css.generated.d.ts.map +1 -0
  403. package/dist/ui/feedback/loading-css.generated.js +4 -0
  404. package/dist/ui/feedback/loading-css.generated.js.map +1 -0
  405. package/dist/ui/feedback/loading-host.d.ts +49 -0
  406. package/dist/ui/feedback/loading-host.d.ts.map +1 -0
  407. package/dist/ui/feedback/loading-host.js +57 -0
  408. package/dist/ui/feedback/loading-host.js.map +1 -0
  409. package/dist/ui/feedback/modal-host.d.ts +51 -0
  410. package/dist/ui/feedback/modal-host.d.ts.map +1 -0
  411. package/dist/ui/feedback/modal-host.js +170 -0
  412. package/dist/ui/feedback/modal-host.js.map +1 -0
  413. package/dist/ui/feedback/side-sheet-css.d.ts +2 -0
  414. package/dist/ui/feedback/side-sheet-css.d.ts.map +1 -0
  415. package/dist/ui/feedback/side-sheet-css.generated.d.ts +2 -0
  416. package/dist/ui/feedback/side-sheet-css.generated.d.ts.map +1 -0
  417. package/dist/ui/feedback/side-sheet-css.generated.js +4 -0
  418. package/dist/ui/feedback/side-sheet-css.generated.js.map +1 -0
  419. package/dist/ui/feedback/side-sheet-css.js +2 -0
  420. package/dist/ui/feedback/side-sheet-css.js.map +1 -0
  421. package/dist/ui/feedback/toast-host.d.ts +24 -0
  422. package/dist/ui/feedback/toast-host.d.ts.map +1 -0
  423. package/dist/ui/feedback/toast-host.js +20 -0
  424. package/dist/ui/feedback/toast-host.js.map +1 -0
  425. package/dist/ui/index.d.ts +44 -44
  426. package/dist/ui/index.d.ts.map +1 -1
  427. package/dist/ui/index.js +44 -44
  428. package/dist/ui/index.js.map +1 -1
  429. package/dist/ui/infra/chevron.d.ts +22 -0
  430. package/dist/ui/infra/chevron.d.ts.map +1 -0
  431. package/dist/ui/infra/chevron.js +33 -0
  432. package/dist/ui/infra/chevron.js.map +1 -0
  433. package/dist/ui/infra/controls-css.d.ts +16 -0
  434. package/dist/ui/infra/controls-css.d.ts.map +1 -0
  435. package/dist/ui/infra/controls-css.js +26 -0
  436. package/dist/ui/infra/controls-css.js.map +1 -0
  437. package/dist/ui/infra/css.d.ts +35 -0
  438. package/dist/ui/infra/css.d.ts.map +1 -0
  439. package/dist/ui/infra/css.js +52 -0
  440. package/dist/ui/infra/css.js.map +1 -0
  441. package/dist/ui/infra/host-data.d.ts +119 -0
  442. package/dist/ui/infra/host-data.d.ts.map +1 -0
  443. package/dist/ui/infra/host-data.js +122 -0
  444. package/dist/ui/infra/host-data.js.map +1 -0
  445. package/dist/ui/infra/locale.d.ts +4 -0
  446. package/dist/ui/infra/locale.d.ts.map +1 -0
  447. package/dist/ui/infra/locale.js +17 -0
  448. package/dist/ui/infra/locale.js.map +1 -0
  449. package/dist/ui/infra/overlay-css.d.ts +2 -0
  450. package/dist/ui/infra/overlay-css.d.ts.map +1 -0
  451. package/dist/ui/infra/overlay-css.generated.d.ts +2 -0
  452. package/dist/ui/infra/overlay-css.generated.d.ts.map +1 -0
  453. package/dist/ui/infra/overlay-css.generated.js +4 -0
  454. package/dist/ui/infra/overlay-css.generated.js.map +1 -0
  455. package/dist/ui/infra/overlay-css.js +2 -0
  456. package/dist/ui/infra/overlay-css.js.map +1 -0
  457. package/dist/ui/infra/overlay.d.ts +62 -0
  458. package/dist/ui/infra/overlay.d.ts.map +1 -0
  459. package/dist/ui/infra/overlay.js +94 -0
  460. package/dist/ui/infra/overlay.js.map +1 -0
  461. package/dist/ui/infra/panel-css.d.ts +2 -0
  462. package/dist/ui/infra/panel-css.d.ts.map +1 -0
  463. package/dist/ui/infra/panel-css.generated.d.ts +2 -0
  464. package/dist/ui/infra/panel-css.generated.d.ts.map +1 -0
  465. package/dist/ui/infra/panel-css.generated.js +4 -0
  466. package/dist/ui/infra/panel-css.generated.js.map +1 -0
  467. package/dist/ui/infra/panel-css.js +2 -0
  468. package/dist/ui/infra/panel-css.js.map +1 -0
  469. package/dist/ui/infra/panel.d.ts +41 -0
  470. package/dist/ui/infra/panel.d.ts.map +1 -0
  471. package/dist/ui/infra/panel.js +37 -0
  472. package/dist/ui/infra/panel.js.map +1 -0
  473. package/dist/ui/infra/side-panel-css.d.ts +2 -0
  474. package/dist/ui/infra/side-panel-css.d.ts.map +1 -0
  475. package/dist/ui/infra/side-panel-css.generated.d.ts +2 -0
  476. package/dist/ui/infra/side-panel-css.generated.d.ts.map +1 -0
  477. package/dist/ui/infra/side-panel-css.generated.js +4 -0
  478. package/dist/ui/infra/side-panel-css.generated.js.map +1 -0
  479. package/dist/ui/infra/side-panel-css.js +2 -0
  480. package/dist/ui/infra/side-panel-css.js.map +1 -0
  481. package/dist/ui/infra/thenable.d.ts +9 -0
  482. package/dist/ui/infra/thenable.d.ts.map +1 -0
  483. package/dist/ui/infra/thenable.js +15 -0
  484. package/dist/ui/infra/thenable.js.map +1 -0
  485. package/dist/ui/infra/ticker.d.ts +8 -0
  486. package/dist/ui/infra/ticker.d.ts.map +1 -0
  487. package/dist/ui/infra/ticker.js +49 -0
  488. package/dist/ui/infra/ticker.js.map +1 -0
  489. package/dist/ui/infra/tooltip.d.ts +29 -0
  490. package/dist/ui/infra/tooltip.d.ts.map +1 -0
  491. package/dist/ui/infra/tooltip.js +10 -0
  492. package/dist/ui/infra/tooltip.js.map +1 -0
  493. package/dist/ui/inputs/Checkbox.d.ts +24 -0
  494. package/dist/ui/inputs/Checkbox.d.ts.map +1 -0
  495. package/dist/ui/inputs/Checkbox.js +35 -0
  496. package/dist/ui/inputs/Checkbox.js.map +1 -0
  497. package/dist/ui/inputs/DateTimePicker.d.ts +45 -0
  498. package/dist/ui/inputs/DateTimePicker.d.ts.map +1 -0
  499. package/dist/ui/inputs/DateTimePicker.js +462 -0
  500. package/dist/ui/inputs/DateTimePicker.js.map +1 -0
  501. package/dist/ui/inputs/Field.d.ts +125 -0
  502. package/dist/ui/inputs/Field.d.ts.map +1 -0
  503. package/dist/ui/inputs/Field.js +175 -0
  504. package/dist/ui/inputs/Field.js.map +1 -0
  505. package/dist/ui/inputs/InputGroup.d.ts +91 -0
  506. package/dist/ui/inputs/InputGroup.d.ts.map +1 -0
  507. package/dist/ui/inputs/InputGroup.js +125 -0
  508. package/dist/ui/inputs/InputGroup.js.map +1 -0
  509. package/dist/ui/inputs/ModelPicker.d.ts +48 -0
  510. package/dist/ui/inputs/ModelPicker.d.ts.map +1 -0
  511. package/dist/ui/inputs/ModelPicker.js +101 -0
  512. package/dist/ui/inputs/ModelPicker.js.map +1 -0
  513. package/dist/ui/inputs/Picker.d.ts +56 -0
  514. package/dist/ui/inputs/Picker.d.ts.map +1 -0
  515. package/dist/ui/inputs/Picker.js +244 -0
  516. package/dist/ui/inputs/Picker.js.map +1 -0
  517. package/dist/ui/inputs/Segmented.d.ts +99 -0
  518. package/dist/ui/inputs/Segmented.d.ts.map +1 -0
  519. package/dist/ui/inputs/Segmented.js +135 -0
  520. package/dist/ui/inputs/Segmented.js.map +1 -0
  521. package/dist/ui/inputs/Textarea.d.ts +36 -0
  522. package/dist/ui/inputs/Textarea.d.ts.map +1 -0
  523. package/dist/ui/inputs/Textarea.js +35 -0
  524. package/dist/ui/inputs/Textarea.js.map +1 -0
  525. package/dist/ui/inputs/WorkspacePicker.d.ts +35 -0
  526. package/dist/ui/inputs/WorkspacePicker.d.ts.map +1 -0
  527. package/dist/ui/inputs/WorkspacePicker.js +39 -0
  528. package/dist/ui/inputs/WorkspacePicker.js.map +1 -0
  529. package/dist/ui/inputs/datetime-css.generated.d.ts +2 -0
  530. package/dist/ui/inputs/datetime-css.generated.d.ts.map +1 -0
  531. package/dist/ui/inputs/datetime-css.generated.js +4 -0
  532. package/dist/ui/inputs/datetime-css.generated.js.map +1 -0
  533. package/dist/ui/inputs/datetime-logic.d.ts +102 -0
  534. package/dist/ui/inputs/datetime-logic.d.ts.map +1 -0
  535. package/dist/ui/inputs/datetime-logic.js +200 -0
  536. package/dist/ui/inputs/datetime-logic.js.map +1 -0
  537. package/dist/ui/inputs/field-css.generated.d.ts +2 -0
  538. package/dist/ui/inputs/field-css.generated.d.ts.map +1 -0
  539. package/dist/ui/inputs/field-css.generated.js +4 -0
  540. package/dist/ui/inputs/field-css.generated.js.map +1 -0
  541. package/dist/ui/inputs/input-group-css.generated.d.ts +2 -0
  542. package/dist/ui/inputs/input-group-css.generated.d.ts.map +1 -0
  543. package/dist/ui/inputs/input-group-css.generated.js +4 -0
  544. package/dist/ui/inputs/input-group-css.generated.js.map +1 -0
  545. package/dist/ui/inputs/picker-css.d.ts +2 -0
  546. package/dist/ui/inputs/picker-css.d.ts.map +1 -0
  547. package/dist/ui/inputs/picker-css.generated.d.ts +2 -0
  548. package/dist/ui/inputs/picker-css.generated.d.ts.map +1 -0
  549. package/dist/ui/inputs/picker-css.generated.js +4 -0
  550. package/dist/ui/inputs/picker-css.generated.js.map +1 -0
  551. package/dist/ui/inputs/picker-css.js +4 -0
  552. package/dist/ui/inputs/picker-css.js.map +1 -0
  553. package/dist/ui/inputs/picker-icons.d.ts +12 -0
  554. package/dist/ui/inputs/picker-icons.d.ts.map +1 -0
  555. package/dist/ui/inputs/picker-icons.js +29 -0
  556. package/dist/ui/inputs/picker-icons.js.map +1 -0
  557. package/dist/ui/inputs/picker-logic.d.ts +33 -0
  558. package/dist/ui/inputs/picker-logic.d.ts.map +1 -0
  559. package/dist/ui/inputs/picker-logic.js +68 -0
  560. package/dist/ui/inputs/picker-logic.js.map +1 -0
  561. package/dist/ui/inputs/segmented-css.generated.d.ts +2 -0
  562. package/dist/ui/inputs/segmented-css.generated.d.ts.map +1 -0
  563. package/dist/ui/inputs/segmented-css.generated.js +4 -0
  564. package/dist/ui/inputs/segmented-css.generated.js.map +1 -0
  565. package/dist/ui/layout/PanelDock.d.ts +132 -0
  566. package/dist/ui/layout/PanelDock.d.ts.map +1 -0
  567. package/dist/ui/layout/PanelDock.js +390 -0
  568. package/dist/ui/layout/PanelDock.js.map +1 -0
  569. package/dist/ui/layout/QuickToolbar.d.ts +54 -0
  570. package/dist/ui/layout/QuickToolbar.d.ts.map +1 -0
  571. package/dist/ui/layout/QuickToolbar.js +254 -0
  572. package/dist/ui/layout/QuickToolbar.js.map +1 -0
  573. package/dist/ui/layout/SplitGroup.d.ts +37 -0
  574. package/dist/ui/layout/SplitGroup.d.ts.map +1 -0
  575. package/dist/ui/layout/SplitGroup.js +36 -0
  576. package/dist/ui/layout/SplitGroup.js.map +1 -0
  577. package/dist/ui/layout/panel-dock-css.d.ts +2 -0
  578. package/dist/ui/layout/panel-dock-css.d.ts.map +1 -0
  579. package/dist/ui/layout/panel-dock-css.generated.d.ts +2 -0
  580. package/dist/ui/layout/panel-dock-css.generated.d.ts.map +1 -0
  581. package/dist/ui/layout/panel-dock-css.generated.js +4 -0
  582. package/dist/ui/layout/panel-dock-css.generated.js.map +1 -0
  583. package/dist/ui/layout/panel-dock-css.js +4 -0
  584. package/dist/ui/layout/panel-dock-css.js.map +1 -0
  585. package/dist/ui/layout/panel-dock-logic.d.ts +67 -0
  586. package/dist/ui/layout/panel-dock-logic.d.ts.map +1 -0
  587. package/dist/ui/layout/panel-dock-logic.js +110 -0
  588. package/dist/ui/layout/panel-dock-logic.js.map +1 -0
  589. package/dist/ui/layout/quick-toolbar-css.generated.d.ts +2 -0
  590. package/dist/ui/layout/quick-toolbar-css.generated.d.ts.map +1 -0
  591. package/dist/ui/layout/quick-toolbar-css.generated.js +4 -0
  592. package/dist/ui/layout/quick-toolbar-css.generated.js.map +1 -0
  593. package/dist/ui/layout/quick-toolbar-logic.d.ts +76 -0
  594. package/dist/ui/layout/quick-toolbar-logic.d.ts.map +1 -0
  595. package/dist/ui/layout/quick-toolbar-logic.js +40 -0
  596. package/dist/ui/layout/quick-toolbar-logic.js.map +1 -0
  597. package/dist/ui/layout/resizer.d.ts +29 -0
  598. package/dist/ui/layout/resizer.d.ts.map +1 -0
  599. package/dist/ui/layout/resizer.js +42 -0
  600. package/dist/ui/layout/resizer.js.map +1 -0
  601. package/dist/ui/layout/split-group-css.generated.d.ts +2 -0
  602. package/dist/ui/layout/split-group-css.generated.d.ts.map +1 -0
  603. package/dist/ui/layout/split-group-css.generated.js +4 -0
  604. package/dist/ui/layout/split-group-css.generated.js.map +1 -0
  605. package/dist/ui/navigation/Pagination.d.ts +59 -0
  606. package/dist/ui/navigation/Pagination.d.ts.map +1 -0
  607. package/dist/ui/navigation/Pagination.js +112 -0
  608. package/dist/ui/navigation/Pagination.js.map +1 -0
  609. package/dist/ui/navigation/pagination-css.generated.d.ts +2 -0
  610. package/dist/ui/navigation/pagination-css.generated.d.ts.map +1 -0
  611. package/dist/ui/navigation/pagination-css.generated.js +4 -0
  612. package/dist/ui/navigation/pagination-css.generated.js.map +1 -0
  613. package/dist/ui/navigation/pagination-logic.d.ts +36 -0
  614. package/dist/ui/navigation/pagination-logic.d.ts.map +1 -0
  615. package/dist/ui/navigation/pagination-logic.js +73 -0
  616. package/dist/ui/navigation/pagination-logic.js.map +1 -0
  617. package/dist/ui/official.js +2 -2
  618. package/dist/ui/official.js.map +1 -1
  619. package/dist/utils/i18n.d.ts +2 -2
  620. package/dist/utils/i18n.d.ts.map +1 -1
  621. package/dist/utils/i18n.js +1 -1
  622. package/dist/utils/i18n.js.map +1 -1
  623. package/docs/README.md +1 -1
  624. package/docs/design/architecture.md +9 -8
  625. package/docs/design/copywriting.md +23 -0
  626. package/docs/design/external/dsh-host.md +5 -5
  627. package/docs/design/structure.md +132 -128
  628. package/docs/design/style.md +5 -5
  629. package/docs/help/utils.doc.ts +3 -3
  630. package/docs/help/utils.md +3 -3
  631. package/docs/requirements.md +30 -290
  632. package/package.json +1 -1
@@ -0,0 +1,4 @@
1
+ // ⚠️ 生成物,勿手改。真源 = src/ui/feedback/loader.css
2
+ // 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
3
+ export const LOADER_CSS = "/* ── Loader:统一的加载动画图标(无背景 / 无定位 / 颜色跟随 currentColor)────────\n 形态 × 尺寸两轴正交:形态管几何与动画;尺寸档只改 width / height,几何按\n viewBox=\"0 0 24 24\" 等比缩放 —— 一套几何吃五档,12px 时描边即 1.5px、48px 时 6px,\n 视觉重量一致,不用逐个尺寸换算 calc。\n\n 边界:本控件**只管图标本身**。背景 / 圆角 / 内距 / 阴影 / 定位(fixed、居中、漂浮)\n 一律归调用方 —— 套 Chip、套 Card,或自己包一个 div。 */\n\n.dshpc-loader { display: inline-block; flex: none; vertical-align: middle; line-height: 0; color: inherit; }\n\n.dshpc-loader--xs { width: 12px; height: 12px; }\n.dshpc-loader--sm { width: 16px; height: 16px; }\n.dshpc-loader--md { width: 24px; height: 24px; }\n.dshpc-loader--lg { width: 32px; height: 32px; }\n.dshpc-loader--xl { width: 48px; height: 48px; }\n\n/* 形态一 ring:开口弧整体旋转。必须走 SVG 矢量弧 —— 次像素边框画圆在 12px 下会被\n 抗锯齿拉毛、看着像圆角方(2026-10-20 真机实测,曾被误判成 border-radius 被覆盖)。 */\n.dshpc-loader--ring { animation: dshpc-loader-rotate .8s linear infinite; }\n@keyframes dshpc-loader-rotate { to { transform: rotate(360deg) } }\n\n/* 形态二 blocks:三个方块依次脉动放大。\n transform-box: fill-box 是 SVG 子元素做 CSS transform 的必要条件 —— 否则 origin\n 落在 viewBox 原点,节点会绕着左上角飞出去。 */\n.dshpc-loader__node { transform-box: fill-box; transform-origin: center; }\n.dshpc-loader--blocks .dshpc-loader__node { animation: dshpc-loader-blink 1.2s ease-in-out infinite; }\n.dshpc-loader__node:nth-child(2) { animation-delay: .15s; }\n.dshpc-loader__node:nth-child(3) { animation-delay: .3s; }\n@keyframes dshpc-loader-blink {\n 0%, 80%, 100% { opacity: .25; transform: scale(.8) }\n 40% { opacity: 1; transform: scale(1) }\n}\n\n/* 降低动效:停在「全部可见、实体大小」,而不是停在动画中途的半透明小点。 */\n@media (prefers-reduced-motion: reduce) {\n .dshpc-loader--ring { animation: none; }\n .dshpc-loader__node { animation: none; opacity: 1; transform: none; }\n}\n";
4
+ //# sourceMappingURL=loader-css.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader-css.generated.js","sourceRoot":"","sources":["../../../src/ui/feedback/loader-css.generated.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qEAAqE;AACrE,MAAM,CAAC,MAAM,UAAU,GAAG,wrDAAwrD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const LOADING_CSS = "\n/* \u8FD0\u884C\u4E2D / loading \u7684\u6D3B\u52A8\u6307\u793A\uFF1A\u4E09\u4E2A\u5C0F\u65B9\u5757\u4F9D\u6B21\u8109\u52A8\u3002 */\n@keyframes dshpc-run-block { 0%, 80%, 100% { opacity: 0.25; transform: scale(0.8) } 40% { opacity: 1; transform: scale(1) } }\n.dshpc-run-blocks { display: inline-flex; align-items: center; gap: 3px; }\n.dshpc-run-blocks > i { width: 5px; height: 5px; border-radius: 1px; background: currentColor; animation: dshpc-run-block 1.2s ease-in-out infinite; }\n.dshpc-run-blocks > i:nth-child(2) { animation-delay: 0.15s; }\n.dshpc-run-blocks > i:nth-child(3) { animation-delay: 0.3s; }\n@media (prefers-reduced-motion: reduce) { .dshpc-run-blocks > i { animation: none; opacity: 1; } }\n\n/* \u2500\u2500 \u52A0\u8F7D\u63D0\u793A\uFF08LoadingToast / LoadingBlock / showLoading\uFF09\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n \u4E24\u79CD\u6837\u5F0F\u7684\u8868\u9762\u7EDF\u4E00\u8D70 token\uFF082026-11-03\uFF1A\u539F\u6765\u5199\u6B7B #f4f4f5/#18181b \u518D\u8865\u4E00\u6BB5\u6697\u8272\u8986\u76D6\uFF0C\n \u7B49\u4E8E\u81EA\u5DF1\u9020\u7B2C\u4E8C\u5957\u4E3B\u9898\uFF1B\u73B0\u5728\u5E95\u8272/\u5B57\u8272/\u9634\u5F71\u5168\u4ECE var(--dshpc-*) \u6765\uFF0C\u6697\u8272\u81EA\u52A8\u8DDF\u968F\uFF09\u3002\n \u5361\u91CC\u7684\u8F6C\u5708\u56FE\u6807\u4E0D\u81EA\u7ED8\uFF1A\u590D\u7528 Loader\uFF08size sm / md\uFF09\uFF0C\u73AF\u7684\u753B\u6CD5\u4E0E\u52A8\u753B\u53EA\u6709 controls/loader.css \u4E00\u4EFD\u3002 */\n\n/* \u6837\u5F0F\u4E00\uFF1A\u6A2A\u6392 toast \u5361\uFF08\u56FE\u6807\u5728\u5DE6\u3001\u6587\u5B57\u5728\u53F3\uFF09\uFF0C\u4E0E notify \u7684 info \u5361\u540C\u5C3A\u5BF8\u540C\u8272\u3002 */\n.dshpc-loading-toast {\n display: inline-flex; align-items: center; gap: 10px;\n /* \u4E0D\u5B66 notify \u56FA\u5B9A 320 \u5BBD\uFF1A\u8FD9\u5F20\u5361\u4E5F\u5E38\u88AB\u585E\u8FDB\u8868\u683C / \u7A84\u680F\u91CC\uFF0C\u5BBD\u5EA6\u968F\u5185\u5BB9\u8D70\u3002\n shortcut: \u4E0B\u9650 250px\uFF0C\u8981\u66F4\u5BBD / \u66F4\u7A84\u5C31\u6539\u8FD9\u4E00\u5904\u3002 */\n min-width: 250px; min-height: 48px; padding: 12px 16px; box-sizing: border-box;\n border-radius: var(--dshpc-radius-lg); box-shadow: var(--dshpc-shadow-2);\n background: var(--dshpc-surface-1); color: var(--dshpc-fg);\n font-size: var(--dshpc-font-lg); line-height: var(--dshpc-line-lg);\n}\n\n/* \u6837\u5F0F\u4E8C\uFF1A\u65B9\u5757\u5361\uFF08\u8F6C\u5708\u5728\u4E0A\u3001\u6587\u5B57\u5728\u4E0B\uFF09\uFF0C\u5185\u8DDD\u66F4\u5927\u3002 */\n.dshpc-loading-block {\n display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;\n min-width: 132px; min-height: 132px; padding: 24px; box-sizing: border-box;\n border-radius: var(--dshpc-radius-md); box-shadow: var(--dshpc-shadow-2);\n background: var(--dshpc-surface-1); color: var(--dshpc-fg);\n font-size: var(--dshpc-font-md); line-height: var(--dshpc-line-md);\n}\n\n/* \u5168\u5C40\u6D6E\u5C42\uFF1A\u5C45\u4E2D\u3001\u4E0D\u6321\u70B9\u51FB\uFF08\u906E\u7F69\u5C42\u5355\u72EC\u4E00\u4E2A div \u624D\u6321\uFF09\u3002\n \u4E0E Modal \u906E\u7F69\u540C\u4E00\u5957\u8BA9\u4F4D\u53E3\u5F84\uFF1A\u53F3\u8FB9\u754C\u8BFB --dshpc-page-inset-right\u3002 */\n.dshpc-loading-overlay {\n position: fixed; inset: 0 var(--dshpc-page-inset-right, 0px) 0 0; z-index: var(--dshpc-z-modal);\n display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;\n padding: 24px; box-sizing: border-box; pointer-events: none;\n}\n/* \u4E03\u5411\u5B9A\u4F4D\uFF08\u4E0E Toast \u7684\u516D\u5411\u540C\u540D + \u6B63\u4E2D\uFF09\uFF1A\u9ED8\u8BA4 bottom-center\uFF0C\u4E0E Sonner \u63D0\u793A\u540C\u5C4F\u4F4D\u3002 */\n.dshpc-loading-overlay--top-left { align-items: flex-start; justify-content: flex-start; }\n.dshpc-loading-overlay--top-center { justify-content: flex-start; }\n.dshpc-loading-overlay--top-right { align-items: flex-end; justify-content: flex-start; }\n.dshpc-loading-overlay--bottom-left { align-items: flex-start; justify-content: flex-end; }\n.dshpc-loading-overlay--bottom-center { justify-content: flex-end; }\n.dshpc-loading-overlay--bottom-right { align-items: flex-end; justify-content: flex-end; }\n.dshpc-loading-overlay__mask { position: absolute; inset: 0; pointer-events: auto; }\n";
2
+ //# sourceMappingURL=loading-css.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-css.generated.d.ts","sourceRoot":"","sources":["../../../src/ui/feedback/loading-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,4wIAA42F,CAAA"}
@@ -0,0 +1,4 @@
1
+ // ⚠️ 生成物,勿手改。真源 = src/ui/feedback/loading.css
2
+ // 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
3
+ export const LOADING_CSS = "\n/* 运行中 / loading 的活动指示:三个小方块依次脉动。 */\n@keyframes dshpc-run-block { 0%, 80%, 100% { opacity: 0.25; transform: scale(0.8) } 40% { opacity: 1; transform: scale(1) } }\n.dshpc-run-blocks { display: inline-flex; align-items: center; gap: 3px; }\n.dshpc-run-blocks > i { width: 5px; height: 5px; border-radius: 1px; background: currentColor; animation: dshpc-run-block 1.2s ease-in-out infinite; }\n.dshpc-run-blocks > i:nth-child(2) { animation-delay: 0.15s; }\n.dshpc-run-blocks > i:nth-child(3) { animation-delay: 0.3s; }\n@media (prefers-reduced-motion: reduce) { .dshpc-run-blocks > i { animation: none; opacity: 1; } }\n\n/* ── 加载提示(LoadingToast / LoadingBlock / showLoading)───────────────────\n 两种样式的表面统一走 token(2026-11-03:原来写死 #f4f4f5/#18181b 再补一段暗色覆盖,\n 等于自己造第二套主题;现在底色/字色/阴影全从 var(--dshpc-*) 来,暗色自动跟随)。\n 卡里的转圈图标不自绘:复用 Loader(size sm / md),环的画法与动画只有 controls/loader.css 一份。 */\n\n/* 样式一:横排 toast 卡(图标在左、文字在右),与 notify 的 info 卡同尺寸同色。 */\n.dshpc-loading-toast {\n display: inline-flex; align-items: center; gap: 10px;\n /* 不学 notify 固定 320 宽:这张卡也常被塞进表格 / 窄栏里,宽度随内容走。\n shortcut: 下限 250px,要更宽 / 更窄就改这一处。 */\n min-width: 250px; min-height: 48px; padding: 12px 16px; box-sizing: border-box;\n border-radius: var(--dshpc-radius-lg); box-shadow: var(--dshpc-shadow-2);\n background: var(--dshpc-surface-1); color: var(--dshpc-fg);\n font-size: var(--dshpc-font-lg); line-height: var(--dshpc-line-lg);\n}\n\n/* 样式二:方块卡(转圈在上、文字在下),内距更大。 */\n.dshpc-loading-block {\n display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;\n min-width: 132px; min-height: 132px; padding: 24px; box-sizing: border-box;\n border-radius: var(--dshpc-radius-md); box-shadow: var(--dshpc-shadow-2);\n background: var(--dshpc-surface-1); color: var(--dshpc-fg);\n font-size: var(--dshpc-font-md); line-height: var(--dshpc-line-md);\n}\n\n/* 全局浮层:居中、不挡点击(遮罩层单独一个 div 才挡)。\n 与 Modal 遮罩同一套让位口径:右边界读 --dshpc-page-inset-right。 */\n.dshpc-loading-overlay {\n position: fixed; inset: 0 var(--dshpc-page-inset-right, 0px) 0 0; z-index: var(--dshpc-z-modal);\n display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;\n padding: 24px; box-sizing: border-box; pointer-events: none;\n}\n/* 七向定位(与 Toast 的六向同名 + 正中):默认 bottom-center,与 Sonner 提示同屏位。 */\n.dshpc-loading-overlay--top-left { align-items: flex-start; justify-content: flex-start; }\n.dshpc-loading-overlay--top-center { justify-content: flex-start; }\n.dshpc-loading-overlay--top-right { align-items: flex-end; justify-content: flex-start; }\n.dshpc-loading-overlay--bottom-left { align-items: flex-start; justify-content: flex-end; }\n.dshpc-loading-overlay--bottom-center { justify-content: flex-end; }\n.dshpc-loading-overlay--bottom-right { align-items: flex-end; justify-content: flex-end; }\n.dshpc-loading-overlay__mask { position: absolute; inset: 0; pointer-events: auto; }\n";
4
+ //# sourceMappingURL=loading-css.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-css.generated.js","sourceRoot":"","sources":["../../../src/ui/feedback/loading-css.generated.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,qEAAqE;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG,y2FAAy2F,CAAA"}
@@ -0,0 +1,49 @@
1
+ import type { Translate } from '../../utils/i18n.js';
2
+ /** 全局注册表键:Symbol.for 跨 bundle 副本天然共享同一个符号。 */
3
+ export declare const LOADING_HOST_KEY: unique symbol;
4
+ /** 全局单例:已注册则直接返回(不触发 create),否则建一个并注册。 */
5
+ export declare function claimLoadingHost<T>(create: () => T): T;
6
+ /** 样式一 `toast` = 横排卡;样式二 `block` = 方块卡。 */
7
+ export type LoadingVariant = 'toast' | 'block';
8
+ /** 七向定位:与 Toast 的六向同名,另加 `center`。默认 `bottom-center`。 */
9
+ export type LoadingPosition = 'top-left' | 'top-center' | 'top-right' | 'center' | 'bottom-left' | 'bottom-center' | 'bottom-right';
10
+ /** 浮层定位类名(`center` 走基础规则,不需要修饰类)。 */
11
+ /**
12
+ * 为什么这里要自注入 `LOADING_CSS`:拿这个类名的调用方通常是**自己画**浮层
13
+ * (否则直接渲染 `Loading` 组件即可),那时 core 里没有任何组件被渲染 ⇒ 没人登记这份 CSS
14
+ * ⇒ 浮层会裸奔。类名出口处登记一次,任何拿类名自绘的路径都有样式(幂等)。
15
+ */
16
+ export declare function loadingOverlayClass(position: LoadingPosition): string;
17
+ export interface LoadingRequest {
18
+ /** 文案;不传走内置字典 `loadingDefault`(数据加载中 / Loading)。 */
19
+ text?: string;
20
+ variant: LoadingVariant;
21
+ position: LoadingPosition;
22
+ /** 是否铺全屏遮罩(挡住后面的一切点击),默认 false。 */
23
+ mask: boolean;
24
+ /** 遮罩浓度 0–1,默认 0(全透明但仍挡点击)。 */
25
+ maskOpacity: number;
26
+ /** 文案翻译函数,默认用内置字典。 */
27
+ translate?: Translate;
28
+ }
29
+ export interface LoadingHandle {
30
+ /** 关掉这一次加载提示(重复调用无副作用)。 */
31
+ close(): void;
32
+ }
33
+ export interface LoadingHost {
34
+ show(request: LoadingRequest): LoadingHandle;
35
+ }
36
+ export interface LoadingSlotState {
37
+ id: number;
38
+ request: LoadingRequest;
39
+ }
40
+ /**
41
+ * 全局**只有一个槽位**:任何一次 `show` 都顶掉上一条,屏幕上永远最多一张加载卡
42
+ * (N 种样式、N 个插件、连点多少次都一样)。被顶掉那次的句柄再 `close()` 是空操作,
43
+ * 不会误关后一张。
44
+ */
45
+ export declare function createLoadingSlot(): {
46
+ current(): LoadingSlotState | null;
47
+ show(request: LoadingRequest): LoadingHandle;
48
+ };
49
+ //# sourceMappingURL=loading-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-host.d.ts","sourceRoot":"","sources":["../../../src/ui/feedback/loading-host.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAIpD,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,eAA6C,CAAA;AAE1E,0CAA0C;AAC1C,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAOtD;AAED,2CAA2C;AAC3C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,CAAA;AAE9C,yDAAyD;AACzD,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,aAAa,GACb,eAAe,GACf,cAAc,CAAA;AAElB,qCAAqC;AACrC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAGrE;AAED,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,cAAc,CAAA;IACvB,QAAQ,EAAE,eAAe,CAAA;IACzB,mCAAmC;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,sBAAsB;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,KAAK,IAAI,IAAI,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAAA;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,cAAc,CAAA;CACxB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI;IACnC,OAAO,IAAI,gBAAgB,GAAG,IAAI,CAAA;IAClC,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAAA;CAC7C,CAmBA"}
@@ -0,0 +1,57 @@
1
+ // 跨副本 loading 宿主(多插件同页只留一处加载提示)。
2
+ //
3
+ // core 被打进每个插件的 bundle,模块级状态各副本一份 ⇒ 若各自建浮层,两个空间同时加载
4
+ // 会在两处各冒一个。这里与 toast-host 同一手法:globalThis 上用 Symbol.for 的单例,
5
+ // 先到场的副本建浮层,其余副本把请求交给它 —— 所有调用落在**同一个屏幕位置**。
6
+ // 纯逻辑、零 DOM / React 依赖 ⇒ Node 单测可直接断言单例语义。
7
+ import { ensureComponentStyles } from '../infra/css.js';
8
+ import { LOADING_CSS } from '../infra/controls-css.js';
9
+ /** 全局注册表键:Symbol.for 跨 bundle 副本天然共享同一个符号。 */
10
+ export const LOADING_HOST_KEY = Symbol.for('dsh-plugin-core/loading-host');
11
+ /** 全局单例:已注册则直接返回(不触发 create),否则建一个并注册。 */
12
+ export function claimLoadingHost(create) {
13
+ const g = globalThis;
14
+ const existing = g[LOADING_HOST_KEY];
15
+ if (existing !== undefined)
16
+ return existing;
17
+ const created = create();
18
+ g[LOADING_HOST_KEY] = created;
19
+ return created;
20
+ }
21
+ /** 浮层定位类名(`center` 走基础规则,不需要修饰类)。 */
22
+ /**
23
+ * 为什么这里要自注入 `LOADING_CSS`:拿这个类名的调用方通常是**自己画**浮层
24
+ * (否则直接渲染 `Loading` 组件即可),那时 core 里没有任何组件被渲染 ⇒ 没人登记这份 CSS
25
+ * ⇒ 浮层会裸奔。类名出口处登记一次,任何拿类名自绘的路径都有样式(幂等)。
26
+ */
27
+ export function loadingOverlayClass(position) {
28
+ ensureComponentStyles('loading', LOADING_CSS);
29
+ return `dshpc-loading-overlay dshpc-loading-overlay--${position}`;
30
+ }
31
+ /**
32
+ * 全局**只有一个槽位**:任何一次 `show` 都顶掉上一条,屏幕上永远最多一张加载卡
33
+ * (N 种样式、N 个插件、连点多少次都一样)。被顶掉那次的句柄再 `close()` 是空操作,
34
+ * 不会误关后一张。
35
+ */
36
+ export function createLoadingSlot() {
37
+ let seq = 0;
38
+ let current = null;
39
+ return {
40
+ current: () => current,
41
+ show(request) {
42
+ const id = ++seq;
43
+ current = { id, request };
44
+ let closed = false;
45
+ return {
46
+ close() {
47
+ // 已经不是自己的那一次了 ⇒ 不动(否则先前的定时器会把后一张关掉)。
48
+ if (closed || current?.id !== id)
49
+ return;
50
+ closed = true;
51
+ current = null;
52
+ },
53
+ };
54
+ },
55
+ };
56
+ }
57
+ //# sourceMappingURL=loading-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-host.js","sourceRoot":"","sources":["../../../src/ui/feedback/loading-host.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,oDAAoD;AACpD,6DAA6D;AAC7D,6CAA6C;AAC7C,2CAA2C;AAG3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;AAE1E,0CAA0C;AAC1C,MAAM,UAAU,gBAAgB,CAAI,MAAe;IACjD,MAAM,CAAC,GAAG,UAA2C,CAAA;IACrD,MAAM,QAAQ,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAA;IACpC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IAC3C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAA;IACxB,CAAC,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAA;IAC7B,OAAO,OAAO,CAAA;AAChB,CAAC;AAeD,qCAAqC;AACrC;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAyB;IAC3D,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAC7C,OAAO,gDAAgD,QAAQ,EAAE,CAAA;AACnE,CAAC;AA6BD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAI/B,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IAAI,OAAO,GAA4B,IAAI,CAAA;IAC3C,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO;QACtB,IAAI,CAAC,OAAuB;YAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAA;YAChB,OAAO,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAA;YACzB,IAAI,MAAM,GAAG,KAAK,CAAA;YAClB,OAAO;gBACL,KAAK;oBACH,qCAAqC;oBACrC,IAAI,MAAM,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE;wBAAE,OAAM;oBACxC,MAAM,GAAG,IAAI,CAAA;oBACb,OAAO,GAAG,IAAI,CAAA;gBAChB,CAAC;aACF,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,51 @@
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
+ /** 命令式弹窗的遥控器:异步期间自己决定锁不锁整框 —— 与按钮转圈(loading)互不干扰。 */
21
+ export interface DialogControl {
22
+ /** 锁死整框(true)/ 解锁(false):所有控件点不到、Tab 进不去、也关不掉。框已关掉后再调是空操作。 */
23
+ setLocked(locked: boolean): void;
24
+ }
25
+ /** 点按钮的回调:返回 thenable 即视为「消费方要做异步处理」;`ctl` 用来在跑的过程中锁 / 解锁整框。 */
26
+ type DialogHandler = (ctl: DialogControl) => unknown;
27
+ export type ConfirmOptions = Omit<ConfirmModalProps, 'onConfirm' | 'onCancel' | 'confirmLoading' | 'cancelLoading' | 'locked'> & {
28
+ skin?: 'core' | 'host';
29
+ /** 确认回调;异步期间确认钮转圈、整框不可关,resolve 后按 `true` 关闭,reject 后恢复可点;返回 `false` 不关。 */
30
+ onConfirm?: DialogHandler;
31
+ /** 取消 / 遮罩 / Esc 回调;异步语义同 `onConfirm`,resolve 后按 `false` 关闭(返回 `false` 同样不关)。 */
32
+ onCancel?: DialogHandler;
33
+ };
34
+ export type AlertOptions = Omit<AlertModalProps, 'onConfirm' | 'confirmLoading' | 'locked'> & {
35
+ skin?: 'core' | 'host';
36
+ /** 确认回调(遮罩 / Esc 同一个出口);异步期间转圈并锁死关闭,settle 后才关,返回 `false` 不关。 */
37
+ onConfirm?: DialogHandler;
38
+ };
39
+ /**
40
+ * 命令式确认框:Promise 形式,`true`=确定 / `false`=取消(或点遮罩 / Esc)。`skin:"host"` 走宿主原生 Modal。
41
+ * 回调返回 Promise 时进入 loading(按钮转圈 + 遮罩 / Esc 锁死),settle 后才真正关闭。
42
+ */
43
+ export declare function confirmModal(opts: ConfirmOptions): Promise<boolean>;
44
+ /**
45
+ * 命令式警告框:Promise 在关闭时 resolve(单按钮,关闭即确认)。`skin:"host"` 走宿主原生 Modal。
46
+ * 回调返回 Promise 时进入 loading(按钮转圈 + 遮罩 / Esc 锁死),settle 后才真正关闭。
47
+ * 回调返回 `false`(同步或 resolve 成 `false`)⇒ 本次当作没成,框不关。
48
+ */
49
+ export declare function alertModal(opts: AlertOptions): Promise<void>;
50
+ export {};
51
+ //# sourceMappingURL=modal-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-host.d.ts","sourceRoot":"","sources":["../../../src/ui/feedback/modal-host.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAsDxE,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,qDAAqD;AACrD,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;CACjC;AAED,gEAAgE;AAChE,KAAK,aAAa,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAA;AAGpD,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,iBAAiB,EACjB,WAAW,GAAG,UAAU,GAAG,gBAAgB,GAAG,eAAe,GAAG,QAAQ,CACzE,GAAG;IACF,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,aAAa,CAAA;CACzB,CAAA;AACD,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,gBAAgB,GAAG,QAAQ,CAAC,GAAG;IAC5F,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,iEAAiE;IACjE,SAAS,CAAC,EAAE,aAAa,CAAA;CAC1B,CAAA;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAsDnE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD5D"}
@@ -0,0 +1,170 @@
1
+ import { createElement as h, Fragment } from 'react';
2
+ import { createRoot } from 'react-dom/client';
3
+ import { ensureControls, getStyleKit } from '../infra/css.js';
4
+ import { AlertModal } from './AlertModal.js';
5
+ import { ConfirmModal } from './ConfirmModal.js';
6
+ import { isSuccess, isThenable } from '../infra/thenable.js';
7
+ // ⚠️ core 的 StyleKit / i18n 都是**模块级单例**(见 css.ts 注释),不依赖 React Context,
8
+ // 所以命令式弹窗所在的独立 root 天然能读到它们——无需手动注入插件上下文。
9
+ // 唯一读不到的是「插件自己定义的 React Context」,那是用户的私有环境,命令式本就不继承。
10
+ let hostRoot = null;
11
+ let hostContainer = null;
12
+ let entries = [];
13
+ let idSeq = 0;
14
+ /** 取(懒建)常驻挂载根;非浏览器环境返回 null。 */
15
+ function getHostRoot() {
16
+ if (typeof document === 'undefined')
17
+ return null;
18
+ if (hostRoot === null) {
19
+ hostContainer = document.createElement('div');
20
+ hostContainer.setAttribute('data-dshpc-modal-host', '');
21
+ document.body.appendChild(hostContainer);
22
+ hostRoot = createRoot(hostContainer);
23
+ }
24
+ return hostRoot;
25
+ }
26
+ /** 重渲染当前堆叠;空了就卸载回收,不残留空根。 */
27
+ function flush() {
28
+ const root = getHostRoot();
29
+ if (root === null)
30
+ return;
31
+ ensureControls(getStyleKit());
32
+ if (entries.length === 0) {
33
+ root.unmount();
34
+ hostContainer?.remove();
35
+ hostRoot = null;
36
+ hostContainer = null;
37
+ return;
38
+ }
39
+ root.render(h(Fragment, null, entries.map((e) => h(Fragment, { key: e.id }, e.render()))));
40
+ }
41
+ function dismiss(id) {
42
+ entries = entries.filter((e) => e.id !== id);
43
+ flush();
44
+ }
45
+ let hostHandlers = null;
46
+ export function registerHostDialog(handlers) {
47
+ hostHandlers = handlers;
48
+ }
49
+ /**
50
+ * 命令式确认框:Promise 形式,`true`=确定 / `false`=取消(或点遮罩 / Esc)。`skin:"host"` 走宿主原生 Modal。
51
+ * 回调返回 Promise 时进入 loading(按钮转圈 + 遮罩 / Esc 锁死),settle 后才真正关闭。
52
+ */
53
+ export function confirmModal(opts) {
54
+ if (opts.skin === 'host') {
55
+ if (hostHandlers !== null) {
56
+ return hostHandlers.confirm({
57
+ title: opts.title == null ? undefined : String(opts.title),
58
+ description: opts.message == null ? undefined : String(opts.message),
59
+ confirmText: opts.confirmText,
60
+ cancelText: opts.cancelText,
61
+ danger: opts.tone === 'danger',
62
+ });
63
+ }
64
+ console.warn('[dsh-plugin-core] confirmModal skin:"host" 需先引入官方适配层 official.js,已回落到 core 皮肤');
65
+ }
66
+ const { skin: _skin, onConfirm, onCancel, ...core } = opts;
67
+ void _skin;
68
+ return new Promise((resolve) => {
69
+ const id = ++idSeq;
70
+ let closed = false;
71
+ const close = (result) => {
72
+ if (closed)
73
+ return;
74
+ closed = true;
75
+ dismiss(id);
76
+ resolve(result);
77
+ };
78
+ // 锁只活在这条弹窗里:entry 一走、下一框自然是未锁的初始态。
79
+ const entry = { id, locked: false, render: () => null };
80
+ const ctl = {
81
+ setLocked: (next) => {
82
+ if (closed || entry.locked === next)
83
+ return;
84
+ entry.locked = next;
85
+ flush();
86
+ },
87
+ };
88
+ // 「跑完关不关」归这里;转圈与锁框归 Button / ConfirmModal。把原 promise 返回给 Button 去转。
89
+ const run = (which) => {
90
+ if (closed)
91
+ return undefined;
92
+ const out = (which === 'confirm' ? onConfirm : onCancel)?.(ctl);
93
+ // 只有明确的 false 表示「这次没成」:框留着让人重试(消费方自己去提示)
94
+ const settle = (value) => {
95
+ if (isSuccess(value))
96
+ close(which === 'confirm');
97
+ };
98
+ if (!isThenable(out)) {
99
+ settle(out);
100
+ return undefined;
101
+ }
102
+ // reject 也不关:按钮已自己恢复可点,错误由 Button 打到控制台
103
+ void out.then(settle, () => { });
104
+ return out;
105
+ };
106
+ entry.render = () => h(ConfirmModal, { ...core, locked: entry.locked, onConfirm: () => run('confirm'), onCancel: () => run('cancel') });
107
+ entries.push(entry);
108
+ flush();
109
+ });
110
+ }
111
+ /**
112
+ * 命令式警告框:Promise 在关闭时 resolve(单按钮,关闭即确认)。`skin:"host"` 走宿主原生 Modal。
113
+ * 回调返回 Promise 时进入 loading(按钮转圈 + 遮罩 / Esc 锁死),settle 后才真正关闭。
114
+ * 回调返回 `false`(同步或 resolve 成 `false`)⇒ 本次当作没成,框不关。
115
+ */
116
+ export function alertModal(opts) {
117
+ if (opts.skin === 'host') {
118
+ if (hostHandlers !== null) {
119
+ return hostHandlers.alert({
120
+ title: opts.title == null ? undefined : String(opts.title),
121
+ description: opts.message == null ? undefined : String(opts.message),
122
+ confirmText: opts.confirmText,
123
+ });
124
+ }
125
+ console.warn('[dsh-plugin-core] alertModal skin:"host" 需先引入官方适配层 official.js,已回落到 core 皮肤');
126
+ }
127
+ const { skin: _skin, onConfirm, ...core } = opts;
128
+ void _skin;
129
+ return new Promise((resolve) => {
130
+ const id = ++idSeq;
131
+ let closed = false;
132
+ const close = () => {
133
+ if (closed)
134
+ return;
135
+ closed = true;
136
+ dismiss(id);
137
+ resolve();
138
+ };
139
+ // 同 confirmModal:锁只活在这条弹窗里,entry 一走、下一框自然是未锁的初始态。
140
+ const entry = { id, locked: false, render: () => null };
141
+ const ctl = {
142
+ setLocked: (next) => {
143
+ if (closed || entry.locked === next)
144
+ return;
145
+ entry.locked = next;
146
+ flush();
147
+ },
148
+ };
149
+ // 同 confirmModal:只决定「跑完关不关」,转圈与锁框交给 Button / AlertModal。
150
+ const run = () => {
151
+ if (closed)
152
+ return undefined;
153
+ const out = onConfirm?.(ctl);
154
+ const settle = (value) => {
155
+ if (isSuccess(value))
156
+ close();
157
+ };
158
+ if (!isThenable(out)) {
159
+ settle(out);
160
+ return undefined;
161
+ }
162
+ void out.then(settle, () => { });
163
+ return out;
164
+ };
165
+ entry.render = () => h(AlertModal, { ...core, locked: entry.locked, onConfirm: () => run() });
166
+ entries.push(entry);
167
+ flush();
168
+ });
169
+ }
170
+ //# sourceMappingURL=modal-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-host.js","sourceRoot":"","sources":["../../../src/ui/feedback/modal-host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { SIDE_SHEET_CSS } from './side-sheet-css.generated.js';
2
+ //# sourceMappingURL=side-sheet-css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-sheet-css.d.ts","sourceRoot":"","sources":["../../../src/ui/feedback/side-sheet-css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const SIDE_SHEET_CSS = "/* \u4FA7\u8FB9\u62BD\u5C49\uFF1A\u8986\u76D6\u5F0F\u3002**\u76AE\u80A4\u4E0E PanelDock \u5B8C\u5168\u5171\u7528**\uFF08side-panel.css \u7684 .dshpc-side-surface\n + \u5934\u90E8 / \u62D6\u62FD\u6761 / \u5173\u95ED\u94AE\uFF09\uFF0C\u8FD9\u91CC\u53EA\u7BA1\u300C\u600E\u4E48\u5360\u4F4D\u300D\uFF1Aabsolute \u8D34\u8FB9\u3001\u901A\u9AD8\u3001\u76D6\u5728\u9875\u9762\u4E0A\u3002\n \u4E0E\u5206\u680F\u7684\u552F\u4E00\u5DEE\u522B\uFF1A\u5B83\u4E0D\u6324\u7A84\u4E3B\u533A\uFF08\u6240\u4EE5\u6CA1\u6709 sticky\u3001\u6CA1\u6709\u5360\u5BBD\u3001\u4E5F\u6CA1\u6709\u6536\u8D77\uFF09\u3002\n\n \u6CA1\u6709\u6536\u8D77/\u8033\u6735\uFF08\u7528\u6237 2026-11-02\uFF09\uFF1A\u62BD\u5C49\u5173\u5C31\u662F\u5173\u3002 */\n\n.dshpc-sheet{position:absolute;top:0;bottom:0}\n/* \u6536\u8D77\u51FA\u573A\uFF08\u7528\u6237 2026-11-02\uFF09\uFF1A\u5BBD\u5EA6\u6536\u5230 0 + \u6DE1\u51FA\uFF0C\u64AD\u5B8C\u7531\u7EC4\u4EF6\u5378\u8F7D\u3002\u53CC\u7C7B\u538B\u8FC7 .dshpc-side-surface \u7684\u5165\u573A\u52A8\u753B\u3002 */\n@keyframes dshpc-side-out{to{width:0;opacity:0;border-width:0;overflow:hidden}}\n.dshpc-side-surface.dshpc-sheet--leaving{animation:dshpc-side-out .2s var(--dshpc-ease) forwards;pointer-events:none;}\n/* \u9762\u4E0E Modal \u540C\u6863\uFF08bg-layer-1\uFF09\uFF0CPanelDock \u4ECD\u7528\u9875\u9762\u5E95\uFF1A\u53CC\u7C7B\u538B\u8FC7\u5171\u7528\u7684 .dshpc-side-surface\uFF0C\n \u4E0D\u78B0\u8FB9\u6846\uFF08\u7528\u6237 2026-11-02\uFF1A\u53EA\u6539\u80CC\u666F\uFF09\u3002 */\n.dshpc-side-surface.dshpc-sheet{background:var(--dshpc-surface-1)}\n/* \u8D34\u8FB9\u90A3\u4FA7\u63CF\u8FB9\uFF08\u4E0E\u5206\u680F\u7684 border-left \u540C\u4E00\u5957\u7EBF\u8272\uFF09\uFF0C\u62D6\u62FD\u6761\u6C38\u8FDC\u5728**\u671D\u5185**\u90A3\u4E00\u4FA7\u3002 */\n.dshpc-sheet--left{left:0;border-right:1px solid var(--dshpc-border)}\n.dshpc-sheet--right{right:0;border-left:1px solid var(--dshpc-border)}\n.dshpc-sheet--left .dshpc-dock__resizer{left:auto;right:0}\n/* \u5185\u5BB9\u5185\u8DDD\uFF1A\u5206\u680F\u7684 body \u628A\u5185\u8DDD\u4EA4\u7ED9\u5185\u5BB9\u7EC4\u4EF6\uFF08FileBrowser \u90A3\u7C7B\u81EA\u5DF1\u5E26 17px\uFF09\uFF0C\n \u62BD\u5C49\u662F**\u901A\u7528\u5BB9\u5668**\uFF0C\u5FC5\u987B\u81EA\u5E26 \u2014\u2014 \u5426\u5219\u6587\u5B57\u76F4\u63A5\u8D34\u9762\u677F\u8FB9\uFF08\u7528\u6237 2026-11-02 \u622A\u56FE\uFF09\u3002\n \u5DE6\u53F3 14 \u4E0E\u5934\u90E8\u5DE6\u5185\u8DDD\u5BF9\u9F50\uFF0C\u4E0A\u4E0B\u4E5F\u7559\u540C\u6863\u547C\u5438\u3002 */\n.dshpc-sheet__body{padding:14px}\n\n/* \u5E95\u680F\uFF08\u53EF\u9009\uFF09\uFF1A\u7EBF\u8272\u4E0E\u5185\u8DDD\u5BF9\u9F50\u9762\u677F\u5934\u90E8\u3002 */\n.dshpc-sheet__foot{\n flex:none;display:flex;justify-content:flex-end;gap:8px;\n padding:10px 14px;border-top:1px solid var(--dshpc-border-faint);\n}\n/* \u5E95\u680F\u5DE6\u4FA7\u7684\u8FC7\u7A0B\u63D0\u793A\uFF1A\u5403\u6389\u6309\u94AE\u4E4B\u5916\u7684\u5269\u4F59\u5BBD\uFF0C\u8D85\u957F\u4EA4\u7ED9 FlipText \u7701\u7565 / hover \u8DD1\u9A6C\u706F\u3002 */\n.dshpc-sheet__notice{flex:1 1 auto;min-width:0;font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-sm);color:var(--dshpc-fg-3)}\n";
2
+ //# sourceMappingURL=side-sheet-css.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-sheet-css.generated.d.ts","sourceRoot":"","sources":["../../../src/ui/feedback/side-sheet-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,6lGAA0/C,CAAA"}
@@ -0,0 +1,4 @@
1
+ // ⚠️ 生成物,勿手改。真源 = src/ui/feedback/side-sheet.css
2
+ // 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
3
+ export const SIDE_SHEET_CSS = "/* 侧边抽屉:覆盖式。**皮肤与 PanelDock 完全共用**(side-panel.css 的 .dshpc-side-surface\n + 头部 / 拖拽条 / 关闭钮),这里只管「怎么占位」:absolute 贴边、通高、盖在页面上。\n 与分栏的唯一差别:它不挤窄主区(所以没有 sticky、没有占宽、也没有收起)。\n\n 没有收起/耳朵(用户 2026-11-02):抽屉关就是关。 */\n\n.dshpc-sheet{position:absolute;top:0;bottom:0}\n/* 收起出场(用户 2026-11-02):宽度收到 0 + 淡出,播完由组件卸载。双类压过 .dshpc-side-surface 的入场动画。 */\n@keyframes dshpc-side-out{to{width:0;opacity:0;border-width:0;overflow:hidden}}\n.dshpc-side-surface.dshpc-sheet--leaving{animation:dshpc-side-out .2s var(--dshpc-ease) forwards;pointer-events:none;}\n/* 面与 Modal 同档(bg-layer-1),PanelDock 仍用页面底:双类压过共用的 .dshpc-side-surface,\n 不碰边框(用户 2026-11-02:只改背景)。 */\n.dshpc-side-surface.dshpc-sheet{background:var(--dshpc-surface-1)}\n/* 贴边那侧描边(与分栏的 border-left 同一套线色),拖拽条永远在**朝内**那一侧。 */\n.dshpc-sheet--left{left:0;border-right:1px solid var(--dshpc-border)}\n.dshpc-sheet--right{right:0;border-left:1px solid var(--dshpc-border)}\n.dshpc-sheet--left .dshpc-dock__resizer{left:auto;right:0}\n/* 内容内距:分栏的 body 把内距交给内容组件(FileBrowser 那类自己带 17px),\n 抽屉是**通用容器**,必须自带 —— 否则文字直接贴面板边(用户 2026-11-02 截图)。\n 左右 14 与头部左内距对齐,上下也留同档呼吸。 */\n.dshpc-sheet__body{padding:14px}\n\n/* 底栏(可选):线色与内距对齐面板头部。 */\n.dshpc-sheet__foot{\n flex:none;display:flex;justify-content:flex-end;gap:8px;\n padding:10px 14px;border-top:1px solid var(--dshpc-border-faint);\n}\n/* 底栏左侧的过程提示:吃掉按钮之外的剩余宽,超长交给 FlipText 省略 / hover 跑马灯。 */\n.dshpc-sheet__notice{flex:1 1 auto;min-width:0;font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-sm);color:var(--dshpc-fg-3)}\n";
4
+ //# sourceMappingURL=side-sheet-css.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-sheet-css.generated.js","sourceRoot":"","sources":["../../../src/ui/feedback/side-sheet-css.generated.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,qEAAqE;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,u/CAAu/C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { SIDE_SHEET_CSS } from './side-sheet-css.generated.js';
2
+ //# sourceMappingURL=side-sheet-css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-sheet-css.js","sourceRoot":"","sources":["../../../src/ui/feedback/side-sheet-css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA"}
@@ -0,0 +1,24 @@
1
+ import type { ToastAction, ToastPosition, ToastVariant } from './Toast.js';
2
+ /** 全局注册表键:Symbol.for 跨 bundle 副本天然共享同一个符号。 */
3
+ export declare const TOAST_HOST_KEY: unique symbol;
4
+ /** 全局单例:已注册则直接返回(不触发 create),否则建一个并注册。 */
5
+ export declare function claimToastHost<T>(create: () => T): T;
6
+ export interface ToastPayload {
7
+ message: string;
8
+ variant: ToastVariant;
9
+ /** native = showToast(sonner 原味);card = notify(我们的卡)。 */
10
+ style: 'native' | 'card';
11
+ description?: string;
12
+ durationMs: number;
13
+ /** showToast 的整条自定义色(仅 native 有意义)。 */
14
+ color?: string;
15
+ onDismiss?: () => void;
16
+ /** notify 的右侧按钮(仅 card,1–2 个)。 */
17
+ actions?: ToastAction[];
18
+ }
19
+ export interface ToastHost {
20
+ show(payload: ToastPayload): void;
21
+ /** 全局统一位置:任一副本调用对所有插件生效。 */
22
+ setPosition(position: ToastPosition): void;
23
+ }
24
+ //# sourceMappingURL=toast-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast-host.d.ts","sourceRoot":"","sources":["../../../src/ui/feedback/toast-host.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE1E,8CAA8C;AAC9C,eAAO,MAAM,cAAc,eAA2C,CAAA;AAEtE,0CAA0C;AAC1C,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAOpD;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,YAAY,CAAA;IACrB,yDAAyD;IACzD,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,kCAAkC;IAClC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IACjC,4BAA4B;IAC5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;CAC3C"}
@@ -0,0 +1,20 @@
1
+ // 跨副本 toast 宿主(多插件同页只留一个提示区)。
2
+ //
3
+ // core 被打进每个插件的 bundle,模块级状态各副本一份 ⇒ 旧实现 N 个插件同页会挂出
4
+ // N 个同 id 容器 + N 个 Toaster 叠在同一屏位。这里在 globalThis 上用 Symbol.for 的
5
+ // 全局符号办一个单例:先到场的副本建宿主(唯一容器 + 唯一 Toaster),之后所有副本
6
+ // (含跨版本)都把 payload 交给已注册的宿主渲染。
7
+ // 纯逻辑、零 DOM / React 依赖 ⇒ Node 单测可直接断言单例语义。
8
+ /** 全局注册表键:Symbol.for 跨 bundle 副本天然共享同一个符号。 */
9
+ export const TOAST_HOST_KEY = Symbol.for('dsh-plugin-core/toast-host');
10
+ /** 全局单例:已注册则直接返回(不触发 create),否则建一个并注册。 */
11
+ export function claimToastHost(create) {
12
+ const g = globalThis;
13
+ const existing = g[TOAST_HOST_KEY];
14
+ if (existing !== undefined)
15
+ return existing;
16
+ const created = create();
17
+ g[TOAST_HOST_KEY] = created;
18
+ return created;
19
+ }
20
+ //# sourceMappingURL=toast-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast-host.js","sourceRoot":"","sources":["../../../src/ui/feedback/toast-host.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,mDAAmD;AACnD,iEAAiE;AACjE,gDAAgD;AAChD,+BAA+B;AAC/B,2CAA2C;AAI3C,8CAA8C;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AAEtE,0CAA0C;AAC1C,MAAM,UAAU,cAAc,CAAI,MAAe;IAC/C,MAAM,CAAC,GAAG,UAA2C,CAAA;IACrD,MAAM,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC,CAAA;IAClC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IAC3C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAA;IACxB,CAAC,CAAC,cAAc,CAAC,GAAG,OAAO,CAAA;IAC3B,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,45 +1,45 @@
1
- export { CONTROLS_DOMAIN, ensureControls, getStyleKit, setStyleKit } from './css.js';
2
- export { useLocale } from './locale.js';
3
- export { filterGroups, flattenOptions, groupOf, labelsOf, resolveTriggerSizing, toGroups, toggleValue, type PickerGroup, type PickerOption, } from './picker-logic.js';
4
- export { Picker, type PickerProps, type PickerSize } from './Picker.js';
5
- export { DateTimePicker, type DateTimeOutput, type DateTimePickerProps, type DateTimeSize, } from './DateTimePicker.js';
6
- export { buildMonthCells, ceilToPrecision, clampUnit, dayCaption, 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';
7
- export { ModelPicker, type ModelPickerProps, type ModelPickerVariant } from './ModelPicker.js';
8
- export { WorkspacePicker, type WorkspacePickerProps } from './WorkspacePicker.js';
9
- export { connectHost, getWorkspaceFiles, modelCatalog, workspaceList, type ConnectHostOptions, type HostClientContext, type HostWorkspaceItem, type HostWorkspaceSource, type ModelCatalogState, type ModelRoute, } from './host-data.js';
10
- export { Modal, type ModalProps, type ModalSize } from './Modal.js';
11
- export { SideSheet, type SideSheetProps, type SideSheetSide } from './SideSheet.js';
12
- export { AlertModal, type AlertModalProps, type AlertSeverity, } from './AlertModal.js';
13
- export { ConfirmModal, type ConfirmModalProps, type ConfirmTone, } from './ConfirmModal.js';
14
- export { alertModal, confirmModal, type AlertOptions, type ConfirmOptions, type DialogControl, } from './modal-host.js';
15
- export { CARD_ACCENTS, Card, StripCard, type CardAccent, type CardBarOptions, type CardSharedProps, } from './Card.js';
16
- export { Surface, surfaceClass, type SurfaceBorder, type SurfacePadding, type SurfaceProps, type SurfaceRadius, type SurfaceTone, } from './Surface.js';
17
- export { Chip, type ChipProps, type ChipSize, type ChipTone } from './Chip.js';
18
- export { Table, type TableProps } from './Table.js';
19
- export { Pagination, type PaginationProps, type TablePaginationConfig, } from './Pagination.js';
20
- export { clampPage, pageCountOf, pageItems, pageRange, type PageItem, type PageTotalRenderer, type PaginationAlign, } from './pagination-logic.js';
21
- export { headerRows, isLeafColumn, isTableCellSpec, leafColumns, tableDepth, type TableAlign, type TableBorders, type TableCell, type TableCellSpec, type TableColumn, type TableDensity, type TableGroup, type TableHeaderCell, type TableRow, type TableTone, } from './table-logic.js';
22
- export { showToast, notify, type ToastVariant, type ToastPosition, type ToastOptions, type ToastAction, type NotifyOptions, } from './Toast.js';
23
- export { Button, IconButton, type ButtonProps, type ButtonSize, type ButtonVariant, type IconButtonProps } from './Button.js';
24
- export { Segmented, type SegmentedProps, type SegmentedTone } from './Segmented.js';
25
- export { SplitGroup, type SplitGroupProps } from './SplitGroup.js';
26
- export { InputGroup, type InputGroupAction, type InputGroupProps, } from './InputGroup.js';
27
- export { Textarea, type TextareaProps } from './Textarea.js';
28
- export { Checkbox, type CheckboxProps } from './Checkbox.js';
29
- export { MarqueeText } from './MarqueeText.js';
30
- export { FlipText, type FlipTextProps } from './FlipText.js';
31
- export { Loader, type LoaderProps, type LoaderSize, type LoaderVariant } from './Loader.js';
32
- export { LoaderBar, type LoaderBarProps } from './LoaderBar.js';
33
- export { Loading, LoadingBlock, LoadingToast, RunningBlocks, showLoading, type LoadingOptions, type LoadingProps, type LoadingViewProps, } from './Loading.js';
34
- export { claimLoadingHost, createLoadingSlot, loadingOverlayClass, LOADING_HOST_KEY, type LoadingHandle, type LoadingPosition, type LoadingSlotState, type LoadingVariant, } from './loading-host.js';
35
- export { SectionHead, type SectionHeadAccent, type SectionHeadProps } from './SectionHead.js';
36
- export { FieldHint, type FieldHintProps } from './FieldHint.js';
37
- export { getTooltipRenderer, setTooltipRenderer, type TooltipRenderProps, type TooltipRenderer, } from './tooltip.js';
38
- export { LiveText } from './LiveText.js';
39
- export { QuickToolbar, type QuickToolbarProps, } from './QuickToolbar.js';
40
- export { DEFAULT_SCROLL_THRESHOLD, isToolbarEntryVisible, resolveToolbarLeft, sortToolbarEntries, type QuickToolbarBackToTop, type QuickToolbarItem, type QuickToolbarWhen, type ToolbarEntry, type ToolbarGeometry, } from './quick-toolbar-logic.js';
41
- export { startResizeLayoutWidth, type ResizeOptions } from './resizer.js';
42
- export { DockPanel, PanelDock, createPanelDock, type DockCloseButton, type DockCloseReason, type DockPanelProps, type PanelDockController, type PanelDockOptions, type PanelDockProps, } from './PanelDock.js';
43
- export { DEFAULT_PANEL_ID, clampWidth, closePanel, collapsePanel, emptyDock, expandPanel, isCollapsed, isOpen, openPanel, othersWidth, setPanelWidth, type DockState, type OpenResult, } from './panel-dock-logic.js';
44
- export { FIELD_ANCHOR_STYLE, FIELD_LABEL_STYLE, Input, NumberInput, PrefixedInput, fieldMetricsOf, type EditorOption, type FieldSize, type InputProps, type NumberInputProps, type PrefixedInputProps, } from './Field.js';
1
+ export { CONTROLS_DOMAIN, ensureControls, getStyleKit, setStyleKit } from './infra/css.js';
2
+ export { useLocale } from './infra/locale.js';
3
+ export { filterGroups, flattenOptions, groupOf, labelsOf, resolveTriggerSizing, toGroups, toggleValue, type PickerGroup, type PickerOption, } from './inputs/picker-logic.js';
4
+ export { Picker, type PickerProps, type PickerSize } from './inputs/Picker.js';
5
+ export { DateTimePicker, type DateTimeOutput, type DateTimePickerProps, type DateTimeSize, } from './inputs/DateTimePicker.js';
6
+ export { buildMonthCells, ceilToPrecision, clampUnit, dayCaption, 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 './inputs/datetime-logic.js';
7
+ export { ModelPicker, type ModelPickerProps, type ModelPickerVariant } from './inputs/ModelPicker.js';
8
+ export { WorkspacePicker, type WorkspacePickerProps } from './inputs/WorkspacePicker.js';
9
+ export { connectHost, getWorkspaceFiles, modelCatalog, workspaceList, type ConnectHostOptions, type HostClientContext, type HostWorkspaceItem, type HostWorkspaceSource, type ModelCatalogState, type ModelRoute, } from './infra/host-data.js';
10
+ export { Modal, type ModalProps, type ModalSize } from './feedback/Modal.js';
11
+ export { SideSheet, type SideSheetProps, type SideSheetSide } from './feedback/SideSheet.js';
12
+ export { AlertModal, type AlertModalProps, type AlertSeverity, } from './feedback/AlertModal.js';
13
+ export { ConfirmModal, type ConfirmModalProps, type ConfirmTone, } from './feedback/ConfirmModal.js';
14
+ export { alertModal, confirmModal, type AlertOptions, type ConfirmOptions, type DialogControl, } from './feedback/modal-host.js';
15
+ export { CARD_ACCENTS, Card, StripCard, type CardAccent, type CardBarOptions, type CardSharedProps, } from './display/Card.js';
16
+ export { Surface, surfaceClass, type SurfaceBorder, type SurfacePadding, type SurfaceProps, type SurfaceRadius, type SurfaceTone, } from './display/Surface.js';
17
+ export { Chip, type ChipProps, type ChipSize, type ChipTone } from './display/Chip.js';
18
+ export { Table, type TableProps } from './display/Table.js';
19
+ export { Pagination, type PaginationProps, type TablePaginationConfig, } from './navigation/Pagination.js';
20
+ export { clampPage, pageCountOf, pageItems, pageRange, type PageItem, type PageTotalRenderer, type PaginationAlign, } from './navigation/pagination-logic.js';
21
+ export { headerRows, isLeafColumn, isTableCellSpec, leafColumns, tableDepth, type TableAlign, type TableBorders, type TableCell, type TableCellSpec, type TableColumn, type TableDensity, type TableGroup, type TableHeaderCell, type TableRow, type TableTone, } from './display/table-logic.js';
22
+ export { showToast, notify, type ToastVariant, type ToastPosition, type ToastOptions, type ToastAction, type NotifyOptions, } from './feedback/Toast.js';
23
+ export { Button, IconButton, type ButtonProps, type ButtonSize, type ButtonVariant, type IconButtonProps } from './actions/Button.js';
24
+ export { Segmented, type SegmentedProps, type SegmentedTone } from './inputs/Segmented.js';
25
+ export { SplitGroup, type SplitGroupProps } from './layout/SplitGroup.js';
26
+ export { InputGroup, type InputGroupAction, type InputGroupProps, } from './inputs/InputGroup.js';
27
+ export { Textarea, type TextareaProps } from './inputs/Textarea.js';
28
+ export { Checkbox, type CheckboxProps } from './inputs/Checkbox.js';
29
+ export { MarqueeText } from './display/MarqueeText.js';
30
+ export { FlipText, type FlipTextProps } from './display/FlipText.js';
31
+ export { Loader, type LoaderProps, type LoaderSize, type LoaderVariant } from './feedback/Loader.js';
32
+ export { LoaderBar, type LoaderBarProps } from './feedback/LoaderBar.js';
33
+ export { Loading, LoadingBlock, LoadingToast, RunningBlocks, showLoading, type LoadingOptions, type LoadingProps, type LoadingViewProps, } from './feedback/Loading.js';
34
+ export { claimLoadingHost, createLoadingSlot, loadingOverlayClass, LOADING_HOST_KEY, type LoadingHandle, type LoadingPosition, type LoadingSlotState, type LoadingVariant, } from './feedback/loading-host.js';
35
+ export { SectionHead, type SectionHeadAccent, type SectionHeadProps } from './display/SectionHead.js';
36
+ export { FieldHint, type FieldHintProps } from './display/FieldHint.js';
37
+ export { getTooltipRenderer, setTooltipRenderer, type TooltipRenderProps, type TooltipRenderer, } from './infra/tooltip.js';
38
+ export { LiveText } from './display/LiveText.js';
39
+ export { QuickToolbar, type QuickToolbarProps, } from './layout/QuickToolbar.js';
40
+ export { DEFAULT_SCROLL_THRESHOLD, isToolbarEntryVisible, resolveToolbarLeft, sortToolbarEntries, type QuickToolbarBackToTop, type QuickToolbarItem, type QuickToolbarWhen, type ToolbarEntry, type ToolbarGeometry, } from './layout/quick-toolbar-logic.js';
41
+ export { startResizeLayoutWidth, type ResizeOptions } from './layout/resizer.js';
42
+ export { DockPanel, PanelDock, createPanelDock, type DockCloseButton, type DockCloseReason, type DockPanelProps, type PanelDockController, type PanelDockOptions, type PanelDockProps, } from './layout/PanelDock.js';
43
+ export { DEFAULT_PANEL_ID, clampWidth, closePanel, collapsePanel, emptyDock, expandPanel, isCollapsed, isOpen, openPanel, othersWidth, setPanelWidth, type DockState, type OpenResult, } from './layout/panel-dock-logic.js';
44
+ export { FIELD_ANCHOR_STYLE, FIELD_LABEL_STYLE, Input, NumberInput, PrefixedInput, fieldMetricsOf, type EditorOption, type FieldSize, type InputProps, type NumberInputProps, type PrefixedInputProps, } from './inputs/Field.js';
45
45
  //# sourceMappingURL=index.d.ts.map