@icen.ai/ui 0.9.0 → 0.10.0

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 (281) hide show
  1. package/AGENTS.md +138 -80
  2. package/README.md +66 -91
  3. package/dist/base.css +208 -179
  4. package/dist/behaviors/accordion.mjs +8 -8
  5. package/dist/behaviors/ai-branch.d.mts +1 -1
  6. package/dist/behaviors/ai-branch.mjs +1010 -94
  7. package/dist/behaviors/ai-chat.d.mts +7 -7
  8. package/dist/behaviors/ai-chat.mjs +1071 -161
  9. package/dist/behaviors/ai-composer.d.mts +44 -12
  10. package/dist/behaviors/ai-composer.mjs +1997 -524
  11. package/dist/behaviors/ai-core.d.mts +1 -1
  12. package/dist/behaviors/ai-core.mjs +1016 -107
  13. package/dist/behaviors/ai-diff.mjs +1019 -127
  14. package/dist/behaviors/ai-feedback.d.mts +1 -1
  15. package/dist/behaviors/ai-feedback.mjs +1035 -126
  16. package/dist/behaviors/ai-panel.d.mts +8 -8
  17. package/dist/behaviors/ai-panel.mjs +1284 -266
  18. package/dist/behaviors/ai-provider.mjs +1003 -101
  19. package/dist/behaviors/ai-threads.d.mts +1 -1
  20. package/dist/behaviors/ai-threads.mjs +1068 -154
  21. package/dist/behaviors/ai-tool.d.mts +2 -2
  22. package/dist/behaviors/ai-tool.mjs +2037 -396
  23. package/dist/behaviors/ai-tools.d.mts +89 -16
  24. package/dist/behaviors/ai-tools.mjs +4448 -372
  25. package/dist/behaviors/autocomplete.d.mts +53 -0
  26. package/dist/behaviors/autocomplete.mjs +1600 -0
  27. package/dist/behaviors/back-top.d.mts +1 -1
  28. package/dist/behaviors/back-top.mjs +951 -14
  29. package/dist/behaviors/carousel.d.mts +1 -1
  30. package/dist/behaviors/carousel.mjs +906 -11
  31. package/dist/behaviors/cascader.d.mts +48 -0
  32. package/dist/behaviors/cascader.mjs +1853 -0
  33. package/dist/behaviors/charts.d.mts +72 -8
  34. package/dist/behaviors/charts.mjs +1901 -256
  35. package/dist/behaviors/code-block.d.mts +36 -0
  36. package/dist/behaviors/code-block.mjs +1611 -0
  37. package/dist/behaviors/command-palette.d.mts +9 -6
  38. package/dist/behaviors/command-palette.mjs +161 -59
  39. package/dist/behaviors/context-menu.d.mts +9 -8
  40. package/dist/behaviors/context-menu.mjs +1112 -44
  41. package/dist/behaviors/controls.d.mts +13 -13
  42. package/dist/behaviors/controls.mjs +989 -130
  43. package/dist/behaviors/copy.d.mts +21 -2
  44. package/dist/behaviors/copy.mjs +1206 -42
  45. package/dist/behaviors/datatable.d.mts +53 -3
  46. package/dist/behaviors/datatable.mjs +1963 -207
  47. package/dist/behaviors/date-picker.d.mts +0 -1
  48. package/dist/behaviors/date-picker.mjs +1340 -293
  49. package/dist/behaviors/design.d.mts +54 -0
  50. package/dist/behaviors/design.mjs +109 -0
  51. package/dist/behaviors/dropdown.d.mts +5 -6
  52. package/dist/behaviors/dropdown.mjs +262 -110
  53. package/dist/behaviors/events.d.mts +120 -3
  54. package/dist/behaviors/events.mjs +47 -2
  55. package/dist/behaviors/feedback.d.mts +30 -0
  56. package/dist/behaviors/feedback.mjs +296 -0
  57. package/dist/behaviors/focus.d.mts +8 -0
  58. package/dist/behaviors/focus.mjs +24 -0
  59. package/dist/behaviors/form-validate.d.mts +102 -0
  60. package/dist/behaviors/form-validate.mjs +6091 -0
  61. package/dist/behaviors/i18n.d.mts +789 -0
  62. package/dist/behaviors/i18n.mjs +1711 -0
  63. package/dist/behaviors/icons.d.mts +93 -0
  64. package/dist/behaviors/icons.mjs +113 -0
  65. package/dist/behaviors/input.d.mts +9 -1
  66. package/dist/behaviors/input.mjs +1056 -60
  67. package/dist/behaviors/kb-access.d.mts +1 -1
  68. package/dist/behaviors/kb-access.mjs +2129 -239
  69. package/dist/behaviors/kb-acl.d.mts +6 -6
  70. package/dist/behaviors/kb-acl.mjs +1119 -179
  71. package/dist/behaviors/kb-answer.mjs +2070 -418
  72. package/dist/behaviors/kb-audit.d.mts +1 -1
  73. package/dist/behaviors/kb-audit.mjs +1076 -154
  74. package/dist/behaviors/kb-canvas.mjs +1100 -177
  75. package/dist/behaviors/kb-chain.mjs +1022 -100
  76. package/dist/behaviors/kb-checkpoint.d.mts +1 -1
  77. package/dist/behaviors/kb-checkpoint.mjs +1319 -169
  78. package/dist/behaviors/kb-chunks.mjs +1152 -213
  79. package/dist/behaviors/kb-citation.d.mts +1 -1
  80. package/dist/behaviors/kb-citation.mjs +1201 -179
  81. package/dist/behaviors/kb-clarify.mjs +1058 -130
  82. package/dist/behaviors/kb-conflict.mjs +1041 -119
  83. package/dist/behaviors/kb-connector.mjs +1104 -176
  84. package/dist/behaviors/kb-core.d.mts +6 -1
  85. package/dist/behaviors/kb-core.mjs +1077 -162
  86. package/dist/behaviors/kb-eval.mjs +1971 -144
  87. package/dist/behaviors/kb-explain.d.mts +1 -1
  88. package/dist/behaviors/kb-explain.mjs +1024 -102
  89. package/dist/behaviors/kb-filter.mjs +2008 -178
  90. package/dist/behaviors/kb-gap.d.mts +1 -1
  91. package/dist/behaviors/kb-gap.mjs +1043 -121
  92. package/dist/behaviors/kb-hittest.d.mts +1 -1
  93. package/dist/behaviors/kb-hittest.mjs +1093 -150
  94. package/dist/behaviors/kb-metadata.mjs +1052 -130
  95. package/dist/behaviors/kb-passage.d.mts +2 -2
  96. package/dist/behaviors/kb-passage.mjs +1101 -161
  97. package/dist/behaviors/kb-pipeline.d.mts +2 -2
  98. package/dist/behaviors/kb-pipeline.mjs +1082 -162
  99. package/dist/behaviors/kb-qa.mjs +1088 -160
  100. package/dist/behaviors/kb-rerank.mjs +1047 -114
  101. package/dist/behaviors/kb-retrieval.mjs +2063 -224
  102. package/dist/behaviors/kb-review.mjs +1990 -159
  103. package/dist/behaviors/kb-sandbox.d.mts +1 -1
  104. package/dist/behaviors/kb-sandbox.mjs +1026 -104
  105. package/dist/behaviors/kb-segment.mjs +1111 -179
  106. package/dist/behaviors/kb-select.d.mts +24 -0
  107. package/dist/behaviors/kb-select.mjs +1989 -0
  108. package/dist/behaviors/kb-sources.d.mts +1 -1
  109. package/dist/behaviors/kb-sources.mjs +1084 -170
  110. package/dist/behaviors/kb-sql.d.mts +1 -1
  111. package/dist/behaviors/kb-sql.mjs +1143 -226
  112. package/dist/behaviors/kb-trace.d.mts +1 -1
  113. package/dist/behaviors/kb-trace.mjs +1042 -128
  114. package/dist/behaviors/kb-visibility.mjs +1086 -158
  115. package/dist/behaviors/kb-who-can.mjs +1974 -137
  116. package/dist/behaviors/mentions.d.mts +93 -0
  117. package/dist/behaviors/mentions.mjs +2152 -0
  118. package/dist/behaviors/modal.d.mts +4 -3
  119. package/dist/behaviors/modal.mjs +1055 -33
  120. package/dist/behaviors/nav.d.mts +1 -1
  121. package/dist/behaviors/nav.mjs +6 -6
  122. package/dist/behaviors/notification.d.mts +16 -8
  123. package/dist/behaviors/notification.mjs +1615 -265
  124. package/dist/behaviors/panel.d.mts +4 -0
  125. package/dist/behaviors/panel.mjs +994 -0
  126. package/dist/behaviors/popover.d.mts +28 -5
  127. package/dist/behaviors/popover.mjs +225 -24
  128. package/dist/behaviors/select.d.mts +5 -2
  129. package/dist/behaviors/select.mjs +1410 -117
  130. package/dist/behaviors/sidebar.d.mts +1 -1
  131. package/dist/behaviors/sidebar.mjs +13 -13
  132. package/dist/behaviors/slider.d.mts +1 -1
  133. package/dist/behaviors/slider.mjs +9 -9
  134. package/dist/behaviors/split-pane.d.mts +1 -1
  135. package/dist/behaviors/split-pane.mjs +7 -7
  136. package/dist/behaviors/suggestions.d.mts +27 -0
  137. package/dist/behaviors/suggestions.mjs +1089 -0
  138. package/dist/behaviors/svg-parse.d.mts +14 -0
  139. package/dist/behaviors/svg-parse.mjs +37 -0
  140. package/dist/behaviors/tabs.d.mts +2 -2
  141. package/dist/behaviors/tabs.mjs +25 -25
  142. package/dist/behaviors/tag-input.d.mts +23 -5
  143. package/dist/behaviors/tag-input.mjs +1359 -104
  144. package/dist/behaviors/theme-switcher.d.mts +24 -0
  145. package/dist/behaviors/theme-switcher.mjs +1981 -0
  146. package/dist/behaviors/theme.d.mts +15 -8
  147. package/dist/behaviors/theme.mjs +390 -28
  148. package/dist/behaviors/toast.d.mts +24 -25
  149. package/dist/behaviors/toast.mjs +1266 -88
  150. package/dist/behaviors/tooltip.d.mts +4 -0
  151. package/dist/behaviors/tooltip.mjs +378 -0
  152. package/dist/behaviors/tree-select.d.mts +69 -0
  153. package/dist/behaviors/tree-select.mjs +1907 -0
  154. package/dist/behaviors/tree.d.mts +1 -1
  155. package/dist/behaviors/tree.mjs +15 -15
  156. package/dist/behaviors/upload.d.mts +3 -2
  157. package/dist/behaviors/upload.mjs +1076 -66
  158. package/dist/cli.mjs +5 -6
  159. package/dist/components/ai-chat.css +666 -573
  160. package/dist/components/ai-diff.css +153 -132
  161. package/dist/components/ai-panel.css +351 -343
  162. package/dist/components/ai-tool.css +393 -238
  163. package/dist/components/autocomplete.css +61 -0
  164. package/dist/components/autocomplete.mjs +3 -0
  165. package/dist/components/back-top.css +34 -31
  166. package/dist/components/badge.css +44 -41
  167. package/dist/components/breadcrumb.css +67 -46
  168. package/dist/components/btn.css +80 -74
  169. package/dist/components/card.css +117 -106
  170. package/dist/components/cascader.css +311 -0
  171. package/dist/components/cascader.mjs +3 -0
  172. package/dist/components/chart-area.css +8 -2
  173. package/dist/components/chart-bar.css +95 -33
  174. package/dist/components/chart-gauge.css +14 -11
  175. package/dist/components/chart-graph.css +20 -17
  176. package/dist/components/chart-heatmap.css +96 -90
  177. package/dist/components/chart-line.css +8 -3
  178. package/dist/components/chart-pie.css +9 -6
  179. package/dist/components/chart-radar.css +8 -5
  180. package/dist/components/chart-scatter.css +9 -6
  181. package/dist/components/chart-sparkline.css +5 -2
  182. package/dist/components/chart-stack.css +14 -11
  183. package/dist/components/charts.css +164 -73
  184. package/dist/components/code-block.css +418 -0
  185. package/dist/components/code-block.mjs +4 -0
  186. package/dist/components/command-palette.css +138 -117
  187. package/dist/components/content.css +257 -251
  188. package/dist/components/copy.css +72 -44
  189. package/dist/components/datatable.css +423 -181
  190. package/dist/components/date-picker.css +135 -104
  191. package/dist/components/empty.css +68 -65
  192. package/dist/components/feedback.css +201 -183
  193. package/dist/components/form-validate.css +120 -0
  194. package/dist/components/form-validate.mjs +3 -0
  195. package/dist/components/form.css +150 -127
  196. package/dist/components/icon.css +102 -0
  197. package/dist/components/icon.mjs +3 -0
  198. package/dist/components/input.css +159 -104
  199. package/dist/components/kb-agent.css +188 -173
  200. package/dist/components/kb-data.css +257 -253
  201. package/dist/components/kb-ground.css +197 -185
  202. package/dist/components/kb-ingest.css +334 -350
  203. package/dist/components/kb-ops.css +265 -259
  204. package/dist/components/kb-perm.css +260 -271
  205. package/dist/components/kb-search.css +317 -360
  206. package/dist/components/kb.css +120 -109
  207. package/dist/components/layout.css +85 -82
  208. package/dist/components/material-chinese.css +73 -0
  209. package/dist/components/material-soviet.css +76 -0
  210. package/dist/components/material.css +275 -0
  211. package/dist/components/media.css +220 -166
  212. package/dist/components/mentions.css +189 -0
  213. package/dist/components/mentions.mjs +3 -0
  214. package/dist/components/menu.css +113 -105
  215. package/dist/components/modal.css +107 -112
  216. package/dist/components/nav.css +118 -115
  217. package/dist/components/notification.css +238 -174
  218. package/dist/components/pagination.css +56 -53
  219. package/dist/components/panel.css +66 -63
  220. package/dist/components/panel.mjs +1 -0
  221. package/dist/components/pill.css +81 -71
  222. package/dist/components/popover.css +67 -53
  223. package/dist/components/scroll-area.css +113 -110
  224. package/dist/components/segmented.css +146 -143
  225. package/dist/components/select.css +206 -186
  226. package/dist/components/sidebar.css +137 -127
  227. package/dist/components/slider.css +117 -114
  228. package/dist/components/split-pane.css +112 -109
  229. package/dist/components/stat.css +112 -106
  230. package/dist/components/steps.css +109 -103
  231. package/dist/components/switch.css +138 -134
  232. package/dist/components/table.css +131 -107
  233. package/dist/components/tabs.css +114 -108
  234. package/dist/components/tag-input.css +48 -133
  235. package/dist/components/tag.css +81 -71
  236. package/dist/components/theme-switcher.css +105 -0
  237. package/dist/components/theme-switcher.mjs +3 -0
  238. package/dist/components/toast.css +100 -86
  239. package/dist/components/toolbar.css +45 -42
  240. package/dist/components/tooltip.css +102 -43
  241. package/dist/components/tooltip.mjs +1 -0
  242. package/dist/components/tree-select.css +416 -0
  243. package/dist/components/tree-select.mjs +3 -0
  244. package/dist/components/upload.css +135 -92
  245. package/dist/fonts/LICENSES/ark-pixel/OFL.txt +96 -0
  246. package/dist/fonts/LICENSES/cubic-11/OFL.txt +108 -0
  247. package/dist/fonts/LICENSES/galmuri/LICENSE.txt +93 -0
  248. package/dist/fonts/OFL.txt +96 -0
  249. package/dist/fonts/README.md +14 -0
  250. package/dist/fonts/fusion-pixel-12px-zh-hans.woff2 +0 -0
  251. package/dist/index.d.mts +28 -14
  252. package/dist/index.mjs +20705 -9601
  253. package/dist/react.d.mts +91 -0
  254. package/dist/react.mjs +8208 -0
  255. package/dist/registry.json +130 -13
  256. package/dist/tokens/chinese.css +44 -0
  257. package/dist/tokens/colors.css +365 -1222
  258. package/dist/tokens/design.css +109 -0
  259. package/dist/tokens/dtcg.json +11198 -0
  260. package/dist/tokens/figma.variables.json +7017 -0
  261. package/dist/tokens/icon-masks.css +78 -0
  262. package/dist/tokens/pixel.css +50 -0
  263. package/dist/tokens/soviet.css +44 -0
  264. package/dist/tokens/style-profiles.css +36 -547
  265. package/dist/tokens/themes.json +308 -0
  266. package/dist/tokens/tokens-studio.json +6728 -0
  267. package/dist/tokens/typography.css +21 -18
  268. package/dist/tokens.css +1555 -1801
  269. package/dist/ui.css +11975 -9831
  270. package/dist/vue.d.mts +344 -0
  271. package/dist/vue.mjs +7781 -0
  272. package/docs/spec/ai-input-experience.md +75 -0
  273. package/docs/spec/ai-native.md +238 -147
  274. package/docs/spec/design-philosophy.md +189 -0
  275. package/docs/spec/design-primitives.md +196 -0
  276. package/docs/spec/kb-family.md +147 -115
  277. package/package.json +43 -8
  278. package/dist/retro-effects.css +0 -255
  279. package/dist/tokens/retro-effects.css +0 -255
  280. package/docs/research/2026-10-03-ai-kb-components.md +0 -392
  281. package/docs/research/2026-10-03-kb-permissions.md +0 -992
