Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
279 commits
Select commit Hold shift + click to select a range
196afc4
feat(icon): 推到 100%(loading / disabled / themePrefixMap)
May 8, 2026
e147efd
feat(select): 推到 100%(optionLabelProp / showSearch / transitionName /…
May 8, 2026
2943f63
feat(tree): 推到 95%(键盘导航 / 虚拟滚动 / focusedKey 受控 / 共享 use-virtual-list)
May 8, 2026
008e8ca
feat(tree): 推到 100%(showLine / 拖拽 hover-expand / auto-scroll / loadDa…
May 8, 2026
d9f87f7
docs(readme): 补全组件清单到 60 个 + 标注覆盖度
May 8, 2026
35e2641
feat(form): 推到 95%(Form.List / Form.Provider / preserve)
May 8, 2026
398428e
feat(table): 推到 95%(固定列 / 展开行 / 合并单元格)
May 8, 2026
353bdf0
docs: 同步 README 与 components-diff 至 Form / Table 95%
May 8, 2026
71967e5
docs: 首页 hero 与 components-diff 同步至 P0 收口
May 9, 2026
5cbdc53
chore(docs): 通过 prettier 修复 Form / Table 文档遗留格式
May 9, 2026
7e2a1e8
fix(affix): 分类从「其他」改为「导航」,补回 sidebar 入口
May 9, 2026
8a1eb11
feat(date-picker): 80% 首次交付(date 单选 + 共享日期工具层)
May 9, 2026
14953fb
feat(time-picker): 80% 首次交付(24 小时三列 + step + disabled + footer)
May 9, 2026
864bf3a
feat(range-picker): 80% 首次交付(双面板 + hover 预览 + 自动调换)
May 9, 2026
17344b8
feat(cascader): 80% 首次交付(多列联动 + 路径数组 v-model)
May 9, 2026
9141297
feat(tree-select): 80% 首次交付 + P1 数据录入复杂组件 5/5 收口
May 9, 2026
7662f89
docs: 首页 hero 同步至 P1 5/5 收口(65 个组件 / 1000+ 单测)
May 9, 2026
fda932f
feat(carousel): 80% 首次交付(scrollx/fade + autoplay + 4 向 dots + infinit…
May 9, 2026
9652c73
feat(qr-code): 80% 首次交付(自渲 SVG + 容错 4 档 + logo 嵌入 + 状态四态)
May 9, 2026
c55bfdf
feat(color-picker): 80% 首次交付(HEX/RGB/HSV 互转 + SV/hue/alpha 三段拖拽)
May 9, 2026
f809947
feat(auto-complete): 80% 首次交付(P3 起步 / Input + 候选浮层 + 键盘导航)
May 9, 2026
b8ca286
docs: 首页 hero 同步至 P2 收口 + P3 起步(69 个组件 / 1100+ 单测)
May 9, 2026
b331a45
feat(transfer): 80% 首次交付(双列穿梭 + 全选 indeterminate + 双向移动 + 搜索)
May 9, 2026
df7fdbf
feat(tour): 80% 首次交付(多步导览 + 4 块 mask 围镂空 + 12 方位浮层)
May 9, 2026
8e64715
feat(upload): 80% 首次交付(文件选择 + 拖拽 + 三层守门 + 状态四态)
May 9, 2026
b0994e0
feat(mentions): 80% 首次交付(textarea + @ 触发 + 多 prefix + 键盘)
May 9, 2026
11e73d3
docs: 首页 hero 同步至 P2/P3 全收口(73 个组件 / 1200+ 单测)
May 9, 2026
d0d2d7e
test: 测试质量审查(TSX 加载修复 + slider 重写 + 2 个已知失败修复)
vaebe May 9, 2026
94e472a
feat(carousel,qr-code): 80%→95% 推进(键盘/swipe/afterChange/dotRadius/gra…
vaebe May 9, 2026
ee80bc3
feat(color-picker): 80%→95% 推进(RGB 输入 + trigger slot + 键盘导航 + allowCl…
vaebe May 9, 2026
b8b8ab1
feat(transfer): 80%→95% 推进(分页 + selectAllLabels slot + 拖拽排序)
vaebe May 9, 2026
9aa2ba2
feat(upload): 80%→95% 推进(customRequest + async beforeUpload + listTyp…
vaebe May 9, 2026
3c716a6
feat(auto-complete): 80%→95% 推进(defaultActiveFirstOption/backfill/deb…
vaebe May 9, 2026
08c9469
feat(mentions): 80%→95% 推进(autoSize + Tab 选中 + searchDebounce)
vaebe May 9, 2026
1312f3f
feat(tour): 80%→95% 推进(type=primary + arrow + scrollIntoView + cover)
vaebe May 9, 2026
83d551c
docs: 同步 Upload/AutoComplete/Mentions/Tour 95% 新增 Props 到文档
vaebe May 9, 2026
350771d
feat(form): P0 长尾推进(shouldUpdate + validateDebounce + normalize)
vaebe May 9, 2026
baa3db4
feat(table): P0 长尾推进(树形数据 childrenColumnName + indentSize)
vaebe May 9, 2026
7fc0a52
feat(resolver): 新增 @vue3-ccui/unplugin-vue-components 工具包
vaebe May 10, 2026
1a4ec62
fix(theme): Ant Design v6 主题对齐(Form var 改名 + 24 处硬编码主色 var 化)
vaebe May 10, 2026
3ba431d
docs: 同步首页 hero + Batch 33/34 + 设计审查报告
vaebe May 10, 2026
c98e951
docs: 移除 Batch 33 已废弃的 cssBundlePath 调整 todo
vaebe May 10, 2026
84e5e2f
fix(result): JS 主色重构为 currentColor + 状态修饰类(移除 4 处 #1677ff)
vaebe May 10, 2026
3afadc8
fix(test): pin vue to 3.5.33 修复双实例 reactivity 失效(107 失败 → 0)
vaebe May 10, 2026
2df9b25
chore(deps): vue3-ccui 声明版本同步到 ^3.5.33
vaebe May 10, 2026
cb57837
feat(theme): 加 control-outline token + Modal hover 走 colorPrimaryHover
vaebe May 10, 2026
ef29d93
feat(theme): dark.ts 补全非颜色 token(圆角/字号/动效/间距/阴影/字体族)
vaebe May 10, 2026
05663a7
feat(theme): 12 色板补全 1-10 阶 + Tag 预设色接入色板 token
vaebe May 10, 2026
53b5b46
feat(tag): processing 状态加 6px 脉冲点动画
vaebe May 10, 2026
268ecdf
docs: 审查报告 P1/P2 整改 + 设计原则与品牌色决策记录
vaebe May 10, 2026
554ff56
fix(button): plain 按钮 hover/focus/active 文字与背景对比度修复
vaebe May 10, 2026
45ec9b1
fix(tag): 给 @each 色名加引号消除 Sass named-color 插值警告
vaebe May 10, 2026
a09581f
fix(button): icon prop 自动识别 Iconify 名 + 修复文档死示例
vaebe May 10, 2026
cfd2a82
fix(components): 多组件样式与逻辑修复
vaebe May 10, 2026
7c2ca2d
docs(components): 补充 6 个组件文档示例向 Ant 对齐
vaebe May 10, 2026
2b345f6
refactor(theme): 清扫 11 个组件硬编码主色,统一走 $ccui-color-primary token
vaebe May 10, 2026
4c2dc14
refactor(theme): input-number/slider focus 光环统一走 \$ccui-control-outline
vaebe May 10, 2026
f7ae6f2
refactor(button-hover): popconfirm/time-picker 内置按钮 hover 不再用 opacity…
vaebe May 10, 2026
e2e6ce7
feat(cli): darkTheme.css 合并 light 非颜色 token,避免切到 .dark 后排版/动画依赖 :root 兜底
vaebe May 10, 2026
dd78db7
docs(components): batch 1 - 补 anchor/message/status 示例向 Ant 对齐
vaebe May 10, 2026
aabc353
chore: gitignore docs-notes/screenshots
vaebe May 10, 2026
c880bc9
docs(components): batch 2 - 补 notification/drawer/breadcrumb/popconfi…
vaebe May 10, 2026
c0c6ea6
docs(components): batch 3 - 补 image/watermark/statistic/config-provid…
vaebe May 10, 2026
d8b2b65
docs(components): batch 4 - 拆分 radio/check-box 堆叠示例
vaebe May 10, 2026
ca7b185
docs(components): P3 3-demo 复审 batch A - pagination/steps/skeleton/pr…
vaebe May 10, 2026
9d40f72
docs(components): P3 3-demo 复审 batch B - descriptions/flex/result/spi…
vaebe May 10, 2026
0c931f1
docs(components): P3 3-demo 复审 batch C - segmented/layout/typography/…
vaebe May 10, 2026
8cbb013
refactor(theme): light.ts 旧业务 token 加 @deprecated JSDoc,每行指向新 token
vaebe May 10, 2026
6cd2aab
docs: 新建仓库根 CHANGELOG.md(keep-a-changelog 风格)
vaebe May 10, 2026
586c4e3
refactor(form): form.scss 全量改走 SCSS token,对齐其他组件
vaebe May 10, 2026
eed2024
feat(locale): ConfigProvider.locale 接通,新增 zhCN/enUS 语言包
vaebe May 10, 2026
84e7600
feat(config-provider): 实现 theme.algorithm(dark / compact / default)
vaebe May 10, 2026
2378078
docs(form): 补 layout / methods 两个 :::demo,从 4 扩到 6
vaebe May 10, 2026
69061c9
docs: 同步 CHANGELOG + 新增 P0 落地决策记录
vaebe May 10, 2026
581e649
refactor(cli): 重写 CLI — 全量 ESM、依赖瘦身、抽公共 helper、修复多个 bug
vaebe May 10, 2026
398cec0
feat(locale): Batch 36 P1 跟进项收口 — Pagination / Image / DatePicker 系接通…
May 12, 2026
e7b0fca
chore(fmt): vp check --fix 顺手归整 docs / cli 旧格式漂移
May 12, 2026
34b4fca
feat(date-picker): Batch 37 DatePicker 95% — picker 模式 / showTime / p…
vaebe May 13, 2026
a324ce9
feat(range-picker): Batch 38 RangePicker 95% — disabledStart/End / pr…
vaebe May 13, 2026
d378fa4
feat(time-picker): Batch 39 TimePicker 95% — use12Hours / 键盘 / auto-s…
vaebe May 13, 2026
aada826
feat(cascader): Batch 40 Cascader 95% — hover / showSearch / loadData…
vaebe May 13, 2026
7c41ff7
docs: 同步 CHANGELOG — Batch 37-40 P1 数据录入复杂组件 4/5 推进 95%
vaebe May 14, 2026
c9a1ae9
docs(notes): 73 组件逐项 diff + docs-notes 重组
May 14, 2026
49e7dbb
docs(notes): 增加 roadmap.md — 后续任务清单按 T-Shirt Size 分级
May 14, 2026
ac3f2ae
docs(notes): roadmap 加「对标 Ant 不等于 100% 对齐」原则 + Vue 化映射
May 14, 2026
4e17ba6
fix(types): Batch 41-S 机械修复 6 项
May 14, 2026
82aad07
feat(button): L-1.1 Button Ant Design API 别名层 + Button.Group 子组件
May 14, 2026
10b8798
feat(input): L-1.2 Input Ant Design API 别名层 + 子能力补齐
May 14, 2026
6412cab
feat(modal): L-1.3 Modal Ant Design API 别名层 + 复合 closable + footer sl…
May 14, 2026
3538862
feat(drawer): L-1.4 Drawer Ant Design API 别名层 + push 嵌套 + loading 骨架 …
May 14, 2026
937f3bc
feat(tooltip,popover,popconfirm): L-1.5 Tooltip 系 Ant Design API 别名层 …
May 14, 2026
521e825
feat(form): L-1.6 Form Ant Design API 别名层 + 栅格 + hasFeedback + warnin…
May 14, 2026
3d846ba
refactor(button,docs): 移除 Button.Group 静态属性挂载 + roadmap Tier L-2 全面 V…
May 14, 2026
f77a3ed
feat(textarea): L-2.1 新建 Textarea 平铺顶层组件(对标 ant Input.TextArea)
May 14, 2026
8e64695
feat(input-search): L-2.2 新建 InputSearch 平铺顶层组件(对标 ant Input.Search)
May 14, 2026
a5eb647
feat(input-otp): L-2.4 新建 InputOtp 平铺顶层组件(对标 ant Input.OTP v5.18+)
May 14, 2026
ec7da13
docs: 新增 Textarea / InputSearch / InputOtp 用户文档(L-2.1 / 2.2 / 2.4)
May 14, 2026
88b7a39
feat(checkable-tag): L-2.6 新建 CheckableTag + CheckableTagGroup 平铺顶层组件…
May 15, 2026
6dc0f95
feat(image-preview-group): L-2.7 新建 ImagePreviewGroup 平铺顶层组件(对标 ant I…
May 15, 2026
173abc8
feat(avatar-group): L-2.8 新建 AvatarGroup 平铺顶层组件(对标 ant Avatar.Group)
May 15, 2026
4ccf221
feat(badge-ribbon): L-2.9 新建 BadgeRibbon 平铺顶层组件(对标 ant Badge.Ribbon)
May 15, 2026
164b8f2
feat(card-meta, card-grid): L-2.10 新建 CardMeta + CardGrid 双件平铺顶层组件(对标…
May 15, 2026
774e2c4
feat(list-item-meta): L-2.11 新建 ListItemMeta 平铺顶层组件(对标 ant List.Item.…
May 15, 2026
d4ab411
docs: 同步 L-1.1 ~ L-1.6 API 表(Button/Input/Modal/Drawer/Tooltip/Popove…
May 15, 2026
2f2681a
feat(table-column, table-column-group, table-summary): L-2.12 新建三件平铺顶…
May 15, 2026
092fac7
feat(directory-tree): L-2.13 新建 DirectoryTree 平铺顶层组件(对标 ant Tree.Dire…
May 15, 2026
507cab6
feat(dropdown-button): L-2.14 新建 DropdownButton 平铺顶层组件(对标 ant Dropdow…
May 15, 2026
0ceb404
feat(skeleton-button, skeleton-avatar, skeleton-input, skeleton-image…
May 15, 2026
74e0f8e
feat(form-error-list): L-2.16 新建 FormErrorList 平铺顶层组件(对标 ant Form.Err…
May 15, 2026
2b406b6
docs(menu): L-2.17 补 Menu 子组件文档对齐(对标 ant Menu.SubMenu / .ItemGroup / …
May 15, 2026
c23eec5
feat(splitter, cascader, tree-select): L-2.23 / L-2.24 / L-2.25 三个小批合并交付
May 15, 2026
2b96643
feat(statistic-timer): L-2.18 新建 StatisticTimer 平铺顶层组件(对标 ant Statist…
May 15, 2026
7e064d0
feat(calendar): L-2.19 header slot 富作用域(Vue 化 ant headerRender render…
May 15, 2026
78742ba
feat(error-boundary): L-2.20 新建 ErrorBoundary 平铺顶层组件(对标 ant Alert.Err…
May 15, 2026
7a9275f
feat(layout): L-2.21 Sider 响应式 breakpoint + 浮动触发器 zeroWidthTriggerStyle
May 15, 2026
41a6e1b
feat(space-compact): L-2.22 新建 SpaceCompact 平铺顶层组件(对标 ant Space.Compact)
May 15, 2026
a0bccda
feat(message, notification): L-3.5 通用增强(duration 秒制 + 多 placement + m…
May 15, 2026
d4a0e71
feat(use-message): L-3.3 新建 useMessage composable(对标 ant message.useM…
May 15, 2026
1689e02
feat(use-notification): L-3.4 新建 useNotification composable(与 L-3.3 u…
May 15, 2026
ff78bfb
feat(modal-confirm, use-modal): L-3.1 + L-3.2 命令式 Modal + useModal co…
May 15, 2026
06a4fda
tmp
May 15, 2026
3799491
feat(typography): L-3.7 copyable / editable / ellipsis 三大交互(render pr…
May 15, 2026
f00432d
docs(typography): L-4.8 Typography demo 配套(与 L-3.7 交互三能力配套),10 → 29 demo
May 15, 2026
3486a8e
docs(rate, result, progress): L-4.1 三组件 demo 补齐,+21 demo
May 15, 2026
08fdb5f
docs(avatar, badge, alert, float-button): L-4.2 4 组件 demo 补齐,+24 demo
May 15, 2026
9334656
docs(affix, spin, input-number, empty, segmented, flex): L-4.3 6 组件 d…
May 15, 2026
b4f72d1
docs(mentions, collapse, card, list, image, statistic, divider, grid)…
May 15, 2026
f217bce
docs(tooltip, popover, cascader, date-picker): L-4.5 4 组件 demo 补齐,+20…
May 15, 2026
5af5036
docs(table, table-column, table-column-group, table-summary): L-4.6 T…
vaebe May 15, 2026
a542f7a
docs(form, form-error-list): L-4.7 Form demo 补齐(与 L-1.6 + L-3.6 配套),+…
vaebe May 15, 2026
6b7a70a
fix(workspace, cli): 修复 pnpm 包扫描重复与 locale 目录误识别为组件
vaebe May 15, 2026
2e2b265
feat(input, input-number, textarea, mentions, select, auto-complete, …
vaebe May 15, 2026
7b0f034
feat(input, input-number, mentions, date-picker, range-picker, time-p…
vaebe May 15, 2026
070a2bc
chore(qr-code, list, list-item-meta, card-grid, form-error-list, erro…
vaebe May 15, 2026
c66668f
chore(tour): 移除 Tour 组件,不再对标 Ant 同步
vaebe May 15, 2026
b835270
feat(button, input, modal, drawer, tooltip, popover, popconfirm, form…
vaebe May 15, 2026
0678557
feat(auto-complete, color-picker, date-picker, range-picker, time-pic…
vaebe May 16, 2026
c713a3d
feat(input, input-number, textarea, mentions, select, auto-complete, …
vaebe May 16, 2026
fd2c275
style(格式化文档)
vaebe May 16, 2026
e8267f6
chore(types): 统一清理 38 个 *-types.ts / shared hooks 的版本元信息与批次标签注释,0 测试改动
vaebe May 16, 2026
9a6ce10
chore(skeleton-avatar, skeleton-button, skeleton-image, skeleton-inpu…
vaebe May 16, 2026
a731634
chore(dropdown-button): 移除 DropdownButton 组件
vaebe May 16, 2026
3d4a41e
feat(tree, icons): 新建独立 @vue3-ccui/icons 离线图标包接管 tree switcher,tree 加…
vaebe May 16, 2026
ec458c4
docs(image): 示例图片替换为 picsum.photos,避免使用 React 风格 SVG
vaebe May 16, 2026
4509003
chore(table): 移除分页职责,change 事件签名收紧为 (filters, sorter, currentData)
vaebe May 16, 2026
168b5ce
style(格式化文档)
vaebe May 16, 2026
648b33c
docs(docs-notes): 同步 Table 移除分页后的 roadmap / components-diff / per-com…
vaebe May 16, 2026
16193c5
chore(release): 准备 2.0.0-beta.0 预发布
vaebe May 16, 2026
b0ca664
chore(release): npm 包改用 @vaebe scope + 发布脚本切 passkey 流程
vaebe May 16, 2026
ae575bd
docs(roadmap): 重规划方向「高频功能优先」+ 顶层结构整理
vaebe May 16, 2026
e935525
feat(date-picker): M-B1 高频补齐 minDate/maxDate/disabledTime/键盘导航/cell/e…
vaebe May 16, 2026
f647816
feat(tree-select): M-B5 高频补齐 showSearch/loadData/键盘导航,测试 1933 → 1943 …
vaebe May 16, 2026
c43c790
feat(cascader): M-B4 高频补齐 maxTagCount/键盘导航/showSearch limit-sort/opti…
vaebe May 16, 2026
ae71121
feat(color-picker): M-B6 高频补齐 presets 分组预设色板 / panel slot,测试 +4
vaebe May 16, 2026
f82d23c
feat(carousel): M-B7 高频补齐 slidesToShow/slidesToScroll/pauseOnHover,测试…
vaebe May 16, 2026
0ed9e08
feat(transfer): M-B8 高频补齐 selections-icon slot + prop 双轨,测试 +3
vaebe May 16, 2026
d452d7c
feat(time-picker): M-B3 高频补齐 TimeRangePicker 独立组件 / cell slot,测试 +18
vaebe May 16, 2026
d4db3f5
feat(range-picker): M-B2 高频补齐 disabled/allowEmpty 元组双轨,测试 +11
vaebe May 16, 2026
fa7d440
build(cli): 生成文件脱离 git 追踪,prebuild 钩子挂到 build:components
vaebe May 16, 2026
e61bee7
feat(upload): M-B9 高频补齐 listType=picture-card / UploadDragger 平铺顶层组件,…
vaebe May 16, 2026
3c3aaa7
chore(shared): XL-3 新增 deprecated util,删除旧 use-deprecation-warning
vaebe May 16, 2026
cd9d126
chore(tooltip,popover,popconfirm): XL-3 deprecation warn 接入
vaebe May 16, 2026
a7bc6b5
chore(modal,drawer,input): XL-3 deprecation warn 接入
vaebe May 16, 2026
1c54d39
chore(button,tag,input-number,color-picker): XL-3 deprecation warn 接入…
vaebe May 16, 2026
1ea0e02
chore(form): XL-3 deprecation warn 接入 — FormItem 迁移 + Form.shouldUpda…
vaebe May 16, 2026
aa16e8e
feat(form-item): XL-1 切 name 主名,prop 保留 deprecated 兼容,测试 +1
vaebe May 16, 2026
8b75381
feat(calendar): XL-2 切 Dayjs 协议 + valueFormat,解卡 L-4.8 Calendar demo,…
vaebe May 16, 2026
14aa3a7
fix(浮层): XL-4 ARIA + 键盘审计 — Tooltip/Popover/Popconfirm/Dropdown/Drawe…
vaebe May 16, 2026
d14307d
fix(选择): XL-4 ARIA + 键盘审计 — Select/TreeSelect/Cascader/DatePicker/Tim…
vaebe May 16, 2026
98e4776
fix(列表): XL-4 ARIA + 键盘审计 — Menu/Tree/Tabs/Steps/Collapse/Pagination/…
vaebe May 16, 2026
08f70bd
fix(录入): XL-4 ARIA + 键盘审计 — Input/InputNumber/InputOtp/Textarea/Radio…
vaebe May 16, 2026
034e14b
feat(locale): XL-5 i18n 二期,dayjs locale 接入 + ja-JP/ko-KR 覆盖,测试 +7
vaebe May 16, 2026
fd06832
docs(modal,drawer): XL-6 demo 切到 v2 主名
vaebe May 16, 2026
a094e98
docs(tooltip,popover,popconfirm): XL-6 demo 切到 v2 主名
vaebe May 16, 2026
b52f3a2
docs(button,input,color-picker): XL-6 demo 切到 v2 主名
vaebe May 16, 2026
7440a84
chore(release): v2.0.0 收官 — Ant 主名全切,21 项 deprecated
vaebe May 16, 2026
504fd6e
refactor(overlay): visible/closeOnEsc/appendToBody 改回 Vue-first canon…
vaebe May 17, 2026
505b806
chore(docs): packages/docs/package.json 按 formatter 字母序排序 dependencies
vaebe May 17, 2026
c57af02
feat(codemod): v1 → v2 自动迁移脚本,覆盖 26 项命名
vaebe May 17, 2026
ce96a58
docs(bundle): v2.0.0 size baseline snapshot
vaebe May 17, 2026
5f4d0dc
docs(color-picker): 移除「已知限制 — eyedropper」段
vaebe May 17, 2026
48985da
docs(introduce): 快速开始追加「按需引入」章节
vaebe May 17, 2026
da8cd1f
docs(introduce): 移除「版本」与「v2.0.0 升级指南」两节
vaebe May 17, 2026
8514f1c
docs(home): 刷新首页 hero + features,对齐 v2.0.0 实况
vaebe May 17, 2026
478ba3c
docs(home): 组件 feature 描述改「Ant Design 风格」
vaebe May 17, 2026
914c851
docs(home): 移除「组件总览」action
vaebe May 17, 2026
6f8c541
docs(float-button): 图标按钮 demo 改用 c-icon slot,修复 icon 显示过小
vaebe May 17, 2026
a88dbfc
docs(float-button): demo icon 全部切到 c-icon,移除文字占位符
vaebe May 17, 2026
8e0a985
docs(icon): 「常用图标速览」改为项目实际清单 + 卡片视觉重做
vaebe May 17, 2026
301a4c0
docs(demo): 文档 demo 内 emoji 占位符统一改用 c-icon + mdi
vaebe May 17, 2026
f332fa5
refactor(ui): 组件源码内 emoji icon fallback 全量切到 c-icon + mdi
vaebe May 17, 2026
e7f049b
refactor(tree): 切到 c-icon mdi:menu-right,移除内部 @vaebe/ccui-icons 依赖
vaebe May 17, 2026
1c53db3
feat(icons): ccui-icons inline mdi collection,组件内置图标默认离线可用
vaebe May 17, 2026
a0d938e
docs(icon): 去掉前缀简化 / 主题前缀映射两节,精简内置图标包描述
vaebe May 17, 2026
ddc22d9
chore(release): publish.mjs 接入 bumpp + conventional-changelog 自动化
vaebe May 17, 2026
d0eaffb
chore: release v2.0.1-beta.1
vaebe May 17, 2026
8cdbc37
fix(release): publish.mjs 不再 add 被 ignore 的 cli/CHANGELOG,tag 改 annot…
vaebe May 17, 2026
e63852c
chore: release v2.0.1-beta.2
vaebe May 17, 2026
989c072
docs(ai): 站点产出 llms.txt / llms-full.txt 并新增 AI 接入指南
vaebe May 17, 2026
8479612
feat(pkg)!: 重做发包链路,按需引入 / tree-shake / 真实 .d.ts 三件一次到位
vaebe May 17, 2026
7b02eb2
chore(release): 发包链路 follow-up 收尾
vaebe May 17, 2026
ec53881
fix(pkg): 收紧发包链路若干鲁棒性问题
vaebe May 17, 2026
307ae02
fix: 收尾几处运行时 / 文档 / fixture 的小坑
vaebe May 17, 2026
a25e45f
fix(pkg): 收紧发包链路若干鲁棒性问题
vaebe May 17, 2026
0d1c460
perf(docs): UnoCSS pipeline.exclude 砍掉 node_modules 等无效扫描
vaebe May 17, 2026
9dbd32b
style(ccui,docs): 默认重置 ul/ol marker,card-meta 示例换掉 Ant 图片
vaebe May 17, 2026
919e754
fix(pagination): 快速跳页输入框默认展示当前页码
vaebe May 17, 2026
4d46922
chore: release v2.0.1-beta.3
vaebe May 17, 2026
2089965
refactor(form,modal,drawer,tag,color-picker): 删除 v2 beta 阶段 deprecati…
May 19, 2026
ff3b964
docs(notes): 加 v2-cleanup-plan.md 跟踪剩余 deprecation 清理(8 task,分会话执行)
May 19, 2026
b91b181
refactor(input-number): 删除 size 旧值 lg/md/sm 兼容层
May 19, 2026
7abe9d7
refactor(input,input-search): 删除 v2 beta Ant 风格新名 allowClear/addonBef…
May 19, 2026
0492af9
refactor(tooltip,slider): 删除 v2 beta Ant 风格新名 title/arrow/mouseEnterD…
May 19, 2026
227641b
refactor(popover,dropdown,popconfirm): 删除 v2 beta Ant 风格新名 arrow/mous…
May 19, 2026
5efdeb1
refactor(popconfirm,locale): 删除 v2 beta Ant 风格新名 okText/okType + loca…
May 19, 2026
07ad205
refactor(button): 删除 v2 beta Ant 风格新名 htmlType/shape/variant + color …
May 19, 2026
7b21e62
chore(release): v2 beta 反向清理收口 — 删 codemod / 更新 roadmap / 写 beta.4 ch…
May 19, 2026
0f37fc5
docs(components): 清扫上一批 6 组件 deprecation 残留 + 删 v2 清理计划文档
May 19, 2026
f5e378d
chore: win 版本发布
May 19, 2026
ced0fee
chore: win 版本发布
May 19, 2026
190cc88
chore: win 版本发布
May 19, 2026
7fb9d30
chore: win 版本发布
May 19, 2026
bc8365b
chore: win 版本发布
May 19, 2026
a15591b
chore: win 版本发布
May 19, 2026
0ea35b7
chore: win 版本发布
May 19, 2026
a49d608
chore: win 版本发布
May 19, 2026
7a70946
chore: win 版本发布
May 19, 2026
dc42474
chore: win 版本发布
May 19, 2026
4af09fa
chore: win 版本发布
May 19, 2026
697874e
chore: release v2.0.1-beta.5
May 19, 2026
8296c13
docs: 文档更新
May 20, 2026
19f489b
refactor(docs): 重做侧边栏分类为 7 组
May 20, 2026
49d6eab
docs: 把 TESTING_GUIDELINES.md 收编到 docs-notes/decisions/
May 20, 2026
52cd041
docs: 拆分简介与快速开始为两页
May 20, 2026
21dd154
feat(border-beam): 新增 BorderBeam 边框流光组件
vaebe May 29, 2026
41be12d
Merge branch '2.x' of github.com:vaebe/ccui into 2.x
vaebe May 29, 2026
9635d74
docs(docs-notes): 清理历史档,decisions 只留约束与未决项
vaebe May 31, 2026
8792e76
docs: 2.0 发布前清理过期描述并修正库版本注入
vaebe May 31, 2026
ee7e47d
fix: 修复文档驱动发现的 ~25 项 UI 缺陷并清理冗余组件
vaebe May 31, 2026
62ca8f6
fix(popover): 箭头跟随 flip 翻转后的实际方位
vaebe May 31, 2026
0885dbd
fix: 修正 Transfer/Select/Steps icon 尺寸与连接线对称、收敛 docs showcase 间距
vaebe May 31, 2026
8110497
docs(docs-notes): 清理 issue.md 中已修复的条目
vaebe Jun 1, 2026
cf76012
fix: Select/TreeSelect/Cascader 箭头换 chevron-down 并放大、Transfer 自定义文案不溢…
vaebe Jun 2, 2026
eafddf9
refactor: 移除 Status 状态组件,功能与 Badge 状态点重合
vaebe Jun 2, 2026
0793de4
docs(docs-notes): 发布 2.0 前刷新体积基线与发布流程,清理 issue.md
vaebe Jun 2, 2026
51a776e
chore: release v2.0.0
vaebe Jun 2, 2026
3dbca24
ci: 移除 pnpm/action-setup 的 version,统一以 packageManager 为准
vaebe Jun 2, 2026
b3157f6
ci: 修正过期的 --filter 包名,使 test / build 步骤真正执行
vaebe Jun 2, 2026
2e38032
ci: 测试/构建前先生成 icons dist 与 theme.scss
vaebe Jun 2, 2026
1b075cc
chore: postinstall 自动 bootstrap icons dist + theme.scss
vaebe Jun 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .github/workflows/buildComponents.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ jobs:

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: pnpm

# pnpm install 的 postinstall 会自动 bootstrap 前置产物
# (icons dist + theme.scss),无需在此单独构建。
- name: Install dependencies
run: pnpm install

- name: Run build:components
run: pnpm --filter cli build:components
run: pnpm --filter ccui-cli build:components
3 changes: 0 additions & 3 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ on:

jobs:
build:

runs-on: ubuntu-latest

strategy:
Expand All @@ -21,8 +20,6 @@ jobs:

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ jobs:

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: pnpm

# pnpm install 的 postinstall 会自动 bootstrap 前置产物
# (icons dist + theme.scss),无需在此单独构建。
- name: Install dependencies
run: pnpm install

- name: Run tests
run: pnpm --filter vue3-ccui test
run: pnpm --filter @vaebe/ccui test
7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,14 @@ packages/ccui/build
**/.vitepress/config/enSidebar.ts
**/.vitepress/config.ts.js
**/.vitepress/cache
packages/docs/public/llms.txt
packages/docs/public/llms-full.txt

**CHANGELOG.md
packages/*/CHANGELOG.md
# test
packages/ccui/coverage
packages/ccui/ui/**/__snapshots__
.pnpm-debug.log
.claude
.codeflicker
.codeflicker
docs-notes/screenshots
4 changes: 0 additions & 4 deletions .husky/commit-msg

This file was deleted.

5 changes: 0 additions & 5 deletions .husky/pre-commit

This file was deleted.

1 change: 1 addition & 0 deletions .vite-hooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
cd "$(git rev-parse --show-toplevel)" && vp staged
15 changes: 15 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<!--VITE PLUS START-->

# Using Vite+, the Unified Toolchain for the Web

This project is using Vite+, a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called `vp`. Vite+ is distinct from Vite, and it invokes Vite through `vp dev` and `vp build`. Run `vp help` to print a list of commands and `vp <command> --help` for information about a specific command.

Docs are local at `node_modules/vite-plus/docs` or online at https://viteplus.dev/guide/.

## Review Checklist

- [ ] Run `vp install` after pulling remote changes and before getting started.
- [ ] Run `vp check` and `vp test` to format, lint, type check and test changes.
- [ ] Check if there are `vite.config.ts` tasks or `package.json` scripts necessary for validation, run via `vp run <script>`.

<!--VITE PLUS END-->
205 changes: 205 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

114 changes: 75 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,32 @@
# Vue3-CCUI

[![npm version](https://img.shields.io/npm/v/vue3-ccui.svg)](https://www.npmjs.com/package/vue3-ccui)
[![license](https://img.shields.io/npm/l/vue3-ccui.svg)](https://github.com/vaebe/ccui/blob/main/LICENSE)
[![downloads](https://img.shields.io/npm/dt/vue3-ccui.svg)](https://www.npmjs.com/package/vue3-ccui)
[![npm version](https://img.shields.io/npm/v/@vaebe/ccui.svg)](https://www.npmjs.com/package/@vaebe/ccui)
[![license](https://img.shields.io/npm/l/@vaebe/ccui.svg)](https://github.com/vaebe/ccui/blob/main/LICENSE)
[![downloads](https://img.shields.io/npm/dt/@vaebe/ccui.svg)](https://www.npmjs.com/package/@vaebe/ccui)

一个基于 Vue 3 + TypeScript + Vite 构建的现代化 UI 组件库。
一个基于 Vue 3 + TypeScript + [Vite+](https://viteplus.dev/) 构建的现代化 UI 组件库。

## ✨ 特性

- 🚀 基于 Vue 3 Composition API
- 💪 使用 TypeScript 开发,提供完整的类型定义
- ⚡ 使用 Vite 构建,快速的开发体验
- ⚡ Vite 8 + Rolldown 构建,OXC 全链路加速
- 🛠️ 全量接入 Vite+ 工具链:`vp dev / build / test / check / lint / fmt`
- 📦 支持按需引入,减小包体积
- 🎨 现代化的设计风格
- 🔧 完善的开发工具链
- 🎨 视觉设计致敬 Ant Design,沉淀为一套完整的主题 Token 体系
- 🧩 API 采用 Vue-first 命名(如 `visible` / `closeOnEsc` / `appendToBody`),与 Vue 生态习惯一致

## 📦 安装

```bash
# NPM
npm install vue3-ccui --save
npm install @vaebe/ccui --save

# Yarn
yarn add vue3-ccui
yarn add @vaebe/ccui

# pnpm
pnpm install vue3-ccui
pnpm install @vaebe/ccui
```

## 🚀 快速开始
Expand All @@ -34,11 +35,11 @@ pnpm install vue3-ccui

```ts
import { createApp } from 'vue'
import ccui from 'vue3-ccui'
import ccui from '@vaebe/ccui'
import App from './App.vue'

import './style.css'
import 'vue3-ccui/style.css'
import '@vaebe/ccui/style.css'

createApp(App).use(ccui).mount('#app')
```
Expand All @@ -47,10 +48,10 @@ createApp(App).use(ccui).mount('#app')

```ts
import { createApp } from 'vue'
import { Button, Card } from 'vue3-ccui'
import { Button, Card } from '@vaebe/ccui'
import App from './App.vue'

import 'vue3-ccui/style.css'
import '@vaebe/ccui/style.css'

const app = createApp(App)
app.use(Button)
Expand All @@ -60,50 +61,85 @@ app.mount('#app')

## 📚 组件

目前包含以下组件:

- **Avatar** - 头像
- **Button** - 按钮
- **Button3D** - 3D 按钮
- **Calendar** - 日历
- **Card** - 卡片
- **CheckBox** - 复选框
- **Divider** - 分割线
- **Popover** - 气泡卡片
- **Radio** - 单选框
- **Rate** - 评分
- **Status** - 状态
- **Tabs** - 标签页
- **Timeline** - 时间线
- **Tooltip** - 文字提示
- **Tree** - 树形控件
覆盖通用 / 导航 / 反馈 / 数据录入 / 数据展示 / 布局 / 其他七大类,共 **84 个组件 / 工具入口**。**API 命名采用 Vue-first 习惯**(受控显示用 `visible` / `v-model:visible`,而非 React 生态的 `open`),完整命名约定见 [`docs-notes/decisions/benchmark-principles.md`](./docs-notes/decisions/benchmark-principles.md)。

完整组件列表、API 与在线示例见 [📖 在线文档](https://vaebe.github.io/ccui/)。

## 📖 文档

访问 [在线文档](https://vaebe.github.io/ccui/) 查看详细的组件使用说明和示例。

## 🛠️ 开发

> 仓库已接入 [Vite+](https://viteplus.dev/),需要预先全局安装 `vp`:
>
> ```bash
> npm i -g vp
> ```
>
> 同时要求 Node `>= 22.10`(用于 cli 包的原生 TypeScript type stripping)。

```bash
# 克隆项目
git clone https://github.com/vaebe/ccui.git

# 安装依赖
pnpm install
vp install

# 启动开发服务器
pnpm dev
# 启动开发服务器(默认跑文档站)
vp run --filter docs dev

# 构建文档
pnpm docs:build
vp run --filter docs docs:build

# 运行测试
pnpm --filter vue3-ccui test
vp run --filter @vaebe/ccui test

# 一站式格式化 + lint + 类型检查
vp check --fix

# 单独格式化(Oxfmt)
vp fmt

# 单独 lint(Oxlint)
vp lint . --fix
```

工具链:

# 代码检查
pnpm lint
| 能力 | 工具 |
| ----------- | ----------------------------------------------------------- |
| 构建 | Vite 8 + Rolldown |
| 测试 | Vitest 4.1(通过 `vp test`) |
| 格式化 | Oxfmt(antfu 风格:单引号、无分号、`trailingComma: 'all'`) |
| Lint | Oxlint |
| 类型检查 | tsgolint(在 `vp check` 内串联) |
| 文档站 | VitePress 2 |
| Git Hooks | `vp config` + `.vite-hooks/`(替代 husky) |
| Staged 任务 | `vite.config.ts` 的 `staged` 块(替代 lint-staged) |

## 📦 发布

仓库通过根目录的 `scripts/publish.mjs` 一键发布 3 个公开包到 npm(`@vaebe/ccui` / `@vaebe/ccui-icons` / `@vaebe/unplugin-vue-components-ccui`)。

```bash
pnpm release # 默认 dist-tag=beta
pnpm release:dry # 走全流程但不真正 publish
node scripts/publish.mjs --tag latest # 正式发版
```

脚本会自动:

1. 预检 npm 登录态;缺失会引导走 `npm login --auth-type=web`(passkey / Touch ID / WebAuthn)
2. 校验三个发布包版本号一致
3. 按依赖顺序构建:icons → ccui → resolver
4. 顺序 publish;2FA 失败时给出 `[r]` 重登 / `[o]` 兜底输 TOTP / `[x]` 终止三选项
5. 打 git tag `v<version>` 并 push origin

> npm 自 2025-09 起停止接受新的 TOTP 注册,全面推 WebAuthn / passkey。
> 老 TOTP 账号仍可用,发布失败时按 `o` 输 6 位码兜底。
> 详细流程与故障排查见 [`docs-notes/releasing.md`](./docs-notes/releasing.md)。

## 🤝 贡献

欢迎提交 Issue 和 Pull Request!
Expand All @@ -115,5 +151,5 @@ pnpm lint
## 🔗 相关链接

- [GitHub](https://github.com/vaebe/ccui)
- [NPM](https://www.npmjs.com/package/vue3-ccui)
- [NPM](https://www.npmjs.com/package/@vaebe/ccui)
- [在线文档](https://vaebe.github.io/ccui/)
36 changes: 36 additions & 0 deletions docs-notes/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Docs Notes

ccui 工程层的 **shared memory**:决策约束、发布流程、维护基线。面向开发者本人 / AI / 未来贡献者,**不进入 VitePress 文档站**。

> 与 [`packages/docs/`](../packages/docs/)(VitePress 文档站)的分工:
> - `packages/docs/` —— 面向使用方,写 demo / props / events。
> - `docs-notes/` —— 面向贡献者,写决策、约束、流程、未决项。
>
> 一句话判别:读者是「写业务的工程师」→ `packages/docs/`;读者是「下一次会话的我自己 / Claude / Codex」→ `docs-notes/`。

## 目录

| 文件 / 目录 | 用途 |
| ---------------------------------------------------------- | ------------------------------------------------- |
| [decisions/](./decisions/) | 不变性约束(一旦合入,后续工作必须遵守) |
| [releasing.md](./releasing.md) | npm 发布流程、2FA / passkey、故障排查 |
| [bundle-size-baseline.md](./bundle-size-baseline.md) | 当前体积基线(v2.0 snapshot) |

## decisions/

约束类决策。**和「修复记录」严格区分**:只有具备「反向决策成本」与「长期不变性约束」的内容才进。

| 文件 | 主题 |
| -------------------------------------------------------------------------- | ----------------------------------------------------- |
| [benchmark-principles.md](./decisions/benchmark-principles.md) | 对标 Ant Design 的边界:不照搬 React-only,翻译 Vue 化 |
| [brand-color.md](./decisions/brand-color.md) | 默认主色 `#1677ff` 全量对齐 v6 |
| [design-values.md](./decisions/design-values.md) | 自然 / 确定 / 意义 / 生长 四原则在 ccui 的体现 |
| [config-provider-locale.md](./decisions/config-provider-locale.md) | ConfigProvider locale / theme.algorithm 接通承诺 |
| [testing-principles.md](./decisions/testing-principles.md) | 测试术语用 Vue 语境 + 测试优先级(先测真实行为) |

## 写新笔记的约定

1. **决策**:进 `decisions/`,文件名 `<topic>.md`。顶部写「决策日期 / 状态 / 反向决策开销 / 不变性约束」。
2. **流程 / 基线**:直接放顶层(如 `releasing.md` / `bundle-size-baseline.md`)。
3. **修复记录 / 批次记录**:**不再单独写**。提交 PR / 走 git log 即可,避免和 `decisions/` 混淆。
4. **过期内容**:直接删,靠 git 历史溯源;不在本目录沉淀历史档。
66 changes: 66 additions & 0 deletions docs-notes/bundle-size-baseline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Bundle Size Baseline — v2.0

snapshot 时间:2026-06-02
git ref:`eafddf9`
build cmd:`pnpm build:lib`(实际跑 `vp run --filter ccui-cli build:lib` → `pnpm build:components` → `vite build`,详见 `packages/cli/commands/build.js`)
产物目录:`packages/ccui/build/`(一份全量 `vue-ccui.es|umd.js` + 82 个按组件目录的子 bundle)

## 总览(全量 all-in-one bundle)

| 项 | raw | gzip |
|---|---|---|
| `vue-ccui.es.js` | 515.57 KB | 132.51 KB |
| `vue-ccui.umd.js` | 418.43 KB | 118.41 KB |
| `style.css`(顶层合并 css) | 268.59 KB | 36.64 KB |

注:`external = ['vue', 'vue-router', '@vueuse/core', '@floating-ui/dom']`,gzip 体积已扣掉这些 peer。

## 前 10 大组件 chunk(按组件目录 `index.es.js`,按 gzip 排序)

| chunk | raw | gzip |
|---|---|---|
| tree-select | 79.77 KB | 24.06 KB |
| date-picker | 73.59 KB | 22.79 KB |
| range-picker | 67.18 KB | 21.37 KB |
| time-range-picker | 68.14 KB | 21.29 KB |
| time-picker | 62.64 KB | 20.37 KB |
| cascader | 60.39 KB | 19.06 KB |
| auto-complete | 51.86 KB | 17.00 KB |
| modal | 49.99 KB | 16.19 KB |
| select | 50.81 KB | 15.96 KB |
| tree | 52.30 KB | 15.77 KB |

## Locale 包

ccui 当前 4 个 locale 用静态 `export` 暴露(`ui/locale/index.ts`),全量 `vue-ccui.es.js` 会把 4 份字符串都打进去;并未单独 emit 为 `locale/zh-CN.js` chunk。源文件体量参考:

| locale 源文件 | source raw |
|---|---|
| zh-CN.ts | 1941 B |
| en-US.ts | 1732 B |
| ja-JP.ts | 1859 B |
| ko-KR.ts | 1883 B |

**结论**:i18n 字符串走 named export,用户侧 `import { enUS } from '@vaebe/ccui'` 走 tree-shaking 即可只带一份。全量 bundle 默认带全 4 份(合计 < 8 KB 源码、gzip 后量级更小),未做强行 split。

## dayjs locale 分包

`packages/ccui/build/` 顶层除主 bundle 外另有以下 lazy chunk:

| chunk | raw | gzip |
|---|---|---|
| `en-BVwCvuzF.js` | 840 B | 536 B |
| `ja-B4U4rt8A.js` | 1763 B | 825 B |
| `ko-BG35I8uK.js` | 1791 B | 827 B |
| `zh-cn-C8nbfD5S.js` | 2017 B | 993 B |
| `chunk-Ndeg2fpE.js`(rolldown 共享 runtime) | 998 B | 560 B |

每个 chunk 头部都是 `import { t } from "./vue-ccui.es.js"` + `import('dayjs/locale/xxx')` 的产物,说明 `ui/shared/utils/dayjs-locale.ts` 里 `switch` 显式 `import('dayjs/locale/zh-cn')` 等被打包工具成功识别为按需 chunk。

**结论**:dayjs 4 个 locale 均独立分包,仅在 `setDayjsLocale()` 调用(ConfigProvider 切语言路径)时按需拉取,主 bundle 不内联 dayjs locale 数据。

## 备注

- size-limit / bundlewatch 暂未引入,本基线仅 snapshot;下次升级前手动重跑 `pnpm build:lib` 对比 `packages/ccui/build/vue-ccui.es.js` 与本表即可。
- 每组件 CSS 文件总和(78 个 `style.css`)= 1071.79 KB raw(按组件按需引入时存在内容重叠,与顶层 268 KB 合并 css 不可直接相加)。
- per-component 子 bundle 不含 locale 字符串(locale 不在 `discoverComponents` 名单内),仅全量 `vue-ccui.es.js` 包含。
Loading
Loading