sky-ui-kit 0.1.7 → 0.1.9

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 (38) hide show
  1. package/components.json +495 -8
  2. package/dist/components/AppSelect.vue.d.ts +7 -0
  3. package/dist/components/DefenseMapLayout.vue.d.ts +25 -3
  4. package/dist/components/ManagementResourceLayout.vue.d.ts +19 -0
  5. package/dist/components/MapBottomProcessPanel.vue.d.ts +11 -0
  6. package/dist/components/MapPageLayout.vue.d.ts +61 -0
  7. package/dist/components/MapTimeline.vue.d.ts +9 -0
  8. package/dist/components/MapWorkspacePanel.vue.d.ts +11 -1
  9. package/dist/components/ModelWorkspace.vue.d.ts +24 -0
  10. package/dist/components/ModelWorkspaceHeader.vue.d.ts +19 -0
  11. package/dist/components/ModelWorkspacePanel.vue.d.ts +32 -0
  12. package/dist/components/ProcessDataTable.vue.d.ts +9 -1
  13. package/dist/components/ProjectMenu.vue.d.ts +11 -0
  14. package/dist/components/WorkbenchPanel.vue.d.ts +9 -0
  15. package/dist/components/index.d.ts +485 -7
  16. package/dist/components.js +2494 -2233
  17. package/dist/entries/MapPageLayout.d.ts +1 -0
  18. package/dist/entries/MapPageLayout.js +10 -0
  19. package/dist/entries/ModelWorkspace.d.ts +1 -0
  20. package/dist/entries/ModelWorkspace.js +10 -0
  21. package/dist/entries/ModelWorkspaceHeader.d.ts +1 -0
  22. package/dist/entries/ModelWorkspaceHeader.js +10 -0
  23. package/dist/entries/ModelWorkspacePanel.d.ts +1 -0
  24. package/dist/entries/ModelWorkspacePanel.js +10 -0
  25. package/dist/model-workspace.css +47 -0
  26. package/dist/style.css +49 -1
  27. package/dist/utils/dimensions.d.ts +5 -0
  28. package/docs/AI-CHANGELOG.md +92 -0
  29. package/docs/AI-GUIDE.md +122 -9
  30. package/docs/COMPONENT-API.md +187 -1
  31. package/docs/COMPONENT-GUIDE.md +6 -0
  32. package/docs/CSS-THEME.md +44 -0
  33. package/docs/ELEMENT-PLUS-COVERAGE.md +1 -1
  34. package/docs/INTEGRATION.md +44 -0
  35. package/docs/MODEL-WORKSPACE.md +116 -0
  36. package/llms-full.txt +565 -12
  37. package/llms.txt +2 -1
  38. package/package.json +5 -3
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
  ## 默认:隔离模式
@@ -238,3 +242,43 @@ import { DefenseMapLayout, UiButton } from 'sky-ui-kit'
238
242
 
239
243
 
240
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 无需重复导入。
251
+
252
+
253
+ ## 2026-11-03:可配置 VFit 尺寸(源码待发布)
254
+
255
+ 数字尺寸代表设计单位,由组件转换为 `calc(var(--cp-font-1, 1px) * n)`;CSS 字符串原样使用,不额外注册 VFit 或 transform。DesignSpacing 支持单值及2/3/4项数组,遵循CSS间距顺序。0是有效值。调用方传裸字符串 `"12"` 不是合法CSS长度,应使用 `:gap="12"`;`"12px"` 是固定CSS像素。
256
+
257
+ 所有新增参数有默认值;下表空字符串表示使用组件现有布局/样式默认值,不是0。根style可控制组件根尺寸,内部内边距通过对应props调整,无需deep覆盖。
258
+
259
+ | 组件 | 参数与默认值 |
260
+ | --- | --- |
261
+ | MapPageLayout | 新增gap=12;已有rightPanelWidth=328、leftPanelWidth=320、edge=12等参数兼容字符串并支持数字;top/bottom/toolbar/timeline偏移默认空字符串,沿用自动避让 |
262
+ | DefenseMapLayout | gap=4、padding=4、toolbarGap=12、toolbarPadding=12;topOffset默认64设计单位,兼容数字/字符串 |
263
+ | MapWorkspacePanel | headerPadding=16、bodyPadding=16、footerPadding=[12,16]、gap=16 |
264
+ | ModelWorkspacePanel | headerPadding=[12,16]、bodyPadding=16、footerPadding=[12,16]、gap=12 |
265
+ | WorkbenchPanel | width='auto'、height='auto'、padding=0、gap=0;gap只在调用方使用flex/grid时产生间距,不强改display |
266
+ | ManagementResourceLayout | gap=20、padding=[0,24,20](内容区域)、introPadding=24、filterGap=20、filterPadding=[20,24]、inputWidth=260、selectWidth=160、cascaderWidth=280、responsive=false |
267
+ | AppSelect | width='100%'、controlHeight=''(按size取主题小/中/大高度)、controlPadding=[0,10];多选内容可增高;浮层不再设100%最小宽度,使用底层fit-input-width等配置 |
268
+ | ProjectMenu | width=''、itemHeight=''、itemPadding=''、padding=''(分别保留横/纵菜单已有默认值)、gap=2 |
269
+ | MapTimeline | padding=[10,12]、gap=9、trackHeight=88、controlHeight=30;不改变播放/时次数据API |
270
+ | MapBottomProcessPanel | height=320、maxHeight='42dvh'、headerPadding=[10,16]、metaPadding=[8,16,0]、gap=12 |
271
+ | ProcessDataTable | cellPadding=[6,10]、paginationGap=12、paginationPadding=5 |
272
+
273
+ ManagementResourceLayout默认按VFit保持结构,不在700px阈值自动切换;旧调用方如需原断点布局显式传responsive=true。这是需要在升级说明中说明的行为变化。其内容区域padding与介绍区padding分开,避免改变原默认留白。
274
+
275
+ 地图布局时间轴测量改为offsetHeight,使用布局坐标而非transform后的视口像素,防止再次乘入缩放系数。UiButton/UiSelect/UiTable等基础组件继续使用底层size、width、height及主题token,无重复同义接口。旧TemplateLayout保留兼容接口,不冒充MapPageLayout别名。
276
+
277
+ 示例:
278
+ ```vue
279
+ <MapWorkspacePanel title="降水统计" :header-padding="[12, 16]" :body-padding="[8, 12]" :gap="8">
280
+ 业务内容
281
+ </MapWorkspacePanel>
282
+ <MapPageLayout :right-panel-width="320" :edge="12" :gap="8" />
283
+ ```
284
+ 预览入口:MapPageLayout布局演示,点击“查看紧凑尺寸”比较右栏宽度、边距与面板内边距。其他组件参数与默认值可在生成API查询。当前未构建、打包、发布或浏览器验证,用户预览确认后自行发版。
@@ -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,5 +1,9 @@
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
  # 发布与反向接入
