dsh-plugin-core 0.33.1 → 0.33.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. package/README.md +9 -9
  2. package/dist/adv/explorer/open.js +4 -4
  3. package/dist/adv/explorer/open.js.map +1 -1
  4. package/dist/adv/session/SessionViewModal.d.ts.map +1 -1
  5. package/dist/adv/session/SessionViewModal.js +6 -3
  6. package/dist/adv/session/SessionViewModal.js.map +1 -1
  7. package/dist/adv/session/mirror/ChatView.d.ts +1 -3
  8. package/dist/adv/session/mirror/ChatView.d.ts.map +1 -1
  9. package/dist/adv/session/mirror/ChatView.js +10 -36
  10. package/dist/adv/session/mirror/ChatView.js.map +1 -1
  11. package/dist/adv/session/mirror/GenericCommandCard.d.ts +6 -1
  12. package/dist/adv/session/mirror/GenericCommandCard.d.ts.map +1 -1
  13. package/dist/adv/session/mirror/GenericCommandCard.js +8 -3
  14. package/dist/adv/session/mirror/GenericCommandCard.js.map +1 -1
  15. package/dist/adv/session/mirror/MessageItem.d.ts +4 -3
  16. package/dist/adv/session/mirror/MessageItem.d.ts.map +1 -1
  17. package/dist/adv/session/mirror/MessageItem.js +19 -9
  18. package/dist/adv/session/mirror/MessageItem.js.map +1 -1
  19. package/dist/{session/mirror/BashRow.d.ts → adv/session/mirror/SkillRow.d.ts} +4 -5
  20. package/dist/adv/session/mirror/SkillRow.d.ts.map +1 -0
  21. package/dist/adv/session/mirror/SkillRow.js +86 -0
  22. package/dist/adv/session/mirror/SkillRow.js.map +1 -0
  23. package/dist/adv/session/official-classes.d.ts +3 -1
  24. package/dist/adv/session/official-classes.d.ts.map +1 -1
  25. package/dist/adv/session/official-classes.js +33 -32
  26. package/dist/adv/session/official-classes.js.map +1 -1
  27. package/dist/ui/feedback/host-toast.d.ts +1 -1
  28. package/dist/ui/feedback/host-toast.js +1 -1
  29. package/dist/utils/i18n.d.ts +1 -1
  30. package/dist/utils/i18n.d.ts.map +1 -1
  31. package/dist/utils/i18n.js +12 -0
  32. package/dist/utils/i18n.js.map +1 -1
  33. package/docs/design/external/dsh-host.md +33 -0
  34. package/docs/help/explorer.doc.ts +1 -1
  35. package/docs/help/explorer.md +1 -1
  36. package/docs/help/integration.doc.ts +2 -2
  37. package/docs/help/integration.md +2 -2
  38. package/docs/help/session.doc.ts +1 -1
  39. package/docs/help/session.md +1 -1
  40. package/docs/help/ui.doc.ts +1 -1
  41. package/docs/help/ui.md +1 -1
  42. package/package.json +16 -16
  43. package/dist/explorer/ExplorerPanel.d.ts +0 -25
  44. package/dist/explorer/ExplorerPanel.d.ts.map +0 -1
  45. package/dist/explorer/ExplorerPanel.js +0 -111
  46. package/dist/explorer/ExplorerPanel.js.map +0 -1
  47. package/dist/explorer/FileBrowser.d.ts +0 -58
  48. package/dist/explorer/FileBrowser.d.ts.map +0 -1
  49. package/dist/explorer/FileBrowser.js +0 -632
  50. package/dist/explorer/FileBrowser.js.map +0 -1
  51. package/dist/explorer/crumb-nav.d.ts +0 -45
  52. package/dist/explorer/crumb-nav.d.ts.map +0 -1
  53. package/dist/explorer/crumb-nav.js +0 -78
  54. package/dist/explorer/crumb-nav.js.map +0 -1
  55. package/dist/explorer/crumbs-menu.d.ts +0 -37
  56. package/dist/explorer/crumbs-menu.d.ts.map +0 -1
  57. package/dist/explorer/crumbs-menu.js +0 -102
  58. package/dist/explorer/crumbs-menu.js.map +0 -1
  59. package/dist/explorer/explorer-css.d.ts +0 -2
  60. package/dist/explorer/explorer-css.d.ts.map +0 -1
  61. package/dist/explorer/explorer-css.generated.d.ts +0 -2
  62. package/dist/explorer/explorer-css.generated.d.ts.map +0 -1
  63. package/dist/explorer/explorer-css.generated.js +0 -4
  64. package/dist/explorer/explorer-css.generated.js.map +0 -1
  65. package/dist/explorer/explorer-css.js +0 -3
  66. package/dist/explorer/explorer-css.js.map +0 -1
  67. package/dist/explorer/fs-face.d.ts +0 -36
  68. package/dist/explorer/fs-face.d.ts.map +0 -1
  69. package/dist/explorer/fs-face.js +0 -74
  70. package/dist/explorer/fs-face.js.map +0 -1
  71. package/dist/explorer/index.d.ts +0 -6
  72. package/dist/explorer/index.d.ts.map +0 -1
  73. package/dist/explorer/index.js +0 -6
  74. package/dist/explorer/index.js.map +0 -1
  75. package/dist/explorer/landing.d.ts +0 -26
  76. package/dist/explorer/landing.d.ts.map +0 -1
  77. package/dist/explorer/landing.js +0 -43
  78. package/dist/explorer/landing.js.map +0 -1
  79. package/dist/explorer/open.d.ts +0 -137
  80. package/dist/explorer/open.d.ts.map +0 -1
  81. package/dist/explorer/open.js +0 -350
  82. package/dist/explorer/open.js.map +0 -1
  83. package/dist/explorer/picker-placement.d.ts +0 -69
  84. package/dist/explorer/picker-placement.d.ts.map +0 -1
  85. package/dist/explorer/picker-placement.js +0 -122
  86. package/dist/explorer/picker-placement.js.map +0 -1
  87. package/dist/explorer/preview/BytesPreview.d.ts +0 -12
  88. package/dist/explorer/preview/BytesPreview.d.ts.map +0 -1
  89. package/dist/explorer/preview/BytesPreview.js +0 -60
  90. package/dist/explorer/preview/BytesPreview.js.map +0 -1
  91. package/dist/explorer/preview/HtmlPreview.d.ts +0 -17
  92. package/dist/explorer/preview/HtmlPreview.d.ts.map +0 -1
  93. package/dist/explorer/preview/HtmlPreview.js +0 -113
  94. package/dist/explorer/preview/HtmlPreview.js.map +0 -1
  95. package/dist/explorer/preview/OfficePreview.d.ts +0 -12
  96. package/dist/explorer/preview/OfficePreview.d.ts.map +0 -1
  97. package/dist/explorer/preview/OfficePreview.js +0 -63
  98. package/dist/explorer/preview/OfficePreview.js.map +0 -1
  99. package/dist/explorer/preview/TextPreview.d.ts +0 -18
  100. package/dist/explorer/preview/TextPreview.d.ts.map +0 -1
  101. package/dist/explorer/preview/TextPreview.js +0 -122
  102. package/dist/explorer/preview/TextPreview.js.map +0 -1
  103. package/dist/explorer/preview/index.d.ts +0 -24
  104. package/dist/explorer/preview/index.d.ts.map +0 -1
  105. package/dist/explorer/preview/index.js +0 -58
  106. package/dist/explorer/preview/index.js.map +0 -1
  107. package/dist/explorer/preview/md-labels.d.ts +0 -3
  108. package/dist/explorer/preview/md-labels.d.ts.map +0 -1
  109. package/dist/explorer/preview/md-labels.js +0 -12
  110. package/dist/explorer/preview/md-labels.js.map +0 -1
  111. package/dist/explorer/preview-title-bar.d.ts +0 -26
  112. package/dist/explorer/preview-title-bar.d.ts.map +0 -1
  113. package/dist/explorer/preview-title-bar.js +0 -48
  114. package/dist/explorer/preview-title-bar.js.map +0 -1
  115. package/dist/explorer/types.d.ts +0 -259
  116. package/dist/explorer/types.d.ts.map +0 -1
  117. package/dist/explorer/types.js +0 -379
  118. package/dist/explorer/types.js.map +0 -1
  119. package/dist/session/SessionViewModal.d.ts +0 -37
  120. package/dist/session/SessionViewModal.d.ts.map +0 -1
  121. package/dist/session/SessionViewModal.js +0 -1133
  122. package/dist/session/SessionViewModal.js.map +0 -1
  123. package/dist/session/changes.d.ts +0 -73
  124. package/dist/session/changes.d.ts.map +0 -1
  125. package/dist/session/changes.js +0 -134
  126. package/dist/session/changes.js.map +0 -1
  127. package/dist/session/faces.d.ts +0 -244
  128. package/dist/session/faces.d.ts.map +0 -1
  129. package/dist/session/faces.js +0 -17
  130. package/dist/session/faces.js.map +0 -1
  131. package/dist/session/index.d.ts +0 -7
  132. package/dist/session/index.d.ts.map +0 -1
  133. package/dist/session/index.js +0 -27
  134. package/dist/session/index.js.map +0 -1
  135. package/dist/session/mirror/AskCard.d.ts +0 -35
  136. package/dist/session/mirror/AskCard.d.ts.map +0 -1
  137. package/dist/session/mirror/AskCard.js +0 -131
  138. package/dist/session/mirror/AskCard.js.map +0 -1
  139. package/dist/session/mirror/BashRow.d.ts.map +0 -1
  140. package/dist/session/mirror/BashRow.js +0 -143
  141. package/dist/session/mirror/BashRow.js.map +0 -1
  142. package/dist/session/mirror/ChangedFileDiff.d.ts +0 -25
  143. package/dist/session/mirror/ChangedFileDiff.d.ts.map +0 -1
  144. package/dist/session/mirror/ChangedFileDiff.js +0 -178
  145. package/dist/session/mirror/ChangedFileDiff.js.map +0 -1
  146. package/dist/session/mirror/ChangedFilesCard.d.ts +0 -18
  147. package/dist/session/mirror/ChangedFilesCard.d.ts.map +0 -1
  148. package/dist/session/mirror/ChangedFilesCard.js +0 -165
  149. package/dist/session/mirror/ChangedFilesCard.js.map +0 -1
  150. package/dist/session/mirror/ChatGroupSeat.d.ts +0 -24
  151. package/dist/session/mirror/ChatGroupSeat.d.ts.map +0 -1
  152. package/dist/session/mirror/ChatGroupSeat.js +0 -135
  153. package/dist/session/mirror/ChatGroupSeat.js.map +0 -1
  154. package/dist/session/mirror/ChatNodeSeat.d.ts +0 -43
  155. package/dist/session/mirror/ChatNodeSeat.d.ts.map +0 -1
  156. package/dist/session/mirror/ChatNodeSeat.js +0 -133
  157. package/dist/session/mirror/ChatNodeSeat.js.map +0 -1
  158. package/dist/session/mirror/ChatView.d.ts +0 -47
  159. package/dist/session/mirror/ChatView.d.ts.map +0 -1
  160. package/dist/session/mirror/ChatView.js +0 -138
  161. package/dist/session/mirror/ChatView.js.map +0 -1
  162. package/dist/session/mirror/CommandCard.d.ts +0 -20
  163. package/dist/session/mirror/CommandCard.d.ts.map +0 -1
  164. package/dist/session/mirror/CommandCard.js +0 -69
  165. package/dist/session/mirror/CommandCard.js.map +0 -1
  166. package/dist/session/mirror/ContextInjectionRow.d.ts +0 -18
  167. package/dist/session/mirror/ContextInjectionRow.d.ts.map +0 -1
  168. package/dist/session/mirror/ContextInjectionRow.js +0 -50
  169. package/dist/session/mirror/ContextInjectionRow.js.map +0 -1
  170. package/dist/session/mirror/Deliverables.d.ts +0 -24
  171. package/dist/session/mirror/Deliverables.d.ts.map +0 -1
  172. package/dist/session/mirror/Deliverables.js +0 -175
  173. package/dist/session/mirror/Deliverables.js.map +0 -1
  174. package/dist/session/mirror/GenericCommandCard.d.ts +0 -136
  175. package/dist/session/mirror/GenericCommandCard.d.ts.map +0 -1
  176. package/dist/session/mirror/GenericCommandCard.js +0 -948
  177. package/dist/session/mirror/GenericCommandCard.js.map +0 -1
  178. package/dist/session/mirror/MessageIconActions.d.ts +0 -16
  179. package/dist/session/mirror/MessageIconActions.d.ts.map +0 -1
  180. package/dist/session/mirror/MessageIconActions.js +0 -69
  181. package/dist/session/mirror/MessageIconActions.js.map +0 -1
  182. package/dist/session/mirror/MessageItem.d.ts +0 -93
  183. package/dist/session/mirror/MessageItem.d.ts.map +0 -1
  184. package/dist/session/mirror/MessageItem.js +0 -194
  185. package/dist/session/mirror/MessageItem.js.map +0 -1
  186. package/dist/session/mirror/ReasoningRow.d.ts +0 -11
  187. package/dist/session/mirror/ReasoningRow.d.ts.map +0 -1
  188. package/dist/session/mirror/ReasoningRow.js +0 -111
  189. package/dist/session/mirror/ReasoningRow.js.map +0 -1
  190. package/dist/session/mirror/RunningStatus.d.ts +0 -12
  191. package/dist/session/mirror/RunningStatus.d.ts.map +0 -1
  192. package/dist/session/mirror/RunningStatus.js +0 -57
  193. package/dist/session/mirror/RunningStatus.js.map +0 -1
  194. package/dist/session/mirror/StatDialog.d.ts +0 -20
  195. package/dist/session/mirror/StatDialog.d.ts.map +0 -1
  196. package/dist/session/mirror/StatDialog.js +0 -49
  197. package/dist/session/mirror/StatDialog.js.map +0 -1
  198. package/dist/session/mirror/ToolDetails.d.ts +0 -65
  199. package/dist/session/mirror/ToolDetails.d.ts.map +0 -1
  200. package/dist/session/mirror/ToolDetails.js +0 -268
  201. package/dist/session/mirror/ToolDetails.js.map +0 -1
  202. package/dist/session/mirror/TurnProcessNodeView.d.ts +0 -10
  203. package/dist/session/mirror/TurnProcessNodeView.d.ts.map +0 -1
  204. package/dist/session/mirror/TurnProcessNodeView.js +0 -57
  205. package/dist/session/mirror/TurnProcessNodeView.js.map +0 -1
  206. package/dist/session/mirror/TurnTailNodeView.d.ts +0 -57
  207. package/dist/session/mirror/TurnTailNodeView.d.ts.map +0 -1
  208. package/dist/session/mirror/TurnTailNodeView.js +0 -106
  209. package/dist/session/mirror/TurnTailNodeView.js.map +0 -1
  210. package/dist/session/mirror/TurnTriggerNodeView.d.ts +0 -16
  211. package/dist/session/mirror/TurnTriggerNodeView.d.ts.map +0 -1
  212. package/dist/session/mirror/TurnTriggerNodeView.js +0 -103
  213. package/dist/session/mirror/TurnTriggerNodeView.js.map +0 -1
  214. package/dist/session/mirror/TurnUsagePanel.d.ts +0 -21
  215. package/dist/session/mirror/TurnUsagePanel.d.ts.map +0 -1
  216. package/dist/session/mirror/TurnUsagePanel.js +0 -41
  217. package/dist/session/mirror/TurnUsagePanel.js.map +0 -1
  218. package/dist/session/mirror/control-details.d.ts +0 -9
  219. package/dist/session/mirror/control-details.d.ts.map +0 -1
  220. package/dist/session/mirror/control-details.js +0 -549
  221. package/dist/session/mirror/control-details.js.map +0 -1
  222. package/dist/session/mirror/detail-i18n.d.ts +0 -4
  223. package/dist/session/mirror/detail-i18n.d.ts.map +0 -1
  224. package/dist/session/mirror/detail-i18n.js +0 -153
  225. package/dist/session/mirror/detail-i18n.js.map +0 -1
  226. package/dist/session/mirror/message-chrome.d.ts +0 -39
  227. package/dist/session/mirror/message-chrome.d.ts.map +0 -1
  228. package/dist/session/mirror/message-chrome.js +0 -153
  229. package/dist/session/mirror/message-chrome.js.map +0 -1
  230. package/dist/session/mirror/process-groups.d.ts +0 -56
  231. package/dist/session/mirror/process-groups.d.ts.map +0 -1
  232. package/dist/session/mirror/process-groups.js +0 -202
  233. package/dist/session/mirror/process-groups.js.map +0 -1
  234. package/dist/session/official-classes.d.ts +0 -28
  235. package/dist/session/official-classes.d.ts.map +0 -1
  236. package/dist/session/official-classes.js +0 -152
  237. package/dist/session/official-classes.js.map +0 -1
  238. package/dist/session/open-review.d.ts +0 -13
  239. package/dist/session/open-review.d.ts.map +0 -1
  240. package/dist/session/open-review.js +0 -32
  241. package/dist/session/open-review.js.map +0 -1
  242. package/dist/session/open-session-view.d.ts +0 -19
  243. package/dist/session/open-session-view.d.ts.map +0 -1
  244. package/dist/session/open-session-view.js +0 -147
  245. package/dist/session/open-session-view.js.map +0 -1
  246. package/dist/session/pending-inputs.d.ts +0 -33
  247. package/dist/session/pending-inputs.d.ts.map +0 -1
  248. package/dist/session/pending-inputs.js +0 -130
  249. package/dist/session/pending-inputs.js.map +0 -1
  250. package/dist/session/session-css.d.ts +0 -2
  251. package/dist/session/session-css.d.ts.map +0 -1
  252. package/dist/session/session-css.generated.d.ts +0 -2
  253. package/dist/session/session-css.generated.d.ts.map +0 -1
  254. package/dist/session/session-css.generated.js +0 -4
  255. package/dist/session/session-css.generated.js.map +0 -1
  256. package/dist/session/session-css.js +0 -3
  257. package/dist/session/session-css.js.map +0 -1
  258. package/dist/session/tail-follow.d.ts +0 -29
  259. package/dist/session/tail-follow.d.ts.map +0 -1
  260. package/dist/session/tail-follow.js +0 -106
  261. package/dist/session/tail-follow.js.map +0 -1
  262. package/dist/session/types.d.ts +0 -28
  263. package/dist/session/types.d.ts.map +0 -1
  264. package/dist/session/types.js +0 -12
  265. package/dist/session/types.js.map +0 -1
  266. package/dist/ui/AlertModal.d.ts +0 -41
  267. package/dist/ui/AlertModal.d.ts.map +0 -1
  268. package/dist/ui/AlertModal.js +0 -45
  269. package/dist/ui/AlertModal.js.map +0 -1
  270. package/dist/ui/Button.d.ts +0 -102
  271. package/dist/ui/Button.d.ts.map +0 -1
  272. package/dist/ui/Button.js +0 -233
  273. package/dist/ui/Button.js.map +0 -1
  274. package/dist/ui/Card.d.ts +0 -65
  275. package/dist/ui/Card.d.ts.map +0 -1
  276. package/dist/ui/Card.js +0 -109
  277. package/dist/ui/Card.js.map +0 -1
  278. package/dist/ui/Checkbox.d.ts +0 -24
  279. package/dist/ui/Checkbox.d.ts.map +0 -1
  280. package/dist/ui/Checkbox.js +0 -35
  281. package/dist/ui/Checkbox.js.map +0 -1
  282. package/dist/ui/Chip.d.ts +0 -28
  283. package/dist/ui/Chip.d.ts.map +0 -1
  284. package/dist/ui/Chip.js +0 -36
  285. package/dist/ui/Chip.js.map +0 -1
  286. package/dist/ui/CodeViewer.d.ts +0 -38
  287. package/dist/ui/CodeViewer.d.ts.map +0 -1
  288. package/dist/ui/CodeViewer.js +0 -107
  289. package/dist/ui/CodeViewer.js.map +0 -1
  290. package/dist/ui/ConfirmModal.d.ts +0 -50
  291. package/dist/ui/ConfirmModal.d.ts.map +0 -1
  292. package/dist/ui/ConfirmModal.js +0 -47
  293. package/dist/ui/ConfirmModal.js.map +0 -1
  294. package/dist/ui/DateTimePicker.d.ts +0 -45
  295. package/dist/ui/DateTimePicker.d.ts.map +0 -1
  296. package/dist/ui/DateTimePicker.js +0 -462
  297. package/dist/ui/DateTimePicker.js.map +0 -1
  298. package/dist/ui/EmptyState.d.ts +0 -12
  299. package/dist/ui/EmptyState.d.ts.map +0 -1
  300. package/dist/ui/EmptyState.js +0 -10
  301. package/dist/ui/EmptyState.js.map +0 -1
  302. package/dist/ui/Field.d.ts +0 -125
  303. package/dist/ui/Field.d.ts.map +0 -1
  304. package/dist/ui/Field.js +0 -175
  305. package/dist/ui/Field.js.map +0 -1
  306. package/dist/ui/FieldHint.d.ts +0 -18
  307. package/dist/ui/FieldHint.d.ts.map +0 -1
  308. package/dist/ui/FieldHint.js +0 -40
  309. package/dist/ui/FieldHint.js.map +0 -1
  310. package/dist/ui/FlipText.d.ts +0 -43
  311. package/dist/ui/FlipText.d.ts.map +0 -1
  312. package/dist/ui/FlipText.js +0 -59
  313. package/dist/ui/FlipText.js.map +0 -1
  314. package/dist/ui/InputGroup.d.ts +0 -91
  315. package/dist/ui/InputGroup.d.ts.map +0 -1
  316. package/dist/ui/InputGroup.js +0 -125
  317. package/dist/ui/InputGroup.js.map +0 -1
  318. package/dist/ui/LiveText.d.ts +0 -13
  319. package/dist/ui/LiveText.d.ts.map +0 -1
  320. package/dist/ui/LiveText.js +0 -19
  321. package/dist/ui/LiveText.js.map +0 -1
  322. package/dist/ui/Loader.d.ts +0 -49
  323. package/dist/ui/Loader.d.ts.map +0 -1
  324. package/dist/ui/Loader.js +0 -79
  325. package/dist/ui/Loader.js.map +0 -1
  326. package/dist/ui/LoaderBar.d.ts +0 -38
  327. package/dist/ui/LoaderBar.d.ts.map +0 -1
  328. package/dist/ui/LoaderBar.js +0 -79
  329. package/dist/ui/LoaderBar.js.map +0 -1
  330. package/dist/ui/Loading.d.ts +0 -69
  331. package/dist/ui/Loading.d.ts.map +0 -1
  332. package/dist/ui/Loading.js +0 -164
  333. package/dist/ui/Loading.js.map +0 -1
  334. package/dist/ui/MarqueeText.d.ts +0 -22
  335. package/dist/ui/MarqueeText.d.ts.map +0 -1
  336. package/dist/ui/MarqueeText.js +0 -52
  337. package/dist/ui/MarqueeText.js.map +0 -1
  338. package/dist/ui/Modal.d.ts +0 -73
  339. package/dist/ui/Modal.d.ts.map +0 -1
  340. package/dist/ui/Modal.js +0 -83
  341. package/dist/ui/Modal.js.map +0 -1
  342. package/dist/ui/ModelPicker.d.ts +0 -48
  343. package/dist/ui/ModelPicker.d.ts.map +0 -1
  344. package/dist/ui/ModelPicker.js +0 -101
  345. package/dist/ui/ModelPicker.js.map +0 -1
  346. package/dist/ui/Pagination.d.ts +0 -59
  347. package/dist/ui/Pagination.d.ts.map +0 -1
  348. package/dist/ui/Pagination.js +0 -112
  349. package/dist/ui/Pagination.js.map +0 -1
  350. package/dist/ui/PanelDock.d.ts +0 -132
  351. package/dist/ui/PanelDock.d.ts.map +0 -1
  352. package/dist/ui/PanelDock.js +0 -390
  353. package/dist/ui/PanelDock.js.map +0 -1
  354. package/dist/ui/Picker.d.ts +0 -56
  355. package/dist/ui/Picker.d.ts.map +0 -1
  356. package/dist/ui/Picker.js +0 -244
  357. package/dist/ui/Picker.js.map +0 -1
  358. package/dist/ui/QuickToolbar.d.ts +0 -54
  359. package/dist/ui/QuickToolbar.d.ts.map +0 -1
  360. package/dist/ui/QuickToolbar.js +0 -254
  361. package/dist/ui/QuickToolbar.js.map +0 -1
  362. package/dist/ui/SectionHead.d.ts +0 -35
  363. package/dist/ui/SectionHead.d.ts.map +0 -1
  364. package/dist/ui/SectionHead.js +0 -45
  365. package/dist/ui/SectionHead.js.map +0 -1
  366. package/dist/ui/Segmented.d.ts +0 -99
  367. package/dist/ui/Segmented.d.ts.map +0 -1
  368. package/dist/ui/Segmented.js +0 -135
  369. package/dist/ui/Segmented.js.map +0 -1
  370. package/dist/ui/SideSheet.d.ts +0 -70
  371. package/dist/ui/SideSheet.d.ts.map +0 -1
  372. package/dist/ui/SideSheet.js +0 -130
  373. package/dist/ui/SideSheet.js.map +0 -1
  374. package/dist/ui/SplitGroup.d.ts +0 -37
  375. package/dist/ui/SplitGroup.d.ts.map +0 -1
  376. package/dist/ui/SplitGroup.js +0 -36
  377. package/dist/ui/SplitGroup.js.map +0 -1
  378. package/dist/ui/Surface.d.ts +0 -43
  379. package/dist/ui/Surface.d.ts.map +0 -1
  380. package/dist/ui/Surface.js +0 -39
  381. package/dist/ui/Surface.js.map +0 -1
  382. package/dist/ui/Table.d.ts +0 -30
  383. package/dist/ui/Table.d.ts.map +0 -1
  384. package/dist/ui/Table.js +0 -96
  385. package/dist/ui/Table.js.map +0 -1
  386. package/dist/ui/Textarea.d.ts +0 -36
  387. package/dist/ui/Textarea.d.ts.map +0 -1
  388. package/dist/ui/Textarea.js +0 -35
  389. package/dist/ui/Textarea.js.map +0 -1
  390. package/dist/ui/Toast.d.ts +0 -45
  391. package/dist/ui/Toast.d.ts.map +0 -1
  392. package/dist/ui/Toast.js +0 -225
  393. package/dist/ui/Toast.js.map +0 -1
  394. package/dist/ui/WorkspacePicker.d.ts +0 -35
  395. package/dist/ui/WorkspacePicker.d.ts.map +0 -1
  396. package/dist/ui/WorkspacePicker.js +0 -39
  397. package/dist/ui/WorkspacePicker.js.map +0 -1
  398. package/dist/ui/card-css.d.ts +0 -2
  399. package/dist/ui/card-css.d.ts.map +0 -1
  400. package/dist/ui/card-css.generated.d.ts +0 -2
  401. package/dist/ui/card-css.generated.d.ts.map +0 -1
  402. package/dist/ui/card-css.generated.js +0 -4
  403. package/dist/ui/card-css.generated.js.map +0 -1
  404. package/dist/ui/card-css.js +0 -5
  405. package/dist/ui/card-css.js.map +0 -1
  406. package/dist/ui/chevron.d.ts +0 -22
  407. package/dist/ui/chevron.d.ts.map +0 -1
  408. package/dist/ui/chevron.js +0 -33
  409. package/dist/ui/chevron.js.map +0 -1
  410. package/dist/ui/chip-css.d.ts +0 -2
  411. package/dist/ui/chip-css.d.ts.map +0 -1
  412. package/dist/ui/chip-css.generated.d.ts +0 -2
  413. package/dist/ui/chip-css.generated.d.ts.map +0 -1
  414. package/dist/ui/chip-css.generated.js +0 -4
  415. package/dist/ui/chip-css.generated.js.map +0 -1
  416. package/dist/ui/chip-css.js +0 -12
  417. package/dist/ui/chip-css.js.map +0 -1
  418. package/dist/ui/code-viewer-css.d.ts +0 -2
  419. package/dist/ui/code-viewer-css.d.ts.map +0 -1
  420. package/dist/ui/code-viewer-css.generated.d.ts +0 -2
  421. package/dist/ui/code-viewer-css.generated.d.ts.map +0 -1
  422. package/dist/ui/code-viewer-css.generated.js +0 -4
  423. package/dist/ui/code-viewer-css.generated.js.map +0 -1
  424. package/dist/ui/code-viewer-css.js +0 -3
  425. package/dist/ui/code-viewer-css.js.map +0 -1
  426. package/dist/ui/code-viewer-lang.d.ts +0 -15
  427. package/dist/ui/code-viewer-lang.d.ts.map +0 -1
  428. package/dist/ui/code-viewer-lang.js +0 -190
  429. package/dist/ui/code-viewer-lang.js.map +0 -1
  430. package/dist/ui/code-viewer-theme.d.ts +0 -5
  431. package/dist/ui/code-viewer-theme.d.ts.map +0 -1
  432. package/dist/ui/code-viewer-theme.js +0 -138
  433. package/dist/ui/code-viewer-theme.js.map +0 -1
  434. package/dist/ui/controls/button-css.generated.d.ts +0 -2
  435. package/dist/ui/controls/button-css.generated.d.ts.map +0 -1
  436. package/dist/ui/controls/button-css.generated.js +0 -4
  437. package/dist/ui/controls/button-css.generated.js.map +0 -1
  438. package/dist/ui/controls/datetime-css.generated.d.ts +0 -2
  439. package/dist/ui/controls/datetime-css.generated.d.ts.map +0 -1
  440. package/dist/ui/controls/datetime-css.generated.js +0 -4
  441. package/dist/ui/controls/datetime-css.generated.js.map +0 -1
  442. package/dist/ui/controls/field-css.generated.d.ts +0 -2
  443. package/dist/ui/controls/field-css.generated.d.ts.map +0 -1
  444. package/dist/ui/controls/field-css.generated.js +0 -4
  445. package/dist/ui/controls/field-css.generated.js.map +0 -1
  446. package/dist/ui/controls/hint-css.generated.d.ts +0 -2
  447. package/dist/ui/controls/hint-css.generated.d.ts.map +0 -1
  448. package/dist/ui/controls/hint-css.generated.js +0 -4
  449. package/dist/ui/controls/hint-css.generated.js.map +0 -1
  450. package/dist/ui/controls/input-group-css.generated.d.ts +0 -2
  451. package/dist/ui/controls/input-group-css.generated.d.ts.map +0 -1
  452. package/dist/ui/controls/input-group-css.generated.js +0 -4
  453. package/dist/ui/controls/input-group-css.generated.js.map +0 -1
  454. package/dist/ui/controls/loader-bar-css.generated.d.ts +0 -2
  455. package/dist/ui/controls/loader-bar-css.generated.d.ts.map +0 -1
  456. package/dist/ui/controls/loader-bar-css.generated.js +0 -4
  457. package/dist/ui/controls/loader-bar-css.generated.js.map +0 -1
  458. package/dist/ui/controls/loader-css.generated.d.ts +0 -2
  459. package/dist/ui/controls/loader-css.generated.d.ts.map +0 -1
  460. package/dist/ui/controls/loader-css.generated.js +0 -4
  461. package/dist/ui/controls/loader-css.generated.js.map +0 -1
  462. package/dist/ui/controls/loading-css.generated.d.ts +0 -2
  463. package/dist/ui/controls/loading-css.generated.d.ts.map +0 -1
  464. package/dist/ui/controls/loading-css.generated.js +0 -4
  465. package/dist/ui/controls/loading-css.generated.js.map +0 -1
  466. package/dist/ui/controls/pagination-css.generated.d.ts +0 -2
  467. package/dist/ui/controls/pagination-css.generated.d.ts.map +0 -1
  468. package/dist/ui/controls/pagination-css.generated.js +0 -4
  469. package/dist/ui/controls/pagination-css.generated.js.map +0 -1
  470. package/dist/ui/controls/quick-toolbar-css.generated.d.ts +0 -2
  471. package/dist/ui/controls/quick-toolbar-css.generated.d.ts.map +0 -1
  472. package/dist/ui/controls/quick-toolbar-css.generated.js +0 -4
  473. package/dist/ui/controls/quick-toolbar-css.generated.js.map +0 -1
  474. package/dist/ui/controls/section-head-css.generated.d.ts +0 -2
  475. package/dist/ui/controls/section-head-css.generated.d.ts.map +0 -1
  476. package/dist/ui/controls/section-head-css.generated.js +0 -4
  477. package/dist/ui/controls/section-head-css.generated.js.map +0 -1
  478. package/dist/ui/controls/segmented-css.generated.d.ts +0 -2
  479. package/dist/ui/controls/segmented-css.generated.d.ts.map +0 -1
  480. package/dist/ui/controls/segmented-css.generated.js +0 -4
  481. package/dist/ui/controls/segmented-css.generated.js.map +0 -1
  482. package/dist/ui/controls/split-group-css.generated.d.ts +0 -2
  483. package/dist/ui/controls/split-group-css.generated.d.ts.map +0 -1
  484. package/dist/ui/controls/split-group-css.generated.js +0 -4
  485. package/dist/ui/controls/split-group-css.generated.js.map +0 -1
  486. package/dist/ui/controls/table-css.generated.d.ts +0 -2
  487. package/dist/ui/controls/table-css.generated.d.ts.map +0 -1
  488. package/dist/ui/controls/table-css.generated.js +0 -4
  489. package/dist/ui/controls/table-css.generated.js.map +0 -1
  490. package/dist/ui/controls/table-plain-css.generated.d.ts +0 -2
  491. package/dist/ui/controls/table-plain-css.generated.d.ts.map +0 -1
  492. package/dist/ui/controls/table-plain-css.generated.js +0 -4
  493. package/dist/ui/controls/table-plain-css.generated.js.map +0 -1
  494. package/dist/ui/controls-css.d.ts +0 -16
  495. package/dist/ui/controls-css.d.ts.map +0 -1
  496. package/dist/ui/controls-css.js +0 -26
  497. package/dist/ui/controls-css.js.map +0 -1
  498. package/dist/ui/css.d.ts +0 -35
  499. package/dist/ui/css.d.ts.map +0 -1
  500. package/dist/ui/css.js +0 -52
  501. package/dist/ui/css.js.map +0 -1
  502. package/dist/ui/datetime-logic.d.ts +0 -102
  503. package/dist/ui/datetime-logic.d.ts.map +0 -1
  504. package/dist/ui/datetime-logic.js +0 -200
  505. package/dist/ui/datetime-logic.js.map +0 -1
  506. package/dist/ui/feedback-css.d.ts +0 -2
  507. package/dist/ui/feedback-css.d.ts.map +0 -1
  508. package/dist/ui/feedback-css.generated.d.ts +0 -2
  509. package/dist/ui/feedback-css.generated.d.ts.map +0 -1
  510. package/dist/ui/feedback-css.generated.js +0 -4
  511. package/dist/ui/feedback-css.generated.js.map +0 -1
  512. package/dist/ui/feedback-css.js +0 -4
  513. package/dist/ui/feedback-css.js.map +0 -1
  514. package/dist/ui/flip-css.d.ts +0 -2
  515. package/dist/ui/flip-css.d.ts.map +0 -1
  516. package/dist/ui/flip-css.generated.d.ts +0 -2
  517. package/dist/ui/flip-css.generated.d.ts.map +0 -1
  518. package/dist/ui/flip-css.generated.js +0 -4
  519. package/dist/ui/flip-css.generated.js.map +0 -1
  520. package/dist/ui/flip-css.js +0 -4
  521. package/dist/ui/flip-css.js.map +0 -1
  522. package/dist/ui/host-data.d.ts +0 -119
  523. package/dist/ui/host-data.d.ts.map +0 -1
  524. package/dist/ui/host-data.js +0 -122
  525. package/dist/ui/host-data.js.map +0 -1
  526. package/dist/ui/host-toast.d.ts +0 -23
  527. package/dist/ui/host-toast.d.ts.map +0 -1
  528. package/dist/ui/host-toast.js +0 -34
  529. package/dist/ui/host-toast.js.map +0 -1
  530. package/dist/ui/loader-bar-art.d.ts +0 -6
  531. package/dist/ui/loader-bar-art.d.ts.map +0 -1
  532. package/dist/ui/loader-bar-art.js +0 -6
  533. package/dist/ui/loader-bar-art.js.map +0 -1
  534. package/dist/ui/loading-host.d.ts +0 -49
  535. package/dist/ui/loading-host.d.ts.map +0 -1
  536. package/dist/ui/loading-host.js +0 -57
  537. package/dist/ui/loading-host.js.map +0 -1
  538. package/dist/ui/locale.d.ts +0 -4
  539. package/dist/ui/locale.d.ts.map +0 -1
  540. package/dist/ui/locale.js +0 -17
  541. package/dist/ui/locale.js.map +0 -1
  542. package/dist/ui/marquee-css.d.ts +0 -2
  543. package/dist/ui/marquee-css.d.ts.map +0 -1
  544. package/dist/ui/marquee-css.generated.d.ts +0 -2
  545. package/dist/ui/marquee-css.generated.d.ts.map +0 -1
  546. package/dist/ui/marquee-css.generated.js +0 -4
  547. package/dist/ui/marquee-css.generated.js.map +0 -1
  548. package/dist/ui/marquee-css.js +0 -4
  549. package/dist/ui/marquee-css.js.map +0 -1
  550. package/dist/ui/modal-host.d.ts +0 -51
  551. package/dist/ui/modal-host.d.ts.map +0 -1
  552. package/dist/ui/modal-host.js +0 -170
  553. package/dist/ui/modal-host.js.map +0 -1
  554. package/dist/ui/overlay-css.d.ts +0 -2
  555. package/dist/ui/overlay-css.d.ts.map +0 -1
  556. package/dist/ui/overlay-css.generated.d.ts +0 -2
  557. package/dist/ui/overlay-css.generated.d.ts.map +0 -1
  558. package/dist/ui/overlay-css.generated.js +0 -4
  559. package/dist/ui/overlay-css.generated.js.map +0 -1
  560. package/dist/ui/overlay-css.js +0 -2
  561. package/dist/ui/overlay-css.js.map +0 -1
  562. package/dist/ui/overlay.d.ts +0 -62
  563. package/dist/ui/overlay.d.ts.map +0 -1
  564. package/dist/ui/overlay.js +0 -94
  565. package/dist/ui/overlay.js.map +0 -1
  566. package/dist/ui/pagination-logic.d.ts +0 -36
  567. package/dist/ui/pagination-logic.d.ts.map +0 -1
  568. package/dist/ui/pagination-logic.js +0 -73
  569. package/dist/ui/pagination-logic.js.map +0 -1
  570. package/dist/ui/panel-css.d.ts +0 -2
  571. package/dist/ui/panel-css.d.ts.map +0 -1
  572. package/dist/ui/panel-css.generated.d.ts +0 -2
  573. package/dist/ui/panel-css.generated.d.ts.map +0 -1
  574. package/dist/ui/panel-css.generated.js +0 -4
  575. package/dist/ui/panel-css.generated.js.map +0 -1
  576. package/dist/ui/panel-css.js +0 -2
  577. package/dist/ui/panel-css.js.map +0 -1
  578. package/dist/ui/panel-dock-css.d.ts +0 -2
  579. package/dist/ui/panel-dock-css.d.ts.map +0 -1
  580. package/dist/ui/panel-dock-css.generated.d.ts +0 -2
  581. package/dist/ui/panel-dock-css.generated.d.ts.map +0 -1
  582. package/dist/ui/panel-dock-css.generated.js +0 -4
  583. package/dist/ui/panel-dock-css.generated.js.map +0 -1
  584. package/dist/ui/panel-dock-css.js +0 -4
  585. package/dist/ui/panel-dock-css.js.map +0 -1
  586. package/dist/ui/panel-dock-logic.d.ts +0 -67
  587. package/dist/ui/panel-dock-logic.d.ts.map +0 -1
  588. package/dist/ui/panel-dock-logic.js +0 -110
  589. package/dist/ui/panel-dock-logic.js.map +0 -1
  590. package/dist/ui/panel.d.ts +0 -41
  591. package/dist/ui/panel.d.ts.map +0 -1
  592. package/dist/ui/panel.js +0 -37
  593. package/dist/ui/panel.js.map +0 -1
  594. package/dist/ui/picker-css.d.ts +0 -2
  595. package/dist/ui/picker-css.d.ts.map +0 -1
  596. package/dist/ui/picker-css.generated.d.ts +0 -2
  597. package/dist/ui/picker-css.generated.d.ts.map +0 -1
  598. package/dist/ui/picker-css.generated.js +0 -4
  599. package/dist/ui/picker-css.generated.js.map +0 -1
  600. package/dist/ui/picker-css.js +0 -4
  601. package/dist/ui/picker-css.js.map +0 -1
  602. package/dist/ui/picker-icons.d.ts +0 -12
  603. package/dist/ui/picker-icons.d.ts.map +0 -1
  604. package/dist/ui/picker-icons.js +0 -29
  605. package/dist/ui/picker-icons.js.map +0 -1
  606. package/dist/ui/picker-logic.d.ts +0 -33
  607. package/dist/ui/picker-logic.d.ts.map +0 -1
  608. package/dist/ui/picker-logic.js +0 -68
  609. package/dist/ui/picker-logic.js.map +0 -1
  610. package/dist/ui/quick-toolbar-logic.d.ts +0 -76
  611. package/dist/ui/quick-toolbar-logic.d.ts.map +0 -1
  612. package/dist/ui/quick-toolbar-logic.js +0 -40
  613. package/dist/ui/quick-toolbar-logic.js.map +0 -1
  614. package/dist/ui/resizer.d.ts +0 -29
  615. package/dist/ui/resizer.d.ts.map +0 -1
  616. package/dist/ui/resizer.js +0 -42
  617. package/dist/ui/resizer.js.map +0 -1
  618. package/dist/ui/side-panel-css.d.ts +0 -2
  619. package/dist/ui/side-panel-css.d.ts.map +0 -1
  620. package/dist/ui/side-panel-css.generated.d.ts +0 -2
  621. package/dist/ui/side-panel-css.generated.d.ts.map +0 -1
  622. package/dist/ui/side-panel-css.generated.js +0 -4
  623. package/dist/ui/side-panel-css.generated.js.map +0 -1
  624. package/dist/ui/side-panel-css.js +0 -2
  625. package/dist/ui/side-panel-css.js.map +0 -1
  626. package/dist/ui/side-sheet-css.d.ts +0 -2
  627. package/dist/ui/side-sheet-css.d.ts.map +0 -1
  628. package/dist/ui/side-sheet-css.generated.d.ts +0 -2
  629. package/dist/ui/side-sheet-css.generated.d.ts.map +0 -1
  630. package/dist/ui/side-sheet-css.generated.js +0 -4
  631. package/dist/ui/side-sheet-css.generated.js.map +0 -1
  632. package/dist/ui/side-sheet-css.js +0 -2
  633. package/dist/ui/side-sheet-css.js.map +0 -1
  634. package/dist/ui/surface-css.d.ts +0 -2
  635. package/dist/ui/surface-css.d.ts.map +0 -1
  636. package/dist/ui/surface-css.generated.d.ts +0 -2
  637. package/dist/ui/surface-css.generated.d.ts.map +0 -1
  638. package/dist/ui/surface-css.generated.js +0 -4
  639. package/dist/ui/surface-css.generated.js.map +0 -1
  640. package/dist/ui/surface-css.js +0 -7
  641. package/dist/ui/surface-css.js.map +0 -1
  642. package/dist/ui/table-logic.d.ts +0 -110
  643. package/dist/ui/table-logic.d.ts.map +0 -1
  644. package/dist/ui/table-logic.js +0 -81
  645. package/dist/ui/table-logic.js.map +0 -1
  646. package/dist/ui/table-shared.d.ts +0 -101
  647. package/dist/ui/table-shared.d.ts.map +0 -1
  648. package/dist/ui/table-shared.js +0 -229
  649. package/dist/ui/table-shared.js.map +0 -1
  650. package/dist/ui/thenable.d.ts +0 -9
  651. package/dist/ui/thenable.d.ts.map +0 -1
  652. package/dist/ui/thenable.js +0 -15
  653. package/dist/ui/thenable.js.map +0 -1
  654. package/dist/ui/ticker.d.ts +0 -8
  655. package/dist/ui/ticker.d.ts.map +0 -1
  656. package/dist/ui/ticker.js +0 -49
  657. package/dist/ui/ticker.js.map +0 -1
  658. package/dist/ui/toast-host.d.ts +0 -24
  659. package/dist/ui/toast-host.d.ts.map +0 -1
  660. package/dist/ui/toast-host.js +0 -20
  661. package/dist/ui/toast-host.js.map +0 -1
  662. package/dist/ui/tooltip.d.ts +0 -29
  663. package/dist/ui/tooltip.d.ts.map +0 -1
  664. package/dist/ui/tooltip.js +0 -10
  665. package/dist/ui/tooltip.js.map +0 -1
