dsh-plugin-core 0.33.1 → 0.33.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. package/README.md +9 -9
  2. package/dist/adv/explorer/open.js +4 -4
  3. package/dist/adv/explorer/open.js.map +1 -1
  4. package/dist/adv/session/SessionViewModal.d.ts.map +1 -1
  5. package/dist/adv/session/SessionViewModal.js +6 -3
  6. package/dist/adv/session/SessionViewModal.js.map +1 -1
  7. package/dist/adv/session/mirror/ChatView.d.ts +1 -3
  8. package/dist/adv/session/mirror/ChatView.d.ts.map +1 -1
  9. package/dist/adv/session/mirror/ChatView.js +10 -36
  10. package/dist/adv/session/mirror/ChatView.js.map +1 -1
  11. package/dist/adv/session/mirror/GenericCommandCard.d.ts +6 -1
  12. package/dist/adv/session/mirror/GenericCommandCard.d.ts.map +1 -1
  13. package/dist/adv/session/mirror/GenericCommandCard.js +8 -3
  14. package/dist/adv/session/mirror/GenericCommandCard.js.map +1 -1
  15. package/dist/adv/session/mirror/MessageItem.d.ts +4 -3
  16. package/dist/adv/session/mirror/MessageItem.d.ts.map +1 -1
  17. package/dist/adv/session/mirror/MessageItem.js +19 -9
  18. package/dist/adv/session/mirror/MessageItem.js.map +1 -1
  19. package/dist/{session/mirror/BashRow.d.ts → adv/session/mirror/SkillRow.d.ts} +4 -5
  20. package/dist/adv/session/mirror/SkillRow.d.ts.map +1 -0
  21. package/dist/adv/session/mirror/SkillRow.js +86 -0
  22. package/dist/adv/session/mirror/SkillRow.js.map +1 -0
  23. package/dist/adv/session/official-classes.d.ts +3 -1
  24. package/dist/adv/session/official-classes.d.ts.map +1 -1
  25. package/dist/adv/session/official-classes.js +33 -32
  26. package/dist/adv/session/official-classes.js.map +1 -1
  27. package/dist/ui/feedback/host-toast.d.ts +1 -1
  28. package/dist/ui/feedback/host-toast.js +1 -1
  29. package/dist/utils/i18n.d.ts +1 -1
  30. package/dist/utils/i18n.d.ts.map +1 -1
  31. package/dist/utils/i18n.js +12 -0
  32. package/dist/utils/i18n.js.map +1 -1
  33. package/docs/design/external/dsh-host.md +33 -0
  34. package/docs/help/explorer.doc.ts +1 -1
  35. package/docs/help/explorer.md +1 -1
  36. package/docs/help/integration.doc.ts +2 -2
  37. package/docs/help/integration.md +2 -2
  38. package/docs/help/session.doc.ts +1 -1
  39. package/docs/help/session.md +1 -1
  40. package/docs/help/ui.doc.ts +1 -1
  41. package/docs/help/ui.md +1 -1
  42. package/package.json +16 -16
  43. package/dist/explorer/ExplorerPanel.d.ts +0 -25
  44. package/dist/explorer/ExplorerPanel.d.ts.map +0 -1
  45. package/dist/explorer/ExplorerPanel.js +0 -111
  46. package/dist/explorer/ExplorerPanel.js.map +0 -1
  47. package/dist/explorer/FileBrowser.d.ts +0 -58
  48. package/dist/explorer/FileBrowser.d.ts.map +0 -1
  49. package/dist/explorer/FileBrowser.js +0 -632
  50. package/dist/explorer/FileBrowser.js.map +0 -1
  51. package/dist/explorer/crumb-nav.d.ts +0 -45
  52. package/dist/explorer/crumb-nav.d.ts.map +0 -1
  53. package/dist/explorer/crumb-nav.js +0 -78
  54. package/dist/explorer/crumb-nav.js.map +0 -1
  55. package/dist/explorer/crumbs-menu.d.ts +0 -37
  56. package/dist/explorer/crumbs-menu.d.ts.map +0 -1
  57. package/dist/explorer/crumbs-menu.js +0 -102
  58. package/dist/explorer/crumbs-menu.js.map +0 -1
  59. package/dist/explorer/explorer-css.d.ts +0 -2
  60. package/dist/explorer/explorer-css.d.ts.map +0 -1
  61. package/dist/explorer/explorer-css.generated.d.ts +0 -2
  62. package/dist/explorer/explorer-css.generated.d.ts.map +0 -1
  63. package/dist/explorer/explorer-css.generated.js +0 -4
  64. package/dist/explorer/explorer-css.generated.js.map +0 -1
  65. package/dist/explorer/explorer-css.js +0 -3
  66. package/dist/explorer/explorer-css.js.map +0 -1
  67. package/dist/explorer/fs-face.d.ts +0 -36
  68. package/dist/explorer/fs-face.d.ts.map +0 -1
  69. package/dist/explorer/fs-face.js +0 -74
  70. package/dist/explorer/fs-face.js.map +0 -1
  71. package/dist/explorer/index.d.ts +0 -6
  72. package/dist/explorer/index.d.ts.map +0 -1
  73. package/dist/explorer/index.js +0 -6
  74. package/dist/explorer/index.js.map +0 -1
  75. package/dist/explorer/landing.d.ts +0 -26
  76. package/dist/explorer/landing.d.ts.map +0 -1
  77. package/dist/explorer/landing.js +0 -43
  78. package/dist/explorer/landing.js.map +0 -1
  79. package/dist/explorer/open.d.ts +0 -137
  80. package/dist/explorer/open.d.ts.map +0 -1
  81. package/dist/explorer/open.js +0 -350
  82. package/dist/explorer/open.js.map +0 -1
  83. package/dist/explorer/picker-placement.d.ts +0 -69
  84. package/dist/explorer/picker-placement.d.ts.map +0 -1
  85. package/dist/explorer/picker-placement.js +0 -122
  86. package/dist/explorer/picker-placement.js.map +0 -1
  87. package/dist/explorer/preview/BytesPreview.d.ts +0 -12
  88. package/dist/explorer/preview/BytesPreview.d.ts.map +0 -1
  89. package/dist/explorer/preview/BytesPreview.js +0 -60
  90. package/dist/explorer/preview/BytesPreview.js.map +0 -1
  91. package/dist/explorer/preview/HtmlPreview.d.ts +0 -17
  92. package/dist/explorer/preview/HtmlPreview.d.ts.map +0 -1
  93. package/dist/explorer/preview/HtmlPreview.js +0 -113
  94. package/dist/explorer/preview/HtmlPreview.js.map +0 -1
  95. package/dist/explorer/preview/OfficePreview.d.ts +0 -12
  96. package/dist/explorer/preview/OfficePreview.d.ts.map +0 -1
  97. package/dist/explorer/preview/OfficePreview.js +0 -63
  98. package/dist/explorer/preview/OfficePreview.js.map +0 -1
  99. package/dist/explorer/preview/TextPreview.d.ts +0 -18
  100. package/dist/explorer/preview/TextPreview.d.ts.map +0 -1
  101. package/dist/explorer/preview/TextPreview.js +0 -122
  102. package/dist/explorer/preview/TextPreview.js.map +0 -1
  103. package/dist/explorer/preview/index.d.ts +0 -24
  104. package/dist/explorer/preview/index.d.ts.map +0 -1
  105. package/dist/explorer/preview/index.js +0 -58
  106. package/dist/explorer/preview/index.js.map +0 -1
  107. package/dist/explorer/preview/md-labels.d.ts +0 -3
  108. package/dist/explorer/preview/md-labels.d.ts.map +0 -1
  109. package/dist/explorer/preview/md-labels.js +0 -12
  110. package/dist/explorer/preview/md-labels.js.map +0 -1
  111. package/dist/explorer/preview-title-bar.d.ts +0 -26
  112. package/dist/explorer/preview-title-bar.d.ts.map +0 -1
  113. package/dist/explorer/preview-title-bar.js +0 -48
  114. package/dist/explorer/preview-title-bar.js.map +0 -1
  115. package/dist/explorer/types.d.ts +0 -259
  116. package/dist/explorer/types.d.ts.map +0 -1
  117. package/dist/explorer/types.js +0 -379
  118. package/dist/explorer/types.js.map +0 -1
  119. package/dist/session/SessionViewModal.d.ts +0 -37
  120. package/dist/session/SessionViewModal.d.ts.map +0 -1
  121. package/dist/session/SessionViewModal.js +0 -1133
  122. package/dist/session/SessionViewModal.js.map +0 -1
  123. package/dist/session/changes.d.ts +0 -73
  124. package/dist/session/changes.d.ts.map +0 -1
  125. package/dist/session/changes.js +0 -134
  126. package/dist/session/changes.js.map +0 -1
  127. package/dist/session/faces.d.ts +0 -244
  128. package/dist/session/faces.d.ts.map +0 -1
  129. package/dist/session/faces.js +0 -17
  130. package/dist/session/faces.js.map +0 -1
  131. package/dist/session/index.d.ts +0 -7
  132. package/dist/session/index.d.ts.map +0 -1
  133. package/dist/session/index.js +0 -27
  134. package/dist/session/index.js.map +0 -1
  135. package/dist/session/mirror/AskCard.d.ts +0 -35
  136. package/dist/session/mirror/AskCard.d.ts.map +0 -1
  137. package/dist/session/mirror/AskCard.js +0 -131
  138. package/dist/session/mirror/AskCard.js.map +0 -1
  139. package/dist/session/mirror/BashRow.d.ts.map +0 -1
  140. package/dist/session/mirror/BashRow.js +0 -143
  141. package/dist/session/mirror/BashRow.js.map +0 -1
  142. package/dist/session/mirror/ChangedFileDiff.d.ts +0 -25
  143. package/dist/session/mirror/ChangedFileDiff.d.ts.map +0 -1
  144. package/dist/session/mirror/ChangedFileDiff.js +0 -178
  145. package/dist/session/mirror/ChangedFileDiff.js.map +0 -1
  146. package/dist/session/mirror/ChangedFilesCard.d.ts +0 -18
  147. package/dist/session/mirror/ChangedFilesCard.d.ts.map +0 -1
  148. package/dist/session/mirror/ChangedFilesCard.js +0 -165
  149. package/dist/session/mirror/ChangedFilesCard.js.map +0 -1
  150. package/dist/session/mirror/ChatGroupSeat.d.ts +0 -24
  151. package/dist/session/mirror/ChatGroupSeat.d.ts.map +0 -1
  152. package/dist/session/mirror/ChatGroupSeat.js +0 -135
  153. package/dist/session/mirror/ChatGroupSeat.js.map +0 -1
  154. package/dist/session/mirror/ChatNodeSeat.d.ts +0 -43
  155. package/dist/session/mirror/ChatNodeSeat.d.ts.map +0 -1
  156. package/dist/session/mirror/ChatNodeSeat.js +0 -133
  157. package/dist/session/mirror/ChatNodeSeat.js.map +0 -1
  158. package/dist/session/mirror/ChatView.d.ts +0 -47
  159. package/dist/session/mirror/ChatView.d.ts.map +0 -1
  160. package/dist/session/mirror/ChatView.js +0 -138
  161. package/dist/session/mirror/ChatView.js.map +0 -1
  162. package/dist/session/mirror/CommandCard.d.ts +0 -20
  163. package/dist/session/mirror/CommandCard.d.ts.map +0 -1
  164. package/dist/session/mirror/CommandCard.js +0 -69
  165. package/dist/session/mirror/CommandCard.js.map +0 -1
  166. package/dist/session/mirror/ContextInjectionRow.d.ts +0 -18
  167. package/dist/session/mirror/ContextInjectionRow.d.ts.map +0 -1
  168. package/dist/session/mirror/ContextInjectionRow.js +0 -50
  169. package/dist/session/mirror/ContextInjectionRow.js.map +0 -1
  170. package/dist/session/mirror/Deliverables.d.ts +0 -24
  171. package/dist/session/mirror/Deliverables.d.ts.map +0 -1
  172. package/dist/session/mirror/Deliverables.js +0 -175
  173. package/dist/session/mirror/Deliverables.js.map +0 -1
  174. package/dist/session/mirror/GenericCommandCard.d.ts +0 -136
  175. package/dist/session/mirror/GenericCommandCard.d.ts.map +0 -1
  176. package/dist/session/mirror/GenericCommandCard.js +0 -948
  177. package/dist/session/mirror/GenericCommandCard.js.map +0 -1
  178. package/dist/session/mirror/MessageIconActions.d.ts +0 -16
  179. package/dist/session/mirror/MessageIconActions.d.ts.map +0 -1
  180. package/dist/session/mirror/MessageIconActions.js +0 -69
  181. package/dist/session/mirror/MessageIconActions.js.map +0 -1
  182. package/dist/session/mirror/MessageItem.d.ts +0 -93
  183. package/dist/session/mirror/MessageItem.d.ts.map +0 -1
  184. package/dist/session/mirror/MessageItem.js +0 -194
  185. package/dist/session/mirror/MessageItem.js.map +0 -1
  186. package/dist/session/mirror/ReasoningRow.d.ts +0 -11
  187. package/dist/session/mirror/ReasoningRow.d.ts.map +0 -1
  188. package/dist/session/mirror/ReasoningRow.js +0 -111
  189. package/dist/session/mirror/ReasoningRow.js.map +0 -1
  190. package/dist/session/mirror/RunningStatus.d.ts +0 -12
  191. package/dist/session/mirror/RunningStatus.d.ts.map +0 -1
  192. package/dist/session/mirror/RunningStatus.js +0 -57
  193. package/dist/session/mirror/RunningStatus.js.map +0 -1
  194. package/dist/session/mirror/StatDialog.d.ts +0 -20
  195. package/dist/session/mirror/StatDialog.d.ts.map +0 -1
  196. package/dist/session/mirror/StatDialog.js +0 -49
  197. package/dist/session/mirror/StatDialog.js.map +0 -1
  198. package/dist/session/mirror/ToolDetails.d.ts +0 -65
  199. package/dist/session/mirror/ToolDetails.d.ts.map +0 -1
  200. package/dist/session/mirror/ToolDetails.js +0 -268
  201. package/dist/session/mirror/ToolDetails.js.map +0 -1
  202. package/dist/session/mirror/TurnProcessNodeView.d.ts +0 -10
  203. package/dist/session/mirror/TurnProcessNodeView.d.ts.map +0 -1
  204. package/dist/session/mirror/TurnProcessNodeView.js +0 -57
  205. package/dist/session/mirror/TurnProcessNodeView.js.map +0 -1
  206. package/dist/session/mirror/TurnTailNodeView.d.ts +0 -57
  207. package/dist/session/mirror/TurnTailNodeView.d.ts.map +0 -1
  208. package/dist/session/mirror/TurnTailNodeView.js +0 -106
  209. package/dist/session/mirror/TurnTailNodeView.js.map +0 -1
  210. package/dist/session/mirror/TurnTriggerNodeView.d.ts +0 -16
  211. package/dist/session/mirror/TurnTriggerNodeView.d.ts.map +0 -1
  212. package/dist/session/mirror/TurnTriggerNodeView.js +0 -103
  213. package/dist/session/mirror/TurnTriggerNodeView.js.map +0 -1
  214. package/dist/session/mirror/TurnUsagePanel.d.ts +0 -21
  215. package/dist/session/mirror/TurnUsagePanel.d.ts.map +0 -1
  216. package/dist/session/mirror/TurnUsagePanel.js +0 -41
  217. package/dist/session/mirror/TurnUsagePanel.js.map +0 -1
  218. package/dist/session/mirror/control-details.d.ts +0 -9
  219. package/dist/session/mirror/control-details.d.ts.map +0 -1
  220. package/dist/session/mirror/control-details.js +0 -549
  221. package/dist/session/mirror/control-details.js.map +0 -1
  222. package/dist/session/mirror/detail-i18n.d.ts +0 -4
  223. package/dist/session/mirror/detail-i18n.d.ts.map +0 -1
  224. package/dist/session/mirror/detail-i18n.js +0 -153
  225. package/dist/session/mirror/detail-i18n.js.map +0 -1
  226. package/dist/session/mirror/message-chrome.d.ts +0 -39
  227. package/dist/session/mirror/message-chrome.d.ts.map +0 -1
  228. package/dist/session/mirror/message-chrome.js +0 -153
  229. package/dist/session/mirror/message-chrome.js.map +0 -1
  230. package/dist/session/mirror/process-groups.d.ts +0 -56
  231. package/dist/session/mirror/process-groups.d.ts.map +0 -1
  232. package/dist/session/mirror/process-groups.js +0 -202
  233. package/dist/session/mirror/process-groups.js.map +0 -1
  234. package/dist/session/official-classes.d.ts +0 -28
  235. package/dist/session/official-classes.d.ts.map +0 -1
  236. package/dist/session/official-classes.js +0 -152
  237. package/dist/session/official-classes.js.map +0 -1
  238. package/dist/session/open-review.d.ts +0 -13
  239. package/dist/session/open-review.d.ts.map +0 -1
  240. package/dist/session/open-review.js +0 -32
  241. package/dist/session/open-review.js.map +0 -1
  242. package/dist/session/open-session-view.d.ts +0 -19
  243. package/dist/session/open-session-view.d.ts.map +0 -1
  244. package/dist/session/open-session-view.js +0 -147
  245. package/dist/session/open-session-view.js.map +0 -1
  246. package/dist/session/pending-inputs.d.ts +0 -33
  247. package/dist/session/pending-inputs.d.ts.map +0 -1
  248. package/dist/session/pending-inputs.js +0 -130
  249. package/dist/session/pending-inputs.js.map +0 -1
  250. package/dist/session/session-css.d.ts +0 -2
  251. package/dist/session/session-css.d.ts.map +0 -1
  252. package/dist/session/session-css.generated.d.ts +0 -2
  253. package/dist/session/session-css.generated.d.ts.map +0 -1
  254. package/dist/session/session-css.generated.js +0 -4
  255. package/dist/session/session-css.generated.js.map +0 -1
  256. package/dist/session/session-css.js +0 -3
  257. package/dist/session/session-css.js.map +0 -1
  258. package/dist/session/tail-follow.d.ts +0 -29
  259. package/dist/session/tail-follow.d.ts.map +0 -1
  260. package/dist/session/tail-follow.js +0 -106
  261. package/dist/session/tail-follow.js.map +0 -1
  262. package/dist/session/types.d.ts +0 -28
  263. package/dist/session/types.d.ts.map +0 -1
  264. package/dist/session/types.js +0 -12
  265. package/dist/session/types.js.map +0 -1
  266. package/dist/ui/AlertModal.d.ts +0 -41
  267. package/dist/ui/AlertModal.d.ts.map +0 -1
  268. package/dist/ui/AlertModal.js +0 -45
  269. package/dist/ui/AlertModal.js.map +0 -1
  270. package/dist/ui/Button.d.ts +0 -102
  271. package/dist/ui/Button.d.ts.map +0 -1
  272. package/dist/ui/Button.js +0 -233
  273. package/dist/ui/Button.js.map +0 -1
  274. package/dist/ui/Card.d.ts +0 -65
  275. package/dist/ui/Card.d.ts.map +0 -1
  276. package/dist/ui/Card.js +0 -109
  277. package/dist/ui/Card.js.map +0 -1
  278. package/dist/ui/Checkbox.d.ts +0 -24
  279. package/dist/ui/Checkbox.d.ts.map +0 -1
  280. package/dist/ui/Checkbox.js +0 -35
  281. package/dist/ui/Checkbox.js.map +0 -1
  282. package/dist/ui/Chip.d.ts +0 -28
  283. package/dist/ui/Chip.d.ts.map +0 -1
  284. package/dist/ui/Chip.js +0 -36
  285. package/dist/ui/Chip.js.map +0 -1
  286. package/dist/ui/CodeViewer.d.ts +0 -38
  287. package/dist/ui/CodeViewer.d.ts.map +0 -1
  288. package/dist/ui/CodeViewer.js +0 -107
  289. package/dist/ui/CodeViewer.js.map +0 -1
  290. package/dist/ui/ConfirmModal.d.ts +0 -50
  291. package/dist/ui/ConfirmModal.d.ts.map +0 -1
  292. package/dist/ui/ConfirmModal.js +0 -47
  293. package/dist/ui/ConfirmModal.js.map +0 -1
  294. package/dist/ui/DateTimePicker.d.ts +0 -45
  295. package/dist/ui/DateTimePicker.d.ts.map +0 -1
  296. package/dist/ui/DateTimePicker.js +0 -462
  297. package/dist/ui/DateTimePicker.js.map +0 -1
  298. package/dist/ui/EmptyState.d.ts +0 -12
  299. package/dist/ui/EmptyState.d.ts.map +0 -1
  300. package/dist/ui/EmptyState.js +0 -10
  301. package/dist/ui/EmptyState.js.map +0 -1
  302. package/dist/ui/Field.d.ts +0 -125
  303. package/dist/ui/Field.d.ts.map +0 -1
  304. package/dist/ui/Field.js +0 -175
  305. package/dist/ui/Field.js.map +0 -1
  306. package/dist/ui/FieldHint.d.ts +0 -18
  307. package/dist/ui/FieldHint.d.ts.map +0 -1
  308. package/dist/ui/FieldHint.js +0 -40
  309. package/dist/ui/FieldHint.js.map +0 -1
  310. package/dist/ui/FlipText.d.ts +0 -43
  311. package/dist/ui/FlipText.d.ts.map +0 -1
  312. package/dist/ui/FlipText.js +0 -59
  313. package/dist/ui/FlipText.js.map +0 -1
  314. package/dist/ui/InputGroup.d.ts +0 -91
  315. package/dist/ui/InputGroup.d.ts.map +0 -1
  316. package/dist/ui/InputGroup.js +0 -125
  317. package/dist/ui/InputGroup.js.map +0 -1
  318. package/dist/ui/LiveText.d.ts +0 -13
  319. package/dist/ui/LiveText.d.ts.map +0 -1
  320. package/dist/ui/LiveText.js +0 -19
  321. package/dist/ui/LiveText.js.map +0 -1
  322. package/dist/ui/Loader.d.ts +0 -49
  323. package/dist/ui/Loader.d.ts.map +0 -1
  324. package/dist/ui/Loader.js +0 -79
  325. package/dist/ui/Loader.js.map +0 -1
  326. package/dist/ui/LoaderBar.d.ts +0 -38
  327. package/dist/ui/LoaderBar.d.ts.map +0 -1
  328. package/dist/ui/LoaderBar.js +0 -79
  329. package/dist/ui/LoaderBar.js.map +0 -1
  330. package/dist/ui/Loading.d.ts +0 -69
  331. package/dist/ui/Loading.d.ts.map +0 -1
  332. package/dist/ui/Loading.js +0 -164
  333. package/dist/ui/Loading.js.map +0 -1
  334. package/dist/ui/MarqueeText.d.ts +0 -22
  335. package/dist/ui/MarqueeText.d.ts.map +0 -1
  336. package/dist/ui/MarqueeText.js +0 -52
  337. package/dist/ui/MarqueeText.js.map +0 -1
  338. package/dist/ui/Modal.d.ts +0 -73
  339. package/dist/ui/Modal.d.ts.map +0 -1
  340. package/dist/ui/Modal.js +0 -83
  341. package/dist/ui/Modal.js.map +0 -1
  342. package/dist/ui/ModelPicker.d.ts +0 -48
  343. package/dist/ui/ModelPicker.d.ts.map +0 -1
  344. package/dist/ui/ModelPicker.js +0 -101
  345. package/dist/ui/ModelPicker.js.map +0 -1
  346. package/dist/ui/Pagination.d.ts +0 -59
  347. package/dist/ui/Pagination.d.ts.map +0 -1
  348. package/dist/ui/Pagination.js +0 -112
  349. package/dist/ui/Pagination.js.map +0 -1
  350. package/dist/ui/PanelDock.d.ts +0 -132
  351. package/dist/ui/PanelDock.d.ts.map +0 -1
  352. package/dist/ui/PanelDock.js +0 -390
  353. package/dist/ui/PanelDock.js.map +0 -1
  354. package/dist/ui/Picker.d.ts +0 -56
  355. package/dist/ui/Picker.d.ts.map +0 -1
  356. package/dist/ui/Picker.js +0 -244
  357. package/dist/ui/Picker.js.map +0 -1
  358. package/dist/ui/QuickToolbar.d.ts +0 -54
  359. package/dist/ui/QuickToolbar.d.ts.map +0 -1
  360. package/dist/ui/QuickToolbar.js +0 -254
  361. package/dist/ui/QuickToolbar.js.map +0 -1
  362. package/dist/ui/SectionHead.d.ts +0 -35
  363. package/dist/ui/SectionHead.d.ts.map +0 -1
  364. package/dist/ui/SectionHead.js +0 -45
  365. package/dist/ui/SectionHead.js.map +0 -1
  366. package/dist/ui/Segmented.d.ts +0 -99
  367. package/dist/ui/Segmented.d.ts.map +0 -1
  368. package/dist/ui/Segmented.js +0 -135
  369. package/dist/ui/Segmented.js.map +0 -1
  370. package/dist/ui/SideSheet.d.ts +0 -70
  371. package/dist/ui/SideSheet.d.ts.map +0 -1
  372. package/dist/ui/SideSheet.js +0 -130
  373. package/dist/ui/SideSheet.js.map +0 -1
  374. package/dist/ui/SplitGroup.d.ts +0 -37
  375. package/dist/ui/SplitGroup.d.ts.map +0 -1
  376. package/dist/ui/SplitGroup.js +0 -36
  377. package/dist/ui/SplitGroup.js.map +0 -1
  378. package/dist/ui/Surface.d.ts +0 -43
  379. package/dist/ui/Surface.d.ts.map +0 -1
  380. package/dist/ui/Surface.js +0 -39
  381. package/dist/ui/Surface.js.map +0 -1
  382. package/dist/ui/Table.d.ts +0 -30
  383. package/dist/ui/Table.d.ts.map +0 -1
  384. package/dist/ui/Table.js +0 -96
  385. package/dist/ui/Table.js.map +0 -1
  386. package/dist/ui/Textarea.d.ts +0 -36
  387. package/dist/ui/Textarea.d.ts.map +0 -1
  388. package/dist/ui/Textarea.js +0 -35
  389. package/dist/ui/Textarea.js.map +0 -1
  390. package/dist/ui/Toast.d.ts +0 -45
  391. package/dist/ui/Toast.d.ts.map +0 -1
  392. package/dist/ui/Toast.js +0 -225
  393. package/dist/ui/Toast.js.map +0 -1
  394. package/dist/ui/WorkspacePicker.d.ts +0 -35
  395. package/dist/ui/WorkspacePicker.d.ts.map +0 -1
  396. package/dist/ui/WorkspacePicker.js +0 -39
  397. package/dist/ui/WorkspacePicker.js.map +0 -1
  398. package/dist/ui/card-css.d.ts +0 -2
  399. package/dist/ui/card-css.d.ts.map +0 -1
  400. package/dist/ui/card-css.generated.d.ts +0 -2
  401. package/dist/ui/card-css.generated.d.ts.map +0 -1
  402. package/dist/ui/card-css.generated.js +0 -4
  403. package/dist/ui/card-css.generated.js.map +0 -1
  404. package/dist/ui/card-css.js +0 -5
  405. package/dist/ui/card-css.js.map +0 -1
  406. package/dist/ui/chevron.d.ts +0 -22
  407. package/dist/ui/chevron.d.ts.map +0 -1
  408. package/dist/ui/chevron.js +0 -33
  409. package/dist/ui/chevron.js.map +0 -1
  410. package/dist/ui/chip-css.d.ts +0 -2
  411. package/dist/ui/chip-css.d.ts.map +0 -1
  412. package/dist/ui/chip-css.generated.d.ts +0 -2
  413. package/dist/ui/chip-css.generated.d.ts.map +0 -1
  414. package/dist/ui/chip-css.generated.js +0 -4
  415. package/dist/ui/chip-css.generated.js.map +0 -1
  416. package/dist/ui/chip-css.js +0 -12
  417. package/dist/ui/chip-css.js.map +0 -1
  418. package/dist/ui/code-viewer-css.d.ts +0 -2
  419. package/dist/ui/code-viewer-css.d.ts.map +0 -1
  420. package/dist/ui/code-viewer-css.generated.d.ts +0 -2
  421. package/dist/ui/code-viewer-css.generated.d.ts.map +0 -1
  422. package/dist/ui/code-viewer-css.generated.js +0 -4
  423. package/dist/ui/code-viewer-css.generated.js.map +0 -1
  424. package/dist/ui/code-viewer-css.js +0 -3
  425. package/dist/ui/code-viewer-css.js.map +0 -1
  426. package/dist/ui/code-viewer-lang.d.ts +0 -15
  427. package/dist/ui/code-viewer-lang.d.ts.map +0 -1
  428. package/dist/ui/code-viewer-lang.js +0 -190
  429. package/dist/ui/code-viewer-lang.js.map +0 -1
  430. package/dist/ui/code-viewer-theme.d.ts +0 -5
  431. package/dist/ui/code-viewer-theme.d.ts.map +0 -1
  432. package/dist/ui/code-viewer-theme.js +0 -138
  433. package/dist/ui/code-viewer-theme.js.map +0 -1
  434. package/dist/ui/controls/button-css.generated.d.ts +0 -2
  435. package/dist/ui/controls/button-css.generated.d.ts.map +0 -1
  436. package/dist/ui/controls/button-css.generated.js +0 -4
  437. package/dist/ui/controls/button-css.generated.js.map +0 -1
  438. package/dist/ui/controls/datetime-css.generated.d.ts +0 -2
  439. package/dist/ui/controls/datetime-css.generated.d.ts.map +0 -1
  440. package/dist/ui/controls/datetime-css.generated.js +0 -4
  441. package/dist/ui/controls/datetime-css.generated.js.map +0 -1
  442. package/dist/ui/controls/field-css.generated.d.ts +0 -2
  443. package/dist/ui/controls/field-css.generated.d.ts.map +0 -1
  444. package/dist/ui/controls/field-css.generated.js +0 -4
  445. package/dist/ui/controls/field-css.generated.js.map +0 -1
  446. package/dist/ui/controls/hint-css.generated.d.ts +0 -2
  447. package/dist/ui/controls/hint-css.generated.d.ts.map +0 -1
  448. package/dist/ui/controls/hint-css.generated.js +0 -4
  449. package/dist/ui/controls/hint-css.generated.js.map +0 -1
  450. package/dist/ui/controls/input-group-css.generated.d.ts +0 -2
  451. package/dist/ui/controls/input-group-css.generated.d.ts.map +0 -1
  452. package/dist/ui/controls/input-group-css.generated.js +0 -4
  453. package/dist/ui/controls/input-group-css.generated.js.map +0 -1
  454. package/dist/ui/controls/loader-bar-css.generated.d.ts +0 -2
  455. package/dist/ui/controls/loader-bar-css.generated.d.ts.map +0 -1
  456. package/dist/ui/controls/loader-bar-css.generated.js +0 -4
  457. package/dist/ui/controls/loader-bar-css.generated.js.map +0 -1
  458. package/dist/ui/controls/loader-css.generated.d.ts +0 -2
  459. package/dist/ui/controls/loader-css.generated.d.ts.map +0 -1
  460. package/dist/ui/controls/loader-css.generated.js +0 -4
  461. package/dist/ui/controls/loader-css.generated.js.map +0 -1
  462. package/dist/ui/controls/loading-css.generated.d.ts +0 -2
  463. package/dist/ui/controls/loading-css.generated.d.ts.map +0 -1
  464. package/dist/ui/controls/loading-css.generated.js +0 -4
  465. package/dist/ui/controls/loading-css.generated.js.map +0 -1
  466. package/dist/ui/controls/pagination-css.generated.d.ts +0 -2
  467. package/dist/ui/controls/pagination-css.generated.d.ts.map +0 -1
  468. package/dist/ui/controls/pagination-css.generated.js +0 -4
  469. package/dist/ui/controls/pagination-css.generated.js.map +0 -1
  470. package/dist/ui/controls/quick-toolbar-css.generated.d.ts +0 -2
  471. package/dist/ui/controls/quick-toolbar-css.generated.d.ts.map +0 -1
  472. package/dist/ui/controls/quick-toolbar-css.generated.js +0 -4
  473. package/dist/ui/controls/quick-toolbar-css.generated.js.map +0 -1
  474. package/dist/ui/controls/section-head-css.generated.d.ts +0 -2
  475. package/dist/ui/controls/section-head-css.generated.d.ts.map +0 -1
  476. package/dist/ui/controls/section-head-css.generated.js +0 -4
  477. package/dist/ui/controls/section-head-css.generated.js.map +0 -1
  478. package/dist/ui/controls/segmented-css.generated.d.ts +0 -2
  479. package/dist/ui/controls/segmented-css.generated.d.ts.map +0 -1
  480. package/dist/ui/controls/segmented-css.generated.js +0 -4
  481. package/dist/ui/controls/segmented-css.generated.js.map +0 -1
  482. package/dist/ui/controls/split-group-css.generated.d.ts +0 -2
  483. package/dist/ui/controls/split-group-css.generated.d.ts.map +0 -1
  484. package/dist/ui/controls/split-group-css.generated.js +0 -4
  485. package/dist/ui/controls/split-group-css.generated.js.map +0 -1
  486. package/dist/ui/controls/table-css.generated.d.ts +0 -2
  487. package/dist/ui/controls/table-css.generated.d.ts.map +0 -1
  488. package/dist/ui/controls/table-css.generated.js +0 -4
  489. package/dist/ui/controls/table-css.generated.js.map +0 -1
  490. package/dist/ui/controls/table-plain-css.generated.d.ts +0 -2
  491. package/dist/ui/controls/table-plain-css.generated.d.ts.map +0 -1
  492. package/dist/ui/controls/table-plain-css.generated.js +0 -4
  493. package/dist/ui/controls/table-plain-css.generated.js.map +0 -1
  494. package/dist/ui/controls-css.d.ts +0 -16
  495. package/dist/ui/controls-css.d.ts.map +0 -1
  496. package/dist/ui/controls-css.js +0 -26
  497. package/dist/ui/controls-css.js.map +0 -1
  498. package/dist/ui/css.d.ts +0 -35
  499. package/dist/ui/css.d.ts.map +0 -1
  500. package/dist/ui/css.js +0 -52
  501. package/dist/ui/css.js.map +0 -1
  502. package/dist/ui/datetime-logic.d.ts +0 -102
  503. package/dist/ui/datetime-logic.d.ts.map +0 -1
  504. package/dist/ui/datetime-logic.js +0 -200
  505. package/dist/ui/datetime-logic.js.map +0 -1
  506. package/dist/ui/feedback-css.d.ts +0 -2
  507. package/dist/ui/feedback-css.d.ts.map +0 -1
  508. package/dist/ui/feedback-css.generated.d.ts +0 -2
  509. package/dist/ui/feedback-css.generated.d.ts.map +0 -1
  510. package/dist/ui/feedback-css.generated.js +0 -4
  511. package/dist/ui/feedback-css.generated.js.map +0 -1
  512. package/dist/ui/feedback-css.js +0 -4
  513. package/dist/ui/feedback-css.js.map +0 -1
  514. package/dist/ui/flip-css.d.ts +0 -2
  515. package/dist/ui/flip-css.d.ts.map +0 -1
  516. package/dist/ui/flip-css.generated.d.ts +0 -2
  517. package/dist/ui/flip-css.generated.d.ts.map +0 -1
  518. package/dist/ui/flip-css.generated.js +0 -4
  519. package/dist/ui/flip-css.generated.js.map +0 -1
  520. package/dist/ui/flip-css.js +0 -4
  521. package/dist/ui/flip-css.js.map +0 -1
  522. package/dist/ui/host-data.d.ts +0 -119
  523. package/dist/ui/host-data.d.ts.map +0 -1
  524. package/dist/ui/host-data.js +0 -122
  525. package/dist/ui/host-data.js.map +0 -1
  526. package/dist/ui/host-toast.d.ts +0 -23
  527. package/dist/ui/host-toast.d.ts.map +0 -1
  528. package/dist/ui/host-toast.js +0 -34
  529. package/dist/ui/host-toast.js.map +0 -1
  530. package/dist/ui/loader-bar-art.d.ts +0 -6
  531. package/dist/ui/loader-bar-art.d.ts.map +0 -1
  532. package/dist/ui/loader-bar-art.js +0 -6
  533. package/dist/ui/loader-bar-art.js.map +0 -1
  534. package/dist/ui/loading-host.d.ts +0 -49
  535. package/dist/ui/loading-host.d.ts.map +0 -1
  536. package/dist/ui/loading-host.js +0 -57
  537. package/dist/ui/loading-host.js.map +0 -1
  538. package/dist/ui/locale.d.ts +0 -4
  539. package/dist/ui/locale.d.ts.map +0 -1
  540. package/dist/ui/locale.js +0 -17
  541. package/dist/ui/locale.js.map +0 -1
  542. package/dist/ui/marquee-css.d.ts +0 -2
  543. package/dist/ui/marquee-css.d.ts.map +0 -1
  544. package/dist/ui/marquee-css.generated.d.ts +0 -2
  545. package/dist/ui/marquee-css.generated.d.ts.map +0 -1
  546. package/dist/ui/marquee-css.generated.js +0 -4
  547. package/dist/ui/marquee-css.generated.js.map +0 -1
  548. package/dist/ui/marquee-css.js +0 -4
  549. package/dist/ui/marquee-css.js.map +0 -1
  550. package/dist/ui/modal-host.d.ts +0 -51
  551. package/dist/ui/modal-host.d.ts.map +0 -1
  552. package/dist/ui/modal-host.js +0 -170
  553. package/dist/ui/modal-host.js.map +0 -1
  554. package/dist/ui/overlay-css.d.ts +0 -2
  555. package/dist/ui/overlay-css.d.ts.map +0 -1
  556. package/dist/ui/overlay-css.generated.d.ts +0 -2
  557. package/dist/ui/overlay-css.generated.d.ts.map +0 -1
  558. package/dist/ui/overlay-css.generated.js +0 -4
  559. package/dist/ui/overlay-css.generated.js.map +0 -1
  560. package/dist/ui/overlay-css.js +0 -2
  561. package/dist/ui/overlay-css.js.map +0 -1
  562. package/dist/ui/overlay.d.ts +0 -62
  563. package/dist/ui/overlay.d.ts.map +0 -1
  564. package/dist/ui/overlay.js +0 -94
  565. package/dist/ui/overlay.js.map +0 -1
  566. package/dist/ui/pagination-logic.d.ts +0 -36
  567. package/dist/ui/pagination-logic.d.ts.map +0 -1
  568. package/dist/ui/pagination-logic.js +0 -73
  569. package/dist/ui/pagination-logic.js.map +0 -1
  570. package/dist/ui/panel-css.d.ts +0 -2
  571. package/dist/ui/panel-css.d.ts.map +0 -1
  572. package/dist/ui/panel-css.generated.d.ts +0 -2
  573. package/dist/ui/panel-css.generated.d.ts.map +0 -1
  574. package/dist/ui/panel-css.generated.js +0 -4
  575. package/dist/ui/panel-css.generated.js.map +0 -1
  576. package/dist/ui/panel-css.js +0 -2
  577. package/dist/ui/panel-css.js.map +0 -1
  578. package/dist/ui/panel-dock-css.d.ts +0 -2
  579. package/dist/ui/panel-dock-css.d.ts.map +0 -1
  580. package/dist/ui/panel-dock-css.generated.d.ts +0 -2
  581. package/dist/ui/panel-dock-css.generated.d.ts.map +0 -1
  582. package/dist/ui/panel-dock-css.generated.js +0 -4
  583. package/dist/ui/panel-dock-css.generated.js.map +0 -1
  584. package/dist/ui/panel-dock-css.js +0 -4
  585. package/dist/ui/panel-dock-css.js.map +0 -1
  586. package/dist/ui/panel-dock-logic.d.ts +0 -67
  587. package/dist/ui/panel-dock-logic.d.ts.map +0 -1
  588. package/dist/ui/panel-dock-logic.js +0 -110
  589. package/dist/ui/panel-dock-logic.js.map +0 -1
  590. package/dist/ui/panel.d.ts +0 -41
  591. package/dist/ui/panel.d.ts.map +0 -1
  592. package/dist/ui/panel.js +0 -37
  593. package/dist/ui/panel.js.map +0 -1
  594. package/dist/ui/picker-css.d.ts +0 -2
  595. package/dist/ui/picker-css.d.ts.map +0 -1
  596. package/dist/ui/picker-css.generated.d.ts +0 -2
  597. package/dist/ui/picker-css.generated.d.ts.map +0 -1
  598. package/dist/ui/picker-css.generated.js +0 -4
  599. package/dist/ui/picker-css.generated.js.map +0 -1
  600. package/dist/ui/picker-css.js +0 -4
  601. package/dist/ui/picker-css.js.map +0 -1
  602. package/dist/ui/picker-icons.d.ts +0 -12
  603. package/dist/ui/picker-icons.d.ts.map +0 -1
  604. package/dist/ui/picker-icons.js +0 -29
  605. package/dist/ui/picker-icons.js.map +0 -1
  606. package/dist/ui/picker-logic.d.ts +0 -33
  607. package/dist/ui/picker-logic.d.ts.map +0 -1
  608. package/dist/ui/picker-logic.js +0 -68
  609. package/dist/ui/picker-logic.js.map +0 -1
  610. package/dist/ui/quick-toolbar-logic.d.ts +0 -76
  611. package/dist/ui/quick-toolbar-logic.d.ts.map +0 -1
  612. package/dist/ui/quick-toolbar-logic.js +0 -40
  613. package/dist/ui/quick-toolbar-logic.js.map +0 -1
  614. package/dist/ui/resizer.d.ts +0 -29
  615. package/dist/ui/resizer.d.ts.map +0 -1
  616. package/dist/ui/resizer.js +0 -42
  617. package/dist/ui/resizer.js.map +0 -1
  618. package/dist/ui/side-panel-css.d.ts +0 -2
  619. package/dist/ui/side-panel-css.d.ts.map +0 -1
  620. package/dist/ui/side-panel-css.generated.d.ts +0 -2
  621. package/dist/ui/side-panel-css.generated.d.ts.map +0 -1
  622. package/dist/ui/side-panel-css.generated.js +0 -4
  623. package/dist/ui/side-panel-css.generated.js.map +0 -1
  624. package/dist/ui/side-panel-css.js +0 -2
  625. package/dist/ui/side-panel-css.js.map +0 -1
  626. package/dist/ui/side-sheet-css.d.ts +0 -2
  627. package/dist/ui/side-sheet-css.d.ts.map +0 -1
  628. package/dist/ui/side-sheet-css.generated.d.ts +0 -2
  629. package/dist/ui/side-sheet-css.generated.d.ts.map +0 -1
  630. package/dist/ui/side-sheet-css.generated.js +0 -4
  631. package/dist/ui/side-sheet-css.generated.js.map +0 -1
  632. package/dist/ui/side-sheet-css.js +0 -2
  633. package/dist/ui/side-sheet-css.js.map +0 -1
  634. package/dist/ui/surface-css.d.ts +0 -2
  635. package/dist/ui/surface-css.d.ts.map +0 -1
  636. package/dist/ui/surface-css.generated.d.ts +0 -2
  637. package/dist/ui/surface-css.generated.d.ts.map +0 -1
  638. package/dist/ui/surface-css.generated.js +0 -4
  639. package/dist/ui/surface-css.generated.js.map +0 -1
  640. package/dist/ui/surface-css.js +0 -7
  641. package/dist/ui/surface-css.js.map +0 -1
  642. package/dist/ui/table-logic.d.ts +0 -110
  643. package/dist/ui/table-logic.d.ts.map +0 -1
  644. package/dist/ui/table-logic.js +0 -81
  645. package/dist/ui/table-logic.js.map +0 -1
  646. package/dist/ui/table-shared.d.ts +0 -101
  647. package/dist/ui/table-shared.d.ts.map +0 -1
  648. package/dist/ui/table-shared.js +0 -229
  649. package/dist/ui/table-shared.js.map +0 -1
  650. package/dist/ui/thenable.d.ts +0 -9
  651. package/dist/ui/thenable.d.ts.map +0 -1
  652. package/dist/ui/thenable.js +0 -15
  653. package/dist/ui/thenable.js.map +0 -1
  654. package/dist/ui/ticker.d.ts +0 -8
  655. package/dist/ui/ticker.d.ts.map +0 -1
  656. package/dist/ui/ticker.js +0 -49
  657. package/dist/ui/ticker.js.map +0 -1
  658. package/dist/ui/toast-host.d.ts +0 -24
  659. package/dist/ui/toast-host.d.ts.map +0 -1
  660. package/dist/ui/toast-host.js +0 -20
  661. package/dist/ui/toast-host.js.map +0 -1
  662. package/dist/ui/tooltip.d.ts +0 -29
  663. package/dist/ui/tooltip.d.ts.map +0 -1
  664. package/dist/ui/tooltip.js +0 -10
  665. package/dist/ui/tooltip.js.map +0 -1
