dsh-plugin-core 0.2.13 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/README.md +52 -83
  2. package/dist/design/tokens-css.d.ts +1 -1
  3. package/dist/design/tokens-css.d.ts.map +1 -1
  4. package/dist/design/tokens-css.generated.d.ts +2 -0
  5. package/dist/design/tokens-css.generated.d.ts.map +1 -0
  6. package/dist/design/tokens-css.generated.js +4 -0
  7. package/dist/design/tokens-css.generated.js.map +1 -0
  8. package/dist/design/tokens-css.js +1 -252
  9. package/dist/design/tokens-css.js.map +1 -1
  10. package/dist/explorer/FileBrowser.d.ts +41 -0
  11. package/dist/explorer/FileBrowser.d.ts.map +1 -0
  12. package/dist/explorer/FileBrowser.js +659 -0
  13. package/dist/explorer/FileBrowser.js.map +1 -0
  14. package/dist/explorer/explorer-css.d.ts +1 -1
  15. package/dist/explorer/explorer-css.d.ts.map +1 -1
  16. package/dist/explorer/explorer-css.generated.d.ts +2 -0
  17. package/dist/explorer/explorer-css.generated.d.ts.map +1 -0
  18. package/dist/explorer/explorer-css.generated.js +4 -0
  19. package/dist/explorer/explorer-css.generated.js.map +1 -0
  20. package/dist/explorer/explorer-css.js +1 -31
  21. package/dist/explorer/explorer-css.js.map +1 -1
  22. package/dist/explorer/index.d.ts +4 -2
  23. package/dist/explorer/index.d.ts.map +1 -1
  24. package/dist/explorer/index.js +4 -2
  25. package/dist/explorer/index.js.map +1 -1
  26. package/dist/explorer/open.d.ts +103 -0
  27. package/dist/explorer/open.d.ts.map +1 -0
  28. package/dist/explorer/open.js +282 -0
  29. package/dist/explorer/open.js.map +1 -0
  30. package/dist/explorer/preview/BytesPreview.d.ts +13 -0
  31. package/dist/explorer/preview/BytesPreview.d.ts.map +1 -0
  32. package/dist/explorer/preview/BytesPreview.js +56 -0
  33. package/dist/explorer/preview/BytesPreview.js.map +1 -0
  34. package/dist/explorer/preview/HtmlPreview.d.ts +18 -0
  35. package/dist/explorer/preview/HtmlPreview.d.ts.map +1 -0
  36. package/dist/explorer/preview/HtmlPreview.js +112 -0
  37. package/dist/explorer/preview/HtmlPreview.js.map +1 -0
  38. package/dist/explorer/preview/OfficePreview.d.ts +11 -0
  39. package/dist/explorer/preview/OfficePreview.d.ts.map +1 -0
  40. package/dist/explorer/preview/OfficePreview.js +53 -0
  41. package/dist/explorer/preview/OfficePreview.js.map +1 -0
  42. package/dist/explorer/preview/TextPreview.d.ts +17 -0
  43. package/dist/explorer/preview/TextPreview.d.ts.map +1 -0
  44. package/dist/explorer/preview/TextPreview.js +95 -0
  45. package/dist/explorer/preview/TextPreview.js.map +1 -0
  46. package/dist/explorer/preview/index.d.ts +10 -3
  47. package/dist/explorer/preview/index.d.ts.map +1 -1
  48. package/dist/explorer/preview/index.js +52 -55
  49. package/dist/explorer/preview/index.js.map +1 -1
  50. package/dist/explorer/preview/md-labels.d.ts +3 -0
  51. package/dist/explorer/preview/md-labels.d.ts.map +1 -0
  52. package/dist/explorer/preview/md-labels.js +12 -0
  53. package/dist/explorer/preview/md-labels.js.map +1 -0
  54. package/dist/explorer/types.d.ts +186 -4
  55. package/dist/explorer/types.d.ts.map +1 -1
  56. package/dist/explorer/types.js +401 -14
  57. package/dist/explorer/types.js.map +1 -1
  58. package/dist/host/index.d.ts +66 -0
  59. package/dist/host/index.d.ts.map +1 -0
  60. package/dist/host/index.js +60 -0
  61. package/dist/host/index.js.map +1 -0
  62. package/dist/session/SessionViewModal.d.ts +42 -0
  63. package/dist/session/SessionViewModal.d.ts.map +1 -0
  64. package/dist/session/SessionViewModal.js +997 -0
  65. package/dist/session/SessionViewModal.js.map +1 -0
  66. package/dist/session/changes.d.ts +73 -0
  67. package/dist/session/changes.d.ts.map +1 -0
  68. package/dist/session/changes.js +134 -0
  69. package/dist/session/changes.js.map +1 -0
  70. package/dist/session/faces.d.ts +198 -0
  71. package/dist/session/faces.d.ts.map +1 -0
  72. package/dist/session/faces.js +17 -0
  73. package/dist/session/faces.js.map +1 -0
  74. package/dist/session/index.d.ts +5 -23
  75. package/dist/session/index.d.ts.map +1 -1
  76. package/dist/session/index.js +25 -70
  77. package/dist/session/index.js.map +1 -1
  78. package/dist/session/mirror/ChangedFileDiff.d.ts +22 -0
  79. package/dist/session/mirror/ChangedFileDiff.d.ts.map +1 -0
  80. package/dist/session/mirror/ChangedFileDiff.js +157 -0
  81. package/dist/session/mirror/ChangedFileDiff.js.map +1 -0
  82. package/dist/session/mirror/ChangedFilesCard.d.ts +18 -0
  83. package/dist/session/mirror/ChangedFilesCard.d.ts.map +1 -0
  84. package/dist/session/mirror/ChangedFilesCard.js +158 -0
  85. package/dist/session/mirror/ChangedFilesCard.js.map +1 -0
  86. package/dist/session/mirror/ChatGroupSeat.d.ts +24 -0
  87. package/dist/session/mirror/ChatGroupSeat.d.ts.map +1 -0
  88. package/dist/session/mirror/ChatGroupSeat.js +134 -0
  89. package/dist/session/mirror/ChatGroupSeat.js.map +1 -0
  90. package/dist/session/mirror/ChatNodeSeat.d.ts +43 -0
  91. package/dist/session/mirror/ChatNodeSeat.d.ts.map +1 -0
  92. package/dist/session/mirror/ChatNodeSeat.js +133 -0
  93. package/dist/session/mirror/ChatNodeSeat.js.map +1 -0
  94. package/dist/session/mirror/ChatView.d.ts +47 -0
  95. package/dist/session/mirror/ChatView.d.ts.map +1 -0
  96. package/dist/session/mirror/ChatView.js +127 -0
  97. package/dist/session/mirror/ChatView.js.map +1 -0
  98. package/dist/session/mirror/CommandCard.d.ts +20 -0
  99. package/dist/session/mirror/CommandCard.d.ts.map +1 -0
  100. package/dist/session/mirror/CommandCard.js +69 -0
  101. package/dist/session/mirror/CommandCard.js.map +1 -0
  102. package/dist/session/mirror/Deliverables.d.ts +24 -0
  103. package/dist/session/mirror/Deliverables.d.ts.map +1 -0
  104. package/dist/session/mirror/Deliverables.js +134 -0
  105. package/dist/session/mirror/Deliverables.js.map +1 -0
  106. package/dist/session/mirror/GenericCommandCard.d.ts +25 -0
  107. package/dist/session/mirror/GenericCommandCard.d.ts.map +1 -0
  108. package/dist/session/mirror/GenericCommandCard.js +567 -0
  109. package/dist/session/mirror/GenericCommandCard.js.map +1 -0
  110. package/dist/session/mirror/MessageIconActions.d.ts +16 -0
  111. package/dist/session/mirror/MessageIconActions.d.ts.map +1 -0
  112. package/dist/session/mirror/MessageIconActions.js +71 -0
  113. package/dist/session/mirror/MessageIconActions.js.map +1 -0
  114. package/dist/session/mirror/MessageItem.d.ts +66 -0
  115. package/dist/session/mirror/MessageItem.d.ts.map +1 -0
  116. package/dist/session/mirror/MessageItem.js +135 -0
  117. package/dist/session/mirror/MessageItem.js.map +1 -0
  118. package/dist/session/mirror/ReasoningRow.d.ts +11 -0
  119. package/dist/session/mirror/ReasoningRow.d.ts.map +1 -0
  120. package/dist/session/mirror/ReasoningRow.js +49 -0
  121. package/dist/session/mirror/ReasoningRow.js.map +1 -0
  122. package/dist/session/mirror/StatDialog.d.ts +20 -0
  123. package/dist/session/mirror/StatDialog.d.ts.map +1 -0
  124. package/dist/session/mirror/StatDialog.js +36 -0
  125. package/dist/session/mirror/StatDialog.js.map +1 -0
  126. package/dist/session/mirror/TurnProcessNodeView.d.ts +10 -0
  127. package/dist/session/mirror/TurnProcessNodeView.d.ts.map +1 -0
  128. package/dist/session/mirror/TurnProcessNodeView.js +68 -0
  129. package/dist/session/mirror/TurnProcessNodeView.js.map +1 -0
  130. package/dist/session/mirror/TurnTailNodeView.d.ts +32 -0
  131. package/dist/session/mirror/TurnTailNodeView.d.ts.map +1 -0
  132. package/dist/session/mirror/TurnTailNodeView.js +48 -0
  133. package/dist/session/mirror/TurnTailNodeView.js.map +1 -0
  134. package/dist/session/mirror/TurnTriggerNodeView.d.ts +14 -0
  135. package/dist/session/mirror/TurnTriggerNodeView.d.ts.map +1 -0
  136. package/dist/session/mirror/TurnTriggerNodeView.js +87 -0
  137. package/dist/session/mirror/TurnTriggerNodeView.js.map +1 -0
  138. package/dist/session/mirror/TurnUsagePanel.d.ts +21 -0
  139. package/dist/session/mirror/TurnUsagePanel.d.ts.map +1 -0
  140. package/dist/session/mirror/TurnUsagePanel.js +41 -0
  141. package/dist/session/mirror/TurnUsagePanel.js.map +1 -0
  142. package/dist/session/mirror/message-chrome.d.ts +33 -0
  143. package/dist/session/mirror/message-chrome.d.ts.map +1 -0
  144. package/dist/session/mirror/message-chrome.js +158 -0
  145. package/dist/session/mirror/message-chrome.js.map +1 -0
  146. package/dist/session/mirror/process-groups.d.ts +56 -0
  147. package/dist/session/mirror/process-groups.d.ts.map +1 -0
  148. package/dist/session/mirror/process-groups.js +202 -0
  149. package/dist/session/mirror/process-groups.js.map +1 -0
  150. package/dist/session/official-classes.d.ts +28 -0
  151. package/dist/session/official-classes.d.ts.map +1 -0
  152. package/dist/session/official-classes.js +146 -0
  153. package/dist/session/official-classes.js.map +1 -0
  154. package/dist/session/open-session-view.d.ts +17 -0
  155. package/dist/session/open-session-view.d.ts.map +1 -0
  156. package/dist/session/open-session-view.js +136 -0
  157. package/dist/session/open-session-view.js.map +1 -0
  158. package/dist/session/session-css.d.ts +1 -1
  159. package/dist/session/session-css.d.ts.map +1 -1
  160. package/dist/session/session-css.generated.d.ts +2 -0
  161. package/dist/session/session-css.generated.d.ts.map +1 -0
  162. package/dist/session/session-css.generated.js +4 -0
  163. package/dist/session/session-css.generated.js.map +1 -0
  164. package/dist/session/session-css.js +1 -17
  165. package/dist/session/session-css.js.map +1 -1
  166. package/dist/ui/AlertModal.d.ts +28 -0
  167. package/dist/ui/AlertModal.d.ts.map +1 -0
  168. package/dist/ui/AlertModal.js +29 -0
  169. package/dist/ui/AlertModal.js.map +1 -0
  170. package/dist/ui/Button.d.ts.map +1 -1
  171. package/dist/ui/Button.js +14 -1
  172. package/dist/ui/Button.js.map +1 -1
  173. package/dist/ui/Card.d.ts +4 -2
  174. package/dist/ui/Card.d.ts.map +1 -1
  175. package/dist/ui/Card.js +12 -6
  176. package/dist/ui/Card.js.map +1 -1
  177. package/dist/ui/Chip.d.ts +9 -1
  178. package/dist/ui/Chip.d.ts.map +1 -1
  179. package/dist/ui/Chip.js +8 -2
  180. package/dist/ui/Chip.js.map +1 -1
  181. package/dist/ui/CodeViewer.d.ts +36 -0
  182. package/dist/ui/CodeViewer.d.ts.map +1 -0
  183. package/dist/ui/CodeViewer.js +90 -0
  184. package/dist/ui/CodeViewer.js.map +1 -0
  185. package/dist/ui/ConfirmModal.d.ts +30 -0
  186. package/dist/ui/ConfirmModal.d.ts.map +1 -0
  187. package/dist/ui/ConfirmModal.js +23 -0
  188. package/dist/ui/ConfirmModal.js.map +1 -0
  189. package/dist/ui/DateTimePicker.d.ts +45 -0
  190. package/dist/ui/DateTimePicker.d.ts.map +1 -0
  191. package/dist/ui/DateTimePicker.js +447 -0
  192. package/dist/ui/DateTimePicker.js.map +1 -0
  193. package/dist/ui/Field.d.ts +11 -2
  194. package/dist/ui/Field.d.ts.map +1 -1
  195. package/dist/ui/Field.js +15 -5
  196. package/dist/ui/Field.js.map +1 -1
  197. package/dist/ui/MarqueeText.d.ts.map +1 -1
  198. package/dist/ui/MarqueeText.js +3 -1
  199. package/dist/ui/MarqueeText.js.map +1 -1
  200. package/dist/ui/Modal.d.ts +25 -3
  201. package/dist/ui/Modal.d.ts.map +1 -1
  202. package/dist/ui/Modal.js +41 -7
  203. package/dist/ui/Modal.js.map +1 -1
  204. package/dist/ui/ModelPicker.d.ts +25 -12
  205. package/dist/ui/ModelPicker.d.ts.map +1 -1
  206. package/dist/ui/ModelPicker.js +67 -19
  207. package/dist/ui/ModelPicker.js.map +1 -1
  208. package/dist/ui/PanelDock.d.ts +127 -0
  209. package/dist/ui/PanelDock.d.ts.map +1 -0
  210. package/dist/ui/PanelDock.js +297 -0
  211. package/dist/ui/PanelDock.js.map +1 -0
  212. package/dist/ui/Picker.d.ts +8 -2
  213. package/dist/ui/Picker.d.ts.map +1 -1
  214. package/dist/ui/Picker.js +86 -18
  215. package/dist/ui/Picker.js.map +1 -1
  216. package/dist/ui/SectionHead.d.ts +3 -3
  217. package/dist/ui/SectionHead.d.ts.map +1 -1
  218. package/dist/ui/SectionHead.js +4 -4
  219. package/dist/ui/SectionHead.js.map +1 -1
  220. package/dist/ui/Segmented.d.ts +2 -0
  221. package/dist/ui/Segmented.d.ts.map +1 -1
  222. package/dist/ui/Segmented.js +3 -1
  223. package/dist/ui/Segmented.js.map +1 -1
  224. package/dist/ui/Textarea.d.ts +2 -0
  225. package/dist/ui/Textarea.d.ts.map +1 -1
  226. package/dist/ui/Textarea.js +6 -1
  227. package/dist/ui/Textarea.js.map +1 -1
  228. package/dist/ui/Toast.d.ts +41 -8
  229. package/dist/ui/Toast.d.ts.map +1 -1
  230. package/dist/ui/Toast.js +216 -28
  231. package/dist/ui/Toast.js.map +1 -1
  232. package/dist/ui/WorkspacePicker.d.ts +15 -28
  233. package/dist/ui/WorkspacePicker.d.ts.map +1 -1
  234. package/dist/ui/WorkspacePicker.js +18 -27
  235. package/dist/ui/WorkspacePicker.js.map +1 -1
  236. package/dist/ui/card-css.d.ts +1 -1
  237. package/dist/ui/card-css.d.ts.map +1 -1
  238. package/dist/ui/card-css.generated.d.ts +2 -0
  239. package/dist/ui/card-css.generated.d.ts.map +1 -0
  240. package/dist/ui/card-css.generated.js +4 -0
  241. package/dist/ui/card-css.generated.js.map +1 -0
  242. package/dist/ui/card-css.js +1 -35
  243. package/dist/ui/card-css.js.map +1 -1
  244. package/dist/ui/chip-css.d.ts +1 -1
  245. package/dist/ui/chip-css.d.ts.map +1 -1
  246. package/dist/ui/chip-css.generated.d.ts +2 -0
  247. package/dist/ui/chip-css.generated.d.ts.map +1 -0
  248. package/dist/ui/chip-css.generated.js +4 -0
  249. package/dist/ui/chip-css.generated.js.map +1 -0
  250. package/dist/ui/chip-css.js +1 -17
  251. package/dist/ui/chip-css.js.map +1 -1
  252. package/dist/ui/code-viewer-css.d.ts +2 -0
  253. package/dist/ui/code-viewer-css.d.ts.map +1 -0
  254. package/dist/ui/code-viewer-css.generated.d.ts +2 -0
  255. package/dist/ui/code-viewer-css.generated.d.ts.map +1 -0
  256. package/dist/ui/code-viewer-css.generated.js +4 -0
  257. package/dist/ui/code-viewer-css.generated.js.map +1 -0
  258. package/dist/ui/code-viewer-css.js +3 -0
  259. package/dist/ui/code-viewer-css.js.map +1 -0
  260. package/dist/ui/code-viewer-lang.d.ts +15 -0
  261. package/dist/ui/code-viewer-lang.d.ts.map +1 -0
  262. package/dist/ui/code-viewer-lang.js +190 -0
  263. package/dist/ui/code-viewer-lang.js.map +1 -0
  264. package/dist/ui/code-viewer-theme.d.ts +5 -0
  265. package/dist/ui/code-viewer-theme.d.ts.map +1 -0
  266. package/dist/ui/code-viewer-theme.js +138 -0
  267. package/dist/ui/code-viewer-theme.js.map +1 -0
  268. package/dist/ui/controls/back-to-top-css.generated.d.ts +2 -0
  269. package/dist/ui/controls/back-to-top-css.generated.d.ts.map +1 -0
  270. package/dist/ui/controls/back-to-top-css.generated.js +4 -0
  271. package/dist/ui/controls/back-to-top-css.generated.js.map +1 -0
  272. package/dist/ui/controls/button-css.generated.d.ts +2 -0
  273. package/dist/ui/controls/button-css.generated.d.ts.map +1 -0
  274. package/dist/ui/controls/button-css.generated.js +4 -0
  275. package/dist/ui/controls/button-css.generated.js.map +1 -0
  276. package/dist/ui/controls/datetime-css.generated.d.ts +2 -0
  277. package/dist/ui/controls/datetime-css.generated.d.ts.map +1 -0
  278. package/dist/ui/controls/datetime-css.generated.js +4 -0
  279. package/dist/ui/controls/datetime-css.generated.js.map +1 -0
  280. package/dist/ui/controls/field-css.generated.d.ts +2 -0
  281. package/dist/ui/controls/field-css.generated.d.ts.map +1 -0
  282. package/dist/ui/controls/field-css.generated.js +4 -0
  283. package/dist/ui/controls/field-css.generated.js.map +1 -0
  284. package/dist/ui/controls/hint-css.generated.d.ts +2 -0
  285. package/dist/ui/controls/hint-css.generated.d.ts.map +1 -0
  286. package/dist/ui/controls/hint-css.generated.js +4 -0
  287. package/dist/ui/controls/hint-css.generated.js.map +1 -0
  288. package/dist/ui/controls/loading-css.generated.d.ts +2 -0
  289. package/dist/ui/controls/loading-css.generated.d.ts.map +1 -0
  290. package/dist/ui/controls/loading-css.generated.js +4 -0
  291. package/dist/ui/controls/loading-css.generated.js.map +1 -0
  292. package/dist/ui/controls/segmented-css.generated.d.ts +2 -0
  293. package/dist/ui/controls/segmented-css.generated.d.ts.map +1 -0
  294. package/dist/ui/controls/segmented-css.generated.js +4 -0
  295. package/dist/ui/controls/segmented-css.generated.js.map +1 -0
  296. package/dist/ui/controls-css.d.ts +7 -8
  297. package/dist/ui/controls-css.d.ts.map +1 -1
  298. package/dist/ui/controls-css.js +13 -8
  299. package/dist/ui/controls-css.js.map +1 -1
  300. package/dist/ui/css.d.ts +5 -0
  301. package/dist/ui/css.d.ts.map +1 -1
  302. package/dist/ui/css.js +13 -4
  303. package/dist/ui/css.js.map +1 -1
  304. package/dist/ui/datetime-logic.d.ts +100 -0
  305. package/dist/ui/datetime-logic.d.ts.map +1 -0
  306. package/dist/ui/datetime-logic.js +193 -0
  307. package/dist/ui/datetime-logic.js.map +1 -0
  308. package/dist/ui/feedback-css.d.ts +1 -1
  309. package/dist/ui/feedback-css.d.ts.map +1 -1
  310. package/dist/ui/feedback-css.generated.d.ts +2 -0
  311. package/dist/ui/feedback-css.generated.d.ts.map +1 -0
  312. package/dist/ui/feedback-css.generated.js +4 -0
  313. package/dist/ui/feedback-css.generated.js.map +1 -0
  314. package/dist/ui/feedback-css.js +1 -53
  315. package/dist/ui/feedback-css.js.map +1 -1
  316. package/dist/ui/host-data.d.ts +103 -0
  317. package/dist/ui/host-data.d.ts.map +1 -0
  318. package/dist/ui/host-data.js +106 -0
  319. package/dist/ui/host-data.js.map +1 -0
  320. package/dist/ui/host-toast.d.ts +23 -0
  321. package/dist/ui/host-toast.d.ts.map +1 -0
  322. package/dist/ui/host-toast.js +34 -0
  323. package/dist/ui/host-toast.js.map +1 -0
  324. package/dist/ui/index.d.ts +12 -6
  325. package/dist/ui/index.d.ts.map +1 -1
  326. package/dist/ui/index.js +10 -4
  327. package/dist/ui/index.js.map +1 -1
  328. package/dist/ui/marquee-css.d.ts +2 -0
  329. package/dist/ui/marquee-css.d.ts.map +1 -0
  330. package/dist/ui/marquee-css.generated.d.ts +2 -0
  331. package/dist/ui/marquee-css.generated.d.ts.map +1 -0
  332. package/dist/ui/marquee-css.generated.js +4 -0
  333. package/dist/ui/marquee-css.generated.js.map +1 -0
  334. package/dist/ui/marquee-css.js +4 -0
  335. package/dist/ui/marquee-css.js.map +1 -0
  336. package/dist/ui/modal-host.d.ts +30 -0
  337. package/dist/ui/modal-host.d.ts.map +1 -0
  338. package/dist/ui/modal-host.js +101 -0
  339. package/dist/ui/modal-host.js.map +1 -0
  340. package/dist/ui/official.d.ts.map +1 -1
  341. package/dist/ui/official.js +45 -1
  342. package/dist/ui/official.js.map +1 -1
  343. package/dist/ui/panel-dock-css.d.ts +2 -0
  344. package/dist/ui/panel-dock-css.d.ts.map +1 -0
  345. package/dist/ui/panel-dock-css.generated.d.ts +2 -0
  346. package/dist/ui/panel-dock-css.generated.d.ts.map +1 -0
  347. package/dist/ui/panel-dock-css.generated.js +4 -0
  348. package/dist/ui/panel-dock-css.generated.js.map +1 -0
  349. package/dist/ui/panel-dock-css.js +4 -0
  350. package/dist/ui/panel-dock-css.js.map +1 -0
  351. package/dist/ui/panel-dock-logic.d.ts +50 -0
  352. package/dist/ui/panel-dock-logic.d.ts.map +1 -0
  353. package/dist/ui/panel-dock-logic.js +64 -0
  354. package/dist/ui/panel-dock-logic.js.map +1 -0
  355. package/dist/ui/picker-css.d.ts +1 -1
  356. package/dist/ui/picker-css.d.ts.map +1 -1
  357. package/dist/ui/picker-css.generated.d.ts +2 -0
  358. package/dist/ui/picker-css.generated.d.ts.map +1 -0
  359. package/dist/ui/picker-css.generated.js +4 -0
  360. package/dist/ui/picker-css.generated.js.map +1 -0
  361. package/dist/ui/picker-css.js +1 -48
  362. package/dist/ui/picker-css.js.map +1 -1
  363. package/dist/ui/picker-icons.d.ts +12 -0
  364. package/dist/ui/picker-icons.d.ts.map +1 -0
  365. package/dist/ui/picker-icons.js +29 -0
  366. package/dist/ui/picker-icons.js.map +1 -0
  367. package/dist/ui/picker-logic.d.ts +4 -1
  368. package/dist/ui/picker-logic.d.ts.map +1 -1
  369. package/dist/ui/picker-logic.js +1 -2
  370. package/dist/ui/picker-logic.js.map +1 -1
  371. package/dist/ui/resizer.d.ts +3 -1
  372. package/dist/ui/resizer.d.ts.map +1 -1
  373. package/dist/ui/resizer.js +1 -1
  374. package/dist/ui/resizer.js.map +1 -1
  375. package/dist/ui/toast-host.d.ts +24 -0
  376. package/dist/ui/toast-host.d.ts.map +1 -0
  377. package/dist/ui/toast-host.js +20 -0
  378. package/dist/ui/toast-host.js.map +1 -0
  379. package/dist/utils/date.d.ts +8 -0
  380. package/dist/utils/date.d.ts.map +1 -1
  381. package/dist/utils/date.js +16 -0
  382. package/dist/utils/date.js.map +1 -1
  383. package/dist/utils/i18n.d.ts +1 -1
  384. package/dist/utils/i18n.d.ts.map +1 -1
  385. package/dist/utils/i18n.js +437 -18
  386. package/dist/utils/i18n.js.map +1 -1
  387. package/dist/utils/index.d.ts +1 -1
  388. package/dist/utils/index.d.ts.map +1 -1
  389. package/dist/utils/index.js +1 -1
  390. package/dist/utils/index.js.map +1 -1
  391. package/dist/utils/path.d.ts.map +1 -1
  392. package/dist/utils/path.js +1 -0
  393. package/dist/utils/path.js.map +1 -1
  394. package/docs/README.md +12 -5
  395. package/docs/design/architecture.md +38 -8
  396. package/docs/design/copywriting.md +95 -0
  397. package/docs/design/doc-format.md +80 -0
  398. package/docs/design/doc-format.ts +39 -0
  399. package/docs/design/external/dsh-host.md +150 -1
  400. package/docs/design/features.md +4 -17
  401. package/docs/design/methods.md +13 -34
  402. package/docs/design/structure.md +25 -22
  403. package/docs/design/style.md +24 -50
  404. package/docs/help/design.doc.ts +112 -0
  405. package/docs/help/design.md +88 -0
  406. package/docs/help/explorer.doc.ts +136 -0
  407. package/docs/help/explorer.md +68 -0
  408. package/docs/help/index.doc.ts +79 -0
  409. package/docs/help/index.md +28 -0
  410. package/docs/help/integration.doc.ts +114 -0
  411. package/docs/help/integration.md +127 -0
  412. package/docs/help/methods.md +58 -0
  413. package/docs/help/session.doc.ts +154 -0
  414. package/docs/help/session.md +91 -0
  415. package/docs/help/style.md +80 -0
  416. package/docs/help/ui.doc.ts +404 -0
  417. package/docs/help/ui.md +342 -0
  418. package/docs/help/utils.doc.ts +133 -0
  419. package/docs/help/utils.md +96 -0
  420. package/docs/requirements.md +33 -12
  421. package/package.json +44 -3
  422. package/dist/ui/ErrorBoundary.d.ts +0 -22
  423. package/dist/ui/ErrorBoundary.d.ts.map +0 -1
  424. package/dist/ui/ErrorBoundary.js +0 -30
  425. package/dist/ui/ErrorBoundary.js.map +0 -1
  426. package/docs/design/features/design.md +0 -55
  427. package/docs/design/features/explorer.md +0 -73
  428. package/docs/design/features/session.md +0 -70
  429. package/docs/design/features/ui.md +0 -225
  430. package/docs/design/features/utils.md +0 -64
  431. package/docs/examples/integration.md +0 -103
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileBrowser.js","sourceRoot":"","sources":["../../src/explorer/FileBrowser.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,gFAAgF;AAChF,6DAA6D;AAC7D,iDAAiD;AACjD,2BAA2B;AAC3B,EAAE;AACF,8CAA8C;AAC9C,iEAAiE;AACjE,yBAAyB;AACzB,4EAA4E;AAC5E,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,oCAAoC;AACpC,OAAO,EACL,aAAa,IAAI,CAAC,EAClB,QAAQ,EACR,WAAW,EACX,SAAS,EACT,eAAe,EACf,OAAO,EACP,MAAM,EACN,QAAQ,EACR,oBAAoB,GAGrB,MAAM,OAAO,CAAA;AACd,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,CAAC,EAAkB,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,WAAW,EACX,eAAe,EACf,SAAS,EACT,OAAO,EACP,cAAc,EACd,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,sBAAsB,GAOvB,MAAM,YAAY,CAAA;AA8CnB;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CAAC,MAO1B;IACC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAC9F,MAAM,GAAG,GAAgB,EAAE,CAAA;IAC3B,uDAAuD;IACvD,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,OAAgB,EAAa,EAAE,CAC1D,CAAC,CACC,QAAQ,EACR;QACE,GAAG,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,qBAAqB;QAChC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE;QAC5E,KAAK,EAAE,EAAE;QACT,oDAAoD;QACpD,iCAAiC;QACjC,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,OAAO;gBAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA;;gBACvB,eAAe,EAAE,CAAC,EAAE,CAAC,CAAA;QAC5B,CAAC;KACF,EACD,CAAC,CACC,MAAM,EACN,EAAE,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,EACzG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACjF,EACD,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CACjG,CAAA;IACH,MAAM,SAAS,GAAG,CAAC,KAAsC,EAAE,KAAa,EAAE,SAAS,GAAG,IAAI,EAAa,EAAE,CACvG,CAAC,CACC,QAAQ,EACR;QACE,GAAG,EAAE,OAAO,KAAK,CAAC,IAAI,EAAE;QACxB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,qBAAqB;QAChC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;QACzB,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,OAAO,EAAE,GAAG,EAAE;YACZ,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;KACF,EACD,SAAS;QACP,CAAC,CAAC,CAAC,CACC,QAAQ,EACR,IAAI,EACJ,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAChI,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CACjG;QACH,CAAC,CAAC,IAAI,EACR,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAC9D,CAAA;IACH,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAA;QAClH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAA;IACjG,CAAC;IACD,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,QAAQ,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAC1G,IAAI,QAAQ,KAAK,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,qCAAqC;QACrC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;QACjC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QACF,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,EAAE,KAAK,QAAQ;gBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QACF,KAAK,MAAM,EAAE,IAAI,UAAU;YAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;IAC3D,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,cAAc,EAAE,CAAA;IAChB,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAA;IACpC,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAC/C,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI;QAAE,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,IAAI,eAAe,EAAE,CAAA;IACtF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAA;IAErD,mDAAmD;IACnD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAuC,SAAS,CAAC,CAAA;IACjF,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAA;IAC1C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA6B,IAAI,CAAC,CAAA;IACxE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAC3D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAoC,IAAI,CAAC,CAAA;IAC/E,+BAA+B;IAC/B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAA;IAChD,qCAAqC;IACrC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,qDAAqD;IACrD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAsB,IAAI,GAAG,EAAE,CAAC,CAAA;IACxE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAA4B,EAAE,CAAC,CAAA;IAC3E,uCAAuC;IACvC,MAAM,CAAC,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACpC,sDAAsD;IACtD,8CAA8C;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C,gDAAgD;IAChD,gEAAgE;IAChE,2DAA2D;IAC3D,6EAA6E;IAC7E,oCAAoC;IACpC,yDAAyD;IACzD,yEAAyE;IACzE,wDAAwD;IACxD,MAAM,cAAc,GAAG,oBAAoB,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAC/F,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,IAAI,cAAc,CAAA;IACxD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IACrG,MAAM,aAAa,GAAG,WAAW,EAAE,SAAS,IAAI,KAAK,CAAC,SAAS,CAAA;IAE/D,iEAAiE;IACjE,MAAM,WAAW,GAAG,CAAC,MAAoC,EAAQ,EAAE;QACjE,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;YAAE,OAAM;QACnD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,UAAU,CAAC,KAAK,CAAC,CAAA;YACjB,OAAM;QACR,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,WAAW;YAAE,UAAU,CAAC,IAAI,CAAC,CAAA;IAC5E,CAAC,CAAA;IAED,iCAAiC;IACjC,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,SAAiB,EAAQ,EAAE;QAC1B,MAAM,CAAC,SAAS,CAAC,CAAA;QACjB,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,CAAC,SAAS,CAAC,CAAA;QAClB,+BAA+B;QAC/B,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;QACtB,aAAa,CAAC,EAAE,CAAC,CAAA;QACjB,KAAK,CAAC,cAAc;aACjB,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;aAC1C,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;YAChC,WAAW,CAAC,MAAM,CAAC,CAAA;YACnB,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;gBAClC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAChB,OAAM;YACR,CAAC;YACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,UAAU,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;gBACxC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAChB,OAAM;YACR,CAAC;YACD,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC1B,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC9B,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACN,CAAC,EACD,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,CAAC,CACtC,CAAA;IAED,iCAAiC;IACjC,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,SAAiB,EAAQ,EAAE;QAC1B,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,QAAQ,CAAC,SAAS,CAAC,CAAA;YACnB,OAAM;QACR,CAAC;QACD,QAAQ,CAAC,SAAS,CAAC,CAAA;IACrB,CAAC,EACD,CAAC,GAAG,EAAE,QAAQ,CAAC,CAChB,CAAA;IAED,uBAAuB;IACvB,oDAAoD;IACpD,kCAAkC;IAClC,iEAAiE;IACjE,yDAAyD;IACzD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,GAAG,IAAI,CAAA;QAChB,OAAO,CAAC,SAAS,CAAC,CAAA;QAClB,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,cAAc,CAAC,CAAC,CAAC,CAAA;QACjB,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;QACtB,aAAa,CAAC,EAAE,CAAC,CAAA;QAEjB,oEAAoE;QACpE,MAAM,iBAAiB,GAAG,CAAC,UAAkB,EAAQ,EAAE;YACrD,IAAI,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS;gBAAE,OAAM;YACtD,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;oBAChG,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC;wBAAE,OAAM;oBACzD,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAA;oBACtC,IAAI,IAAI,KAAK,SAAS;wBAAE,OAAM;oBAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAA;oBACvB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;oBAClE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBACvB,MAAM,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAA;wBAC1D,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAqC,CAAA;wBAClG,MAAM,OAAO,GAAG,OAAO,GAAG,EAAE,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAA;wBAC/E,IAAI,OAAO,KAAK,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;4BACnF,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;4BAC1B,OAAM;wBACR,CAAC;oBACH,CAAC;oBACD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,CAAC,CAAA;oBAC5E,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;wBAC3G,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC5B,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,gBAAgB;gBAClB,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;QACN,CAAC,CAAA;QAED,KAAK,CAAC,cAAc;aACjB,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC3C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACrB,IAAI,CAAC,KAAK;gBAAE,OAAM;YAClB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;YAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACzC,UAAU,CAAC,KAAK,CAAC,CAAA;gBACjB,yCAAyC;gBACzC,sCAAsC;gBACtC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;gBAC3H,IAAI,CAAC,KAAK;oBAAE,OAAM;gBAClB,MAAM,CAAC,MAAM,CAAC,CAAA;gBACd,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBAC1B,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC9B,OAAO,CAAC,KAAK,CAAC,CAAA;gBACd,iBAAiB,CAAC,MAAM,CAAC,CAAA;gBACzB,OAAM;YACR,CAAC;YACD,oCAAoC;YACpC,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAClC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAA;gBACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;wBACjD,MAAM,GAAG,GAAG,OAAQ,GAAkC,CAAC,YAAY,KAAK,QAAQ;4BAC9E,CAAC,CAAE,GAAgC,CAAC,YAAY;4BAChD,CAAC,CAAC,IAAI,CAAA;wBACR,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;4BACjB,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;4BACvB,yBAAyB;4BACzB,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;wBACtD,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,iBAAiB;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,KAAK;gBAAE,OAAM;YAClB,MAAM,CAAC,MAAM,CAAC,CAAA;YACd,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACtB,OAAO,CAAC,MAAM,CAAC,CAAA;YACf,iBAAiB,CAAC,MAAM,CAAC,CAAA;YACzB,KAAK,CAAC,cAAc;iBACjB,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;iBACvC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,IAAI,CAAC,KAAK;oBAAE,OAAM;gBAClB,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;gBAC1B,WAAW,CAAC,EAAE,CAAC,CAAA;gBACf,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBACjC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;oBACtB,YAAY,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;gBAC5B,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACV,kBAAkB;YACpB,CAAC,CAAC,CAAA;QACN,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,KAAK;gBAAE,OAAM;YAClB,+BAA+B;YAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACpC,MAAM,CAAC,MAAM,CAAC,CAAA;YACd,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACtB,OAAO,CAAC,MAAM,CAAC,CAAA;YACf,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,KAAK,GAAG,KAAK,CAAA;QACf,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;IAEhE,0DAA0D;IAC1D,iDAAiD;IACjD,oBAAoB;IACpB,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAA;QAChC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAClC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI;YAAE,OAAM;QAC/C,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,iBAAiB,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;QACjE,CAAC,CAAA;QACD,SAAS,EAAE,CAAA;QACX,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,SAAS,CAAC,CAAA;QACxC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAClB,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAA;IAC9B,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAEjC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAS,EAAE;QACpC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC5B,OAAM;QACR,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,CAAA;IACd,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IAE3B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAS,EAAE;QACtC,qDAAqD;QACrD,MAAM,MAAM,GAAG,OAAO,IAAI,GAAG,CAAA;QAC7B,IAAI,MAAM,KAAK,EAAE;YAAE,OAAM;QACzB,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QAC9D,cAAc,CAAC,GAAG,CAAC;aAChB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YACX,IAAI,EAAE,EAAE,CAAC;gBACP,SAAS,CAAC,IAAI,CAAC,CAAA;gBACf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;YACjD,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,4BAA4B;QAC9B,CAAC,CAAC,CAAA;IACN,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;IAE5C,0CAA0C;IAC1C,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,IAAY,EAAQ,EAAE;QACrB,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;YAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;;gBAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACnB,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC;YAC1B,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;YACrE,KAAK,CAAC,cAAc;iBACjB,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;iBACrC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;gBAChC,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACvB,GAAG,IAAI;oBACP,CAAC,IAAI,CAAC,EACJ,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI;wBACjC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;wBACnF,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;iBAChF,CAAC,CAAC,CAAA;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACxB,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YAC5F,CAAC,CAAC,CAAA;QACN,CAAC;IACH,CAAC,EACD,CAAC,UAAU,EAAE,KAAK,CAAC,cAAc,EAAE,aAAa,CAAC,CAClD,CAAA;IAED,0DAA0D;IAC1D,+CAA+C;IAC/C,yCAAyC;IACzC,MAAM,QAAQ,GACZ,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IAC5G,kDAAkD;IAClD,MAAM,WAAW,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAA;IAErE,gEAAgE;IAChE,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,OAA4B,EAAE,OAAe,EAAa,EAAE,CAC3D,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,CAAA;QACxC,qCAAqC;QACrC,IAAI,CAAC,KAAK,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAA;QACnF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,GAAS,EAAE;gBACtB,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzC,0CAA0C;oBAC1C,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAA;oBAC1E,OAAM;gBACR,CAAC;gBACD,4BAA4B;gBAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;gBACnC,IAAI,MAAM,KAAK,GAAG;oBAAE,OAAO,CAAC,MAAM,CAAC,CAAA;gBACnC,UAAU,CAAC,SAAS,CAAC,CAAA;gBACrB,cAAc,CAAC,CAAC,CAAC,CAAA;gBACjB,aAAa,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC,CAAA;YACD,OAAO,CAAC,CACN,KAAK,EACL;gBACE,GAAG,EAAE,SAAS;gBACd,SAAS,EAAE,gBAAgB,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS;gBAClD,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,CAAC,KAAsB,EAAE,EAAE;oBACpC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;wBAAE,IAAI,EAAE,CAAA;gBACxD,CAAC;aACF,EACD,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAC9F,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;YAC1D,wCAAwC;YACxC,8BAA8B;YAC9B,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAClC,CAAC,CAAC,CAAC,CACC,MAAM,EACN;oBACE,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,mBAAmB;oBAC9B,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC;oBACpC,OAAO,EAAE,CAAC,KAAsC,EAAE,EAAE;wBAClD,KAAK,CAAC,eAAe,EAAE,CAAA;wBACvB,IAAI,EAAE,CAAA;oBACR,CAAC;iBACF,EACD,EAAE,CAAC,iBAAiB,CAAC,CACtB;gBACH,CAAC,CAAC,IAAI,CACT,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAA0B,UAAU,CAAC,SAAS,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACtC,+CAA+C;QAC/C,sCAAsC;QACtC,kCAAkC;QAClC,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,SAAS,CAAC,SAAS,CAAC,CAAA;QACtB,CAAC,CAAA;QACD,MAAM,UAAU,GAAG,CAAC,KAAsC,EAAQ,EAAE;YAClE,KAAK,CAAC,eAAe,EAAE,CAAA;YACvB,IAAI,MAAM,EAAE,CAAC;gBACX,0CAA0C;gBAC1C,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBAAE,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAA;gBACtH,OAAM;YACR,CAAC;YACD,OAAO,CAAC,SAAS,CAAC,CAAA;QACpB,CAAC,CAAA;QACD,OAAO,CAAC,CACN,QAAQ,EACR,EAAE,GAAG,EAAE,SAAS,EAAE,EAClB,CAAC,CACC,KAAK,EACL;YACE,SAAS,EAAE,eAAe;YAC1B,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,CAAC,KAAsB,EAAE,EAAE;gBACpC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;oBAAE,SAAS,EAAE,CAAA;YAC7D,CAAC;SACF;QACD,8EAA8E;QAC9E,CAAC,CAAC,UAAU,EAAE;YACZ,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,uBAAuB,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/E,IAAI,EAAE,CAAC,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACrD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC;YAC7D,eAAe,EAAE,MAAM;YACvB,OAAO,EAAE,CAAC,KAAsC,EAAE,EAAE;gBAClD,KAAK,CAAC,eAAe,EAAE,CAAA;gBACvB,SAAS,CAAC,SAAS,CAAC,CAAA;YACtB,CAAC;SACF,CAAC,EACF,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;QAC1D,wCAAwC;QACxC,aAAa;QACb,MAAM;YACJ,CAAC,CAAC,WAAW;gBACX,CAAC,CAAC,CAAC,CACC,MAAM,EACN;oBACE,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,mBAAmB;oBAC9B,YAAY,EAAE,EAAE,CAAC,qBAAqB,CAAC;oBACvC,OAAO,EAAE,UAAU;iBACpB,EACD,EAAE,CAAC,iBAAiB,CAAC,CACtB;gBACH,CAAC,CAAC,IAAI;YACR,CAAC,CAAC,CAAC,CACC,MAAM,EACN;gBACE,OAAO,EAAE,SAAS;gBAClB,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,mBAAmB;gBAC9B,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC;gBACjC,OAAO,EAAE,UAAU;aACpB,EACD,EAAE,CAAC,eAAe,CAAC,CACpB,CACN,EACD,MAAM;YACJ,CAAC,CAAC,CAAC,CACC,KAAK,EACL,EAAE,SAAS,EAAE,wBAAwB,EAAE;YACvC,sDAAsD;YACtD,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBACjD,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO;oBACzB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACzF,CAAC,CAAC,CAAC,CACC,QAAQ,EACR,IAAI,EACJ,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EACrC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACjG,CACR;YACH,CAAC,CAAC,IAAI,CACT,CAAA;IACH,CAAC,CAAC,EACJ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAC9H,CAAA;IAED,iDAAiD;IACjD,uDAAuD;IACvD,+DAA+D;IAC/D,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC5C,MAAM,SAAS,GAAG,WAAW,EAAE,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACpI,MAAM,MAAM,GAAG,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACtJ,iCAAiC;IACjC,MAAM,WAAW,GAAG,OAAO,KAAK,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzE,MAAM,aAAa,GAAG,OAAO,KAAK,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,WAAW,IAAI,aAAa,CAAA;IAE/C,MAAM,SAAS,GAAG,iBAAiB,CAAC;QAClC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,SAAS;QACnB,iBAAiB,EAAE,EAAE,CAAC,kBAAkB,CAAC;QACzC,MAAM;QACN,eAAe,EAAE,KAAK,CAAC,iBAAiB;QACxC,SAAS,EAAE,OAAO;KACnB,CAAC,CAAA;IAEF,4CAA4C;IAC5C,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,OAAoB,EAAE,OAAO,GAAG,KAAK,EAAa,EAAE,CACtF,CAAC,CACC,MAAM,EACN;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,kBAAkB,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,EAAE;QACzE,QAAQ,EAAE,OAAO,KAAK,SAAS;QAC/B,QAAQ,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO;KACR,EACD,CAAC,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CACjE,CAAA;IAEH,MAAM,QAAQ,GAAc,CAAC,CAC3B,KAAK,EACL,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,EACtE,CAAC,CACC,KAAK,EACL,EAAE,SAAS,EAAE,qBAAqB,EAAE,EACpC,CAAC,CAAC,UAAU,EAAE;QACZ,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CAAC,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACpD,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC;QAC3B,eAAe,EAAE,QAAQ;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;KACtC,CAAC;IACF,mDAAmD;IACnD,2CAA2C;IAC3C,QAAQ;QACN,CAAC,CAAC,CAAC,CACC,QAAQ,EACR,IAAI,EACJ,CAAC,CAAC,KAAK,EAAE;YACP,SAAS,EAAE,2BAA2B;YACtC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;SAClC,CAAC,EACF,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,CAC1E;QACH,CAAC,CAAC,IAAI,CACT,EACD,CAAC,CACC,KAAK,EACL,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE;IACjD,qCAAqC;IACrC,CAAC,CACC,MAAM,EACN,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,0BAA0B,EAAE,aAAa,EAAE,IAAI,EAAE,EAC/E,MAAM,CAAC,MAAM,KAAK,CAAC;QACjB,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC1B,CAAC,CACC,QAAQ,EACR,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EACnB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EACpG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CACzB,CACF,CACN;IACD,+BAA+B;IAC/B,cAAc;QACZ,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC;QACvI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YACnB,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC;YACtD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC1B,CAAC,CACC,QAAQ,EACR,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EACnB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EACpG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACpD,CACF,CACR,EACD,CAAC,CACC,KAAK,EACL,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAClC,KAAK,CAAC,OAAO,KAAK,SAAS;QACzB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;YACZ,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,CAAC,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC9C,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC;YACzB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CACP,CACF,CAAA;IAED,kDAAkD;IAClD,MAAM,aAAa,GAAc,CAAC,CAChC,KAAK,EACL,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,EACtE,CAAC,CAAC,WAAW,EAAE;QACb,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,qBAAqB;QAChC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;KACzC,CAAC,EACF,CAAC,CACC,KAAK,EACL,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAClC,KAAK,CAAC,OAAO,KAAK,SAAS;QACzB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE;YACZ,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,CAAC,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC9C,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC;YACzB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CACP,CACF,CAAA;IAED,yCAAyC;IACzC,qEAAqE;IACrE,MAAM,QAAQ,GACZ,OAAO,KAAK,IAAI;QACd,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,CACC,KAAK,EACL,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAChC,CAAC,CAAC,WAAW,EAAE;YACb,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC;YAC7B,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,uBAAuB;YAClC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;SACzC,CAAC,EACF,CAAC,CACC,KAAK,EACL,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAClC,UAAU;YACR,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;gBACX,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC;gBAC5E,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;gBACvC,KAAK,EAAE;oBACL,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE;oBAC/C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE;iBAChD;gBACD,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC7D,CAAC;YACJ,CAAC,CAAC,IAAI,EACR,CAAC,CAAC,UAAU,EAAE;YACZ,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACjG,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAC5B,OAAO,EAAE,QAAQ;SAClB,CAAC,EACF,CAAC,CAAC,UAAU,EAAE;YACZ,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,CAAC,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAChD,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC;YAC3B,OAAO,EAAE,MAAM;SAChB,CAAC,CACH,CACF,CAAA;IAEP,WAAW;IACX,IAAI,IAAe,CAAA;IACnB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE;YACpB,GAAG,EAAE,GAAG,OAAO,IAAI,WAAW,EAAE;YAChC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;YACtC,SAAS,EAAE,aAAa;YACxB,IAAI,EAAE,OAAO;YACb,UAAU;YACV,SAAS,EAAE,EAAE;SACd,CAAC,CAAA;IACJ,CAAC;SAAM,IAAI,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAChD,6CAA6C;QAC7C,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC7H,CAAC;SAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAC3J,IAAI;YACF,OAAO,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC9G,CAAC,CAAC,CAAC,CACC,KAAK,EACL,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAC/B,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,EACxB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAC1F,CAAA;IACT,CAAC;SAAM,CAAC;QACN,mCAAmC;QACnC,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,CAAC,CACN,KAAK,EACL;QACE,SAAS,EAAE,UAAU;QACrB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,SAAS;KAChC,EACD,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAClC,QAAQ,EACR,IAAI,CACL,CAAA;AACH,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const EXPLORER_CSS = "\n.dshpc-exp{display:flex;flex-direction:column;height:100%;min-height:0;color:var(--dshpc-fg);font-size:13px}\n.dshpc-exp__crumbs{\n display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding:6px 8px;\n border-bottom:1px solid var(--dshpc-border-faint);\n}\n.dshpc-exp__crumb{\n background:none;border:none;padding:2px 4px;border-radius:4px;cursor:pointer;\n color:var(--dshpc-link);font:inherit;\n}\n.dshpc-exp__crumb--current{color:var(--dshpc-fg);font-weight:600;cursor:default}\n.dshpc-exp__sep{color:var(--dshpc-fg-4)}\n.dshpc-exp__tools{display:flex;gap:6px;margin-left:auto}\n.dshpc-exp__body{display:flex;flex:1;min-height:0}\n.dshpc-exp__tree{width:220px;flex:none;overflow:auto;border-right:1px solid var(--dshpc-border-faint)}\n.dshpc-exp__item{\n display:flex;align-items:center;gap:6px;padding:4px 8px;cursor:pointer;white-space:nowrap;\n}\n.dshpc-exp__item:hover{background:var(--dshpc-surface-sunken)}\n.dshpc-exp__item--active{background:var(--dshpc-open-bg)}\n.dshpc-exp__icon{width:14px;flex:none;color:var(--dshpc-fg-3)}\n.dshpc-exp__name{overflow:hidden;text-overflow:ellipsis}\n.dshpc-exp__size{margin-left:auto;color:var(--dshpc-fg-4);font-size:11px}\n.dshpc-exp__preview{flex:1;min-width:0;overflow:auto;padding:8px}\n.dshpc-exp__note{padding:6px 8px;color:var(--dshpc-fg-3);font-size:11px}\n.dshpc-exp__text{\n margin:0;padding:8px;border-radius:6px;background:var(--dshpc-code-surface);\n font:var(--dshpc-code-font);white-space:pre-wrap;word-break:break-all;\n}\n.dshpc-exp__image{max-width:100%;border-radius:6px;border:1px solid var(--dshpc-border-faint)}\n";
1
+ export { EXPLORER_CSS } from './explorer-css.generated.js';
2
2
  //# sourceMappingURL=explorer-css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"explorer-css.d.ts","sourceRoot":"","sources":["../../src/explorer/explorer-css.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,kkDA8BxB,CAAA"}
