4 Commits

Author SHA1 Message Date
Estrella Pan
6e8f2f0f35 refactor(webui): 图标换成 @lucide/vue,headlessui 换成 naive-ui,并改用 Vue 3.5 写法
- 30 个文件的 @icon-park/vue-next 图标换成 @lucide/vue;侧栏与移动导航的 RSS 图标
  改用 Lucide Rss,删除 vue-inline-svg 与 public/images/RSS.svg
- ab-modal 用 NModal、ab-bottom-sheet 用 NDrawer、ab-menu 与 ab-status-bar 系统菜单
  用 NDropdown、通知中心用 NPopover、ab-fold-panel 用 NCollapse;公开 props/emits/slots
  不变,dialog 语义、aria-expanded、menuitem 角色与 Esc 关闭由组件补齐;删除 @headlessui/vue
- naive-ui 主题覆盖移到 src/style/naive-theme.ts(abNaiveTheme),新增 Dropdown/Collapse/
  Popover 的 ab-* token;遮罩颜色统一为 --color-overlay
- withDefaults 改为响应式 props 解构;模板引用改用 useTemplateRef;ab-bottom-sheet、
  llm-auth-dialog、ab-list 的 v-model 改用 defineModel;visualViewport 监听用
  onWatcherCleanup 撤销;复制提示改用 useClipboard({ copiedDuring })
2026-10-20 11:45:48 +02:00
Estrella Pan
2f1fa317d1 chore(deps): 前端构建与测试工具链升级到 Vite 8 / Vitest 5 / TS 6 / Storybook 10
- vite 8、@vitejs/plugin-vue 6、vitest 5、happy-dom 21、@vue/test-utils 2.5、
  typescript ~6.0.3、vue-tsc 3.3、unocss 66.11、unplugin-auto-import 21、
  unplugin-vue-components 32、sass-embedded 1.105、playwright 1.64.1、storybook 10.6
- vite.config:去掉 defineModel 开关;Sass 改用 @use;esbuild.drop 换成
  rolldown 的 dropConsole;__dirname 换成 import.meta.dirname;两处 alias
  改为 resolve.tsconfigPaths
- 删除 plugin-vue-jsx:三个 SFC 的 JSX 改写为 h()
- 删除 preset-attributify:模板里的属性式工具类全部改回 class
  (含 space-y-*、text-*、line、i-carbon-* 等,不止 5 处 flex="~")
- 删除 vite-plugin-pwa:改为静态 manifest.webmanifest + 自毁 sw.js(4.1 删除)
- tsconfig:moduleResolution Bundler、去掉 baseUrl 与 JSX 配置,
  app 的 types 只留 vitest/globals
- Storybook 10:addon-links + addon-docs,stories 改从 @storybook/vue3-vite 导入类型
- @intlify/unplugin-vue-i18n 0.11 -> 11.2.7(Vite 8 下旧版产物被 vite-json 再次解析而失败);
  新版只产出 AST 文案,故打开 __INTLIFY_JIT_COMPILATION__,hasKey 识别 AST 叶子
2026-10-20 11:00:31 +02:00
Estrella Pan
e309301dd6 refactor(webui): complete ab-* migration, retire legacy components
Migrate the remaining surfaces: all seven ab-popup call sites to
ab-modal (footer slots, sm sizing), every ab-label to ab-field, all
raw ab-input-shortcut inputs to the ab-input component (textareas get
local Soft Ink styles), rss mobile list to ab-list with loading
skeleton, and de-tint the hand-rolled warning callouts (hairline +
ink, per the no-tinted-boxes rule). Wire aria-live into pull-refresh.

Delete dead code: ab-popup, ab-adaptive-modal, ab-label, ab-data-list,
ab-add, ab-button-multi, ab-image, ab-rule, ab-swipe-container (+
orphaned stories); drop the ab-input/input-error UnoCSS shortcuts.
Add stories for the full universal set and document the final
22-component catalog in DESIGN.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAxVyRwrY7z5NotTtgnwVs
2026-07-06 11:38:59 +02:00
Estrella Pan
1a3bb4558d feat(webui): Soft Ink foundation — tokens, naive-ui theme, input shortcut
Add --color-surface-2 (filled controls), --color-primary-alpha (focus
rings), --font-mono (data text); shift control radius to 4px. Theme
naive-ui Input/Select as borderless filled controls with purple focus.
Restyle the ab-input shortcut to Soft Ink (left-aligned, filled) so
un-migrated call sites shift immediately. Document the Soft Ink rules
and anti-patterns in DESIGN.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FAxVyRwrY7z5NotTtgnwVs
2026-07-06 10:36:44 +02:00