青梧 UI

更新日志

记录青梧 UI 各组件的版本更新内容。

v0.9.0-beta.19ai-editor

  • 修复ai-editor 桌面目录悬浮框改为 portal 挂 document.body(同移动抽屉手法):宿主存在 GSAP 入场 / 步骤切换动画时,动画进行中的祖先内联 transform 会抢走 fixed 目录的包含块,表现为目录先闪现在编辑器内部、动画 clearProps 后再跳到视口右侧;portal 到 body 后包含块恒为视口,定位不再被动画劫持。宿主注意:桌面 aside(.qingwu-toc-desktop)与移动抽屉(.qingwu-toc-drawer)均为 body 直子节点,不要以编辑器容器后代关系锚定它们;编辑器实例常驻、靠祖先 display:none 切视图的宿主需按自身步骤状态额外收掉面板

v0.9.0-beta.18scroll-fab 首发 · ai-editor beta 系列

  • 新增新增 @qingwu-ui/scroll-fab 悬浮滚动栏:桌面悬停 / 触屏按住推进描边进度环,绕满一圈在「滚动到底部 / 返回顶部」间纯切换(不附带滚动),点击(轻点)恒直接执行当前箭头动作、与描边正交;rAF 缓动滚动支持滚轮/触摸/键盘打断与懒加载变长追击,尊重 prefers-reduced-motion;window 与自定义容器双支持、可滚动才渲染;移动端一等支持(Pointer Events 单路径、ghost click 抑制、safe-area、44px 命中下限);零框架依赖(首发 0.9.0-beta.1)
  • 修复ai-editor 代码块内搜狗/QQ 拼音「空格选词上屏」行尾残留空位:新增 ImeCommitSpaceGuard,compositionend 后 100ms 内的 insertText 空格吞掉(段落因 white-space 折叠不可见、代码块 pre-wrap 暴露)(beta.18)
  • 修复ai-editor 桌面目录悬浮框到边接棒滚正文:悬浮框自身滚到顶/底后滚轮接力滚动正文,移除 beta.16 的 data-lenis-prevent(其导致悬浮框内滚不动目录)(beta.17)
  • 修复ai-editor 移动端目录抽屉:portal 挂 body 不再被导航栏遮挡、点面板外自动收起、浮动按钮上移避让返回顶部、修复目录需点两次才跳转(beta.16);代码块行号真机底部对齐、深色边框提亮(beta.15)

v0.9.0-beta.14ai-editor beta 系列

  • 新增ai-editor TOC 目录滚动自动跟踪:滚动内容时目录实时高亮当前所在章节,激活项自动滚动保持在目录视野内(桌面悬浮面板 / 移动抽屉均生效);滚动到底激活末节、首个标题之上清空高亮;点击目录跳转的平滑滚动期间高亮锁定目标不闪烁;目录折叠遮住激活项时降级高亮最近可见祖先(beta.14)
  • 修复ai-editor 代码块解析兼容 Obsidian 逐行 div 包裹:代码块不再只保留第一行、后续行丢失(beta.13)
  • 新增ai-editor initialContent 支持 ProseMirror JSON 文档对象:宿主回显可直传 getJSON() 产物,避免 string→markdown 二次解析破坏代码块围栏(beta.13)

v0.9.0-beta.12ai-editor beta 系列

  • 修复ai-editor 代码块移除 2000px 高度硬裁:超高代码块(>约 84 行)不再底部被裁且无滚动条,改为随内容自然撑高、滚动交给外层容器;折叠态仍收至 56px(beta.12)
  • 修复ai-editor 粘贴/回显媒体时 sanitize 放行 blob: URI:拖入媒体的占位 src 不再被 DOMPurify 清空(视频嵌入 src 变空、无法触发上传中占位的问题修复)(beta.11)
  • 修复ai-editor 视频嵌入健壮性:编码不受浏览器支持(HEVC/H.265 缺失)时显示友好占位(说明原因 + 引导安装 HEVC 扩展或转码 H.264);只读态 src 仍为 blob: 时显示「视频上传中…」动画占位,替代黑屏(beta.9 / beta.10)
  • 修复ai-editor 代码块行号列与内容底部错位修复:通用 pre 样式排除自定义代码块(.cb-code-pre),卡片视觉移入自身,行号与代码逐行对齐(beta.7)
  • 修复ai-editor 修复 slash 命令框列表滚轮被宿主 Lenis 劫持无法滚动、键盘导航选中项滚出可视区(列表自动滚动跟随)(beta.4)
  • 修复ai-editor 修复工具栏「目录」按钮在宽屏点击时抽屉与侧栏同时出现(双面板重叠)(beta.3)
  • 新增ai-editor TOC 目录语义统一为「默认展开状态」:showToc={false} 仅默认收起(控件仍可用);只读态/窄屏工具栏按钮不可见时由目录悬浮球接管入口(beta.2)