@@ -1,4 +1,4 @@
1
- /** 色调名:内置 5 语义名(经 --token-* 取色);`string & {}` 保自动补全同时放行 registerChartTone 注册的命名档 */
1
+ /** 色调名:内置 5 语义名(经 --icen-token-* 取色);`string & {}` 保自动补全同时放行 registerChartTone 注册的命名档 */
2
2
  type ChartTone = 'accent' | 'success' | 'warning' | 'error' | 'muted' | (string & {});
3
3
  interface ChartSeriesOptions extends ChartChromeOptions {
4
4
  labels: string[];
@@ -31,6 +31,14 @@ interface ChartSegmentsOptions extends ChartChromeOptions {
31
31
  * spec.series[0].tone = 'brand';
32
32
  */
33
33
  declare function registerChartTone(name: string, cssVar: string): void;
34
+ /**
35
+ * Largest-Triangle-Three-Buckets 降采样(纯函数)。
36
+ * 大点数序列渲染前的视觉保形抽样:保端点、保序(抽样序号严格递增)、
37
+ * 峰值/谷值优先保留。threshold < 3 或 ≥ 长度时原样返回(不抽样)。
38
+ * 标准实现(Steinarsson 2013):首点与末点必留,中间每桶取与
39
+ * 「前保点 + 下一桶质心」构成三角形面积最大的点。
40
+ */
41
+ declare function lttb<T>(points: T[], threshold: number, getX: (p: T) => number, getY: (p: T) => number): T[];
34
42
  /** 多系列系列项(ChartSpec 的 series 与各图型共用形态);tone 可为语义名或调色盘序号 1..6 */
35
43
  interface ChartSeriesSpec {
36
44
  name: string;
@@ -118,7 +126,7 @@ interface ChartHeatmapOptions extends ChartChromeOptions {
118
126
  /** 列数(周),默认按数据量推算(向上取整到整周) */
119
127
  weeks?: number;
120
128
  tone?: ChartTone;
121
- /** 本地化:周首日(0=周日,默认 1=周一;与 date-picker 的 data-date-picker-week-start 语义对齐)与标签文案(纯字符串,保持 JSON 可序列化) */
129
+ /** 本地化:周首日(0=周日,默认 1=周一;与 date-picker 的 data-icen-date-picker-week-start 语义对齐)与标签文案(纯字符串,保持 JSON 可序列化) */
122
130
  weekStart?: 0 | 1;
123
131
  labels?: ChartI18nLabels;
124
132
  emptyLabel?: string;
@@ -145,7 +153,7 @@ interface ChartCalendarOptions extends ChartChromeOptions {
145
153
  /** 精确形态:{date, value}[](与 dates+values 二选一,优先) */
146
154
  data?: HeatmapDatum[];
147
155
  tone?: ChartTone;
148
- /** 本地化:周首日(0=周日,默认 1=周一;与 date-picker 的 data-date-picker-week-start 语义对齐)与标签文案(纯字符串,保持 JSON 可序列化) */
156
+ /** 本地化:周首日(0=周日,默认 1=周一;与 date-picker 的 data-icen-date-picker-week-start 语义对齐)与标签文案(纯字符串,保持 JSON 可序列化) */
149
157
  weekStart?: 0 | 1;
150
158
  labels?: ChartI18nLabels;
151
159
  emptyLabel?: string;
@@ -194,6 +202,27 @@ interface ChartDims {
194
202
  /** 散点 size 字段(默认 'size') */
195
203
  size?: string;
196
204
  }
205
+ /** 标记线语义色(纯 JSON;缺省 muted 参考线) */
206
+ type ChartMarkTone = 'success' | 'warning' | 'error' | 'info';
207
+ /**
208
+ * 图表标记(纯 JSON,可序列化):
209
+ * - line:参考线——axis 'y' 画水平线(value 为数值),axis 'x' 画垂直线(value 为类目名或索引);
210
+ * - point:标记点——label 定位类目,seriesIndex 选系列(缺省首系列),value 可覆盖纵轴值,text 为标注文案。
211
+ * 无效标记(类目不存在 / 值 NaN)跳过并 console.warn 一次,不炸渲染。
212
+ */
213
+ type ChartMark = {
214
+ type: 'line';
215
+ axis: 'y' | 'x';
216
+ value: number | string;
217
+ label?: string;
218
+ tone?: ChartMarkTone;
219
+ } | {
220
+ type: 'point';
221
+ label: string;
222
+ seriesIndex?: number;
223
+ value?: number;
224
+ text?: string;
225
+ };
197
226
  /** 统一图表规格(纯 JSON;type 缺省由 inferChartType 推断) */
198
227
  interface ChartSpec {
199
228
  type?: string;
@@ -235,13 +264,24 @@ interface ChartSpec {
235
264
  i18n?: ChartI18nLabels & {
236
265
  weekStart?: 0 | 1;
237
266
  };
267
+ /** 大点数降采样(LTTB,仅 line/area/scatter 生效;vbar 类目语义不降采样):
268
+ * true → 阈值 1000;number → 自定阈值。发生抽样时头部行显示 faint 提示「已抽样 N→M 点」 */
269
+ downsample?: boolean | number;
270
+ /** 缩放/刷选(仅 line/area/vbar 生效):'x' 横向拖选;'brush' 自由框选(仍按类目索引区间切片)。
271
+ * 拖拽选区松开后按像素→类目索引映射重渲,派 icen:chart-zoom { chart, from, to };
272
+ * 头部出现「重置缩放」chip,双击 plot 也复原 */
273
+ zoom?: 'x' | 'brush';
274
+ /** 标记线/标记点(line/area/vbar 生效;无效项跳过 + warn 一次) */
275
+ marks?: ChartMark[];
276
+ /** 加载态:渲染骨架 shimmer(优先于空态) */
277
+ loading?: boolean;
238
278
  }
239
279
  /** 格式化描述符 → 函数(底层渲染器的 formatValue 槽) */
240
280
  declare function chartFormatValue(format?: ChartValueFormat): (value: number) => string;
241
281
  /**
242
282
  * 归一化 ChartSpec:字符串输入尝试 JSON.parse;类型别名纠正;数值容错转换;
243
283
  * data[] + dims pivot 到 labels/values/series/points。不抛异常——纠不了的
244
- * 字段丢弃,返回的 spec 一定可交给 infer/render(空数据走 .chart-empty)。
284
+ * 字段丢弃,返回的 spec 一定可交给 infer/render(空数据走 .icen-chart-empty)。
245
285
  */
246
286
  declare function normalizeChartSpec(raw: unknown): ChartSpec;
247
287
  /** 未指定 type 时的自动选型(确定性规则,AI 只给数据也能画对) */
@@ -267,19 +307,35 @@ interface ChartHandle {
267
307
  update(next: ChartSpec | unknown): void;
268
308
  /** icen:chart-<name> 监听糖(hover/click/dblclick/contextmenu);返回解绑函数 */
269
309
  on(name: ChartEventName, listener: (detail: ChartEventDetail, event: Event) => void): () => void;
310
+ /**
311
+ * 流式追加(line/area/vbar):复用当前 spec 对象 push 类目与点后重渲(交互委托不动),
312
+ * 超出 maxPoints 时头部淘汰;缩放窗开启时跟随尾部;与 downsample 同开时重渲后重新降采样。
313
+ * 非生效类型 no-op + console.warn 一次。
314
+ */
315
+ append(label: string, values: number[], opts?: {
316
+ maxPoints?: number;
317
+ }): void;
318
+ /**
319
+ * 导出 PNG dataURL(SVG 序列化 → canvas 按 scale 光栅化,默认 2x)。
320
+ * 诚实不抛:SSR / 无 canvas / 纯 DOM 图型(vbar 等无 SVG)返回 undefined;
321
+ * SVG→Image 光栅化异步——首次调用触发绘制返回 undefined,完成后同 scale 再次调用取回。
322
+ */
323
+ toDataURL?(opts?: {
324
+ scale?: number;
325
+ }): string | undefined;
270
326
  /** 清空渲染并解绑交互委托(destroy 后可重新 renderChart) */
271
327
  destroy(): void;
272
328
  }
273
329
  /**
274
330
  * 在图表容器上挂交互委托(幂等,沿用 __icenChartBound 标记):pointer / click /
275
- * dblclick / contextmenu 归一到 [data-chart-mark] 标记 → icen:chart-hover
331
+ * dblclick / contextmenu 归一到 [data-icen-chart-mark] 标记 → icen:chart-hover
276
332
  * (phase enter/move/leave)/ icen:chart-click / icen:chart-dblclick /
277
333
  * icen:chart-contextmenu(均 bubbles,detail 含 index/seriesIndex/seriesName/
278
334
  * label/value/指针坐标;右键默认 preventDefault),内置 tooltip portal 跟随指针。
279
335
  *
280
336
  * renderChart 内部即调它;12 个底层渲染器(renderVBar…renderScatter)收尾也会
281
337
  * 自动调用——**直调底层渲染器同样能收 icen:chart-\* 事件**,无需经过 renderChart
282
- * (detail.chart 报该渲染器的图型)。容器已处于某个绑定了委托的外层图表容器
338
+ * (detail.icen-chart 报该渲染器的图型)。容器已处于某个绑定了委托的外层图表容器
283
339
  * 内时自动跳过(renderChart → 底层渲染器路径,外层已覆盖该子树,防重复派发)。
284
340
  * 返回解绑函数(移除全部监听并复位标记;解绑后可重新 bind / 重新渲染)。
285
341
  */
@@ -289,7 +345,15 @@ declare function bindChartEvents(root: HTMLElement): () => void;
289
345
  * 渲染器,并在 el 上挂交互委托(hover/click/dblclick/contextmenu → icen:chart-*,
290
346
  * bubbles,detail 含 index/seriesIndex/seriesName/label/value/指针坐标)与可选
291
347
  * tooltip(spec.tooltip !== false 时 portal 跟随指针;右键默认 preventDefault)。
292
- * spec.title 有值时渲染 .chart-title。返回 { el, spec, update, on, destroy }。
348
+ * spec.title 有值时渲染 .icen-chart-title。返回 { el, spec, update, append, on, toDataURL, destroy }。
349
+ *
350
+ * 重度数据场景(spec 纯 JSON 直接可给):
351
+ * - loading:骨架 shimmer(优先于空态,根挂 .is-loading);
352
+ * - downsample:line/area/scatter 的 LTTB 降采样,抽样时头部行 faint 提示「已抽样 N→M 点」;
353
+ * - zoom('x'|'brush'):line/area/vbar 拖选缩放,派 icen:chart-zoom { chart, from, to }
354
+ * (类目索引区间含端点),头部「重置缩放」chip / 双击 plot 复原;位移 <5px 视为点击;
355
+ * - marks:line/area/vbar 标记线/标记点(无效项跳过 + warn 一次);
356
+ * - append(label, values, { maxPoints }):line/area/vbar 流式追加(头部淘汰 + 缩放窗跟尾)。
293
357
  */
294
358
  declare function renderChart(el: HTMLElement, raw: ChartSpec | unknown): ChartHandle;
295
359
  /** 图谱节点(GraphRAG 实体)。weight 缺省以度中心性(邻边数)参与定尺寸 */
@@ -395,4 +459,4 @@ declare function renderGraph(el: HTMLElement, raw: GraphSpec | unknown): DatumCh
395
459
  */
396
460
  declare function renderMap(el: HTMLElement, raw: MapSpec | unknown): DatumChartHandle<MapSpec>;
397
461
 
398
- export { type ChartCalendarOptions, type ChartChromeOptions, type ChartDatum, type ChartDatumDetail, type ChartDims, type ChartEventDetail, type ChartEventName, type ChartGaugeOptions, type ChartHandle, type ChartHeatmapOptions, type ChartI18nLabels, type ChartLineOptions, type ChartMarkData, type ChartPointSpec, type ChartRadarOptions, type ChartScatterOptions, type ChartSegment, type ChartSegmentsOptions, type ChartSeriesOptions, type ChartSeriesSpec, type ChartSpec, type ChartTone, type ChartType, type ChartVBarOptions, type ChartValueFormat, type DatumChartHandle, type GraphEdgeSpec, type GraphLayoutOptions, type GraphNodeSpec, type GraphSpec, type HeatmapDatum, type MapPointSpec, type MapSpec, type RadarSeries, bindChartEvents, chartFormatValue, inferChartType, layoutGraph, normalizeChartSpec, registerChartTone, renderArea, renderCalendar, renderChart, renderDonut, renderGauge, renderGraph, renderHBar, renderHeatmap, renderLine, renderMap, renderRadar, renderScatter, renderSparkline, renderStack, renderVBar };
462
+ export { type ChartCalendarOptions, type ChartChromeOptions, type ChartDatum, type ChartDatumDetail, type ChartDims, type ChartEventDetail, type ChartEventName, type ChartGaugeOptions, type ChartHandle, type ChartHeatmapOptions, type ChartI18nLabels, type ChartLineOptions, type ChartMark, type ChartMarkData, type ChartMarkTone, type ChartPointSpec, type ChartRadarOptions, type ChartScatterOptions, type ChartSegment, type ChartSegmentsOptions, type ChartSeriesOptions, type ChartSeriesSpec, type ChartSpec, type ChartTone, type ChartType, type ChartVBarOptions, type ChartValueFormat, type DatumChartHandle, type GraphEdgeSpec, type GraphLayoutOptions, type GraphNodeSpec, type GraphSpec, type HeatmapDatum, type MapPointSpec, type MapSpec, type RadarSeries, bindChartEvents, chartFormatValue, inferChartType, layoutGraph, lttb, normalizeChartSpec, registerChartTone, renderArea, renderCalendar, renderChart, renderDonut, renderGauge, renderGraph, renderHBar, renderHeatmap, renderLine, renderMap, renderRadar, renderScatter, renderSparkline, renderStack, renderVBar };