@damoqiongqiu/ice-chart 0.17.2 → 0.17.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 (2) hide show
  1. package/README.md +23 -0
  2. package/package.json +26 -21
package/README.md CHANGED
@@ -475,6 +475,29 @@ K 线与热力图、桑基图、交互总览(框选 + 多选 + 键盘 + 事件
475
475
 
476
476
  ## 开发
477
477
 
478
+ ### 给 agent 用的 DSL(同族包)
479
+
480
+ 想让模型直接产出图表(而不是手写 `ChartOption`),用 [`@damoqiongqiu/ice-chart-dsl`](https://github.com/ice-render/ice-chart-dsl):
481
+ 给一张表 + `encoding`(把列绑到 x / y / series / size / name / value),编译成正常的 `ChartOption` ——
482
+ 交互、动画、序列化全部照旧。它比手写 option 多的三件事:**数据绑定**、**意图级默认**、
483
+ 以及**结构化诊断**(列不存在会列出可用列名、非数值列给出数字占比、公式错误带字符位置、整段画不出来也会报)。
484
+
485
+ ```ts
486
+ import { renderChartDsl } from '@damoqiongqiu/ice-chart-dsl';
487
+
488
+ renderChartDsl('canvas-id', {
489
+ kind: 'line',
490
+ data: { columns: ['月份', '销量', '渠道'], rows: [['1月', 120, '线上'], ['1月', 86, '线下']] },
491
+ encoding: { x: '月份', y: '销量', series: '渠道' },
492
+ });
493
+ ```
494
+
495
+ 它的技能已发布到 skills-hub:`skill-installer install ice-chart-dsl`(<https://skills-hub.ai/skills/ice-chart-dsl>)。
496
+
497
+ 示例页 [examples/dsl-vs-option.html](./examples/dsl-vs-option.html) 用**同一份表**把两种写法并排画出来,
498
+ 并做逐像素自检(绘图区 / x 域 / y 域 / 每个数据点的坐标必须完全一致)——
499
+ 两种写法只是作者体验不同,画出来的图必须一模一样。
500
+
478
501
  引擎按 **npm 依赖**装(`peerDependencies` + `devDependencies` 都是 `ice-render@^1.4.7`),
479
502
  `npm install` 即可跑测试和示例。要连着改引擎源码时,把 `devDependencies` 那条临时改成
480
503
  `file:../ice-render`(引擎仓库放同级目录)再 `npm install`。
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "author": "大漠穷秋",
3
3
  "name": "@damoqiongqiu/ice-chart",
4
- "version": "0.17.2",
4
+ "version": "0.17.3",
5
5
  "license": "MIT",
6
6
  "description": "基于 ice-render Canvas 引擎的交互式图表库:命中测试与事件派发由引擎承担,图表层只做「数据 ↔ 像素 ↔ 语义事件」。",
7
7
  "keywords": [
@@ -66,35 +66,40 @@
66
66
  "verify": "npm run lint && npm run types:check && npm run build && npm test -- --runInBand"
67
67
  },
68
68
  "peerDependencies": {
69
- "ice-render": "^1.4.7"
69
+ "ice-render": "^1.4.11"
70
70
  },
71
71
  "devDependencies": {
72
- "@babel/core": "^7.28.5",
73
- "@babel/preset-env": "^7.28.5",
74
- "@babel/preset-typescript": "^7.28.5",
75
- "@rollup/plugin-babel": "^6.0.4",
76
- "@rollup/plugin-commonjs": "^28.0.1",
77
- "@rollup/plugin-json": "^6.1.0",
78
- "@rollup/plugin-node-resolve": "^15.3.0",
79
- "@rollup/plugin-strip": "^3.0.4",
80
- "@rollup/plugin-terser": "^0.4.4",
81
- "@types/jest": "^29.5.14",
72
+ "@babel/core": "7.28.5",
73
+ "@babel/preset-env": "7.28.5",
74
+ "@babel/preset-typescript": "7.28.5",
75
+ "@damoqiongqiu/ice-chart-dsl": "^0.1.0",
76
+ "@rollup/plugin-babel": "6.1.0",
77
+ "@rollup/plugin-commonjs": "28.0.1",
78
+ "@rollup/plugin-json": "6.1.0",
79
+ "@rollup/plugin-node-resolve": "15.3.1",
80
+ "@rollup/plugin-strip": "3.0.4",
81
+ "@rollup/plugin-terser": "0.4.4",
82
+ "@types/jest": "29.5.14",
82
83
  "@typescript-eslint/eslint-plugin": "^7.18.0",
83
84
  "@typescript-eslint/parser": "^7.18.0",
84
- "babel-jest": "^29.7.0",
85
+ "babel-jest": "29.7.0",
85
86
  "eslint": "^8.57.1",
86
- "ice-render": "^1.4.7",
87
- "jest": "^29.7.0",
88
- "jest-environment-jsdom": "^29.7.0",
87
+ "ice-render": "^1.4.11",
88
+ "jest": "29.7.0",
89
+ "jest-environment-jsdom": "29.7.0",
89
90
  "playwright": "^1.63.0",
90
91
  "prettier": "^3.4.1",
91
- "rimraf": "^6.0.1",
92
- "rollup": "^3.29.5",
93
- "rollup-plugin-license": "^3.5.2",
94
- "rollup-plugin-visualizer": "^5.14.0",
95
- "typescript": "^5.9.3"
92
+ "rimraf": "5.0.10",
93
+ "rollup": "3.29.5",
94
+ "rollup-plugin-license": "3.6.0",
95
+ "rollup-plugin-visualizer": "6.0.5",
96
+ "typescript": "5.9.3"
96
97
  },
97
98
  "publishConfig": {
98
99
  "access": "public"
100
+ },
101
+ "engines": {
102
+ "node": ">=18",
103
+ "npm": ">=9"
99
104
  }
100
105
  }