v0.9.0-beta.1Select 磨砂面板选项

  • 新增@qingwu-ui/select 新增 frosted 选项(默认开启):面板半透明磨砂质感(半透明底 + backdrop-filter 毛玻璃);false 回退不透明实体面板,update({ frosted }) 动态切换。演示页新增「面板磨砂 vs 不透明」对比卡与 props 面板磨砂开关

v0.9.0十二包对齐 · @qingwu-ui scope 首发

  • 新增新增 @qingwu-ui/notifications 通知铃铛组件:铃铛触发器 + 未读红点徽标 + 手风琴错峰下拉面板,ARIA menu/menuitem 全键盘导航,空态 / 自定义渲染 / 受控更新 / 向上翻转
  • 新增@qingwu-ui/calendar 新增 dateOnly 模式:仅选日期,隐藏时分秒时间行,onChange 回发 YYYY-MM-DD(默认仍回发完整 datetime)
  • 改进十二包版本统一对齐 0.9.0,首次以 @qingwu-ui scope 发布(品牌自 @qingwu 迁移);演示页新增 Notifications 组件页与 API 属性表

v0.8.0十一包对齐 · ai-editor 增强

  • 新增ai-editor AI 面板宽度随编辑器自适应、左缘对齐,高度钳进视口避免滚动跳变
  • 新增ai-editor AI 替换(选中 / 全文)前弹确认弹窗:列出本次将被移除的媒体节点(图片 / 附件 / 视频 / 音频)
  • 新增ai-editor 替换后孤儿媒体资源 30s 延迟删除(undo 可救回);编辑器销毁时立即 flush 剩余孤儿
  • 改进十一包版本统一对齐 0.8.0(select / action-menu 随本版首次发布)

v0.7.3ai-editor AI 面板锚定

  • 改进ai-editor AI 面板锚定工具栏按钮:点击 AI 按钮时面板贴近按钮下沿弹出(createPortal 挂载)

v0.7.2外部 Markdown 图片解析

  • 新增ai-editor 粘贴外部 Markdown(Obsidian / Typora)时,本地相对路径图片 / 附件自动检测与解析(RelativeMedia 扩展)
  • 改进Obsidian [[wiki]] 粘贴不再转 base64 内联,统一 objectURL 占位预览 → 上传 → 换持久 URL 管线
  • 修复AI 模型调用显式走 openai.chat()(/chat/completions),修复 DeepSeek / 通义 / GLM 等兼容端点 404

v0.6.0TagInput 首发 · 九包对齐

  • 新增新增 @qingwu-ui/tag-input 标签快捷插入组件:输入框 + 标签快捷栏,点击标签自动填入(逗号分隔),已插入自动隐藏、删除后重现
  • 新增Apple tinted 风格 chip(teal 品牌 tint、Lucide xmark、按压反馈、暗色 systemGray6 适配)
  • 新增allowEnterCreate:输入框回车将文本创建为新标签;createTag() 程序化创建
  • 新增inline chip-in-input 模式:已选标签 chip 内嵌输入框,× 删除即移除,回车添加已选;maxTags 数量上限
  • 改进text-layout 驱动展开/收起(maxRows 折叠 + "+N 更多")与标签栏高度;受控 / 非受控双模式
  • 改进九包版本统一对齐 0.6.0(tag-input 随本版首次发布,其余无功能变更);演示页新增 TagInput / 骨架屏 API 属性表

v0.5.1Skeleton 骨架屏重设计

  • 新增@qingwu-ui/skeleton 块级渐变位移:每块独立 ::before 渐变层 transform 滑动(合成器线程零 repaint),错峰级联(负延迟,staggerDelay 可配)
  • 新增refetch 自适应:结构签名(structureSignature)+ MutationObserver,loading 期间内容结构变化骨架实时跟上
  • 新增视口增量渲染:只渲染 ±1 屏内骨架块,滚动增量补渲,已渲染上限 500 双向淘汰——长页面 DOM/合成层有界
  • 新增加载期位置守卫:文档坐标逐帧比对,路由回退/布局沉降自动重定位+重测,骨架与内容像素级对齐
  • 新增zIndex 选项(默认 9999,页面 chrome 在上时调低);root 脱离文档自动自毁(防孤儿覆盖层)
  • 改进门槛过滤:宽≥48px 且高≥8px 的块才建动画层(头像/图标静态),reduced-motion 全关

