dsh-plugin-core 0.33.1 → 0.33.2

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 (638) 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/ui/feedback/host-toast.d.ts +1 -1
  5. package/dist/ui/feedback/host-toast.js +1 -1
  6. package/docs/help/explorer.doc.ts +1 -1
  7. package/docs/help/explorer.md +1 -1
  8. package/docs/help/integration.doc.ts +2 -2
  9. package/docs/help/integration.md +2 -2
  10. package/docs/help/session.doc.ts +1 -1
  11. package/docs/help/session.md +1 -1
  12. package/docs/help/ui.doc.ts +1 -1
  13. package/docs/help/ui.md +1 -1
  14. package/package.json +16 -16
  15. package/dist/explorer/ExplorerPanel.d.ts +0 -25
  16. package/dist/explorer/ExplorerPanel.d.ts.map +0 -1
  17. package/dist/explorer/ExplorerPanel.js +0 -111
  18. package/dist/explorer/ExplorerPanel.js.map +0 -1
  19. package/dist/explorer/FileBrowser.d.ts +0 -58
  20. package/dist/explorer/FileBrowser.d.ts.map +0 -1
  21. package/dist/explorer/FileBrowser.js +0 -632
  22. package/dist/explorer/FileBrowser.js.map +0 -1
  23. package/dist/explorer/crumb-nav.d.ts +0 -45
  24. package/dist/explorer/crumb-nav.d.ts.map +0 -1
  25. package/dist/explorer/crumb-nav.js +0 -78
  26. package/dist/explorer/crumb-nav.js.map +0 -1
  27. package/dist/explorer/crumbs-menu.d.ts +0 -37
  28. package/dist/explorer/crumbs-menu.d.ts.map +0 -1
  29. package/dist/explorer/crumbs-menu.js +0 -102
  30. package/dist/explorer/crumbs-menu.js.map +0 -1
  31. package/dist/explorer/explorer-css.d.ts +0 -2
  32. package/dist/explorer/explorer-css.d.ts.map +0 -1
  33. package/dist/explorer/explorer-css.generated.d.ts +0 -2
  34. package/dist/explorer/explorer-css.generated.d.ts.map +0 -1
  35. package/dist/explorer/explorer-css.generated.js +0 -4
  36. package/dist/explorer/explorer-css.generated.js.map +0 -1
  37. package/dist/explorer/explorer-css.js +0 -3
  38. package/dist/explorer/explorer-css.js.map +0 -1
  39. package/dist/explorer/fs-face.d.ts +0 -36
  40. package/dist/explorer/fs-face.d.ts.map +0 -1
  41. package/dist/explorer/fs-face.js +0 -74
  42. package/dist/explorer/fs-face.js.map +0 -1
  43. package/dist/explorer/index.d.ts +0 -6
  44. package/dist/explorer/index.d.ts.map +0 -1
  45. package/dist/explorer/index.js +0 -6
  46. package/dist/explorer/index.js.map +0 -1
  47. package/dist/explorer/landing.d.ts +0 -26
  48. package/dist/explorer/landing.d.ts.map +0 -1
  49. package/dist/explorer/landing.js +0 -43
  50. package/dist/explorer/landing.js.map +0 -1
  51. package/dist/explorer/open.d.ts +0 -137
  52. package/dist/explorer/open.d.ts.map +0 -1
  53. package/dist/explorer/open.js +0 -350
  54. package/dist/explorer/open.js.map +0 -1
  55. package/dist/explorer/picker-placement.d.ts +0 -69
  56. package/dist/explorer/picker-placement.d.ts.map +0 -1
  57. package/dist/explorer/picker-placement.js +0 -122
  58. package/dist/explorer/picker-placement.js.map +0 -1
  59. package/dist/explorer/preview/BytesPreview.d.ts +0 -12
  60. package/dist/explorer/preview/BytesPreview.d.ts.map +0 -1
  61. package/dist/explorer/preview/BytesPreview.js +0 -60
  62. package/dist/explorer/preview/BytesPreview.js.map +0 -1
  63. package/dist/explorer/preview/HtmlPreview.d.ts +0 -17
  64. package/dist/explorer/preview/HtmlPreview.d.ts.map +0 -1
  65. package/dist/explorer/preview/HtmlPreview.js +0 -113
  66. package/dist/explorer/preview/HtmlPreview.js.map +0 -1
  67. package/dist/explorer/preview/OfficePreview.d.ts +0 -12
  68. package/dist/explorer/preview/OfficePreview.d.ts.map +0 -1
  69. package/dist/explorer/preview/OfficePreview.js +0 -63
  70. package/dist/explorer/preview/OfficePreview.js.map +0 -1
  71. package/dist/explorer/preview/TextPreview.d.ts +0 -18
  72. package/dist/explorer/preview/TextPreview.d.ts.map +0 -1
  73. package/dist/explorer/preview/TextPreview.js +0 -122
  74. package/dist/explorer/preview/TextPreview.js.map +0 -1
  75. package/dist/explorer/preview/index.d.ts +0 -24
  76. package/dist/explorer/preview/index.d.ts.map +0 -1
  77. package/dist/explorer/preview/index.js +0 -58
  78. package/dist/explorer/preview/index.js.map +0 -1
  79. package/dist/explorer/preview/md-labels.d.ts +0 -3
  80. package/dist/explorer/preview/md-labels.d.ts.map +0 -1
  81. package/dist/explorer/preview/md-labels.js +0 -12
  82. package/dist/explorer/preview/md-labels.js.map +0 -1
  83. package/dist/explorer/preview-title-bar.d.ts +0 -26
  84. package/dist/explorer/preview-title-bar.d.ts.map +0 -1
  85. package/dist/explorer/preview-title-bar.js +0 -48
  86. package/dist/explorer/preview-title-bar.js.map +0 -1
  87. package/dist/explorer/types.d.ts +0 -259
  88. package/dist/explorer/types.d.ts.map +0 -1
  89. package/dist/explorer/types.js +0 -379
  90. package/dist/explorer/types.js.map +0 -1
  91. package/dist/session/SessionViewModal.d.ts +0 -37
  92. package/dist/session/SessionViewModal.d.ts.map +0 -1
  93. package/dist/session/SessionViewModal.js +0 -1133
  94. package/dist/session/SessionViewModal.js.map +0 -1
  95. package/dist/session/changes.d.ts +0 -73
  96. package/dist/session/changes.d.ts.map +0 -1
  97. package/dist/session/changes.js +0 -134
  98. package/dist/session/changes.js.map +0 -1
  99. package/dist/session/faces.d.ts +0 -244
  100. package/dist/session/faces.d.ts.map +0 -1
  101. package/dist/session/faces.js +0 -17
  102. package/dist/session/faces.js.map +0 -1
  103. package/dist/session/index.d.ts +0 -7
  104. package/dist/session/index.d.ts.map +0 -1
  105. package/dist/session/index.js +0 -27
  106. package/dist/session/index.js.map +0 -1
  107. package/dist/session/mirror/AskCard.d.ts +0 -35
  108. package/dist/session/mirror/AskCard.d.ts.map +0 -1
  109. package/dist/session/mirror/AskCard.js +0 -131
  110. package/dist/session/mirror/AskCard.js.map +0 -1
  111. package/dist/session/mirror/BashRow.d.ts +0 -14
  112. package/dist/session/mirror/BashRow.d.ts.map +0 -1
  113. package/dist/session/mirror/BashRow.js +0 -143
  114. package/dist/session/mirror/BashRow.js.map +0 -1
  115. package/dist/session/mirror/ChangedFileDiff.d.ts +0 -25
  116. package/dist/session/mirror/ChangedFileDiff.d.ts.map +0 -1
  117. package/dist/session/mirror/ChangedFileDiff.js +0 -178
  118. package/dist/session/mirror/ChangedFileDiff.js.map +0 -1
  119. package/dist/session/mirror/ChangedFilesCard.d.ts +0 -18
  120. package/dist/session/mirror/ChangedFilesCard.d.ts.map +0 -1
  121. package/dist/session/mirror/ChangedFilesCard.js +0 -165
  122. package/dist/session/mirror/ChangedFilesCard.js.map +0 -1
  123. package/dist/session/mirror/ChatGroupSeat.d.ts +0 -24
  124. package/dist/session/mirror/ChatGroupSeat.d.ts.map +0 -1
  125. package/dist/session/mirror/ChatGroupSeat.js +0 -135
  126. package/dist/session/mirror/ChatGroupSeat.js.map +0 -1
  127. package/dist/session/mirror/ChatNodeSeat.d.ts +0 -43
  128. package/dist/session/mirror/ChatNodeSeat.d.ts.map +0 -1
  129. package/dist/session/mirror/ChatNodeSeat.js +0 -133
  130. package/dist/session/mirror/ChatNodeSeat.js.map +0 -1
  131. package/dist/session/mirror/ChatView.d.ts +0 -47
  132. package/dist/session/mirror/ChatView.d.ts.map +0 -1
  133. package/dist/session/mirror/ChatView.js +0 -138
  134. package/dist/session/mirror/ChatView.js.map +0 -1
  135. package/dist/session/mirror/CommandCard.d.ts +0 -20
  136. package/dist/session/mirror/CommandCard.d.ts.map +0 -1
  137. package/dist/session/mirror/CommandCard.js +0 -69
  138. package/dist/session/mirror/CommandCard.js.map +0 -1
  139. package/dist/session/mirror/ContextInjectionRow.d.ts +0 -18
  140. package/dist/session/mirror/ContextInjectionRow.d.ts.map +0 -1
  141. package/dist/session/mirror/ContextInjectionRow.js +0 -50
  142. package/dist/session/mirror/ContextInjectionRow.js.map +0 -1
  143. package/dist/session/mirror/Deliverables.d.ts +0 -24
  144. package/dist/session/mirror/Deliverables.d.ts.map +0 -1
  145. package/dist/session/mirror/Deliverables.js +0 -175
  146. package/dist/session/mirror/Deliverables.js.map +0 -1
  147. package/dist/session/mirror/GenericCommandCard.d.ts +0 -136
  148. package/dist/session/mirror/GenericCommandCard.d.ts.map +0 -1
  149. package/dist/session/mirror/GenericCommandCard.js +0 -948
  150. package/dist/session/mirror/GenericCommandCard.js.map +0 -1
  151. package/dist/session/mirror/MessageIconActions.d.ts +0 -16
  152. package/dist/session/mirror/MessageIconActions.d.ts.map +0 -1
  153. package/dist/session/mirror/MessageIconActions.js +0 -69
  154. package/dist/session/mirror/MessageIconActions.js.map +0 -1
  155. package/dist/session/mirror/MessageItem.d.ts +0 -93
  156. package/dist/session/mirror/MessageItem.d.ts.map +0 -1
  157. package/dist/session/mirror/MessageItem.js +0 -194
  158. package/dist/session/mirror/MessageItem.js.map +0 -1
  159. package/dist/session/mirror/ReasoningRow.d.ts +0 -11
  160. package/dist/session/mirror/ReasoningRow.d.ts.map +0 -1
  161. package/dist/session/mirror/ReasoningRow.js +0 -111
  162. package/dist/session/mirror/ReasoningRow.js.map +0 -1
  163. package/dist/session/mirror/RunningStatus.d.ts +0 -12
  164. package/dist/session/mirror/RunningStatus.d.ts.map +0 -1
  165. package/dist/session/mirror/RunningStatus.js +0 -57
  166. package/dist/session/mirror/RunningStatus.js.map +0 -1
  167. package/dist/session/mirror/StatDialog.d.ts +0 -20
  168. package/dist/session/mirror/StatDialog.d.ts.map +0 -1
  169. package/dist/session/mirror/StatDialog.js +0 -49
  170. package/dist/session/mirror/StatDialog.js.map +0 -1
  171. package/dist/session/mirror/ToolDetails.d.ts +0 -65
  172. package/dist/session/mirror/ToolDetails.d.ts.map +0 -1
  173. package/dist/session/mirror/ToolDetails.js +0 -268
  174. package/dist/session/mirror/ToolDetails.js.map +0 -1
  175. package/dist/session/mirror/TurnProcessNodeView.d.ts +0 -10
  176. package/dist/session/mirror/TurnProcessNodeView.d.ts.map +0 -1
  177. package/dist/session/mirror/TurnProcessNodeView.js +0 -57
  178. package/dist/session/mirror/TurnProcessNodeView.js.map +0 -1
  179. package/dist/session/mirror/TurnTailNodeView.d.ts +0 -57
  180. package/dist/session/mirror/TurnTailNodeView.d.ts.map +0 -1
  181. package/dist/session/mirror/TurnTailNodeView.js +0 -106
  182. package/dist/session/mirror/TurnTailNodeView.js.map +0 -1
  183. package/dist/session/mirror/TurnTriggerNodeView.d.ts +0 -16
  184. package/dist/session/mirror/TurnTriggerNodeView.d.ts.map +0 -1
  185. package/dist/session/mirror/TurnTriggerNodeView.js +0 -103
  186. package/dist/session/mirror/TurnTriggerNodeView.js.map +0 -1
  187. package/dist/session/mirror/TurnUsagePanel.d.ts +0 -21
  188. package/dist/session/mirror/TurnUsagePanel.d.ts.map +0 -1
  189. package/dist/session/mirror/TurnUsagePanel.js +0 -41
  190. package/dist/session/mirror/TurnUsagePanel.js.map +0 -1
  191. package/dist/session/mirror/control-details.d.ts +0 -9
  192. package/dist/session/mirror/control-details.d.ts.map +0 -1
  193. package/dist/session/mirror/control-details.js +0 -549
  194. package/dist/session/mirror/control-details.js.map +0 -1
  195. package/dist/session/mirror/detail-i18n.d.ts +0 -4
  196. package/dist/session/mirror/detail-i18n.d.ts.map +0 -1
  197. package/dist/session/mirror/detail-i18n.js +0 -153
  198. package/dist/session/mirror/detail-i18n.js.map +0 -1
  199. package/dist/session/mirror/message-chrome.d.ts +0 -39
  200. package/dist/session/mirror/message-chrome.d.ts.map +0 -1
  201. package/dist/session/mirror/message-chrome.js +0 -153
  202. package/dist/session/mirror/message-chrome.js.map +0 -1
  203. package/dist/session/mirror/process-groups.d.ts +0 -56
  204. package/dist/session/mirror/process-groups.d.ts.map +0 -1
  205. package/dist/session/mirror/process-groups.js +0 -202
  206. package/dist/session/mirror/process-groups.js.map +0 -1
  207. package/dist/session/official-classes.d.ts +0 -28
  208. package/dist/session/official-classes.d.ts.map +0 -1
  209. package/dist/session/official-classes.js +0 -152
  210. package/dist/session/official-classes.js.map +0 -1
  211. package/dist/session/open-review.d.ts +0 -13
  212. package/dist/session/open-review.d.ts.map +0 -1
  213. package/dist/session/open-review.js +0 -32
  214. package/dist/session/open-review.js.map +0 -1
  215. package/dist/session/open-session-view.d.ts +0 -19
  216. package/dist/session/open-session-view.d.ts.map +0 -1
  217. package/dist/session/open-session-view.js +0 -147
  218. package/dist/session/open-session-view.js.map +0 -1
  219. package/dist/session/pending-inputs.d.ts +0 -33
  220. package/dist/session/pending-inputs.d.ts.map +0 -1
  221. package/dist/session/pending-inputs.js +0 -130
  222. package/dist/session/pending-inputs.js.map +0 -1
  223. package/dist/session/session-css.d.ts +0 -2
  224. package/dist/session/session-css.d.ts.map +0 -1
  225. package/dist/session/session-css.generated.d.ts +0 -2
  226. package/dist/session/session-css.generated.d.ts.map +0 -1
  227. package/dist/session/session-css.generated.js +0 -4
  228. package/dist/session/session-css.generated.js.map +0 -1
  229. package/dist/session/session-css.js +0 -3
  230. package/dist/session/session-css.js.map +0 -1
  231. package/dist/session/tail-follow.d.ts +0 -29
  232. package/dist/session/tail-follow.d.ts.map +0 -1
  233. package/dist/session/tail-follow.js +0 -106
  234. package/dist/session/tail-follow.js.map +0 -1
  235. package/dist/session/types.d.ts +0 -28
  236. package/dist/session/types.d.ts.map +0 -1
  237. package/dist/session/types.js +0 -12
  238. package/dist/session/types.js.map +0 -1
  239. package/dist/ui/AlertModal.d.ts +0 -41
  240. package/dist/ui/AlertModal.d.ts.map +0 -1
  241. package/dist/ui/AlertModal.js +0 -45
  242. package/dist/ui/AlertModal.js.map +0 -1
  243. package/dist/ui/Button.d.ts +0 -102
  244. package/dist/ui/Button.d.ts.map +0 -1
  245. package/dist/ui/Button.js +0 -233
  246. package/dist/ui/Button.js.map +0 -1
  247. package/dist/ui/Card.d.ts +0 -65
  248. package/dist/ui/Card.d.ts.map +0 -1
  249. package/dist/ui/Card.js +0 -109
  250. package/dist/ui/Card.js.map +0 -1
  251. package/dist/ui/Checkbox.d.ts +0 -24
  252. package/dist/ui/Checkbox.d.ts.map +0 -1
  253. package/dist/ui/Checkbox.js +0 -35
  254. package/dist/ui/Checkbox.js.map +0 -1
  255. package/dist/ui/Chip.d.ts +0 -28
  256. package/dist/ui/Chip.d.ts.map +0 -1
  257. package/dist/ui/Chip.js +0 -36
  258. package/dist/ui/Chip.js.map +0 -1
  259. package/dist/ui/CodeViewer.d.ts +0 -38
  260. package/dist/ui/CodeViewer.d.ts.map +0 -1
  261. package/dist/ui/CodeViewer.js +0 -107
  262. package/dist/ui/CodeViewer.js.map +0 -1
  263. package/dist/ui/ConfirmModal.d.ts +0 -50
  264. package/dist/ui/ConfirmModal.d.ts.map +0 -1
  265. package/dist/ui/ConfirmModal.js +0 -47
  266. package/dist/ui/ConfirmModal.js.map +0 -1
  267. package/dist/ui/DateTimePicker.d.ts +0 -45
  268. package/dist/ui/DateTimePicker.d.ts.map +0 -1
  269. package/dist/ui/DateTimePicker.js +0 -462
  270. package/dist/ui/DateTimePicker.js.map +0 -1
  271. package/dist/ui/EmptyState.d.ts +0 -12
  272. package/dist/ui/EmptyState.d.ts.map +0 -1
  273. package/dist/ui/EmptyState.js +0 -10
  274. package/dist/ui/EmptyState.js.map +0 -1
  275. package/dist/ui/Field.d.ts +0 -125
  276. package/dist/ui/Field.d.ts.map +0 -1
  277. package/dist/ui/Field.js +0 -175
  278. package/dist/ui/Field.js.map +0 -1
  279. package/dist/ui/FieldHint.d.ts +0 -18
  280. package/dist/ui/FieldHint.d.ts.map +0 -1
  281. package/dist/ui/FieldHint.js +0 -40
  282. package/dist/ui/FieldHint.js.map +0 -1
  283. package/dist/ui/FlipText.d.ts +0 -43
  284. package/dist/ui/FlipText.d.ts.map +0 -1
  285. package/dist/ui/FlipText.js +0 -59
  286. package/dist/ui/FlipText.js.map +0 -1
  287. package/dist/ui/InputGroup.d.ts +0 -91
  288. package/dist/ui/InputGroup.d.ts.map +0 -1
  289. package/dist/ui/InputGroup.js +0 -125
  290. package/dist/ui/InputGroup.js.map +0 -1
  291. package/dist/ui/LiveText.d.ts +0 -13
  292. package/dist/ui/LiveText.d.ts.map +0 -1
  293. package/dist/ui/LiveText.js +0 -19
  294. package/dist/ui/LiveText.js.map +0 -1
  295. package/dist/ui/Loader.d.ts +0 -49
  296. package/dist/ui/Loader.d.ts.map +0 -1
  297. package/dist/ui/Loader.js +0 -79
  298. package/dist/ui/Loader.js.map +0 -1
  299. package/dist/ui/LoaderBar.d.ts +0 -38
  300. package/dist/ui/LoaderBar.d.ts.map +0 -1
  301. package/dist/ui/LoaderBar.js +0 -79
  302. package/dist/ui/LoaderBar.js.map +0 -1
  303. package/dist/ui/Loading.d.ts +0 -69
  304. package/dist/ui/Loading.d.ts.map +0 -1
  305. package/dist/ui/Loading.js +0 -164
  306. package/dist/ui/Loading.js.map +0 -1
  307. package/dist/ui/MarqueeText.d.ts +0 -22
  308. package/dist/ui/MarqueeText.d.ts.map +0 -1
  309. package/dist/ui/MarqueeText.js +0 -52
  310. package/dist/ui/MarqueeText.js.map +0 -1
  311. package/dist/ui/Modal.d.ts +0 -73
  312. package/dist/ui/Modal.d.ts.map +0 -1
  313. package/dist/ui/Modal.js +0 -83
  314. package/dist/ui/Modal.js.map +0 -1
  315. package/dist/ui/ModelPicker.d.ts +0 -48
  316. package/dist/ui/ModelPicker.d.ts.map +0 -1
  317. package/dist/ui/ModelPicker.js +0 -101
  318. package/dist/ui/ModelPicker.js.map +0 -1
  319. package/dist/ui/Pagination.d.ts +0 -59
  320. package/dist/ui/Pagination.d.ts.map +0 -1
  321. package/dist/ui/Pagination.js +0 -112
  322. package/dist/ui/Pagination.js.map +0 -1
  323. package/dist/ui/PanelDock.d.ts +0 -132
  324. package/dist/ui/PanelDock.d.ts.map +0 -1
  325. package/dist/ui/PanelDock.js +0 -390
  326. package/dist/ui/PanelDock.js.map +0 -1
  327. package/dist/ui/Picker.d.ts +0 -56
  328. package/dist/ui/Picker.d.ts.map +0 -1
  329. package/dist/ui/Picker.js +0 -244
  330. package/dist/ui/Picker.js.map +0 -1
  331. package/dist/ui/QuickToolbar.d.ts +0 -54
  332. package/dist/ui/QuickToolbar.d.ts.map +0 -1
  333. package/dist/ui/QuickToolbar.js +0 -254
  334. package/dist/ui/QuickToolbar.js.map +0 -1
  335. package/dist/ui/SectionHead.d.ts +0 -35
  336. package/dist/ui/SectionHead.d.ts.map +0 -1
  337. package/dist/ui/SectionHead.js +0 -45
  338. package/dist/ui/SectionHead.js.map +0 -1
  339. package/dist/ui/Segmented.d.ts +0 -99
  340. package/dist/ui/Segmented.d.ts.map +0 -1
  341. package/dist/ui/Segmented.js +0 -135
  342. package/dist/ui/Segmented.js.map +0 -1
  343. package/dist/ui/SideSheet.d.ts +0 -70
  344. package/dist/ui/SideSheet.d.ts.map +0 -1
  345. package/dist/ui/SideSheet.js +0 -130
  346. package/dist/ui/SideSheet.js.map +0 -1
  347. package/dist/ui/SplitGroup.d.ts +0 -37
  348. package/dist/ui/SplitGroup.d.ts.map +0 -1
  349. package/dist/ui/SplitGroup.js +0 -36
  350. package/dist/ui/SplitGroup.js.map +0 -1
  351. package/dist/ui/Surface.d.ts +0 -43
  352. package/dist/ui/Surface.d.ts.map +0 -1
  353. package/dist/ui/Surface.js +0 -39
  354. package/dist/ui/Surface.js.map +0 -1
  355. package/dist/ui/Table.d.ts +0 -30
  356. package/dist/ui/Table.d.ts.map +0 -1
  357. package/dist/ui/Table.js +0 -96
  358. package/dist/ui/Table.js.map +0 -1
  359. package/dist/ui/Textarea.d.ts +0 -36
  360. package/dist/ui/Textarea.d.ts.map +0 -1
  361. package/dist/ui/Textarea.js +0 -35
  362. package/dist/ui/Textarea.js.map +0 -1
  363. package/dist/ui/Toast.d.ts +0 -45
  364. package/dist/ui/Toast.d.ts.map +0 -1
  365. package/dist/ui/Toast.js +0 -225
  366. package/dist/ui/Toast.js.map +0 -1
  367. package/dist/ui/WorkspacePicker.d.ts +0 -35
  368. package/dist/ui/WorkspacePicker.d.ts.map +0 -1
  369. package/dist/ui/WorkspacePicker.js +0 -39
  370. package/dist/ui/WorkspacePicker.js.map +0 -1
  371. package/dist/ui/card-css.d.ts +0 -2
  372. package/dist/ui/card-css.d.ts.map +0 -1
  373. package/dist/ui/card-css.generated.d.ts +0 -2
  374. package/dist/ui/card-css.generated.d.ts.map +0 -1
  375. package/dist/ui/card-css.generated.js +0 -4
  376. package/dist/ui/card-css.generated.js.map +0 -1
  377. package/dist/ui/card-css.js +0 -5
  378. package/dist/ui/card-css.js.map +0 -1
  379. package/dist/ui/chevron.d.ts +0 -22
  380. package/dist/ui/chevron.d.ts.map +0 -1
  381. package/dist/ui/chevron.js +0 -33
  382. package/dist/ui/chevron.js.map +0 -1
  383. package/dist/ui/chip-css.d.ts +0 -2
  384. package/dist/ui/chip-css.d.ts.map +0 -1
  385. package/dist/ui/chip-css.generated.d.ts +0 -2
  386. package/dist/ui/chip-css.generated.d.ts.map +0 -1
  387. package/dist/ui/chip-css.generated.js +0 -4
  388. package/dist/ui/chip-css.generated.js.map +0 -1
  389. package/dist/ui/chip-css.js +0 -12
  390. package/dist/ui/chip-css.js.map +0 -1
  391. package/dist/ui/code-viewer-css.d.ts +0 -2
  392. package/dist/ui/code-viewer-css.d.ts.map +0 -1
  393. package/dist/ui/code-viewer-css.generated.d.ts +0 -2
  394. package/dist/ui/code-viewer-css.generated.d.ts.map +0 -1
  395. package/dist/ui/code-viewer-css.generated.js +0 -4
  396. package/dist/ui/code-viewer-css.generated.js.map +0 -1
  397. package/dist/ui/code-viewer-css.js +0 -3
  398. package/dist/ui/code-viewer-css.js.map +0 -1
  399. package/dist/ui/code-viewer-lang.d.ts +0 -15
  400. package/dist/ui/code-viewer-lang.d.ts.map +0 -1
  401. package/dist/ui/code-viewer-lang.js +0 -190
  402. package/dist/ui/code-viewer-lang.js.map +0 -1
  403. package/dist/ui/code-viewer-theme.d.ts +0 -5
  404. package/dist/ui/code-viewer-theme.d.ts.map +0 -1
  405. package/dist/ui/code-viewer-theme.js +0 -138
  406. package/dist/ui/code-viewer-theme.js.map +0 -1
  407. package/dist/ui/controls/button-css.generated.d.ts +0 -2
  408. package/dist/ui/controls/button-css.generated.d.ts.map +0 -1
  409. package/dist/ui/controls/button-css.generated.js +0 -4
  410. package/dist/ui/controls/button-css.generated.js.map +0 -1
  411. package/dist/ui/controls/datetime-css.generated.d.ts +0 -2
  412. package/dist/ui/controls/datetime-css.generated.d.ts.map +0 -1
  413. package/dist/ui/controls/datetime-css.generated.js +0 -4
  414. package/dist/ui/controls/datetime-css.generated.js.map +0 -1
  415. package/dist/ui/controls/field-css.generated.d.ts +0 -2
  416. package/dist/ui/controls/field-css.generated.d.ts.map +0 -1
  417. package/dist/ui/controls/field-css.generated.js +0 -4
  418. package/dist/ui/controls/field-css.generated.js.map +0 -1
  419. package/dist/ui/controls/hint-css.generated.d.ts +0 -2
  420. package/dist/ui/controls/hint-css.generated.d.ts.map +0 -1
  421. package/dist/ui/controls/hint-css.generated.js +0 -4
  422. package/dist/ui/controls/hint-css.generated.js.map +0 -1
  423. package/dist/ui/controls/input-group-css.generated.d.ts +0 -2
  424. package/dist/ui/controls/input-group-css.generated.d.ts.map +0 -1
  425. package/dist/ui/controls/input-group-css.generated.js +0 -4
  426. package/dist/ui/controls/input-group-css.generated.js.map +0 -1
  427. package/dist/ui/controls/loader-bar-css.generated.d.ts +0 -2
  428. package/dist/ui/controls/loader-bar-css.generated.d.ts.map +0 -1
  429. package/dist/ui/controls/loader-bar-css.generated.js +0 -4
  430. package/dist/ui/controls/loader-bar-css.generated.js.map +0 -1
  431. package/dist/ui/controls/loader-css.generated.d.ts +0 -2
  432. package/dist/ui/controls/loader-css.generated.d.ts.map +0 -1
  433. package/dist/ui/controls/loader-css.generated.js +0 -4
  434. package/dist/ui/controls/loader-css.generated.js.map +0 -1
  435. package/dist/ui/controls/loading-css.generated.d.ts +0 -2
  436. package/dist/ui/controls/loading-css.generated.d.ts.map +0 -1
  437. package/dist/ui/controls/loading-css.generated.js +0 -4
  438. package/dist/ui/controls/loading-css.generated.js.map +0 -1
  439. package/dist/ui/controls/pagination-css.generated.d.ts +0 -2
  440. package/dist/ui/controls/pagination-css.generated.d.ts.map +0 -1
  441. package/dist/ui/controls/pagination-css.generated.js +0 -4
  442. package/dist/ui/controls/pagination-css.generated.js.map +0 -1
  443. package/dist/ui/controls/quick-toolbar-css.generated.d.ts +0 -2
  444. package/dist/ui/controls/quick-toolbar-css.generated.d.ts.map +0 -1
  445. package/dist/ui/controls/quick-toolbar-css.generated.js +0 -4
  446. package/dist/ui/controls/quick-toolbar-css.generated.js.map +0 -1
  447. package/dist/ui/controls/section-head-css.generated.d.ts +0 -2
  448. package/dist/ui/controls/section-head-css.generated.d.ts.map +0 -1
  449. package/dist/ui/controls/section-head-css.generated.js +0 -4
  450. package/dist/ui/controls/section-head-css.generated.js.map +0 -1
  451. package/dist/ui/controls/segmented-css.generated.d.ts +0 -2
  452. package/dist/ui/controls/segmented-css.generated.d.ts.map +0 -1
  453. package/dist/ui/controls/segmented-css.generated.js +0 -4
  454. package/dist/ui/controls/segmented-css.generated.js.map +0 -1
  455. package/dist/ui/controls/split-group-css.generated.d.ts +0 -2
  456. package/dist/ui/controls/split-group-css.generated.d.ts.map +0 -1
  457. package/dist/ui/controls/split-group-css.generated.js +0 -4
  458. package/dist/ui/controls/split-group-css.generated.js.map +0 -1
  459. package/dist/ui/controls/table-css.generated.d.ts +0 -2
  460. package/dist/ui/controls/table-css.generated.d.ts.map +0 -1
  461. package/dist/ui/controls/table-css.generated.js +0 -4
  462. package/dist/ui/controls/table-css.generated.js.map +0 -1
  463. package/dist/ui/controls/table-plain-css.generated.d.ts +0 -2
  464. package/dist/ui/controls/table-plain-css.generated.d.ts.map +0 -1
  465. package/dist/ui/controls/table-plain-css.generated.js +0 -4
  466. package/dist/ui/controls/table-plain-css.generated.js.map +0 -1
  467. package/dist/ui/controls-css.d.ts +0 -16
  468. package/dist/ui/controls-css.d.ts.map +0 -1
  469. package/dist/ui/controls-css.js +0 -26
  470. package/dist/ui/controls-css.js.map +0 -1
  471. package/dist/ui/css.d.ts +0 -35
  472. package/dist/ui/css.d.ts.map +0 -1
  473. package/dist/ui/css.js +0 -52
  474. package/dist/ui/css.js.map +0 -1
  475. package/dist/ui/datetime-logic.d.ts +0 -102
  476. package/dist/ui/datetime-logic.d.ts.map +0 -1
  477. package/dist/ui/datetime-logic.js +0 -200
  478. package/dist/ui/datetime-logic.js.map +0 -1
  479. package/dist/ui/feedback-css.d.ts +0 -2
  480. package/dist/ui/feedback-css.d.ts.map +0 -1
  481. package/dist/ui/feedback-css.generated.d.ts +0 -2
  482. package/dist/ui/feedback-css.generated.d.ts.map +0 -1
  483. package/dist/ui/feedback-css.generated.js +0 -4
  484. package/dist/ui/feedback-css.generated.js.map +0 -1
  485. package/dist/ui/feedback-css.js +0 -4
  486. package/dist/ui/feedback-css.js.map +0 -1
  487. package/dist/ui/flip-css.d.ts +0 -2
  488. package/dist/ui/flip-css.d.ts.map +0 -1
  489. package/dist/ui/flip-css.generated.d.ts +0 -2
  490. package/dist/ui/flip-css.generated.d.ts.map +0 -1
  491. package/dist/ui/flip-css.generated.js +0 -4
  492. package/dist/ui/flip-css.generated.js.map +0 -1
  493. package/dist/ui/flip-css.js +0 -4
  494. package/dist/ui/flip-css.js.map +0 -1
  495. package/dist/ui/host-data.d.ts +0 -119
  496. package/dist/ui/host-data.d.ts.map +0 -1
  497. package/dist/ui/host-data.js +0 -122
  498. package/dist/ui/host-data.js.map +0 -1
  499. package/dist/ui/host-toast.d.ts +0 -23
  500. package/dist/ui/host-toast.d.ts.map +0 -1
  501. package/dist/ui/host-toast.js +0 -34
  502. package/dist/ui/host-toast.js.map +0 -1
  503. package/dist/ui/loader-bar-art.d.ts +0 -6
  504. package/dist/ui/loader-bar-art.d.ts.map +0 -1
  505. package/dist/ui/loader-bar-art.js +0 -6
  506. package/dist/ui/loader-bar-art.js.map +0 -1
  507. package/dist/ui/loading-host.d.ts +0 -49
  508. package/dist/ui/loading-host.d.ts.map +0 -1
  509. package/dist/ui/loading-host.js +0 -57
  510. package/dist/ui/loading-host.js.map +0 -1
  511. package/dist/ui/locale.d.ts +0 -4
  512. package/dist/ui/locale.d.ts.map +0 -1
  513. package/dist/ui/locale.js +0 -17
  514. package/dist/ui/locale.js.map +0 -1
  515. package/dist/ui/marquee-css.d.ts +0 -2
  516. package/dist/ui/marquee-css.d.ts.map +0 -1
  517. package/dist/ui/marquee-css.generated.d.ts +0 -2
  518. package/dist/ui/marquee-css.generated.d.ts.map +0 -1
  519. package/dist/ui/marquee-css.generated.js +0 -4
  520. package/dist/ui/marquee-css.generated.js.map +0 -1
  521. package/dist/ui/marquee-css.js +0 -4
  522. package/dist/ui/marquee-css.js.map +0 -1
  523. package/dist/ui/modal-host.d.ts +0 -51
  524. package/dist/ui/modal-host.d.ts.map +0 -1
  525. package/dist/ui/modal-host.js +0 -170
  526. package/dist/ui/modal-host.js.map +0 -1
  527. package/dist/ui/overlay-css.d.ts +0 -2
  528. package/dist/ui/overlay-css.d.ts.map +0 -1
  529. package/dist/ui/overlay-css.generated.d.ts +0 -2
  530. package/dist/ui/overlay-css.generated.d.ts.map +0 -1
  531. package/dist/ui/overlay-css.generated.js +0 -4
  532. package/dist/ui/overlay-css.generated.js.map +0 -1
  533. package/dist/ui/overlay-css.js +0 -2
  534. package/dist/ui/overlay-css.js.map +0 -1
  535. package/dist/ui/overlay.d.ts +0 -62
  536. package/dist/ui/overlay.d.ts.map +0 -1
  537. package/dist/ui/overlay.js +0 -94
  538. package/dist/ui/overlay.js.map +0 -1
  539. package/dist/ui/pagination-logic.d.ts +0 -36
  540. package/dist/ui/pagination-logic.d.ts.map +0 -1
  541. package/dist/ui/pagination-logic.js +0 -73
  542. package/dist/ui/pagination-logic.js.map +0 -1
  543. package/dist/ui/panel-css.d.ts +0 -2
  544. package/dist/ui/panel-css.d.ts.map +0 -1
  545. package/dist/ui/panel-css.generated.d.ts +0 -2
  546. package/dist/ui/panel-css.generated.d.ts.map +0 -1
  547. package/dist/ui/panel-css.generated.js +0 -4
  548. package/dist/ui/panel-css.generated.js.map +0 -1
  549. package/dist/ui/panel-css.js +0 -2
  550. package/dist/ui/panel-css.js.map +0 -1
  551. package/dist/ui/panel-dock-css.d.ts +0 -2
  552. package/dist/ui/panel-dock-css.d.ts.map +0 -1
  553. package/dist/ui/panel-dock-css.generated.d.ts +0 -2
  554. package/dist/ui/panel-dock-css.generated.d.ts.map +0 -1
  555. package/dist/ui/panel-dock-css.generated.js +0 -4
  556. package/dist/ui/panel-dock-css.generated.js.map +0 -1
  557. package/dist/ui/panel-dock-css.js +0 -4
  558. package/dist/ui/panel-dock-css.js.map +0 -1
  559. package/dist/ui/panel-dock-logic.d.ts +0 -67
  560. package/dist/ui/panel-dock-logic.d.ts.map +0 -1
  561. package/dist/ui/panel-dock-logic.js +0 -110
  562. package/dist/ui/panel-dock-logic.js.map +0 -1
  563. package/dist/ui/panel.d.ts +0 -41
  564. package/dist/ui/panel.d.ts.map +0 -1
  565. package/dist/ui/panel.js +0 -37
  566. package/dist/ui/panel.js.map +0 -1
  567. package/dist/ui/picker-css.d.ts +0 -2
  568. package/dist/ui/picker-css.d.ts.map +0 -1
  569. package/dist/ui/picker-css.generated.d.ts +0 -2
  570. package/dist/ui/picker-css.generated.d.ts.map +0 -1
  571. package/dist/ui/picker-css.generated.js +0 -4
  572. package/dist/ui/picker-css.generated.js.map +0 -1
  573. package/dist/ui/picker-css.js +0 -4
  574. package/dist/ui/picker-css.js.map +0 -1
  575. package/dist/ui/picker-icons.d.ts +0 -12
  576. package/dist/ui/picker-icons.d.ts.map +0 -1
  577. package/dist/ui/picker-icons.js +0 -29
  578. package/dist/ui/picker-icons.js.map +0 -1
  579. package/dist/ui/picker-logic.d.ts +0 -33
  580. package/dist/ui/picker-logic.d.ts.map +0 -1
  581. package/dist/ui/picker-logic.js +0 -68
  582. package/dist/ui/picker-logic.js.map +0 -1
  583. package/dist/ui/quick-toolbar-logic.d.ts +0 -76
  584. package/dist/ui/quick-toolbar-logic.d.ts.map +0 -1
  585. package/dist/ui/quick-toolbar-logic.js +0 -40
  586. package/dist/ui/quick-toolbar-logic.js.map +0 -1
  587. package/dist/ui/resizer.d.ts +0 -29
  588. package/dist/ui/resizer.d.ts.map +0 -1
  589. package/dist/ui/resizer.js +0 -42
  590. package/dist/ui/resizer.js.map +0 -1
  591. package/dist/ui/side-panel-css.d.ts +0 -2
  592. package/dist/ui/side-panel-css.d.ts.map +0 -1
  593. package/dist/ui/side-panel-css.generated.d.ts +0 -2
  594. package/dist/ui/side-panel-css.generated.d.ts.map +0 -1
  595. package/dist/ui/side-panel-css.generated.js +0 -4
  596. package/dist/ui/side-panel-css.generated.js.map +0 -1
  597. package/dist/ui/side-panel-css.js +0 -2
  598. package/dist/ui/side-panel-css.js.map +0 -1
  599. package/dist/ui/side-sheet-css.d.ts +0 -2
  600. package/dist/ui/side-sheet-css.d.ts.map +0 -1
  601. package/dist/ui/side-sheet-css.generated.d.ts +0 -2
  602. package/dist/ui/side-sheet-css.generated.d.ts.map +0 -1
  603. package/dist/ui/side-sheet-css.generated.js +0 -4
  604. package/dist/ui/side-sheet-css.generated.js.map +0 -1
  605. package/dist/ui/side-sheet-css.js +0 -2
  606. package/dist/ui/side-sheet-css.js.map +0 -1
  607. package/dist/ui/surface-css.d.ts +0 -2
  608. package/dist/ui/surface-css.d.ts.map +0 -1
  609. package/dist/ui/surface-css.generated.d.ts +0 -2
  610. package/dist/ui/surface-css.generated.d.ts.map +0 -1
  611. package/dist/ui/surface-css.generated.js +0 -4
  612. package/dist/ui/surface-css.generated.js.map +0 -1
  613. package/dist/ui/surface-css.js +0 -7
  614. package/dist/ui/surface-css.js.map +0 -1
  615. package/dist/ui/table-logic.d.ts +0 -110
  616. package/dist/ui/table-logic.d.ts.map +0 -1
  617. package/dist/ui/table-logic.js +0 -81
  618. package/dist/ui/table-logic.js.map +0 -1
  619. package/dist/ui/table-shared.d.ts +0 -101
  620. package/dist/ui/table-shared.d.ts.map +0 -1
  621. package/dist/ui/table-shared.js +0 -229
  622. package/dist/ui/table-shared.js.map +0 -1
  623. package/dist/ui/thenable.d.ts +0 -9
  624. package/dist/ui/thenable.d.ts.map +0 -1
  625. package/dist/ui/thenable.js +0 -15
  626. package/dist/ui/thenable.js.map +0 -1
  627. package/dist/ui/ticker.d.ts +0 -8
  628. package/dist/ui/ticker.d.ts.map +0 -1
  629. package/dist/ui/ticker.js +0 -49
  630. package/dist/ui/ticker.js.map +0 -1
  631. package/dist/ui/toast-host.d.ts +0 -24
  632. package/dist/ui/toast-host.d.ts.map +0 -1
  633. package/dist/ui/toast-host.js +0 -20
  634. package/dist/ui/toast-host.js.map +0 -1
  635. package/dist/ui/tooltip.d.ts +0 -29
  636. package/dist/ui/tooltip.d.ts.map +0 -1
  637. package/dist/ui/tooltip.js +0 -10
  638. package/dist/ui/tooltip.js.map +0 -1
