@icen.ai/ui 0.8.1 → 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.
- package/AGENTS.md +176 -75
- package/README.md +66 -88
- package/dist/base.css +208 -179
- package/dist/behaviors/accordion.mjs +8 -8
- package/dist/behaviors/ai-branch.d.mts +19 -0
- package/dist/behaviors/ai-branch.mjs +1133 -0
- package/dist/behaviors/ai-chat.d.mts +12 -10
- package/dist/behaviors/ai-chat.mjs +1125 -155
- package/dist/behaviors/ai-composer.d.mts +44 -12
- package/dist/behaviors/ai-composer.mjs +2084 -523
- package/dist/behaviors/ai-core.d.mts +1 -1
- package/dist/behaviors/ai-core.mjs +1016 -107
- package/dist/behaviors/ai-diff.mjs +1019 -127
- package/dist/behaviors/ai-feedback.d.mts +26 -0
- package/dist/behaviors/ai-feedback.mjs +1212 -0
- package/dist/behaviors/ai-panel.d.mts +21 -7
- package/dist/behaviors/ai-panel.mjs +1308 -264
- package/dist/behaviors/ai-provider.mjs +1003 -101
- package/dist/behaviors/ai-threads.d.mts +38 -0
- package/dist/behaviors/ai-threads.mjs +1233 -0
- package/dist/behaviors/ai-tool.d.mts +2 -2
- package/dist/behaviors/ai-tool.mjs +2042 -396
- package/dist/behaviors/ai-tools.d.mts +89 -16
- package/dist/behaviors/ai-tools.mjs +4453 -372
- package/dist/behaviors/autocomplete.d.mts +53 -0
- package/dist/behaviors/autocomplete.mjs +1600 -0
- package/dist/behaviors/back-top.d.mts +1 -1
- package/dist/behaviors/back-top.mjs +951 -14
- package/dist/behaviors/carousel.d.mts +1 -1
- package/dist/behaviors/carousel.mjs +906 -11
- package/dist/behaviors/cascader.d.mts +48 -0
- package/dist/behaviors/cascader.mjs +1853 -0
- package/dist/behaviors/charts.d.mts +174 -8
- package/dist/behaviors/charts.mjs +2632 -192
- package/dist/behaviors/code-block.d.mts +36 -0
- package/dist/behaviors/code-block.mjs +1611 -0
- package/dist/behaviors/command-palette.d.mts +9 -6
- package/dist/behaviors/command-palette.mjs +161 -59
- package/dist/behaviors/context-menu.d.mts +9 -8
- package/dist/behaviors/context-menu.mjs +1112 -44
- package/dist/behaviors/controls.d.mts +13 -13
- package/dist/behaviors/controls.mjs +989 -130
- package/dist/behaviors/copy.d.mts +21 -2
- package/dist/behaviors/copy.mjs +1206 -42
- package/dist/behaviors/datatable.d.mts +53 -3
- package/dist/behaviors/datatable.mjs +1963 -207
- package/dist/behaviors/date-picker.d.mts +0 -1
- package/dist/behaviors/date-picker.mjs +1340 -293
- package/dist/behaviors/design.d.mts +54 -0
- package/dist/behaviors/design.mjs +109 -0
- package/dist/behaviors/dropdown.d.mts +5 -6
- package/dist/behaviors/dropdown.mjs +262 -110
- package/dist/behaviors/events.d.mts +313 -3
- package/dist/behaviors/events.mjs +47 -2
- package/dist/behaviors/feedback.d.mts +30 -0
- package/dist/behaviors/feedback.mjs +296 -0
- package/dist/behaviors/focus.d.mts +8 -0
- package/dist/behaviors/focus.mjs +24 -0
- package/dist/behaviors/form-validate.d.mts +102 -0
- package/dist/behaviors/form-validate.mjs +6091 -0
- package/dist/behaviors/i18n.d.mts +789 -0
- package/dist/behaviors/i18n.mjs +1711 -0
- package/dist/behaviors/icons.d.mts +93 -0
- package/dist/behaviors/icons.mjs +113 -0
- package/dist/behaviors/input.d.mts +9 -1
- package/dist/behaviors/input.mjs +1056 -60
- package/dist/behaviors/kb-access.d.mts +34 -0
- package/dist/behaviors/kb-access.mjs +2459 -0
- package/dist/behaviors/kb-acl.d.mts +50 -0
- package/dist/behaviors/kb-acl.mjs +1345 -0
- package/dist/behaviors/kb-answer.d.mts +38 -0
- package/dist/behaviors/kb-answer.mjs +3707 -0
- package/dist/behaviors/kb-audit.d.mts +23 -0
- package/dist/behaviors/kb-audit.mjs +1297 -0
- package/dist/behaviors/kb-canvas.d.mts +44 -0
- package/dist/behaviors/kb-canvas.mjs +1512 -0
- package/dist/behaviors/kb-chain.d.mts +15 -0
- package/dist/behaviors/kb-chain.mjs +1192 -0
- package/dist/behaviors/kb-checkpoint.d.mts +16 -0
- package/dist/behaviors/kb-checkpoint.mjs +1492 -0
- package/dist/behaviors/kb-chunks.d.mts +31 -0
- package/dist/behaviors/kb-chunks.mjs +1414 -0
- package/dist/behaviors/kb-citation.d.mts +38 -0
- package/dist/behaviors/kb-citation.mjs +1699 -0
- package/dist/behaviors/kb-clarify.d.mts +20 -0
- package/dist/behaviors/kb-clarify.mjs +1176 -0
- package/dist/behaviors/kb-conflict.d.mts +22 -0
- package/dist/behaviors/kb-conflict.mjs +1206 -0
- package/dist/behaviors/kb-connector.d.mts +17 -0
- package/dist/behaviors/kb-connector.mjs +1303 -0
- package/dist/behaviors/kb-core.d.mts +534 -0
- package/dist/behaviors/kb-core.mjs +1805 -0
- package/dist/behaviors/kb-eval.d.mts +22 -0
- package/dist/behaviors/kb-eval.mjs +2235 -0
- package/dist/behaviors/kb-explain.d.mts +11 -0
- package/dist/behaviors/kb-explain.mjs +1165 -0
- package/dist/behaviors/kb-filter.d.mts +31 -0
- package/dist/behaviors/kb-filter.mjs +2417 -0
- package/dist/behaviors/kb-gap.d.mts +27 -0
- package/dist/behaviors/kb-gap.mjs +1195 -0
- package/dist/behaviors/kb-hittest.d.mts +34 -0
- package/dist/behaviors/kb-hittest.mjs +1352 -0
- package/dist/behaviors/kb-metadata.d.mts +29 -0
- package/dist/behaviors/kb-metadata.mjs +1248 -0
- package/dist/behaviors/kb-passage.d.mts +41 -0
- package/dist/behaviors/kb-passage.mjs +1469 -0
- package/dist/behaviors/kb-pipeline.d.mts +18 -0
- package/dist/behaviors/kb-pipeline.mjs +1301 -0
- package/dist/behaviors/kb-qa.d.mts +26 -0
- package/dist/behaviors/kb-qa.mjs +1260 -0
- package/dist/behaviors/kb-rerank.d.mts +20 -0
- package/dist/behaviors/kb-rerank.mjs +1248 -0
- package/dist/behaviors/kb-retrieval.d.mts +49 -0
- package/dist/behaviors/kb-retrieval.mjs +2585 -0
- package/dist/behaviors/kb-review.d.mts +44 -0
- package/dist/behaviors/kb-review.mjs +2282 -0
- package/dist/behaviors/kb-sandbox.d.mts +33 -0
- package/dist/behaviors/kb-sandbox.mjs +1247 -0
- package/dist/behaviors/kb-segment.d.mts +32 -0
- package/dist/behaviors/kb-segment.mjs +1431 -0
- package/dist/behaviors/kb-select.d.mts +24 -0
- package/dist/behaviors/kb-select.mjs +1989 -0
- package/dist/behaviors/kb-sources.d.mts +27 -0
- package/dist/behaviors/kb-sources.mjs +1287 -0
- package/dist/behaviors/kb-sql.d.mts +43 -0
- package/dist/behaviors/kb-sql.mjs +1865 -0
- package/dist/behaviors/kb-trace.d.mts +16 -0
- package/dist/behaviors/kb-trace.mjs +1328 -0
- package/dist/behaviors/kb-visibility.d.mts +44 -0
- package/dist/behaviors/kb-visibility.mjs +1331 -0
- package/dist/behaviors/kb-who-can.d.mts +32 -0
- package/dist/behaviors/kb-who-can.mjs +2216 -0
- package/dist/behaviors/mentions.d.mts +93 -0
- package/dist/behaviors/mentions.mjs +2152 -0
- package/dist/behaviors/modal.d.mts +4 -3
- package/dist/behaviors/modal.mjs +1055 -33
- package/dist/behaviors/nav.d.mts +1 -1
- package/dist/behaviors/nav.mjs +6 -6
- package/dist/behaviors/notification.d.mts +16 -8
- package/dist/behaviors/notification.mjs +1615 -265
- package/dist/behaviors/panel.d.mts +4 -0
- package/dist/behaviors/panel.mjs +994 -0
- package/dist/behaviors/popover.d.mts +28 -5
- package/dist/behaviors/popover.mjs +225 -24
- package/dist/behaviors/select.d.mts +5 -2
- package/dist/behaviors/select.mjs +1410 -117
- package/dist/behaviors/sidebar.d.mts +1 -1
- package/dist/behaviors/sidebar.mjs +13 -13
- package/dist/behaviors/slider.d.mts +1 -1
- package/dist/behaviors/slider.mjs +9 -9
- package/dist/behaviors/split-pane.d.mts +1 -1
- package/dist/behaviors/split-pane.mjs +7 -7
- package/dist/behaviors/suggestions.d.mts +27 -0
- package/dist/behaviors/suggestions.mjs +1089 -0
- package/dist/behaviors/svg-parse.d.mts +14 -0
- package/dist/behaviors/svg-parse.mjs +37 -0
- package/dist/behaviors/tabs.d.mts +2 -2
- package/dist/behaviors/tabs.mjs +25 -25
- package/dist/behaviors/tag-input.d.mts +23 -5
- package/dist/behaviors/tag-input.mjs +1359 -104
- package/dist/behaviors/theme-switcher.d.mts +24 -0
- package/dist/behaviors/theme-switcher.mjs +1981 -0
- package/dist/behaviors/theme.d.mts +15 -8
- package/dist/behaviors/theme.mjs +390 -28
- package/dist/behaviors/toast.d.mts +24 -25
- package/dist/behaviors/toast.mjs +1266 -88
- package/dist/behaviors/tooltip.d.mts +4 -0
- package/dist/behaviors/tooltip.mjs +378 -0
- package/dist/behaviors/tree-select.d.mts +69 -0
- package/dist/behaviors/tree-select.mjs +1907 -0
- package/dist/behaviors/tree.d.mts +1 -1
- package/dist/behaviors/tree.mjs +15 -15
- package/dist/behaviors/upload.d.mts +3 -2
- package/dist/behaviors/upload.mjs +1076 -66
- package/dist/cli.mjs +5 -6
- package/dist/components/ai-branch.mjs +3 -0
- package/dist/components/ai-chat.css +846 -458
- package/dist/components/ai-diff.css +153 -132
- package/dist/components/ai-feedback.mjs +3 -0
- package/dist/components/ai-panel.css +495 -270
- package/dist/components/ai-threads.mjs +3 -0
- package/dist/components/ai-tool.css +393 -238
- package/dist/components/autocomplete.css +61 -0
- package/dist/components/autocomplete.mjs +3 -0
- package/dist/components/back-top.css +34 -31
- package/dist/components/badge.css +44 -41
- package/dist/components/breadcrumb.css +67 -46
- package/dist/components/btn.css +80 -74
- package/dist/components/card.css +117 -106
- package/dist/components/cascader.css +311 -0
- package/dist/components/cascader.mjs +3 -0
- package/dist/components/chart-area.css +8 -2
- package/dist/components/chart-bar.css +95 -33
- package/dist/components/chart-gauge.css +14 -11
- package/dist/components/chart-graph.css +60 -0
- package/dist/components/chart-graph.mjs +4 -0
- package/dist/components/chart-heatmap.css +96 -90
- package/dist/components/chart-line.css +8 -3
- package/dist/components/chart-map.mjs +3 -0
- package/dist/components/chart-pie.css +9 -6
- package/dist/components/chart-radar.css +8 -5
- package/dist/components/chart-scatter.css +9 -6
- package/dist/components/chart-scatter.mjs +1 -1
- package/dist/components/chart-sparkline.css +5 -2
- package/dist/components/chart-stack.css +14 -11
- package/dist/components/charts.css +190 -67
- package/dist/components/charts.mjs +1 -0
- package/dist/components/code-block.css +418 -0
- package/dist/components/code-block.mjs +4 -0
- package/dist/components/command-palette.css +138 -117
- package/dist/components/content.css +257 -251
- package/dist/components/copy.css +72 -44
- package/dist/components/datatable.css +423 -181
- package/dist/components/date-picker.css +135 -104
- package/dist/components/empty.css +68 -65
- package/dist/components/feedback.css +201 -183
- package/dist/components/form-validate.css +120 -0
- package/dist/components/form-validate.mjs +3 -0
- package/dist/components/form.css +150 -127
- package/dist/components/icon.css +102 -0
- package/dist/components/icon.mjs +3 -0
- package/dist/components/input.css +159 -104
- package/dist/components/kb-access.mjs +4 -0
- package/dist/components/kb-acl.mjs +4 -0
- package/dist/components/kb-agent.css +496 -0
- package/dist/components/kb-answer.mjs +4 -0
- package/dist/components/kb-audit.mjs +4 -0
- package/dist/components/kb-canvas.mjs +4 -0
- package/dist/components/kb-chain.mjs +4 -0
- package/dist/components/kb-checkpoint.mjs +4 -0
- package/dist/components/kb-chunks.mjs +4 -0
- package/dist/components/kb-citation.mjs +4 -0
- package/dist/components/kb-clarify.mjs +4 -0
- package/dist/components/kb-conflict.mjs +4 -0
- package/dist/components/kb-connector.mjs +4 -0
- package/dist/components/kb-data.css +653 -0
- package/dist/components/kb-eval.mjs +4 -0
- package/dist/components/kb-explain.mjs +4 -0
- package/dist/components/kb-filter.mjs +4 -0
- package/dist/components/kb-gap.mjs +4 -0
- package/dist/components/kb-ground.css +578 -0
- package/dist/components/kb-hittest.mjs +4 -0
- package/dist/components/kb-ingest.css +882 -0
- package/dist/components/kb-metadata.mjs +4 -0
- package/dist/components/kb-ops.css +554 -0
- package/dist/components/kb-passage.mjs +4 -0
- package/dist/components/kb-perm.css +433 -0
- package/dist/components/kb-pipeline.mjs +4 -0
- package/dist/components/kb-qa.mjs +4 -0
- package/dist/components/kb-rerank.mjs +4 -0
- package/dist/components/kb-retrieval.mjs +4 -0
- package/dist/components/kb-review.mjs +4 -0
- package/dist/components/kb-sandbox.mjs +4 -0
- package/dist/components/kb-search.css +897 -0
- package/dist/components/kb-segment.mjs +4 -0
- package/dist/components/kb-sources.mjs +4 -0
- package/dist/components/kb-sql.mjs +4 -0
- package/dist/components/kb-trace.mjs +4 -0
- package/dist/components/kb-visibility.mjs +4 -0
- package/dist/components/kb-who-can.mjs +4 -0
- package/dist/components/kb.css +263 -0
- package/dist/components/kb.mjs +9 -0
- package/dist/components/layout.css +85 -82
- package/dist/components/material-chinese.css +73 -0
- package/dist/components/material-soviet.css +76 -0
- package/dist/components/material.css +275 -0
- package/dist/components/media.css +220 -166
- package/dist/components/mentions.css +189 -0
- package/dist/components/mentions.mjs +3 -0
- package/dist/components/menu.css +113 -105
- package/dist/components/modal.css +107 -112
- package/dist/components/nav.css +118 -115
- package/dist/components/notification.css +238 -174
- package/dist/components/pagination.css +56 -53
- package/dist/components/panel.css +66 -63
- package/dist/components/panel.mjs +1 -0
- package/dist/components/pill.css +81 -71
- package/dist/components/popover.css +67 -53
- package/dist/components/scroll-area.css +113 -110
- package/dist/components/segmented.css +146 -143
- package/dist/components/select.css +206 -186
- package/dist/components/sidebar.css +137 -127
- package/dist/components/slider.css +117 -114
- package/dist/components/split-pane.css +112 -109
- package/dist/components/stat.css +112 -106
- package/dist/components/steps.css +109 -103
- package/dist/components/switch.css +138 -134
- package/dist/components/table.css +131 -107
- package/dist/components/tabs.css +114 -108
- package/dist/components/tag-input.css +48 -133
- package/dist/components/tag.css +81 -71
- package/dist/components/theme-switcher.css +105 -0
- package/dist/components/theme-switcher.mjs +3 -0
- package/dist/components/toast.css +100 -86
- package/dist/components/toolbar.css +45 -42
- package/dist/components/tooltip.css +102 -43
- package/dist/components/tooltip.mjs +1 -0
- package/dist/components/tree-select.css +416 -0
- package/dist/components/tree-select.mjs +3 -0
- package/dist/components/upload.css +135 -92
- package/dist/fonts/LICENSES/ark-pixel/OFL.txt +96 -0
- package/dist/fonts/LICENSES/cubic-11/OFL.txt +108 -0
- package/dist/fonts/LICENSES/galmuri/LICENSE.txt +93 -0
- package/dist/fonts/OFL.txt +96 -0
- package/dist/fonts/README.md +14 -0
- package/dist/fonts/fusion-pixel-12px-zh-hans.woff2 +0 -0
- package/dist/index.d.mts +64 -15
- package/dist/index.mjs +28049 -8595
- package/dist/react.d.mts +91 -0
- package/dist/react.mjs +8208 -0
- package/dist/registry.json +454 -15
- package/dist/tokens/chinese.css +44 -0
- package/dist/tokens/colors.css +365 -1222
- package/dist/tokens/design.css +109 -0
- package/dist/tokens/dtcg.json +11198 -0
- package/dist/tokens/figma.variables.json +7017 -0
- package/dist/tokens/icon-masks.css +78 -0
- package/dist/tokens/pixel.css +50 -0
- package/dist/tokens/soviet.css +44 -0
- package/dist/tokens/style-profiles.css +36 -547
- package/dist/tokens/themes.json +308 -0
- package/dist/tokens/tokens-studio.json +6728 -0
- package/dist/tokens/typography.css +21 -18
- package/dist/tokens.css +1555 -1801
- package/dist/ui.css +16147 -8597
- package/dist/vue.d.mts +344 -0
- package/dist/vue.mjs +7781 -0
- package/docs/spec/ai-input-experience.md +75 -0
- package/docs/spec/ai-native.md +238 -147
- package/docs/spec/design-philosophy.md +189 -0
- package/docs/spec/design-primitives.md +196 -0
- package/docs/spec/kb-family.md +475 -0
- package/package.json +42 -7
- package/dist/retro-effects.css +0 -255
- package/dist/tokens/retro-effects.css +0 -255
|
@@ -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,8 +345,118 @@ 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;
|
|
359
|
+
/** 图谱节点(GraphRAG 实体)。weight 缺省以度中心性(邻边数)参与定尺寸 */
|
|
360
|
+
interface GraphNodeSpec {
|
|
361
|
+
id: string;
|
|
362
|
+
label?: string;
|
|
363
|
+
/** 簇 key(社区/Leiden id 等):配色按簇索引走既有调色盘 */
|
|
364
|
+
cluster?: string;
|
|
365
|
+
/** 节点权重(映射半径 6–18px);缺省用度数 */
|
|
366
|
+
weight?: number;
|
|
367
|
+
/** 原始元数据:事件 datum 原样回传(实体卡数据源) */
|
|
368
|
+
meta?: Record<string, unknown>;
|
|
369
|
+
}
|
|
370
|
+
/** 图谱边(默认无向;directed 时带箭头)。weight 映射线宽 0.6–2.5px */
|
|
371
|
+
interface GraphEdgeSpec {
|
|
372
|
+
source: string;
|
|
373
|
+
target: string;
|
|
374
|
+
weight?: number;
|
|
375
|
+
}
|
|
376
|
+
interface GraphSpec extends ChartSpec {
|
|
377
|
+
type: 'graph';
|
|
378
|
+
nodes: GraphNodeSpec[];
|
|
379
|
+
edges: GraphEdgeSpec[];
|
|
380
|
+
/** 有向图:边带箭头(默认无向) */
|
|
381
|
+
directed?: boolean;
|
|
382
|
+
/** 簇 key → 显示名(图例 / tooltip) */
|
|
383
|
+
clusterLabels?: Record<string, string>;
|
|
384
|
+
}
|
|
385
|
+
/** 嵌入地图点:x/y 为预投影 2D 坐标(UMAP/t-SNE 产物;本组件只做视口缩放,不算投影) */
|
|
386
|
+
interface MapPointSpec {
|
|
387
|
+
id: string;
|
|
388
|
+
x: number;
|
|
389
|
+
y: number;
|
|
390
|
+
cluster?: string;
|
|
391
|
+
label?: string;
|
|
392
|
+
meta?: Record<string, unknown>;
|
|
393
|
+
}
|
|
394
|
+
interface MapSpec extends ChartSpec {
|
|
395
|
+
type: 'map';
|
|
396
|
+
points: MapPointSpec[];
|
|
397
|
+
/** 簇 key → 显示名(图例) */
|
|
398
|
+
clusters?: Record<string, string>;
|
|
399
|
+
}
|
|
400
|
+
/** icen:chart-* 的 datum 负载:graph 命中节点 / map 命中点(meta 原样回传) */
|
|
401
|
+
interface ChartDatum {
|
|
402
|
+
id: string;
|
|
403
|
+
label: string;
|
|
404
|
+
cluster?: string;
|
|
405
|
+
meta?: Record<string, unknown>;
|
|
406
|
+
}
|
|
407
|
+
/** graph / map 的事件 detail:既有 ChartEventDetail + datum */
|
|
408
|
+
interface ChartDatumDetail extends ChartEventDetail {
|
|
409
|
+
datum?: ChartDatum;
|
|
410
|
+
}
|
|
411
|
+
/** graph / map 句柄(对齐 ChartHandle 形状;事件 detail 换 ChartDatumDetail) */
|
|
412
|
+
interface DatumChartHandle<S extends GraphSpec | MapSpec = GraphSpec | MapSpec> {
|
|
413
|
+
el: HTMLElement;
|
|
414
|
+
/** 归一后的当前规格 */
|
|
415
|
+
spec: S;
|
|
416
|
+
/** 原地重渲染(graph 重新布局;保留事件委托与句柄) */
|
|
417
|
+
update(next: S | unknown): void;
|
|
418
|
+
/** icen:chart-<name> 监听糖(hover/click/dblclick/contextmenu);返回解绑函数 */
|
|
419
|
+
on(name: ChartEventName, listener: (detail: ChartDatumDetail, event: Event) => void): () => void;
|
|
420
|
+
/** 清空渲染并解绑委托(destroy 后可重新渲染) */
|
|
421
|
+
destroy(): void;
|
|
422
|
+
}
|
|
423
|
+
interface GraphLayoutOptions {
|
|
424
|
+
/** 布局域宽(默认 320) */
|
|
425
|
+
width?: number;
|
|
426
|
+
/** 布局域高(默认 200) */
|
|
427
|
+
height?: number;
|
|
428
|
+
/** 松弛轮数(默认 300) */
|
|
429
|
+
iterations?: number;
|
|
430
|
+
/** 初始环相位偏移(度,默认 0)。无随机源——同输入 + 同 seed 必同布局 */
|
|
431
|
+
seed?: number;
|
|
432
|
+
}
|
|
433
|
+
/** 确定性力导向布局(纯函数,导出便于测试):环初始化 → 松弛 → fit → id → {x, y} */
|
|
434
|
+
declare function layoutGraph(nodes: Array<{
|
|
435
|
+
id: unknown;
|
|
436
|
+
}>, edges: Array<{
|
|
437
|
+
source: unknown;
|
|
438
|
+
target: unknown;
|
|
439
|
+
}>, opts?: GraphLayoutOptions): Map<string, {
|
|
440
|
+
x: number;
|
|
441
|
+
y: number;
|
|
442
|
+
}>;
|
|
443
|
+
/**
|
|
444
|
+
* 力导向知识图谱(GraphRAG 实体关系)。确定性布局(同数据同布局,无随机源);
|
|
445
|
+
* 节点半径 6–18px(weight 归一,缺省用度中心性)、边宽 0.6–2.5px(line-soft)、
|
|
446
|
+
* 簇着色走既有调色盘(无 cluster 单色 tone);节点拖拽 = pointer + 局部松弛
|
|
447
|
+
* 20 轮(rAF 批处理);hover 显示节点 label(≤8 字截断)+ 内置 tooltip;
|
|
448
|
+
* 事件走既有通道 icen:chart-hover/click/dblclick/contextmenu,detail.datum =
|
|
449
|
+
* {id, label, cluster?, meta?}(点击节点回实体卡数据)。图例可点击隐藏簇
|
|
450
|
+
* (icen:chart-legend-toggle;边随任一端簇隐藏淡化)。
|
|
451
|
+
*/
|
|
452
|
+
declare function renderGraph(el: HTMLElement, raw: GraphSpec | unknown): DatumChartHandle<GraphSpec>;
|
|
453
|
+
/**
|
|
454
|
+
* embedding 2D 散点地图:坐标为预投影值(UMAP/t-SNE 产物,本函数只做视口
|
|
455
|
+
* min-max 缩放,不算投影);无轴刻度只留细虚线网格;点 4px 半透明
|
|
456
|
+
* (fill-opacity .7,高密度层叠可辨);簇着色走既有调色盘 + 可点击图例。
|
|
457
|
+
* 点击点 → icen:chart-click(detail.datum = {id, label, cluster?, meta?},
|
|
458
|
+
* 点选回 chunk)。TODO: lasso 框选(icen:chart-select + 命中列表),暂不做。
|
|
459
|
+
*/
|
|
460
|
+
declare function renderMap(el: HTMLElement, raw: MapSpec | unknown): DatumChartHandle<MapSpec>;
|
|
295
461
|
|
|
296
|
-
export { type ChartCalendarOptions, type ChartChromeOptions, 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 HeatmapDatum, type RadarSeries, bindChartEvents, chartFormatValue, inferChartType, normalizeChartSpec, registerChartTone, renderArea, renderCalendar, renderChart, renderDonut, renderGauge, renderHBar, renderHeatmap, renderLine, 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 };
|