@icen.ai/ui 0.9.0 → 0.11.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 +82 -254
- package/LICENSE +21 -0
- package/README.md +60 -96
- package/dist/base.css +258 -188
- package/dist/behaviors/accordion.mjs +8 -8
- package/dist/behaviors/ai-branch.d.mts +1 -1
- package/dist/behaviors/ai-branch.mjs +1011 -94
- package/dist/behaviors/ai-chat.d.mts +9 -9
- package/dist/behaviors/ai-chat.mjs +1122 -169
- package/dist/behaviors/ai-composer.d.mts +47 -15
- package/dist/behaviors/ai-composer.mjs +2018 -534
- package/dist/behaviors/ai-core.d.mts +1 -1
- package/dist/behaviors/ai-core.mjs +1017 -107
- package/dist/behaviors/ai-diff.mjs +1020 -127
- package/dist/behaviors/ai-feedback.d.mts +1 -1
- package/dist/behaviors/ai-feedback.mjs +1036 -126
- package/dist/behaviors/ai-panel.d.mts +10 -10
- package/dist/behaviors/ai-panel.mjs +1285 -266
- package/dist/behaviors/ai-provider.d.mts +1 -1
- package/dist/behaviors/ai-provider.mjs +1004 -101
- package/dist/behaviors/ai-threads.d.mts +1 -1
- package/dist/behaviors/ai-threads.mjs +1069 -154
- package/dist/behaviors/ai-tool.d.mts +3 -3
- package/dist/behaviors/ai-tool.mjs +2087 -413
- package/dist/behaviors/ai-tools.d.mts +89 -16
- package/dist/behaviors/ai-tools.mjs +5365 -380
- package/dist/behaviors/autocomplete.d.mts +53 -0
- package/dist/behaviors/autocomplete.mjs +1601 -0
- package/dist/behaviors/back-top.d.mts +1 -1
- package/dist/behaviors/back-top.mjs +952 -14
- package/dist/behaviors/carousel.d.mts +1 -1
- package/dist/behaviors/carousel.mjs +914 -12
- package/dist/behaviors/cascader.d.mts +48 -0
- package/dist/behaviors/cascader.mjs +1867 -0
- package/dist/behaviors/charts.d.mts +72 -8
- package/dist/behaviors/charts.mjs +1953 -272
- package/dist/behaviors/code-block.d.mts +36 -0
- package/dist/behaviors/code-block.mjs +1619 -0
- package/dist/behaviors/command-palette.d.mts +9 -6
- package/dist/behaviors/command-palette.mjs +164 -62
- package/dist/behaviors/context-menu.d.mts +10 -9
- package/dist/behaviors/context-menu.mjs +1113 -44
- package/dist/behaviors/controls.d.mts +21 -21
- package/dist/behaviors/controls.mjs +1024 -134
- package/dist/behaviors/copy.d.mts +21 -2
- package/dist/behaviors/copy.mjs +1207 -42
- package/dist/behaviors/datatable.d.mts +55 -5
- package/dist/behaviors/datatable.mjs +2033 -212
- package/dist/behaviors/date-picker.d.mts +0 -1
- package/dist/behaviors/date-picker.mjs +1341 -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 +127 -10
- package/dist/behaviors/events.mjs +58 -3
- 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 +111 -0
- package/dist/behaviors/form-validate.mjs +1746 -0
- package/dist/behaviors/i18n.d.mts +790 -0
- package/dist/behaviors/i18n.mjs +1713 -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 +1059 -60
- package/dist/behaviors/kb-access.d.mts +3 -3
- package/dist/behaviors/kb-access.mjs +2135 -239
- package/dist/behaviors/kb-acl.d.mts +8 -8
- package/dist/behaviors/kb-acl.mjs +1120 -179
- package/dist/behaviors/kb-answer.d.mts +2 -2
- package/dist/behaviors/kb-answer.mjs +2120 -435
- package/dist/behaviors/kb-audit.d.mts +3 -3
- package/dist/behaviors/kb-audit.mjs +1077 -154
- package/dist/behaviors/kb-canvas.d.mts +3 -3
- package/dist/behaviors/kb-canvas.mjs +1101 -177
- package/dist/behaviors/kb-chain.d.mts +2 -2
- package/dist/behaviors/kb-chain.mjs +1023 -100
- package/dist/behaviors/kb-checkpoint.d.mts +3 -3
- package/dist/behaviors/kb-checkpoint.mjs +1320 -169
- package/dist/behaviors/kb-chunks.d.mts +2 -2
- package/dist/behaviors/kb-chunks.mjs +1153 -213
- package/dist/behaviors/kb-citation.d.mts +3 -3
- package/dist/behaviors/kb-citation.mjs +1221 -185
- package/dist/behaviors/kb-clarify.d.mts +2 -2
- package/dist/behaviors/kb-clarify.mjs +1059 -130
- package/dist/behaviors/kb-conflict.d.mts +2 -2
- package/dist/behaviors/kb-conflict.mjs +1042 -119
- package/dist/behaviors/kb-connector.d.mts +2 -2
- package/dist/behaviors/kb-connector.mjs +1105 -176
- package/dist/behaviors/kb-core.d.mts +7 -2
- package/dist/behaviors/kb-core.mjs +1078 -162
- package/dist/behaviors/kb-eval.d.mts +2 -2
- package/dist/behaviors/kb-eval.mjs +1977 -144
- package/dist/behaviors/kb-explain.d.mts +3 -3
- package/dist/behaviors/kb-explain.mjs +1037 -104
- package/dist/behaviors/kb-filter.d.mts +2 -2
- package/dist/behaviors/kb-filter.mjs +2014 -178
- package/dist/behaviors/kb-gap.d.mts +3 -3
- package/dist/behaviors/kb-gap.mjs +1044 -121
- package/dist/behaviors/kb-hittest.d.mts +3 -3
- package/dist/behaviors/kb-hittest.mjs +1095 -151
- package/dist/behaviors/kb-metadata.mjs +1058 -130
- package/dist/behaviors/kb-passage.d.mts +4 -4
- package/dist/behaviors/kb-passage.mjs +1102 -161
- package/dist/behaviors/kb-pipeline.d.mts +4 -4
- package/dist/behaviors/kb-pipeline.mjs +1083 -162
- package/dist/behaviors/kb-qa.mjs +1089 -160
- package/dist/behaviors/kb-rerank.d.mts +2 -2
- package/dist/behaviors/kb-rerank.mjs +1048 -114
- package/dist/behaviors/kb-retrieval.d.mts +2 -2
- package/dist/behaviors/kb-retrieval.mjs +2079 -226
- package/dist/behaviors/kb-review.d.mts +2 -2
- package/dist/behaviors/kb-review.mjs +1996 -159
- package/dist/behaviors/kb-sandbox.d.mts +3 -3
- package/dist/behaviors/kb-sandbox.mjs +1033 -105
- package/dist/behaviors/kb-segment.d.mts +2 -2
- package/dist/behaviors/kb-segment.mjs +1112 -179
- package/dist/behaviors/kb-select.d.mts +24 -0
- package/dist/behaviors/kb-select.mjs +1995 -0
- package/dist/behaviors/kb-sources.d.mts +3 -3
- package/dist/behaviors/kb-sources.mjs +1085 -170
- package/dist/behaviors/kb-sql.d.mts +3 -3
- package/dist/behaviors/kb-sql.mjs +1144 -226
- package/dist/behaviors/kb-trace.d.mts +3 -3
- package/dist/behaviors/kb-trace.mjs +1051 -131
- package/dist/behaviors/kb-visibility.d.mts +2 -2
- package/dist/behaviors/kb-visibility.mjs +1087 -158
- package/dist/behaviors/kb-who-can.d.mts +2 -2
- package/dist/behaviors/kb-who-can.mjs +1980 -137
- package/dist/behaviors/mentions.d.mts +93 -0
- package/dist/behaviors/mentions.mjs +2153 -0
- package/dist/behaviors/modal.d.mts +4 -3
- package/dist/behaviors/modal.mjs +1056 -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 +1629 -268
- package/dist/behaviors/panel.d.mts +4 -0
- package/dist/behaviors/panel.mjs +995 -0
- package/dist/behaviors/popover.d.mts +28 -5
- package/dist/behaviors/popover.mjs +225 -24
- package/dist/behaviors/scroll-area.d.mts +17 -0
- package/dist/behaviors/scroll-area.mjs +59 -0
- package/dist/behaviors/select.d.mts +5 -2
- package/dist/behaviors/select.mjs +1416 -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 +12 -12
- package/dist/behaviors/split-pane.d.mts +1 -1
- package/dist/behaviors/split-pane.mjs +9 -7
- package/dist/behaviors/suggestions.d.mts +27 -0
- package/dist/behaviors/suggestions.mjs +1090 -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 +35 -25
- package/dist/behaviors/tag-input.d.mts +23 -5
- package/dist/behaviors/tag-input.mjs +1360 -104
- package/dist/behaviors/theme-switcher.d.mts +24 -0
- package/dist/behaviors/theme-switcher.mjs +1996 -0
- package/dist/behaviors/theme.d.mts +15 -8
- package/dist/behaviors/theme.mjs +406 -30
- package/dist/behaviors/toast.d.mts +24 -25
- package/dist/behaviors/toast.mjs +1267 -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 +1921 -0
- package/dist/behaviors/tree.d.mts +1 -1
- package/dist/behaviors/tree.mjs +18 -18
- package/dist/behaviors/upload.d.mts +3 -2
- package/dist/behaviors/upload.mjs +1077 -66
- package/dist/behaviors/url-safety.d.mts +8 -0
- package/dist/behaviors/url-safety.mjs +11 -0
- package/dist/cli.mjs +5 -6
- package/dist/components/accordion.d.mts +2 -0
- package/dist/components/ai-branch.d.mts +2 -0
- package/dist/components/ai-chat.css +682 -582
- package/dist/components/ai-chat.d.mts +2 -0
- package/dist/components/ai-composer.d.mts +2 -0
- package/dist/components/ai-context.d.mts +2 -0
- package/dist/components/ai-context.mjs +1 -0
- package/dist/components/ai-diff.css +153 -132
- package/dist/components/ai-diff.d.mts +2 -0
- package/dist/components/ai-feedback.d.mts +2 -0
- package/dist/components/ai-files.d.mts +2 -0
- package/dist/components/ai-message.d.mts +2 -0
- package/dist/components/ai-panel.css +353 -343
- package/dist/components/ai-reasoning.d.mts +2 -0
- package/dist/components/ai-subagent.d.mts +2 -0
- package/dist/components/ai-subagent.mjs +1 -0
- package/dist/components/ai-threads.d.mts +2 -0
- package/dist/components/ai-todo.d.mts +2 -0
- package/dist/components/ai-todo.mjs +1 -0
- package/dist/components/ai-tool-call.d.mts +2 -0
- package/dist/components/ai-tool-call.mjs +1 -0
- package/dist/components/ai-tool.css +397 -242
- package/dist/components/ai-usage.d.mts +2 -0
- package/dist/components/alert.d.mts +2 -0
- package/dist/components/autocomplete.css +61 -0
- package/dist/components/autocomplete.d.mts +2 -0
- package/dist/components/autocomplete.mjs +3 -0
- package/dist/components/avatar.d.mts +2 -0
- package/dist/components/back-top.css +74 -40
- package/dist/components/back-top.d.mts +2 -0
- package/dist/components/badge.css +44 -41
- package/dist/components/badge.d.mts +2 -0
- package/dist/components/breadcrumb.css +85 -46
- package/dist/components/breadcrumb.d.mts +2 -0
- package/dist/components/btn.css +105 -94
- package/dist/components/btn.d.mts +2 -0
- package/dist/components/card.css +124 -113
- package/dist/components/card.d.mts +2 -0
- package/dist/components/carousel.d.mts +2 -0
- package/dist/components/cascader.css +332 -0
- package/dist/components/cascader.d.mts +2 -0
- package/dist/components/cascader.mjs +3 -0
- package/dist/components/chart-area.css +54 -2
- package/dist/components/chart-area.d.mts +2 -0
- package/dist/components/chart-bar.css +147 -38
- package/dist/components/chart-bar.d.mts +2 -0
- package/dist/components/chart-calendar.d.mts +2 -0
- package/dist/components/chart-gauge.css +36 -13
- package/dist/components/chart-gauge.d.mts +2 -0
- package/dist/components/chart-graph.css +35 -20
- package/dist/components/chart-graph.d.mts +2 -0
- package/dist/components/chart-heatmap.css +67 -39
- package/dist/components/chart-heatmap.d.mts +2 -0
- package/dist/components/chart-line.css +62 -3
- package/dist/components/chart-line.d.mts +2 -0
- package/dist/components/chart-map.d.mts +2 -0
- package/dist/components/chart-pie.css +38 -6
- package/dist/components/chart-pie.d.mts +2 -0
- package/dist/components/chart-radar.css +57 -5
- package/dist/components/chart-radar.d.mts +2 -0
- package/dist/components/chart-scatter.css +47 -7
- package/dist/components/chart-scatter.d.mts +2 -0
- package/dist/components/chart-sparkline.css +25 -2
- package/dist/components/chart-sparkline.d.mts +2 -0
- package/dist/components/chart-stack.css +27 -13
- package/dist/components/chart-stack.d.mts +2 -0
- package/dist/components/charts.css +220 -84
- package/dist/components/charts.d.mts +2 -0
- package/dist/components/code-block.css +420 -0
- package/dist/components/code-block.d.mts +2 -0
- package/dist/components/code-block.mjs +4 -0
- package/dist/components/command-palette.css +150 -122
- package/dist/components/command-palette.d.mts +2 -0
- package/dist/components/content.css +274 -263
- package/dist/components/context-menu.d.mts +2 -0
- package/dist/components/copy.css +73 -45
- package/dist/components/copy.d.mts +2 -0
- package/dist/components/datatable.css +457 -202
- package/dist/components/datatable.d.mts +2 -0
- package/dist/components/date-picker.css +136 -105
- package/dist/components/date-picker.d.mts +2 -0
- package/dist/components/desc.d.mts +2 -0
- package/dist/components/dropdown.d.mts +2 -0
- package/dist/components/empty.css +72 -69
- package/dist/components/empty.d.mts +2 -0
- package/dist/components/feedback.css +211 -191
- package/dist/components/form-validate.css +134 -0
- package/dist/components/form-validate.d.mts +2 -0
- package/dist/components/form-validate.mjs +3 -0
- package/dist/components/form.css +157 -131
- package/dist/components/form.d.mts +2 -0
- package/dist/components/icon.css +113 -0
- package/dist/components/icon.d.mts +2 -0
- package/dist/components/icon.mjs +3 -0
- package/dist/components/input.css +163 -108
- package/dist/components/input.d.mts +2 -0
- package/dist/components/kb-access.d.mts +2 -0
- package/dist/components/kb-acl.d.mts +2 -0
- package/dist/components/kb-agent.css +300 -206
- package/dist/components/kb-answer.d.mts +2 -0
- package/dist/components/kb-audit.d.mts +2 -0
- package/dist/components/kb-canvas.d.mts +2 -0
- package/dist/components/kb-chain.d.mts +2 -0
- package/dist/components/kb-checkpoint.d.mts +2 -0
- package/dist/components/kb-chunks.d.mts +2 -0
- package/dist/components/kb-citation.d.mts +2 -0
- package/dist/components/kb-clarify.d.mts +2 -0
- package/dist/components/kb-conflict.d.mts +2 -0
- package/dist/components/kb-connector.d.mts +2 -0
- package/dist/components/kb-data.css +431 -315
- package/dist/components/kb-eval.d.mts +2 -0
- package/dist/components/kb-explain.d.mts +2 -0
- package/dist/components/kb-filter.d.mts +2 -0
- package/dist/components/kb-gap.d.mts +2 -0
- package/dist/components/kb-ground.css +333 -229
- package/dist/components/kb-hittest.d.mts +2 -0
- package/dist/components/kb-ingest.css +613 -434
- package/dist/components/kb-metadata.d.mts +2 -0
- package/dist/components/kb-ops.css +422 -302
- package/dist/components/kb-passage.d.mts +2 -0
- package/dist/components/kb-perm.css +374 -314
- package/dist/components/kb-pipeline.d.mts +2 -0
- package/dist/components/kb-qa.d.mts +2 -0
- package/dist/components/kb-rerank.d.mts +2 -0
- package/dist/components/kb-retrieval.d.mts +2 -0
- package/dist/components/kb-review.d.mts +2 -0
- package/dist/components/kb-sandbox.d.mts +2 -0
- package/dist/components/kb-search.css +653 -459
- package/dist/components/kb-segment.d.mts +2 -0
- package/dist/components/kb-sources.d.mts +2 -0
- package/dist/components/kb-sql.d.mts +2 -0
- package/dist/components/kb-trace.d.mts +2 -0
- package/dist/components/kb-visibility.d.mts +2 -0
- package/dist/components/kb-who-can.d.mts +2 -0
- package/dist/components/kb.css +170 -135
- package/dist/components/kb.d.mts +2 -0
- package/dist/components/kbd.d.mts +2 -0
- package/dist/components/layout.css +86 -83
- package/dist/components/layout.d.mts +2 -0
- package/dist/components/list.d.mts +2 -0
- package/dist/components/material-chinese.css +83 -0
- package/dist/components/material-soviet.css +86 -0
- package/dist/components/material.css +318 -0
- package/dist/components/media-card.d.mts +2 -0
- package/dist/components/media.css +225 -176
- package/dist/components/mentions.css +190 -0
- package/dist/components/mentions.d.mts +2 -0
- package/dist/components/mentions.mjs +3 -0
- package/dist/components/menu.css +121 -109
- package/dist/components/modal.css +116 -118
- package/dist/components/modal.d.mts +2 -0
- package/dist/components/nav.css +136 -129
- package/dist/components/nav.d.mts +2 -0
- package/dist/components/notification.css +247 -177
- package/dist/components/notification.d.mts +2 -0
- package/dist/components/pagination.css +62 -57
- package/dist/components/pagination.d.mts +2 -0
- package/dist/components/panel.css +70 -68
- package/dist/components/panel.d.mts +2 -0
- package/dist/components/panel.mjs +1 -0
- package/dist/components/pill.css +83 -72
- package/dist/components/pill.d.mts +2 -0
- package/dist/components/popover.css +80 -57
- package/dist/components/popover.d.mts +2 -0
- package/dist/components/progress.d.mts +2 -0
- package/dist/components/rating.d.mts +2 -0
- package/dist/components/result.d.mts +2 -0
- package/dist/components/scroll-area.css +29 -54
- package/dist/components/scroll-area.d.mts +2 -0
- package/dist/components/scroll-area.mjs +1 -0
- package/dist/components/segmented.css +167 -146
- package/dist/components/segmented.d.mts +2 -0
- package/dist/components/select.css +250 -191
- package/dist/components/select.d.mts +2 -0
- package/dist/components/sidebar.css +157 -143
- package/dist/components/sidebar.d.mts +2 -0
- package/dist/components/skeleton.d.mts +2 -0
- package/dist/components/slider.css +135 -128
- package/dist/components/slider.d.mts +2 -0
- package/dist/components/spinner.d.mts +2 -0
- package/dist/components/split-pane.css +120 -108
- package/dist/components/split-pane.d.mts +2 -0
- package/dist/components/stat.css +116 -109
- package/dist/components/stat.d.mts +2 -0
- package/dist/components/steps.css +114 -108
- package/dist/components/steps.d.mts +2 -0
- package/dist/components/switch.css +192 -149
- package/dist/components/switch.d.mts +2 -0
- package/dist/components/table.css +158 -112
- package/dist/components/table.d.mts +2 -0
- package/dist/components/tabs.css +143 -116
- package/dist/components/tabs.d.mts +2 -0
- package/dist/components/tag-input.css +52 -133
- package/dist/components/tag-input.d.mts +2 -0
- package/dist/components/tag.css +90 -72
- package/dist/components/tag.d.mts +2 -0
- package/dist/components/theme-switcher.css +105 -0
- package/dist/components/theme-switcher.d.mts +2 -0
- package/dist/components/theme-switcher.mjs +3 -0
- package/dist/components/timeline.d.mts +2 -0
- package/dist/components/toast.css +115 -97
- package/dist/components/toast.d.mts +2 -0
- package/dist/components/toolbar.css +47 -43
- package/dist/components/toolbar.d.mts +2 -0
- package/dist/components/tooltip.css +103 -43
- package/dist/components/tooltip.d.mts +2 -0
- package/dist/components/tooltip.mjs +1 -0
- package/dist/components/tree-select.css +439 -0
- package/dist/components/tree-select.d.mts +2 -0
- package/dist/components/tree-select.mjs +3 -0
- package/dist/components/tree.d.mts +2 -0
- package/dist/components/upload.css +138 -97
- package/dist/components/upload.d.mts +2 -0
- 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 +85 -70
- package/dist/index.mjs +17330 -5773
- package/dist/react.d.mts +91 -0
- package/dist/react.mjs +8307 -0
- package/dist/registry.json +918 -70
- package/dist/tokens/chinese.css +44 -0
- package/dist/tokens/colors.css +371 -1222
- package/dist/tokens/design.css +209 -0
- package/dist/tokens/dtcg.json +15926 -0
- package/dist/tokens/figma.variables.json +10779 -0
- package/dist/tokens/icon-masks.css +78 -0
- package/dist/tokens/pixel.css +53 -0
- package/dist/tokens/scrollbars.css +40 -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 +11648 -0
- package/dist/tokens/typography.css +21 -18
- package/dist/tokens.css +1783 -1806
- package/dist/ui.css +14796 -10750
- package/dist/vue.d.mts +344 -0
- package/dist/vue.mjs +7876 -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/docs/spec/scrollbars.md +46 -0
- package/package.json +56 -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
package/README.md
CHANGED
|
@@ -1,124 +1,88 @@
|
|
|
1
|
-
# @icen.ai/ui
|
|
2
|
-
|
|
3
|
-
icen.ai 全生态的统一设计系统:**设计 tokens(6 色彩预设 × 明暗双模 × 3 风格 profile)+ 无框架组件 CSS(65 组件)+ 行为 JS(70 behaviors)+ 统一事件体系 + AI 原生组件族 + 知识库组件族 + 图表通用层 + AI 工具体系**。工程形态与 `@icen.ai/cli` 一致(Bun + TS + tsup + ESM + MIT)。
|
|
4
|
-
|
|
5
|
-
- 色彩预设:`clay`(默认,陶土橙 × 纸白 = icen 品牌)/ `piano` / `art` / `vangogh` / `ink` / `retro`,各含 `.dark` 变体
|
|
6
|
-
- 风格配置:`.style-modern` / `.style-retro` / `.style-terminal`(几何 / 密度 / 动效 / 字体 token,与色彩正交)
|
|
7
|
-
- 可选效果层:`retro-effects.css`(CRT 扫描线 / 颗粒 / 像素边框 / 打字机光标 —— 仅 `.style-retro` 激活时生效,按需 import)
|
|
8
|
-
- 组件:btn / form / input / select / slider / switch / tag-input / upload / modal / popover / tooltip / menu(含 dropdown + context-menu)/ tabs / nav / sidebar / breadcrumb / pagination / steps / segmented / accordion / tree / carousel / charts / table / stat / card / panel / pill / tag / badge / empty / feedback / content / media / toolbar / split-pane / date-picker / command-palette / notification / copy / scroll-area / back-top / datatable / layout(65 个组件 CSS:charts 基座 + 13 个细分图表 kit + kb.css 基座 + 7 个 kb 域文件 + 4 个 AI 族合并文件);浮层尺寸统一 PanelSizing 契约(`data-panel-width/-min/-max/-min-height/-max-height` 属性面 + 程序面对象,含视口夹取)
|
|
9
|
-
- 图表通用层(v0.8):`renderChart(el, spec)` 统一入口——纯 JSON 规格(type 缺省自动推断;data[] + dims 任意维度透视)、多系列折线/分组堆叠柱、内置 tooltip、`icen:chart-hover/click/dblclick/contextmenu` 交互事件族、图例点击切换系列;新增贡献日历 renderCalendar(GitHub 同款)与散点气泡 renderScatter
|
|
10
|
-
- AI 原生组件族(v0.7,14 个 slug):ai-chat(会话容器)/ ai-message(消息行)/ ai-reasoning(推理块,流式展开完成后自动折叠一次)/ ai-composer(输入台)/ ai-tool-call(工具调用卡)/ ai-subagent(子智能体卡)/ ai-diff(差异审阅)/ ai-files(文件标签)/ ai-todo(任务清单)/ ai-context(上下文抽屉)/ ai-usage(用量条)/ ai-threads(会话线程树)/ ai-feedback(👍👎 + 理由)/ ai-branch(消息分支切换)——共享 7 态状态机与 kind 注册表,事件统一 `icen:ai-*` 前缀
|
|
11
|
-
- 知识库组件族(v0.9,32 个 slug,规格 `docs/spec/kb-family.md`):**ai 族描述思考(过程),kb 族呈现证据(知识从哪来 / 可信吗 / 怎么用);权限域呈现边界(谁能看到什么,以及为什么)**。七域——证据(kb-citation 角标三型定位 / kb-sources / kb-passage 高亮回看 / kb-conflict)、摄取(kb-pipeline / kb-chunks 分块审阅 / kb-segment / kb-connector 连接器健康 / kb-metadata / kb-qa 问答对)、检索(kb-retrieval playground / kb-filter → Mongo·OData 双 DSL / kb-rerank A/B 对比 / kb-hittest 召回测试)、问数(kb-sql / kb-answer / kb-clarify)、治理(kb-explain / kb-trace / kb-review / kb-gap / kb-eval 四级评测)、工作台(kb-canvas / kb-checkpoint 范围显式回滚 / kb-sandbox MCP 沙箱 / kb-chain)、**权限(kb-acl 继承四件套+双区 / kb-who-can view-as 原因链 / kb-access 九态申请流 / kb-audit 审计+异味 / kb-visibility admin 可见性对照器)**;契约层 `kb-core.ts`(60+ normalize,`evaluateAcl` 纯函数:先 deny→并集→默认拒绝;分数纪律与**安全呈现纪律**全族统一——对授权侧诚实、对受限侧沉默),事件统一 `icen:kb-*`
|
|
12
|
-
- 标准化内容模型 `AiContent`(v0.7.1,对标 AI SDK v5 parts / MCP / OpenAI / Anthropic,2026-10 调研):一套 `AiContentPart[]`(text / image / audio / video / file / resource-link)表达任意输入——消息渲染(renderAiMessage 多模态 + 错误变体)、工具回执(MCP content 数组零改动进卡片)、传输层(parts → 两族 wire,含 anthropic `cache_control` 与 tool_result 回灌)全部只认这一套;`normalizeContentParts` 一函数归一四族来源,`estimateTokens` / `contextEstimate` 提供粗估与上下文口径
|
|
13
|
-
- ai-provider 适配层(v0.7.1 增强):五家厂商注册表(含定价表,`estimateCost` 未命中不猜价)、chat + stream 双族线协议多模态传输、审计闭环(`createAiAuditor` 条目含 cost 定价估算与 ttftMs 首 token 延迟,`renderAiAudit` 面板 + `ai-context` 抽屉审计节)、请求收尾派 `icen:ai-done`(status/usage/cost/error/durationMs/ttftMs)
|
|
14
|
-
- 绑定层 `bindComposer`(v0.7.1,「零接线全链路」):一行把 composer ↔ 消息区(renderAiMessage)↔ client(stream + 停止 + 排队续发 + 错误路径)↔ 上下文环(`usage.from: 'context'` 正确口径 / `'billing'` 计费口径 / auditor)接成闭环;不传 client 为纯状态绑定(渐进采用);附件三入口(钮选 / 粘贴 / 拖放)
|
|
15
|
-
- AI 工具体系(v0.8,`ai-tools`):UI 能力注册为模型可调用的工具(内置 `render_chart` 吃 ChartSpec 纯 JSON);`createAiToolArea` 挂载区三层控制(白名单 / max LRU / 运行时调节);模型侧 `aiToolsToOpenAI()` 直接给 tools 参数、`aiToolsManifest()` 贴 system prompt;工具回执内嵌图(output 为 chart spec → 工具卡展开区直接渲染)
|
|
16
|
-
- 事件体系(events):`onIcen` 一个入口(类型化 `IcenEventMap` + 选择器委托 + `{ within, signal, once }`)+ `emitIcen` 唯一派生口 + `setEventPolicy` 手势默认行为 + `data-gestures` 声明式手势(click/dblclick/contextmenu/longpress/text-select,位移守卫与消歧内建)
|
|
17
|
-
- 控件族(controls):`initSwitch`(开关/三态勾选/单选组)/ `initStepper` / `initSegmented` / `initSteps` / `initRating` / `initPagination` / `initTableSort`——纯 CSS 控件的行为承载与 `icen:*-change` 事件
|
|
18
|
-
- 行为:theme / tabs / toast / copy / input / select / slider / tag-input / upload / modal / dropdown / popover / context-menu / accordion / tree / carousel / charts / nav / sidebar / datatable / notification / back-top / command-palette / date-picker / split-pane / events / controls / ai-core / ai-chat / ai-composer / ai-tool / ai-provider / ai-diff / ai-panel / ai-tools / ai-threads / ai-feedback / ai-branch / kb-core + 31 个 kb-*(70 个,全部 SSR 守卫 + 幂等 init + 返回销毁函数 + textContent-only)
|
|
19
|
-
|
|
20
|
-
## 使用
|
|
1
|
+
# @icen.ai/ui
|
|
21
2
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@icen.ai/ui)
|
|
4
|
+
[](https://github.com/icen-ai/ui/actions/workflows/ci.yml)
|
|
5
|
+
[](./LICENSE)
|
|
6
|
+
|
|
7
|
+
icen.ai 的设计系统。组件、图表和 AI 界面共用一套设计令牌——换肤不改代码,UI 可直接交给模型调用。无框架,零运行时依赖,MIT。
|
|
8
|
+
|
|
9
|
+
- 文档与实时演示:<https://ui.icen.ai>
|
|
10
|
+
- 安装:`bun add @icen.ai/ui`(或 `npm i`)
|
|
11
|
+
|
|
12
|
+
## 快速开始
|
|
25
13
|
|
|
26
14
|
```css
|
|
15
|
+
/* 全量一行(ui.css 已含 tokens + base + 全部组件) */
|
|
16
|
+
@import '@icen.ai/ui/ui.css';
|
|
17
|
+
|
|
18
|
+
/* 或按需:tokens 底座 + 单引组件 CSS
|
|
27
19
|
@import '@icen.ai/ui/tokens.css';
|
|
28
|
-
@import '@icen.ai/ui/
|
|
29
|
-
/* 可选:仅 .style-retro 下生效的像素效果层 */
|
|
30
|
-
@import '@icen.ai/ui/retro-effects.css';
|
|
20
|
+
@import '@icen.ai/ui/components/btn.css'; */
|
|
31
21
|
```
|
|
32
22
|
|
|
33
23
|
```html
|
|
34
|
-
<html
|
|
24
|
+
<html data-icen-preset="piano" data-icen-theme="dark">
|
|
25
|
+
<!-- 明暗是二态契约:暗色 = 写 data-icen-theme="dark";亮色 = 移除该属性(没有 "light" 值) -->
|
|
35
26
|
```
|
|
36
27
|
|
|
37
28
|
```ts
|
|
38
|
-
import {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
renderLine, renderVBar,
|
|
45
|
-
toast,
|
|
46
|
-
} from '@icen.ai/ui';
|
|
47
|
-
|
|
48
|
-
initTheme(); // 尽早调用(或内联同步脚本防闪烁,见 accounts Base.astro)
|
|
49
|
-
setStyle('retro'); // 切风格画像(modern/retro),与主题正交
|
|
50
|
-
registerThemePreset('brand'); // 登记自建预设(宿主 CSS 先写好 .brand/.brand.dark token 面)
|
|
51
|
-
listThemePresets(); // 枚举全部预设(含注册的),UI 切换器用
|
|
52
|
-
initTabs(); // [data-tabs] > [data-tab] + [data-tab-panel] 契约;切换派发 icen:tab-change
|
|
53
|
-
initCopy(); // .copy-btn[data-copy] 委托
|
|
54
|
-
toast.ok('已保存'); // 或 toast.action('已删除', '撤销', undo);类名 .toast--success 等
|
|
55
|
-
renderLine(el, { labels, series }); // 函数式组件(charts / datatable):无 init,直接渲染
|
|
29
|
+
import { initTheme, initTabs, toast, renderLine } from '@icen.ai/ui';
|
|
30
|
+
|
|
31
|
+
initTheme(); // 尽早调用,跟随系统偏好
|
|
32
|
+
initTabs(); // [data-icen-tabs] 契约自动生效
|
|
33
|
+
toast.success('已保存');
|
|
34
|
+
renderLine(el, { labels, series }); // 函数式组件:无 init,直接渲染
|
|
56
35
|
```
|
|
57
36
|
|
|
58
|
-
|
|
37
|
+
纯静态页面走 `<link rel="stylesheet" href="./node_modules/@icen.ai/ui/ui.css">`;ES module 直引需经静态服务器(`file://` 直开会被浏览器 CORS 拦截)。更多入坑答案见 [docs/faq.md](docs/faq.md)。
|
|
59
38
|
|
|
60
|
-
|
|
61
|
-
import { initAiChat } from '@icen.ai/ui/kit/ai-chat';
|
|
62
|
-
import { initAiComposer, bindComposer } from '@icen.ai/ui/kit/ai-composer';
|
|
63
|
-
import { createAiClient, createAiAuditor } from '@icen.ai/ui';
|
|
64
|
-
|
|
65
|
-
initAiChat();
|
|
66
|
-
initAiComposer();
|
|
67
|
-
const auditor = createAiAuditor({ persist: 'my-audit' });
|
|
68
|
-
const client = createAiClient({ provider: 'kimi', apiKey, auditor });
|
|
69
|
-
|
|
70
|
-
// 一行接通:发送 → 消息渲染 → 流式追加 → 停止/排队续发/错误路径 → 上下文环(正确口径)
|
|
71
|
-
const binding = bindComposer(composer, {
|
|
72
|
-
client,
|
|
73
|
-
messages: chatEl.querySelector('.ai-chat-scroll'),
|
|
74
|
-
usage: { from: 'context' }, // 或 'billing' / auditor
|
|
75
|
-
});
|
|
76
|
-
```
|
|
39
|
+
## 里面有什么
|
|
77
40
|
|
|
78
|
-
|
|
41
|
+
- **组件**:无框架组件库(表单 / 浮层 / 导航 / 数据展示 / 反馈),纯 CSS 契约 + 按需行为 JS。类名 `icen-*`、钩子 `data-icen-*`、变量 `--icen-*`,产物全部进 cascade layers,与任何第三方 CSS 共存零冲突。
|
|
42
|
+
- **图表**:一份 JSON 十三种图,悬停/点击/图例开关内建,不依赖图表库。
|
|
43
|
+
- **AI 界面**:对话 / 推理 / 工具调用 / 审批 / 输入台 / 用量审计;兼容 OpenAI / Anthropic / MCP / AI SDK 协议;UI 能力可注册成模型直接调用的工具。
|
|
44
|
+
- **知识库**:覆盖 RAG 全链路的组件族(摄取 / 检索 / 问数 / 治理 / 权限),权限域 fail-closed。
|
|
45
|
+
- **主题**:色彩预设 × 设计原语 × 明暗,全部挂在 `<html>` data 属性上;自建品牌只需在自家 CSS 写一块 token 面。
|
|
46
|
+
- **React / Vue 官方薄封装**:`@icen.ai/ui/react`、`/vue`,只做生命周期接线与事件桥;兼容契约见 [docs/frameworks.md](docs/frameworks.md)。
|
|
47
|
+
- **RTL 全面支持**(逻辑属性 + 方向图标自动镜像)、**i18n 文案注册表**(中英双语,`setIcenLocale` 切换)、统一事件体系(`onIcen` 一个入口)。
|
|
79
48
|
|
|
80
|
-
|
|
49
|
+
## 工程信任
|
|
81
50
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
51
|
+
生产环境依赖一个 0.x 库之前该问的问题,直接给证据:
|
|
52
|
+
|
|
53
|
+
- **全部测试与纪律守卫挂在每个 PR 的 CI 上**,本地 `bun run verify` 同口径;覆盖率地板与体积预算以棘轮文件锁在 [docs/contracts/](docs/contracts/)。
|
|
54
|
+
- **稳定性分层**:Core 走 1.0 冻结轨道,图表 / AI / KB 标 Beta 随 minor 演进;事实源 `docs/contracts/tiers.json`,组件页徽标同源。
|
|
55
|
+
- **公共契约机器快照**:`docs/contracts/snapshot.json` 六个面(类名 / 属性 / 变量 / 事件 / 导出 / 类型签名),`bun run contracts:diff` 做 tag 间对比;破坏性变更只进 minor 且 CHANGELOG 逐条公告(CI 强制联动)。
|
|
56
|
+
- [SECURITY.md](SECURITY.md):支持矩阵与漏洞响应承诺;textContent-only 渲染、权限域 fail-closed、URL 协议守卫,逐条有测试或守卫背书。
|
|
57
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md):加组件的仪式与 PR 规范。
|
|
58
|
+
- [docs/versioning.md](docs/versioning.md):版本与稳定性政策(分层 / 0.x 纪律 / 弃用 / 主题预算 / 1.0 门槛 / 支持周期)。
|
|
59
|
+
- [docs/roadmap.md](docs/roadmap.md):0.11 → 0.13 → 1.0 收敛线与外部验收门槛;[docs/acceptance.md](docs/acceptance.md):AI/KB 验收矩阵;[docs/dogfood.md](docs/dogfood.md):陌生人验收记录。
|
|
60
|
+
- **发布链**:`git tag v<x.y.z>` → CI 全门 → OIDC trusted publishing 发 npm(provenance,无长期 token)→ 自动建 GitHub Release。
|
|
86
61
|
|
|
87
|
-
|
|
62
|
+
## 消费方接入
|
|
88
63
|
|
|
89
|
-
|
|
64
|
+
- **包引入(推荐)**:`bun add @icen.ai/ui`。CSS 全量一行 `./ui.css`,或按需 `./tokens.css` + `./components/<name>.css`;行为走 `./kit/<slug>` 一行入口。
|
|
65
|
+
- **vendor 复制**:锁定版本或离线构建场景,把 `dist/` 复制进自家仓库。
|
|
66
|
+
- **给 AI 代理**:包内 `AGENTS.md` + `dist/**/*.d.mts`;站点 <https://ui.icen.ai/llms.txt>(索引)与 `/llms-full.txt`(全文 + 类型面)。
|
|
67
|
+
|
|
68
|
+
## 构建与验证
|
|
90
69
|
|
|
91
70
|
```bash
|
|
92
71
|
bun install
|
|
93
|
-
bun run
|
|
72
|
+
bun run verify # tsc + 守卫 + 测试 + 构建 + 体积预算(CI 另跑覆盖率、包面检查与 e2e)
|
|
94
73
|
```
|
|
95
74
|
|
|
96
|
-
产物:`dist
|
|
75
|
+
产物:`dist/`(ui.css / tokens.css / base.css / components/ / behaviors/ + .d.mts / registry.json / CLI)。
|
|
76
|
+
设计 token 另导出 DTCG / Tokens Studio / Figma Variables 三格式(`dist/tokens/`);规范无法表示的值明示跳过,不猜不静默。
|
|
97
77
|
|
|
98
78
|
## 目录
|
|
99
79
|
|
|
100
80
|
```
|
|
101
|
-
src/tokens/
|
|
102
|
-
src/
|
|
103
|
-
|
|
104
|
-
src/
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
# + a11y 工具类 .sr-only / .skip-link + 工具类 .mono/.dim/.faint/.numeric
|
|
109
|
-
src/components/*.css # 65 个无框架组件 CSS(4 个 AI 族合并文件 + kb.css 基座 + 7 个 kb 域文件 + chart-graph)
|
|
110
|
-
src/behaviors/*.ts # 70 个 behaviors(AI 族 11 个 + kb 族 32 个)
|
|
111
|
-
docs/spec/kb-family.md # 知识库族规格(顶层设计唯一事实源,§9 权限域)
|
|
112
|
-
docs/research/ # 两轮调研归档(组件选型 + 权限安全,100+ 来源查证)
|
|
113
|
-
scripts/build-css.ts # CSS 产物构建(拼合 + registry.json)
|
|
114
|
-
site/ # 文档站骨架(ui.icen.ai,独立 Astro 应用,含 /kb 工作台)
|
|
81
|
+
src/tokens/ # 设计令牌(单一事实源 themes.json,改动后 bun run colors)
|
|
82
|
+
src/base.css # 元素基线 + 交互基元 + a11y 工具类
|
|
83
|
+
src/components/ # 组件 CSS(每文件头注释 = DOM 契约)
|
|
84
|
+
src/behaviors/ # 行为模块(SSR 守卫 + 幂等 init + 返回销毁函数)
|
|
85
|
+
docs/ # 治理文档(versioning / contracts / testing / roadmap…)与 spec
|
|
86
|
+
site/ # 文档站(独立 Astro 应用)
|
|
87
|
+
scripts/ # 构建、守卫与契约工具
|
|
115
88
|
```
|
|
116
|
-
|
|
117
|
-
## 消费方接入
|
|
118
|
-
|
|
119
|
-
`@icen.ai/ui` 已发布 npm(OIDC trusted publishing,打 `v*` tag 即自动发版)。两种消费方式均可:
|
|
120
|
-
|
|
121
|
-
- **包引入(推荐)**:`bun add @icen.ai/ui`,按 `./tokens.css` / `./ui.css` / `./kit/<slug>` 引入。
|
|
122
|
-
- **vendor 复制**:accounts 目前走这条路——`bun run sync:ui`(accounts 仓库内)把本仓库 `dist/` 复制到 `src/styles/vendor/icen/`,布局里 import 对应 CSS/JS。适合需要锁定版本或离线构建的场景。
|
|
123
|
-
|
|
124
|
-
给 AI 代理的文档层:npm 包内 `AGENTS.md`(消费方速查)+ `dist/**/*.d.mts`(类型真相);站点 <https://ui.icen.ai/llms.txt>(索引)与 `/llms-full.txt`(全文 + 类型面快照);场景配方 skill `icen-ui`(skill.icen.ai)。
|