@@ -162,3 +166,43 @@ flat 模式按钮此前错误使用 child 类而内部图标、文字使用 pare
162
166
  ## 0.1.7 正式安装与样式
163
167
 
164
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 路径部署到网站。
175
+
176
+
177
+ ## 2026-11-03:可配置 VFit 尺寸(源码待发布)
178
+
179
+ 数字尺寸代表设计单位,由组件转换为 `calc(var(--cp-font-1, 1px) * n)`;CSS 字符串原样使用,不额外注册 VFit 或 transform。DesignSpacing 支持单值及2/3/4项数组,遵循CSS间距顺序。0是有效值。调用方传裸字符串 `"12"` 不是合法CSS长度,应使用 `:gap="12"`;`"12px"` 是固定CSS像素。
180
+
181
+ 所有新增参数有默认值;下表空字符串表示使用组件现有布局/样式默认值,不是0。根style可控制组件根尺寸,内部内边距通过对应props调整,无需deep覆盖。
182
+
183
+ | 组件 | 参数与默认值 |
184
+ | --- | --- |
185
+ | MapPageLayout | 新增gap=12;已有rightPanelWidth=328、leftPanelWidth=320、edge=12等参数兼容字符串并支持数字;top/bottom/toolbar/timeline偏移默认空字符串,沿用自动避让 |
186
+ | DefenseMapLayout | gap=4、padding=4、toolbarGap=12、toolbarPadding=12;topOffset默认64设计单位,兼容数字/字符串 |
187
+ | MapWorkspacePanel | headerPadding=16、bodyPadding=16、footerPadding=[12,16]、gap=16 |
188
+ | ModelWorkspacePanel | headerPadding=[12,16]、bodyPadding=16、footerPadding=[12,16]、gap=12 |
189
+ | WorkbenchPanel | width='auto'、height='auto'、padding=0、gap=0;gap只在调用方使用flex/grid时产生间距,不强改display |
190
+ | ManagementResourceLayout | gap=20、padding=[0,24,20](内容区域)、introPadding=24、filterGap=20、filterPadding=[20,24]、inputWidth=260、selectWidth=160、cascaderWidth=280、responsive=false |
191
+ | AppSelect | width='100%'、controlHeight=''(按size取主题小/中/大高度)、controlPadding=[0,10];多选内容可增高;浮层不再设100%最小宽度,使用底层fit-input-width等配置 |
192
+ | ProjectMenu | width=''、itemHeight=''、itemPadding=''、padding=''(分别保留横/纵菜单已有默认值)、gap=2 |
193
+ | MapTimeline | padding=[10,12]、gap=9、trackHeight=88、controlHeight=30;不改变播放/时次数据API |
194
+ | MapBottomProcessPanel | height=320、maxHeight='42dvh'、headerPadding=[10,16]、metaPadding=[8,16,0]、gap=12 |
195
+ | ProcessDataTable | cellPadding=[6,10]、paginationGap=12、paginationPadding=5 |
196
+
197
+ ManagementResourceLayout默认按VFit保持结构,不在700px阈值自动切换;旧调用方如需原断点布局显式传responsive=true。这是需要在升级说明中说明的行为变化。其内容区域padding与介绍区padding分开,避免改变原默认留白。
198
+
199
+ 地图布局时间轴测量改为offsetHeight,使用布局坐标而非transform后的视口像素,防止再次乘入缩放系数。UiButton/UiSelect/UiTable等基础组件继续使用底层size、width、height及主题token,无重复同义接口。旧TemplateLayout保留兼容接口,不冒充MapPageLayout别名。
200
+
201
+ 示例:
202
+ ```vue
203
+ <MapWorkspacePanel title="降水统计" :header-padding="[12, 16]" :body-padding="[8, 12]" :gap="8">
204
+ 业务内容
205
+ </MapWorkspacePanel>
206
+ <MapPageLayout :right-panel-width="320" :edge="12" :gap="8" />
207
+ ```
208
+ 预览入口:MapPageLayout布局演示,点击“查看紧凑尺寸”比较右栏宽度、边距与面板内边距。其他组件参数与默认值可在生成API查询。当前未构建、打包、发布或浏览器验证,用户预览确认后自行发版。
@@ -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 属性;两种方式均不需要原项目本地样式文件。新增颜色和布局规则应修改组件库,使用方只绑定业务数据和事件。