@@ -1,200 +0,0 @@
1
- // 日期时间选择器的纯逻辑(与 React 运行时无关,便于 node 单测;React 只进类型引用,编译期擦除)。
2
- //
3
- // 口径(与 utils/date.ts 一致):全部走**本机时区**;解析失败一律返回 null,不抛错、不编造时间。
4
- import { pad2 } from '../utils/date.js';
5
- const ISO_RE = /^(\d{4})-(\d{2})-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,3}))?)?$/;
6
- const STEP_MAX = { hour: 23, minute: 59, second: 59 };
7
- const EN_MONTHS = [
8
- 'January', 'February', 'March', 'April', 'May', 'June',
9
- 'July', 'August', 'September', 'October', 'November', 'December',
10
- ];
11
- /** 星期表头(周一起排;中文一~日,英文 Mon~Sun)。 */
12
- const WEEKDAYS = {
13
- zh: ['一', '二', '三', '四', '五', '六', '日'],
14
- en: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
15
- };
16
- const pad3 = (ms) => String(ms).padStart(3, '0');
17
- const pad4 = (year) => String(year).padStart(4, '0');
18
- /**
19
- * 本地 ISO(`YYYY-MM-DDTHH:mm:ss.SSS`,无时区后缀)→ 各部分。
20
- * 不存在的日期(2026-02-30 / 2026-13-01)经 Date 反向校验后返回 null。
21
- */
22
- export function parseDateTime(iso) {
23
- const m = ISO_RE.exec(iso.trim());
24
- if (m === null)
25
- return null;
26
- const parts = {
27
- year: Number(m[1]),
28
- month: Number(m[2]),
29
- day: Number(m[3]),
30
- hour: Number(m[4] ?? '0'),
31
- minute: Number(m[5] ?? '0'),
32
- second: Number(m[6] ?? '0'),
33
- ms: Number((m[7] ?? '0').padEnd(3, '0')),
34
- };
35
- const d = new Date(parts.year, parts.month - 1, parts.day, parts.hour, parts.minute, parts.second, parts.ms);
36
- if (d.getFullYear() !== parts.year ||
37
- d.getMonth() !== parts.month - 1 ||
38
- d.getDate() !== parts.day ||
39
- d.getHours() !== parts.hour ||
40
- d.getMinutes() !== parts.minute ||
41
- d.getSeconds() !== parts.second) {
42
- return null;
43
- }
44
- return parts;
45
- }
46
- /**
47
- * 各部分 → 本地 ISO。毫秒恒三位:数据库若只收「到秒」,`23:59:59.999` 被截成
48
- * `23:59:59` 仍是当天最后一秒,语义不坏(优雅降级,调用方无需特殊处理)。
49
- */
50
- export function formatDateTimeIso(p) {
51
- return `${pad4(p.year)}-${pad2(p.month)}-${pad2(p.day)}T${pad2(p.hour)}:${pad2(p.minute)}:${pad2(p.second)}.${pad3(p.ms)}`;
52
- }
53
- /** 各部分 → 本地毫秒时间戳(仅用于比较,不涉及时区换算)。 */
54
- export function partsToMs(p) {
55
- return new Date(p.year, p.month - 1, p.day, p.hour, p.minute, p.second, p.ms).getTime();
56
- }
57
- /** 本地毫秒时间戳 → 各部分。 */
58
- export function msToParts(ms) {
59
- const d = new Date(ms);
60
- return {
61
- year: d.getFullYear(),
62
- month: d.getMonth() + 1,
63
- day: d.getDate(),
64
- hour: d.getHours(),
65
- minute: d.getMinutes(),
66
- second: d.getSeconds(),
67
- ms: d.getMilliseconds(),
68
- };
69
- }
70
- /** 当前时刻。 */
71
- export function nowParts() {
72
- return msToParts(Date.now());
73
- }
74
- /** 本地 ISO → 一端草稿(日期 / 时间分离);解析失败或空 ⇒ 日期为空、时间归零。 */
75
- export function toEndDraft(iso) {
76
- const p = iso === undefined || iso === null || iso === '' ? null : parseDateTime(iso);
77
- if (p === null)
78
- return { day: null, time: { hour: 0, minute: 0, second: 0, ms: 0 } };
79
- return {
80
- day: { year: p.year, month: p.month, day: p.day },
81
- time: { hour: p.hour, minute: p.minute, second: p.second, ms: p.ms },
82
- };
83
- }
84
- /** 一端草稿 → 完整时刻;**没选日期 ⇒ null**(调用方据此不传数据)。 */
85
- export function partsOf(e) {
86
- return e.day === null ? null : { ...e.day, ...e.time };
87
- }
88
- /**
89
- * 「现在」按钮的时间部分:按精度截断(day ⇒ 全零;hour ⇒ H:00:00;
90
- * minute ⇒ H:M:00;second ⇒ 完整当前时刻)。
91
- */
92
- export function nowTimeFor(precision) {
93
- const n = nowParts();
94
- if (precision === 'day')
95
- return { hour: 0, minute: 0, second: 0, ms: 0 };
96
- if (precision === 'hour')
97
- return { hour: n.hour, minute: 0, second: 0, ms: 0 };
98
- if (precision === 'minute')
99
- return { hour: n.hour, minute: n.minute, second: 0, ms: 0 };
100
- return { hour: n.hour, minute: n.minute, second: n.second, ms: n.ms };
101
- }
102
- /**
103
- * 起始端补全:未选的时间单位归零。
104
- * day ⇒ `00:00:00.000`;hour ⇒ `H:00:00.000`;minute ⇒ `H:M:00.000`;second ⇒ ms 归零。
105
- */
106
- export function floorToPrecision(p, precision) {
107
- switch (precision) {
108
- case 'day':
109
- return { ...p, hour: 0, minute: 0, second: 0, ms: 0 };
110
- case 'hour':
111
- return { ...p, minute: 0, second: 0, ms: 0 };
112
- case 'minute':
113
- return { ...p, second: 0, ms: 0 };
114
- case 'second':
115
- return { ...p, ms: 0 };
116
- }
117
- }
118
- /**
119
- * 结束端补全:未选的时间单位拉到最大。
120
- * day ⇒ `23:59:59.999`;hour ⇒ `H:59:59.999`;minute ⇒ `H:M:59.999`;
121
- * second ⇒ 精确值不动(用户显式选到秒,不猜)。
122
- */
123
- export function ceilToPrecision(p, precision) {
124
- switch (precision) {
125
- case 'day':
126
- return { ...p, hour: 23, minute: 59, second: 59, ms: 999 };
127
- case 'hour':
128
- return { ...p, minute: 59, second: 59, ms: 999 };
129
- case 'minute':
130
- return { ...p, second: 59, ms: 999 };
131
- case 'second':
132
- return p;
133
- }
134
- }
135
- /**
136
- * 6×7 固定月历网格,周一起排;补位格给真实日期并标 `inMonth: false`。
137
- * 42 格恒定 ⇒ 弹层高度不随月份跳动。
138
- */
139
- export function buildMonthCells(year, month) {
140
- const firstWeekday = (new Date(year, month - 1, 1).getDay() + 6) % 7; // 周一 = 0
141
- const cells = [];
142
- for (let i = 0; i < 42; i++) {
143
- const d = new Date(year, month - 1, 1 - firstWeekday + i);
144
- cells.push({
145
- iso: `${pad4(d.getFullYear())}-${pad2(d.getMonth() + 1)}-${pad2(d.getDate())}`,
146
- year: d.getFullYear(),
147
- month: d.getMonth() + 1,
148
- day: d.getDate(),
149
- inMonth: d.getMonth() === month - 1 && d.getFullYear() === year,
150
- weekday: i % 7,
151
- });
152
- }
153
- return cells;
154
- }
155
- /** 月历标题:zh `2026年10月`;en `October 2026`。 */
156
- export function monthCaption(year, month, locale) {
157
- return locale === 'zh'
158
- ? `${pad4(year)}年${pad2(month)}月`
159
- : `${EN_MONTHS[month - 1] ?? ''} ${String(year)}`;
160
- }
161
- /** 星期表头(周一起排)。 */
162
- export function weekdayLabels(locale) {
163
- return WEEKDAYS[locale];
164
- }
165
- /** 日月格的无障碍标题:zh `2026年11月3日`;en `Tue, 2026-11-03`。 */
166
- export function dayCaption(cell, locale) {
167
- const y = String(cell.year);
168
- const m = String(cell.month).padStart(2, '0');
169
- const d = String(cell.day).padStart(2, '0');
170
- return locale === 'zh' ? `${y}年${cell.month}月${cell.day}日` : `${weekdayLabels('en')[cell.weekday]}, ${y}-${m}-${d}`;
171
- }
172
- /** 步进 ±1 循环(23→0、59→0):免去用户点 60 次选分钟。 */
173
- export function stepUnit(value, unit, delta) {
174
- const max = STEP_MAX[unit] + 1;
175
- return ((value + delta) % max + max) % max;
176
- }
177
- /** 步进列的上限(hour 23 / minute 59 / second 59)。 */
178
- export function stepMax(unit) {
179
- return STEP_MAX[unit];
180
- }
181
- /** 把键入 / 滚轮得到的原始值收进合法范围(NaN 归 0)。 */
182
- export function clampUnit(value, unit) {
183
- if (!Number.isFinite(value))
184
- return 0;
185
- const max = STEP_MAX[unit];
186
- return Math.min(max, Math.max(0, Math.round(value)));
187
- }
188
- /** 时间段是否成立(起 ≤ 止;任一端解析失败 ⇒ 不成立)。 */
189
- export function rangeIsValid(startIso, endIso) {
190
- const a = parseDateTime(startIso);
191
- const b = parseDateTime(endIso);
192
- if (a === null || b === null)
193
- return false;
194
- return partsToMs(a) <= partsToMs(b);
195
- }
196
- /** 两个时刻是否同一本地日历日。 */
197
- export function sameLocalDay(a, b) {
198
- return a.year === b.year && a.month === b.month && a.day === b.day;
199
- }
200
- //# sourceMappingURL=datetime-logic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datetime-logic.js","sourceRoot":"","sources":["../../src/ui/datetime-logic.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { FEEDBACK_CSS } from './feedback-css.generated.js';
2
- //# sourceMappingURL=feedback-css.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-css.d.ts","sourceRoot":"","sources":["../../src/ui/feedback-css.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const FEEDBACK_CSS = "/* \u906E\u7F69\u4E0E\u5934\u90E8\u5728 overlay.css\uFF0C\u8868\u9762\uFF08\u5E95\u8272/\u63CF\u8FB9/\u5706\u89D2/\u9634\u5F71\uFF09\u5728 panel.css \u7684 --modal \u6863\uFF0C\n \u8FD9\u91CC\u53EA\u5269**\u5BB6\u65CF\u5E03\u5C40\u4E0E\u5C3A\u5BF8**\u3002\u4E09\u8005\u5404\u7BA1\u4E00\u6BB5\uFF0C\u522B\u518D\u628A\u76AE\u80A4\u6284\u56DE\u6765\u3002 */\n.dshpc-modal{\n display:flex;flex-direction:column;box-sizing:border-box;\n}\n/* body = \u552F\u4E00\u6EDA\u52A8\u5BB9\u5668\uFF1A\u5185\u8DDD\u4E0E\u6EDA\u52A8\u90FD\u5F52\u5B83\uFF08\u6EDA\u52A8\u6761\u8D34\u9762\u677F\u53F3\u7F18\uFF0C\u4E0D\u88AB\u5185\u8DDD\u6324\u8FDB\u6765\uFF09\uFF1B\n \u5185\u5BB9\u6309\u6D41\u6392\uFF0C\u4E0D\u8BBE height:100%\u3001\u4E0D\u81EA\u5DF1\u5F00\u6EDA\u52A8\u6761\u3002\n \u900F\u660E\u53F3\u8FB9\u6846 = \u8BA9\u6EDA\u52A8\u6761\u4E0E\u9762\u677F\u53F3\u7F18\u9694 1px\uFF08\u53E3\u5F84\u89C1 style.md \u00A7\u6EDA\u52A8\u6761\u8BA9\u4F4D\uFF09\u3002 */\n.dshpc-modal__body{flex:1 1 auto;min-height:0;overflow:auto;padding:17px 18px;border-right:1px solid transparent}\n/* \u5E95\u680F\u4E0E\u5934\u90E8\u540C\u4E00\u53E3\u5F84\uFF082026-11-02 \u7528\u6237\uFF09\uFF1A\u4E0A\u4E0B\u5185\u8DDD\u76F8\u7B49\u3001\u5185\u5BB9\u5782\u76F4\u5C45\u4E2D\u3001\u9ED8\u8BA4\u5E26\u4E00\u6761\u5206\u9694\u7EBF\u3002\n \u7EBF\u53EF\u7531\u6D88\u8D39\u65B9\u5173\u6389\uFF08Modal \u7684 footerDivider=false\uFF09\u2014\u2014 \u786E\u8BA4\u6846\u5BB6\u65CF\u672C\u6765\u5C31\u6CA1\u6709\u7EBF\uFF08\u4E0E\u5934\u90E8\u4E00\u81F4\uFF09\u3002 */\n.dshpc-modal .dshpc-modal__foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:18px;border-top:1px solid var(--dshpc-border)}\n.dshpc-modal .dshpc-modal__foot--bare{border-top:none}\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-modal .dshpc-modal__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/* \u81EA\u7ED8 toast \u7684\u6837\u5F0F\u5728 2026-11-03 \u5220\u9664\uFF1AToast \u65E9\u5DF2\u6539\u8D70\u5BBF\u4E3B toast()\uFF08Toast.ts \u7684 showNative\uFF09\uFF0C\n .dshpc-toast* \u8FD9\u51E0\u4E2A\u7C7B\u6CA1\u6709\u4EFB\u4F55\u6D88\u8D39\u8005\uFF0C\u7559\u7740\u53EA\u662F\u6B7B\u6837\u5F0F\uFF08\u8FD8\u5E26\u7740\u88F8 z-index \u4E0E\u88F8\u9634\u5F71\uFF09\u3002 */\n.dshpc-error__retry{\n margin-top:8px;color:var(--dshpc-link);cursor:pointer;background:none;border:none;padding:0;\n}\n/* \u539F\u751F\u5F39\u7A97\u6F14\u793A\uFF1A\u7ECF\u5BBF\u4E3B Modal \u7684 contentClassName \u6CE8\u5165\uFF0C\u8BC1\u660E\u5BBF\u4E3B\u5185\u5BB9\u533A\u5C3A\u5BF8\u53EF\u7ECF\u7C7B\u540D\u81EA\u5B9A\u4E49\u3002 */\n.dshpc-native-demo-content{max-width:520px}\n/* \u5934\u90E8\u4FE1\u53F7\u56FE\u6807\uFF08AlertModal \u6309 severity \u6CE8\u5165\uFF09\uFF1A\u81EA\u542B\u914D\u8272\uFF0C\u8272\u503C\u5728 tokens.css \u7684 --dshpc-sev-*\u3002 */\n.dshpc-alert-sev{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:12px;color:var(--dshpc-on-signal);flex:none}\n.dshpc-alert-sev--info{background:var(--dshpc-sev-info)}\n.dshpc-alert-sev--success{background:var(--dshpc-sev-success)}\n.dshpc-alert-sev--warning{background:var(--dshpc-sev-warning)}\n.dshpc-alert-sev--error{background:var(--dshpc-sev-error)}\n/* \u5C0F\u786E\u8BA4\u6846\u5BB6\u65CF\uFF08sm\uFF09\uFF1A\u4E25\u683C\u6284\u5144\u5F1F\u9879\u76EE renderConfirm \u7684 dialogStyle\uFF08task-list.tsx:456\uFF09\u2014\u2014\n 360px \u5BBD / 18px \u5185\u8DDD / \u5934\u90E8\u65E0\u5206\u9694\u7EBF / \u8BF4\u660E\u6587\u5B57 fg-2 / \u5E95\u90E8\u6309\u94AE\u53F3\u5BF9\u9F50\u3002 */\n.dshpc-modal--sm{padding:18px}\n.dshpc-modal--sm .dshpc-overlay-head{padding:0 0 8px;border-bottom:none}\n.dshpc-modal--sm .dshpc-modal__body{padding:0 0 14px;overflow:visible;font-size:var(--dshpc-font-sm);color:var(--dshpc-fg-2);line-height:var(--dshpc-line-sm)}\n.dshpc-modal--sm .dshpc-modal__foot{padding:0;border-top:none}\n/* \u9501\u5B9A\u6001\uFF08locked\uFF09\uFF1A\u53EA\u7ED9\u900F\u660E\u70B9\u51FB\u5C42\u505A\u5B9A\u4F4D\u951A\u70B9\uFF0C**\u4E0D\u538B\u4EFB\u4F55\u906E\u7F69** \u2014\u2014 \u76D6\u7070\u4F1A\u8BA9\u4EBA\u4EE5\u4E3A\u754C\u9762\u574F\u4E86\uFF1B\n \u53D8\u7070\u662F\u5404\u63A7\u4EF6\u81EA\u5DF1 :disabled \u7684\u4E8B\uFF08Button / Input / Picker \u2026 \u672C\u6765\u5C31\u6709\u90A3\u5957\u6837\u5F0F\uFF09\u3002 */\n.dshpc-modal--locked{position:relative}\n";
2
- //# sourceMappingURL=feedback-css.generated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/feedback-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,shJAA45E,CAAA"}
@@ -1,4 +0,0 @@
1
- // ⚠️ 生成物,勿手改。真源 = src/ui/feedback.css
2
- // 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
3
- export const FEEDBACK_CSS = "/* 遮罩与头部在 overlay.css,表面(底色/描边/圆角/阴影)在 panel.css 的 --modal 档,\n 这里只剩**家族布局与尺寸**。三者各管一段,别再把皮肤抄回来。 */\n.dshpc-modal{\n display:flex;flex-direction:column;box-sizing:border-box;\n}\n/* body = 唯一滚动容器:内距与滚动都归它(滚动条贴面板右缘,不被内距挤进来);\n 内容按流排,不设 height:100%、不自己开滚动条。\n 透明右边框 = 让滚动条与面板右缘隔 1px(口径见 style.md §滚动条让位)。 */\n.dshpc-modal__body{flex:1 1 auto;min-height:0;overflow:auto;padding:17px 18px;border-right:1px solid transparent}\n/* 底栏与头部同一口径(2026-11-02 用户):上下内距相等、内容垂直居中、默认带一条分隔线。\n 线可由消费方关掉(Modal 的 footerDivider=false)—— 确认框家族本来就没有线(与头部一致)。 */\n.dshpc-modal .dshpc-modal__foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:18px;border-top:1px solid var(--dshpc-border)}\n.dshpc-modal .dshpc-modal__foot--bare{border-top:none}\n/* 底栏左侧的过程提示:吃掉按钮之外的剩余宽,超长交给 FlipText 省略 / hover 跑马灯。 */\n.dshpc-modal .dshpc-modal__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/* 自绘 toast 的样式在 2026-11-03 删除:Toast 早已改走宿主 toast()(Toast.ts 的 showNative),\n .dshpc-toast* 这几个类没有任何消费者,留着只是死样式(还带着裸 z-index 与裸阴影)。 */\n.dshpc-error__retry{\n margin-top:8px;color:var(--dshpc-link);cursor:pointer;background:none;border:none;padding:0;\n}\n/* 原生弹窗演示:经宿主 Modal 的 contentClassName 注入,证明宿主内容区尺寸可经类名自定义。 */\n.dshpc-native-demo-content{max-width:520px}\n/* 头部信号图标(AlertModal 按 severity 注入):自含配色,色值在 tokens.css 的 --dshpc-sev-*。 */\n.dshpc-alert-sev{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:12px;color:var(--dshpc-on-signal);flex:none}\n.dshpc-alert-sev--info{background:var(--dshpc-sev-info)}\n.dshpc-alert-sev--success{background:var(--dshpc-sev-success)}\n.dshpc-alert-sev--warning{background:var(--dshpc-sev-warning)}\n.dshpc-alert-sev--error{background:var(--dshpc-sev-error)}\n/* 小确认框家族(sm):严格抄兄弟项目 renderConfirm 的 dialogStyle(task-list.tsx:456)——\n 360px 宽 / 18px 内距 / 头部无分隔线 / 说明文字 fg-2 / 底部按钮右对齐。 */\n.dshpc-modal--sm{padding:18px}\n.dshpc-modal--sm .dshpc-overlay-head{padding:0 0 8px;border-bottom:none}\n.dshpc-modal--sm .dshpc-modal__body{padding:0 0 14px;overflow:visible;font-size:var(--dshpc-font-sm);color:var(--dshpc-fg-2);line-height:var(--dshpc-line-sm)}\n.dshpc-modal--sm .dshpc-modal__foot{padding:0;border-top:none}\n/* 锁定态(locked):只给透明点击层做定位锚点,**不压任何遮罩** —— 盖灰会让人以为界面坏了;\n 变灰是各控件自己 :disabled 的事(Button / Input / Picker … 本来就有那套样式)。 */\n.dshpc-modal--locked{position:relative}\n";
4
- //# sourceMappingURL=feedback-css.generated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-css.generated.js","sourceRoot":"","sources":["../../src/ui/feedback-css.generated.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,qEAAqE;AACrE,MAAM,CAAC,MAAM,YAAY,GAAG,y5EAAy5E,CAAA"}
@@ -1,4 +0,0 @@
1
- // 反馈件(Modal / toast / 空态 / 错误边界)样式。
2
- // 类名与 token 变量统一 dshpc 前缀。
3
- export { FEEDBACK_CSS } from './feedback-css.generated.js';
4
- //# sourceMappingURL=feedback-css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-css.js","sourceRoot":"","sources":["../../src/ui/feedback-css.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,2BAA2B;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA"}
@@ -1,2 +0,0 @@
1
- export { FLIP_CSS } from './flip-css.generated.js';
2
- //# sourceMappingURL=flip-css.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flip-css.d.ts","sourceRoot":"","sources":["../../src/ui/flip-css.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const FLIP_CSS = "/* \u7FFB\u724C\u6587\u672C\uFF08FlipText\uFF09\uFF1A\u4E00\u4E2A\u5355\u884C\u7A97\u53E3 + \u4E24\u5C42\u540C\u683C\u53E0\u653E\uFF0C\u6362\u5B57\u65F6\u65E7\u7684\u4E0A\u79FB\u51FA\u3001\u65B0\u7684\u4ECE\u4E0B\u8FDB\u3002\n \u6EA2\u51FA\uFF08\u4E09\u70B9\u7701\u7565 + hover \u8DD1\u9A6C\u706F\uFF09\u4E0D\u5728\u8FD9\u91CC\u505A \u2014\u2014 \u4EA4\u7ED9 MarqueeText\uFF0C\u672C\u6587\u4EF6\u53EA\u7BA1\u88C1\u526A\u4E0E\u5207\u6362\u52A8\u6548\u3002\n \u53E0\u653E\u7528 grid \u540C\u683C\u800C\u4E0D\u662F\u7EDD\u5BF9\u5B9A\u4F4D\uFF1A\u5BB9\u5668\u9AD8\u5EA6\u5929\u7136\u7B49\u4E8E\u4E00\u884C\uFF0C\u4E0D\u7528\u6D4B\u91CF\u3001\u4E5F\u4E0D\u4F9D\u8D56 lh \u5355\u4F4D\u3002 */\n.dshpc-flip{--dshpc-flip-dur:260ms;--dshpc-flip-ease:cubic-bezier(.22,.61,.36,1);display:grid;min-width:0;overflow:hidden}\n.dshpc-flip__item{grid-area:1/1;min-width:0}\n.dshpc-flip__in{animation:dshpc-flip-in var(--dshpc-flip-dur) var(--dshpc-flip-ease) both}\n.dshpc-flip__out{animation:dshpc-flip-out var(--dshpc-flip-dur) var(--dshpc-flip-ease) both}\n@keyframes dshpc-flip-in{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}\n@keyframes dshpc-flip-out{from{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}\n/* \u524D\u5EAD\u654F\u611F / \u4F4E\u6027\u80FD\u8BBE\u5907\u5173\u6389\u4F4D\u79FB\u52A8\u753B\uFF1A\u6362\u5B57\u4ECD\u5728\uFF0C\u53EA\u662F\u4E0D\u518D\u7FFB\u3002\n \u65E7\u5E27\u6CA1\u6709\u52A8\u753B\u53EF\u64AD\uFF0C\u5FC5\u987B\u81EA\u5DF1\u9690\u5F62 \u2014\u2014 \u4E24\u5C42\u540C\u683C\u53E0\u653E\uFF0C\u7559\u7740\u5C31\u91CD\u5F71\u3002 */\n@media (prefers-reduced-motion:reduce){\n .dshpc-flip__in,.dshpc-flip__out{animation:none}\n .dshpc-flip__out{opacity:0}\n}\n/* \u626B\u5149\uFF08sweep\uFF09\uFF1A\u5E38\u9A7B\u5FAA\u73AF\uFF0C\u505C\u5728\u539F\u5730\u7684\u63D0\u793A\u4E5F\u770B\u5F97\u51FA\u5728\u52A8\u3002\u5F00\u5173\u9ED8\u8BA4\u5173\uFF0C\u5F39\u7A97 / \u62BD\u5C49\u5E95\u680F\u9ED8\u8BA4\u5F00\u3002\n \u5149\u5FC5\u987B\u53EA\u843D\u5728\u5B57\u4E0A\uFF1A\u76D6\u4E00\u5C42\u534A\u900F\u660E\u5149\u5E26\u7684\u8BDD\uFF0Cnotice \u662F flex:1 \u6491\u5F00\u7684\u5BBD\u5BB9\u5668\uFF0C\u53F3\u4FA7\u5927\u7247\u7A7A\u767D\n \u91CC\u4F1A\u51FA\u73B0\u4E00\u6761\u767D\u5149\u5728\u626B\u3002\u6545\u628A\u5149\u505A\u6210\u6587\u5B57\u81EA\u5DF1\u7684 background + background-clip:text \u88C1\u5230\u5B57\u5F62\uFF1B\n \u57FA\u8272\u53D6 currentColor \u21D2 \u8C03\u7528\u65B9\u6362\u5B57\u8272\u4E5F\u8DDF\u7740\u8D70\uFF0C\u4E0D\u9700\u8981\u77E5\u9053\u6587\u5B57\u5BBD\u5EA6\u3002 */\n.dshpc-flip--sweep .dshpc-mq-in{\n background-image:linear-gradient(105deg,currentColor 0,currentColor 47%,color-mix(in srgb,var(--dshpc-on-signal) 70%,currentColor) 50%,currentColor 53%,currentColor 100%);\n background-size:300% 100%;background-repeat:no-repeat;\n background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;\n animation:dshpc-flip-sweep 1.5s linear infinite;\n}\n/* 1.5s \u4E00\u8F6E\uFF1A\u524D 40% \u626B\u5B8C\uFF0C\u5176\u4F59\u505C\u5728\u89C6\u91CE\u5916\u4F11\u606F \u2014\u2014 \u4E00\u76F4\u626B\u4F1A\u6643\u773C\uFF0C\u95F4\u6B47\u624D\u50CF\u300C\u8FD8\u5728\u5E72\u6D3B\u300D\u3002 */\n@keyframes dshpc-flip-sweep{0%{background-position:100% 0}40%,100%{background-position:0 0}}\n@media (prefers-reduced-motion:reduce){\n .dshpc-flip--sweep .dshpc-mq-in{animation:none;background-image:none;-webkit-text-fill-color:currentColor}\n}\n";
2
- //# sourceMappingURL=flip-css.generated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flip-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/flip-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,06GAA21D,CAAA"}
@@ -1,4 +0,0 @@
1
- // ⚠️ 生成物,勿手改。真源 = src/ui/flip.css
2
- // 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
3
- export const FLIP_CSS = "/* 翻牌文本(FlipText):一个单行窗口 + 两层同格叠放,换字时旧的上移出、新的从下进。\n 溢出(三点省略 + hover 跑马灯)不在这里做 —— 交给 MarqueeText,本文件只管裁剪与切换动效。\n 叠放用 grid 同格而不是绝对定位:容器高度天然等于一行,不用测量、也不依赖 lh 单位。 */\n.dshpc-flip{--dshpc-flip-dur:260ms;--dshpc-flip-ease:cubic-bezier(.22,.61,.36,1);display:grid;min-width:0;overflow:hidden}\n.dshpc-flip__item{grid-area:1/1;min-width:0}\n.dshpc-flip__in{animation:dshpc-flip-in var(--dshpc-flip-dur) var(--dshpc-flip-ease) both}\n.dshpc-flip__out{animation:dshpc-flip-out var(--dshpc-flip-dur) var(--dshpc-flip-ease) both}\n@keyframes dshpc-flip-in{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}\n@keyframes dshpc-flip-out{from{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}\n/* 前庭敏感 / 低性能设备关掉位移动画:换字仍在,只是不再翻。\n 旧帧没有动画可播,必须自己隐形 —— 两层同格叠放,留着就重影。 */\n@media (prefers-reduced-motion:reduce){\n .dshpc-flip__in,.dshpc-flip__out{animation:none}\n .dshpc-flip__out{opacity:0}\n}\n/* 扫光(sweep):常驻循环,停在原地的提示也看得出在动。开关默认关,弹窗 / 抽屉底栏默认开。\n 光必须只落在字上:盖一层半透明光带的话,notice 是 flex:1 撑开的宽容器,右侧大片空白\n 里会出现一条白光在扫。故把光做成文字自己的 background + background-clip:text 裁到字形;\n 基色取 currentColor ⇒ 调用方换字色也跟着走,不需要知道文字宽度。 */\n.dshpc-flip--sweep .dshpc-mq-in{\n background-image:linear-gradient(105deg,currentColor 0,currentColor 47%,color-mix(in srgb,var(--dshpc-on-signal) 70%,currentColor) 50%,currentColor 53%,currentColor 100%);\n background-size:300% 100%;background-repeat:no-repeat;\n background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;\n animation:dshpc-flip-sweep 1.5s linear infinite;\n}\n/* 1.5s 一轮:前 40% 扫完,其余停在视野外休息 —— 一直扫会晃眼,间歇才像「还在干活」。 */\n@keyframes dshpc-flip-sweep{0%{background-position:100% 0}40%,100%{background-position:0 0}}\n@media (prefers-reduced-motion:reduce){\n .dshpc-flip--sweep .dshpc-mq-in{animation:none;background-image:none;-webkit-text-fill-color:currentColor}\n}\n";
4
- //# sourceMappingURL=flip-css.generated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flip-css.generated.js","sourceRoot":"","sources":["../../src/ui/flip-css.generated.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,qEAAqE;AACrE,MAAM,CAAC,MAAM,QAAQ,GAAG,w1DAAw1D,CAAA"}
@@ -1,4 +0,0 @@
1
- // 翻牌文本(FlipText)样式。
2
- // 类名与变量统一 dshpc 前缀。
3
- export { FLIP_CSS } from './flip-css.generated.js';
4
- //# sourceMappingURL=flip-css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flip-css.js","sourceRoot":"","sources":["../../src/ui/flip-css.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,oBAAoB;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA"}
@@ -1,119 +0,0 @@
1
- /**
2
- * 领域选择器的宿主数据面 —— ModelPicker / WorkspacePicker 的「现成数据」。
3
- *
4
- * 用户 2026-10-20 拍板:这两个领域选择器**自己取数、自己显示**,消费方不再传数组
5
- * (反转 requirements §6 对领域选择器的旧口径;通用 `Picker` 仍是 props 进数据的纯零件)。
6
- *
7
- * 两条数据通路(均为真机验证过的口子):
8
- * - 工作区:宿主 client 服务 `workspaces` 的快照(getSnapshot + subscribe,follow 流实时更新)。
9
- * - 模型目录:**插件宿主侧** `llm.listModels()` 现查 → `serveModelCatalog()` 挂成只读路由 →
10
- * 客户端 fetch(`@deepseek-ai/*` 的 `remote.llm` 只有 listProviders,**拿不到每个供应商的
11
- * 模型列表**,2026-10-20 真机定位后弃用该路径)。
12
- *
13
- * 接线:宿主 `apply` 调 `serveModelCatalog(ctx, { path })`,客户端 `apply` 调
14
- * `connectHost(ctx, { modelsPath: path })`——同一个 path 常量,消费方不碰数据本身。
15
- *
16
- * 2026-10-28 扩一条:`connectHost` 同时接 `remote.workspaceFiles` ⇒ `openFilePreview` /
17
- * `pickWorkspaceFile` 不必再由调用方传服务(explorer 的读文件通道同属「绑定宿主能力」)。
18
- *
19
- * 2026-11-04 归档态:同一份 `workspaces` 快照里的 `archivedSessionIds` 也由核心镜像,
20
- * 会话预览不再收调用方注入的静态 boolean(官方推送链见 dsh-host.md §11.2)。
21
- */
22
- import type { WorkspaceFilesFace } from '../explorer/types.js';
23
- /** 一条路由:一个供应商 + 它的模型(与宿主侧 `ModelRouteData` 同形)。 */
24
- export interface ModelRoute {
25
- provider: string;
26
- displayName: string;
27
- models: readonly {
28
- id: string;
29
- name?: string;
30
- }[];
31
- }
32
- export type ModelCatalogState = {
33
- status: 'loading';
34
- } | {
35
- status: 'unavailable';
36
- reason: string;
37
- } | {
38
- status: 'ready';
39
- routes: readonly ModelRoute[];
40
- };
41
- /** 模型目录的 observable store(useSyncExternalStore 直接消费)。 */
42
- declare class ModelCatalogStore {
43
- private snapshot;
44
- private readonly listeners;
45
- readonly getSnapshot: () => ModelCatalogState;
46
- readonly subscribe: (listener: () => void) => (() => void);
47
- private update;
48
- setRoutes(routes: readonly ModelRoute[]): void;
49
- setUnavailable(reason: string): void;
50
- }
51
- /** 模型目录单例(ModelPicker 消费;connectHost 负责喂)。 */
52
- export declare const modelCatalog: ModelCatalogStore;
53
- /** 官方 `workspaces` client 服务 `list` 的一行(`WorkspaceView` 的消费子集,见 docs/design/external/dsh-host.md §11)。 */
54
- export interface HostWorkspaceItem {
55
- workspaceId: string;
56
- title: string;
57
- /**
58
- * 工作区绝对路径(官方 `WorkspaceView.path`,realpath 归一形态)——**路径 → 工作区匹配用**
59
- * (`workspaceAnchorForPath` 最长前缀)。宿主没给时 undefined ⇒ 该工作区不参与路径匹配
60
- * (仍可靠 title 进 `anchorSessionForTitle`)。
61
- */
62
- path?: string;
63
- /** 本工作区名下的会话 id(追加序);文件浏览的 sessionId 只能从这来。 */
64
- sessionIds?: readonly string[];
65
- /** 更新时间戳;「最近打开的工作区」排序用。 */
66
- updatedAt?: number;
67
- }
68
- /**
69
- * 官方 `workspaces` client 服务的 `list`(WorkspaceSource 结构化子集)。
70
- * ⚠️ `sessionIds` / `updatedAt` 由官方 `WorkspaceView` 提供(dsh-host.md §11 已核实);
71
- * 本宿主没给时保持 undefined,取锚点方自行判空,不得编造。
72
- */
73
- export interface HostWorkspaceSource {
74
- getSnapshot: () => {
75
- items: readonly HostWorkspaceItem[];
76
- /** registry-global 归档集合;官方只在集合变化时换成新数组(dsh-host.md §11.2)。 */
77
- archivedSessionIds?: readonly string[];
78
- };
79
- subscribe: (listener: () => void) => () => void;
80
- }
81
- /**
82
- * 工作区列表的 observable store:直接镜像官方 WorkspaceSource 的 `items` 与
83
- * `archivedSessionIds`(宿主权威快照,follow 流实时推 —— 源变我们就变,不自持第二份状态机)。
84
- * `getSnapshot` 保持原有的 items 形态(explorer 各调用方按数组消费),归档集合另给两种读法。
85
- */
86
- declare class WorkspaceListStore {
87
- private items;
88
- private archivedSessionIds;
89
- private readonly listeners;
90
- private unsubscribe;
91
- /** 换源(仅 connectHost 调;重复调用换到新源)。 */
92
- setSource(source: HostWorkspaceSource): void;
93
- readonly getSnapshot: () => readonly HostWorkspaceItem[];
94
- /** 归档集合的稳定引用(直接喂 useSyncExternalStore,不需要额外 selector 缓存)。 */
95
- readonly getArchiveSnapshot: () => readonly string[];
96
- readonly isSessionArchived: (sessionId: string) => boolean;
97
- readonly subscribe: (listener: () => void) => (() => void);
98
- }
99
- /** 工作区列表单例(WorkspacePicker / 会话预览消费;connectHost 负责喂)。 */
100
- export declare const workspaceList: WorkspaceListStore;
101
- /** 当前接到的文件服务;宿主没这能力 / 没调 connectHost ⇒ undefined。 */
102
- export declare function getWorkspaceFiles(): WorkspaceFilesFace | undefined;
103
- /** 插件 client 的最小 ctx 形状(cordis client context 的结构化子集)。 */
104
- export interface HostClientContext {
105
- inject: (deps: string[], cb: (sub: unknown) => void) => void;
106
- }
107
- export interface ConnectHostOptions {
108
- /** 模型目录路由(宿主侧 `serveModelCatalog` 注册的同一个 path);不传 = 不取模型目录。 */
109
- modelsPath?: string;
110
- }
111
- /**
112
- * 把宿主数据面接进核心(插件 client `apply` 里调**一次**)。
113
- *
114
- * 工作区走本地 client 服务注入;模型目录走宿主路由 fetch。哪条失败只影响那一块,
115
- * 选择器照常渲染空态 / 降级提示 —— 绝不让数据面拖住插件启动。
116
- */
117
- export declare function connectHost(ctx: HostClientContext, options?: ConnectHostOptions): void;
118
- export {};
119
- //# sourceMappingURL=host-data.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-data.d.ts","sourceRoot":"","sources":["../../src/ui/host-data.ts"],"names":[],"mappings":"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"}
@@ -1,122 +0,0 @@
1
- /** 模型目录的 observable store(useSyncExternalStore 直接消费)。 */
2
- class ModelCatalogStore {
3
- constructor() {
4
- this.snapshot = { status: 'loading' };
5
- this.listeners = new Set();
6
- this.getSnapshot = () => this.snapshot;
7
- this.subscribe = (listener) => {
8
- this.listeners.add(listener);
9
- return () => {
10
- this.listeners.delete(listener);
11
- };
12
- };
13
- }
14
- update(next) {
15
- this.snapshot = next;
16
- for (const listener of this.listeners)
17
- listener();
18
- }
19
- setRoutes(routes) {
20
- this.update({ status: 'ready', routes });
21
- }
22
- setUnavailable(reason) {
23
- this.update({ status: 'unavailable', reason });
24
- }
25
- }
26
- /** 模型目录单例(ModelPicker 消费;connectHost 负责喂)。 */
27
- export const modelCatalog = new ModelCatalogStore();
28
- /** 稳定的空归档集合:官方快照缺席时用它,保证 getArchiveSnapshot 引用稳定。 */
29
- const NO_ARCHIVED_SESSIONS = [];
30
- /**
31
- * 工作区列表的 observable store:直接镜像官方 WorkspaceSource 的 `items` 与
32
- * `archivedSessionIds`(宿主权威快照,follow 流实时推 —— 源变我们就变,不自持第二份状态机)。
33
- * `getSnapshot` 保持原有的 items 形态(explorer 各调用方按数组消费),归档集合另给两种读法。
34
- */
35
- class WorkspaceListStore {
36
- constructor() {
37
- this.items = [];
38
- this.archivedSessionIds = NO_ARCHIVED_SESSIONS;
39
- this.listeners = new Set();
40
- this.getSnapshot = () => this.items;
41
- /** 归档集合的稳定引用(直接喂 useSyncExternalStore,不需要额外 selector 缓存)。 */
42
- this.getArchiveSnapshot = () => this.archivedSessionIds;
43
- this.isSessionArchived = (sessionId) => this.archivedSessionIds.includes(sessionId);
44
- this.subscribe = (listener) => {
45
- this.listeners.add(listener);
46
- return () => {
47
- this.listeners.delete(listener);
48
- };
49
- };
50
- }
51
- /** 换源(仅 connectHost 调;重复调用换到新源)。 */
52
- setSource(source) {
53
- this.unsubscribe?.();
54
- const pull = () => {
55
- const snap = source.getSnapshot();
56
- this.items = snap.items;
57
- this.archivedSessionIds = snap.archivedSessionIds ?? NO_ARCHIVED_SESSIONS;
58
- for (const listener of this.listeners)
59
- listener();
60
- };
61
- pull();
62
- this.unsubscribe = source.subscribe(pull);
63
- }
64
- }
65
- /** 工作区列表单例(WorkspacePicker / 会话预览消费;connectHost 负责喂)。 */
66
- export const workspaceList = new WorkspaceListStore();
67
- // ── 工作区文件服务 ──────────────────────────────────────────────────────
68
- /**
69
- * 宿主 `remote.workspaceFiles`(explorer 的读文件通道)单例,由 `connectHost` 喂。
70
- *
71
- * 为什么核心要自己存一份:消费方写 `openFilePreview({ mount, path })` 就够了 —— 服务对象
72
- * 只能从插件的 ctx 里 inject 出来(库拿不到 ctx),所以它必须由**一次接线**交进来,
73
- * 而不是每次调用各传一遍(用户 2026-10-28 拍板:绑定能力归核心,调用方只管要什么)。
74
- */
75
- let workspaceFiles;
76
- /** 当前接到的文件服务;宿主没这能力 / 没调 connectHost ⇒ undefined。 */
77
- export function getWorkspaceFiles() {
78
- return workspaceFiles;
79
- }
80
- function isWorkspaceSource(value) {
81
- if (value === null || typeof value !== 'object')
82
- return false;
83
- const rec = value;
84
- return typeof rec.getSnapshot === 'function' && typeof rec.subscribe === 'function';
85
- }
86
- /**
87
- * 把宿主数据面接进核心(插件 client `apply` 里调**一次**)。
88
- *
89
- * 工作区走本地 client 服务注入;模型目录走宿主路由 fetch。哪条失败只影响那一块,
90
- * 选择器照常渲染空态 / 降级提示 —— 绝不让数据面拖住插件启动。
91
- */
92
- export function connectHost(ctx, options = {}) {
93
- ctx.inject(['workspaces'], (sub) => {
94
- const source = sub?.workspaces?.list;
95
- if (isWorkspaceSource(source))
96
- workspaceList.setSource(source);
97
- });
98
- // 读文件通道:`explorer` 的预览靠它读字节,绑定归这里,调用方不必再传服务。
99
- // dotted 注入值优先,退回 `remote` 上的同名属性;探针 `list` 不在 ⇒ 判为没就位。
100
- ctx.inject(['remote', 'remote.workspaceFiles'], (sub) => {
101
- const rec = sub;
102
- const candidate = rec?.['remote.workspaceFiles'] ?? rec?.remote?.workspaceFiles;
103
- if (typeof candidate?.list === 'function') {
104
- workspaceFiles = candidate;
105
- }
106
- });
107
- const modelsPath = options.modelsPath;
108
- if (modelsPath === undefined)
109
- return;
110
- void fetch(modelsPath)
111
- .then((response) => (response.ok ? response.json() : Promise.reject(new Error(`HTTP ${response.status}`))))
112
- .then((data) => {
113
- const routes = data?.routes;
114
- if (!Array.isArray(routes))
115
- throw new Error('模型目录响应缺少 routes');
116
- modelCatalog.setRoutes(routes);
117
- })
118
- .catch((error) => {
119
- modelCatalog.setUnavailable(String(error));
120
- });
121
- }
122
- //# sourceMappingURL=host-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-data.js","sourceRoot":"","sources":["../../src/ui/host-data.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- export interface HostToastAction {
2
- text: string;
3
- onClick: () => void;
4
- }
5
- export interface HostToastOptions {
6
- /** 仅宿主原生支持 'success' 一个语义色;不传则是默认中性条。 */
7
- tone?: 'success';
8
- /** 停留时长(毫秒),默认 3000。 */
9
- holdMs?: number;
10
- /** 右侧动作(宿主原生渲染为蓝色可点文字)。 */
11
- actions?: HostToastAction[];
12
- /** 淡出完成后触发。 */
13
- onDismiss?: () => void;
14
- }
15
- /**
16
- * 宿主原生 Toast(直接包 `@deepseek-ai/dsh-client-ui-primitives` 的 `Toast`)。
17
- *
18
- * 放在独立子路径 `dsh-plugin-core/ui/host` 导出,**不**经 `dsh-plugin-core/ui` 入口,
19
- * 避免 `ui` 入口静态 import 官方平台模块导致 Node 单测崩(旧坑)。
20
- * 仅用于「宿主原生」对比 demo;项目内通常请用 `notify`。
21
- */
22
- export declare function showHostToast(message: string, opts?: HostToastOptions): void;
23
- //# sourceMappingURL=host-toast.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-toast.d.ts","sourceRoot":"","sources":["../../src/ui/host-toast.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2BAA2B;IAC3B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,eAAe;IACf,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAwB5E"}
@@ -1,34 +0,0 @@
1
- import { createElement as h } from 'react';
2
- import { createRoot } from 'react-dom/client';
3
- import { Official } from './official.js';
4
- /**
5
- * 宿主原生 Toast(直接包 `@deepseek-ai/dsh-client-ui-primitives` 的 `Toast`)。
6
- *
7
- * 放在独立子路径 `dsh-plugin-core/ui/host` 导出,**不**经 `dsh-plugin-core/ui` 入口,
8
- * 避免 `ui` 入口静态 import 官方平台模块导致 Node 单测崩(旧坑)。
9
- * 仅用于「宿主原生」对比 demo;项目内通常请用 `notify`。
10
- */
11
- export function showHostToast(message, opts) {
12
- if (typeof document === 'undefined')
13
- return;
14
- const container = document.createElement('div');
15
- document.body.appendChild(container);
16
- const root = createRoot(container);
17
- const close = () => {
18
- root.unmount();
19
- container.remove();
20
- };
21
- root.render(h(Official.Toast, {
22
- text: message,
23
- tone: opts?.tone,
24
- holdMs: opts?.holdMs ?? 3000,
25
- actions: opts?.actions !== undefined
26
- ? opts.actions.map((a) => ({ label: a.text, onClick: a.onClick }))
27
- : undefined,
28
- onDone: () => {
29
- close();
30
- opts?.onDismiss?.();
31
- },
32
- }));
33
- }
34
- //# sourceMappingURL=host-toast.js.map