@@ -1,94 +0,0 @@
1
- /**
2
- * 浮层公共件 —— Modal 与 SideSheet 共用,**别各写一份**。
3
- *
4
- * 抽出来的判据:这两件在两种浮层里完全同构(遮罩让位分栏、头部四槽、Esc 判定),
5
- * 差异只在「面板怎么排」(居中 vs 贴边),那部分留在各自的控件里。
6
- */
7
- import { createContext, createElement as h, useContext, useEffect } from 'react';
8
- import { ensureComponentStyles } from './css.js';
9
- import { OVERLAY_CSS } from './overlay-css.js';
10
- import { PANEL_CSS } from './panel-css.js';
11
- import { PanelClose } from './panel.js';
12
- /**
13
- * 锁定广播:Modal / SideSheet `locked` 时把 true 传下去。
14
- * 为什么要有它:面板挂 `inert` 管不到 **portal 到 body** 的那几个浮层(Picker / 日期选择的菜单
15
- * 不在面板 DOM 里),锁定时它们还浮在屏幕上能点;那几个组件自己订阅这里、锁上就收起。
16
- */
17
- const LockedContext = createContext(false);
18
- /** 外层浮层是否锁死(不在浮层里 = false)。 */
19
- export function useOverlayLocked() {
20
- return useContext(LockedContext);
21
- }
22
- export const OverlayLockedProvider = LockedContext.Provider;
23
- /**
24
- * 锁定期间的两道保险(消费方自绘的控件不是我们的,管不到它们的 `disabled`):
25
- * ① Tab 整个吃掉 —— 否则能 Tab 进他们的 input 打字;
26
- * ② 把面板里没被禁用的活动元素 `blur` 掉 —— 否则锁定前已经停在里面的光标还能继续打字。
27
- * 只认 `.dshpc-locked` 子树里的元素,不碰面板外面的焦点。
28
- */
29
- export function useLockGuards(enabled) {
30
- useEffect(() => {
31
- if (!enabled || typeof document === 'undefined')
32
- return;
33
- const active = document.activeElement;
34
- if (active instanceof Element && active.closest('.dshpc-locked') !== null)
35
- active.blur();
36
- const onKey = (event) => {
37
- if (event.key === 'Tab')
38
- event.preventDefault();
39
- };
40
- document.addEventListener('keydown', onKey, true);
41
- return () => document.removeEventListener('keydown', onKey, true);
42
- }, [enabled]);
43
- }
44
- /**
45
- * 锁定时的**透明点击层**:盖住整块面板、不遮任何像素,只吃掉指针事件
46
- * (消费方自绘的元素也跟着点不动)。变灰由各控件自己的 `:disabled` 负责,这里不管外观。
47
- * 不做焦点接管:核心控件此刻已是真 disabled,Tab 自己就跳过它们。
48
- */
49
- export function OverlayLockCatcher() {
50
- return h('div', {
51
- className: 'dshpc-lock-catcher',
52
- // 点它不能再冒到遮罩:否则等于点了外部,会顺带把弹窗关掉。
53
- onClick: (event) => event.stopPropagation(),
54
- });
55
- }
56
- /**
57
- * Esc 关闭。不传 `onClose` 或 `enabled=false` 时完全不挂监听
58
- * (无回调还挂监听,等于让 Esc 被白白吃掉)。
59
- */
60
- export function useEscapeClose(enabled, onClose) {
61
- useEffect(() => {
62
- if (!enabled || onClose === undefined)
63
- return;
64
- const onKey = (event) => {
65
- if (event.key === 'Escape')
66
- onClose();
67
- };
68
- document.addEventListener('keydown', onKey);
69
- return () => document.removeEventListener('keydown', onKey);
70
- }, [enabled, onClose]);
71
- }
72
- /** 遮罩 + 承载盒。右边界让位分栏的规则只有这一份。 */
73
- export function OverlayMask(props) {
74
- ensureComponentStyles('overlay', OVERLAY_CSS);
75
- return h('div', {
76
- ...props.attrs,
77
- className: `dshpc-overlay dshpc-overlay--${props.kind}`,
78
- onClick: () => {
79
- if (props.closeOnMask)
80
- props.onClose?.();
81
- },
82
- }, props.children ?? null);
83
- }
84
- /** 头部四槽:icon + 标题组 + 右侧动作 + 关闭钮。 */
85
- export function OverlayHead(props) {
86
- ensureComponentStyles('overlay', OVERLAY_CSS);
87
- // 关闭钮的皮肤在 panel.css(浮层唯一那枚);旧类名 `dshpc-overlay-head__close` 仍挂着做别名。
88
- ensureComponentStyles('panel', PANEL_CSS);
89
- return h('div', { className: 'dshpc-overlay-head' }, h('div', { className: 'dshpc-overlay-head__heading' }, props.icon === undefined ? null : h('span', { className: 'dshpc-overlay-head__lead' }, props.icon), h('div', { className: 'dshpc-overlay-head__titlegroup' }, h('div', { className: 'dshpc-overlay-head__titlerow' }, h('div', { className: 'dshpc-overlay-head__title' }, props.title ?? ''), props.extra === undefined ? null : h('div', { className: 'dshpc-overlay-head__extra' }, props.extra)), props.subtitle === undefined ? null : h('div', { className: 'dshpc-overlay-head__sid' }, props.subtitle))), h('div', { className: 'dshpc-overlay-head__spacer' }), props.actions === undefined ? null : h('div', { className: 'dshpc-overlay-head__actions' }, props.actions), props.onClose === undefined
90
- ? null
91
- // 关闭钮只此一枚(`PanelClose`);旧类名挂着做别名,消费方写在上面的覆盖仍生效。
92
- : h(PanelClose, { label: props.closeLabel, onClick: props.onClose, className: 'dshpc-overlay-head__close' }));
93
- }
94
- //# sourceMappingURL=overlay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../src/ui/overlay.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- /**
2
- * 分页纯逻辑:总页数、页码夹取、省略号窗口、当前页可见区间。
3
- *
4
- * 零 React 运行时依赖(只 `import type`,编译后不留痕迹),可被 node 单测直接引。
5
- *
6
- * 口径照通行的分页约定(Ant Design / MUI / Element Plus 一致):
7
- * 调用方只给「当前页 / 每页条数 / 总条数」,总页数与省略窗口一律由这里算,
8
- * **消费方永远不自己算页数、也不自己拼页码**。
9
- */
10
- import type { ReactNode } from 'react';
11
- /** 页码条对齐:默认 right(放内容右下角)。 */
12
- export type PaginationAlign = 'left' | 'center' | 'right';
13
- /** 页码条里的一项:页码,或省略号占位。 */
14
- export type PageItem = number | 'gap';
15
- /** 总页数:`ceil(total / pageSize)`,至少 1 页(空数据也显示单页)。 */
16
- export declare function pageCountOf(total: number, pageSize: number): number;
17
- /** 把页码夹回 `[1, pageCount]`(越界 / NaN 一律落到第 1 页)。 */
18
- export declare function clampPage(page: number, pageCount: number): number;
19
- /**
20
- * 当前页在数据里的区间(1 起的闭区间行号)。
21
- * 空数据返回 `[0, 0]`(调用方据此显示「共 0 条」而不是「第 0-0 条」)。
22
- */
23
- export declare function pageRange(page: number, pageSize: number, total: number): [number, number];
24
- /**
25
- * 页码条上的项序列(含省略号占位)。
26
- *
27
- * 窗口算法照 MUI 的实现:首尾各固定 `boundaryCount` 页,当前页两侧各留 `siblingCount` 页,
28
- * 中间不足的部分收成 `'gap'`。默认 1 / 1 —— 最多 7 个位置(与 Element Plus `pager-count: 7` 等价)。
29
- *
30
- * 关键细节(各家一致,别改成「有缝就画省略号」):间隔**正好 1 页**时直接显示那个页号,
31
- * 不画省略号,否则会出现 `1 2 … 4` 这种丑态。
32
- */
33
- export declare function pageItems(page: number, pageCount: number, siblingCount?: number, boundaryCount?: number): PageItem[];
34
- /** `showTotal` 的两种写法:`true` 走内置字典,函数则拿到 (总条数, 起始行, 结束行)。 */
35
- export type PageTotalRenderer = (total: number, from: number, to: number) => ReactNode;
36
- //# sourceMappingURL=pagination-logic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination-logic.d.ts","sourceRoot":"","sources":["../../src/ui/pagination-logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,8BAA8B;AAC9B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEzD,yBAAyB;AACzB,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAA;AAErC,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInE;AAED,kDAAkD;AAClD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOzF;AAQD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,SAAI,EAChB,aAAa,SAAI,GAChB,QAAQ,EAAE,CA6BZ;AAED,4DAA4D;AAC5D,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,SAAS,CAAA"}
@@ -1,73 +0,0 @@
1
- /**
2
- * 分页纯逻辑:总页数、页码夹取、省略号窗口、当前页可见区间。
3
- *
4
- * 零 React 运行时依赖(只 `import type`,编译后不留痕迹),可被 node 单测直接引。
5
- *
6
- * 口径照通行的分页约定(Ant Design / MUI / Element Plus 一致):
7
- * 调用方只给「当前页 / 每页条数 / 总条数」,总页数与省略窗口一律由这里算,
8
- * **消费方永远不自己算页数、也不自己拼页码**。
9
- */
10
- /** 总页数:`ceil(total / pageSize)`,至少 1 页(空数据也显示单页)。 */
11
- export function pageCountOf(total, pageSize) {
12
- const size = Math.max(1, Math.floor(pageSize));
13
- const rows = Math.max(0, Math.floor(total));
14
- return Math.max(1, Math.ceil(rows / size));
15
- }
16
- /** 把页码夹回 `[1, pageCount]`(越界 / NaN 一律落到第 1 页)。 */
17
- export function clampPage(page, pageCount) {
18
- const count = Math.max(1, Math.floor(pageCount));
19
- if (!Number.isFinite(page))
20
- return 1;
21
- return Math.min(Math.max(1, Math.floor(page)), count);
22
- }
23
- /**
24
- * 当前页在数据里的区间(1 起的闭区间行号)。
25
- * 空数据返回 `[0, 0]`(调用方据此显示「共 0 条」而不是「第 0-0 条」)。
26
- */
27
- export function pageRange(page, pageSize, total) {
28
- const rows = Math.max(0, Math.floor(total));
29
- if (rows === 0)
30
- return [0, 0];
31
- const size = Math.max(1, Math.floor(pageSize));
32
- const current = clampPage(page, pageCountOf(rows, size));
33
- const from = (current - 1) * size + 1;
34
- return [from, Math.min(rows, from + size - 1)];
35
- }
36
- function range(start, end) {
37
- const out = [];
38
- for (let n = start; n <= end; n += 1)
39
- out.push(n);
40
- return out;
41
- }
42
- /**
43
- * 页码条上的项序列(含省略号占位)。
44
- *
45
- * 窗口算法照 MUI 的实现:首尾各固定 `boundaryCount` 页,当前页两侧各留 `siblingCount` 页,
46
- * 中间不足的部分收成 `'gap'`。默认 1 / 1 —— 最多 7 个位置(与 Element Plus `pager-count: 7` 等价)。
47
- *
48
- * 关键细节(各家一致,别改成「有缝就画省略号」):间隔**正好 1 页**时直接显示那个页号,
49
- * 不画省略号,否则会出现 `1 2 … 4` 这种丑态。
50
- */
51
- export function pageItems(page, pageCount, siblingCount = 1, boundaryCount = 1) {
52
- const count = Math.max(1, Math.floor(pageCount));
53
- const current = clampPage(page, count);
54
- const boundary = Math.max(0, Math.floor(boundaryCount));
55
- const siblings = Math.max(0, Math.floor(siblingCount));
56
- const startPages = range(1, Math.min(boundary, count));
57
- const endPages = range(Math.max(count - boundary + 1, boundary + 1), count);
58
- const siblingsStart = Math.max(Math.min(current - siblings, count - boundary - siblings * 2 - 1), boundary + 2);
59
- const siblingsEnd = Math.min(Math.max(current + siblings, boundary + siblings * 2 + 2), endPages.length > 0 ? endPages[0] - 2 : count - 1);
60
- const items = [...startPages];
61
- if (siblingsStart > boundary + 2)
62
- items.push('gap');
63
- else if (boundary + 1 < count - boundary)
64
- items.push(boundary + 1);
65
- items.push(...range(siblingsStart, siblingsEnd));
66
- if (siblingsEnd < count - boundary - 1)
67
- items.push('gap');
68
- else if (count - boundary > boundary)
69
- items.push(count - boundary);
70
- items.push(...endPages);
71
- return items;
72
- }
73
- //# sourceMappingURL=pagination-logic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination-logic.js","sourceRoot":"","sources":["../../src/ui/pagination-logic.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { PANEL_CSS } from './panel-css.generated.js';
2
- //# sourceMappingURL=panel-css.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panel-css.d.ts","sourceRoot":"","sources":["../../src/ui/panel-css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const PANEL_CSS = "/* \u6D6E\u5C42\u9762\u677F\u76AE\u80A4\uFF082026-11-03 \u7528\u6237\u5B9A\uFF1A\u76AE\u80A4\u7EDF\u4E00\uFF0C\u53EA\u6539\u6837\u5F0F\u4E0D\u52A8\u4EA4\u4E92\uFF09\u3002\n *\n * \u8FD9\u4EFD\u6587\u4EF6\u662F**\u6240\u6709\u300C\u6D6E\u8D77\u6765\u7684\u6846\u300D\u7684\u76AE\u80A4\u771F\u6E90**\u3002\u5B9A\u4F4D\uFF08fixed / absolute\u3001\u8D34\u8C01\u3001\u600E\u4E48\u7FFB\u8F6C\u3001\u591A\u5927\u7684\n * \u5C42\u5E8F\uFF09\u7559\u5728\u5404\u81EA\u63A7\u4EF6\u91CC\uFF0C\u8FD9\u91CC\u53EA\u7BA1\u8868\u9762\u56DB\u4EF6\uFF1A\u5E95\u8272 / \u63CF\u8FB9\u5BBD / \u5706\u89D2 / \u9634\u5F71\u3002\n * \u26A0\uFE0F \u7EC4\u4EF6 CSS \u91CC\u4E0D\u8BB8\u518D\u5199\u8FD9\u56DB\u4E2A\u5B57\u9762\u503C \u2014\u2014 \u60F3\u6539\u5916\u89C2\u5C31\u6539\u8FD9\u91CC\uFF0C\u522B\u5728\u6D88\u8D39\u65B9\u53E6\u8D77\u4E00\u5957\u3002\n *\n * \u4E09\u6863\uFF08\u5DEE\u5F02\u53EA\u5728\u8FD9\u4E09\u6BB5\u5B9A\u4E49\uFF0C\u522B\u5904\u5206\u53C9\uFF09\uFF1A\n * --modal \u5C45\u4E2D\u6A21\u6001\uFF08Modal / ConfirmModal / AlertModal \u5BB6\u65CF\uFF09\n * --popover \u8D34\u951A\u70B9\u7684\u6D6E\u5C42\u9762\u677F\uFF08pickWorkspaceFile \u7684\u9009\u6587\u4EF6\u5F39\u7A97\uFF09\n * --menu \u4E0B\u62C9\u83DC\u5355\uFF08\u6587\u4EF6\u6D4F\u89C8\u5668 \u25BE \u9009\u5C42\u3001Picker \u4E0B\u62C9\uFF09\n *\n * \u4E0D\u5E76\u5165\u4E09\u6863\u7684\uFF1APanelDock \u4E0E SideSheet \u662F**\u8D34\u8FB9\u5BB6\u65CF**\uFF08side-panel.css \u7684\n * .dshpc-side-surface\uFF0Csurface-base\u3001\u65E0\u5916\u63CF\u8FB9\uFF09\u2014\u2014 2026-11-02 \u62CD\u677F\u300C\u4E24\u8005\u76AE\u80A4\u4E00\u6A21\u4E00\u6837\u300D\uFF0C\n * \u4E00\u4E2A\u662F\u5E03\u5C40\u6210\u5458\u3001\u4E00\u4E2A\u662F\u8D34\u8FB9\u62BD\u5C49\uFF0C\u90FD\u4E0D\u662F\u6D6E\u5C42\u3002\n */\n.dshpc-panel{\n background:var(--dshpc-panel-bg);color:var(--dshpc-fg);\n border:var(--dshpc-panel-bw) solid var(--dshpc-border);\n border-radius:var(--dshpc-panel-radius);box-shadow:var(--dshpc-panel-shadow);\n}\n.dshpc-panel--modal{\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:3px;\n --dshpc-panel-radius:var(--dshpc-radius-xl);\n --dshpc-panel-shadow:var(--dshpc-shadow-2);\n overflow:hidden;\n}\n.dshpc-panel--popover{\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:1px;\n --dshpc-panel-radius:var(--dshpc-radius-lg);\n --dshpc-panel-shadow:var(--dshpc-shadow-2);\n overflow:hidden;\n}\n.dshpc-panel--menu{\n /* \u83DC\u5355\u5E95\u4E0E\u6A21\u6001\u540C\u4E00\u5C42\uFF08\u7528\u6237 2026-11-03\uFF1A\u522B\u7528\u9875\u9762\u5E95\u8272\uFF0C\u6697\u8272\u4E0B\u770B\u7740\u5168\u9ED1\uFF09\u3002 */\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:1px;\n --dshpc-panel-radius:var(--dshpc-radius-sm);\n --dshpc-panel-shadow:var(--dshpc-shadow-1);\n}\n\n/* \u6D6E\u5C42\u552F\u4E00\u7684\u5173\u95ED\u94AE\uFF0820\u00D720 \u65B9\u89D2\u56FE\u6807\u4F4D\uFF09\u3002\n \u65E7\u7C7B\u540D .dshpc-overlay-head__close \u4FDD\u7559\u4E3A\u522B\u540D\uFF1A\u6D88\u8D39\u65B9\u5199\u5728\u65E7\u7C7B\u540D\u4E0A\u7684\u8986\u76D6\u4ECD\u751F\u6548\u3002 */\n.dshpc-panel__close,.dshpc-overlay-head__close{\n display:inline-flex;align-items:center;justify-content:center;flex:none;\n width:20px;height:20px;padding:0;border:none;border-radius:var(--dshpc-radius-sm);\n background:transparent;color:var(--dshpc-fg-3);font-family:inherit;font-size:13px;line-height:1;cursor:pointer;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-panel__close:hover,.dshpc-overlay-head__close:hover{background:var(--dshpc-hover);color:var(--dshpc-fg)}\n.dshpc-panel__close:focus-visible,.dshpc-overlay-head__close:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n";
2
- //# sourceMappingURL=panel-css.generated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panel-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/panel-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,qtHAAoqE,CAAA"}
@@ -1,4 +0,0 @@
1
- // ⚠️ 生成物,勿手改。真源 = src/ui/panel.css
2
- // 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
3
- export const PANEL_CSS = "/* 浮层面板皮肤(2026-11-03 用户定:皮肤统一,只改样式不动交互)。\n *\n * 这份文件是**所有「浮起来的框」的皮肤真源**。定位(fixed / absolute、贴谁、怎么翻转、多大的\n * 层序)留在各自控件里,这里只管表面四件:底色 / 描边宽 / 圆角 / 阴影。\n * ⚠️ 组件 CSS 里不许再写这四个字面值 —— 想改外观就改这里,别在消费方另起一套。\n *\n * 三档(差异只在这三段定义,别处分叉):\n * --modal 居中模态(Modal / ConfirmModal / AlertModal 家族)\n * --popover 贴锚点的浮层面板(pickWorkspaceFile 的选文件弹窗)\n * --menu 下拉菜单(文件浏览器 ▾ 选层、Picker 下拉)\n *\n * 不并入三档的:PanelDock 与 SideSheet 是**贴边家族**(side-panel.css 的\n * .dshpc-side-surface,surface-base、无外描边)—— 2026-11-02 拍板「两者皮肤一模一样」,\n * 一个是布局成员、一个是贴边抽屉,都不是浮层。\n */\n.dshpc-panel{\n background:var(--dshpc-panel-bg);color:var(--dshpc-fg);\n border:var(--dshpc-panel-bw) solid var(--dshpc-border);\n border-radius:var(--dshpc-panel-radius);box-shadow:var(--dshpc-panel-shadow);\n}\n.dshpc-panel--modal{\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:3px;\n --dshpc-panel-radius:var(--dshpc-radius-xl);\n --dshpc-panel-shadow:var(--dshpc-shadow-2);\n overflow:hidden;\n}\n.dshpc-panel--popover{\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:1px;\n --dshpc-panel-radius:var(--dshpc-radius-lg);\n --dshpc-panel-shadow:var(--dshpc-shadow-2);\n overflow:hidden;\n}\n.dshpc-panel--menu{\n /* 菜单底与模态同一层(用户 2026-11-03:别用页面底色,暗色下看着全黑)。 */\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:1px;\n --dshpc-panel-radius:var(--dshpc-radius-sm);\n --dshpc-panel-shadow:var(--dshpc-shadow-1);\n}\n\n/* 浮层唯一的关闭钮(20×20 方角图标位)。\n 旧类名 .dshpc-overlay-head__close 保留为别名:消费方写在旧类名上的覆盖仍生效。 */\n.dshpc-panel__close,.dshpc-overlay-head__close{\n display:inline-flex;align-items:center;justify-content:center;flex:none;\n width:20px;height:20px;padding:0;border:none;border-radius:var(--dshpc-radius-sm);\n background:transparent;color:var(--dshpc-fg-3);font-family:inherit;font-size:13px;line-height:1;cursor:pointer;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-panel__close:hover,.dshpc-overlay-head__close:hover{background:var(--dshpc-hover);color:var(--dshpc-fg)}\n.dshpc-panel__close:focus-visible,.dshpc-overlay-head__close:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n";
4
- //# sourceMappingURL=panel-css.generated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panel-css.generated.js","sourceRoot":"","sources":["../../src/ui/panel-css.generated.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,qEAAqE;AACrE,MAAM,CAAC,MAAM,SAAS,GAAG,iqEAAiqE,CAAA"}
@@ -1,2 +0,0 @@
1
- export { PANEL_CSS } from './panel-css.generated.js';
2
- //# sourceMappingURL=panel-css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panel-css.js","sourceRoot":"","sources":["../../src/ui/panel-css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA"}
@@ -1,2 +0,0 @@
1
- export { PANEL_DOCK_CSS } from './panel-dock-css.generated.js';
2
- //# sourceMappingURL=panel-dock-css.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panel-dock-css.d.ts","sourceRoot":"","sources":["../../src/ui/panel-dock-css.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const PANEL_DOCK_CSS = "/* \u505C\u9760\u680F = **\u5E03\u5C40\u6210\u5458**\uFF0C\u4E0D\u662F\u6D6E\u5C42\uFF1A\u5B83\u5360\u5BBD\u5EA6\u3001\u628A\u4E3B\u533A\u771F\u6B63\u6324\u7A84\uFF08\u5144\u5F1F\u9879\u76EE 2026-09-28\uFF1A\n \u300C\u5206\u680F\u538B\u8FC7\u6765\uFF0C\u4E0D\u662F\u76D6\u4E0A\u53BB\u300D\uFF09\u3002\u6240\u4EE5\u8C03\u7528\u65B9\u5FC5\u987B\u628A\u5B83\u653E\u8FDB\u81EA\u5DF1\u7684 flex \u6839\u91CC\u3002\n \u76AE\u80A4\uFF08\u5934\u90E8 / \u62D6\u62FD\u6761 / \u5173\u95ED\u94AE / \u80CC\u666F\u9634\u5F71\uFF09\u5728 side-panel.css\uFF0C\u4E0E SideSheet \u5171\u7528\u3002 */\n.dshpc-dock{display:flex;flex:0 0 auto;align-self:stretch;min-width:0}\n/* dock \u4E0D\u518D\u66FF\u4E3B\u533A\u8BA9\u7F1D\uFF08\u539F --dshpc-dock-gap \u7684 1px margin \u5DF2\u5220\uFF0C\u7528\u6237 2026-11-02\uFF09\uFF1A\n \u6EDA\u52A8\u6761\u4E0E\u5BB9\u5668\u8FB9\u7F18\u7684 1px \u7EDF\u4E00\u7531\u6EDA\u52A8\u5BB9\u5668\u81EA\u5DF1\u7684\u900F\u660E\u8FB9\u6846\u63D0\u4F9B\uFF08\u89C1 style.md \u00A7\u6EDA\u52A8\u6761\u8BA9\u4F4D\uFF09\uFF0C\n \u4E3B\u533A\u5BB9\u5668\u5E26\u4E86\u8BA9\u4F4D\uFF0C\u6EDA\u52A8\u6761\u4E0E\u8FD9\u6761\u5206\u9694\u7EBF\u4E4B\u95F4\u81EA\u7136\u8FD8\u662F 1px\u3002\u522B\u518D\u5F80\u8FD9\u91CC\u52A0 margin\u3002 */\n\n/* \u81EA\u52A8\u52A0\u7684\u5BBF\u4E3B\u884C\uFF08openFilePreview \u52A0 / \u5173\u95ED\u5373\u6458\uFF09\uFF1A\u6D88\u8D39\u65B9\u90A3\u884C\u4E0D\u5FC5\u81EA\u5DF1\u5199 flex\u3002\n \u53EA\u8BA9\u300C\u7B2C\u4E00\u4E2A\u975E\u9884\u89C8\u5B50\u9879\u300D\u5F53\u4E3B\u533A\u4F38\u5C55\uFF0C\u5176\u4F59\u76F4\u63A5\u5B50\u9879\u4E0D\u52A8\uFF08\u9875\u811A\u6761\u3001\u5DE5\u5177\u6761\u4E0D\u8BEF\u4F24\uFF09\uFF1B\n display \u4E0D\u5728\u8FD9\u91CC\u5199\u6B7B \u2014\u2014 \u672C\u6765\u5C31\u662F grid \u7B49\u5E03\u5C40\u7684\u5143\u7D20\u4FDD\u6301\u539F\u6837\uFF0C\u7531 TS \u4FA7\u6309\u8BA1\u7B97\u503C\u8865 flex\u3002 */\n.dshpc-dock-host{min-width:0;min-height:0}\n.dshpc-dock-host>:not([data-dshpc-file-preview]){min-width:0}\n.dshpc-dock-host>:first-child:not([data-dshpc-file-preview]){flex:1 1 auto}\n\n/* \u5355\u680F**\u5360\u4F4D**\uFF1Asticky + \u89C6\u53E3\u9AD8\u8BA9\u5B83\u5728\u9875\u9762\u6EDA\u52A8\u65F6\u4FDD\u6301\u53EF\u89C1\uFF0C\u540C\u65F6\u4ECD\u7136\u5360\u5BBD\u5EA6\u3002\n \u26A0\uFE0F **\u672C\u6761\u523B\u610F\u4E0D\u8BBE z-index**\uFF1A\u5E03\u5C40\u6210\u5458\u4E00\u65E6\u5E26\u6B63 z-index\uFF0C\u5C31\u4F1A\u65E0\u6761\u4EF6\u538B\u8FC7\u5BBF\u4E3B portal \u5230 body \u7684\n \u5F39\u7A97\uFF08\u5144\u5F1F\u9879\u76EE 2026-10-05 \u771F\u673A\u4E8B\u6545\u300C\u4FA7\u8FB9\u680F\u76D6\u4F4F\u5BBF\u4E3B\u8BBE\u7F6E\u5F39\u7A97\u300D\uFF09\u3002\u5C42\u5E8F\u4EA4\u7ED9 DOM \u987A\u5E8F\u88C1\u51B3\u3002\n \u5916\u89C2\u6765\u81EA .dshpc-side-surface\uFF08side-panel.css\uFF09\uFF0C\u8FD9\u91CC\u53EA\u7BA1\u600E\u4E48\u5360\u4F4D\u4E0E\u671D\u54EA\u8FB9\u63CF\u8FB9\u3002 */\n.dshpc-dock__panel{\n position:sticky;top:0;align-self:stretch;\n /* \u9AD8\u5EA6\u9ED8\u8BA4\u89C6\u53E3\u9AD8\uFF08\u6574\u9875\u573A\u666F\uFF09\uFF1B\u5D4C\u5728\u5B9A\u9AD8\u5BB9\u5668\u91CC\u65F6\u7531\u8C03\u7528\u65B9\u7ED9 --dshpc-dock-h\uFF08\u5982 420px / 100%\uFF09\u3002 */\n height:var(--dshpc-dock-h,100vh);max-height:var(--dshpc-dock-h,100vh);\n border-left:1px solid var(--dshpc-border);\n}\n/* \u6536\u8D77\u7684\u51FA\u573A\uFF1A\u5BBD\u5EA6\u6536\u5230 0\u3001\u900F\u660E\u6DE1\u51FA\uFF1B\u843D\u5B9A\u540E\u7EC4\u4EF6\u624D\u771F\u6B63\u6458\u6389\u8FD9\u4E00\u680F\uFF08JS \u5EF6\u65F6 220ms \u914D\u5408\uFF09\u3002 */\n.dshpc-dock__panel--closing{\n width:0!important;min-width:0!important;opacity:0;border-left-width:0;\n transition:width .2s var(--dshpc-ease),opacity .2s var(--dshpc-ease),border-left-width .2s var(--dshpc-ease);\n}\n\n/* \u62D6\u52A8\u671F\uFF1A\u2460 <iframe>\uFF08PDF / HTML \u9884\u89C8\uFF09\u662F\u72EC\u7ACB\u6587\u6863\uFF0C\u4F1A\u541E\u6389\u7236\u6587\u6863\u7684 pointermove\uFF0C\n \u5411\u53F3\u62D6\u8FDB iframe \u5C31\u5361\u6B7B \u2014\u2014 \u6574\u7247\u8BA9\u51FA\u6307\u9488\u4E8B\u4EF6\uFF1B\u2461 contain \u628A\u91CD\u6392\u9694\u79BB\u5728\u680F\u5185\uFF0C\n \u5426\u5219\u6BCF\u5E27\u6539\u5BBD\u5EA6\u90FD\u4F1A\u7275\u52A8\u6574\u9875\u91CD\u6392\uFF08\u5144\u5F1F\u9879\u76EE 2026-10-04 \u771F\u673A\u300C\u632A\u5F88\u4E45\u624D\u52A8\u4E00\u4E0B\u300D\uFF09\u3002 */\n.dshpc-dock.dshpc-dock--resizing iframe{pointer-events:none}\n.dshpc-dock.dshpc-dock--resizing .dshpc-dock__panel{contain:layout paint;will-change:width}\n\n/* \u6536\u8D77\u94AE\uFF1A**\u5F85\u5728\u9762\u677F\u81EA\u5DF1\u7684\u6846\u91CC**\uFF08\u7528\u6237 2026-10-28 \u4E09\u8F6E\uFF1A\u5360\u9762\u677F\u5185\u90E8\u7A7A\u95F4\uFF0C\u4E0D\u4F38\u5230\u5916\u9762\u53BB\uFF09\u3002\n left:0 \u4ECE\u5185\u4FA7\u8D34\u7740\u5206\u9694\u7EBF \u2014\u2014 \u8D34\u7EBF\u7684\u4E00\u8FB9\u4E0D\u63CF\u8FB9\uFF08\u7EBF\u662F\u9762\u677F\u81EA\u5DF1\u7684 border-left\uFF09\uFF0C\u9875\u7B7E\u4E0E\u7EBF\u4E0D\u91CD\u5408\u3002\n 20\u00D744\uFF08\u7528\u6237 2026-10-28 \u56DB\u8F6E\u5B9A\u5C3A\u5BF8\uFF09\uFF1B\u5B9E\u8272\u5E95\uFF08--dshpc-plate\uFF0C\u660E\u6697\u5404\u6709\u5B9E\u503C\uFF09\uFF0Chover \u4EAE\u4E00\u6863\u3002\n padding-right:2px \u662F**\u89C6\u89C9\u5C45\u4E2D**\uFF1A\u53F3\u4FA7\u662F\u5706\u89D2\uFF0C\u7BAD\u5934\u5F80\u76F4\u7EBF\u90A3\u8FB9\u632A 1px\uFF08\u7528\u6237 2026-10-28 \u56DB\u8F6E\uFF09\u3002 */\n.dshpc-dock__collapse{\n position:absolute;left:0;top:50%;transform:translateY(-50%);\n z-index:8;display:inline-flex;align-items:center;justify-content:center;\n width:20px;height:44px;padding:0 2px 0 0;\n border-top:1px solid var(--dshpc-border);\n border-bottom:1px solid var(--dshpc-border);\n border-right:1px solid var(--dshpc-border);\n border-left:none;\n border-radius:0 var(--dshpc-radius-sm) var(--dshpc-radius-sm) 0;\n background:var(--dshpc-plate);color:var(--dshpc-fg-3);\n font-family:inherit;font-size:16px;line-height:1;cursor:pointer;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-dock__collapse:hover{background:var(--dshpc-plate-hover);color:var(--dshpc-fg)}\n.dshpc-dock__collapse:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n\n/* \u6536\u8D77\u540E\u7684\u6D6E\u52A8\u8033\u6735\uFF1A**fixed \u8D34\u53F3\u7F18\u3001\u5782\u76F4\u5C45\u4E2D\u3001\u72EC\u7ACB\u4E8E\u5206\u680F**\uFF08\u7528\u6237 2026-10-28 \u5B9A\u7A3F\uFF1A\n \u5C0F\u9875\u7B7E\u6302\u4E2D\u95F4\u3001\u91CC\u9762\u653E\u9762\u677F\u56FE\u6807\u3001\u4E0D\u663E\u793A\u6587\u5B57\uFF0C\u7BAD\u5934\u4E0E\u6536\u8D77\u94AE\u53CD\u5411\uFF09\u3002\u591A\u4E2A\u6309\u6536\u8D77\u987A\u5E8F\u7EB5\u5411\u5806\u53E0\u3002\n z \u8D70 ear \u6863\uFF08\u9AD8\u4E8E\u5F39\u7A97\u906E\u7F69\uFF0C2026-11-04\uFF09\uFF1A\u9762\u677F\u5728\u5F39\u7A97\u4E0B\u9762\u65F6\uFF0C\u8033\u6735\u4ECD\u662F\u552F\u4E00\u80FD\u70B9\u5230\u7684\u5165\u53E3\u3002\n DOM \u4E0A portal \u5230 body\uFF08PanelDock.ts\uFF09\uFF0C\u5426\u5219\u4F1A\u88AB\u5F39\u7A97\u7684 stacking context \u5173\u5728\u91CC\u9762\u3002 */\n.dshpc-dock__ears{\n position:fixed;top:50%;right:0;transform:translateY(-50%);\n z-index:var(--dshpc-z-ear,1080);\n display:flex;flex-direction:column;gap:8px;align-items:flex-end;\n pointer-events:none;\n}\n.dshpc-dock__ear{\n pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;\n /* \u4E0E\u6536\u8D77\u94AE**\u540C\u5C3A\u5BF8**\uFF0820\u00D744\uFF0C\u7528\u6237 2026-10-28 \u56DB\u8F6E\uFF09\uFF1A\u4E0A/\u4E0B/\u5DE6\u63CF\u8FB9\uFF0C\u8D34\u53F3\u7F18\u7684\u4E00\u4FA7\u4E0D\u63CF\u3002\n \u5B9E\u8272\u5E95\uFF08--dshpc-plate\uFF09\uFF0C\u4E0D\u7528\u900F\u660E\u8272 \u2014\u2014 \u900F\u660E\u5E95\u4E0B\u900F\u51FA\u4E1C\u897F\u5F88\u96BE\u770B\u3002\n padding-left:2px \u662F**\u89C6\u89C9\u5C45\u4E2D**\uFF1A\u5DE6\u4FA7\u662F\u5706\u89D2\uFF0C\u7BAD\u5934\u5F80\u76F4\u7EBF\uFF08\u53F3\u7F18\uFF09\u90A3\u8FB9\u632A 1px\u3002 */\n width:20px;height:44px;box-sizing:border-box;padding:0 0 0 2px;\n border-top:1px solid var(--dshpc-border);\n border-bottom:1px solid var(--dshpc-border);\n border-left:1px solid var(--dshpc-border);\n border-right:none;\n border-radius:var(--dshpc-radius-sm) 0 0 var(--dshpc-radius-sm);\n background:var(--dshpc-plate);color:var(--dshpc-fg-2);\n cursor:pointer;font-family:inherit;line-height:1;\n animation:dshpc-ear-in .2s var(--dshpc-ease);\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n/* \u5165\u573A\uFF1A\u4ECE\u53F3\u7F18\u5916\u6ED1\u8FDB\u6765\uFF0C\u522B\u300C\u7A81\u7136\u51FA\u73B0\u300D\uFF08\u7528\u6237 2026-10-28\uFF09\u3002 */\n@keyframes dshpc-ear-in{from{opacity:0;transform:translateX(14px)}}\n.dshpc-dock__ear:hover{background:var(--dshpc-plate-hover);color:var(--dshpc-fg)}\n.dshpc-dock__ear:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* \u4E0E\u6536\u8D77\u94AE\u7684\u7BAD\u5934\u540C\u4E00\u5B57\u53F7\uFF0816px\uFF09\uFF1A\u6536\u8FDB\u53BB\u524D\u540E\u7BAD\u5934\u4E00\u6A21\u4E00\u6837\u5927\uFF08\u7528\u6237 2026-10-28\uFF09\u3002 */\n.dshpc-dock__ear-arrow{font-size:16px;color:var(--dshpc-fg-3)}\n.dshpc-dock__ear:hover .dshpc-dock__ear-arrow{color:var(--dshpc-fg)}\n/* \u52A8\u6548\u793C\u8C8C\uFF1A\u7CFB\u7EDF\u58F0\u660E\u51CF\u5C11\u52A8\u6548\u65F6\u5168\u90E8\u5173\u6389\uFF0C\u6536\u8D77\u9000\u5316\u4E3A\u77AC\u65F6\u3001\u529F\u80FD\u4E0D\u53D7\u5F71\u54CD\u3002 */\n@media (prefers-reduced-motion:reduce){\n .dshpc-dock__panel{animation:none}\n .dshpc-dock__panel--closing{transition:none}\n .dshpc-dock__ear{animation:none}\n}\n";
2
- //# sourceMappingURL=panel-dock-css.generated.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panel-dock-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/panel-dock-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,y+SAAg2J,CAAA"}
@@ -1,4 +0,0 @@
1
- // ⚠️ 生成物,勿手改。真源 = src/ui/panel-dock.css
2
- // 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
3
- export const PANEL_DOCK_CSS = "/* 停靠栏 = **布局成员**,不是浮层:它占宽度、把主区真正挤窄(兄弟项目 2026-09-28:\n 「分栏压过来,不是盖上去」)。所以调用方必须把它放进自己的 flex 根里。\n 皮肤(头部 / 拖拽条 / 关闭钮 / 背景阴影)在 side-panel.css,与 SideSheet 共用。 */\n.dshpc-dock{display:flex;flex:0 0 auto;align-self:stretch;min-width:0}\n/* dock 不再替主区让缝(原 --dshpc-dock-gap 的 1px margin 已删,用户 2026-11-02):\n 滚动条与容器边缘的 1px 统一由滚动容器自己的透明边框提供(见 style.md §滚动条让位),\n 主区容器带了让位,滚动条与这条分隔线之间自然还是 1px。别再往这里加 margin。 */\n\n/* 自动加的宿主行(openFilePreview 加 / 关闭即摘):消费方那行不必自己写 flex。\n 只让「第一个非预览子项」当主区伸展,其余直接子项不动(页脚条、工具条不误伤);\n display 不在这里写死 —— 本来就是 grid 等布局的元素保持原样,由 TS 侧按计算值补 flex。 */\n.dshpc-dock-host{min-width:0;min-height:0}\n.dshpc-dock-host>:not([data-dshpc-file-preview]){min-width:0}\n.dshpc-dock-host>:first-child:not([data-dshpc-file-preview]){flex:1 1 auto}\n\n/* 单栏**占位**:sticky + 视口高让它在页面滚动时保持可见,同时仍然占宽度。\n ⚠️ **本条刻意不设 z-index**:布局成员一旦带正 z-index,就会无条件压过宿主 portal 到 body 的\n 弹窗(兄弟项目 2026-10-05 真机事故「侧边栏盖住宿主设置弹窗」)。层序交给 DOM 顺序裁决。\n 外观来自 .dshpc-side-surface(side-panel.css),这里只管怎么占位与朝哪边描边。 */\n.dshpc-dock__panel{\n position:sticky;top:0;align-self:stretch;\n /* 高度默认视口高(整页场景);嵌在定高容器里时由调用方给 --dshpc-dock-h(如 420px / 100%)。 */\n height:var(--dshpc-dock-h,100vh);max-height:var(--dshpc-dock-h,100vh);\n border-left:1px solid var(--dshpc-border);\n}\n/* 收起的出场:宽度收到 0、透明淡出;落定后组件才真正摘掉这一栏(JS 延时 220ms 配合)。 */\n.dshpc-dock__panel--closing{\n width:0!important;min-width:0!important;opacity:0;border-left-width:0;\n transition:width .2s var(--dshpc-ease),opacity .2s var(--dshpc-ease),border-left-width .2s var(--dshpc-ease);\n}\n\n/* 拖动期:① <iframe>(PDF / HTML 预览)是独立文档,会吞掉父文档的 pointermove,\n 向右拖进 iframe 就卡死 —— 整片让出指针事件;② contain 把重排隔离在栏内,\n 否则每帧改宽度都会牵动整页重排(兄弟项目 2026-10-04 真机「挪很久才动一下」)。 */\n.dshpc-dock.dshpc-dock--resizing iframe{pointer-events:none}\n.dshpc-dock.dshpc-dock--resizing .dshpc-dock__panel{contain:layout paint;will-change:width}\n\n/* 收起钮:**待在面板自己的框里**(用户 2026-10-28 三轮:占面板内部空间,不伸到外面去)。\n left:0 从内侧贴着分隔线 —— 贴线的一边不描边(线是面板自己的 border-left),页签与线不重合。\n 20×44(用户 2026-10-28 四轮定尺寸);实色底(--dshpc-plate,明暗各有实值),hover 亮一档。\n padding-right:2px 是**视觉居中**:右侧是圆角,箭头往直线那边挪 1px(用户 2026-10-28 四轮)。 */\n.dshpc-dock__collapse{\n position:absolute;left:0;top:50%;transform:translateY(-50%);\n z-index:8;display:inline-flex;align-items:center;justify-content:center;\n width:20px;height:44px;padding:0 2px 0 0;\n border-top:1px solid var(--dshpc-border);\n border-bottom:1px solid var(--dshpc-border);\n border-right:1px solid var(--dshpc-border);\n border-left:none;\n border-radius:0 var(--dshpc-radius-sm) var(--dshpc-radius-sm) 0;\n background:var(--dshpc-plate);color:var(--dshpc-fg-3);\n font-family:inherit;font-size:16px;line-height:1;cursor:pointer;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-dock__collapse:hover{background:var(--dshpc-plate-hover);color:var(--dshpc-fg)}\n.dshpc-dock__collapse:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n\n/* 收起后的浮动耳朵:**fixed 贴右缘、垂直居中、独立于分栏**(用户 2026-10-28 定稿:\n 小页签挂中间、里面放面板图标、不显示文字,箭头与收起钮反向)。多个按收起顺序纵向堆叠。\n z 走 ear 档(高于弹窗遮罩,2026-11-04):面板在弹窗下面时,耳朵仍是唯一能点到的入口。\n DOM 上 portal 到 body(PanelDock.ts),否则会被弹窗的 stacking context 关在里面。 */\n.dshpc-dock__ears{\n position:fixed;top:50%;right:0;transform:translateY(-50%);\n z-index:var(--dshpc-z-ear,1080);\n display:flex;flex-direction:column;gap:8px;align-items:flex-end;\n pointer-events:none;\n}\n.dshpc-dock__ear{\n pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;\n /* 与收起钮**同尺寸**(20×44,用户 2026-10-28 四轮):上/下/左描边,贴右缘的一侧不描。\n 实色底(--dshpc-plate),不用透明色 —— 透明底下透出东西很难看。\n padding-left:2px 是**视觉居中**:左侧是圆角,箭头往直线(右缘)那边挪 1px。 */\n width:20px;height:44px;box-sizing:border-box;padding:0 0 0 2px;\n border-top:1px solid var(--dshpc-border);\n border-bottom:1px solid var(--dshpc-border);\n border-left:1px solid var(--dshpc-border);\n border-right:none;\n border-radius:var(--dshpc-radius-sm) 0 0 var(--dshpc-radius-sm);\n background:var(--dshpc-plate);color:var(--dshpc-fg-2);\n cursor:pointer;font-family:inherit;line-height:1;\n animation:dshpc-ear-in .2s var(--dshpc-ease);\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n/* 入场:从右缘外滑进来,别「突然出现」(用户 2026-10-28)。 */\n@keyframes dshpc-ear-in{from{opacity:0;transform:translateX(14px)}}\n.dshpc-dock__ear:hover{background:var(--dshpc-plate-hover);color:var(--dshpc-fg)}\n.dshpc-dock__ear:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* 与收起钮的箭头同一字号(16px):收进去前后箭头一模一样大(用户 2026-10-28)。 */\n.dshpc-dock__ear-arrow{font-size:16px;color:var(--dshpc-fg-3)}\n.dshpc-dock__ear:hover .dshpc-dock__ear-arrow{color:var(--dshpc-fg)}\n/* 动效礼貌:系统声明减少动效时全部关掉,收起退化为瞬时、功能不受影响。 */\n@media (prefers-reduced-motion:reduce){\n .dshpc-dock__panel{animation:none}\n .dshpc-dock__panel--closing{transition:none}\n .dshpc-dock__ear{animation:none}\n}\n";
4
- //# sourceMappingURL=panel-dock-css.generated.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panel-dock-css.generated.js","sourceRoot":"","sources":["../../src/ui/panel-dock-css.generated.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,qEAAqE;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,61JAA61J,CAAA"}
@@ -1,4 +0,0 @@
1
- // PanelDock 样式(停靠栏 / 面板 / 拖拽条)。类名固定 dshpc-dock*;
2
- // 颜色一律吃 token,深色由 design 的 token 深色段自动生效(不写死颜色值)。
3
- export { PANEL_DOCK_CSS } from './panel-dock-css.generated.js';
4
- //# sourceMappingURL=panel-dock-css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panel-dock-css.js","sourceRoot":"","sources":["../../src/ui/panel-dock-css.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,kDAAkD;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA"}
@@ -1,67 +0,0 @@
1
- /**
2
- * 停靠面板的状态逻辑(纯函数,零 React / 零 DOM)。
3
- *
4
- * 只记三件事:**哪些面板开着**、**每栏多宽**、**哪些收起成了耳朵**。
5
- * 内容与头部不在这里——那是调用方在页面里声明的东西(`<DockPanel id="…">…</DockPanel>`),
6
- * 与 Ant Design `Tabs` 的 `activeKey` + `<TabPane>` 同一分工:
7
- * **显隐归状态,结构归 children**。
8
- *
9
- * 口径(用户 2026-10-20 定案):
10
- * · 组名 = 窗口,一对一:`open('A')` 再 `open('A')` 只是重复打开,不新增一栏;
11
- * · 未到上限 ⇒ 追加;到上限 ⇒ 返回 `{ ok: false, reason: 'limit' }`,不静默丢弃;
12
- * · 关一栏即腾位,之后可以开新组名;
13
- * · 没有多份同名、没有自动淘汰、没有 tab 切换。
14
- *
15
- * 收起(用户 2026-10-28 定案)= **面板退出布局、换成一只独立的固定耳朵**,不是把栏宽缩细:
16
- * · `collapsePanel` 把组名从 `ids` 移到 `collapsed`,**宽度留着**(展开要回到原宽);
17
- * · 耳朵是另一块 fixed 浮层,不在这里表达布局——这里只记「谁收起了」。
18
- */
19
- /** 默认窗口的保留名:`open()` 不传 id 时用它。 */
20
- export declare const DEFAULT_PANEL_ID = "default";
21
- export interface DockState {
22
- /** 打开顺序即数组顺序(稳定,不随重开变化)。 */
23
- ids: string[];
24
- /** 每栏宽度(px);没有记录的栏由组件用它的 `width` 兜底。 */
25
- widths: Record<string, number>;
26
- /** 已收起(变成右侧浮动耳朵)的组名,按收起顺序;宽度仍在 `widths` 里等展开还原。 */
27
- collapsed: string[];
28
- }
29
- export type OpenResult = {
30
- ok: true;
31
- id: string;
32
- created: boolean;
33
- } | {
34
- ok: false;
35
- id: string;
36
- reason: 'limit';
37
- };
38
- export declare function emptyDock(): DockState;
39
- /** 夹到 [min, max];`max` 缺省表示不设上限。NaN / Infinity 一律落回 min。 */
40
- export declare function clampWidth(value: number, min: number, max?: number): number;
41
- export declare function isOpen(state: DockState, id: string): boolean;
42
- export declare function isCollapsed(state: DockState, id: string): boolean;
43
- /**
44
- * 打开一栏。已开 ⇒ 原样返回(`created: false`,位置不变);
45
- * 未开且已满 ⇒ 返回失败结果,状态不动。打开即撤销同名耳朵。
46
- */
47
- export declare function openPanel(state: DockState, id: string, maxPanels: number): {
48
- state: DockState;
49
- result: OpenResult;
50
- };
51
- /**
52
- * 关一栏;不存在即原样返回(幂等)。宽度记忆随栏一起丢弃。
53
- * 对已收起的耳朵也生效 —— 「关闭」= 彻底不留,耳朵一起抹掉(用户 2026-10-28 口径)。
54
- */
55
- export declare function closePanel(state: DockState, id: string): DockState;
56
- /** 记某栏宽度(已夹过);值没变时原样返回,避免无谓重渲染。 */
57
- export declare function setPanelWidth(state: DockState, id: string, width: number): DockState;
58
- /**
59
- * 收起一栏:退出布局(从 `ids` 移除,**立即不占宽**),转入耳朵列表。
60
- * 宽度**不删**——耳朵展开时要回到原宽。只对开着的栏生效。
61
- */
62
- export declare function collapsePanel(state: DockState, id: string): DockState;
63
- /** 展开耳朵:移出耳朵列表、回到打开列表末尾;宽度照旧(`collapsePanel` 没删)。 */
64
- export declare function expandPanel(state: DockState, id: string): DockState;
65
- /** 其他栏宽度之和(算「这一栏最多能拖多宽」用)。 */
66
- export declare function othersWidth(state: DockState, id: string, fallbackOf: (panelId: string) => number): number;
67
- //# sourceMappingURL=panel-dock-logic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panel-dock-logic.d.ts","sourceRoot":"","sources":["../../src/ui/panel-dock-logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,mCAAmC;AACnC,eAAO,MAAM,gBAAgB,YAAY,CAAA;AAEzC,MAAM,WAAW,SAAS;IACxB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,mDAAmD;IACnD,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAA;AAE9C,wBAAgB,SAAS,IAAI,SAAS,CAErC;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAI3E;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAW1C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAWlE;AAED,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAIpF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAOrE;AAED,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAOnE;AAED,8BAA8B;AAC9B,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAKzG"}
@@ -1,110 +0,0 @@
1
- /**
2
- * 停靠面板的状态逻辑(纯函数,零 React / 零 DOM)。
3
- *
4
- * 只记三件事:**哪些面板开着**、**每栏多宽**、**哪些收起成了耳朵**。
5
- * 内容与头部不在这里——那是调用方在页面里声明的东西(`<DockPanel id="…">…</DockPanel>`),
6
- * 与 Ant Design `Tabs` 的 `activeKey` + `<TabPane>` 同一分工:
7
- * **显隐归状态,结构归 children**。
8
- *
9
- * 口径(用户 2026-10-20 定案):
10
- * · 组名 = 窗口,一对一:`open('A')` 再 `open('A')` 只是重复打开,不新增一栏;
11
- * · 未到上限 ⇒ 追加;到上限 ⇒ 返回 `{ ok: false, reason: 'limit' }`,不静默丢弃;
12
- * · 关一栏即腾位,之后可以开新组名;
13
- * · 没有多份同名、没有自动淘汰、没有 tab 切换。
14
- *
15
- * 收起(用户 2026-10-28 定案)= **面板退出布局、换成一只独立的固定耳朵**,不是把栏宽缩细:
16
- * · `collapsePanel` 把组名从 `ids` 移到 `collapsed`,**宽度留着**(展开要回到原宽);
17
- * · 耳朵是另一块 fixed 浮层,不在这里表达布局——这里只记「谁收起了」。
18
- */
19
- /** 默认窗口的保留名:`open()` 不传 id 时用它。 */
20
- export const DEFAULT_PANEL_ID = 'default';
21
- export function emptyDock() {
22
- return { ids: [], widths: {}, collapsed: [] };
23
- }
24
- /** 夹到 [min, max];`max` 缺省表示不设上限。NaN / Infinity 一律落回 min。 */
25
- export function clampWidth(value, min, max) {
26
- const wide = Number.isFinite(value) ? value : min;
27
- const capped = max === undefined || !Number.isFinite(max) ? wide : Math.min(wide, max);
28
- return Math.max(min, Math.round(capped));
29
- }
30
- export function isOpen(state, id) {
31
- return state.ids.includes(id);
32
- }
33
- export function isCollapsed(state, id) {
34
- return state.collapsed.includes(id);
35
- }
36
- /**
37
- * 打开一栏。已开 ⇒ 原样返回(`created: false`,位置不变);
38
- * 未开且已满 ⇒ 返回失败结果,状态不动。打开即撤销同名耳朵。
39
- */
40
- export function openPanel(state, id, maxPanels) {
41
- if (isOpen(state, id))
42
- return { state, result: { ok: true, id, created: false } };
43
- if (state.ids.length >= maxPanels)
44
- return { state, result: { ok: false, id, reason: 'limit' } };
45
- return {
46
- state: {
47
- ids: [...state.ids, id],
48
- widths: state.widths,
49
- collapsed: state.collapsed.filter((item) => item !== id),
50
- },
51
- result: { ok: true, id, created: true },
52
- };
53
- }
54
- /**
55
- * 关一栏;不存在即原样返回(幂等)。宽度记忆随栏一起丢弃。
56
- * 对已收起的耳朵也生效 —— 「关闭」= 彻底不留,耳朵一起抹掉(用户 2026-10-28 口径)。
57
- */
58
- export function closePanel(state, id) {
59
- const open = isOpen(state, id);
60
- const ear = isCollapsed(state, id);
61
- if (!open && !ear)
62
- return state;
63
- const widths = { ...state.widths };
64
- delete widths[id];
65
- return {
66
- ids: open ? state.ids.filter((item) => item !== id) : state.ids,
67
- widths,
68
- collapsed: ear ? state.collapsed.filter((item) => item !== id) : state.collapsed,
69
- };
70
- }
71
- /** 记某栏宽度(已夹过);值没变时原样返回,避免无谓重渲染。 */
72
- export function setPanelWidth(state, id, width) {
73
- if (!isOpen(state, id))
74
- return state;
75
- if (state.widths[id] === width)
76
- return state;
77
- return { ids: state.ids, widths: { ...state.widths, [id]: width }, collapsed: state.collapsed };
78
- }
79
- /**
80
- * 收起一栏:退出布局(从 `ids` 移除,**立即不占宽**),转入耳朵列表。
81
- * 宽度**不删**——耳朵展开时要回到原宽。只对开着的栏生效。
82
- */
83
- export function collapsePanel(state, id) {
84
- if (!isOpen(state, id))
85
- return state;
86
- return {
87
- ids: state.ids.filter((item) => item !== id),
88
- widths: state.widths,
89
- collapsed: state.collapsed.includes(id) ? state.collapsed : [...state.collapsed, id],
90
- };
91
- }
92
- /** 展开耳朵:移出耳朵列表、回到打开列表末尾;宽度照旧(`collapsePanel` 没删)。 */
93
- export function expandPanel(state, id) {
94
- if (!isCollapsed(state, id))
95
- return state;
96
- return {
97
- ids: state.ids.includes(id) ? state.ids : [...state.ids, id],
98
- widths: state.widths,
99
- collapsed: state.collapsed.filter((item) => item !== id),
100
- };
101
- }
102
- /** 其他栏宽度之和(算「这一栏最多能拖多宽」用)。 */
103
- export function othersWidth(state, id, fallbackOf) {
104
- return state.ids.reduce((sum, item) => {
105
- if (item === id)
106
- return sum;
107
- return sum + (state.widths[item] ?? fallbackOf(item));
108
- }, 0);
109
- }
110
- //# sourceMappingURL=panel-dock-logic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panel-dock-logic.js","sourceRoot":"","sources":["../../src/ui/panel-dock-logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,mCAAmC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAA;AAezC,MAAM,UAAU,SAAS;IACvB,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;AAC/C,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,GAAW,EAAE,GAAY;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA;IACjD,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACtF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAgB,EAAE,EAAU;IACjD,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,EAAU;IACtD,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,KAAgB,EAChB,EAAU,EACV,SAAiB;IAEjB,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAA;IACjF,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAA;IAC/F,OAAO;QACL,KAAK,EAAE;YACL,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;YACvB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SACzD;QACD,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KACxC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAgB,EAAE,EAAU;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC9B,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAClC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA;IAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAA;IAClC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;IACjB,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;QAC/D,MAAM;QACN,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;KACjF,CAAA;AACH,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,aAAa,CAAC,KAAgB,EAAE,EAAU,EAAE,KAAa;IACvE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAAE,OAAO,KAAK,CAAA;IACpC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IAC5C,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;AACjG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB,EAAE,EAAU;IACxD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAAE,OAAO,KAAK,CAAA;IACpC,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC5C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;KACrF,CAAA;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,EAAU;IACtD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5D,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;KACzD,CAAA;AACH,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,EAAU,EAAE,UAAuC;IAC/F,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACpC,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,GAAG,CAAA;QAC3B,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IACvD,CAAC,EAAE,CAAC,CAAC,CAAA;AACP,CAAC"}
@@ -1,41 +0,0 @@
1
- /**
2
- * 浮层面板公共件(2026-11-03):`PanelSurface` = 皮肤载体,`PanelClose` = 唯一那枚关闭钮。
3
- *
4
- * 分工(用户 2026-11-03 定,目的就是「样式统一但各家用各家自己的逻辑」):
5
- * - **定位**留在各自控件:Modal 居中、选文件弹窗贴锚点并翻转、菜单挂在触发器下方;
6
- * - **表面**全部来自 `panel.css` 的三档(modal / popover / menu),组件里不许再写
7
- * 底色 / 描边 / 圆角 / 阴影。
8
- *
9
- * 为什么不做成「一个万能 Panel 组件」:那会把定位也吞进来,等于要求所有浮层同一套交互。
10
- * 这里只统一皮肤,不统一行为。
11
- */
12
- import { type CSSProperties, type ReactNode } from 'react';
13
- /** 面板档位:居中模态 / 贴锚点面板 / 下拉菜单。 */
14
- export type PanelTier = 'modal' | 'popover' | 'menu';
15
- export interface PanelSurfaceProps {
16
- tier: PanelTier;
17
- /** 容器角色(`dialog` / `menu` 这类;不传则不写 role)。 */
18
- role?: string;
19
- /** 追加类名:**只允许补布局 / 定位**,皮肤归档位管。 */
20
- className?: string;
21
- /** 内联样式:同样只放定位与尺寸。 */
22
- style?: CSSProperties;
23
- /** 原样铺到节点上的属性(`aria-*` / `data-*` 这类钩子)。 */
24
- attrs?: Record<string, string | number | undefined>;
25
- /** 面板上的点击不再冒到遮罩(否则点正文等于点了外部,会把自己关掉)。 */
26
- stopPropagation?: boolean;
27
- children?: ReactNode;
28
- }
29
- /** 皮肤载体:`dshpc-panel` + 档位类,别的地方不要手拼这两个类。 */
30
- export declare function PanelSurface(props: PanelSurfaceProps): ReactNode;
31
- export interface PanelCloseProps {
32
- /** 无障碍名(走调用方的内置字典)。 */
33
- label: string;
34
- onClick: () => void;
35
- /** 自定义图标(默认 ✕)。 */
36
- icon?: ReactNode;
37
- className?: string;
38
- }
39
- /** 浮层唯一那枚关闭钮(20×20 方角);位置由各自的头部决定,这个件不管定位。 */
40
- export declare function PanelClose(props: PanelCloseProps): ReactNode;
41
- //# sourceMappingURL=panel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/ui/panel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAI9E,gCAAgC;AAChC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AAEpD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAA;IACf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sBAAsB;IACtB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAA;IACnD,wCAAwC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,6CAA6C;AAC7C,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAchE;AAED,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,mBAAmB;IACnB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,CAY5D"}
package/dist/ui/panel.js DELETED
@@ -1,37 +0,0 @@
1
- /**
2
- * 浮层面板公共件(2026-11-03):`PanelSurface` = 皮肤载体,`PanelClose` = 唯一那枚关闭钮。
3
- *
4
- * 分工(用户 2026-11-03 定,目的就是「样式统一但各家用各家自己的逻辑」):
5
- * - **定位**留在各自控件:Modal 居中、选文件弹窗贴锚点并翻转、菜单挂在触发器下方;
6
- * - **表面**全部来自 `panel.css` 的三档(modal / popover / menu),组件里不许再写
7
- * 底色 / 描边 / 圆角 / 阴影。
8
- *
9
- * 为什么不做成「一个万能 Panel 组件」:那会把定位也吞进来,等于要求所有浮层同一套交互。
10
- * 这里只统一皮肤,不统一行为。
11
- */
12
- import { createElement as h } from 'react';
13
- import { ensureComponentStyles } from './css.js';
14
- import { PANEL_CSS } from './panel-css.js';
15
- /** 皮肤载体:`dshpc-panel` + 档位类,别的地方不要手拼这两个类。 */
16
- export function PanelSurface(props) {
17
- ensureComponentStyles('panel', PANEL_CSS);
18
- const className = `dshpc-panel dshpc-panel--${props.tier}${props.className === undefined || props.className === '' ? '' : ` ${props.className}`}`;
19
- return h('div', {
20
- ...props.attrs,
21
- className,
22
- style: props.style,
23
- role: props.role,
24
- onClick: props.stopPropagation === true ? (event) => event.stopPropagation() : undefined,
25
- }, props.children ?? null);
26
- }
27
- /** 浮层唯一那枚关闭钮(20×20 方角);位置由各自的头部决定,这个件不管定位。 */
28
- export function PanelClose(props) {
29
- ensureComponentStyles('panel', PANEL_CSS);
30
- return h('button', {
31
- type: 'button',
32
- className: `dshpc-panel__close${props.className === undefined ? '' : ` ${props.className}`}`,
33
- 'aria-label': props.label,
34
- onClick: () => props.onClick(),
35
- }, props.icon ?? '✕');
36
- }
37
- //# sourceMappingURL=panel.js.map