sky-ui-kit 0.1.6 → 0.1.8

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 (347) hide show
  1. package/README.md +5 -0
  2. package/components.json +194 -2
  3. package/dist/chunks/UiScrollbar-67b064c7.js +182 -0
  4. package/dist/components/DefenseMapLayout.vue.d.ts +16 -3
  5. package/dist/components/MapPageLayout.vue.d.ts +58 -0
  6. package/dist/components/ModelWorkspace.vue.d.ts +24 -0
  7. package/dist/components/ModelWorkspaceHeader.vue.d.ts +19 -0
  8. package/dist/components/ModelWorkspacePanel.vue.d.ts +22 -0
  9. package/dist/components/icons.d.ts +2 -0
  10. package/dist/components/index.d.ts +245 -5
  11. package/dist/components.js +2502 -5617
  12. package/dist/entries/AppSelect.d.ts +1 -0
  13. package/dist/entries/AppSelect.js +10 -0
  14. package/dist/entries/AtlasMapTitle.d.ts +1 -0
  15. package/dist/entries/AtlasMapTitle.js +10 -0
  16. package/dist/entries/AtlasProcessChart.d.ts +1 -0
  17. package/dist/entries/AtlasProcessChart.js +10 -0
  18. package/dist/entries/AtlasProcessPanel.d.ts +1 -0
  19. package/dist/entries/AtlasProcessPanel.js +10 -0
  20. package/dist/entries/AtlasRankingPanel.d.ts +1 -0
  21. package/dist/entries/AtlasRankingPanel.js +10 -0
  22. package/dist/entries/AtlasRightToggleButton.d.ts +1 -0
  23. package/dist/entries/AtlasRightToggleButton.js +10 -0
  24. package/dist/entries/DefenseMapLayout.d.ts +1 -0
  25. package/dist/entries/DefenseMapLayout.js +10 -0
  26. package/dist/entries/GlobalMapLayerDock.d.ts +1 -0
  27. package/dist/entries/GlobalMapLayerDock.js +10 -0
  28. package/dist/entries/ManagementFormDialog.d.ts +1 -0
  29. package/dist/entries/ManagementFormDialog.js +10 -0
  30. package/dist/entries/ManagementResourceLayout.d.ts +1 -0
  31. package/dist/entries/ManagementResourceLayout.js +10 -0
  32. package/dist/entries/MapBottomProcessPanel.d.ts +1 -0
  33. package/dist/entries/MapBottomProcessPanel.js +10 -0
  34. package/dist/entries/MapEditorDialog.d.ts +1 -0
  35. package/dist/entries/MapEditorDialog.js +10 -0
  36. package/dist/entries/MapFeatureListPanel.d.ts +1 -0
  37. package/dist/entries/MapFeatureListPanel.js +10 -0
  38. package/dist/entries/MapLayerControl.d.ts +1 -0
  39. package/dist/entries/MapLayerControl.js +10 -0
  40. package/dist/entries/MapOperationPanel.d.ts +1 -0
  41. package/dist/entries/MapOperationPanel.js +10 -0
  42. package/dist/entries/MapPageLayout.d.ts +1 -0
  43. package/dist/entries/MapPageLayout.js +10 -0
  44. package/dist/entries/MapPointProcessDialog.d.ts +1 -0
  45. package/dist/entries/MapPointProcessDialog.js +10 -0
  46. package/dist/entries/MapSchemeSelect.d.ts +1 -0
  47. package/dist/entries/MapSchemeSelect.js +10 -0
  48. package/dist/entries/MapSideMenu.d.ts +1 -0
  49. package/dist/entries/MapSideMenu.js +10 -0
  50. package/dist/entries/MapTimeline.d.ts +1 -0
  51. package/dist/entries/MapTimeline.js +10 -0
  52. package/dist/entries/MapTools.d.ts +1 -0
  53. package/dist/entries/MapTools.js +10 -0
  54. package/dist/entries/MapValueLegend.d.ts +1 -0
  55. package/dist/entries/MapValueLegend.js +10 -0
  56. package/dist/entries/MapWorkspacePanel.d.ts +1 -0
  57. package/dist/entries/MapWorkspacePanel.js +10 -0
  58. package/dist/entries/MetricCard.d.ts +1 -0
  59. package/dist/entries/MetricCard.js +10 -0
  60. package/dist/entries/ModelWorkspace.d.ts +1 -0
  61. package/dist/entries/ModelWorkspace.js +10 -0
  62. package/dist/entries/ModelWorkspaceHeader.d.ts +1 -0
  63. package/dist/entries/ModelWorkspaceHeader.js +10 -0
  64. package/dist/entries/ModelWorkspacePanel.d.ts +1 -0
  65. package/dist/entries/ModelWorkspacePanel.js +10 -0
  66. package/dist/entries/NationalHydroSidebar.d.ts +1 -0
  67. package/dist/entries/NationalHydroSidebar.js +10 -0
  68. package/dist/entries/ProcessChart.d.ts +1 -0
  69. package/dist/entries/ProcessChart.js +10 -0
  70. package/dist/entries/ProcessDataTable.d.ts +1 -0
  71. package/dist/entries/ProcessDataTable.js +10 -0
  72. package/dist/entries/ProjectMenu.d.ts +1 -0
  73. package/dist/entries/ProjectMenu.js +10 -0
  74. package/dist/entries/RainfallProcessChart.d.ts +1 -0
  75. package/dist/entries/RainfallProcessChart.js +10 -0
  76. package/dist/entries/RainfallRankingTable.d.ts +1 -0
  77. package/dist/entries/RainfallRankingTable.js +10 -0
  78. package/dist/entries/SpaceAnalysisPanel.d.ts +1 -0
  79. package/dist/entries/SpaceAnalysisPanel.js +10 -0
  80. package/dist/entries/SpatialScopeInput.d.ts +1 -0
  81. package/dist/entries/SpatialScopeInput.js +10 -0
  82. package/dist/entries/StationComparisonPanel.d.ts +1 -0
  83. package/dist/entries/StationComparisonPanel.js +10 -0
  84. package/dist/entries/SvgIcon.d.ts +1 -0
  85. package/dist/entries/SvgIcon.js +10 -0
  86. package/dist/entries/TemplateLayout.d.ts +1 -0
  87. package/dist/entries/TemplateLayout.js +10 -0
  88. package/dist/entries/TimeRangeQuickSelect.d.ts +1 -0
  89. package/dist/entries/TimeRangeQuickSelect.js +10 -0
  90. package/dist/entries/TreeSelectPanel.d.ts +1 -0
  91. package/dist/entries/TreeSelectPanel.js +10 -0
  92. package/dist/entries/UiAffix.d.ts +1 -0
  93. package/dist/entries/UiAffix.js +7 -0
  94. package/dist/entries/UiAlert.d.ts +1 -0
  95. package/dist/entries/UiAlert.js +7 -0
  96. package/dist/entries/UiAnchor.d.ts +1 -0
  97. package/dist/entries/UiAnchor.js +7 -0
  98. package/dist/entries/UiAnchorLink.d.ts +1 -0
  99. package/dist/entries/UiAnchorLink.js +7 -0
  100. package/dist/entries/UiAside.d.ts +1 -0
  101. package/dist/entries/UiAside.js +7 -0
  102. package/dist/entries/UiAutoResizer.d.ts +1 -0
  103. package/dist/entries/UiAutoResizer.js +7 -0
  104. package/dist/entries/UiAutocomplete.d.ts +1 -0
  105. package/dist/entries/UiAutocomplete.js +7 -0
  106. package/dist/entries/UiAvatar.d.ts +1 -0
  107. package/dist/entries/UiAvatar.js +7 -0
  108. package/dist/entries/UiAvatarGroup.d.ts +1 -0
  109. package/dist/entries/UiAvatarGroup.js +7 -0
  110. package/dist/entries/UiBacktop.d.ts +1 -0
  111. package/dist/entries/UiBacktop.js +7 -0
  112. package/dist/entries/UiBadge.d.ts +1 -0
  113. package/dist/entries/UiBadge.js +7 -0
  114. package/dist/entries/UiBreadcrumb.d.ts +1 -0
  115. package/dist/entries/UiBreadcrumb.js +7 -0
  116. package/dist/entries/UiBreadcrumbItem.d.ts +1 -0
  117. package/dist/entries/UiBreadcrumbItem.js +7 -0
  118. package/dist/entries/UiButton.d.ts +1 -0
  119. package/dist/entries/UiButton.js +7 -0
  120. package/dist/entries/UiButtonGroup.d.ts +1 -0
  121. package/dist/entries/UiButtonGroup.js +7 -0
  122. package/dist/entries/UiCalendar.d.ts +1 -0
  123. package/dist/entries/UiCalendar.js +7 -0
  124. package/dist/entries/UiCard.d.ts +1 -0
  125. package/dist/entries/UiCard.js +7 -0
  126. package/dist/entries/UiCarousel.d.ts +1 -0
  127. package/dist/entries/UiCarousel.js +7 -0
  128. package/dist/entries/UiCarouselItem.d.ts +1 -0
  129. package/dist/entries/UiCarouselItem.js +7 -0
  130. package/dist/entries/UiCascader.d.ts +1 -0
  131. package/dist/entries/UiCascader.js +7 -0
  132. package/dist/entries/UiCascaderPanel.d.ts +1 -0
  133. package/dist/entries/UiCascaderPanel.js +7 -0
  134. package/dist/entries/UiCheckTag.d.ts +1 -0
  135. package/dist/entries/UiCheckTag.js +7 -0
  136. package/dist/entries/UiCheckbox.d.ts +1 -0
  137. package/dist/entries/UiCheckbox.js +7 -0
  138. package/dist/entries/UiCheckboxButton.d.ts +1 -0
  139. package/dist/entries/UiCheckboxButton.js +7 -0
  140. package/dist/entries/UiCheckboxGroup.d.ts +1 -0
  141. package/dist/entries/UiCheckboxGroup.js +7 -0
  142. package/dist/entries/UiCol.d.ts +1 -0
  143. package/dist/entries/UiCol.js +7 -0
  144. package/dist/entries/UiCollapse.d.ts +1 -0
  145. package/dist/entries/UiCollapse.js +7 -0
  146. package/dist/entries/UiCollapseItem.d.ts +1 -0
  147. package/dist/entries/UiCollapseItem.js +7 -0
  148. package/dist/entries/UiCollapseTransition.d.ts +1 -0
  149. package/dist/entries/UiCollapseTransition.js +7 -0
  150. package/dist/entries/UiColorPicker.d.ts +1 -0
  151. package/dist/entries/UiColorPicker.js +7 -0
  152. package/dist/entries/UiColorPickerPanel.d.ts +1 -0
  153. package/dist/entries/UiColorPickerPanel.js +7 -0
  154. package/dist/entries/UiConfigProvider.d.ts +1 -0
  155. package/dist/entries/UiConfigProvider.js +7 -0
  156. package/dist/entries/UiContainer.d.ts +1 -0
  157. package/dist/entries/UiContainer.js +7 -0
  158. package/dist/entries/UiCountdown.d.ts +1 -0
  159. package/dist/entries/UiCountdown.js +7 -0
  160. package/dist/entries/UiDatePicker.d.ts +1 -0
  161. package/dist/entries/UiDatePicker.js +7 -0
  162. package/dist/entries/UiDatePickerPanel.d.ts +1 -0
  163. package/dist/entries/UiDatePickerPanel.js +7 -0
  164. package/dist/entries/UiDescriptions.d.ts +1 -0
  165. package/dist/entries/UiDescriptions.js +7 -0
  166. package/dist/entries/UiDescriptionsItem.d.ts +1 -0
  167. package/dist/entries/UiDescriptionsItem.js +7 -0
  168. package/dist/entries/UiDialog.d.ts +1 -0
  169. package/dist/entries/UiDialog.js +7 -0
  170. package/dist/entries/UiDivider.d.ts +1 -0
  171. package/dist/entries/UiDivider.js +7 -0
  172. package/dist/entries/UiDrawer.d.ts +1 -0
  173. package/dist/entries/UiDrawer.js +7 -0
  174. package/dist/entries/UiDropdown.d.ts +1 -0
  175. package/dist/entries/UiDropdown.js +7 -0
  176. package/dist/entries/UiDropdownItem.d.ts +1 -0
  177. package/dist/entries/UiDropdownItem.js +7 -0
  178. package/dist/entries/UiDropdownMenu.d.ts +1 -0
  179. package/dist/entries/UiDropdownMenu.js +7 -0
  180. package/dist/entries/UiEmpty.d.ts +1 -0
  181. package/dist/entries/UiEmpty.js +7 -0
  182. package/dist/entries/UiFooter.d.ts +1 -0
  183. package/dist/entries/UiFooter.js +7 -0
  184. package/dist/entries/UiForm.d.ts +1 -0
  185. package/dist/entries/UiForm.js +7 -0
  186. package/dist/entries/UiFormItem.d.ts +1 -0
  187. package/dist/entries/UiFormItem.js +7 -0
  188. package/dist/entries/UiHeader.d.ts +1 -0
  189. package/dist/entries/UiHeader.js +7 -0
  190. package/dist/entries/UiIcon.d.ts +1 -0
  191. package/dist/entries/UiIcon.js +7 -0
  192. package/dist/entries/UiImage.d.ts +1 -0
  193. package/dist/entries/UiImage.js +7 -0
  194. package/dist/entries/UiImageViewer.d.ts +1 -0
  195. package/dist/entries/UiImageViewer.js +7 -0
  196. package/dist/entries/UiInput.d.ts +1 -0
  197. package/dist/entries/UiInput.js +7 -0
  198. package/dist/entries/UiInputNumber.d.ts +1 -0
  199. package/dist/entries/UiInputNumber.js +7 -0
  200. package/dist/entries/UiInputOtp.d.ts +1 -0
  201. package/dist/entries/UiInputOtp.js +7 -0
  202. package/dist/entries/UiInputTag.d.ts +1 -0
  203. package/dist/entries/UiInputTag.js +7 -0
  204. package/dist/entries/UiLink.d.ts +1 -0
  205. package/dist/entries/UiLink.js +7 -0
  206. package/dist/entries/UiLoading.d.ts +1 -0
  207. package/dist/entries/UiLoading.js +7 -0
  208. package/dist/entries/UiMain.d.ts +1 -0
  209. package/dist/entries/UiMain.js +7 -0
  210. package/dist/entries/UiMention.d.ts +1 -0
  211. package/dist/entries/UiMention.js +7 -0
  212. package/dist/entries/UiMenu.d.ts +1 -0
  213. package/dist/entries/UiMenu.js +7 -0
  214. package/dist/entries/UiMenuItem.d.ts +1 -0
  215. package/dist/entries/UiMenuItem.js +7 -0
  216. package/dist/entries/UiMenuItemGroup.d.ts +1 -0
  217. package/dist/entries/UiMenuItemGroup.js +7 -0
  218. package/dist/entries/UiMessage.d.ts +1 -0
  219. package/dist/entries/UiMessage.js +7 -0
  220. package/dist/entries/UiMessageBox.d.ts +1 -0
  221. package/dist/entries/UiMessageBox.js +7 -0
  222. package/dist/entries/UiNotification.d.ts +1 -0
  223. package/dist/entries/UiNotification.js +7 -0
  224. package/dist/entries/UiOption.d.ts +1 -0
  225. package/dist/entries/UiOption.js +7 -0
  226. package/dist/entries/UiOptionGroup.d.ts +1 -0
  227. package/dist/entries/UiOptionGroup.js +7 -0
  228. package/dist/entries/UiPageHeader.d.ts +1 -0
  229. package/dist/entries/UiPageHeader.js +7 -0
  230. package/dist/entries/UiPagination.d.ts +1 -0
  231. package/dist/entries/UiPagination.js +7 -0
  232. package/dist/entries/UiPopconfirm.d.ts +1 -0
  233. package/dist/entries/UiPopconfirm.js +7 -0
  234. package/dist/entries/UiPopover.d.ts +1 -0
  235. package/dist/entries/UiPopover.js +7 -0
  236. package/dist/entries/UiPopper.d.ts +1 -0
  237. package/dist/entries/UiPopper.js +7 -0
  238. package/dist/entries/UiProgress.d.ts +1 -0
  239. package/dist/entries/UiProgress.js +7 -0
  240. package/dist/entries/UiRadio.d.ts +1 -0
  241. package/dist/entries/UiRadio.js +7 -0
  242. package/dist/entries/UiRadioButton.d.ts +1 -0
  243. package/dist/entries/UiRadioButton.js +7 -0
  244. package/dist/entries/UiRadioGroup.d.ts +1 -0
  245. package/dist/entries/UiRadioGroup.js +7 -0
  246. package/dist/entries/UiRate.d.ts +1 -0
  247. package/dist/entries/UiRate.js +7 -0
  248. package/dist/entries/UiResult.d.ts +1 -0
  249. package/dist/entries/UiResult.js +7 -0
  250. package/dist/entries/UiRow.d.ts +1 -0
  251. package/dist/entries/UiRow.js +7 -0
  252. package/dist/entries/UiScrollbar.d.ts +1 -0
  253. package/dist/entries/UiScrollbar.js +7 -0
  254. package/dist/entries/UiSegmented.d.ts +1 -0
  255. package/dist/entries/UiSegmented.js +7 -0
  256. package/dist/entries/UiSelect.d.ts +1 -0
  257. package/dist/entries/UiSelect.js +7 -0
  258. package/dist/entries/UiSelectV2.d.ts +1 -0
  259. package/dist/entries/UiSelectV2.js +7 -0
  260. package/dist/entries/UiSkeleton.d.ts +1 -0
  261. package/dist/entries/UiSkeleton.js +7 -0
  262. package/dist/entries/UiSkeletonItem.d.ts +1 -0
  263. package/dist/entries/UiSkeletonItem.js +7 -0
  264. package/dist/entries/UiSlider.d.ts +1 -0
  265. package/dist/entries/UiSlider.js +7 -0
  266. package/dist/entries/UiSpace.d.ts +1 -0
  267. package/dist/entries/UiSpace.js +7 -0
  268. package/dist/entries/UiSplitter.d.ts +1 -0
  269. package/dist/entries/UiSplitter.js +7 -0
  270. package/dist/entries/UiSplitterPanel.d.ts +1 -0
  271. package/dist/entries/UiSplitterPanel.js +7 -0
  272. package/dist/entries/UiStatistic.d.ts +1 -0
  273. package/dist/entries/UiStatistic.js +7 -0
  274. package/dist/entries/UiStep.d.ts +1 -0
  275. package/dist/entries/UiStep.js +7 -0
  276. package/dist/entries/UiSteps.d.ts +1 -0
  277. package/dist/entries/UiSteps.js +7 -0
  278. package/dist/entries/UiSubMenu.d.ts +1 -0
  279. package/dist/entries/UiSubMenu.js +7 -0
  280. package/dist/entries/UiSwitch.d.ts +1 -0
  281. package/dist/entries/UiSwitch.js +7 -0
  282. package/dist/entries/UiTabPane.d.ts +1 -0
  283. package/dist/entries/UiTabPane.js +7 -0
  284. package/dist/entries/UiTable.d.ts +1 -0
  285. package/dist/entries/UiTable.js +7 -0
  286. package/dist/entries/UiTableColumn.d.ts +1 -0
  287. package/dist/entries/UiTableColumn.js +7 -0
  288. package/dist/entries/UiTableV2.d.ts +1 -0
  289. package/dist/entries/UiTableV2.js +7 -0
  290. package/dist/entries/UiTabs.d.ts +1 -0
  291. package/dist/entries/UiTabs.js +7 -0
  292. package/dist/entries/UiTag.d.ts +1 -0
  293. package/dist/entries/UiTag.js +7 -0
  294. package/dist/entries/UiText.d.ts +1 -0
  295. package/dist/entries/UiText.js +7 -0
  296. package/dist/entries/UiTimePicker.d.ts +1 -0
  297. package/dist/entries/UiTimePicker.js +7 -0
  298. package/dist/entries/UiTimeSelect.d.ts +1 -0
  299. package/dist/entries/UiTimeSelect.js +7 -0
  300. package/dist/entries/UiTimeline.d.ts +1 -0
  301. package/dist/entries/UiTimeline.js +7 -0
  302. package/dist/entries/UiTimelineItem.d.ts +1 -0
  303. package/dist/entries/UiTimelineItem.js +7 -0
  304. package/dist/entries/UiTooltip.d.ts +1 -0
  305. package/dist/entries/UiTooltip.js +7 -0
  306. package/dist/entries/UiTour.d.ts +1 -0
  307. package/dist/entries/UiTour.js +7 -0
  308. package/dist/entries/UiTourStep.d.ts +1 -0
  309. package/dist/entries/UiTourStep.js +7 -0
  310. package/dist/entries/UiTransfer.d.ts +1 -0
  311. package/dist/entries/UiTransfer.js +7 -0
  312. package/dist/entries/UiTree.d.ts +1 -0
  313. package/dist/entries/UiTree.js +7 -0
  314. package/dist/entries/UiTreeSelect.d.ts +1 -0
  315. package/dist/entries/UiTreeSelect.js +7 -0
  316. package/dist/entries/UiTreeV2.d.ts +1 -0
  317. package/dist/entries/UiTreeV2.js +7 -0
  318. package/dist/entries/UiUpload.d.ts +1 -0
  319. package/dist/entries/UiUpload.js +7 -0
  320. package/dist/entries/UiWatermark.d.ts +1 -0
  321. package/dist/entries/UiWatermark.js +7 -0
  322. package/dist/entries/WorkbenchPanel.d.ts +1 -0
  323. package/dist/entries/WorkbenchPanel.js +10 -0
  324. package/dist/entries/WorkbenchShell.d.ts +1 -0
  325. package/dist/entries/WorkbenchShell.js +10 -0
  326. package/dist/entries/vUiInfiniteScroll.d.ts +1 -0
  327. package/dist/entries/vUiInfiniteScroll.js +7 -0
  328. package/dist/entries/vUiLoading.d.ts +1 -0
  329. package/dist/entries/vUiLoading.js +7 -0
  330. package/dist/entries/vUiPopover.d.ts +1 -0
  331. package/dist/entries/vUiPopover.js +7 -0
  332. package/dist/icons.js +3246 -0
  333. package/dist/model-workspace.css +47 -0
  334. package/dist/style.css +49 -1
  335. package/docs/AI-CHANGELOG.md +68 -0
  336. package/docs/AI-GUIDE.md +87 -10
  337. package/docs/COMPONENT-API.md +74 -4
  338. package/docs/COMPONENT-GUIDE.md +11 -0
  339. package/docs/CONSUMERS.md +2 -0
  340. package/docs/CSS-THEME.md +13 -0
  341. package/docs/ELEMENT-PLUS-COVERAGE.md +1 -1
  342. package/docs/INTEGRATION.md +24 -1
  343. package/docs/MODEL-WORKSPACE.md +116 -0
  344. package/docs/ON-DEMAND.md +38 -0
  345. package/llms-full.txt +404 -16
  346. package/llms.txt +3 -1
  347. package/package.json +93 -82