v0.5.0八包对齐

  • 新增@qingwu-ui/editor 更名 @qingwu-ui/ai-editor,Toast 解耦为 onToast 事件通道
  • 新增@qingwu-ui/upload 新增 URL 批量导入;@qingwu-ui/toast 默认 top-center + 关键词强调 + error 震动;@qingwu-ui/search 关闭键/清空键内嵌、遮罩挂 body
  • 改进文档站 EP 化改造;八包全部对齐 0.5.0(calendar 直升)

v0.4.0Toast 组件

  • 新增新增 @qingwu-ui/toast 轻提示组件:零依赖、纯 TypeScript + 原生 DOM 渲染
  • 新增ARIA live region 内建(role=status + aria-live=polite),prefers-reduced-motion 自动克制
  • 新增6 种定位(top/bottom × left/center/right),4 种语义类型(info/success/warning/error)
  • 新增Promise 链:loading → success/error 三态自动流转,支持函数式消息生成
  • 新增队列管理:maxVisible 控制同时显示上限,超出自动排队,关闭后按序出队
  • 新增现代 UI 设计:毛玻璃质感卡片、实心彩色图标圆底、双层柔光阴影、弹簧曲线入场动画
  • 新增移动端适配:安全区 inset 偏移、窄屏自适应宽度与两行文本换行、44px 触控热区
  • 新增明暗双主题:自动响应用户主题偏好,CSS 自定义属性驱动,支持宿主覆盖
  • 新增演示页:语义类型卡片、3×2 定位可视化网格、5 种场景演示、操作日志
  • 改进优化 Toast 动画为纯 opacity 淡入淡出,不触发 GPU 合成层,多 toast 并发无显存膨胀
  • 改进全部组件统一版本号至 0.4.0
  • 修复修复 Promise 链不跟随用户选择定位属性变化的问题

v0.3.1工程加固

  • 改进发版流程接入 publish-check 产物校验门禁:workspace 依赖残留检测 / CHANGELOG 版本一致性 / exports 产物齐全性
  • 改进新增 Playwright e2e 端到端测试:拖拽上传、压缩产出 WebP/AVIF、单张数量限制、按钮触发、真实 HTTP 上传
  • 改进README 同步 0.3.0 状态与 upload 组件完整文档

v0.3.0Upload 上传

  • 新增新增 @qingwu-ui/upload 图片上传组件:拖拽区 / 按钮两种触发形态,按钮形态复用 @qingwu-ui/button
  • 新增客户端压缩管线:支持原图 / WebP / AVIF 多份并行输出,AVIF 不支持时自动降级 WebP/PNG
  • 新增独立进度条组件,内置 XHR 上传与可插拔自定义上传函数,支持数量/大小/类型校验
  • 新增全部包统一版本号至 0.3.0

v0.2.0首个公开版

  • 新增首次发布青梧 UI 组件库,Apache-2.0 协议开源
  • 新增@qingwu-ui/button 按钮:胶囊形(pill)风格,default / primary / amber / icon 四种变体,纯 DOM + CSS
  • 新增@qingwu-ui/editor 编辑器:Tiptap/ProseMirror 内核,斜杠命令、AI 写作助手(OpenAI/DeepSeek/Qwen)、代码高亮、i18n、Web Clipper
  • 新增@qingwu-ui/search 搜索:打字机占位轮播、Ctrl/⌘+K 全局唤起、全键盘导航+焦点陷阱、ARIA 完整语义、分类筛选
  • 新增@qingwu-ui/calendar-core 日历引擎:headless 纯日期工具,零依赖零 DOM 副作用,tree-shakeable

v0.1.0内部先行

  • 新增发布 @qingwu-ui/calendar-core@0.1.0 与 @qingwu-ui/search@0.1.0(私有 Nexus registry)
  • 新增Calendar 弹出日历组件:农历/节气/节日/黄历宜忌详情侧栏,日期/月份/年份三视图,键盘导航
  • 新增自研农历引擎 lunar.ts:零依赖,覆盖 1900-2100 年公农历互转、节气(基础日期+年份修正)、天干地支
  • 新增休假日历 JSON 配置:holidays/workdays 支持,日期格右上角「休/工」角标
  • 新增演示页 props 面板:属性实时修改 + 应用配置重新渲染,展开代码支持 React / HTML / Vue 三格式
  • 修复修复公农历转换中闰月定位算法错误(原实现存在边界 bug)
  • 修复节气数据从固定日期升级为基础日期 + 年份修正表(2020-2030 精度 ±0 天)
  • 修复修复「今天」按钮在当月时 pointer-events 拦截导致点击无效
  • 修复确认按钮现在会同步面板内修改的时间到选中日期并触发 onChange
更多版本信息见各包 CHANGELOG.md 或 回到首页