@h-ai/cli 1.0.0-beta.8 → 1.0.0-beta.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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@h-ai/cli",
3
3
  "type": "module",
4
- "version": "1.0.0-beta.8",
4
+ "version": "1.0.0-beta.9",
5
5
  "description": "Hai Framework CLI for project scaffolding and code generation.",
6
6
  "license": "Apache-2.0",
7
7
  "keywords": [
@@ -30,7 +30,7 @@
30
30
  "node": "^22.23.4 || ^24.22.1 || ^26.12.1"
31
31
  },
32
32
  "dependencies": {
33
- "@h-ai/core": "1.0.0-beta.8",
33
+ "@h-ai/core": "1.0.0-beta.9",
34
34
  "cac": "^7.0.1",
35
35
  "chalk": "^6.0.1",
36
36
  "fast-wrap-ansi": "^0.2.2",
@@ -41,18 +41,18 @@
41
41
  "yaml": "^2.9.1"
42
42
  },
43
43
  "devDependencies": {
44
- "@h-ai/api-client": "1.0.0-beta.8",
45
- "@h-ai/cache": "1.0.0-beta.8",
46
- "@h-ai/crypto": "1.0.0-beta.8",
47
- "@h-ai/deploy": "1.0.0-beta.8",
48
- "@h-ai/feedback": "1.0.0-beta.8",
49
- "@h-ai/iam": "1.0.0-beta.8",
50
- "@h-ai/kit": "1.0.0-beta.8",
51
- "@h-ai/payment": "1.0.0-beta.8",
52
- "@h-ai/reach": "1.0.0-beta.8",
53
- "@h-ai/reldb": "1.0.0-beta.8",
54
- "@h-ai/storage": "1.0.0-beta.8",
55
- "@h-ai/vecdb": "1.0.0-beta.8",
44
+ "@h-ai/api-client": "1.0.0-beta.9",
45
+ "@h-ai/cache": "1.0.0-beta.9",
46
+ "@h-ai/crypto": "1.0.0-beta.9",
47
+ "@h-ai/deploy": "1.0.0-beta.9",
48
+ "@h-ai/feedback": "1.0.0-beta.9",
49
+ "@h-ai/iam": "1.0.0-beta.9",
50
+ "@h-ai/kit": "1.0.0-beta.9",
51
+ "@h-ai/payment": "1.0.0-beta.9",
52
+ "@h-ai/reach": "1.0.0-beta.9",
53
+ "@h-ai/reldb": "1.0.0-beta.9",
54
+ "@h-ai/storage": "1.0.0-beta.9",
55
+ "@h-ai/vecdb": "1.0.0-beta.9",
56
56
  "@types/fs-extra": "^11.0.4",
57
57
  "@types/node": "^26.6.5",
58
58
  "@types/prompts": "^2.4.9",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "engines": { "node": "^22.23.4 || ^24.22.1 || ^26.12.1" },
3
3
  "name": "{{projectName}}",
4
- "version": "1.0.0-beta.8",
4
+ "version": "1.0.0-beta.9",
5
5
  "private": true,
6
6
  "packageManager": "pnpm@12.11.2",
7
7
  "description": "{{#if_eq appType 'admin'}}Enterprise management system built with hai Agent Framework{{/if_eq}}{{#if_eq appType 'website'}}Enterprise website built with hai Agent Framework{{/if_eq}}{{#if_eq appType 'h5'}}Mobile H5 app built with hai Agent Framework{{/if_eq}}{{#if_eq appType 'api'}}REST API service built with hai Agent Framework{{/if_eq}}{{#if_eq appType 'mobile-app'}}Mobile app built with hai Agent Framework{{/if_eq}}",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: hai-ui
3
- description: "使用 @h-ai/ui 构建 Svelte 5 表单、表格、弹窗、新手引导、帮助中心、主题与 AI 内容展示。"
3
+ description: "使用 @h-ai/ui 构建 Svelte 5 表单、表格、看板图表、弹窗、引导、主题与 AI 内容展示。"
4
4
  ---
5
5
 
6
6
  # hai-ui
@@ -25,6 +25,8 @@ description: "使用 @h-ai/ui 构建 Svelte 5 表单、表格、弹窗、新手
25
25
 
26
26
  - 查询/登录采用原生表单 Enter 提交;提示使用 Button submitHint(仅 submit),不注册占用浏览器按键的全局监听。输入法确认不得触发搜索;保留 Tab、Enter/Space、Esc、菜单方向键和清晰焦点。弹窗默认聚焦首个可编辑项,危险确认优先聚焦取消;关闭恢复触发控件,忙碌/禁用时不得继续提交。
27
27
 
28
+ 轻量看板复用 MetricCard / ReportCard / DashboardGrid 和 Chart 的五种 preset;原生属性覆盖默认值。图形仅在客户端有数据时按类型加载,SSR 显示占位。更多 LayerChart 图形放入 ReportCard children,由宿主显式依赖并按需加载原生组件。示例与边界见[图表和看板](charts.md)。
29
+
28
30
  ## 使用路径
29
31
 
30
32
  Toast 支持 F8 聚焦/返回、Escape 关闭可关闭提示并恢复焦点;Modal 内也要验证键盘路径。`notifyError` 接收完整错误对象或安全本地化字符串;Promise 组件需抛异常时用 `new Error(result.error.message, { cause: result.error })` 保留安全业务原因和 traceId。普通 Error 和 5xx 使用兜底,不传未知 `err.message`。修改及交付遵循[沟通与同步维护](../hai-app-create/collaboration.md)。
@@ -0,0 +1,51 @@
1
+ # 图表与轻量看板
2
+
3
+ 业务负责查询、权限和聚合,UI 负责数值展示和交互。先选择 MetricCard / ReportCard / DashboardGrid,再选择统一 Chart 或原生 LayerChart。完整自助 BI、透视引擎与报表设计器不属于这些组件的职责。
4
+
5
+ ```svelte
6
+ <script lang="ts">
7
+ import { Chart, DashboardGrid, MetricCard, ReportCard } from '@h-ai/ui/components/scenes/charts/index'
8
+ const data = [{ month: 'Jan', revenue: 42, cost: 24 }, { month: 'Feb', revenue: 58, cost: 31 }]
9
+ </script>
10
+
11
+ <DashboardGrid label="核心指标" columns={4}>
12
+ <MetricCard title="收入" value="128,430" unit="CNY" trend={12.8} trendTone="success" trendLabel="较上月" />
13
+ <MetricCard title="响应耗时" value={42} unit="ms" trend={-8.2} trendTone="success" />
14
+ </DashboardGrid>
15
+ <ReportCard title="收入与成本">
16
+ <Chart preset="grouped-bar" {data} x="month" y={['revenue', 'cost']} />
17
+ </ReportCard>
18
+ ```
19
+
20
+ 示例文案由应用翻译模块提供。`value` 接受已格式化字符串或数值;缺失和非有限数显示“—”,零值正常显示。`trend={12.8}` 表示 +12.8%,`trendTone` 独立指定业务语义,不能把所有下降都标成坏结果。MetricCard children 可加入迷你趋势,不提供时不加载图形引擎。
21
+
22
+ DashboardGrid 在容器小于 40rem 时一列,40rem 起最多两列,64rem 起使用 columns 指定的 1–4 列。ReportCard 复用 Card,支持 actions、children、footer,以及 loading/empty 状态;状态期间不挂载图形。对长标题、长数值和窄容器检查溢出。
23
+
24
+ | preset | 图形 | 默认配置 |
25
+ | --- | --- | --- |
26
+ | grouped-bar | bar | seriesLayout='group'、坐标轴、网格、图例 |
27
+ | stacked-bar | bar | seriesLayout='stack'、坐标轴、网格、图例 |
28
+ | stacked-area | area | seriesLayout='stack'、坐标轴、网格、图例 |
29
+ | donut | pie | innerRadius=0.65、图例 |
30
+ | sparkline | line | 高度 64、无坐标轴/网格/图例/数据点 |
31
+
32
+ 显式 type 优先于 preset 图形类型,未提供两者时为 line。显式原生参数覆盖预设:例如 `legend={false}`、`innerRadius={0.8}`、`height={80}`。原有 type/data/x/y 调用与 LayerChart 参数、snippet 透传保持兼容。
33
+
34
+ Chart 在 SSR 中保留高度并显示加载占位,浏览器挂载且数据非空后动态加载所选 renderer;loading/empty 时不加载。快速切换类型时过期导入不替换新图形。高级图形同样建议使用宿主动态组件;仅把组件放在条件分支里不等于拆分静态 import。
35
+
36
+ ## 更多 LayerChart 图形
37
+
38
+ 不需要把所有 LayerChart 能力压进 ChartType。ReportCard children 可承载 ArcChart、径向图、树图、热图等原生组件。应用显式添加与当前 UI 兼容的 layerchart 依赖(本仓库当前验证 2.6.1),按安装版本 exports 选择真实入口;layerchart/svg 等单渲染层入口可减少不需要的渲染分支。
39
+
40
+ ```svelte
41
+ <script lang="ts">
42
+ import { ReportCard } from '@h-ai/ui/components/scenes/charts/index'
43
+ import { ArcChart } from 'layerchart/svg'
44
+ import 'layerchart/daisyui-5.css'
45
+ </script>
46
+ <ReportCard title="目标完成率">
47
+ <ArcChart data={[{ key: 'Target', value: 72 }]} value="value" maxValue={100} range={[-90, 90]} innerRadius={0.78} height={240} />
48
+ </ReportCard>
49
+ ```
50
+
51
+ 原生组件的类型、数据与生命周期遵循 LayerChart,UI 不转发或仿造整套上游 API。上例为静态使用片段;按需加载时将原生图形放进独立组件,由宿主使用动态 import。完整示例在 admin 图表展厅中,点击后才加载 ArcChart。