@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.
- package/AGENTS.md +138 -80
- package/README.md +66 -91
- package/dist/base.css +208 -179
- package/dist/behaviors/accordion.mjs +8 -8
- package/dist/behaviors/ai-branch.d.mts +1 -1
- package/dist/behaviors/ai-branch.mjs +1010 -94
- package/dist/behaviors/ai-chat.d.mts +7 -7
- package/dist/behaviors/ai-chat.mjs +1071 -161
- package/dist/behaviors/ai-composer.d.mts +44 -12
- package/dist/behaviors/ai-composer.mjs +1997 -524
- 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 +1 -1
- package/dist/behaviors/ai-feedback.mjs +1035 -126
- package/dist/behaviors/ai-panel.d.mts +8 -8
- package/dist/behaviors/ai-panel.mjs +1284 -266
- package/dist/behaviors/ai-provider.mjs +1003 -101
- package/dist/behaviors/ai-threads.d.mts +1 -1
- package/dist/behaviors/ai-threads.mjs +1068 -154
- package/dist/behaviors/ai-tool.d.mts +2 -2
- package/dist/behaviors/ai-tool.mjs +2037 -396
- package/dist/behaviors/ai-tools.d.mts +89 -16
- package/dist/behaviors/ai-tools.mjs +4448 -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 +72 -8
- package/dist/behaviors/charts.mjs +1901 -256
- 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 +120 -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 +1 -1
- package/dist/behaviors/kb-access.mjs +2129 -239
- package/dist/behaviors/kb-acl.d.mts +6 -6
- package/dist/behaviors/kb-acl.mjs +1119 -179
- package/dist/behaviors/kb-answer.mjs +2070 -418
- package/dist/behaviors/kb-audit.d.mts +1 -1
- package/dist/behaviors/kb-audit.mjs +1076 -154
- package/dist/behaviors/kb-canvas.mjs +1100 -177
- package/dist/behaviors/kb-chain.mjs +1022 -100
- package/dist/behaviors/kb-checkpoint.d.mts +1 -1
- package/dist/behaviors/kb-checkpoint.mjs +1319 -169
- package/dist/behaviors/kb-chunks.mjs +1152 -213
- package/dist/behaviors/kb-citation.d.mts +1 -1
- package/dist/behaviors/kb-citation.mjs +1201 -179
- package/dist/behaviors/kb-clarify.mjs +1058 -130
- package/dist/behaviors/kb-conflict.mjs +1041 -119
- package/dist/behaviors/kb-connector.mjs +1104 -176
- package/dist/behaviors/kb-core.d.mts +6 -1
- package/dist/behaviors/kb-core.mjs +1077 -162
- package/dist/behaviors/kb-eval.mjs +1971 -144
- package/dist/behaviors/kb-explain.d.mts +1 -1
- package/dist/behaviors/kb-explain.mjs +1024 -102
- package/dist/behaviors/kb-filter.mjs +2008 -178
- package/dist/behaviors/kb-gap.d.mts +1 -1
- package/dist/behaviors/kb-gap.mjs +1043 -121
- package/dist/behaviors/kb-hittest.d.mts +1 -1
- package/dist/behaviors/kb-hittest.mjs +1093 -150
- package/dist/behaviors/kb-metadata.mjs +1052 -130
- package/dist/behaviors/kb-passage.d.mts +2 -2
- package/dist/behaviors/kb-passage.mjs +1101 -161
- package/dist/behaviors/kb-pipeline.d.mts +2 -2
- package/dist/behaviors/kb-pipeline.mjs +1082 -162
- package/dist/behaviors/kb-qa.mjs +1088 -160
- package/dist/behaviors/kb-rerank.mjs +1047 -114
- package/dist/behaviors/kb-retrieval.mjs +2063 -224
- package/dist/behaviors/kb-review.mjs +1990 -159
- package/dist/behaviors/kb-sandbox.d.mts +1 -1
- package/dist/behaviors/kb-sandbox.mjs +1026 -104
- package/dist/behaviors/kb-segment.mjs +1111 -179
- package/dist/behaviors/kb-select.d.mts +24 -0
- package/dist/behaviors/kb-select.mjs +1989 -0
- package/dist/behaviors/kb-sources.d.mts +1 -1
- package/dist/behaviors/kb-sources.mjs +1084 -170
- package/dist/behaviors/kb-sql.d.mts +1 -1
- package/dist/behaviors/kb-sql.mjs +1143 -226
- package/dist/behaviors/kb-trace.d.mts +1 -1
- package/dist/behaviors/kb-trace.mjs +1042 -128
- package/dist/behaviors/kb-visibility.mjs +1086 -158
- package/dist/behaviors/kb-who-can.mjs +1974 -137
- 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-chat.css +666 -573
- package/dist/components/ai-diff.css +153 -132
- package/dist/components/ai-panel.css +351 -343
- 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 +20 -17
- package/dist/components/chart-heatmap.css +96 -90
- package/dist/components/chart-line.css +8 -3
- 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-sparkline.css +5 -2
- package/dist/components/chart-stack.css +14 -11
- package/dist/components/charts.css +164 -73
- 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-agent.css +188 -173
- package/dist/components/kb-data.css +257 -253
- package/dist/components/kb-ground.css +197 -185
- package/dist/components/kb-ingest.css +334 -350
- package/dist/components/kb-ops.css +265 -259
- package/dist/components/kb-perm.css +260 -271
- package/dist/components/kb-search.css +317 -360
- package/dist/components/kb.css +120 -109
- 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 +28 -14
- package/dist/index.mjs +20705 -9601
- package/dist/react.d.mts +91 -0
- package/dist/react.mjs +8208 -0
- package/dist/registry.json +130 -13
- 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 +11975 -9831
- 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 +147 -115
- package/package.json +43 -8
- package/dist/retro-effects.css +0 -255
- package/dist/tokens/retro-effects.css +0 -255
- package/docs/research/2026-10-03-ai-kb-components.md +0 -392
- package/docs/research/2026-10-03-kb-permissions.md +0 -992
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/** 可校验字段元素。 */
|
|
2
|
+
type FieldElement = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
|
|
3
|
+
/** 一条校验规则(rule 名 = 消息 key)。 */
|
|
4
|
+
interface FieldRule {
|
|
5
|
+
/** required / email / url / number / minlength / maxlength / pattern / min / max / icen-step / matches / <custom> */
|
|
6
|
+
rule: string;
|
|
7
|
+
/** matches 的目标字段名、自定义规则的参数(data-icen-validate="matches:pwd unique:username") */
|
|
8
|
+
arg?: string;
|
|
9
|
+
/** 原生属性原文(min/max/step/minlength/maxlength/pattern),消息占位符用 */
|
|
10
|
+
attr?: string;
|
|
11
|
+
}
|
|
12
|
+
/** 自定义校验函数:通过返回 true;失败返回错误消息字符串(可异步)。 */
|
|
13
|
+
type CustomValidatorFn = (value: string, field: FieldElement, form: HTMLFormElement | null) => true | string | Promise<true | string>;
|
|
14
|
+
interface FormValidateStrategy {
|
|
15
|
+
/** 'submit' = 仅提交时校验(默认策略:提交后出错字段 input 复验 + 未触碰字段 blur 补验) */
|
|
16
|
+
on?: 'submit' | 'blur' | 'input';
|
|
17
|
+
/** input 复验防抖(默认 160ms) */
|
|
18
|
+
debounceMs?: number;
|
|
19
|
+
}
|
|
20
|
+
interface FormValidateOptions {
|
|
21
|
+
strategy?: FormValidateStrategy;
|
|
22
|
+
/** 提交失败时聚焦第一个错误字段并 scrollIntoView(默认 true) */
|
|
23
|
+
scrollToError?: boolean;
|
|
24
|
+
}
|
|
25
|
+
interface FormValidator {
|
|
26
|
+
readonly form: HTMLFormElement;
|
|
27
|
+
/** 全量校验(提交语义):更新呈现 + 汇总 + 派 icen:form-valid / icen:form-invalid */
|
|
28
|
+
validate(): Promise<boolean>;
|
|
29
|
+
/** 单字段校验:更新呈现并派 icen:form-field-validate */
|
|
30
|
+
validateField(name: string): Promise<boolean>;
|
|
31
|
+
/** 复位校验状态与呈现(不动表单值) */
|
|
32
|
+
reset(): void;
|
|
33
|
+
/** 当前错误表(字段名 → 消息) */
|
|
34
|
+
errors(): Record<string, string>;
|
|
35
|
+
/** 摘除监听与计时器、清呈现(handle 失效) */
|
|
36
|
+
destroy(): void;
|
|
37
|
+
}
|
|
38
|
+
/** i18n 全局消息表:setValidateMessages({ required: '必填', email: '…' });传空串删回默认。 */
|
|
39
|
+
declare function setValidateMessages(messages: Record<string, string | undefined>): void;
|
|
40
|
+
/** 注册具名自定义校验(覆盖同名);fn 可异步返回 true | string 错误消息。 */
|
|
41
|
+
declare function registerValidator(name: string, fn: CustomValidatorFn): void;
|
|
42
|
+
/** 下架具名自定义校验。 */
|
|
43
|
+
declare function unregisterValidator(name: string): void;
|
|
44
|
+
/**
|
|
45
|
+
* 从字段元素解析规则集(原生约束 → data-icen-validate 额外规则,顺序即优先级)。
|
|
46
|
+
* HTML5 属性即 schema;未注册语义的 data-icen-validate token 进入规则集但校验时放行。
|
|
47
|
+
*/
|
|
48
|
+
declare function resolveFieldRules(field: FieldElement): FieldRule[];
|
|
49
|
+
/** 字段取值:勾选类取 checked 语义,其余取 value。 */
|
|
50
|
+
declare function fieldValue(field: FieldElement): string;
|
|
51
|
+
/** 字段标签(消息 {label} 占位符 + 错误汇总链接文案):label 元素 > aria-label > placeholder > name > fallback。 */
|
|
52
|
+
declare function fieldLabel(field: FieldElement | null | undefined, fallback?: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* 顺序求值规则集,首个失败即返回其消息(原生约束优先于自定义规则)。
|
|
55
|
+
* 空值语义对齐 HTML5:非 required 规则对空值放行(valueMissing 归 required 管)。
|
|
56
|
+
*/
|
|
57
|
+
declare function evaluateRules(value: string, rules: FieldRule[], ctx?: {
|
|
58
|
+
field?: FieldElement;
|
|
59
|
+
form?: HTMLFormElement | null;
|
|
60
|
+
}): Promise<true | string>;
|
|
61
|
+
/** 收集参与校验的字段:有 name、非 disabled、非提交类/文件类的 input/textarea/select。 */
|
|
62
|
+
declare function collectFormFields(form: HTMLFormElement): FieldElement[];
|
|
63
|
+
/**
|
|
64
|
+
* 为单个表单创建校验 handle(同一 form 单例:重复创建幂等返回既有实例,
|
|
65
|
+
* strategy 以首次创建为准)。提交事件由校验层接管(preventDefault),
|
|
66
|
+
* 通过/未过分别派 icen:form-valid / icen:form-invalid,消费方走事件或 await validate()。
|
|
67
|
+
* SSR 下返回 no-op handle。
|
|
68
|
+
*/
|
|
69
|
+
declare function createFormValidator(form: HTMLFormElement, opts?: FormValidateOptions): FormValidator;
|
|
70
|
+
/**
|
|
71
|
+
* 接线表单校验(document 级委托,页面级一次即可,重复调用幂等)。
|
|
72
|
+
* 现有与后续插入的 form[data-icen-validate] 自动补 novalidate 并挂 handle
|
|
73
|
+
* (submit 捕获阶段 ensure,冒泡阶段 handle 的 submit 监听接管校验)。
|
|
74
|
+
* 返回销毁函数:摘除委托、销毁 scope 内由委托路径建立的 handle 并复位幂等标记,
|
|
75
|
+
* 销毁后可重新 initFormValidate。SSR 下返回 no-op。
|
|
76
|
+
*/
|
|
77
|
+
declare function initFormValidate(root?: ParentNode): () => void;
|
|
78
|
+
/** show_form 字段规格(inputSchema 的运行时形态)。 */
|
|
79
|
+
interface ShowFormFieldSpec {
|
|
80
|
+
name: string;
|
|
81
|
+
label: string;
|
|
82
|
+
type?: 'text' | 'email' | 'number' | 'url' | 'textarea' | 'select' | 'date';
|
|
83
|
+
required?: boolean;
|
|
84
|
+
pattern?: string;
|
|
85
|
+
min?: number;
|
|
86
|
+
max?: number;
|
|
87
|
+
options?: Array<string | {
|
|
88
|
+
label: string;
|
|
89
|
+
value: string;
|
|
90
|
+
}>;
|
|
91
|
+
help?: string;
|
|
92
|
+
}
|
|
93
|
+
interface ShowFormSpec {
|
|
94
|
+
title?: string;
|
|
95
|
+
fields: ShowFormFieldSpec[];
|
|
96
|
+
submitLabel?: string;
|
|
97
|
+
}
|
|
98
|
+
type ShowFormResult = Record<string, unknown> | {
|
|
99
|
+
cancelled: true;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export { type CustomValidatorFn, type FieldElement, type FieldRule, type FormValidateOptions, type FormValidateStrategy, type FormValidator, type ShowFormFieldSpec, type ShowFormResult, type ShowFormSpec, collectFormFields, createFormValidator, evaluateRules, fieldLabel, fieldValue, initFormValidate, registerValidator, resolveFieldRules, setValidateMessages, unregisterValidator };
|