@@ -1,164 +0,0 @@
1
- /**
2
- * 全局浮动 Loading 指示器(UI 基础层 · P1)。
3
- *
4
- * @deprecated 这是「自带定位 + 自带 pill 背景」的复合件,不属于通用加载图标。
5
- * 只要图标请用 {@link Loader}(无背景、无定位,背景与位置归调用方);
6
- * 要居中 / 带文案的整卡请继续用 {@link LoadingToast} / {@link LoadingBlock}。
7
- * 本组件保留不删(消费方可能还在用),但新代码不要再用。
8
- *
9
- * 用法:
10
- * <Loading />
11
- *
12
- * 行为:
13
- * - fixed 定位在主内容容器右下角,**不占布局空间**;
14
- * - 右侧贴齐主内容容器右边缘(`anchorId` 默认 `dshpc-main`),底部留 16px;
15
- * - **三个小方块依次脉动,无任何文案**(基础抽象统一外观,禁止加字;用户 2026-10-06);
16
- * - 监听窗口 resize / scroll / 内容盒 resize,自动跟住内容宽度。
17
- *
18
- * 配套 also 导出 `<RunningBlocks />`:同样的三个脉动方块(无文案),
19
- * 用于表格单元格里的「运行中」状态指示。
20
- *
21
- * 文档登记:docs/design/ui-foundation.md §二「唯一实现表」。
22
- */
23
- import { createElement as h, useEffect, useState } from 'react';
24
- import { createRoot } from 'react-dom/client';
25
- import { t } from '../utils/i18n.js';
26
- import { claimLoadingHost, createLoadingSlot, loadingOverlayClass, } from './loading-host.js';
27
- import { ensureComponentStyles, getStyleKit } from './css.js';
28
- import { LOADING_CSS } from './controls-css.js';
29
- import { Loader } from './Loader.js';
30
- const pillStyle = {
31
- position: 'fixed',
32
- bottom: '16px',
33
- zIndex: 'var(--dshpc-z-dock)',
34
- display: 'inline-flex', alignItems: 'center', gap: '6px',
35
- padding: '5px 10px', borderRadius: 'var(--dshpc-radius-md)',
36
- background: 'var(--dshpc-surface-1)', border: '1px solid var(--dshpc-border)',
37
- boxShadow: 'var(--dshpc-shadow-1, 0 2px 8px rgba(0,0,0,.12))',
38
- color: 'var(--dshpc-fg-2)', fontSize: 'var(--dshpc-font-xs)', lineHeight: 'var(--dshpc-line-sm)',
39
- // 纯提示,不吃鼠标事件(别挡住底下的内容)。
40
- pointerEvents: 'none',
41
- };
42
- const RIGHT_MARGIN_PX = 0;
43
- function useContentRight(anchorId) {
44
- const [right, setRight] = useState(`${RIGHT_MARGIN_PX}px`);
45
- useEffect(() => {
46
- const update = () => {
47
- const el = document.getElementById(anchorId);
48
- if (!el)
49
- return;
50
- const rect = el.getBoundingClientRect();
51
- const viewportW = document.documentElement.clientWidth;
52
- setRight(`${Math.max(0, viewportW - rect.right + RIGHT_MARGIN_PX)}px`);
53
- };
54
- update();
55
- window.addEventListener('resize', update);
56
- window.addEventListener('scroll', update, true);
57
- const ro = new ResizeObserver(update);
58
- const el = document.getElementById(anchorId);
59
- if (el)
60
- ro.observe(el);
61
- return () => {
62
- window.removeEventListener('resize', update);
63
- window.removeEventListener('scroll', update, true);
64
- ro.disconnect();
65
- };
66
- }, [anchorId]);
67
- return right;
68
- }
69
- /** 浮动 Loading pill:三个脉动方块(无文案;基础抽象统一外观)。 */
70
- export function Loading(props) {
71
- ensureComponentStyles('loading', LOADING_CSS);
72
- ensureComponentStyles('loading', LOADING_CSS);
73
- const right = useContentRight(props.anchorId ?? 'dshpc-main');
74
- return h('div', { style: { ...pillStyle, right }, role: 'status', 'aria-live': 'polite' }, h('span', { className: 'dshpc-run-blocks' }, h('i', null), h('i', null), h('i', null)));
75
- }
76
- /** 运行中状态用的三个脉动方块(无文案),颜色跟随 `currentColor`。 */
77
- export function RunningBlocks() {
78
- ensureComponentStyles('loading', LOADING_CSS);
79
- return h('span', { className: 'dshpc-run-blocks' }, h('i', null), h('i', null), h('i', null));
80
- }
81
- function textOf(props) {
82
- return props.text ?? (props.translate ?? t)('loadingDefault');
83
- }
84
- /** 样式一:横排提示卡(转圈在左、文字在右),灰色底与 notify 的 info 卡同色。就地渲染,位置随调用方。 */
85
- export function LoadingToast(props) {
86
- ensureComponentStyles('loading', LOADING_CSS);
87
- return h('div', { className: 'dshpc-loading-toast', role: 'status', 'aria-live': 'polite' }, h(Loader, { size: 'sm' }), h('span', null, textOf(props)));
88
- }
89
- /** 样式二:方块卡(转圈在上、文字在下,内距更大)。就地渲染,位置随调用方。 */
90
- export function LoadingBlock(props) {
91
- ensureComponentStyles('loading', LOADING_CSS);
92
- return h('div', { className: 'dshpc-loading-block', role: 'status', 'aria-live': 'polite' }, h(Loader, { size: 'md' }), h('span', null, textOf(props)));
93
- }
94
- // 宿主实现:唯一浮层根 + 唯一槽位(`createLoadingSlot`)。屏幕上永远最多一张卡。
95
- function createLoadingHost() {
96
- const slot = createLoadingSlot();
97
- let root = null;
98
- let container = null;
99
- function flush() {
100
- const state = slot.current();
101
- if (state === null) {
102
- root?.unmount();
103
- container?.remove();
104
- root = null;
105
- container = null;
106
- return;
107
- }
108
- if (root === null) {
109
- container = document.createElement('div');
110
- container.setAttribute('data-dshpc-loading-host', '');
111
- document.body.appendChild(container);
112
- root = createRoot(container);
113
- }
114
- ensureComponentStyles('loading', LOADING_CSS, getStyleKit());
115
- const { request } = state;
116
- const opacity = Math.min(1, Math.max(0, request.maskOpacity));
117
- root.render(h('div', { className: loadingOverlayClass(request.position) }, request.mask
118
- ? h('div', {
119
- className: 'dshpc-loading-overlay__mask',
120
- style: { background: `rgba(0, 0, 0, ${opacity})` },
121
- })
122
- : null, request.variant === 'block'
123
- ? h(LoadingBlock, { text: request.text, translate: request.translate })
124
- : h(LoadingToast, { text: request.text, translate: request.translate })));
125
- }
126
- return {
127
- show(request) {
128
- const handle = slot.show(request);
129
- flush();
130
- return {
131
- close() {
132
- handle.close();
133
- flush();
134
- },
135
- };
136
- },
137
- };
138
- }
139
- /**
140
- * 命令式加载提示(全局唯一浮层,**不自动消失**)。所有插件、所有位置调用都落在**同一处**
141
- * (默认屏幕下方居中,与 Toast 同屏位),且屏幕上永远只有一张卡 —— 后一次调用直接顶掉
142
- * 前一次,被顶掉那次的句柄再 `close()` 是空操作。收起只能靠自己调 `close()`。
143
- *
144
- * ```ts
145
- * const loading = showLoading({ text: '正在保存…', mask: true, maskOpacity: 0.3 })
146
- * await save()
147
- * loading.close()
148
- * ```
149
- *
150
- * 无 `document` 时静默返回空句柄(Node 单测 / SSR 不炸)。
151
- */
152
- export function showLoading(opts) {
153
- if (typeof document === 'undefined')
154
- return { close: () => { } };
155
- return claimLoadingHost(createLoadingHost).show({
156
- text: opts?.text,
157
- variant: opts?.variant ?? 'toast',
158
- position: opts?.position ?? 'bottom-center',
159
- mask: opts?.mask === true,
160
- maskOpacity: opts?.maskOpacity ?? 0,
161
- translate: opts?.translate,
162
- });
163
- }
164
- //# sourceMappingURL=Loading.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Loading.js","sourceRoot":"","sources":["../../src/ui/Loading.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * 跑马灯文本 —— **全站唯一实现**(L2,P6 从 editor-fields 迁入 ui)
3
- *
4
- * 默认超长省略号;hover 且确实放不下时,来回滚动展示全名。自实现原因:官方 primitives 无跑马灯组件。
5
- * 测宽用 ResizeObserver + 文本变化重测;滚动距离 0 时不启用 hover 动画(`.dshpc-mq-run` 才有动画)。
6
- *
7
- * **双层结构**:外层 `.dshpc-mq` 只负责裁剪(overflow:hidden),内层 `.dshpc-mq-in` 才做
8
- * transform 滚动——文字永远在自己那一块里跑,不会压到相邻文字。皮肤在 `controls-css.ts`。
9
- */
10
- import { type CSSProperties, type ReactElement } from 'react';
11
- /** 跑马灯文本。 */
12
- export declare function MarqueeText(props: {
13
- text: string;
14
- style?: CSSProperties;
15
- title?: string;
16
- /**
17
- * 追加在外层上的类名(**在 `.dshpc-mq` 之后**,用于调用方自带字体 / 字号 / 字色等皮肤)。
18
- * 皮肤写在调用方自己的样式域里,本组件只管滚动;字体类挂外层即可(内层继承)。
19
- */
20
- className?: string;
21
- }): ReactElement;
22
- //# sourceMappingURL=MarqueeText.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarqueeText.d.ts","sourceRoot":"","sources":["../../src/ui/MarqueeText.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAiF,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAI5I,aAAa;AACb,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,YAAY,CAqCf"}
@@ -1,52 +0,0 @@
1
- /**
2
- * 跑马灯文本 —— **全站唯一实现**(L2,P6 从 editor-fields 迁入 ui)
3
- *
4
- * 默认超长省略号;hover 且确实放不下时,来回滚动展示全名。自实现原因:官方 primitives 无跑马灯组件。
5
- * 测宽用 ResizeObserver + 文本变化重测;滚动距离 0 时不启用 hover 动画(`.dshpc-mq-run` 才有动画)。
6
- *
7
- * **双层结构**:外层 `.dshpc-mq` 只负责裁剪(overflow:hidden),内层 `.dshpc-mq-in` 才做
8
- * transform 滚动——文字永远在自己那一块里跑,不会压到相邻文字。皮肤在 `controls-css.ts`。
9
- */
10
- import { createElement as h, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
11
- import { ensureComponentStyles } from './css.js';
12
- import { MARQUEE_CSS } from './marquee-css.js';
13
- /** 跑马灯文本。 */
14
- export function MarqueeText(props) {
15
- ensureComponentStyles('marquee', MARQUEE_CSS);
16
- const outerRef = useRef(null);
17
- const innerRef = useRef(null);
18
- const [dist, setDist] = useState(0);
19
- const measure = useCallback(() => {
20
- const outer = outerRef.current;
21
- const inner = innerRef.current;
22
- if (outer === null || inner === null)
23
- return;
24
- setDist(Math.max(0, Math.ceil(inner.scrollWidth - outer.clientWidth)));
25
- }, []);
26
- useLayoutEffect(() => {
27
- const outer = outerRef.current;
28
- const inner = innerRef.current;
29
- if (outer === null || inner === null)
30
- return;
31
- measure();
32
- const ro = new ResizeObserver(measure); // 抽屉拖宽变窄 / 字体就绪都会改 clientWidth ⇒ 重测
33
- ro.observe(outer);
34
- ro.observe(inner); // webfont 就绪只改 inner.scrollWidth 不改 outer.clientWidth,不观察就漏测(官方 PathLabel 同款双观察)
35
- return () => { ro.disconnect(); };
36
- }, [measure]);
37
- useEffect(() => { measure(); }, [props.text, measure]);
38
- const run = dist > 0;
39
- return h('span', {
40
- ref: outerRef,
41
- className: (run ? 'dshpc-mq dshpc-mq-run' : 'dshpc-mq') + (props.className === undefined ? '' : ` ${props.className}`),
42
- title: props.title,
43
- style: props.style,
44
- }, h('span', {
45
- ref: innerRef,
46
- className: 'dshpc-mq-in',
47
- style: {
48
- ...(run ? { '--dshpc-mq-dist': `${-dist}px`, '--dshpc-mq-dur': `${Math.max(3, Math.round(dist / 30))}s` } : null),
49
- },
50
- }, props.text));
51
- }
52
- //# sourceMappingURL=MarqueeText.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarqueeText.js","sourceRoot":"","sources":["../../src/ui/MarqueeText.ts"],"names":[],"mappings":"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"}
@@ -1,73 +0,0 @@
1
- import { createElement as h, type ReactNode } from 'react';
2
- import { type Translate } from '../utils/i18n.js';
3
- /** 弹窗尺寸档:sm≈确认框 / md(默认) / lg 大窗。 */
4
- export type ModalSize = 'sm' | 'md' | 'lg';
5
- export interface ModalProps {
6
- /** 头部左侧图标位(可不传)。 */
7
- icon?: ReactNode;
8
- title?: ReactNode;
9
- /**
10
- * 标题**下方**的副标题行(等宽小字;会话预览的 sessionId 就放这里 —— 用户 2026-10-22:
11
- * 标识属于标题区,不占正文)。与标题同宽、可换行。
12
- */
13
- subtitle?: ReactNode;
14
- /** 标题右侧小块:数字 / 标签(ReactNode;demo 用 Chip 演示)。 */
15
- headerExtra?: ReactNode;
16
- /** 头部右侧动作区:关闭钮之外的更多按钮(ReactNode)。 */
17
- headerActions?: ReactNode;
18
- /** 关闭回调;不传则 ✕ 不显示(必须自己给关闭路径)。 */
19
- onClose?: () => void;
20
- /** 是否显示右上角 ✕(默认 = `onClose` 是否传入)。确认框传 false 即可去掉小叉。 */
21
- closable?: boolean;
22
- /** 点遮罩是否关闭(默认 true;误触代价大的场景设 false)。 */
23
- closeOnMask?: boolean;
24
- /** 按 Esc 是否关闭(默认 true)。 */
25
- escClose?: boolean;
26
- /**
27
- * 有异步在跑(如 footer 里的 `Button` 正在 loading):为真时遮罩 / Esc / ✕ **三条关闭路径全失效**,
28
- * 内容照常渲染。与 `closeOnMask` / `escClose` / `closable` 是"与"关系 —— 它是否决项,不替代它们。
29
- */
30
- busy?: boolean;
31
- /**
32
- * **锁死全部交互**(与 loading 解耦:按钮转不转圈是另一回事)。为真时:
33
- * · 面板内的核心控件各自按**自己的禁用态**渲染(灰掉、点不动、Tab 跳过);
34
- * · 面板上盖一层**全透明**的点击层,消费方自绘的元素也跟着点不动,鼠标是禁止手势;
35
- * · 遮罩 / Esc / ✕ 三条关闭路径同时失效。
36
- *
37
- * 一律只做「或」,**永不写回调用方的 `disabled`**:本来禁用的解锁后照样禁用,锁定期间你把它改成
38
- * 能用 / 禁用,解锁后也照你的。不压任何灰色遮罩 —— 整块蒙一层会让人以为界面坏了。
39
- * 受控项,不落内部 state:关掉重开自然回到未锁。
40
- */
41
- locked?: boolean;
42
- /** 尺寸档:sm=小确认框家族 / md·lg=大弹窗家族;也可用 width/height 精确覆盖。 */
43
- size?: ModalSize;
44
- /** 面板宽度(默认随 size:sm 360px / md 720px / lg 1120px,均带视口兜底)。 */
45
- width?: string;
46
- /** 面板高度(默认仅 lg 有:calc(100% - 80px),同兄弟项目大弹窗)。 */
47
- height?: string;
48
- /** 面板最大宽度 / 最大高度覆盖(不传走 size 默认)。 */
49
- maxWidth?: string;
50
- maxHeight?: string;
51
- /** 不渲染头部(沉浸式 / 无标题场景)。 */
52
- hideHeader?: boolean;
53
- footer?: ReactNode;
54
- /**
55
- * footer **左侧**的一行过程提示(换字即翻牌,太长省略、hover 跑马灯)。
56
- * 不传 = 不占位、与以前完全一样;传了就自动出现(footer 也可不给,它会自己撑起底栏)。
57
- * 换文案只改这个值,动效由 `FlipText` 负责。
58
- */
59
- notice?: string;
60
- /** footer 上面那条分隔线(默认 true)。传 false 关闭;sm 确认框家族本来就没有。 */
61
- footerDivider?: boolean;
62
- /** 追加 class(只允许补布局 / 视觉修饰,不许覆盖皮肤)。 */
63
- className?: string;
64
- children?: ReactNode;
65
- translate?: Translate;
66
- }
67
- /**
68
- * 模态弹窗(自绘 overlay,**不用 react-dom 的 portal**,避免多一个必需依赖)。
69
- *
70
- * 定位:它是**呈现方式**,不是内容 —— 会话预览这类功能模块要用弹窗时用它来承载(需求文档 §4)。
71
- */
72
- export declare function Modal(props: ModalProps): ReturnType<typeof h>;
73
- //# sourceMappingURL=Modal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/ui/Modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAOpD,qCAAqC;AACrC,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAE1C,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,gDAAgD;IAChD,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,qCAAqC;IACrC,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wCAAwC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,yDAAyD;IACzD,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAwF7D"}
package/dist/ui/Modal.js DELETED
@@ -1,83 +0,0 @@
1
- import { createElement as h } from 'react';
2
- import { t } from '../utils/i18n.js';
3
- import { ensureComponentStyles } from './css.js';
4
- import { FEEDBACK_CSS } from './feedback-css.js';
5
- import { OverlayHead, OverlayLockCatcher, OverlayLockedProvider, OverlayMask, useEscapeClose, useLockGuards } from './overlay.js';
6
- import { PanelSurface } from './panel.js';
7
- import { FlipText } from './FlipText.js';
8
- /**
9
- * 模态弹窗(自绘 overlay,**不用 react-dom 的 portal**,避免多一个必需依赖)。
10
- *
11
- * 定位:它是**呈现方式**,不是内容 —— 会话预览这类功能模块要用弹窗时用它来承载(需求文档 §4)。
12
- */
13
- export function Modal(props) {
14
- ensureComponentStyles('feedback', FEEDBACK_CSS);
15
- const tt = props.translate ?? t;
16
- // busy / locked 都是否决项:三条关闭路径一起封死(✕ 见下面 showClose)。
17
- // locked 比 busy 多管一层:面板整块不可交互(inert)。
18
- const busy = props.busy === true;
19
- const locked = props.locked === true;
20
- const denyClose = busy || locked;
21
- const closeOnMask = !denyClose && props.closeOnMask !== false;
22
- useEscapeClose(!denyClose && props.escClose !== false, denyClose ? undefined : props.onClose);
23
- useLockGuards(locked);
24
- // 空串等同于没给:底栏那块地方复用给下一轮时,传 "" 就把上一句清干净、不留占位。
25
- const notice = props.notice === '' ? undefined : props.notice;
26
- // 默认宽高(兄弟项目真值:小框 360px(task-list.tsx:457)/ 大弹窗 min(1120px,100vw-32px) × calc(100%-80px)(archive-session-css.ts:42))。
27
- // 宽度用 `100%`(相对遮罩盒)而不是 `100vw`:遮罩已按右侧分栏让位(见 feedback.css),
28
- // 用 `100vw` 算出来的宽在分栏在场时会溢出到分栏上,等于白让(用户 2026-10-22)。
29
- const sizeStyle = {
30
- sm: { width: '360px', maxWidth: 'calc(100% - 48px)' },
31
- md: { width: 'min(720px, calc(100% - 32px))', maxHeight: '86vh' },
32
- lg: { width: 'min(1120px, calc(100% - 32px))', height: 'calc(100% - 80px)' },
33
- };
34
- const s = sizeStyle[props.size ?? 'md'];
35
- const showClose = props.closable !== false && props.onClose !== undefined && !denyClose;
36
- const showHeader = props.hideHeader !== true &&
37
- (props.icon !== undefined ||
38
- props.title !== undefined ||
39
- props.subtitle !== undefined ||
40
- props.headerExtra !== undefined ||
41
- props.headerActions !== undefined ||
42
- showClose);
43
- return h(OverlayMask, {
44
- kind: 'center',
45
- closeOnMask,
46
- onClose: denyClose ? undefined : props.onClose,
47
- // inert 子树不参与命中测试,鼠标落到遮罩上 —— 禁止手势得挂在遮罩这层才看得见。
48
- attrs: locked ? { 'data-dshpc-locked': '' } : undefined,
49
- }, h(OverlayLockedProvider, { value: locked },
50
- // 表面(底色/描边/圆角/阴影)来自 panel.css 的 modal 档;`.dshpc-modal` 只剩家族布局,
51
- // 且继续作为既有类名别名存在(消费方写在它上面的覆盖不受影响)。
52
- h(PanelSurface, {
53
- tier: 'modal',
54
- className: `dshpc-modal${props.size ? ` dshpc-modal--${props.size}` : ''}${locked ? ' dshpc-modal--locked dshpc-locked' : ''}${props.className !== undefined && props.className !== '' ? ` ${props.className}` : ''}`,
55
- style: {
56
- width: props.width ?? s.width,
57
- maxWidth: props.maxWidth ?? s.maxWidth,
58
- maxHeight: props.maxHeight ?? s.maxHeight,
59
- height: props.height ?? s.height,
60
- },
61
- stopPropagation: true,
62
- },
63
- // 头部与遮罩都是浮层公共件(overlay.ts),SideSheet 用的是同一套。
64
- showHeader
65
- ? h(OverlayHead, {
66
- icon: props.icon,
67
- title: props.title,
68
- subtitle: props.subtitle,
69
- extra: props.headerExtra,
70
- actions: props.headerActions,
71
- closeLabel: tt('modalClose'),
72
- onClose: showClose ? props.onClose : undefined,
73
- })
74
- : null,
75
- // body 是**唯一滚动容器**:内距归它、滚动条归它、滚动条贴面板右缘;
76
- // 内容只管按流排,不许自己定高、不许自己再开滚动条(用户 2026-10-22 定的口径)。
77
- h('div', { className: 'dshpc-modal__body' }, props.children ?? null), props.footer === undefined && notice === undefined
78
- ? null
79
- : h('div', { className: `dshpc-modal__foot${props.footerDivider === false ? ' dshpc-modal__foot--bare' : ''}` }, notice === undefined ? null : h(FlipText, { text: notice, className: 'dshpc-modal__notice', sweep: true }), props.footer),
80
- // 透明点击层兜住消费方自绘的元素;核心控件此时已各自是真 disabled。
81
- locked ? h(OverlayLockCatcher) : null)));
82
- }
83
- //# sourceMappingURL=Modal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/ui/Modal.ts"],"names":[],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- import { createElement as h, type ReactNode } from 'react';
2
- import { type Translate } from '../utils/i18n.js';
3
- import { type PickerSize } from './Picker.js';
4
- import { type PickerGroup } from './picker-logic.js';
5
- /**
6
- * 模型选择器的两种形态(消费者自选):
7
- * - `grouped`(分组,默认):**一个下拉、完全独立**,供应商做组头、模型列在下面,不与任何东西联动。
8
- * - `cascade`(联动):**两个下拉、彼此联动** —— 先选供应商,后面模型列表跟着筛;
9
- * 换供应商会清空已选模型(旧模型不属于新供应商)。
10
- *
11
- * **返回口径一致**:`onChange` 一律发最终模型值(`${provider}/${id}`);级联态换供应商先发 `''`。
12
- * 选「默认模型」也发 `''` —— 表示没选,调用方自己处理。
13
- *
14
- * **数据自带**:不传 `groups` 就读 `connectHost(ctx, { modelsPath })` 喂进的真实目录。
15
- */
16
- export type ModelPickerVariant = 'grouped' | 'cascade';
17
- export interface ModelPickerProps {
18
- /** 覆盖内置目录(一般不用;测试或特殊数据源时才传)。 */
19
- groups?: PickerGroup[];
20
- variant?: ModelPickerVariant;
21
- /** 最终模型值;`''` = 默认模型(没选)。 */
22
- value?: string;
23
- /** 非受控初始值。 */
24
- defaultValue?: string;
25
- onChange?: (value: string) => void;
26
- /** 是否提供「默认模型」选项(默认提供;不需要就传 false)。 */
27
- allowDefault?: boolean;
28
- /** 「默认模型」的文案(默认取内置字典)。 */
29
- defaultLabel?: string;
30
- /** 未选时的文字(默认「模型」)。 */
31
- placeholder?: string;
32
- /** 触发器前置图标:不传 = 默认星形;传 `null` = 不显示;传元素 = 自定义。 */
33
- icon?: ReactNode | null;
34
- /** 问号提示文字(传了才显示)。 */
35
- hint?: string;
36
- /** 目录不可用时的如实提示(不传则由目录状态决定)。 */
37
- degraded?: boolean;
38
- disabled?: boolean;
39
- clearable?: boolean;
40
- /** 下拉内搜索框(默认开;要关传 false)。 */
41
- searchable?: boolean;
42
- size?: PickerSize;
43
- placement?: 'down' | 'up';
44
- className?: string;
45
- translate?: Translate;
46
- }
47
- export declare function ModelPicker(props: ModelPickerProps): ReturnType<typeof h>;
48
- //# sourceMappingURL=ModelPicker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelPicker.d.ts","sourceRoot":"","sources":["../../src/ui/ModelPicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAA6C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACrG,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAM7E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,CAAA;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,sCAAsC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,sBAAsB;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAqGzE"}
@@ -1,101 +0,0 @@
1
- import { createElement as h, useEffect, useState, useSyncExternalStore } from 'react';
2
- import { t } from '../utils/i18n.js';
3
- import { Picker } from './Picker.js';
4
- import { flattenOptions, groupOf } from './picker-logic.js';
5
- import { modelCatalog } from './host-data.js';
6
- import { sparkleIcon } from './picker-icons.js';
7
- import { ensureComponentStyles } from './css.js';
8
- import { PICKER_CSS } from './picker-css.js';
9
- export function ModelPicker(props) {
10
- ensureComponentStyles('picker', PICKER_CSS);
11
- const tt = props.translate ?? t;
12
- const value = props.value;
13
- const variant = props.variant ?? 'grouped';
14
- const searchable = props.searchable ?? true;
15
- const defaultOption = props.allowDefault === false
16
- ? undefined
17
- : { value: '', label: props.defaultLabel ?? tt('modelDefault') };
18
- // 目录状态:外部没喂目录(Node 自检 / 宿主缺服务)⇒ 空 + 如实降级,不编数据。
19
- const catalog = useSyncExternalStore(modelCatalog.subscribe, modelCatalog.getSnapshot);
20
- const groups = props.groups ??
21
- (catalog.status === 'ready'
22
- ? catalog.routes.map((route) => ({
23
- value: route.provider,
24
- label: route.displayName,
25
- options: route.models.map((model) => ({
26
- value: `${route.provider}/${model.id}`,
27
- label: model.name ?? model.id,
28
- })),
29
- }))
30
- : []);
31
- // 目录不可用、或读出来是空的 ⇒ 如实提示「候选可能不完整」,别让空列表看起来像坏了。
32
- const degraded = props.degraded ?? (catalog.status === 'unavailable' || (catalog.status === 'ready' && groups.length === 0));
33
- const icon = props.icon === undefined ? sparkleIcon() : props.icon ?? undefined;
34
- const emitModel = (v) => {
35
- props.onChange?.(typeof v === 'string' ? v : v[0] ?? '');
36
- };
37
- // 联动态的厂商选择必须组件自己记 —— 值是从模型值反推的,换厂商会把模型清成 ''
38
- // (拍板口径),反推就再也找不到刚点的厂商(2026-10-20 真机:选完厂商后面仍是黑的)。
39
- const [pickedProvider, setPickedProvider] = useState('');
40
- const curGroup = groupOf(groups, value ?? '');
41
- const provider = pickedProvider !== '' && groups.some((g) => g.value === pickedProvider)
42
- ? pickedProvider
43
- : curGroup?.value ?? '';
44
- // 值定到某模型上 ⇒ 临时选的厂商功成身退,回到按值反推
45
- useEffect(() => {
46
- if (value !== undefined && value !== '')
47
- setPickedProvider('');
48
- }, [value]);
49
- if (variant === 'grouped') {
50
- return h(Picker, {
51
- // 「默认模型」放最上面:空 label 的组,Picker 只渲染选项不渲染组头
52
- groups: defaultOption === undefined
53
- ? groups
54
- : [{ value: '', label: '', options: [defaultOption] }, ...groups],
55
- value,
56
- defaultValue: props.defaultValue,
57
- icon,
58
- placeholder: props.placeholder ?? tt('modelModel'),
59
- degraded,
60
- disabled: props.disabled,
61
- clearable: props.clearable,
62
- searchable,
63
- hint: props.hint,
64
- size: props.size,
65
- placement: props.placement,
66
- className: props.className,
67
- onChange: emitModel,
68
- });
69
- }
70
- // cascade:两个下拉联动 —— 供应商筛模型;换供应商清空模型
71
- const group = groups.find((g) => g.value === provider);
72
- const options = group === undefined ? [] : flattenOptions([group]);
73
- return h('div', { className: 'dshpc-picker__row' }, h(Picker, {
74
- options: groups.map((g) => ({ value: g.value, label: g.label })),
75
- value: provider === '' ? undefined : provider,
76
- placeholder: tt('modelProvider'),
77
- degraded,
78
- disabled: props.disabled,
79
- searchable: false,
80
- onChange: (v) => {
81
- setPickedProvider(typeof v === 'string' ? v : v[0] ?? '');
82
- props.onChange?.('');
83
- },
84
- }), h(Picker, {
85
- options: defaultOption === undefined ? options : [defaultOption, ...options],
86
- value,
87
- defaultValue: props.defaultValue,
88
- icon,
89
- placeholder: props.placeholder ?? tt('modelModel'),
90
- degraded,
91
- disabled: props.disabled === true || provider === '',
92
- clearable: props.clearable,
93
- searchable,
94
- hint: props.hint,
95
- size: props.size,
96
- placement: props.placement,
97
- className: props.className,
98
- onChange: emitModel,
99
- }));
100
- }
101
- //# sourceMappingURL=ModelPicker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelPicker.js","sourceRoot":"","sources":["../../src/ui/ModelPicker.ts"],"names":[],"mappings":"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"}