@@ -1,7 +1,45 @@
1
1
  # 团队 AI 模块变更记录
2
2
 
3
+ ## 2026-11-02 · 沿用原平台浮动区域层级
4
+
5
+ - MapPageLayout 对齐 metrics/TemplateLayout.vue 的聚焦 5、移入 6;沿用内容 1、普通区域 2、图例 3、工具栏 4,统一覆盖时间轴与右栏,保持透明工具间隙穿透与子面板随区域置顶。
6
+ - 同步文档与生成 API;未发包,未修改参考项目。
7
+
8
+ ## 2026-11-02 · 模块移入置顶
9
+
10
+ - 统一区域层级变量,区域子展开面板随模块置顶;限定普通内容层,透明工具间隙不拦截地图。
11
+ - 图例及底部外层移除滚动裁剪,预览新增模拟遮挡开关;未发布或修改消费项目。
12
+
13
+ ## 2026-11-02 · 按用户约定改用 VFit 缩放
14
+
15
+ - 撤回新增的 720px 容器断点、右侧抽屉、compact 属性/事件及会商单列重排;保持区域与列数,使用应用 VFit 尺寸变量。
16
+ - 会商网格移除 260px 最小行高,均分顶部操作区之外的剩余高度,消除该最小行高引起的内部滚动条;删除外壳固定 1px 尺寸覆盖。
17
+ - 同步预览说明、示例和行为检查。未构建、发包或修改消费项目布局。
18
+
19
+ ## 2026-11-02 · 完善地图布局行为(源码待用户预览)
20
+
21
+ - 导航直接显示 MapPageLayout 名称,开发指南增加地图布局直达入口,避免新组件沿用旧名称而难以查找。
22
+
23
+ - 新增 MapPageLayout,与旧 TemplateLayout 并行,旧接口不变;新布局仅负责区域排列,位置参数独立于业务类名。
24
+ - 增加实际容器宽度检测、非模态右侧覆盖面板、关闭事件、区域 hover / focus 层级和时间轴避让。
25
+ - DefenseMapLayout 新增可选 structured 模式、toolbar、列数与窄容器单列;默认保持原样式外壳。
26
+ - 预览支持宽窄容器、右栏和时间轴开关;同步接入、样式、组件指南与生成 API。未发布,未更新消费项目布局。
27
+
28
+ ## 2026-11-02 · 布局说明按三层重写(待用户预览确认)
29
+
30
+ - 开发指南新增“布局怎么选”直达入口(#layout-guide),避免说明藏在基础组件深层目录。
31
+
32
+ - 布局容器页新增“平台外壳 → 页面分区 → 局部面板”示意及按场景选择组件的说明,区分 WorkbenchShell、TemplateLayout、管理布局、面板与基础容器。
33
+ - 修正地图布局说明中的默认工具栏、遗漏 left 插槽及项目同名组件 API 混用;明确右栏受控条件和应用的地图生命周期责任。
34
+ - 同步 AI 指南并生成 AI 文档;未发布 npm,未更新消费项目布局。由用户在预览站确认文案后再安排发布。
35
+
3
36
  本文件记录源码模块调整与接入影响,不作为 npm 发布完成的依据。团队使用安装包时以包内文档及 package.json 版本为准;使用当前源码时读取仓库中的同名文档。
4
37
 
38
+ ## 2026-11-02 · 清理历史本地联调锁记录
39
+
40
+ - 删除 package-lock.json 中一体机消费项目的 extraneous 记录及其中旧 vendor tgz 引用;现有库依赖版本保持不变,未修改消费项目。
41
+ - 同步 AI 指南并重新生成 AI 文档;未构建、打包、发布或提交 Git。
42
+
5
43
  ## 2026-10-13 · 0.1.2 发布准备
6
44
 
7
45
  - 核对并重新生成组件 API、AI 指南、llms 索引和完整文档,包含项目图标、全局适配、独立常驻示例和导航调整。
@@ -374,3 +412,33 @@ MapLayerControl 增加 closable/showLocate/showOpacity(均默认 true);综
374
412
  按当前源码重新生成 AI 文档、组件 API 与类型产物,汇集现有布局、图层、时间轴与空间范围相关更新;发布完成状态以 npm 注册表为准。
375
413
 
376
414
  0.1.6 发布检查修复:导出 NationalHydroSidebar 的 SelectedFeature、BatchOption、TimeZoneOption 属性类型,修复类型声明生成 TS4023;运行行为不变。
415
+
416
+
417
+ ## 2026-10-19 · 按需导入配置
418
+
419
+ 增加组件多入口和对应类型出口,主题包装调用添加 PURE 标记;总入口兼容,公共样式和图库仍为集合。按用户约定本次未构建或发布。
420
+
421
+ ## 2026-10-19 · 轻量构建与体积核对
422
+
423
+ SVG 图库从主入口移到可选 icons 入口,SvgIcon 不再自动注册;预览站显式注册图库。构建多入口并增加 PURE 标记。组件主 JS 约 178 KB(此前约 1161 KB),图库单独约 980 KB。模拟消费构建(依赖外置)按钮 1961 B、MapSideMenu 8411 B、SvgIcon 2224 B;不是包含 Element Plus 的网站总体积。CSS 保留公共整体样式。已按用户授权构建,未发布。
424
+
425
+ 2026-10-20:消费约定更新:media-ui仅使用npm包,不再源码alias联调;无组件API/样式变更。
426
+
427
+ ## 2026-10-29 · 0.1.7 发布准备
428
+
429
+ 正式发布按需入口与可选图库,默认主题和组件 CSS 随 npm 包分发,无开发机样式依赖。构建前清理 dist 防止旧 chunk 混入;图标注册迁移见 ON-DEMAND.md。
430
+
431
+
432
+ ## 2026-10-30 · 四项目模型主题
433
+
434
+ 读取四个项目最终覆盖主题,提取蓝白/深蓝青绿 token、渐变标题与面板。新增三个隔离主题组件、显式原生表单适配和可复制示例。公共 CSS 合入 style.css;未构建、未发布。
435
+
436
+
437
+ ## 2026-10-30 · HTML / Vue 双接入文档
438
+
439
+ 新增独立 model-workspace.css 发布出口,原生 HTML 用 CSS 和结构类,Vue 用主题组件与公共 CSS。补齐两套完整示例、主题切换、事件绑定和部署路径说明,未构建发布。
440
+
441
+ ## 2026-11-02 · 0.1.8 发布准备
442
+
443
+ - 发布当前组件源码、按需入口及模型工作区主题;HTML 使用 model-workspace.css,Vue 使用组件与 style.css。清除旧消费项目锁记录。发布状态以 npm 注册表为准。
444
+
package/docs/AI-GUIDE.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # sky-ui-kit:AI 使用指南
2
2
 
3
+ MapPageLayout 沿用参考项目 D:/Work/01-项目code/一体化平台/webv1/src/components/layout/TemplateLayout.vue 的 1/2/3/4/5/6 层级约定,并补齐底部时间轴和右侧面板。层级按区域统一管理:鼠标移入 left/top/toolbar/right/legend/timeline 时提升整个区域到 hover 层,优先于 focus-within;子展开面板随所属区域一起提升,移出后恢复。普通 content 限定在底层独立堆叠上下文,透明工具间隙穿透地图。图例和时间轴外层不再 overflow:auto 裁剪浮层;长内容滚动由内部业务组件负责。Teleport 到 body 的浮层仍由组件自身管理层级。预览“模拟模块遮挡”可核对重叠交互;完全被覆盖的部分不接收鼠标,应从模块可见区域移入。
4
+
5
+ ## 新地图布局行为(源码待预览,尚未发布)
6
+
7
+ 预览入口:开发指南 → MapPageLayout 地图布局(#project-template-layout);基础组件 → 布局容器下也显示“地图布局 · MapPageLayout”,支持按组件名搜索。
8
+
9
+ 新页面优先用 MapPageLayout;旧 TemplateLayout 保持接口及业务样式兼容,并非两者 API 的别名。MapPageLayout 不携带任何依赖 rainfall-process、地图标题或分析面板类名的定位规则。消费方使用 topOffset / bottomOffset / toolbarTop / timelineLeft / timelineRight / timelineBottom / edge 配置位置。
10
+
11
+ rightOpen 与 rightPanelEnabled、right 插槽共同决定右栏显示。区域关系固定,右栏打开时工具栏、图例及时间轴始终避让。按用户约定移除 compactBreakpoint / compactRightMode / compact-change:不按 720px 容器宽度切抽屉或重排。尺寸由消费项目注册的 VFit 写入 --cp-vfit-scale,再经 --cp-font-1 等变量传入;库不重复注册 VFit,不额外 transform 缩放。
12
+
13
+ 默认区域层级 2、图例 3、工具栏 4;键盘 focus-within 为 5,鼠标 hover 为 6。时间轴高度通过 timeline-height 通知,图例自动避让;监听在卸载释放。
14
+
15
+ DefenseMapLayout 默认 structured=false 保留原样式壳。structured=true 提供 toolbar 与网格内容,columns 为 1 或 2,保持指定列数,均分剩余高度,不设 260px 最小行高或内部滚动条。间距和 topOffset 继承 VFit 尺寸变量;地图、联动、路由及持久挂载由应用负责。
16
+
17
+ ## 布局怎么选:平台外壳 → 页面分区 → 局部面板
18
+
19
+ 预览站“开发指南 → 布局怎么选”可直接进入说明(#layout-guide);“基础组件 → 布局容器”也会展示。说明先展示通俗选型说明与三层嵌套示意,再展示地图区域和组合示例。说明源文件为 src/LayoutGuide.vue;本次只调整说明,不改变组件 API 或运行行为。
20
+
21
+ - WorkbenchShell 是整个平台的外壳,提供 header / workspace;management 模式才提供内置左侧分组菜单,路由仍由应用接入。
22
+ - TemplateLayout 是地图页面的摆放架,提供 left、top、toolbar、right、legend、timeline、content 和默认插槽。应用先提供有明确宽高、position: relative 的地图容器。rightOpen、rightPanelEnabled 与 right 插槽共同决定右栏显示;没有默认工具、图例或地图实例。
23
+ - ManagementResourceLayout 用于管理页的概览、筛选、标题、操作及内容区域。
24
+ - WorkbenchPanel 是局部外观容器;MapWorkspacePanel 是带标题、actions、default、footer 的业务面板。两者不负责路由和地图生命周期。
25
+ - DefenseMapLayout 是会商样式外壳,默认插槽由应用提供地图内容和联动;ModelWorkspace 面向模型编辑,不是通用平台外壳。
26
+ - UiContainer / UiHeader / UiAside / UiMain / UiFooter 是自定义普通布局的基础积木。
27
+
28
+ 项目内 TemplateLayout 与库组件同名但接口不同,不能只换 import。原 right-toggle、map-toolbar-info 和 rightPanelDefaultOpen 需要应用适配层衔接。公共布局稳定挂载、地图是否重建、容器改变后的地图与图表 resize 均由消费项目负责;替换布局组件不自动消除菜单切换闪烁。
29
+
3
30
  适用于 Vue 3 + TypeScript。此文件描述包的真实 API 和约束,不是自动执行的代理指令。AI 工具需要主动读取这些文档;安装包不会自动改变其上下文。
4
31
 
5
32
  管理布局:使用 WorkbenchShell management 模式与内容插槽,详见本文末尾最新说明。账号、菜单路由和数据由消费方提供,库不提供认证。
@@ -30,6 +57,8 @@ UiAutocomplete 提供独立站点搜索示例:fetch-suggestions 回调、聚
30
57
 
31
58
  ## 文档读取顺序
32
59
 
60
+ 依赖维护:库的 package.json 与 package-lock.json 不应记录消费项目的本地目录或历史 vendor 安装包。已清除一体机项目遗留的 extraneous 锁记录;消费项目自行管理其安装依赖。
61
+
33
62
  安装或升级最新正式版使用 `npm install sky-ui-kit@latest`。latest 指向 npm 的正式发布标签,尚未发布的源码修改不在安装包内;依据当前已安装包的版本和文档使用组件。
34
63
 
35
64
  团队先读取 llms.txt,并结合 AI-CHANGELOG.md 了解模块变更及接入影响。后续所有代码、预览页面、样式和接入说明修改均同步相关 AI 文档,并运行 npm run docs:ai;快速开始代码与页面使用同一份源文件生成。
@@ -266,7 +295,7 @@ function confirm() { UiMessage.success('当前站点:' + station.value) }
266
295
  ### 图标安装:内置与自有资源
267
296
 
268
297
  ```sh
269
- # 仅使用库内置 SVG:安装组件库即可
298
+ # SvgIcon 仅引用 sprite;自有 SVG 由下方 Vite 配置注册
270
299
  npm install sky-ui-kit@latest
271
300
 
272
301
  # 项目要维护自己的 src/assets/icons/*.svg 时,再安装 Vite 插件
@@ -945,20 +974,42 @@ const items = [{ key: 'overview', label: '运行概览' }, { key: 'data', label:
945
974
  ```vue
946
975
  <script setup lang="ts">
947
976
  import { ref } from 'vue'
948
- import { TemplateLayout, UiButton, MapTools, WorkbenchPanel } from 'sky-ui-kit'
977
+ import { MapPageLayout, DefenseMapLayout, UiButton, MapTools, WorkbenchPanel } from 'sky-ui-kit'
949
978
  const rightOpen = ref(true)
979
+ const showTimeline = ref(true)
980
+ const overlap = ref(false)
950
981
  </script>
951
982
  <template>
952
- <div style="position: relative; height: 460px">
953
- <TemplateLayout :right-open="rightOpen">
954
- <template #top><UiButton @click="rightOpen = !rightOpen">{{ rightOpen ? '收起右栏' : '展开右栏' }}</UiButton></template>
955
- <template #toolbar><MapTools :items="[{ key: 'layers', label: '图层' }]" /></template>
956
- <template #right><WorkbenchPanel style="height: 100%">right · 业务面板</WorkbenchPanel></template>
957
- <template #legend>legend · 图例</template>
958
- <template #timeline>timeline · 时间轴</template>
959
- </TemplateLayout>
983
+ <div class="layout-demo-controls">
984
+ <UiButton @click="rightOpen = !rightOpen">{{ rightOpen ? '收起右栏' : '展开右栏' }}</UiButton>
985
+ <UiButton @click="showTimeline = !showTimeline">{{ showTimeline ? '隐藏时间轴' : '显示时间轴' }}</UiButton>
986
+ <UiButton @click="overlap = !overlap">{{ overlap ? '恢复正常避让' : '模拟模块遮挡' }}</UiButton>
987
+ </div>
988
+ <div class="layout-demo-map" >
989
+ <MapPageLayout v-model:right-open="rightOpen" :timeline-right="overlap ? 'var(--map-layout-edge)' : ''">
990
+ <template #top><span>地图标题 / 查询区域</span></template>
991
+ <template #toolbar><MapTools :items="[{ key: 'layers', label: '图层' }]" /><WorkbenchPanel v-if="overlap" class="layout-demo-expanded">右上展开面板<br>鼠标移入时整个工具区域置顶</WorkbenchPanel></template>
992
+ <template #right><WorkbenchPanel style="height: 100%">右栏 · 放参数表单或业务列表<br>鼠标移入当前区域时置顶</WorkbenchPanel></template>
993
+ <template #legend><WorkbenchPanel :class="{ 'layout-demo-overlap-legend': overlap }">图例 · 鼠标移入置顶</WorkbenchPanel></template>
994
+ <template v-if="showTimeline" #timeline><WorkbenchPanel class="layout-demo-timeline">时间轴 / 过程图区域 · 鼠标移入置顶</WorkbenchPanel></template>
995
+ </MapPageLayout>
996
+ </div>
997
+ <h3>会商布局 · 顶部操作区 + 四个地图位置</h3>
998
+ <p>以下仅展示区域,不创建地图。保持两列布局,尺寸沿用 VFit 缩放变量;四个地图位置均分剩余高度,不产生内部滚动条。</p>
999
+ <div class="layout-demo-map" >
1000
+ <DefenseMapLayout structured top-offset="0" :columns="2">
1001
+ <template #toolbar>时次选择 / 设置按钮放在这里</template>
1002
+ <WorkbenchPanel v-for="index in 4" :key="index">地图位置 {{ index }} · 由页面提供地图宿主</WorkbenchPanel>
1003
+ </DefenseMapLayout>
960
1004
  </div>
961
1005
  </template>
1006
+ <style scoped>
1007
+ .layout-demo-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
1008
+ .layout-demo-map { position: relative; height: calc(var(--cp-font-1, 1px) * 460); border: 1px dashed var(--color-soft-border); background: var(--surface-control); }
1009
+ .layout-demo-expanded { position: absolute; right: 0; top: calc(var(--cp-font-1, 1px) * 40); width: calc(var(--cp-font-1, 1px) * 260); height: calc(var(--cp-font-1, 1px) * 300); box-sizing: border-box; border: 1px solid var(--color-soft-border); background: var(--color-panel); }
1010
+ .layout-demo-overlap-legend { transform: translateY(calc(var(--cp-font-1, 1px) * 50)); background: var(--color-panel); border: 1px solid var(--color-soft-border); }
1011
+ .layout-demo-timeline { min-height: calc(var(--cp-font-1, 1px) * 90); background: var(--color-panel); border: 1px solid var(--color-soft-border); }
1012
+ </style>
962
1013
 
963
1014
  ```
964
1015
 
@@ -2938,3 +2989,29 @@ const items = [{ key: 'rain', label: '降水', icon: Pouring }, { key: 'water',
2938
2989
  </style>
2939
2990
 
2940
2991
  ```
2992
+
2993
+ ### 模型工作区统一主题示例
2994
+
2995
+ ```vue
2996
+ <script setup lang="ts">
2997
+ import { ref } from 'vue'
2998
+ import { ModelWorkspace, ModelWorkspaceHeader, ModelWorkspacePanel, UiButton, UiInput } from 'sky-ui-kit'
2999
+ const theme = ref<'light' | 'dark'>('light')
3000
+ const name = ref('汉口站')
3001
+ const message = ref('等待配置')
3002
+ </script>
3003
+ <template>
3004
+ <ModelWorkspace :theme="theme" native-controls>
3005
+ <template #header><ModelWorkspaceHeader title="模型计算工作区" description="分布式水文 / 水资源配置 / 新安江 / LSTM 共用主题">
3006
+ <template #actions><UiButton @click="theme = theme === 'light' ? 'dark' : 'light'">切换主题</UiButton></template>
3007
+ </ModelWorkspaceHeader></template>
3008
+ <ModelWorkspacePanel title="模型配置">
3009
+ <UiInput v-model="name" placeholder="测站名称" />
3010
+ <p>原生控件逐步迁移时,可显式启用 native-controls。</p>
3011
+ <button type="button" class="primary" @click="message = '执行配置:' + name">原生操作示例</button>
3012
+ <template #footer><span role="status">{{ message }}</span><UiButton @click="message = '保存配置由使用方接入'">保存配置</UiButton></template>
3013
+ </ModelWorkspacePanel>
3014
+ </ModelWorkspace>
3015
+ </template>
3016
+
3017
+ ```
@@ -437,6 +437,31 @@ export interface MapLayerNode { id: string; name: string; visible?: boolean; opa
437
437
 
438
438
  Slots: left, top, toolbar, right, legend, timeline, content, default
439
439
 
440
+ ## MapPageLayout
441
+
442
+ ### Props
443
+
444
+ | Name | Type | Required | Default expression |
445
+ |---|---|---|---|
446
+ | rightOpen | boolean | false | false |
447
+ | rightPanelEnabled | boolean | false | true |
448
+ | rightPanelWidth | string | false | 'calc(var(--cp-font-1, 1px) * 328)' |
449
+ | leftPanelWidth | string | false | 'calc(var(--cp-font-1, 1px) * 320)' |
450
+ | edge | string | false | 'calc(var(--cp-font-1, 1px) * 12)' |
451
+ | topOffset | string | false | '' |
452
+ | bottomOffset | string | false | '' |
453
+ | toolbarTop | string | false | '' |
454
+ | timelineLeft | string | false | '' |
455
+ | timelineRight | string | false | '' |
456
+ | timelineBottom | string | false | '' |
457
+
458
+ ### Events
459
+
460
+ - `update:rightOpen` — `[open: boolean]`
461
+ - `timeline-height` — `[height: number]`
462
+
463
+ Slots: left, top, toolbar, right, legend, timeline, content, default
464
+
440
465
  ## RainfallRankingTable
441
466
 
442
467
  ### Props
@@ -944,12 +969,59 @@ Slots: No declared content slots.
944
969
 
945
970
  | Name | Type | Required | Default expression |
946
971
  |---|---|---|---|
972
+ | structured | boolean | false | false |
973
+ | columns | 1 &#124; 2 | false | 2 |
974
+ | topOffset | string | false | 'calc(var(--cp-font-1, 1px) * 64)' |
947
975
 
948
976
  ### Events
949
977
 
950
978
  No declared events.
951
979
 
952
- Slots: default
980
+ Slots: toolbar, default
981
+
982
+ ## ModelWorkspace
983
+
984
+ ### Props
985
+
986
+ | Name | Type | Required | Default expression |
987
+ |---|---|---|---|
988
+ | theme | 'light' &#124; 'dark' | false | 'light' |
989
+ | nativeControls | boolean | false | false |
990
+
991
+ ### Events
992
+
993
+ No declared events.
994
+
995
+ Slots: header, default, footer
996
+
997
+ ## ModelWorkspaceHeader
998
+
999
+ ### Props
1000
+
1001
+ | Name | Type | Required | Default expression |
1002
+ |---|---|---|---|
1003
+ | title | string | true | undefined / no declared default |
1004
+ | description | string | false | undefined / no declared default |
1005
+
1006
+ ### Events
1007
+
1008
+ No declared events.
1009
+
1010
+ Slots: title, actions
1011
+
1012
+ ## ModelWorkspacePanel
1013
+
1014
+ ### Props
1015
+
1016
+ | Name | Type | Required | Default expression |
1017
+ |---|---|---|---|
1018
+ | title | string | false | undefined / no declared default |
1019
+
1020
+ ### Events
1021
+
1022
+ No declared events.
1023
+
1024
+ Slots: header, actions, default, footer
953
1025
 
954
1026
  ## UiAffix
955
1027
 
@@ -1661,7 +1733,5 @@ Preserves upstream structure and context. Structural children inherit theme from
1661
1733
 
1662
1734
  ## 图标资源与注册
1663
1735
 
1664
- `projectIcons`:内置 SVG 清单(name、category、source、followsColor、svg)。`ProjectIconName`:内置名称联合类型。
1665
-
1666
- `registerProjectIcons(names?: readonly string[], target?: Document): void`:按名称注册到指定文档,不传 names 注册全部;SSR 无文档时不执行。默认命名空间 sky-icon-,重复调用不重复插入。SvgIcon 自动注册当前内置图标;prefix 非 sky-icon- 时由使用方提供 sprite。未知名称不显示图形。
1736
+ SvgIcon 仅引用 sprite,不自动加载内置图库。自有 sprite 通过 prefix 指定;可选资源从 sky-ui-kit/icons 导入 projectIcons、ProjectIconName、registerProjectIcons(names?, target?),显式注册需要的符号。可选图库仍为整份资源。
1667
1737
 
@@ -1,5 +1,11 @@
1
1
  # 组件使用说明
2
2
 
3
+ ## 布局选择(当前源码)
4
+
5
+ WorkbenchShell 管平台外壳;MapPageLayout 管地图上的区域;WorkbenchPanel / MapWorkspacePanel 装具体业务内容。旧 TemplateLayout 保留历史行为,新页面建议 MapPageLayout,不能直接按同名接口替换。MapPageLayout 使用 v-model:right-open;保持区域关系,右栏打开时其他浮动区域避让,尺寸沿用应用的 VFit 变量,不提供按宽度切换抽屉的断点。它不创建地图,不自动解决路由重新挂载。
6
+
7
+ DefenseMapLayout 默认是旧样式外壳;structured=true 启用顶部 toolbar 和 columns=1/2 网格,保持指定列数并均分剩余高度,不设最小行高撑出内部滚动条。默认插槽传各幅地图宿主,应用管理地图实例和联动。
8
+
3
9
  本指南说明当前包已导出的 11 个项目组件的用途、数据约定和交互边界。完整属性类型、默认值、事件签名和插槽列表见 [组件 API](COMPONENT-API.md);完整示例见 [AI-GUIDE](AI-GUIDE.md)。原项目组件清单中的文件不一定已经进入本包,以 `src/components/index.ts` 和 `components.json` 为准。
4
10
 
5
11
  ## SvgIcon 与原项目适配
@@ -161,3 +167,8 @@ Ui 基础组件已统一关联对应 Element Plus 主组件文档,例如 Table
161
167
 
162
168
 
163
169
  MapSideMenu 支持 multiple 与 v-model:active-keys 多选,change 返回完整选中数组;select 表示点击项,不代表始终为新增选择。
170
+
171
+
172
+ ## 2026-10-19 轻量入口更新(未发布)
173
+
174
+ 主入口不再导出 projectIcons / ProjectIconName / registerProjectIcons,改从 sky-ui-kit/icons 导入。SvgIcon 只引用已有 sprite,默认 prefix 仍为 sky-icon-;自有 sprite 用 prefix="icon-"。保留图库的应用需要在 main.ts 显式 registerProjectIcons([名称]),图标资源不会自动下载。可选图库约 980 KB,不需要时不要导入。此变更尚未发布,安装 0.1.6 不具备新子路径。
package/docs/CONSUMERS.md CHANGED
@@ -238,3 +238,5 @@ metricslab降水播放轴使用TemplateLayout.timeline插槽;timelineLeft/time
238
238
  2026-10-16:metricslab降水设置用GlobalMapLayerDock.actions放刷新图标,保持公开组件样式;底部内嵌色带移除。未发布。
239
239
 
240
240
  2026-10-16:metricslab用户使用范围用SpatialScopeInput reservoirOnly,默认draw、目标reservoir,保存regionCodes为空,必填水库名称及有效面;旧行政区授权编辑须补水库边界,不自动将行政区面认作水库。
241
+
242
+ 2026-10-20:media-ui最新用户约定仅消费npm sky-ui-kit@0.1.6,开发和交付均移除源码alias;库能力后续需发布可安装版本后应用再升级。
package/docs/CSS-THEME.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CSS 变量主题与样式隔离
2
2
 
3
+ MapPageLayout 使用 --map-layout-layer-content/panel/legend/toolbar/focus/hover 统一区域层级。与原平台一致:content=1、panel=2、legend=3、toolbar=4、focus=5、hover=6,时间轴和右栏同样参与;hover 高于 focus;content 内部即使使用较大 z-index 也不跨越区域堆叠上下文。图例和底部外层允许内容溢出,避免浮层被父区域裁剪;内部滚动由业务组件负责。
4
+
5
+ MapPageLayout 是新增独立区域布局,读取现有主题变量及库作用域默认变量,不改写全局颜色。所有面板的 hover 层级高于 focus-within;右栏始终按固定区域关系避让。旧 TemplateLayout 的业务选择器保留以兼容已有消费者,新布局不继承这些选择器。MapPageLayout 与 DefenseMapLayout structured 模式继承 VFit 尺寸变量,不在 720px 以下切换布局;会商网格按 minmax(0, 1fr) 均分剩余高度,默认模式保留兼容。
6
+
3
7
  库不导出 useThemeStore,也不依赖使用方 Pinia。根入口和 /components 导出相同组件。
4
8
 
5
9
  ## 默认:隔离模式
@@ -235,3 +239,12 @@ import { DefenseMapLayout, UiButton } from 'sky-ui-kit'
235
239
  </DefenseMapLayout>
236
240
  </template>
237
241
  ```
242
+
243
+
244
+ 按需 JS 入口不改变 CSS 约定,style.css 仍为整体公共样式,不是逐组件 CSS。
245
+
246
+
247
+ 模型工作区主题限定 .sky-model-workspace,theme 属性控制明暗,原生控件适配显式开启;变量与边界见 MODEL-WORKSPACE.md。
248
+
249
+
250
+ 独立 model-workspace.css 面向原生 HTML,无 Vue/Element Plus 样式依赖;与 style.css 的模型主题来自同一源文件,Vue 无需重复导入。
@@ -1,6 +1,6 @@
1
1
  # Element Plus 完整组件目录
2
2
 
3
- 基准版本:2.14.7。共 111 个主 / 子组件、4 个服务出口、3 个指令出口。另保留 38 个项目特色组件。
3
+ 基准版本:2.14.7。共 111 个主 / 子组件、4 个服务出口、3 个指令出口。另保留 42 个项目特色组件。
4
4
 
5
5
  清单覆盖官方组件注册表及服务 / 指令,不包含内部工具函数。出口覆盖不代表所有组件的交互、独立示例和视觉状态均已验证。网站每项均提供导入和官方 API 索引,新增组合示例见 AI-GUIDE.md。
6
6
 
@@ -1,12 +1,16 @@
1
1
  # 主题接入规则更新
2
2
 
3
+ ## 新布局接入(源码尚未发布)
4
+
5
+ 新地图页面用 MapPageLayout;旧 TemplateLayout 继续保留,接口不做强制迁移。MapPageLayout 的插槽为 left / top / toolbar / right / legend / timeline / content / default。父容器须具有明确宽高且 position:relative;地图宿主独立创建,避免路由切换时随业务面板卸载。rightOpen 用 v-model 控制,原项目工具事件、设置面板及开关插槽通过应用适配层接入。原降水过程图等专有定位改用 timelineLeft / timelineBottom 等参数;不要把旧 CSS 类名当作新布局 API。接入时保留消费项目的 VFit 缩放桥接,不按容器断点重排;在地图宿主尺寸变化后 resize。WorkbenchShell 是否常驻由应用路由结构决定。
6
+
3
7
  当前规则以 [CSS-THEME.md](CSS-THEME.md) 为准:库不导出主题 store、不要求 Pinia,保留原项目 store;库 CSS 为变量提供低优先级默认值。默认 style.css 隔离,global.css 为可选整站主题。
4
8
 
5
9
  # 发布与反向接入
6
10
 
7
11
  ## 图标替换
8
12
 
9
- 原 components/global/SvgIcon.vue 可替换为从 sky-ui-kit 导入 SvgIcon,保留 name / size / title / decorative。库内置 274 个项目 SVG,自动按需注册到 sky-icon- 命名空间;不依赖业务项目 Vite 插件。暂时保留旧 sprite 时传 prefix="icon-",资源仍由原 virtual:svg-icons-register 提供。完成所有旧引用检查后才移除旧全局组件和插件,地图 PNG / Logo 的注册不变。子目录名称改为目录前缀以避免重名,按 projectIcons.source 与 name 对照迁移。Element Plus 图标仍从 @element-plus/icons-vue 导入,用 UiIcon 包裹。图标操作事件、路由和权限继续由业务方绑定。
13
+ 原 components/global/SvgIcon.vue 可替换为从 sky-ui-kit 导入 SvgIcon,保留 name / size / title / decorative。库内置 274 个项目 SVG,通过可选图库显式注册到 sky-icon- 命名空间;不依赖业务项目 Vite 插件。暂时保留旧 sprite 时传 prefix="icon-",资源仍由原 virtual:svg-icons-register 提供。完成所有旧引用检查后才移除旧全局组件和插件,地图 PNG / Logo 的注册不变。子目录名称改为目录前缀以避免重名,按 projectIcons.source 与 name 对照迁移。Element Plus 图标仍从 @element-plus/icons-vue 导入,用 UiIcon 包裹。图标操作事件、路由和权限继续由业务方绑定。
10
14
 
11
15
  ## 当前交付范围
12
16
 
@@ -149,3 +153,22 @@ flat 模式按钮此前错误使用 child 类而内部图标、文字使用 pare
149
153
 
150
154
  2026-10-15:全国水文原页样式迁入。新增公开NationalHydroSidebar,来源参考平台views/hydroforecast/mapHydro/components/Sidebar.vue:保留原分组卡片、当前拾取、坐标、原生单选、AppSelect、标题/间距/字号/按钮 scoped 样式,仅主题token转userssite命名、根类重命名避免工作台.sidebar覆盖。props沿用selected/locationLng/locationLat/meteoSource/model/batchId/batchList/selectedTimeZone/timeZoneOptions;事件沿用updateLocationField/coordinateLocate/updateMeteoSource/updateModel/updateBatchId/updateTimeZone/openStyle,追加status插槽承载消费方错误/加载状态。无业务接口或地图引擎。例:<NationalHydroSidebar :selected="selected" :batch-list="batches" :batch-id="batchId" @update-batch-id="batchId=$event" />,其余筛选由消费方传入并绑定事件。
151
155
  共享ProcessChart/MapBottomProcessPanel新增可选timeZone/currentTime:轴标签按时区显示,当前时刻数据点高亮,未传时保留原行为;图表引擎由消费方提供。TemplateLayout.timeline改flex纵向gap,容纳底部过程+时间轴。库vue-tsc通过;未构建、打包、发布或浏览器验证,metrics当前通过公开出口源码alias使用,npm旧包尚未包含新增出口。
156
+
157
+
158
+ 按需接入方案见 ON-DEMAND.md,新路径需等待下一版本发布;应用页面按需导入、路由懒加载,公共 CSS 在 main.ts 一次加载。
159
+
160
+
161
+ ## 2026-10-19 轻量入口更新(未发布)
162
+
163
+ 主入口不再导出 projectIcons / ProjectIconName / registerProjectIcons,改从 sky-ui-kit/icons 导入。SvgIcon 只引用已有 sprite,默认 prefix 仍为 sky-icon-;自有 sprite 用 prefix="icon-"。保留图库的应用需要在 main.ts 显式 registerProjectIcons([名称]),图标资源不会自动下载。可选图库约 980 KB,不需要时不要导入。此变更尚未发布,安装 0.1.6 不具备新子路径。
164
+
165
+
166
+ ## 0.1.7 正式安装与样式
167
+
168
+ 通过 npm 安装 sky-ui-kit,main.ts 依次引入 element-plus/dist/index.css 和 sky-ui-kit/style.css,包内已包含默认主题和组件样式,不依赖开发者电脑、原业务项目或远程样式服务。CSS 变量允许运行时主题覆盖。图标资源可从 sky-ui-kit/icons 显式注册,或由应用提供 sprite;SvgIcon 不再自动携带图库。按组件入口见 docs/ON-DEMAND.md。
169
+
170
+
171
+ 四个模型项目的统一主题使用 ModelWorkspace 及 Header/Panel 结构,详情见 MODEL-WORKSPACE.md。原生 HTML 页面需要明确挂载/样式接入,不会因升级包自动改变。
172
+
173
+
174
+ 原生 HTML:部署包内 dist/model-workspace.css 并用 link 引入及结构类;Vue:使用 ModelWorkspace 系列组件并引入公共 style.css。完整双方案见 MODEL-WORKSPACE.md,不要将本地磁盘/node_modules 路径部署到网站。
@@ -0,0 +1,116 @@
1
+ # 模型工作区统一主题
2
+
3
+ 参考四个项目实际样式:分布式水文模型 hydrogrid/frontend/src/styles/workspace-theme.css;水资源配置 app/static/workspace-theme.css;新安江 static/style.css 后段覆盖;LSTM前端预报模型Git/web_ui_prototype.html 的 light/dark token。新安江前段旧深色规则不是最终主题。
4
+
5
+ 共同浅色:背景 #f3f7fb,面板 #fff,主色 #1677ff,文字 #172b4d,边框 #dce5ef,蓝色渐变标题。深色:背景 #0d1420,面板 #151f2e,主色 #36cbb7,文字 #e3ecf5,边框 #35485f。
6
+
7
+ ModelWorkspace(theme=light|dark, nativeControls=false) 提供显式主题边界及 header/default/footer 插槽;ModelWorkspaceHeader(title, description) 提供 title/actions 插槽;ModelWorkspacePanel(title) 提供 header/actions/default/footer。theme 由应用控制,不写 localStorage 或 document 根节点。未设置应用变量也有完整默认效果,应用可在容器 class/style 覆盖变量。
8
+
9
+ 公共 CSS 仍仅在 main.ts 引入 element-plus/dist/index.css 和 sky-ui-kit/style.css 一次。组件包构建脚本把 model-workspace.css 合入 style.css。范围仅 sky-model-workspace,不修改原生 Element Plus 或容器外 body。body 自身仍由应用设置,容器高度由应用布局提供。
10
+
11
+ native-controls 是渐进迁移适配,仅在显式容器中覆盖原生按钮/表单外观,保留原 DOM、事件、disabled 及表单语义,不自动重写业务。优先用 UiButton/UiInput 等库组件。body 上的浮层不能继承局部主题,使用默认局部浮层或显式传递主题。地图色带、图表配色和业务阈值不在该主题替换范围。
12
+
13
+ 四个参考项目本次只读。它们并非全部 Vue 应用:原生 HTML 项目不能直接使用 Vue 组件,使用独立 model-workspace.css 并显式添加 sky-model-workspace / data-theme 边界和对应结构类;只升级 npm 不会自动改写已有原生页面。下一版本发布后按上述方式接入。
14
+
15
+
16
+ ## 按项目技术栈选择
17
+
18
+ | 项目 | 使用方式 | 依赖 |
19
+ |---|---|---|
20
+ | 原生 HTML / 服务端模板 | model-workspace.css + 原生 HTML 结构类 | 无 Vue / Element Plus 运行时要求 |
21
+ | Vue 3 | ModelWorkspace / Header / Panel 组件 + style.css | Vue 和组件包声明的 peerDependencies |
22
+
23
+ 以下能力为当前源码新增,需等待包含该能力的新版本发布;已发布的 0.1.7 不包含独立 model-workspace.css 或三个 ModelWorkspace 组件。
24
+
25
+ ## 原生 HTML:直接引入主题
26
+
27
+ 从新发布包的 dist/model-workspace.css 复制到网站静态资源目录,例如 /static/vendor/sky-ui-kit/model-workspace.css,随网站一起部署。不要将 node_modules 路径或开发者磁盘路径写进线上 HTML。不需要引入组件 JS、Vue 或 Element Plus CSS。
28
+
29
+ ```html
30
+ <!doctype html>
31
+ <html lang="zh-CN">
32
+ <head>
33
+ <meta charset="utf-8">
34
+ <meta name="viewport" content="width=device-width, initial-scale=1">
35
+ <title>模型工作区</title>
36
+ <link rel="stylesheet" href="/static/vendor/sky-ui-kit/model-workspace.css">
37
+ <style>body { margin: 0; } #workspace { min-height: 100vh; }</style>
38
+ </head>
39
+ <body>
40
+ <div id="workspace" class="sky-model-workspace" data-theme="light" data-native-controls>
41
+ <header class="sky-model-header">
42
+ <div>
43
+ <h1 class="sky-model-header__title">模型计算工作区</h1>
44
+ <p class="sky-model-header__description">统一背景、面板和原生表单主题</p>
45
+ </div>
46
+ <button id="toggle-theme" type="button">切换主题</button>
47
+ </header>
48
+ <main class="sky-model-workspace__content">
49
+ <section class="sky-model-panel">
50
+ <header class="sky-model-panel__header"><h2>模型配置</h2></header>
51
+ <div class="sky-model-panel__body">
52
+ <label>测站名称 <input id="station" value="汉口站"></label>
53
+ </div>
54
+ <footer class="sky-model-panel__footer">
55
+ <span id="status" role="status">等待配置</span>
56
+ <button id="save" type="button" class="primary">保存配置</button>
57
+ </footer>
58
+ </section>
59
+ </main>
60
+ </div>
61
+ <script>
62
+ const workspace = document.getElementById('workspace');
63
+ document.getElementById('toggle-theme').addEventListener('click', () => {
64
+ workspace.dataset.theme = workspace.dataset.theme === 'dark' ? 'light' : 'dark';
65
+ });
66
+ document.getElementById('save').addEventListener('click', () => {
67
+ document.getElementById('status').textContent = '当前测站:' + document.getElementById('station').value;
68
+ // 真实保存请求沿用应用现有逻辑。
69
+ });
70
+ </script>
71
+ </body>
72
+ </html>
73
+ ```
74
+
75
+ 带 Vite 等构建工具的原生页面也可以在其唯一公共入口 `import 'sky-ui-kit/model-workspace.css'`。HTML 结构类负责外观,原有表单提交、事件和业务逻辑仍由页面维护;data-native-controls 显式开启原生控件外观。
76
+
77
+ ## Vue 3:使用组件
78
+
79
+ main.ts 只引入一次公共 CSS:
80
+
81
+ ```ts
82
+ import 'element-plus/dist/index.css'
83
+ import 'sky-ui-kit/style.css'
84
+ ```
85
+
86
+ 不再额外引入 model-workspace.css,style.css 已包含同一主题。页面示例:
87
+
88
+ ```vue
89
+ <script setup lang="ts">
90
+ import { ref } from 'vue'
91
+ import { ModelWorkspace, ModelWorkspaceHeader, ModelWorkspacePanel, UiButton, UiInput } from 'sky-ui-kit'
92
+ const theme = ref<'light' | 'dark'>('light')
93
+ const station = ref('汉口站')
94
+ const message = ref('等待配置')
95
+ </script>
96
+ <template>
97
+ <ModelWorkspace :theme="theme" style="min-height: 100vh">
98
+ <template #header>
99
+ <ModelWorkspaceHeader title="模型计算工作区" description="统一模型页面主题">
100
+ <template #actions>
101
+ <UiButton @click="theme = theme === 'light' ? 'dark' : 'light'">切换主题</UiButton>
102
+ </template>
103
+ </ModelWorkspaceHeader>
104
+ </template>
105
+ <ModelWorkspacePanel title="模型配置">
106
+ <UiInput v-model="station" placeholder="测站名称" />
107
+ <template #footer>
108
+ <span role="status">{{ message }}</span>
109
+ <UiButton type="primary" @click="message = '当前测站:' + station">保存配置</UiButton>
110
+ </template>
111
+ </ModelWorkspacePanel>
112
+ </ModelWorkspace>
113
+ </template>
114
+ ```
115
+
116
+ HTML 与 Vue 共用同一份 token 和结构样式,切换方式分别为 data-theme 和 theme 属性;两种方式均不需要原项目本地样式文件。新增颜色和布局规则应修改组件库,使用方只绑定业务数据和事件。
@@ -0,0 +1,38 @@
1
+ # 按需引入
2
+
3
+ 下一次发布后支持独立组件路径:
4
+
5
+ ```ts
6
+ // main.ts 中公共 CSS 只加载一次
7
+ import 'element-plus/dist/index.css'
8
+ import 'sky-ui-kit/style.css'
9
+
10
+ // 页面中只导入需要的组件;可使用默认或命名导入
11
+ import UiButton from 'sky-ui-kit/components/UiButton'
12
+ import { MapSideMenu } from 'sky-ui-kit/components/MapSideMenu'
13
+ ```
14
+
15
+ 原有 `import { UiButton } from 'sky-ui-kit'` 保持兼容。主题包装调用添加 PURE 标记,供 Vite/Rollup 等生产打包器裁剪未使用组件。独立入口共享必要的运行代码,不能把整个命名空间注册为全局组件后期待裁剪。
16
+
17
+ 这里是构建时按需包含。需要进入页面才下载代码时,在应用路由使用 `() => import('./pages/MapPage.vue')`,组件放到该页面导入。
18
+
19
+ 公共 style.css 仍包含整体主题和组件样式,不宣称 CSS 已逐组件拆分。Element Plus CSS 的按需方案由消费方配置;当前文档使用完整 CSS 以保证样式完整。SvgIcon 只引用 sprite,须由应用注册,但图标源码仍为完整集合;显式导入 projectIcons 也会包含图库,不宣称逐图标裁剪。
20
+
21
+ 该配置尚未构建验证,下一次用户授权打包时核对独立 JS、类型入口及消费项目产物体积;当前已发布的 0.1.6 不包含本次配置。
22
+
23
+
24
+ ## 2026-10-19 轻量入口更新(未发布)
25
+
26
+ 主入口不再导出 projectIcons / ProjectIconName / registerProjectIcons,改从 sky-ui-kit/icons 导入。SvgIcon 只引用已有 sprite,默认 prefix 仍为 sky-icon-;自有 sprite 用 prefix="icon-"。保留图库的应用需要在 main.ts 显式 registerProjectIcons([名称]),图标资源不会自动下载。可选图库约 980 KB,不需要时不要导入。此变更尚未发布,安装 0.1.6 不具备新子路径。
27
+
28
+ ## 构建对比(2026-10-19)
29
+
30
+ 采用 esbuild 对相同组件进行生产裁剪、压缩,Vue / Element Plus / 图标依赖 / motion-v 均外置;因此数据只表示库增量 JS,不含 CSS 和上游依赖。
31
+
32
+ | 组件 | 0.1.6 JS / gzip | 新构建 JS / gzip |
33
+ |---|---:|---:|
34
+ | UiButton | 116602 / 35571 B | 1961 / 989 B |
35
+ | MapSideMenu | 116605 / 35577 B | 8411 / 3487 B |
36
+ | SvgIcon | 1092502 / 364357 B | 2224 / 1163 B |
37
+
38
+ 主入口文件从约 1161 KB 降到 178 KB,但还有共享 chunk;不能只看入口文件判断网站下载量。上表已包含各示例引用的库共享代码。可选 icons.js 约 980 KB,npm 安装包仍包含它;网站不导入即可不进入组件依赖链。