1
+ {"version":3,"file":"explorer-css.d.ts","sourceRoot":"","sources":["../../src/explorer/explorer-css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const EXPLORER_CSS = "/* \u5DE5\u4F5C\u533A\u6587\u4EF6\u6D4F\u89C8\u5668\uFF08dshpc-fb-*\uFF09\u3002\n *\n * \u5EA6\u91CF\u771F\u6E90 = \u5144\u5F1F\u9879\u76EE dsh-task-dispatch-table \u7684 src/client/archive-session-css.ts\n * \uFF08.dsh-tdt-sv-* \u5168\u65CF\uFF09\u3002**\u9010\u6761\u7167\u6284\uFF0C\u4E0D\u8BB8\u81EA\u5DF1\u4F30**\uFF1Apadding / gap / \u5706\u89D2 / \u5B57\u53F7 / \u884C\u9AD8 /\n * \u8FB9\u6846\u8272 / \u60AC\u505C\u8272 / \u900F\u660E\u5EA6\u52A8\u753B / \u6EA2\u51FA\u7B56\u7565\uFF0C\u4E00\u4E00\u5BF9\u5E94\uFF0C\u6539\u8FD9\u91CC\u4E4B\u524D\u5148\u53BB\u90A3\u8FB9\u5BF9\u539F\u6587\u3002\n * \u524D\u7F00\u4E0E\u53D8\u91CF\u540D\u6362\u6210\u672C\u4ED3\u53E3\u5F84\uFF08--tdt-* \u2192 --dshpc-*\uFF09\uFF0C\u6570\u503C\u4E0D\u6362\u3002\n *\n * \u63A7\u4EF6\uFF1A\u80FD\u6838\u5FC3\u5C31\u6838\u5FC3\uFF08\u9762\u5305\u5C51 = Button ghost\u3001\u884C\u5C3E = Button outline\u3001\u5C55\u5F00 / \u56FE\u6807 = IconButton\u3001\n * \u5206\u6BB5 = Segmented\u3001\u6587\u5B57 = MarqueeText\uFF09\u3002\u6838\u5FC3\u63A7\u4EF6\u81EA\u5E26\u7684 padding / \u9AD8\u5EA6 / \u76AE\u80A4\u5728\u672C\u6587\u4EF6\u91CC\n * **\u6309\u5144\u5F1F\u6570\u503C\u8986\u76D6**\uFF08\u9009\u62E9\u5668\u5E26 .dshpc-fb \u524D\u7F00\u63D0\u9AD8\u7279\u5F02\u6027\uFF0C\u786E\u4FDD\u76D6\u5F97\u4F4F\u63A7\u4EF6\u9ED8\u8BA4\u503C\uFF09\u3002\n */\n.dshpc-fb{\n position:relative;display:flex;flex-direction:column;height:100%;min-height:0;\n background:var(--dshpc-surface-base);color:var(--dshpc-fg);\n}\n\n/* \u7B2C\u4E00\u6392\uFF1A\u25BE \u9009\u5C42 + \u9762\u5305\u5C51 + \u52A8\u4F5C\uFF08\u5144\u5F1F .dsh-tdt-sv-crumbbar\uFF09\n \u26A0\uFE0F \u4E0D\u80FD overflow:hidden \u2014\u2014 \u4E0B\u62C9\u6D6E\u5C42\u6302\u5728\u5B83\u4E0B\u9762\uFF0C\u88C1\u4E86\u5C31\u770B\u4E0D\u89C1\u3002 */\n.dshpc-fb__bar{\n position:relative;flex:none;display:flex;align-items:center;gap:2px;\n padding:4px 10px;border-bottom:1px solid var(--dshpc-border);white-space:nowrap;\n}\n.dshpc-fb__menu-wrap{position:relative;flex:none;display:inline-flex}\n.dshpc-fb__crumbs{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:2px;overflow:hidden}\n.dshpc-fb__crumbs-measure{\n position:absolute;top:0;left:0;display:inline-flex;align-items:center;gap:2px;\n visibility:hidden;pointer-events:none;white-space:nowrap;\n}\n\n/* \u9762\u5305\u5C51\uFF1A\u6838\u5FC3 ghost \u94AE\uFF0C\u4F46\u76AE\u80A4\u4E0E\u5C3A\u5BF8\u53D6\u5144\u5F1F .dsh-tdt-sv-crumb\uFF08\u9AD8\u7531\u5185\u5BB9\u51B3\u5B9A\uFF0C\u4E0D\u9501\u63A7\u5236\u9AD8\uFF09\u3002 */\n.dshpc-fb .dshpc-fb__crumb{\n appearance:none;background:0 0;border:none;height:auto;\n padding:2px 4px;border-radius:var(--dshpc-radius-sm);\n font:inherit;font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-sm);\n color:var(--dshpc-fg-2);cursor:pointer;\n display:inline-flex;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis;\n}\n.dshpc-fb .dshpc-fb__crumb:hover{background:var(--dshpc-hover);color:var(--dshpc-fg)}\n.dshpc-fb .dshpc-fb__crumb:disabled{color:var(--dshpc-fg-2);cursor:default}\n.dshpc-fb .dshpc-fb__crumb--current{cursor:default;color:var(--dshpc-fg);font-weight:600;min-width:0}\n.dshpc-fb .dshpc-fb__crumb--current:hover{background:0 0}\n.dshpc-fb__crumb-mq{flex:1 1 auto;min-width:0}\n.dshpc-fb__crumb-sep{flex:none;color:var(--dshpc-fg-3)}\n\n/* \u8D8A\u754C\uFF08outside-workspace\uFF09\u7B2C\u4E00\u6392\uFF1A\u53EA\u8BFB\u5B8C\u6574\u8DEF\u5F84\uFF08\u5144\u5F1F .dsh-tdt-sv-crumbbar-plain-inner\uFF09\u3002 */\n.dshpc-fb__bar-plain{\n font-family:var(--dshpc-font-mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace);\n font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-sm);color:var(--dshpc-fg-2);\n white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;user-select:none;\n}\n.dshpc-fb__actions{flex:none;display:flex;align-items:center;gap:4px}\n\n/* \u25BE \u9009\u5C42\u6D6E\u5C42\uFF08\u5144\u5F1F .dsh-tdt-sv-crumbs-*\uFF09\u3002\n \u5C42\u5E8F\uFF1A\u5144\u5F1F\u662F 30/31\uFF1B\u672C\u4ED3 picker \u9762\u677F\u662F 1100\uFF0C\u906E\u7F69\u5FC5\u987B\u9AD8\u4E8E\u5B83\uFF0C\u5426\u5219\u83DC\u5355\u5F00\u7740\u70B9\u9762\u677F\u4E0D\u7B97\u300C\u70B9\u5916\u90E8\u300D\u3002 */\n.dshpc-fb__crumbs-backdrop{position:fixed;inset:0;z-index:1200;background:transparent}\n.dshpc-fb__crumbs-menu{\n position:absolute;top:calc(100% + 4px);left:0;z-index:1201;min-width:160px;max-height:240px;overflow:auto;\n background:var(--dshpc-surface-menu);border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-sm);\n box-shadow:0 4px 16px rgba(0,0,0,.18);padding:4px;display:flex;flex-direction:column;\n}\n.dshpc-fb__menu-item{\n appearance:none;background:0 0;border:none;text-align:left;font:inherit;\n font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-md);\n padding:4px 8px;border-radius:var(--dshpc-radius-sm);color:var(--dshpc-fg);cursor:pointer;\n max-width:280px;display:flex;align-items:center;gap:2px;\n overflow:hidden;text-overflow:ellipsis;white-space:nowrap;\n}\n.dshpc-fb__menu-item:hover{background:var(--dshpc-hover)}\n.dshpc-fb__menu-empty{\n font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-md);padding:4px 8px;color:var(--dshpc-fg-3);\n}\n.dshpc-fb__menu-icon{flex:none;display:inline-flex}\n.dshpc-fb__menu-chev{flex:none;color:var(--dshpc-fg-3);margin-right:1px}\n.dshpc-fb__menu-chev-slot{flex:none;width:11px;height:11px;margin-right:1px}\n.dshpc-fb__menu-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\n/* \u7B2C\u4E8C\u6392\uFF08\u4EC5\u9884\u89C8\u6001\uFF09\uFF1A\u6587\u4EF6\u540D + \u5DE5\u5177\uFF08\u5144\u5F1F .dsh-tdt-sv-titlebar / -preview-title-inner\uFF09\u3002 */\n.dshpc-fb__title{\n flex:none;display:flex;align-items:center;gap:8px;\n padding:8px 14px;border-bottom:1px solid var(--dshpc-border);\n}\n.dshpc-fb__title-inner{\n font-family:var(--dshpc-font-mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace);\n font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-sm);color:var(--dshpc-fg);\n white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;\n}\n\n/* \u4E3B\u4F53\uFF08\u5144\u5F1F .dsh-tdt-sv-preview-body / -hint / -preview-err\uFF09 */\n.dshpc-fb__body{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:12px 14px}\n.dshpc-fb__note{font-size:var(--dshpc-font-sm);color:var(--dshpc-fg-2);text-align:center;padding:12px 0}\n.dshpc-fb__err{\n display:flex;flex-direction:column;align-items:flex-start;gap:10px;\n font-size:var(--dshpc-font-sm);line-height:1.6;color:var(--dshpc-fg-2);padding:8px 0;\n}\n\n/* \u76EE\u5F55\u6811\uFF08\u5144\u5F1F .dsh-tdt-sv-tree*\uFF09 */\n.dshpc-fb__tree{flex:1;min-height:0;overflow:auto;padding:6px 8px}\n.dshpc-fb__row{\n display:flex;align-items:center;gap:8px;padding:6px 8px;\n border-radius:var(--dshpc-radius-sm);cursor:pointer;user-select:none;\n}\n.dshpc-fb__row:hover{background:var(--dshpc-hover)}\n.dshpc-fb__row:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:-2px}\n.dshpc-fb__row-icon{flex:none;display:inline-flex;color:var(--dshpc-fg-2)}\n.dshpc-fb__row-name{\n flex:1;min-width:0;font-size:var(--dshpc-font-md);line-height:var(--dshpc-line-md);color:var(--dshpc-fg);\n overflow:hidden;text-overflow:ellipsis;white-space:nowrap;\n}\n\n/* \u5C55\u5F00\u5F00\u5173\uFF1A\u6838\u5FC3 IconButton\uFF0C\u547D\u4E2D\u4F4D 20\u00D720 + \u5C55\u5F00\u65F6\u8F6C 90\u00B0\uFF08\u5144\u5F1F .dsh-tdt-sv-tree-toggle{,-open}\uFF09\u3002 */\n.dshpc-fb .dshpc-fb__row-toggle{\n appearance:none;background:0 0;border:none;flex:none;\n width:20px;height:20px;padding:0;margin:0;border-radius:var(--dshpc-radius-sm);\n color:var(--dshpc-fg-2);cursor:pointer;\n display:inline-flex;align-items:center;justify-content:center;\n transition:transform var(--dshpc-dur-fast) var(--dshpc-ease),background var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-fb .dshpc-fb__row-toggle--open{transform:rotate(90deg)}\n\n/* \u884C\u5C3E\u300C\u8FDB\u5165 / \u9009\u62E9\u300D\uFF1A\u6838\u5FC3 outline \u94AE\uFF0C\u76AE\u80A4\u53D6\u5144\u5F1F .dsh-tdt-sv-tree-act\uFF08\u9AD8\u7531\u5185\u5BB9\u51B3\u5B9A\uFF09\u3002\n \u5E73\u65F6\u9690\u8EAB\u4F46\u5360\u4F4D\uFF08opacity \u800C\u975E display\uFF09\u21D2 \u51FA\u73B0\u65F6\u4E0D\u9876\u52A8\u884C\u5185\u5E03\u5C40\u3002 */\n.dshpc-fb .dshpc-fb__row-act{\n flex:none;margin-left:auto;appearance:none;background:0 0;\n border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-sm);\n height:auto;padding:2px 8px;font-size:var(--dshpc-font-sm);line-height:1.4;\n color:var(--dshpc-fg-2);cursor:pointer;\n opacity:0;pointer-events:none;\n transition:opacity var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-fb__row:hover .dshpc-fb__row-act,.dshpc-fb .dshpc-fb__row-act:focus-visible{opacity:1;pointer-events:auto}\n.dshpc-fb .dshpc-fb__row-act:hover{background:var(--dshpc-hover);color:var(--dshpc-fg)}\n\n.dshpc-fb__row-children{\n margin-left:9px;padding-left:7px;border-left:1px solid var(--dshpc-border);\n display:flex;flex-direction:column;\n}\n.dshpc-fb__row-note{flex:none;padding:8px 10px;font-size:var(--dshpc-font-sm);color:var(--dshpc-fg-3)}\n.dshpc-fb__row-err{padding:4px 8px 4px 36px;font-size:var(--dshpc-font-sm);color:var(--dshpc-danger)}\n\n/* \u9884\u89C8\u4F53\u5185\u90E8\u5BB9\u5668\uFF08\u4EC5\u672C\u4ED3\u9884\u89C8\u7EC4\u4EF6\u7528\uFF1B\u5144\u5F1F\u5BF9\u5E94 preview-fill / preview-body-code \u4E00\u7C7B\uFF09\u3002\n \u5FC5\u987B border-box\uFF1A\u6E32\u67D3\u6001 inline \u52A0\u4E86 padding:12px 14px\uFF0Ccontent-box \u4E0B width:100%+padding\n \u4F1A\u6EA2\u51FA\u7236\u5C42 28px\uFF08\u7236 .dshpc-fb \u65E0 overflow \u88C1\u5207\uFF09\u2192 \u6052\u591A\u4E00\u6761\u6A2A\u6EDA\u6761\uFF1Bborder-box \u628A padding\n \u7B97\u8FDB 100%\uFF0C\u4ECE\u6839\u6D88\u9664\u8BE5\u6EA2\u51FA\u3002 */\n.dshpc-fb__text{flex:1;min-height:0;overflow:auto;width:100%;box-sizing:border-box}\n.dshpc-fb__banner{padding:6px 10px;background:var(--dshpc-open-bg);color:var(--dshpc-fg-2);font-size:var(--dshpc-font-sm)}\n.dshpc-fb__more{display:flex;justify-content:center;padding:10px}\n.dshpc-fb__image{max-width:100%;border-radius:var(--dshpc-radius-sm);border:1px solid var(--dshpc-border)}\n/* iframe \u7684\u5916\u58F3\uFF08\u5144\u5F1F .dsh-tdt-sv-preview-fill\uFF09\uFF1Aiframe \u5FC5\u987B\u5305\u5728\u8FD9\u4E00\u5C42\u91CC\u624D\u62FF\u5F97\u5230\u9AD8\u5EA6\u2014\u2014\n \u88F8\u6302 iframe \u65F6\u66FF\u6362\u5143\u7D20\u7684\u81EA\u52A8\u6700\u5C0F\u5C3A\u5BF8\u4F1A\u8BA9\u9AD8\u5EA6\u7B97\u4E0D\u51FA\u6765\uFF08\u8868\u73B0\u4E3A\u9884\u89C8\u533A\u6574\u7247\u7A7A\u767D\u3001\u50CF\u6CA1\u53CD\u5E94\uFF09\u3002 */\n.dshpc-fb__fill{flex:1;min-height:0;display:flex;overflow:hidden;padding:0}\n.dshpc-fb__frame{flex:1;min-height:0;width:100%;height:100%;border:none;background:var(--dshpc-surface-1)}\n";
2
+ //# sourceMappingURL=explorer-css.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorer-css.generated.d.ts","sourceRoot":"","sources":["../../src/explorer/explorer-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,yqVAAq/P,CAAA"}
@@ -0,0 +1,4 @@
1
+ // ⚠️ 生成物,勿手改。真源 = src/explorer/explorer.css
2
+ // 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
3
+ export const EXPLORER_CSS = "/* 工作区文件浏览器(dshpc-fb-*)。\n *\n * 度量真源 = 兄弟项目 dsh-task-dispatch-table 的 src/client/archive-session-css.ts\n * (.dsh-tdt-sv-* 全族)。**逐条照抄,不许自己估**:padding / gap / 圆角 / 字号 / 行高 /\n * 边框色 / 悬停色 / 透明度动画 / 溢出策略,一一对应,改这里之前先去那边对原文。\n * 前缀与变量名换成本仓口径(--tdt-* → --dshpc-*),数值不换。\n *\n * 控件:能核心就核心(面包屑 = Button ghost、行尾 = Button outline、展开 / 图标 = IconButton、\n * 分段 = Segmented、文字 = MarqueeText)。核心控件自带的 padding / 高度 / 皮肤在本文件里\n * **按兄弟数值覆盖**(选择器带 .dshpc-fb 前缀提高特异性,确保盖得住控件默认值)。\n */\n.dshpc-fb{\n position:relative;display:flex;flex-direction:column;height:100%;min-height:0;\n background:var(--dshpc-surface-base);color:var(--dshpc-fg);\n}\n\n/* 第一排:▾ 选层 + 面包屑 + 动作(兄弟 .dsh-tdt-sv-crumbbar)\n ⚠️ 不能 overflow:hidden —— 下拉浮层挂在它下面,裁了就看不见。 */\n.dshpc-fb__bar{\n position:relative;flex:none;display:flex;align-items:center;gap:2px;\n padding:4px 10px;border-bottom:1px solid var(--dshpc-border);white-space:nowrap;\n}\n.dshpc-fb__menu-wrap{position:relative;flex:none;display:inline-flex}\n.dshpc-fb__crumbs{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:2px;overflow:hidden}\n.dshpc-fb__crumbs-measure{\n position:absolute;top:0;left:0;display:inline-flex;align-items:center;gap:2px;\n visibility:hidden;pointer-events:none;white-space:nowrap;\n}\n\n/* 面包屑:核心 ghost 钮,但皮肤与尺寸取兄弟 .dsh-tdt-sv-crumb(高由内容决定,不锁控制高)。 */\n.dshpc-fb .dshpc-fb__crumb{\n appearance:none;background:0 0;border:none;height:auto;\n padding:2px 4px;border-radius:var(--dshpc-radius-sm);\n font:inherit;font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-sm);\n color:var(--dshpc-fg-2);cursor:pointer;\n display:inline-flex;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis;\n}\n.dshpc-fb .dshpc-fb__crumb:hover{background:var(--dshpc-hover);color:var(--dshpc-fg)}\n.dshpc-fb .dshpc-fb__crumb:disabled{color:var(--dshpc-fg-2);cursor:default}\n.dshpc-fb .dshpc-fb__crumb--current{cursor:default;color:var(--dshpc-fg);font-weight:600;min-width:0}\n.dshpc-fb .dshpc-fb__crumb--current:hover{background:0 0}\n.dshpc-fb__crumb-mq{flex:1 1 auto;min-width:0}\n.dshpc-fb__crumb-sep{flex:none;color:var(--dshpc-fg-3)}\n\n/* 越界(outside-workspace)第一排:只读完整路径(兄弟 .dsh-tdt-sv-crumbbar-plain-inner)。 */\n.dshpc-fb__bar-plain{\n font-family:var(--dshpc-font-mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace);\n font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-sm);color:var(--dshpc-fg-2);\n white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;user-select:none;\n}\n.dshpc-fb__actions{flex:none;display:flex;align-items:center;gap:4px}\n\n/* ▾ 选层浮层(兄弟 .dsh-tdt-sv-crumbs-*)。\n 层序:兄弟是 30/31;本仓 picker 面板是 1100,遮罩必须高于它,否则菜单开着点面板不算「点外部」。 */\n.dshpc-fb__crumbs-backdrop{position:fixed;inset:0;z-index:1200;background:transparent}\n.dshpc-fb__crumbs-menu{\n position:absolute;top:calc(100% + 4px);left:0;z-index:1201;min-width:160px;max-height:240px;overflow:auto;\n background:var(--dshpc-surface-menu);border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-sm);\n box-shadow:0 4px 16px rgba(0,0,0,.18);padding:4px;display:flex;flex-direction:column;\n}\n.dshpc-fb__menu-item{\n appearance:none;background:0 0;border:none;text-align:left;font:inherit;\n font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-md);\n padding:4px 8px;border-radius:var(--dshpc-radius-sm);color:var(--dshpc-fg);cursor:pointer;\n max-width:280px;display:flex;align-items:center;gap:2px;\n overflow:hidden;text-overflow:ellipsis;white-space:nowrap;\n}\n.dshpc-fb__menu-item:hover{background:var(--dshpc-hover)}\n.dshpc-fb__menu-empty{\n font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-md);padding:4px 8px;color:var(--dshpc-fg-3);\n}\n.dshpc-fb__menu-icon{flex:none;display:inline-flex}\n.dshpc-fb__menu-chev{flex:none;color:var(--dshpc-fg-3);margin-right:1px}\n.dshpc-fb__menu-chev-slot{flex:none;width:11px;height:11px;margin-right:1px}\n.dshpc-fb__menu-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\n/* 第二排(仅预览态):文件名 + 工具(兄弟 .dsh-tdt-sv-titlebar / -preview-title-inner)。 */\n.dshpc-fb__title{\n flex:none;display:flex;align-items:center;gap:8px;\n padding:8px 14px;border-bottom:1px solid var(--dshpc-border);\n}\n.dshpc-fb__title-inner{\n font-family:var(--dshpc-font-mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace);\n font-size:var(--dshpc-font-sm);line-height:var(--dshpc-line-sm);color:var(--dshpc-fg);\n white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;\n}\n\n/* 主体(兄弟 .dsh-tdt-sv-preview-body / -hint / -preview-err) */\n.dshpc-fb__body{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:12px 14px}\n.dshpc-fb__note{font-size:var(--dshpc-font-sm);color:var(--dshpc-fg-2);text-align:center;padding:12px 0}\n.dshpc-fb__err{\n display:flex;flex-direction:column;align-items:flex-start;gap:10px;\n font-size:var(--dshpc-font-sm);line-height:1.6;color:var(--dshpc-fg-2);padding:8px 0;\n}\n\n/* 目录树(兄弟 .dsh-tdt-sv-tree*) */\n.dshpc-fb__tree{flex:1;min-height:0;overflow:auto;padding:6px 8px}\n.dshpc-fb__row{\n display:flex;align-items:center;gap:8px;padding:6px 8px;\n border-radius:var(--dshpc-radius-sm);cursor:pointer;user-select:none;\n}\n.dshpc-fb__row:hover{background:var(--dshpc-hover)}\n.dshpc-fb__row:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:-2px}\n.dshpc-fb__row-icon{flex:none;display:inline-flex;color:var(--dshpc-fg-2)}\n.dshpc-fb__row-name{\n flex:1;min-width:0;font-size:var(--dshpc-font-md);line-height:var(--dshpc-line-md);color:var(--dshpc-fg);\n overflow:hidden;text-overflow:ellipsis;white-space:nowrap;\n}\n\n/* 展开开关:核心 IconButton,命中位 20×20 + 展开时转 90°(兄弟 .dsh-tdt-sv-tree-toggle{,-open})。 */\n.dshpc-fb .dshpc-fb__row-toggle{\n appearance:none;background:0 0;border:none;flex:none;\n width:20px;height:20px;padding:0;margin:0;border-radius:var(--dshpc-radius-sm);\n color:var(--dshpc-fg-2);cursor:pointer;\n display:inline-flex;align-items:center;justify-content:center;\n transition:transform var(--dshpc-dur-fast) var(--dshpc-ease),background var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-fb .dshpc-fb__row-toggle--open{transform:rotate(90deg)}\n\n/* 行尾「进入 / 选择」:核心 outline 钮,皮肤取兄弟 .dsh-tdt-sv-tree-act(高由内容决定)。\n 平时隐身但占位(opacity 而非 display)⇒ 出现时不顶动行内布局。 */\n.dshpc-fb .dshpc-fb__row-act{\n flex:none;margin-left:auto;appearance:none;background:0 0;\n border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-sm);\n height:auto;padding:2px 8px;font-size:var(--dshpc-font-sm);line-height:1.4;\n color:var(--dshpc-fg-2);cursor:pointer;\n opacity:0;pointer-events:none;\n transition:opacity var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-fb__row:hover .dshpc-fb__row-act,.dshpc-fb .dshpc-fb__row-act:focus-visible{opacity:1;pointer-events:auto}\n.dshpc-fb .dshpc-fb__row-act:hover{background:var(--dshpc-hover);color:var(--dshpc-fg)}\n\n.dshpc-fb__row-children{\n margin-left:9px;padding-left:7px;border-left:1px solid var(--dshpc-border);\n display:flex;flex-direction:column;\n}\n.dshpc-fb__row-note{flex:none;padding:8px 10px;font-size:var(--dshpc-font-sm);color:var(--dshpc-fg-3)}\n.dshpc-fb__row-err{padding:4px 8px 4px 36px;font-size:var(--dshpc-font-sm);color:var(--dshpc-danger)}\n\n/* 预览体内部容器(仅本仓预览组件用;兄弟对应 preview-fill / preview-body-code 一类)。\n 必须 border-box:渲染态 inline 加了 padding:12px 14px,content-box 下 width:100%+padding\n 会溢出父层 28px(父 .dshpc-fb 无 overflow 裁切)→ 恒多一条横滚条;border-box 把 padding\n 算进 100%,从根消除该溢出。 */\n.dshpc-fb__text{flex:1;min-height:0;overflow:auto;width:100%;box-sizing:border-box}\n.dshpc-fb__banner{padding:6px 10px;background:var(--dshpc-open-bg);color:var(--dshpc-fg-2);font-size:var(--dshpc-font-sm)}\n.dshpc-fb__more{display:flex;justify-content:center;padding:10px}\n.dshpc-fb__image{max-width:100%;border-radius:var(--dshpc-radius-sm);border:1px solid var(--dshpc-border)}\n/* iframe 的外壳(兄弟 .dsh-tdt-sv-preview-fill):iframe 必须包在这一层里才拿得到高度——\n 裸挂 iframe 时替换元素的自动最小尺寸会让高度算不出来(表现为预览区整片空白、像没反应)。 */\n.dshpc-fb__fill{flex:1;min-height:0;display:flex;overflow:hidden;padding:0}\n.dshpc-fb__frame{flex:1;min-height:0;width:100%;height:100%;border:none;background:var(--dshpc-surface-1)}\n";
4
+ //# sourceMappingURL=explorer-css.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorer-css.generated.js","sourceRoot":"","sources":["../../src/explorer/explorer-css.generated.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,qEAAqE;AACrE,MAAM,CAAC,MAAM,YAAY,GAAG,k/PAAk/P,CAAA"}
@@ -1,33 +1,3 @@
1
1
  // explorer 样式。类名固定 dshpc-exp-*。
2
- export const EXPLORER_CSS = `
3
- .dshpc-exp{display:flex;flex-direction:column;height:100%;min-height:0;color:var(--dshpc-fg);font-size:13px}
4
- .dshpc-exp__crumbs{
5
- display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding:6px 8px;
6
- border-bottom:1px solid var(--dshpc-border-faint);
7
- }
8
- .dshpc-exp__crumb{
9
- background:none;border:none;padding:2px 4px;border-radius:4px;cursor:pointer;
10
- color:var(--dshpc-link);font:inherit;
11
- }
12
- .dshpc-exp__crumb--current{color:var(--dshpc-fg);font-weight:600;cursor:default}
13
- .dshpc-exp__sep{color:var(--dshpc-fg-4)}
14
- .dshpc-exp__tools{display:flex;gap:6px;margin-left:auto}
15
- .dshpc-exp__body{display:flex;flex:1;min-height:0}
16
- .dshpc-exp__tree{width:220px;flex:none;overflow:auto;border-right:1px solid var(--dshpc-border-faint)}
17
- .dshpc-exp__item{
18
- display:flex;align-items:center;gap:6px;padding:4px 8px;cursor:pointer;white-space:nowrap;
19
- }
20
- .dshpc-exp__item:hover{background:var(--dshpc-surface-sunken)}
21
- .dshpc-exp__item--active{background:var(--dshpc-open-bg)}
22
- .dshpc-exp__icon{width:14px;flex:none;color:var(--dshpc-fg-3)}
23
- .dshpc-exp__name{overflow:hidden;text-overflow:ellipsis}
24
- .dshpc-exp__size{margin-left:auto;color:var(--dshpc-fg-4);font-size:11px}
25
- .dshpc-exp__preview{flex:1;min-width:0;overflow:auto;padding:8px}
26
- .dshpc-exp__note{padding:6px 8px;color:var(--dshpc-fg-3);font-size:11px}
27
- .dshpc-exp__text{
28
- margin:0;padding:8px;border-radius:6px;background:var(--dshpc-code-surface);
29
- font:var(--dshpc-code-font);white-space:pre-wrap;word-break:break-all;
30
- }
31
- .dshpc-exp__image{max-width:100%;border-radius:6px;border:1px solid var(--dshpc-border-faint)}
32
- `;
2
+ export { EXPLORER_CSS } from './explorer-css.generated.js';
33
3
  //# sourceMappingURL=explorer-css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"explorer-css.js","sourceRoot":"","sources":["../../src/explorer/explorer-css.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B3B,CAAA"}
1
+ {"version":3,"file":"explorer-css.js","sourceRoot":"","sources":["../../src/explorer/explorer-css.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA"}
@@ -1,3 +1,5 @@
1
- export { ExplorerPanel, type ExplorerPanelProps } from './ExplorerPanel.js';
2
- export { previewKindOf, type DirEntry, type Listing, type PreviewKind, type WorkspaceFilesFace, } from './types.js';
1
+ export { FileBrowser, type FileBrowserProps } from './FileBrowser.js';
2
+ export { openFilePreview, pickWorkspaceFile, type FilePreviewHandle, type OpenFilePreviewOptions, type PickedFile, type PickWorkspaceFileOptions, } from './open.js';
3
+ export { FilePreview, type FilePreviewProps } from './preview/index.js';
4
+ export { absolutizeDir, bareCode, createRootCache, errView, findAnyFileAbs, isFailed, joinPath, learnRoot, listPathOf, listingOf, matchesFilter, pickWorkspaceAnchor, previewInfoOf, previewKindOf, relativizeToRoot, sortEntries, workspaceAnchorForPath, anchorSessionForTitle, type DirEntry, type ErrView, type Listing, type OfficeToPdfFace, type PickFilter, type PreviewInfo, type PreviewKind, type RootCache, type WorkspaceAnchor, type WorkspaceAnchorItem, type WorkspaceFilesFace, } from './types.js';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/explorer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EACL,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/explorer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,wBAAwB,GAC9B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EACL,aAAa,EACb,QAAQ,EACR,eAAe,EACf,OAAO,EACP,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAA"}
@@ -1,3 +1,5 @@
1
- export { ExplorerPanel } from './ExplorerPanel.js';
2
- export { previewKindOf, } from './types.js';
1
+ export { FileBrowser } from './FileBrowser.js';
2
+ export { openFilePreview, pickWorkspaceFile, } from './open.js';
3
+ export { FilePreview } from './preview/index.js';
4
+ export { absolutizeDir, bareCode, createRootCache, errView, findAnyFileAbs, isFailed, joinPath, learnRoot, listPathOf, listingOf, matchesFilter, pickWorkspaceAnchor, previewInfoOf, previewKindOf, relativizeToRoot, sortEntries, workspaceAnchorForPath, anchorSessionForTitle, } from './types.js';
3
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/explorer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EACL,aAAa,GAKd,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/explorer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAA;AACrE,OAAO,EACL,eAAe,EACf,iBAAiB,GAKlB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAA;AACvE,OAAO,EACL,aAAa,EACb,QAAQ,EACR,eAAe,EACf,OAAO,EACP,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GAYtB,MAAM,YAAY,CAAA"}
@@ -0,0 +1,103 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type Translate } from '../utils/i18n.js';
3
+ import type { OfficeToPdfFace, PickFilter, RootCache, WorkspaceAnchorItem, WorkspaceFilesFace } from './types.js';
4
+ export interface FilePreviewHandle {
5
+ /** 关闭预览(幂等)。 */
6
+ close(): void;
7
+ /** 当前预览的路径(调用方传入值)。 */
8
+ readonly path: string;
9
+ }
10
+ export interface OpenFilePreviewOptions {
11
+ /**
12
+ * 工作区文件服务(文件预览要用)。传了 `content` 时(自定义审阅内容,例如变更 diff),
13
+ * 这一组文件定位参数都可省略——核心只负责把 `content` 渲染进同一个右侧 dock,不解析路径。
14
+ */
15
+ workspaceFiles?: WorkspaceFilesFace;
16
+ sessionId?: string;
17
+ /** 文件或文件夹路径。与 `content` 二选一:传 `content` 时本字段可省略。 */
18
+ path?: string;
19
+ /**
20
+ * 自定义审阅内容:传入则核心渲染它进右侧 dock,**替代**内置 FileBrowser(解耦用途——
21
+ * 例如把「某次改动的 diff」当内容塞进来,核心本身不认识 changes)。与 `path` 二选一。
22
+ */
23
+ content?: () => ReactNode;
24
+ officeToPdf?: OfficeToPdfFace | null;
25
+ /** 工作区根显示名(面包屑首段)。 */
26
+ rootName?: string;
27
+ /** ▾ 下拉顶部的工作区清单(当前工作区展开 + 其余罗列;不传 = 下拉只有路径层)。 */
28
+ workspaces?: readonly string[];
29
+ /**
30
+ * 宿主工作区清单(带绝对 path):**可选覆盖**。path 为绝对路径时核心按最长前缀匹配所属
31
+ * 工作区、list 换该工作区的会话 id;▾ 下拉「切工作区」也由它驱动。
32
+ * **不传 = 自动用宿主 workspaces 快照**(connectHost 注入的 workspaceList)——
33
+ * 调用方零传参也能匹配、能切。仅在「覆盖快照 / 宿主未接线」时才需要显式传。
34
+ */
35
+ workspaceAnchors?: readonly WorkspaceAnchorItem[];
36
+ /** 从 ▾ 下拉选择其他工作区(点当前工作区 = 回其根目录,不走这里)。 */
37
+ onSelectWorkspace?: (name: string) => void;
38
+ /** 关闭后回调(✕ / Esc / handle.close 都触发)。 */
39
+ onClose?: () => void;
40
+ /** 初始宽度(px,默认 460)。 */
41
+ width?: number;
42
+ /** 宽度下限(默认 320)。 */
43
+ minWidth?: number;
44
+ /** 宽度上限;不传 = 只受视口与主区保底约束。 */
45
+ maxWidth?: number;
46
+ /** 拖宽时给主区留的最小宽度(px,默认 480)。 */
47
+ mainMinWidth?: number;
48
+ /** 面板无障碍名(没有头部,只用于 aria-label)。 */
49
+ title?: string;
50
+ /** 工作区根缓存(与调用方共享时传)。 */
51
+ rootCache?: RootCache;
52
+ translate?: Translate;
53
+ /**
54
+ * **必填**:挂进哪个布局容器(`PanelDock` 是布局成员 —— 占宽度、把左边挤窄)。
55
+ *
56
+ * 传入的应当是**你自己的 flex 行**(页面主区 + 侧栏那一层):核心 dock 会成为它的
57
+ * 最后一个 flex 子项,于是主区被真正挤窄。**不要**传 `document.body` 再自己套 fixed
58
+ * —— 那是浮层,不是分栏(用户 2026-10-21 明确否决)。
59
+ */
60
+ mount: HTMLElement;
61
+ }
62
+ /**
63
+ * 打开工作区文件/文件夹的**停靠**预览(分栏:挤窄 `mount` 左边的兄弟,不是盖上去)。
64
+ * 重复打开会关掉上一个(同侧边栏位)。
65
+ */
66
+ export declare function openFilePreview(options: OpenFilePreviewOptions): FilePreviewHandle | null;
67
+ export interface PickedFile {
68
+ /** 工作区相对路径。 */
69
+ path: string;
70
+ /** true = 选的是整个文件夹。 */
71
+ isDir: boolean;
72
+ }
73
+ export interface PickWorkspaceFileOptions {
74
+ workspaceFiles: WorkspaceFilesFace;
75
+ sessionId: string;
76
+ /** 锚点元素:弹窗左缘与之对齐、优先落在它**下方**(下方不够才翻到上方);不传 = 屏幕居中。 */
77
+ anchor?: HTMLElement | null;
78
+ /** 过滤:exts = 只要这些扩展名(小写无点);dirs = 只要文件夹;不传 = 不限。 */
79
+ filter?: PickFilter;
80
+ officeToPdf?: OfficeToPdfFace | null;
81
+ /** 工作区根显示名。 */
82
+ rootName?: string;
83
+ /** ▾ 下拉的工作区清单(切换工作区浏览)。 */
84
+ workspaces?: readonly string[];
85
+ onSelectWorkspace?: (name: string) => void;
86
+ /** 取消回调(Esc / 点外部 / ✕)。 */
87
+ onCancel?: () => void;
88
+ rootCache?: RootCache;
89
+ /**
90
+ * 文案注入:调用时把自己的 `t` 传进来,面板里所有文字(含「选择」「进入」、空态、错误文案)
91
+ * 就走你的字典;不传则用核心内置中英字典。**与 openFilePreview 同一个 prop、同一套文案**。
92
+ */
93
+ translate?: Translate;
94
+ }
95
+ /**
96
+ * 弹出「选择工作区文件」模态弹窗,Promise 返回选中结果;取消(Esc / 点外部 / ✕)resolve `null`。
97
+ *
98
+ * **面板内容与 `openFilePreview` 完完全全是同一个 `FileBrowser`**(不是复制一套):
99
+ * 差别只有 ① 承载(这里挂在锚点旁的弹窗面板里,那边挂在核心 PanelDock 分栏里)、
100
+ * ② `picker` 形态参数(点文件即回传、行尾按钮变「选择」)。文案 / 根名 / 过滤都按调用时传的走。
101
+ */
102
+ export declare function pickWorkspaceFile(options: PickWorkspaceFileOptions): Promise<PickedFile | null>;
103
+ //# sourceMappingURL=open.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../src/explorer/open.ts"],"names":[],"mappings":"AAWA,OAAO,EAAsD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAK1F,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIjH,MAAM,WAAW,iBAAiB;IAChC,gBAAgB;IAChB,KAAK,IAAI,IAAI,CAAA;IACb,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACpC,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iDAAiD;IACjD,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAA;IACjD,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB;IACxB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;;;;OAMG;IACH,KAAK,EAAE,WAAW,CAAA;CACnB;AA8DD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,iBAAiB,GAAG,IAAI,CA2GzF;AAID,MAAM,WAAW,UAAU;IACzB,eAAe;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,uBAAuB;IACvB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,kBAAkB,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,oDAAoD;IACpD,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACpC,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAWD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA4F/F"}
@@ -0,0 +1,282 @@
1
+ // 两个命令式能力(用户 2026-10-20 定义)—— explorer 的对外入口:
2
+ //
3
+ // · 方法 A `openFilePreview`:传文件/文件夹路径,打开右侧停靠预览(可拖宽、Esc 关);
4
+ // · 方法 B `pickWorkspaceFile`:Promise 返回选中的工作区相对路径(弹窗在锚点按钮旁弹出,
5
+ // Esc / 点外部 / ✕ 关,选中即 resolve)。
6
+ //
7
+ // 两者共用同一套 FileBrowser 面板(用户拍板:同一套内容,两种展现形式)。
8
+ //
9
+ // ⚠️ 方法 A 的**侧边栏本体是核心 PanelDock**(用户 2026-10-21 拍板:不许自绘制外壳 + 拖拽条)。
10
+ // PanelDock 是布局成员(占宽度、挤窄主区),同 ui/modal-host.ts 的做法:自建 container 挂 + createRoot,
11
+ // 关闭即卸载回收,不残留空根;拖宽与关闭交给 PanelDock 自己的 resizer / header 关钮。
12
+ import { createElement as h, useState, useSyncExternalStore } from 'react';
13
+ import { createRoot } from 'react-dom/client';
14
+ import { ensureControls, getStyleKit } from '../ui/css.js';
15
+ import { workspaceList } from '../ui/host-data.js';
16
+ import { DockPanel, PanelDock, createPanelDock } from '../ui/PanelDock.js';
17
+ import { FileBrowser } from './FileBrowser.js';
18
+ import { anchorSessionForTitle, workspaceAnchorForPath } from './types.js';
19
+ /**
20
+ * 预览体:`openFilePreview` 的 FileBrowser 包裹层。职责只有一个——**切工作区**:
21
+ * ▾ 下拉点工作区 ⇒ 换该工作区的锚点会话、key 重挂载、path 回根。
22
+ * 机制同兄弟项目 `dsh-task-dispatch-table/src/client/task-editor.tsx:2496-2508`:
23
+ * list 的根来自 sessionId ⇒ 必须换会话 + 重挂载,只换 rootName 等于没切。
24
+ * 没会话的工作区不进 ▾ 列表、点了也不切(宿主列不出文件,不给假入口)。
25
+ *
26
+ * 工作区清单:调用方显式传的 `workspaceAnchors` 优先;否则用宿主 workspaces 快照
27
+ * (connectHost 注入的 workspaceList)——**调用方什么都不传也照常能切**。
28
+ *
29
+ * 「当前工作区」必须与面包屑根名同源(`workspaceAnchorForPath` 匹配优先,其次 rootName):
30
+ * 曾经这里直接拿 `rootName` 当初始状态,而 ▾ 菜单把 anchorMatch.title 当当前区;两者不一致时
31
+ * 点 rootName 那个工作区 = setState 成同一个值 ⇒ React bail out ⇒ **点了完全没反应**(2026-10-23 真机)。
32
+ * 同理「切没切」不能用「名字变没变」判断:点回入口工作区会把 path 又还原成入口文件,
33
+ * 看起来就是「跳回第一个工作区」。现在改成「点过 = 进浏览态」,任何工作区(含入口那个)都回根。
34
+ */
35
+ function PreviewBody(props) {
36
+ const options = props.options;
37
+ const hostWorkspaces = useSyncExternalStore(workspaceList.subscribe, workspaceList.getSnapshot);
38
+ // HostWorkspaceItem 结构兼容 WorkspaceAnchorItem(多一个 workspaceId 无害)⇒ 统一注解收敛联合类型。
39
+ const anchors = options.workspaceAnchors ?? hostWorkspaces;
40
+ // 入口工作区:与 FileBrowser 的面包屑根名同源(两边口径必须一致,见上方注释)。
41
+ const entryTitle = workspaceAnchorForPath(options.path ?? '', anchors)?.title ?? options.rootName ?? '';
42
+ // null = 还在入口态(path 用调用方给的那个文件);非 null = 用户点过工作区,从它的根开始列。
43
+ const [picked, setPicked] = useState(null);
44
+ const wsTitle = picked ?? entryTitle;
45
+ const sessionId = anchorSessionForTitle(anchors, wsTitle) ?? options.sessionId;
46
+ const switchable = anchors.filter((a) => (a.sessionIds?.length ?? 0) > 0).map((a) => a.title);
47
+ return h(FileBrowser, {
48
+ // key 带工作区+会话 ⇒ 切换即重挂载(FileBrowser 的 dir/listing/学根全属于旧工作区)。
49
+ key: `${wsTitle}:${sessionId}`,
50
+ workspaceFiles: options.workspaceFiles,
51
+ officeToPdf: options.officeToPdf ?? null,
52
+ sessionId,
53
+ // 点过工作区就从它的根列(原 path 属于旧工作区,带着只会 404 / 跳回入口文件)。
54
+ path: picked === null ? options.path : '',
55
+ rootName: wsTitle === '' ? options.rootName : wsTitle,
56
+ workspaces: switchable.length > 0 ? switchable : options.workspaces,
57
+ onSelectWorkspace: (name) => {
58
+ // 没会话的工作区列不出文件 ⇒ 不切(宿主能力边界,不给假入口)。
59
+ if (anchorSessionForTitle(anchors, name) === null)
60
+ return;
61
+ setPicked(name);
62
+ },
63
+ // 空数组别传:会把 FileBrowser 内部「回落快照」的兜底挡住(空 ≠ 未传)。
64
+ workspaceAnchors: anchors.length > 0 ? anchors : undefined,
65
+ rootCache: options.rootCache,
66
+ translate: options.translate,
67
+ // 传 onClose ⇒ FileBrowser 在面包屑行尾渲染自己的 ✕(垂直居中,与 pick 一致)。
68
+ onClose: props.onClose,
69
+ style: { height: '100%', minHeight: 0 },
70
+ });
71
+ }
72
+ /** 预览侧边栏的挂载容器 id(全站唯一,重复打开先关旧的)。 */
73
+ const PREVIEW_HOST_ID = 'dshpc-file-preview-host';
74
+ /** dock 里的面板 id(本 container 里只有一个)。 */
75
+ const PREVIEW_PANEL_ID = 'file-preview';
76
+ /** 当前打开着的预览的 close(重复打开时走它,保证 React 根被真正卸载)。 */
77
+ let activePreviewClose = null;
78
+ /**
79
+ * 打开工作区文件/文件夹的**停靠**预览(分栏:挤窄 `mount` 左边的兄弟,不是盖上去)。
80
+ * 重复打开会关掉上一个(同侧边栏位)。
81
+ */
82
+ export function openFilePreview(options) {
83
+ if (typeof document === 'undefined')
84
+ return null;
85
+ // 布局契约自检:PanelDock 是布局成员,mount 必须是 flex 行,否则 dock 不停右侧、高度也塌。
86
+ // 只 dev 期警告、不改行为——消费方传错时至少留痕,别静默破相。
87
+ if (typeof getComputedStyle === 'function') {
88
+ const cs = getComputedStyle(options.mount);
89
+ if (cs.display !== 'flex' && cs.display !== 'inline-flex') {
90
+ console.warn('[dsh-plugin-core/explorer] openFilePreview: mount 不是 flex 行 —— PanelDock 是布局成员'
91
+ + '(停靠右侧 + 挤窄主区)。请传你页面「主区 + 侧栏」那一层 flex 容器,'
92
+ + '不要传 document.body 或无定高的窄容器。');
93
+ }
94
+ }
95
+ // 同位置只允许一个预览:先**关**旧的(不是 remove 掉挂载体)。
96
+ // 直接 remove 会把 React 根的卸载清理一起跳过 ⇒ PanelDock 永远不回收它发布的宽度,
97
+ // 遮罩从此卡在让位状态(2026-10-22 真机:点第二个文件链接后再关,遮罩不回弹)。
98
+ activePreviewClose?.();
99
+ const container = document.createElement('div');
100
+ container.id = PREVIEW_HOST_ID;
101
+ container.setAttribute('data-dshpc-file-preview', '');
102
+ // display:contents ⇒ 容器自身不产生盒子,核心 .dshpc-dock 直接成为 mount 的 flex 子项
103
+ // (这样才「挤」得动左边的兄弟;套一层真盒子会把 dock 变成 mount 的整行块)。
104
+ container.style.cssText = 'display:contents';
105
+ options.mount.appendChild(container);
106
+ const dock = createPanelDock({
107
+ maxPanels: 1,
108
+ defaultWidth: options.width ?? 460,
109
+ minWidth: options.minWidth ?? 320,
110
+ // 每次打开都从默认宽度起步(预览是临时面板,不继承上次的落位)。
111
+ storageKey: false,
112
+ // 关钮被点 ⇒ 整个挂载体回收(close 内部幂等,不受 onClose 回调顺序影响)。
113
+ onClose: () => {
114
+ close();
115
+ },
116
+ });
117
+ dock.open(PREVIEW_PANEL_ID);
118
+ let closed = false;
119
+ const root = createRoot(container);
120
+ const close = () => {
121
+ if (closed)
122
+ return;
123
+ closed = true;
124
+ if (activePreviewClose === close)
125
+ activePreviewClose = null;
126
+ window.removeEventListener('keydown', onKeyDown);
127
+ root.unmount();
128
+ container.remove();
129
+ options.onClose?.();
130
+ };
131
+ const onKeyDown = (event) => {
132
+ if (event.key === 'Escape')
133
+ close();
134
+ };
135
+ window.addEventListener('keydown', onKeyDown);
136
+ ensureControls(getStyleKit());
137
+ // 总是走 PreviewBody:调用方没自接 onSelectWorkspace 时,▾ 下拉「切工作区」由核心接管
138
+ // (anchors 为空 ⇒ 回调空转,行为与旧版一致)。自接了 ⇒ 原样透传给 FileBrowser。
139
+ const internalSwitch = options.onSelectWorkspace === undefined;
140
+ root.render(h('div',
141
+ // 高度吃调用方给的 --dshpc-dock-h(demo 的页面行给 100%);退化成视口高是整页场景。
142
+ { style: { display: 'contents', ['--dshpc-dock-h']: '100%' } }, h(PanelDock, { dock, mainMinWidth: options.mainMinWidth ?? 480, translate: options.translate }, h(DockPanel, {
143
+ id: PREVIEW_PANEL_ID,
144
+ // 不要头部(用户 2026-10-21:核心的『无 header』那版)——上面不再多一条线。
145
+ header: null,
146
+ // 关闭钮不用核心浮动的(那是 absolute 固定偏移、不垂直居中);关掉它的,
147
+ // 改用 FileBrowser 自己的 ✕(和 pick 弹窗同一个 crumb-bar 钮,垂直居中)。
148
+ closeButton: 'none',
149
+ ariaLabel: options.title,
150
+ width: options.width ?? 460,
151
+ minWidth: options.minWidth ?? 320,
152
+ maxWidth: options.maxWidth,
153
+ }, options.content !== undefined
154
+ ? options.content()
155
+ : internalSwitch
156
+ ? h(PreviewBody, { options, onClose: close })
157
+ : h(FileBrowser, {
158
+ workspaceFiles: options.workspaceFiles,
159
+ officeToPdf: options.officeToPdf ?? null,
160
+ sessionId: options.sessionId,
161
+ path: options.path,
162
+ rootName: options.rootName,
163
+ workspaces: options.workspaces,
164
+ workspaceAnchors: options.workspaceAnchors,
165
+ onSelectWorkspace: options.onSelectWorkspace,
166
+ rootCache: options.rootCache,
167
+ translate: options.translate,
168
+ // 传 onClose ⇒ FileBrowser 在面包屑行尾渲染自己的 ✕(垂直居中,与 pick 一致)。
169
+ onClose: close,
170
+ style: { height: '100%', minHeight: 0 },
171
+ })))));
172
+ activePreviewClose = close;
173
+ return { close, path: options.path ?? '' };
174
+ }
175
+ /** 弹窗宽度(源实现 480,用户 2026-09-29 微调定值)。 */
176
+ const PICKER_WIDTH = 480;
177
+ /** 弹窗高度上限 / 保底。 */
178
+ const PICKER_MAX_H = 660;
179
+ /** 判定「下方放得下」的最小高度:低于它就翻到上方。 */
180
+ const PICKER_MIN_H = 240;
181
+ /** 硬地板:锚点上下都极窄时也要给出一个能滚动的高度(此时以夹紧进视口优先)。 */
182
+ const PICKER_MIN_FLOOR = 160;
183
+ /**
184
+ * 弹出「选择工作区文件」模态弹窗,Promise 返回选中结果;取消(Esc / 点外部 / ✕)resolve `null`。
185
+ *
186
+ * **面板内容与 `openFilePreview` 完完全全是同一个 `FileBrowser`**(不是复制一套):
187
+ * 差别只有 ① 承载(这里挂在锚点旁的弹窗面板里,那边挂在核心 PanelDock 分栏里)、
188
+ * ② `picker` 形态参数(点文件即回传、行尾按钮变「选择」)。文案 / 根名 / 过滤都按调用时传的走。
189
+ */
190
+ export function pickWorkspaceFile(options) {
191
+ return new Promise((resolve) => {
192
+ if (typeof document === 'undefined') {
193
+ resolve(null);
194
+ return;
195
+ }
196
+ let settled = false;
197
+ const backdrop = document.createElement('div');
198
+ backdrop.setAttribute('data-dshpc-picker-backdrop', '');
199
+ // 右边界读 PanelDock 发布的 --dshpc-page-inset-right,与 .dshpc-modal-mask 同款:
200
+ // 不把右侧分栏(openFilePreview 的 dock)连同它的分隔线一起压暗(2026-10-23 真机)。
201
+ backdrop.style.cssText = 'position:fixed;inset:0 var(--dshpc-page-inset-right,0px) 0 0;z-index:1099;background:rgba(0,0,0,0.28)';
202
+ const panel = document.createElement('div');
203
+ panel.setAttribute('data-dshpc-picker-panel', '');
204
+ panel.setAttribute('role', 'dialog');
205
+ panel.setAttribute('aria-modal', 'true');
206
+ const anchor = options.anchor ?? null;
207
+ if (anchor !== null) {
208
+ const rect = anchor.getBoundingClientRect();
209
+ const GAP = 12;
210
+ const vw = window.innerWidth;
211
+ const vh = window.innerHeight;
212
+ const width = Math.min(PICKER_WIDTH, vw - 2 * GAP);
213
+ // 垂直:先量锚点上下各自还剩多少,再决定往哪边展——高度必须跟着所选那侧的空间走
214
+ // (旧实现先按「上方空间」定高,锚点靠顶时算出个矮条,还硬往上方塞)。
215
+ const availBelow = vh - GAP - rect.bottom - GAP;
216
+ const availAbove = rect.top - GAP - GAP;
217
+ const below = availBelow >= PICKER_MIN_H || availBelow >= availAbove;
218
+ const height = Math.max(Math.min(PICKER_MAX_H, below ? availBelow : availAbove), PICKER_MIN_FLOOR);
219
+ // 水平:与锚点左缘对齐(下拉式),右侧放不下就整体左移,最后夹紧进视口——绝不溢出屏幕
220
+ // (旧实现先往左展、再往右翻,弹窗会横着跑到离按钮很远的地方;改成左缘对齐后
221
+ // 永远贴在所点按钮的正下方,第三方锚点靠左靠右都不会被推出屏外)。
222
+ const left = Math.max(GAP, Math.min(rect.left, vw - GAP - width));
223
+ // 垂直:**优先落在锚点下方**(下缘 + 间距),下方不够才翻到上方(上缘 - 间距 - 高);
224
+ // 最后再夹紧进视口——绝不溢出,也绝不因为锚点靠顶就默认往上弹。
225
+ const top = below
226
+ ? Math.min(rect.bottom + GAP, Math.max(GAP, vh - GAP - height))
227
+ : Math.max(GAP, rect.top - GAP - height);
228
+ panel.style.cssText =
229
+ 'position:fixed;z-index:1100;display:flex;flex-direction:column;overflow:hidden;' +
230
+ `left:${Math.round(left)}px;top:${Math.round(top)}px;` +
231
+ `width:${Math.round(width)}px;height:${Math.round(height)}px;` +
232
+ 'background:var(--dshpc-surface-2,#fff);border:1px solid var(--dshpc-border,#d0d7de);' +
233
+ 'border-radius:8px;box-shadow:var(--dshpc-shadow-2,none)';
234
+ }
235
+ else {
236
+ panel.style.cssText =
237
+ 'position:fixed;z-index:1100;display:flex;flex-direction:column;overflow:hidden;' +
238
+ `width:min(${PICKER_WIDTH}px,calc(100vw - 24px));height:${PICKER_MAX_H}px;` +
239
+ 'background:var(--dshpc-surface-2,#fff);border:1px solid var(--dshpc-border,#d0d7de);' +
240
+ 'border-radius:8px;box-shadow:var(--dshpc-shadow-2,none)';
241
+ }
242
+ const finish = (result) => {
243
+ if (settled)
244
+ return;
245
+ settled = true;
246
+ window.removeEventListener('keydown', onKeyDown);
247
+ backdrop.remove();
248
+ root.unmount();
249
+ panel.remove();
250
+ if (result === null)
251
+ options.onCancel?.();
252
+ resolve(result);
253
+ };
254
+ const onKeyDown = (event) => {
255
+ if (event.key === 'Escape')
256
+ finish(null);
257
+ };
258
+ backdrop.addEventListener('click', () => finish(null));
259
+ window.addEventListener('keydown', onKeyDown);
260
+ document.body.appendChild(backdrop);
261
+ document.body.appendChild(panel);
262
+ ensureControls(getStyleKit());
263
+ const root = createRoot(panel);
264
+ root.render(h(FileBrowser, {
265
+ workspaceFiles: options.workspaceFiles,
266
+ officeToPdf: options.officeToPdf ?? null,
267
+ sessionId: options.sessionId,
268
+ path: '',
269
+ rootName: options.rootName,
270
+ rootCache: options.rootCache,
271
+ workspaces: options.workspaces,
272
+ onSelectWorkspace: options.onSelectWorkspace,
273
+ picker: true,
274
+ filter: options.filter,
275
+ translate: options.translate,
276
+ onPick: (path, isDir) => finish({ path, isDir }),
277
+ onClose: () => finish(null),
278
+ style: { flex: '1 1 auto', width: '100%', minWidth: 0, minHeight: 0 },
279
+ }));
280
+ });
281
+ }
282
+ //# sourceMappingURL=open.js.map