weifuwu 0.74.0 → 0.75.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/README.md CHANGED
@@ -191,7 +191,7 @@ router.use(ui())
191
191
  // → 完整 HTML + __DATA__ + bundle/styles 引用(无需手写页面 handler)
192
192
  router.get('*', async (req, ctx) => {
193
193
  const { page } = await ssrPage(app, { url: req.url ?? '/' })
194
- return ctx.ui.html(page)
194
+ return ctx.ui.html.unsafe(page) // page 是完整 HTML(ssrPage 已序列化 __DATA__)——unsafe 防二次转义
195
195
  })
196
196
 
197
197
  router.get('/static/app.js', (req, ctx) => ctx.ui.js('./src/client.ts'))
@@ -314,7 +314,7 @@ cd apps/agent-platform && npm run seed && npm run dev
314
314
  | 资源 | CDN 地址 | 说明 |
315
315
  |------|---------|------|
316
316
  | `weifuwu/ui-dom` | `https://unpkg.com/weifuwu@latest/dist/ui-dom/index.js` | 前端运行时(UIRouter, uiServe, h, 状态管理等) |
317
- | `weifuwu/components` | `https://unpkg.com/weifuwu@latest/dist/components/index.js` | 102 个 UI 组件(Button, Card, Table, Modal, Icon 等) |
317
+ | `weifuwu/components` | `https://unpkg.com/weifuwu@latest/dist/components/index.js` | 109 个 UI 组件(Button, Card, Table, Modal, Icon 等) |
318
318
  | `weifuwu/components` | `https://unpkg.com/weifuwu@latest/dist/components/style.css` | 组件 CSS + 167 个主题 Token + 57 个布局原语 + 136 个工具类 |
319
319
  | 独立布局系统 | `https://unpkg.com/weifuwu@latest/dist/layout/weifuwu-layout.css` | 仅 CSS 布局,不依赖 JS |
320
320
 
@@ -357,7 +357,7 @@ cd apps/agent-platform && npm run seed && npm run dev
357
357
  | `weifuwu/ui-dom` | **ssrPage / serializeData** | 服务端渲染:SSR HTML + `__DATA__` 序列化(`ctx.params` 两端同源) | — |
358
358
  | `weifuwu/ui-dom` | **useChat / AiChat 原语** | AI 会话(流式/工具调用/HITL) | — |
359
359
  | `weifuwu/ui-dom` | **事件原语** | `usePopup` / `useDialog` / `usePresence` / `useInView` / `useScrollPosition` / `useGlobalKey` / `useDrag` / `useDragDrop` / `useAnimationEnd` / `useTween` / `useReducedMotion`(浏览器事件/动画统一入口,见 [docs/mobile.md](docs/mobile.md)) | — |
360
- | `weifuwu/components` | **113 个组件** | Button/Table/Modal/Confirm/Toast/... + `confirm()` / `toast()` 命令式中间件 | weifuwu/ui-dom |
360
+ | `weifuwu/components` | **109 个组件** | Button/Table/Modal/Confirm/Toast/... + `confirm()` / `toast()` 命令式中间件 | weifuwu/ui-dom |
361
361
  | `weifuwu/layout` | **CSS 布局** | 57 个布局原语 + 136 个工具类 + 167 个主题 Token(也支持 `weifuwu/layout/style.css`) | — |
362
362
 
363
363
  ---
@@ -380,7 +380,7 @@ cd apps/agent-platform && npm run seed && npm run dev
380
380
  | 后台任务/定时 | `queue()` → `ctx.queue` · `scheduler()` → `ctx.schedule/cron` | [docs/saas.md](docs/saas.md) |
381
381
  | AI 对话 / Agent / HITL 审批 | `ai()` → `ctx.ai` + `ctx.ui.useChat()` + `AiChat` | [docs/saas.md](docs/saas.md) |
382
382
  | GraphQL / WebSocket | `app.graphql(handler)` · `app.ws(path, handler)` | [docs/realtime.md](docs/realtime.md) |
383
- | 前端 UI 组件 | `weifuwu/components`(102 个:Button/Table/Modal/AiChat/...) | [docs/components.md](docs/components.md) |
383
+ | 前端 UI 组件 | `weifuwu/components`(109 个:Button/Table/Modal/AiChat/...) | [docs/components.md](docs/components.md) |
384
384
  | 布局/主题/暗色 | `weifuwu/layout`(57 原语 + 136 工具类 + 167 Token) | [docs/layout.md](docs/layout.md) |
385
385
  | 样式定制(零自定义 CSS) | `--wf-*` 变量覆盖 + 组件定制钩子 | [docs/styling.md](docs/styling.md) |
386
386
  | 移动端适配(tap/长按/键盘/弹层) | `usePopup` / `useHoverCapable` / `useLongPress` / `useVisualViewport` | [docs/mobile.md](docs/mobile.md) |
@@ -390,16 +390,15 @@ cd apps/agent-platform && npm run seed && npm run dev
390
390
 
391
391
  ## 核心概念
392
392
 
393
- ### 三层形态(路由 / 组件 / 异步工厂)
393
+ ### 三层形态(路由 / 同步组件 / async 组件)
394
394
 
395
395
  | 层 | 签名 | 异步 | 生命周期 |
396
396
  |----|------|------|---------|
397
397
  | **UIHandler**(路由) | `async (location, ctx) => VNode` | ✅ 整体 | 每次路由变化执行 |
398
- | **Component**(组件) | `(initProps, ctx) => (props) => VNode` | ❌ 同步 | mount 一次 + render 每次 |
399
- | **AsyncFactory**(异步组件) | `async (ctx) => (initProps, ctx) => (props) => VNode` | ✅ 只工厂 | 工厂一次(WeakMap 缓存) |
400
-
401
- 异步只出现在两个边界——路由 handler(整页)和组件工厂(数据声明);**mount/render 永远同步**(SSR/hydration 两端一致性的根基)。`async (initProps, ctx) => ...` 是混合错形——渲染器不 await 同步组件,Promise 会被当 render 函数调用。
398
+ | **Component**(同步组件) | `(initProps, ctx) => (props) => VNode` | ❌ 同步 | mount 一次 + render 每次 |
399
+ | **AsyncComponent**(async 组件) | `async (initProps, ctx) => (props) => VNode` | ✅ 只工厂 | 工厂按实例(diff 传递 `_asyncDef`,补全不重跑) |
402
400
 
401
+ 异步只出现在两个边界——路由 handler(整页)和 async 组件工厂(数据声明);**mount/render 永远同步**(SSR/hydration 两端一致性的根基)。async 组件与同步组件**同签名**(唯一差别是 `async` 关键字)——渲染器按「返回值 instanceof Promise」统一判别:未 resolve → `Placeholder` 占位(`<Suspense fallback>` 边界内显示 fallback),resolve 后整树重渲染补全。
403
402
  ### 两阶段组件(新手必读:为什么是两层)
404
403
 
405
404
  组件 = `(initProps, ctx) => (props) => VNode`——**外层 = 初始化(只执行一次),内层 = 渲染(每次状态/props 变化时执行)**。类比:外层是对象的构造函数,内层是它的 render 方法。
@@ -446,7 +445,7 @@ const Counter = (_init, ctx) => {
446
445
 
447
446
  ### async 组件(三条纪律)
448
447
 
449
- async 组件让"拿数据渲染页面"像写同步代码——签名与同步组件一致,唯一差别是 `async` 关键字(**无需 asyncComponent 包装**):`async (initProps, ctx) => renderFn`。异步只在工厂边界:
448
+ async 组件让"拿数据渲染页面"像写同步代码——签名与同步组件一致,唯一差别是 `async` 关键字:`async (initProps, ctx) => renderFn`。异步只在工厂边界:
450
449
 
451
450
  ```tsx
452
451
  const UserProfile = async (_init, ctx) => {
@@ -469,9 +468,10 @@ const UserProfile = async (_init, ctx) => {
469
468
  | ③ 初始状态必须确定性 | `$.w = window.innerWidth`——SSR/hydration mismatch | 用服务端数据 seed,交互后再测 |
470
469
 
471
470
  **常见坑**:
472
- - 工厂**拿不到 props**——数据维度从 `ctx.params` / `ctx.data`
473
- - 闭包数据是页面加载时的**快照**——路由参数变化靠工厂重跑刷新(key 变 → 缓存 miss → 重新取数);工厂缓存绑定页面上下文,路由导航/登录登出时自动失效
471
+ - 工厂按**实例**执行(N 处实例 = N 次工厂调用)——数据必须走 `ctx.data`(自带缓存 + 并发合并,重复执行零成本);禁止副作用/昂贵操作裸写工厂
472
+ - 闭包数据是页面加载时的**快照**——路由参数变化靠工厂重跑刷新(key 变 → 缓存 miss → 重新取数)
474
473
  - **个性化数据不进 `ctx.data`**——SSR 会把工厂取数结果序列化给所有客户端,会话/用户相关数据留在 `$` + fetch
474
+ - **占位显示**:async 组件未 resolve 时渲染 `Placeholder`——无边界显示 null;`<Suspense fallback={...}>` 边界内占位处显示 fallback(可选,子树内任意深度 async 组件共享)
475
475
 
476
476
  ### 渲染策略:SPA 还是 SSR?
477
477
 
@@ -511,10 +511,10 @@ README 只保留入门内容(设计理念 / 快速开始 / 核心概念 / 模
511
511
 
512
512
  | 文档 | 内容 |
513
513
  |------|------|
514
- | [docs/frontend.md](docs/frontend.md) | 前端核心:UIRouter / 组件模型 / 状态管理 / 条件与列表 / ref / 类型(历史 client 版见 docs/frontend.md) |
514
+ | [docs/frontend.md](docs/frontend.md) | 前端核心:应用引导(UIRouter+uiServe)/ 组件模型 / 异步组件 / 状态管理 / 条件与列表 / ref / 类型(weifuwu/client 已并入 ui-dom) |
515
515
  | [docs/frontend-ui-dom.md](docs/frontend-ui-dom.md) | **ui-dom**:UIRouter 纯路由 + uiServe 渲染运行时 + ctx 注入链 + components 复用 + SSR/hydration(前端唯一运行时——weifuwu/client 已删除) |
516
516
  | [docs/frontend-middleware.md](docs/frontend-middleware.md) | 前端中间件:router / api / auth / ws / i18n / ErrorBoundary / confirm / toast / ScrollLock / extendCtx |
517
- | [docs/components.md](docs/components.md) | 组件库(113 个组件 + 使用示例 + 组件列表) |
517
+ | [docs/components.md](docs/components.md) | 组件库(109 个组件 + 使用示例 + 组件列表) |
518
518
  | [docs/layout.md](docs/layout.md) | 布局系统:57 个布局原语 + 136 个工具类 + 167 个主题 Token |
519
519
  | [docs/styling.md](docs/styling.md) | 样式定制指南:零自定义 CSS 模式 / 暗色 / 组件级覆盖 / 作用域主题 |
520
520
 
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 纯类型,零运行时成本。两端同源:
5
5
  * - 后端:从 weifuwu 主包导入(src/index.ts re-export)
6
- * - 前端:从 weifuwu/client 导入(src/client/index.ts re-export)
6
+ * - 前端:从 weifuwu/ui-dom 导入(src/ui-dom/index.ts re-export)
7
7
  *
8
8
  * 修改本文件 = 修改协议,需同步更新 design/ai-contract.md。
9
9
  */
@@ -7,6 +7,8 @@ export interface ButtonProps {
7
7
  disabled?: boolean;
8
8
  type?: 'button' | 'submit';
9
9
  title?: string;
10
+ /** 透传 DOM id(测试定位/锚点) */
11
+ id?: string;
10
12
  /** 透传原生 class(覆盖默认 wf-btn 组合) */
11
13
  class?: string;
12
14
  onClick?: (e: MouseEvent) => void;
@@ -1,4 +1,4 @@
1
- import{h as On}from"weifuwu/ui-dom";var Vo={"chevron-down":["M6 9l6 6 6-6"],"chevron-up":["M6 15l6-6 6 6"],"chevron-left":["M15 18l-6-6 6-6"],"chevron-right":["M9 18l6-6-6-6"],"arrow-left":["M19 12H5","M12 19l-7-7 7-7"],"arrow-up":["M12 19V5","M5 12l7-7 7 7"],"arrow-down":["M12 5v14","M19 12l-7 7-7-7"],"arrow-right":["M5 12h14","M12 5l7 7-7 7"],sort:["M7 15l5 5 5-5","M7 9l5-5 5 5"],"sort-asc":["M12 19V5","M5 12l7-7 7 7"],"sort-desc":["M12 5v14","M19 12l-7 7-7-7"],check:["M20 6L9 17l-5-5"],close:["M18 6L6 18","M6 6l12 12"],alert:["M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z","M12 9v4","M12 17h.01"],info:["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z","M12 16v-4","M12 8h.01"],warning:["M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z","M12 9v4","M12 17h.01"],pause:["M6 4h4v16H6z","M14 4h4v16h-4z"],settings:["M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z","M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"],search:["M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16z","M21 21l-4.35-4.35"],send:["M22 2L11 13","M22 2l-7 20-4-9-9-4 20-7z"],stop:["M6 6h12v12H6z"],retry:["M1 4v6h6","M23 20v-6h-6","M20.49 9A9 9 0 0 0 5.64 5.64L1 10","M3.51 15a9 9 0 0 0 14.85 3.36L23 14"],upload:["M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4","M17 8l-5-5-5 5","M12 3v12"],trash:["M3 6h18","M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2","M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6h14","M10 11v6","M14 11v6"],edit:["M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7","M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"],plus:["M12 5v14","M5 12h14"],copy:["M20 9h-9a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2z","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"],eye:["M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z","M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"],"eye-off":["M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94","M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19","M14.12 14.12a3 3 0 1 1-4.24-4.24","M1 1l22 22"],star:["M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"],dashboard:["M3 13h8V3H3z","M21 13h-8V9h8z","M21 21h-8v-8h8z","M3 21h8v-8H3z"],grid:["M3 3h7v7H3z","M14 3h7v7h-7z","M14 14h7v7h-7z","M3 14h7v7H3z"],box:["M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z","M3.27 6.96L12 12.01l8.73-5.05","M12 22.08V12"],users:["M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2","M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z","M23 21v-2a4 4 0 0 0-3-3.87","M16 3.13a4 4 0 0 1 0 7.75"],user:["M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2","M12 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"],home:["M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z","M9 22V12h6v10"],folder:["M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"],file:["M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z","M13 2v7h7"],"file-text":["M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z","M13 2v7h7","M9 13h6","M9 17h6"],calendar:["M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z","M16 3v4","M8 3v4","M3 11h18"],clock:["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z","M12 6v6l4 2"],bell:["M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9","M13.73 21a2 2 0 0 1-3.46 0"],menu:["M3 12h18","M3 6h18","M3 18h18"],activity:["M22 12h-4l-3 9L9 3l-3 9H2"],"trending-up":["M23 6l-9.5 9.5-5-5L1 18","M17 6h6v6"],"trending-down":["M23 18l-9.5-9.5-5 5L1 6","M17 18h6v-6"],database:["M12 8c4.97 0 9-1.34 9-3s-4.03-3-9-3-9 1.34-9 3 4.03 3 9 3z","M21 12c0 1.66-4.03 3-9 3s-9-1.34-9-3","M3 5v14c0 1.66 4.03 3 9 3s9-1.34 9-3V5"],server:["M20 4H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z","M4 14h16","M20 14a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2","M7 18h.01","M12 18h.01"],heart:["M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"],refresh:["M23 4v6h-6","M1 20v-6h6","M3.51 9a9 9 0 0 1 14.85-3.36L23 10","M20.49 15a9 9 0 0 1-14.85 3.36L1 14"],message:["M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"],inbox:["M22 12h-6l-2 3h-4l-2-3H2","M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"],shield:["M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"],zap:["M13 2L3 14h9l-1 8 10-12h-9l1-8z"],target:["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z","M12 18a6 6 0 1 0 0-12 6 6 0 0 0 0 12z","M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],mail:["M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z","M22 6l-10 7L2 6"],"external-link":["M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","M15 3h6v6","M10 14L21 3"],"log-out":["M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4","M16 17l5-5-5-5","M21 12H9"],lock:["M5 11h14a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2z","M7 11V7a5 5 0 0 1 10 0v4"],list:["M8 6h13","M8 12h13","M8 18h13","M3 6h.01","M3 12h.01","M3 18h.01"],"bar-chart":["M12 20V10","M18 20V4","M6 20v-4"],gauge:["M12 15l3.5-3.5","M20.39 18.39A10 10 0 1 0 3.61 18.39","M12 15a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],paperclip:["M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"],filter:["M22 3H2l8 9.46V19l4 2v-8.54L22 3z"],layers:["M12 2L2 7l10 5 10-5-10-5z","M2 17l10 5 10-5","M2 12l10 5 10-5"],"map-pin":["M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z","M15 10a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"],"book-open":["M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z","M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"],github:["M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"],tag:["M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z","M7 7h.01"],phone:["M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"],"more-vertical":["M12 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z","M12 13.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z","M12 20a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"check-circle":["M22 11.08V12a10 10 0 1 1-5.93-9.14","M22 4L12 14.01l-3-3"],"alert-circle":["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z","M12 8v4","M12 16h.01"],wifi:["M5 12.55a11 11 0 0 1 14.08 0","M1.42 9a16 16 0 0 1 21.16 0","M8.53 16.11a6 6 0 0 1 6.95 0","M12 20h.01"],cpu:["M9 9h6v6H9z","M9 1v4","M15 1v4","M9 19v4","M15 19v4","M1 9h4","M1 15h4","M19 9h4","M19 15h4","M5 5h14v14H5z"],"hard-drive":["M22 12H2","M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z","M6 16h.01","M10 16h.01"],globe:["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z","M2 12h20","M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"],briefcase:["M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16","M2 20h20","M4 4h16a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z"],layout:["M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z","M9 3v18","M3 9h18"]},$=(i,n)=>e=>{let{name:t,size:r,className:s}=e;return On("svg",{class:`wf-icon${s?" "+s:""}`,width:r??"1em",height:r??"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":1.8,"stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"},Vo[t].map(o=>On("path",{d:o})))};import{h as Bn}from"weifuwu/ui-dom";var At=(i,n)=>e=>{let{variant:t="primary",size:r="md",block:s,loading:o,disabled:a,type:l,onClick:c,children:p}=e,d=["wf-btn",`wf-btn--${t}`,`wf-btn--${r}`,s&&"wf-btn--block",o&&"wf-btn--loading"].filter(Boolean).join(" "),m=n?.i18n?.components?.Button??{};return Bn("button",{class:d,type:l??"button",disabled:a||o||void 0,"aria-busy":o||void 0,onClick:c},o?[Bn("span",{class:"wf-btn-spinner"}),m.loading??"\u52A0\u8F7D\u4E2D..."]:p)};import{h as Xe}from"weifuwu/ui-dom";var Fo=i=>n=>{let{label:e,name:t,type:r="text",value:s,placeholder:o,required:a,disabled:l,error:c,hint:p,variant:d="default",onInput:m,onChange:u}=n,h=Xe("input",{class:`wf-input${d==="borderless"?" wf-input--borderless":""}`,name:t||void 0,type:r,value:s??"",placeholder:o,required:a||void 0,disabled:l||void 0,onInput:m,onChange:u});if(!e&&!c&&!p)return h;let f=[];if(e){let g=[e];a&&g.push(Xe("span",{class:"wf-input-req"},"*")),f.push(Xe("label",{class:"wf-input-label"},g))}return f.push(h),c&&f.push(Xe("div",{class:"wf-input-err"},c)),p&&!c&&f.push(Xe("div",{class:"wf-input-hint"},p)),Xe("div",{class:`wf-input-wrap${c?" wf-input--err":""}`},f)};import{h as We}from"weifuwu/ui-dom";var Go=(i,n)=>e=>{let{label:t,value:r,placeholder:s,required:o,disabled:a,error:l,hint:c,rows:p=3,maxLength:d,showCount:m,onInput:u}=e,h=We("textarea",{class:"wf-textarea",value:r??"",placeholder:s,required:o||void 0,disabled:a||void 0,rows:p,maxLength:d,onInput:u}),f=[];if(t){let g=[t];o&&g.push(We("span",{class:"wf-textarea-req"},"*")),f.push(We("label",{class:"wf-textarea-label"},g))}if(f.push(h),m){let g=(r??"").length,y=d!=null&&g>d;f.push(We("div",{class:`wf-textarea-count${y?" wf-textarea-count--over":""}`,"aria-live":"polite"},d!=null?`${g}/${d}`:String(g)))}return l&&f.push(We("div",{class:"wf-textarea-err"},l)),c&&!l&&f.push(We("div",{class:"wf-textarea-hint"},c)),We("div",{class:`wf-textarea-wrap${l?" wf-textarea--err":""}`},f)};import{h as Q}from"weifuwu/ui-dom";var qo=(i,n)=>e=>{let{label:t,value:r,options:s,placeholder:o,required:a,disabled:l,error:c,onChange:p,children:d}=e,m=[];if(o&&m.push(Q("option",{value:"",disabled:!0},o)),s)for(let f of s)m.push(Q("option",{value:f.value,disabled:f.disabled},f.label));let u=Q("select",{class:"wf-select",value:r??"",required:a||void 0,disabled:l||void 0,onChange:f=>p?.(f.target.value)},d??m),h=[];if(t){let f=[t];a&&f.push(Q("span",{class:"wf-select-req"},"*")),h.push(Q("label",{class:"wf-select-label"},f))}return h.push(u),c&&h.push(Q("div",{class:"wf-select-err"},c)),Q("div",{class:`wf-select-wrap${c?" wf-select--err":""}`},h)},Uo=(i,n)=>{let e=n.ui.$(),t=!1,r;n.ui.useStableRef?.(()=>{},()=>{t=!0,r&&clearTimeout(r)}),e.open=!1,e.keyword="",e.filteredOptions=[],e.highlight=-1;let s=null,o=null,a=p=>{p&&(s=p)},l=p=>{p&&(o=p)},c=n.ui.usePopup({trigger:()=>"click",placement:()=>"bottom",center:!1,gap:4,el:()=>s,isOpen:()=>e.open,setOpen:p=>{e.open=p}});return p=>{let{label:d,value:m,options:u=[],placeholder:h,required:f,disabled:g,error:y,onChange:b,onSearch:w,multiple:v}=p,C=!!v,T=C?Array.isArray(m)?m:[]:[m],P=e.keyword?u.filter(S=>S.label.toLowerCase().includes(e.keyword.toLowerCase())):u,M=e.keyword&&w&&e.filteredOptions.length>0?e.filteredOptions:P,I=u.find(S=>S.value===m),N=u.filter(S=>T.includes(S.value)),L=async S=>{if(e.keyword=S,e.open=!0,e.highlight=0,w&&S){let W=await w(S);W&&(e.filteredOptions=W)}},D=S=>{if(!S.disabled)if(C){let W=Array.isArray(m)?[...m]:[],U=W.indexOf(S.value);U>=0?W.splice(U,1):W.push(S.value),b?.(W)}else e.keyword="",e.open=!1,b?.(S.value)},O=S=>{if(!C)return;let W=Array.isArray(m)?[...m]:[];b?.(W.filter(U=>U!==S))},z=S=>{if(!g)if(S.key==="ArrowDown")S.preventDefault(),e.open=!0,e.highlight=Math.min(e.highlight+1,M.length-1);else if(S.key==="ArrowUp")S.preventDefault(),e.open=!0,e.highlight=Math.max(e.highlight-1,0);else if(S.key==="Enter"){S.preventDefault();let W=M[e.highlight];W&&D(W)}else S.key==="Escape"&&(S.preventDefault(),e.open=!1,e.keyword="")},H=C&&N.length>0?N.map(S=>Q("span",{class:"wf-select-tag",key:S.value},[S.label,Q("button",{type:"button",class:"wf-select-tag-close","aria-label":`\u79FB\u9664 ${S.label}`,onClick:W=>{W.stopPropagation(),O(S.value)}},Q($,{name:"close",size:10}))])):[],E=C?"":e.open?e.keyword:I?.label??"",k=Q("div",{key:"select-trigger",class:`wf-select-search-trigger${g?" wf-select-search--disabled":""}${y?" wf-select--err":""}`,ref:a,role:"combobox","aria-haspopup":"listbox","aria-expanded":String(e.open),onClick:g?void 0:()=>{e.open=!0,o?.focus()}},[...H,Q("input",{key:"select-search-input",ref:l,class:"wf-select-search-input",type:"text",value:C?"":e.open?e.keyword:I?.label??"",placeholder:N.length>0?void 0:h??"",disabled:g,readOnly:!e.open||void 0,onInput:S=>L(S.target.value),onFocus:()=>{g||(e.open=!0)},onBlur:()=>{r=setTimeout(()=>{t||(e.open=!1,e.keyword="")},150)},onKeyDown:z})]),x=[];if(d){let S=[d];f&&S.push(Q("span",{class:"wf-select-req"},"*")),x.push(Q("label",{class:"wf-select-label"},S))}let R=M.length>0?M.map((S,W)=>{let U=C?T.includes(S.value):S.value===m;return Q("div",{class:`wf-select-search-opt${U?" wf-select-search-opt--sel":""}${S.disabled?" wf-select-search-opt--dis":""}${e.highlight===W?" wf-select-search-opt--hl":""}`,key:S.value,onMouseDown:G=>{G.preventDefault(),D(S)}},S.label)}):e.keyword?[Q("div",{class:"wf-select-search-empty"},"\u65E0\u5339\u914D")]:[],B=Q("div",{class:"wf-select-search-menu"},R);return x.push(Q("div",{class:"wf-select-search"},[k,c.portal(B,"wf-select-menu")].filter(Boolean))),y&&x.push(Q("div",{class:"wf-select-err"},y)),Q("div",{class:`wf-select-wrap${y?" wf-select--err":""}`},x)}},Yo=(i,n)=>{let e=qo(i,n),t=Uo(i,n);return r=>r.searchable?t(r):e(r)};import{h as mt}from"weifuwu/ui-dom";var Xt=(i,n)=>e=>{let{label:t,checked:r,disabled:s,onChange:o}=e,a=mt("input",{type:"checkbox",class:"wf-checkbox-input",checked:r||void 0,disabled:s||void 0,onChange:o?c=>o(c.target.checked):void 0}),l=mt("span",{class:"wf-checkbox-visual"});return t?mt("label",{class:"wf-checkbox"},[a,l,mt("span",{class:"wf-checkbox-label"},t)]):mt("label",{class:"wf-checkbox"},[a,l])};import{h as ht}from"weifuwu/ui-dom";var Qo=(i,n)=>e=>{let{label:t,checked:r,disabled:s,onChange:o}=e,a=ht("input",{type:"checkbox",class:"wf-switch-input",checked:r||void 0,disabled:s||void 0,role:"switch","aria-checked":String(!!r),onChange:o?p=>o(p.target.checked):void 0}),l=ht("span",{class:"wf-switch-track"}),c=n?.i18n?.components?.Switch??{};return t?ht("label",{class:"wf-switch"},[a,l,ht("span",{class:"wf-switch-label"},t)]):ht("label",{class:"wf-switch","aria-label":c.ariaLabel??"\u5207\u6362"},[a,l])};import{h as gt}from"weifuwu/ui-dom";var Xo=(i,n)=>e=>{let{name:t,options:r=[],inline:s}=e,o=n?.ui?.useControlled({value:e.value,onChange:e.onChange,name:"RadioGroup"}),a=c=>{let p=o?.controlled;o?.setValue(c),p||e.onChange?.(c)},l=r.map(c=>{let p=gt("input",{type:"radio",class:"wf-radio-input",name:t??"radio",value:c.value,checked:o?.value===c.value||void 0,disabled:c.disabled||void 0,onChange:()=>a(c.value)}),d=gt("span",{class:"wf-radio-visual"}),m=gt("span",{class:"wf-radio-label-text"},c.label);return gt("label",{class:"wf-radio",key:c.value},[p,d,m])});return gt("div",{class:`wf-radio-group${s?" wf-radio-group--inline":""}`},l)};import{h as ne}from"weifuwu/ui-dom";function Zo(i,n,e,t){if(!e||!t)return i;let r=n.find(o=>o.key===e);if(!r||!r.sortable)return i;let s=[...i];return s.sort((o,a)=>{let l=o[e],c=a[e],p=r.sorter?r.sorter(l,c):String(l??"").localeCompare(String(c??""));return t==="desc"?-p:p}),s}var Jo=(i,n)=>e=>{let{data:t=[],columns:r,onRowClick:s,sortKey:o,sortOrder:a,onSort:l,emptyText:c,rowSelection:p}=e,d=Zo(t,r,o,a),m=(D,O)=>D[p?.rowKey??"id"]??O,u=p?.selectedRowKeys??[],h=new Set(u.map(String)),f=d.map((D,O)=>String(m(D,O))),g=f.length>0&&f.every(D=>h.has(D)),y=f.some(D=>h.has(D)),b=()=>{if(!p?.onChange)return;let D=g?[]:f.map(O=>d.find((z,H)=>String(m(z,H))===O));p.onChange(g?[]:f,g?[]:D)},w=(D,O)=>{if(!p?.onChange)return;let z=String(m(D,O)),H=h.has(z)?u.filter(k=>String(k)!==z):[...u,z],E=H.map(k=>d.find((x,R)=>String(m(x,R))===String(k))).filter(Boolean);p.onChange(H,E)},v=p?ne("th",{class:"wf-table-th wf-table-th--selection",scope:"col"},ne("input",{type:"checkbox",class:"wf-table-checkbox",checked:g||void 0,indeterminate:y&&!g?"true":void 0,"aria-label":"\u5168\u9009",onChange:b})):null,C=(D,O)=>p?ne("td",{class:"wf-table-td wf-table-td--selection"},ne("input",{type:"checkbox",class:"wf-table-checkbox",checked:h.has(String(m(D,O)))||void 0,"aria-label":"\u9009\u62E9\u884C",onClick:z=>z.stopPropagation(),onChange:()=>w(D,O)})):null,T=r.map(D=>{let O=D.key===o&&a,z=a==="asc",H=D.label,E=D.sortable?ne($,{name:O?z?"sort-asc":"sort-desc":"sort",className:`wf-table-sort-icon${O?" wf-table-sort-icon--active":""}`}):null,k=D.sortable&&l?()=>l(D.key,O&&z?"desc":"asc"):void 0;return ne("th",{class:`wf-table-th${D.sortable?" wf-table-th--sortable":""}${O?" wf-table-th--sorted":""}`,scope:"col",tabindex:D.sortable?0:void 0,style:D.width?{width:D.width}:void 0,onClick:k,onKeyDown:k?x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),k())}:void 0},[H,E].filter(Boolean))}),P=ne("tr",{class:"wf-table-tr"},[v,...T].filter(Boolean)),M=ne("thead",{class:"wf-table-thead"},P),I;if(e.loading){let D=e.loadingRows??3;I=Array.from({length:D},(O,z)=>ne("tr",{class:"wf-table-tr wf-table-tr--loading",key:`loading-${z}`},r.map((H,E)=>ne("td",{class:"wf-table-td",key:`${z}-${E}`},ne("span",{class:"wf-skeleton wf-skeleton--text"})))))}else if(d.length===0&&c){let D=r.length+(p?1:0);I=[ne("tr",{class:"wf-table-tr"},ne("td",{class:"wf-table-td wf-table-empty",colspan:D,style:{textAlign:"center"}},c))]}else I=d.map((D,O)=>{let z=r.map(E=>{let k=D[E.key],x=E.render?E.render(k,D,O):String(k??"");return ne("td",{class:"wf-table-td"},x)}),H=C(D,O);return ne("tr",{class:"wf-table-tr",onClick:s?()=>s(D,O):void 0,style:s?{cursor:"pointer"}:void 0},[H,...z].filter(Boolean))});let N=ne("tbody",{class:"wf-table-tbody"},I),L=ne("table",{class:"wf-table",style:e.minWidth?{minWidth:e.minWidth}:void 0},[M,N]);return ne("div",{class:"wf-table-wrap"},L)};import{h as Oe,createPortal as er}from"weifuwu/ui-dom";var Ze=(i,n)=>{let e=n.ui.useDialog({name:"Modal"});return t=>{let{open:r,title:s,onClose:o,children:a,footer:l,width:c,closable:p=!0,maskClosable:d=!0}=t,m=n?.i18n?.components?.Modal??{},u=e.sync(!!r);if(u==="closed")return null;let h=Oe("div",{class:"wf-modal-overlay",onClick:d?o:void 0}),f=p?Oe("button",{class:"wf-modal-close",onClick:o,type:"button","aria-label":m.closeAria??"\u5173\u95ED"},Oe($,{name:"close"})):null,g=s?Oe("div",{class:"wf-modal-header"},[s,f].filter(Boolean)):null,y=Oe("div",{class:"wf-modal-body"},a),b=l?Oe("div",{class:"wf-modal-footer"},l):null,w=Oe("div",{class:"wf-modal-content",ref:e.panelRef,onClick:C=>C.stopPropagation(),style:c?{minWidth:`min(${c}, calc(100vw - 32px))`,maxWidth:`min(${c}, calc(100vw - 32px))`}:void 0},[g,y,b].filter(Boolean)),v=Oe("div",{ref:e.rootRef,class:`wf-modal ${u==="exit"?"wf-modal--exit":"wf-modal--enter"}`,role:"dialog","aria-modal":"true","aria-label":s??m.ariaLabel??"\u5F39\u7A97",onKeyDown:C=>{C.key==="Escape"&&o?.()}},[h,w]);return er(v,"modal")}};import{createClientBrowser as tr}from"weifuwu/ui-dom";import{h as Je}from"weifuwu/ui-dom";import{mountVNode as nr,callRefCleanup as or}from"weifuwu/ui-dom";var Dt=tr();function rr(){return i=>(i.confirm=(n,e)=>sr(n,e??{},i),i)}function sr(i,n,e){return new Promise(t=>{let r=Dt.createElement("div");if(!r){t(!1);return}Dt.bodyAppend(r);let s=!1,o,l=Je((c,p)=>{let d=p.ui.$();return d.open=!0,o=m=>{if(s)return;s=!0,d.open=!1,t(m);let u=()=>{or(l),r.remove()},h=Dt.query("#__wf_portal .wf-modal");if(h&&typeof h.addEventListener=="function"){let f=!1,g=()=>{f||(f=!0,u())};h.addEventListener("animationend",g,{once:!0}),Dt.timeout(g,600)}else u()},()=>Je("div",{class:"wf-confirm-host"},Je(Nn,{open:d.open,title:n.title,message:i,confirmText:n.confirmText,cancelText:n.cancelText,variant:n.variant,width:n.width,maskClosable:n.maskClosable,onConfirm:()=>o?.(!0),onCancel:()=>o?.(!1)}))},{});nr(r,l,e)})}var Nn=(i,n)=>e=>{let{open:t=!1,title:r,message:s,confirmText:o,cancelText:a,variant:l="primary",width:c,maskClosable:p=!1,onConfirm:d,onCancel:m}=e,u=n?.i18n?.components?.Confirm??{},h=[Je(At,{variant:"secondary",size:"md",onClick:()=>m?.()},a??u.cancelText??"\u53D6\u6D88"),Je(At,{variant:l,size:"md",onClick:()=>d?.()},o??u.confirmText??"\u786E\u5B9A")];return Je(Ze,{open:t,title:r,onClose:m,maskClosable:p,footer:h,width:c,closable:!1},s)};import{createClientBrowser as ar}from"weifuwu/ui-dom";import{h as Te,createPortal as ir}from"weifuwu/ui-dom";import{mountVNode as lr}from"weifuwu/ui-dom";import{animateOut as cr}from"weifuwu/ui-dom";var Zt=ar();function pr(i){return{"top-right":"wf-toast--tr","top-left":"wf-toast--tl","bottom-right":"wf-toast--br","bottom-left":"wf-toast--bl","top-center":"wf-toast--tc"}[i]??"wf-toast--tr"}var Hn=(i,n)=>e=>{let{toasts:t=[],onRemove:r,position:s="top-right",duration:o=0,max:a=0}=e,l=a>0&&t.length>a?t.slice(-a):t;if(l.length===0)return null;let c=l.map(p=>Te("div",{class:`wf-toast wf-toast--${p.type}`,key:p.id,role:p.type==="error"?"alert":"status","aria-live":p.type==="error"?"assertive":"polite","data-id":p.id,"data-duration":(p.duration??o)||void 0,onClick:r?()=>r(p.id):void 0},[Te("span",{class:"wf-toast-icon"},Te($,{name:ur(p.type)})),Te("span",{class:"wf-toast-msg"},p.message),p.action?Te("button",{class:`wf-toast-action wf-toast-action--${p.type}`,type:"button",onClick:d=>{d.stopPropagation(),p.action.onClick()}},p.action.label):null].filter(Boolean)));return ir(Te("div",{class:`wf-toast-container ${pr(s)}`,"data-max":a||void 0},c),"toast")};function ur(i){switch(i){case"success":return"check";case"error":return"close";case"warning":return"alert";case"info":return"info"}}function dr(i){let n={position:i?.position??"top-right",duration:i?.duration??3e3,max:i?.max??3},e=null,t=null,r=0,s=(a,l)=>{let c=l.ui.$();return c.toasts=[],e={add:p=>{c.toasts=[...c.toasts,p]},remove:p=>{let d=Zt.query(`.wf-toast[data-id="${p}"]`);if(d){d.classList.add("wf-toast-out");let m=getComputedStyle(d).animationName;if(m&&m!=="none"){cr(d,()=>{c.toasts=c.toasts.filter(u=>u.id!==p)});return}}c.toasts=c.toasts.filter(m=>m.id!==p)}},()=>Te("div",{class:"wf-toast-host"},[Te(Hn,{toasts:c.toasts,position:n.position,duration:n.duration,max:n.max,onRemove:p=>e?.remove(p)})])},o=()=>{if(e||!t)return;let a=Zt.createElement("div");a&&(Zt.bodyAppend(a),lr(a,Te(s,{}),t))};return a=>(t=a,a.toast=(l,c="info",p,d)=>{o();let m=String(++r);e?.add({id:m,type:c,message:l,duration:p,action:d});let u=p??n.duration;u>0&&setTimeout(()=>e?.remove(m),u)},a)}import{h as et}from"weifuwu/ui-dom";var fr=(i,n)=>e=>{let{variant:t="info",closable:r,onClose:s,children:o}=e;if(!o)return null;let a=et("span",{class:"wf-alert-icon"},et($,{name:mr(t)})),l=r?et("button",{class:"wf-alert-close",onClick:s,type:"button","aria-label":"\u5173\u95ED"},et($,{name:"close"})):null,c=et("span",{class:"wf-alert-msg"},o);return et("div",{class:`wf-alert wf-alert--${t}`,role:"alert"},[a,c,l].filter(Boolean))};function mr(i){switch(i){case"success":return"check";case"error":return"close";case"warning":return"alert";case"info":return"info"}}import{h as Jt}from"weifuwu/ui-dom";var hr=(i,n)=>e=>{let{text:t="\u52A0\u8F7D\u4E2D..."}=e;return Jt("div",{class:"wf-loading",role:"status","aria-live":"polite"},[Jt("div",{class:"wf-loading-spinner"}),Jt("span",{class:"wf-loading-text"},t)])};import{h as tt}from"weifuwu/ui-dom";var gr=(i,n)=>e=>{let{icon:t=tt($,{name:"inbox"}),text:r="\u6682\u65E0\u6570\u636E",hint:s,children:o}=e,a=[tt("div",{class:"wf-empty-icon"},t),tt("div",{class:"wf-empty-text"},r)];return s&&a.push(tt("div",{class:"wf-empty-hint"},s)),o&&a.push(tt("div",{class:"wf-empty-action"},o)),tt("div",{class:"wf-empty",role:"status"},a)};import{createClientBrowser as br}from"weifuwu/ui-dom";import{h as bt}from"weifuwu/ui-dom";var yr=(i,n)=>{let e=n?.browser??br(),t=n.ui.$();t.inkLeft=0,t.inkWidth=0;let r=null,s=l=>{l&&(t.inkLeft=l.offsetLeft,t.inkWidth=l.offsetWidth)},o=()=>{r&&s(r.querySelector(".wf-tab--active"))},a=l=>{l&&(r=l,queueMicrotask(o))};return l=>{let{items:c=[]}=l;if(c.length===0)return null;let p=n?.ui?.useControlled({value:l.active,onChange:l.onChange,name:"Tabs"}),d=b=>{let w=p?.controlled;p?.setValue(b),w||l.onChange?.(b)},m=p?.value??c[0].key,u=b=>{let w=b.currentTarget,v=Array.from(w.querySelectorAll(".wf-tab")),C=v.indexOf(e?.activeElement()??null);if(C<0||!p)return;let T=C;if(b.key==="ArrowRight")T=(C+1)%v.length;else if(b.key==="ArrowLeft")T=(C-1+v.length)%v.length;else if(b.key==="Home")T=0;else if(b.key==="End")T=v.length-1;else return;b.preventDefault();let P=c[T];P&&P.key!==c[C].key&&(d(P.key),v[T].focus(),s(v[T]))},h=c.map(b=>bt("button",{class:`wf-tab${b.key===m?" wf-tab--active":""}`,key:b.key,role:"tab",tabindex:b.key===m?0:-1,"aria-selected":b.key===m?"true":"false",onClick:b.key!==m?(w=>{s(w?.currentTarget),d(b.key)}):void 0},b.label)),f=bt("span",{class:"wf-tab-ink",style:{transform:`translateX(${t.inkLeft}px)`,width:`${t.inkWidth}px`},"aria-hidden":"true"}),g=c.find(b=>b.key===m),y=g?.content?bt("div",{class:"wf-tab-content",role:"tabpanel"},g.content):null;return bt("div",{class:"wf-tabs",role:"tablist",onKeyDown:u},[bt("div",{class:"wf-tab-list",ref:a},[...h,f]),y].filter(Boolean))}};import{h as en}from"weifuwu/ui-dom";var wr=(i,n)=>{let e=null,t=o=>{e=o},r=null,s=n.ui.usePopup({trigger:"click",el:()=>e,isOpen:()=>r?.open??!1,setOpen:o=>r?.setOpen(o)});return o=>{let{trigger:a,items:l=[]}=o;r=n.ui.useOpen({open:o.open,onOpenChange:o.onOpenChange,name:"Dropdown"});let c=l.map((d,m)=>en("button",{class:`wf-dropdown-item${d.variant==="danger"?" wf-dropdown-item--danger":""}`,key:d.value??m,disabled:d.disabled||void 0,role:"menuitem",onClick:d.disabled?void 0:()=>{d.onClick?.()}},d.label)),p=en("div",{class:"wf-dropdown-menu",role:"menu"},c);return en("div",{class:`wf-dropdown${r?.open?" wf-dropdown--open":""}`,ref:t,...s.wrapProps,"aria-haspopup":"menu","aria-expanded":String(!!r?.open)},[a,s.portal(p,"dropdown")].filter(Boolean))}};import{h as Ve}from"weifuwu/ui-dom";var vr=(i,n)=>e=>{let{total:t,pageSize:r=20}=e,s=n?.ui?.useControlled({value:e.page,onChange:e.onChange,name:"Pagination"}),o=s?.value??1,a=m=>{let u=s?.controlled;s?.setValue(m),u||e.onChange?.(m)},l=n?.i18n?.components?.Pagination??{},c=Math.max(1,Math.ceil(t/r));if(c<=1)return null;let p=[];p.push(Ve("button",{class:`wf-page-btn${o<=1?" wf-page-btn--disabled":""}`,disabled:o<=1,"aria-label":l.prevAria??"\u4E0A\u4E00\u9875",onClick:o>1?()=>a(o-1):void 0},Ve($,{name:"chevron-left"})));let d=xr(o,c);for(let m of d)m==="..."?p.push(Ve("span",{class:"wf-page-ellipsis"},"...")):p.push(Ve("button",{class:`wf-page-btn${m===o?" wf-page-btn--active":""}`,"aria-current":m===o?"page":void 0,onClick:m!==o?()=>a(m):void 0},String(m)));return p.push(Ve("button",{class:`wf-page-btn${o>=c?" wf-page-btn--disabled":""}`,disabled:o>=c,"aria-label":l.nextAria??"\u4E0B\u4E00\u9875",onClick:o<c?()=>a(o+1):void 0},Ve($,{name:"chevron-right"}))),Ve("nav",{class:"wf-pagination","aria-label":l.ariaLabel??"\u5206\u9875"},p)};function xr(i,n){if(n<=7)return Array.from({length:n},(s,o)=>o+1);let e=[1];i>3&&e.push("...");let t=Math.max(2,i-1),r=Math.min(n-1,i+1);for(let s=t;s<=r;s++)e.push(s);return i<n-2&&e.push("..."),e.push(n),e}import{h as Cr}from"weifuwu/ui-dom";var kr=(i,n)=>e=>{let{variant:t="default",padding:r="md",clickable:s,hover:o,active:a,onClick:l,className:c,style:p,children:d}=e,m=["wf-card",`wf-card--${t}`,`wf-card--pad-${r}`,s&&"wf-card--clickable",o&&"wf-card--hover",a&&"wf-card--active",(s||o)&&"wf-elevate"].filter(Boolean).join(" ");return Cr("div",{class:c?`${m} ${c}`:m,style:p,onClick:l,role:s?"button":void 0,tabindex:s?0:void 0,onKeyDown:s?u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),l?.())}:void 0},d)};import{h as tn}from"weifuwu/ui-dom";var Mr=(i,n)=>e=>{let{variant:t="default",dot:r,children:s,count:o,overflowCount:a=99,showZero:l=!1}=e;if(r)return tn("span",{class:`wf-badge-dot wf-badge-dot--${t}`});if(o!=null){if(o===0&&!l)return null;let c=o>a?`${a}+`:String(o);return tn("span",{class:`wf-badge wf-badge--count wf-badge--${t}`,"aria-label":`${o>a?`\u8D85\u8FC7 ${a}`:o} \u6761`},c)}return tn("span",{class:`wf-badge wf-badge--${t}`},s??"")};import{h as zn}from"weifuwu/ui-dom";var _n=["#4f6ef7","#22c55e","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#ec4899"];function Pr(i){let n=0;for(let e=0;e<i.length;e++)n=i.charCodeAt(e)+((n<<5)-n);return _n[Math.abs(n)%_n.length]}var nn=(i,n)=>e=>{let{name:t="",src:r,size:s="md",color:o}=e,a=Array.from(t.trim())[0]?.toUpperCase()??"?";return r?zn("img",{class:`wf-avatar wf-avatar--${s}`,src:r,alt:t}):zn("div",{class:`wf-avatar wf-avatar--${s}`,style:{background:o??Pr(t)}},a)};import{h as Rt}from"weifuwu/ui-dom";var Tr=(i,n)=>e=>{let{closable:t,onClose:r,variant:s="default",children:o}=e,a=t?Rt("button",{class:"wf-tag-close",onClick:r,type:"button","aria-label":"\u79FB\u9664"},Rt($,{name:"close"})):null;return Rt("span",{class:`wf-tag wf-tag--${s}`},[Rt("span",{class:"wf-tag-text"},o),a].filter(Boolean))};import{h as Be}from"weifuwu/ui-dom";var $r=(i,n)=>{let e=n.ui.useTween(0,{duration:400,ease:"easeOutCubic"}),t=0,r=null,s,o=()=>{r&&(clearInterval(r),r=null)};return a=>{let{label:l,value:c,trend:p,trendLabel:d,icon:m,onClick:u,animate:h,countdown:f,onFinish:g}=a;s=g;let y=typeof c=="number"?c:0;h&&typeof c=="number"?e.reset(y):e.value=y,f!==void 0?(t=Math.max(0,Math.ceil((f-Date.now())/1e3)),r||(r=setInterval(()=>{t=Math.max(0,Math.ceil((f-Date.now())/1e3)),t<=0&&(o(),s?.()),n.ui.render()},1e3))):r&&o();let b=f!==void 0?(()=>{let v=Math.floor(t/3600),C=Math.floor(t%3600/60),T=t%60,P=M=>String(M).padStart(2,"0");return v>0?`${P(v)}:${P(C)}:${P(T)}`:`${P(C)}:${P(T)}`})():String(typeof c=="number"?e.value:c??""),w=[];return m&&w.push(Be("div",{class:"wf-stat-icon"},m)),w.push(Be("div",{class:"wf-stat-value wf-nums"},b)),w.push(Be("div",{class:"wf-stat-label"},l)),p&&w.push(Be("div",{class:`wf-stat-trend wf-stat-trend--${p}`},[Be("span",{class:"wf-stat-trend-arrow"},Be($,{name:p==="up"?"arrow-up":"arrow-down"})),d?Be("span",{class:"wf-stat-trend-label"},d):null].filter(Boolean))),Be("div",{class:`wf-stat${u?" wf-stat--clickable":""}${u?" wf-elevate":""}`,onClick:u,role:u?"button":void 0,tabindex:u?0:void 0,onKeyDown:u?v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),u())}:void 0},w)}};import{h as Ne}from"weifuwu/ui-dom";var Er=(i,n)=>e=>{let{items:t=[],active:r,current:s=0}=e,o=r??t[s]?.key,a=t.map((l,c)=>{let p=t.findIndex(b=>b.key===o),d=c<p,m=c===p,u=["wf-step",d&&"wf-step--done",m&&"wf-step--current"].filter(Boolean).join(" "),h=d?Ne("span",{class:"wf-step-num"},Ne($,{name:"check"})):Ne("span",{class:"wf-step-num"},String(c+1)),f=Ne("span",{class:"wf-step-label"},l.label),g=l.description?Ne("span",{class:"wf-step-desc"},l.description):null,y=c<t.length-1?Ne("span",{class:`wf-step-connector${d?" wf-step-connector--done":""}`}):null;return Ne("div",{class:u,key:l.key,role:"listitem","aria-current":m?"step":void 0},[h,f,g,y].filter(Boolean))});return Ne("div",{class:"wf-steps",role:"list"},a)};import{h as Lr}from"weifuwu/ui-dom";async function Ir(i,n){let e={};for(let[t,r]of Object.entries(n)){let s=i[t]??"";for(let o of r){if(o.required&&!String(s).trim()){e[t]=o.message;break}if(o.pattern&&!o.pattern.test(String(s))){e[t]=o.message;break}if(o.minLength!=null&&String(s).length<o.minLength){e[t]=o.message;break}if(o.maxLength!=null&&String(s).length>o.maxLength){e[t]=o.message;break}if(o.validator){let a=await o.validator(s);if(a!==!0){e[t]=typeof a=="string"?a:o.message;break}}}}return e}var Sr=(i,n)=>e=>{let{validation:t,onSubmit:r,onError:s,children:o}=e;return Lr("form",{class:"wf-form",onSubmit:async l=>{l.preventDefault();let c=l.target,p=new FormData(c),d={};for(let[m,u]of p.entries())if(m in d){let h=d[m];d[m]=Array.isArray(h)?[...h,u]:[h,u]}else d[m]=u;if(t){let m=await Ir(d,t);if(Object.keys(m).length>0){s?.(m);return}s?.({})}await r?.(d)},noValidate:t?!0:void 0},o)};import{h as yt}from"weifuwu/ui-dom";var Ar=(i,n)=>e=>{let{label:t,required:r,error:s,hint:o,children:a}=e,l=[];if(t){let c=[t];r&&c.push(yt("span",{class:"wf-field-req"},"*")),l.push(yt("label",{class:"wf-field-label"},c))}return l.push(a),s&&l.push(yt("div",{class:"wf-field-err"},s)),o&&!s&&l.push(yt("div",{class:"wf-field-hint"},o)),yt("div",{class:`wf-field${s?" wf-field--err":""}`},l)};import{h as nt}from"weifuwu/ui-dom";var Dr=(i,n)=>e=>{let{label:t,value:r=0,min:s=0,max:o=100,step:a=1,onChange:l}=e,c=Number(r),p=o>s?(c-s)/(o-s)*100:0,d=`linear-gradient(to right, var(--wf-color-primary) ${p}%, var(--wf-color-border) ${p}%)`,m=nt("input",{type:"range",class:"wf-slider-input",value:c,min:s,max:o,step:a,"aria-label":t,style:{background:d},onChange:l?h=>l(Number(h.target.value)):void 0}),u=nt("span",{class:"wf-slider-value"},String(c));return t?nt("div",{class:"wf-slider-wrap"},[nt("label",{class:"wf-slider-label"},t),nt("div",{class:"wf-slider"},[m,u])]):nt("div",{class:"wf-slider"},[m,u])};import{h as ot}from"weifuwu/ui-dom";var Rr=(i,n)=>e=>{let{value:t="",placeholder:r="\u641C\u7D22...",onInput:s,onClear:o}=e,a=t&&o?ot("button",{class:"wf-search-clear",type:"button","aria-label":"\u6E05\u9664",onClick:o},ot($,{name:"close"})):null,l=ot("span",{class:"wf-search-icon"},ot($,{name:"search"}));return ot("div",{class:"wf-search"},[l,ot("input",{class:"wf-search-input",type:"search",value:t,placeholder:r,onInput:s}),a].filter(Boolean))};import{h as Kn}from"weifuwu/ui-dom";var Or=(i,n)=>e=>{let{options:t,size:r="md",block:s,ariaLabel:o}=e,a=n?.ui?.useControlled({value:e.value,onChange:e.onChange,name:"SegmentedControl"}),l=p=>{let d=a?.controlled;a?.setValue(p),d||e.onChange?.(p)},c=["wf-segmented",r==="sm"&&"wf-segmented--sm",s&&"wf-segmented--block"].filter(Boolean).join(" ");return Kn("div",{class:c,role:"group","aria-label":o},t.map(p=>Kn("button",{type:"button",class:`wf-segmented-option${p.value===a?.value?" wf-segmented-option--active":""}`,"aria-pressed":p.value===a?.value?"true":"false",disabled:p.disabled||void 0,onClick:p.disabled?void 0:()=>l(p.value)},p.label)))};import{h as wt}from"weifuwu/ui-dom";var Br=(i,n)=>e=>{let{value:t,max:r=100,label:s,showValue:o,status:a="default",size:l="md"}=e,c=t==null,p=c?0:Math.min(100,Math.max(0,t/r*100)),d=n?.i18n?.components?.ProgressBar??{},m=wt("div",{class:`wf-progress wf-progress--${l}${c?" wf-progress--indeterminate":""}${a!=="default"?` wf-progress--${a}`:""}`,role:"progressbar","aria-valuenow":c?void 0:Math.round(t),"aria-valuemin":0,"aria-valuemax":Math.round(r),"aria-label":s??d.ariaLabel??"\u8FDB\u5EA6"},[wt("div",{class:`wf-progress-fill${a!=="default"?` wf-progress-fill--${a}`:""}`,style:c?void 0:{width:`${p}%`}})]);if(!s&&!o)return m;let u=[];return s&&u.push(wt("span",{class:"wf-progress-label"},s)),u.push(m),o&&!c&&u.push(wt("span",{class:"wf-progress-value"},`${Math.round(p)}%`)),wt("div",{class:"wf-progress-wrap"},u)};import{createClientBrowser as Nr}from"weifuwu/ui-dom";import{h as vt}from"weifuwu/ui-dom";var Hr=(i,n)=>{let e=n.browser??Nr(),t=n.ui.$();t.internalActive=[];let r=[],s=o=>{if(!o)return;let a=Number(o.dataset.idx);Number.isNaN(a)||(r[a]=o)};return o=>{let{items:a=[],active:l,onChange:c,multiple:p=!1}=o;t.internalActive.length===0&&a.length>0&&(t.internalActive=a.map(b=>b.key));let d=l!==void 0,m=d?l:t.internalActive,u=b=>m.includes(b),h=b=>{d?c?.(b):t.internalActive=b},f=b=>{u(b)?h(m.filter(w=>w!==b)):h(p?[...m,b]:[b])},g=b=>{let w=e?.activeElement()??null,v=r.indexOf(w);if(v<0)return;let C=v;if(b.key==="ArrowDown"||b.key==="ArrowRight")C=(v+1)%a.length;else if(b.key==="ArrowUp"||b.key==="ArrowLeft")C=(v-1+a.length)%a.length;else return;b.preventDefault(),r[C]?.focus()};if(a.length===0)return null;let y=a.map((b,w)=>{let v=u(b.key);return vt("div",{class:`wf-accordion-item${v?" wf-accordion-item--open":""}`,key:b.key},[vt("button",{type:"button",class:"wf-accordion-summary",ref:s,"data-idx":String(w),disabled:b.disabled||void 0,"aria-expanded":v?"true":"false",onClick:b.disabled?void 0:()=>f(b.key)},[b.title,vt($,{name:"chevron-down",size:14,className:"wf-accordion-arrow"})]),v&&b.content?vt("div",{class:"wf-accordion-content"},b.content):null].filter(Boolean))});return vt("div",{class:"wf-accordion",onKeyDown:g},y)}};import{h as xt}from"weifuwu/ui-dom";var zr=(i,n)=>e=>{let{title:t,sub:r,display:s,children:o}=e;return xt("div",{class:"wf-page-head"},[xt("div",{class:"wf-page-head-left"},[xt("h2",{class:`wf-page-title${s?" wf-page-title--display":""}`},t),r?xt("p",{class:"wf-page-sub"},r):null].filter(Boolean)),o?xt("div",{class:"wf-page-head-actions"},o):null].filter(Boolean))};import{h as Ct}from"weifuwu/ui-dom";var _r=(i,n)=>e=>{let{items:t}=e,r=t.flatMap((o,a)=>{let l=a===t.length-1,c=l?Ct("span",{class:"wf-breadcrumb-current","aria-current":"page"},o.label):o.href?Ct("a",{class:"wf-breadcrumb-link",href:o.href},o.label):Ct("span",{class:"wf-breadcrumb-text"},o.label);return l?c:[c,Ct("span",{class:"wf-breadcrumb-sep","aria-hidden":"true"},"/")]}),s=n?.i18n?.components?.Breadcrumb??{};return Ct("nav",{class:"wf-breadcrumb","aria-label":s.ariaLabel??"\u9762\u5305\u5C51"},r)};import{h as on}from"weifuwu/ui-dom";var Kr=(i,n)=>e=>{let{vertical:t,children:r}=e;return t?on("div",{class:"wf-divider wf-divider--vertical",role:"separator"}):on("div",{class:r?"wf-divider wf-divider--with-text":"wf-divider",role:"separator"},r?on("span",{class:"wf-divider-text"},r):void 0)};import{h as X}from"weifuwu/ui-dom";function jn(i){return i<1024?`${i}B`:i<1024*1024?`${(i/1024).toFixed(1)}KB`:`${(i/(1024*1024)).toFixed(1)}MB`}var rn=(i,n)=>{let e=n?.i18n?.components?.FileUpload??{},t=null,r=u=>{u&&(t=u)},s=new Map,o=u=>`${u.name}:${u.size}`,a=u=>{if(!u.type.startsWith("image/"))return;let h=o(u),f=s.get(h);return!f&&typeof URL<"u"&&URL.createObjectURL&&(f=URL.createObjectURL(u),s.set(h,f)),f},l=u=>{if(!u){for(let h of s.values())URL.revokeObjectURL?.(h);s.clear()}},c=!1,p={...i},d=!1,{dropProps:m}=n.ui.useDragDrop({onDrop:u=>{if(d=!1,n.ui.render(),p.disabled)return;let h=Array.from(u.dataTransfer?.files??[]);p.maxSize&&h.filter(g=>g.size>p.maxSize).length>0||p.onChange?.(h)},onDragOver:()=>{d||(d=!0,n.ui.render())},onDragLeave:()=>{d&&(d=!1,n.ui.render())}});return u=>{Object.assign(p,u);let{accept:h,multiple:f,maxSize:g,disabled:y,error:b,hint:w,value:v,onChange:C,children:T,uploading:P,progress:M}=u,I=v??[];v!==void 0&&!C&&!c&&(c=!0,console.warn(`[weifuwu/FileUpload] value \u5DF2\u4F20\uFF08\u53D7\u63A7\uFF09\u4F46\u672A\u63D0\u4F9B onChange\u2014\u2014\u9009\u62E9/\u5220\u9664\u65E0\u6CD5\u751F\u6548\u3002
1
+ import{h as On}from"weifuwu/ui-dom";var Vo={"chevron-down":["M6 9l6 6 6-6"],"chevron-up":["M6 15l6-6 6 6"],"chevron-left":["M15 18l-6-6 6-6"],"chevron-right":["M9 18l6-6-6-6"],"arrow-left":["M19 12H5","M12 19l-7-7 7-7"],"arrow-up":["M12 19V5","M5 12l7-7 7 7"],"arrow-down":["M12 5v14","M19 12l-7 7-7-7"],"arrow-right":["M5 12h14","M12 5l7 7-7 7"],sort:["M7 15l5 5 5-5","M7 9l5-5 5 5"],"sort-asc":["M12 19V5","M5 12l7-7 7 7"],"sort-desc":["M12 5v14","M19 12l-7 7-7-7"],check:["M20 6L9 17l-5-5"],close:["M18 6L6 18","M6 6l12 12"],alert:["M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z","M12 9v4","M12 17h.01"],info:["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z","M12 16v-4","M12 8h.01"],warning:["M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z","M12 9v4","M12 17h.01"],pause:["M6 4h4v16H6z","M14 4h4v16h-4z"],settings:["M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z","M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"],search:["M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16z","M21 21l-4.35-4.35"],send:["M22 2L11 13","M22 2l-7 20-4-9-9-4 20-7z"],stop:["M6 6h12v12H6z"],retry:["M1 4v6h6","M23 20v-6h-6","M20.49 9A9 9 0 0 0 5.64 5.64L1 10","M3.51 15a9 9 0 0 0 14.85 3.36L23 14"],upload:["M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4","M17 8l-5-5-5 5","M12 3v12"],trash:["M3 6h18","M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2","M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6h14","M10 11v6","M14 11v6"],edit:["M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7","M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"],plus:["M12 5v14","M5 12h14"],copy:["M20 9h-9a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2z","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"],eye:["M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z","M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"],"eye-off":["M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94","M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19","M14.12 14.12a3 3 0 1 1-4.24-4.24","M1 1l22 22"],star:["M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"],dashboard:["M3 13h8V3H3z","M21 13h-8V9h8z","M21 21h-8v-8h8z","M3 21h8v-8H3z"],grid:["M3 3h7v7H3z","M14 3h7v7h-7z","M14 14h7v7h-7z","M3 14h7v7H3z"],box:["M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z","M3.27 6.96L12 12.01l8.73-5.05","M12 22.08V12"],users:["M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2","M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z","M23 21v-2a4 4 0 0 0-3-3.87","M16 3.13a4 4 0 0 1 0 7.75"],user:["M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2","M12 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z"],home:["M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z","M9 22V12h6v10"],folder:["M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"],file:["M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z","M13 2v7h7"],"file-text":["M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z","M13 2v7h7","M9 13h6","M9 17h6"],calendar:["M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z","M16 3v4","M8 3v4","M3 11h18"],clock:["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z","M12 6v6l4 2"],bell:["M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9","M13.73 21a2 2 0 0 1-3.46 0"],menu:["M3 12h18","M3 6h18","M3 18h18"],activity:["M22 12h-4l-3 9L9 3l-3 9H2"],"trending-up":["M23 6l-9.5 9.5-5-5L1 18","M17 6h6v6"],"trending-down":["M23 18l-9.5-9.5-5 5L1 6","M17 18h6v-6"],database:["M12 8c4.97 0 9-1.34 9-3s-4.03-3-9-3-9 1.34-9 3 4.03 3 9 3z","M21 12c0 1.66-4.03 3-9 3s-9-1.34-9-3","M3 5v14c0 1.66 4.03 3 9 3s9-1.34 9-3V5"],server:["M20 4H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z","M4 14h16","M20 14a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2","M7 18h.01","M12 18h.01"],heart:["M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"],refresh:["M23 4v6h-6","M1 20v-6h6","M3.51 9a9 9 0 0 1 14.85-3.36L23 10","M20.49 15a9 9 0 0 1-14.85 3.36L1 14"],message:["M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"],inbox:["M22 12h-6l-2 3h-4l-2-3H2","M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"],shield:["M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"],zap:["M13 2L3 14h9l-1 8 10-12h-9l1-8z"],target:["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z","M12 18a6 6 0 1 0 0-12 6 6 0 0 0 0 12z","M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"],mail:["M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z","M22 6l-10 7L2 6"],"external-link":["M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","M15 3h6v6","M10 14L21 3"],"log-out":["M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4","M16 17l5-5-5-5","M21 12H9"],lock:["M5 11h14a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2z","M7 11V7a5 5 0 0 1 10 0v4"],list:["M8 6h13","M8 12h13","M8 18h13","M3 6h.01","M3 12h.01","M3 18h.01"],"bar-chart":["M12 20V10","M18 20V4","M6 20v-4"],gauge:["M12 15l3.5-3.5","M20.39 18.39A10 10 0 1 0 3.61 18.39","M12 15a2 2 0 1 0 0 4 2 2 0 0 0 0-4z"],paperclip:["M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"],filter:["M22 3H2l8 9.46V19l4 2v-8.54L22 3z"],layers:["M12 2L2 7l10 5 10-5-10-5z","M2 17l10 5 10-5","M2 12l10 5 10-5"],"map-pin":["M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z","M15 10a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"],"book-open":["M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z","M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"],github:["M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"],tag:["M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z","M7 7h.01"],phone:["M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"],"more-vertical":["M12 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z","M12 13.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z","M12 20a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"],"check-circle":["M22 11.08V12a10 10 0 1 1-5.93-9.14","M22 4L12 14.01l-3-3"],"alert-circle":["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z","M12 8v4","M12 16h.01"],wifi:["M5 12.55a11 11 0 0 1 14.08 0","M1.42 9a16 16 0 0 1 21.16 0","M8.53 16.11a6 6 0 0 1 6.95 0","M12 20h.01"],cpu:["M9 9h6v6H9z","M9 1v4","M15 1v4","M9 19v4","M15 19v4","M1 9h4","M1 15h4","M19 9h4","M19 15h4","M5 5h14v14H5z"],"hard-drive":["M22 12H2","M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z","M6 16h.01","M10 16h.01"],globe:["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z","M2 12h20","M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"],briefcase:["M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16","M2 20h20","M4 4h16a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z"],layout:["M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z","M9 3v18","M3 9h18"]},$=(i,n)=>e=>{let{name:t,size:r,className:s}=e;return On("svg",{class:`wf-icon${s?" "+s:""}`,width:r??"1em",height:r??"1em",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":1.8,"stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"},Vo[t].map(o=>On("path",{d:o})))};import{h as Bn}from"weifuwu/ui-dom";var At=(i,n)=>e=>{let{variant:t="primary",size:r="md",block:s,loading:o,disabled:a,type:l,onClick:c,children:p}=e,d=["wf-btn",`wf-btn--${t}`,`wf-btn--${r}`,s&&"wf-btn--block",o&&"wf-btn--loading"].filter(Boolean).join(" "),m=n?.i18n?.components?.Button??{};return Bn("button",{id:e.id,class:d,type:l??"button",disabled:a||o||void 0,"aria-busy":o||void 0,onClick:c},o?[Bn("span",{class:"wf-btn-spinner"}),m.loading??"\u52A0\u8F7D\u4E2D..."]:p)};import{h as Xe}from"weifuwu/ui-dom";var Fo=i=>n=>{let{label:e,name:t,type:r="text",value:s,placeholder:o,required:a,disabled:l,error:c,hint:p,variant:d="default",onInput:m,onChange:u}=n,h=Xe("input",{class:`wf-input${d==="borderless"?" wf-input--borderless":""}`,name:t||void 0,type:r,value:s??"",placeholder:o,required:a||void 0,disabled:l||void 0,onInput:m,onChange:u});if(!e&&!c&&!p)return h;let f=[];if(e){let g=[e];a&&g.push(Xe("span",{class:"wf-input-req"},"*")),f.push(Xe("label",{class:"wf-input-label"},g))}return f.push(h),c&&f.push(Xe("div",{class:"wf-input-err"},c)),p&&!c&&f.push(Xe("div",{class:"wf-input-hint"},p)),Xe("div",{class:`wf-input-wrap${c?" wf-input--err":""}`},f)};import{h as We}from"weifuwu/ui-dom";var Go=(i,n)=>e=>{let{label:t,value:r,placeholder:s,required:o,disabled:a,error:l,hint:c,rows:p=3,maxLength:d,showCount:m,onInput:u}=e,h=We("textarea",{class:"wf-textarea",value:r??"",placeholder:s,required:o||void 0,disabled:a||void 0,rows:p,maxLength:d,onInput:u}),f=[];if(t){let g=[t];o&&g.push(We("span",{class:"wf-textarea-req"},"*")),f.push(We("label",{class:"wf-textarea-label"},g))}if(f.push(h),m){let g=(r??"").length,y=d!=null&&g>d;f.push(We("div",{class:`wf-textarea-count${y?" wf-textarea-count--over":""}`,"aria-live":"polite"},d!=null?`${g}/${d}`:String(g)))}return l&&f.push(We("div",{class:"wf-textarea-err"},l)),c&&!l&&f.push(We("div",{class:"wf-textarea-hint"},c)),We("div",{class:`wf-textarea-wrap${l?" wf-textarea--err":""}`},f)};import{h as Q}from"weifuwu/ui-dom";var qo=(i,n)=>e=>{let{label:t,value:r,options:s,placeholder:o,required:a,disabled:l,error:c,onChange:p,children:d}=e,m=[];if(o&&m.push(Q("option",{value:"",disabled:!0},o)),s)for(let f of s)m.push(Q("option",{value:f.value,disabled:f.disabled},f.label));let u=Q("select",{class:"wf-select",value:r??"",required:a||void 0,disabled:l||void 0,onChange:f=>p?.(f.target.value)},d??m),h=[];if(t){let f=[t];a&&f.push(Q("span",{class:"wf-select-req"},"*")),h.push(Q("label",{class:"wf-select-label"},f))}return h.push(u),c&&h.push(Q("div",{class:"wf-select-err"},c)),Q("div",{class:`wf-select-wrap${c?" wf-select--err":""}`},h)},Uo=(i,n)=>{let e=n.ui.$(),t=!1,r;n.ui.useStableRef?.(()=>{},()=>{t=!0,r&&clearTimeout(r)}),e.open=!1,e.keyword="",e.filteredOptions=[],e.highlight=-1;let s=null,o=null,a=p=>{p&&(s=p)},l=p=>{p&&(o=p)},c=n.ui.usePopup({trigger:()=>"click",placement:()=>"bottom",center:!1,gap:4,el:()=>s,isOpen:()=>e.open,setOpen:p=>{e.open=p}});return p=>{let{label:d,value:m,options:u=[],placeholder:h,required:f,disabled:g,error:y,onChange:b,onSearch:w,multiple:v}=p,C=!!v,T=C?Array.isArray(m)?m:[]:[m],P=e.keyword?u.filter(S=>S.label.toLowerCase().includes(e.keyword.toLowerCase())):u,M=e.keyword&&w&&e.filteredOptions.length>0?e.filteredOptions:P,I=u.find(S=>S.value===m),N=u.filter(S=>T.includes(S.value)),L=async S=>{if(e.keyword=S,e.open=!0,e.highlight=0,w&&S){let W=await w(S);W&&(e.filteredOptions=W)}},D=S=>{if(!S.disabled)if(C){let W=Array.isArray(m)?[...m]:[],U=W.indexOf(S.value);U>=0?W.splice(U,1):W.push(S.value),b?.(W)}else e.keyword="",e.open=!1,b?.(S.value)},O=S=>{if(!C)return;let W=Array.isArray(m)?[...m]:[];b?.(W.filter(U=>U!==S))},z=S=>{if(!g)if(S.key==="ArrowDown")S.preventDefault(),e.open=!0,e.highlight=Math.min(e.highlight+1,M.length-1);else if(S.key==="ArrowUp")S.preventDefault(),e.open=!0,e.highlight=Math.max(e.highlight-1,0);else if(S.key==="Enter"){S.preventDefault();let W=M[e.highlight];W&&D(W)}else S.key==="Escape"&&(S.preventDefault(),e.open=!1,e.keyword="")},H=C&&N.length>0?N.map(S=>Q("span",{class:"wf-select-tag",key:S.value},[S.label,Q("button",{type:"button",class:"wf-select-tag-close","aria-label":`\u79FB\u9664 ${S.label}`,onClick:W=>{W.stopPropagation(),O(S.value)}},Q($,{name:"close",size:10}))])):[],E=C?"":e.open?e.keyword:I?.label??"",k=Q("div",{key:"select-trigger",class:`wf-select-search-trigger${g?" wf-select-search--disabled":""}${y?" wf-select--err":""}`,ref:a,role:"combobox","aria-haspopup":"listbox","aria-expanded":String(e.open),onClick:g?void 0:()=>{e.open=!0,o?.focus()}},[...H,Q("input",{key:"select-search-input",ref:l,class:"wf-select-search-input",type:"text",value:C?"":e.open?e.keyword:I?.label??"",placeholder:N.length>0?void 0:h??"",disabled:g,readOnly:!e.open||void 0,onInput:S=>L(S.target.value),onFocus:()=>{g||(e.open=!0)},onBlur:()=>{r=setTimeout(()=>{t||(e.open=!1,e.keyword="")},150)},onKeyDown:z})]),x=[];if(d){let S=[d];f&&S.push(Q("span",{class:"wf-select-req"},"*")),x.push(Q("label",{class:"wf-select-label"},S))}let R=M.length>0?M.map((S,W)=>{let U=C?T.includes(S.value):S.value===m;return Q("div",{class:`wf-select-search-opt${U?" wf-select-search-opt--sel":""}${S.disabled?" wf-select-search-opt--dis":""}${e.highlight===W?" wf-select-search-opt--hl":""}`,key:S.value,onMouseDown:G=>{G.preventDefault(),D(S)}},S.label)}):e.keyword?[Q("div",{class:"wf-select-search-empty"},"\u65E0\u5339\u914D")]:[],B=Q("div",{class:"wf-select-search-menu"},R);return x.push(Q("div",{class:"wf-select-search"},[k,c.portal(B,"wf-select-menu")].filter(Boolean))),y&&x.push(Q("div",{class:"wf-select-err"},y)),Q("div",{class:`wf-select-wrap${y?" wf-select--err":""}`},x)}},Yo=(i,n)=>{let e=qo(i,n),t=Uo(i,n);return r=>r.searchable?t(r):e(r)};import{h as mt}from"weifuwu/ui-dom";var Xt=(i,n)=>e=>{let{label:t,checked:r,disabled:s,onChange:o}=e,a=mt("input",{type:"checkbox",class:"wf-checkbox-input",checked:r||void 0,disabled:s||void 0,onChange:o?c=>o(c.target.checked):void 0}),l=mt("span",{class:"wf-checkbox-visual"});return t?mt("label",{class:"wf-checkbox"},[a,l,mt("span",{class:"wf-checkbox-label"},t)]):mt("label",{class:"wf-checkbox"},[a,l])};import{h as ht}from"weifuwu/ui-dom";var Qo=(i,n)=>e=>{let{label:t,checked:r,disabled:s,onChange:o}=e,a=ht("input",{type:"checkbox",class:"wf-switch-input",checked:r||void 0,disabled:s||void 0,role:"switch","aria-checked":String(!!r),onChange:o?p=>o(p.target.checked):void 0}),l=ht("span",{class:"wf-switch-track"}),c=n?.i18n?.components?.Switch??{};return t?ht("label",{class:"wf-switch"},[a,l,ht("span",{class:"wf-switch-label"},t)]):ht("label",{class:"wf-switch","aria-label":c.ariaLabel??"\u5207\u6362"},[a,l])};import{h as gt}from"weifuwu/ui-dom";var Xo=(i,n)=>e=>{let{name:t,options:r=[],inline:s}=e,o=n?.ui?.useControlled({value:e.value,onChange:e.onChange,name:"RadioGroup"}),a=c=>{let p=o?.controlled;o?.setValue(c),p||e.onChange?.(c)},l=r.map(c=>{let p=gt("input",{type:"radio",class:"wf-radio-input",name:t??"radio",value:c.value,checked:o?.value===c.value||void 0,disabled:c.disabled||void 0,onChange:()=>a(c.value)}),d=gt("span",{class:"wf-radio-visual"}),m=gt("span",{class:"wf-radio-label-text"},c.label);return gt("label",{class:"wf-radio",key:c.value},[p,d,m])});return gt("div",{class:`wf-radio-group${s?" wf-radio-group--inline":""}`},l)};import{h as ne}from"weifuwu/ui-dom";function Zo(i,n,e,t){if(!e||!t)return i;let r=n.find(o=>o.key===e);if(!r||!r.sortable)return i;let s=[...i];return s.sort((o,a)=>{let l=o[e],c=a[e],p=r.sorter?r.sorter(l,c):String(l??"").localeCompare(String(c??""));return t==="desc"?-p:p}),s}var Jo=(i,n)=>e=>{let{data:t=[],columns:r,onRowClick:s,sortKey:o,sortOrder:a,onSort:l,emptyText:c,rowSelection:p}=e,d=Zo(t,r,o,a),m=(D,O)=>D[p?.rowKey??"id"]??O,u=p?.selectedRowKeys??[],h=new Set(u.map(String)),f=d.map((D,O)=>String(m(D,O))),g=f.length>0&&f.every(D=>h.has(D)),y=f.some(D=>h.has(D)),b=()=>{if(!p?.onChange)return;let D=g?[]:f.map(O=>d.find((z,H)=>String(m(z,H))===O));p.onChange(g?[]:f,g?[]:D)},w=(D,O)=>{if(!p?.onChange)return;let z=String(m(D,O)),H=h.has(z)?u.filter(k=>String(k)!==z):[...u,z],E=H.map(k=>d.find((x,R)=>String(m(x,R))===String(k))).filter(Boolean);p.onChange(H,E)},v=p?ne("th",{class:"wf-table-th wf-table-th--selection",scope:"col"},ne("input",{type:"checkbox",class:"wf-table-checkbox",checked:g||void 0,indeterminate:y&&!g?"true":void 0,"aria-label":"\u5168\u9009",onChange:b})):null,C=(D,O)=>p?ne("td",{class:"wf-table-td wf-table-td--selection"},ne("input",{type:"checkbox",class:"wf-table-checkbox",checked:h.has(String(m(D,O)))||void 0,"aria-label":"\u9009\u62E9\u884C",onClick:z=>z.stopPropagation(),onChange:()=>w(D,O)})):null,T=r.map(D=>{let O=D.key===o&&a,z=a==="asc",H=D.label,E=D.sortable?ne($,{name:O?z?"sort-asc":"sort-desc":"sort",className:`wf-table-sort-icon${O?" wf-table-sort-icon--active":""}`}):null,k=D.sortable&&l?()=>l(D.key,O&&z?"desc":"asc"):void 0;return ne("th",{class:`wf-table-th${D.sortable?" wf-table-th--sortable":""}${O?" wf-table-th--sorted":""}`,scope:"col",tabindex:D.sortable?0:void 0,style:D.width?{width:D.width}:void 0,onClick:k,onKeyDown:k?x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),k())}:void 0},[H,E].filter(Boolean))}),P=ne("tr",{class:"wf-table-tr"},[v,...T].filter(Boolean)),M=ne("thead",{class:"wf-table-thead"},P),I;if(e.loading){let D=e.loadingRows??3;I=Array.from({length:D},(O,z)=>ne("tr",{class:"wf-table-tr wf-table-tr--loading",key:`loading-${z}`},r.map((H,E)=>ne("td",{class:"wf-table-td",key:`${z}-${E}`},ne("span",{class:"wf-skeleton wf-skeleton--text"})))))}else if(d.length===0&&c){let D=r.length+(p?1:0);I=[ne("tr",{class:"wf-table-tr"},ne("td",{class:"wf-table-td wf-table-empty",colspan:D,style:{textAlign:"center"}},c))]}else I=d.map((D,O)=>{let z=r.map(E=>{let k=D[E.key],x=E.render?E.render(k,D,O):String(k??"");return ne("td",{class:"wf-table-td"},x)}),H=C(D,O);return ne("tr",{class:"wf-table-tr",onClick:s?()=>s(D,O):void 0,style:s?{cursor:"pointer"}:void 0},[H,...z].filter(Boolean))});let N=ne("tbody",{class:"wf-table-tbody"},I),L=ne("table",{class:"wf-table",style:e.minWidth?{minWidth:e.minWidth}:void 0},[M,N]);return ne("div",{class:"wf-table-wrap"},L)};import{h as Oe,createPortal as er}from"weifuwu/ui-dom";var Ze=(i,n)=>{let e=n.ui.useDialog({name:"Modal"});return t=>{let{open:r,title:s,onClose:o,children:a,footer:l,width:c,closable:p=!0,maskClosable:d=!0}=t,m=n?.i18n?.components?.Modal??{},u=e.sync(!!r);if(u==="closed")return null;let h=Oe("div",{class:"wf-modal-overlay",onClick:d?o:void 0}),f=p?Oe("button",{class:"wf-modal-close",onClick:o,type:"button","aria-label":m.closeAria??"\u5173\u95ED"},Oe($,{name:"close"})):null,g=s?Oe("div",{class:"wf-modal-header"},[s,f].filter(Boolean)):null,y=Oe("div",{class:"wf-modal-body"},a),b=l?Oe("div",{class:"wf-modal-footer"},l):null,w=Oe("div",{class:"wf-modal-content",ref:e.panelRef,onClick:C=>C.stopPropagation(),style:c?{minWidth:`min(${c}, calc(100vw - 32px))`,maxWidth:`min(${c}, calc(100vw - 32px))`}:void 0},[g,y,b].filter(Boolean)),v=Oe("div",{ref:e.rootRef,class:`wf-modal ${u==="exit"?"wf-modal--exit":"wf-modal--enter"}`,role:"dialog","aria-modal":"true","aria-label":s??m.ariaLabel??"\u5F39\u7A97",onKeyDown:C=>{C.key==="Escape"&&o?.()}},[h,w]);return er(v,"modal")}};import{createClientBrowser as tr}from"weifuwu/ui-dom";import{h as Je}from"weifuwu/ui-dom";import{mountVNode as nr,callRefCleanup as or}from"weifuwu/ui-dom";var Dt=tr();function rr(){return i=>(i.confirm=(n,e)=>sr(n,e??{},i),i)}function sr(i,n,e){return new Promise(t=>{let r=Dt.createElement("div");if(!r){t(!1);return}Dt.bodyAppend(r);let s=!1,o,l=Je((c,p)=>{let d=p.ui.$();return d.open=!0,o=m=>{if(s)return;s=!0,d.open=!1,t(m);let u=()=>{or(l),r.remove()},h=Dt.query("#__wf_portal .wf-modal");if(h&&typeof h.addEventListener=="function"){let f=!1,g=()=>{f||(f=!0,u())};h.addEventListener("animationend",g,{once:!0}),Dt.timeout(g,600)}else u()},()=>Je("div",{class:"wf-confirm-host"},Je(Nn,{open:d.open,title:n.title,message:i,confirmText:n.confirmText,cancelText:n.cancelText,variant:n.variant,width:n.width,maskClosable:n.maskClosable,onConfirm:()=>o?.(!0),onCancel:()=>o?.(!1)}))},{});nr(r,l,e)})}var Nn=(i,n)=>e=>{let{open:t=!1,title:r,message:s,confirmText:o,cancelText:a,variant:l="primary",width:c,maskClosable:p=!1,onConfirm:d,onCancel:m}=e,u=n?.i18n?.components?.Confirm??{},h=[Je(At,{variant:"secondary",size:"md",onClick:()=>m?.()},a??u.cancelText??"\u53D6\u6D88"),Je(At,{variant:l,size:"md",onClick:()=>d?.()},o??u.confirmText??"\u786E\u5B9A")];return Je(Ze,{open:t,title:r,onClose:m,maskClosable:p,footer:h,width:c,closable:!1},s)};import{createClientBrowser as ar}from"weifuwu/ui-dom";import{h as Te,createPortal as ir}from"weifuwu/ui-dom";import{mountVNode as lr}from"weifuwu/ui-dom";import{animateOut as cr}from"weifuwu/ui-dom";var Zt=ar();function pr(i){return{"top-right":"wf-toast--tr","top-left":"wf-toast--tl","bottom-right":"wf-toast--br","bottom-left":"wf-toast--bl","top-center":"wf-toast--tc"}[i]??"wf-toast--tr"}var Hn=(i,n)=>e=>{let{toasts:t=[],onRemove:r,position:s="top-right",duration:o=0,max:a=0}=e,l=a>0&&t.length>a?t.slice(-a):t;if(l.length===0)return null;let c=l.map(p=>Te("div",{class:`wf-toast wf-toast--${p.type}`,key:p.id,role:p.type==="error"?"alert":"status","aria-live":p.type==="error"?"assertive":"polite","data-id":p.id,"data-duration":(p.duration??o)||void 0,onClick:r?()=>r(p.id):void 0},[Te("span",{class:"wf-toast-icon"},Te($,{name:ur(p.type)})),Te("span",{class:"wf-toast-msg"},p.message),p.action?Te("button",{class:`wf-toast-action wf-toast-action--${p.type}`,type:"button",onClick:d=>{d.stopPropagation(),p.action.onClick()}},p.action.label):null].filter(Boolean)));return ir(Te("div",{class:`wf-toast-container ${pr(s)}`,"data-max":a||void 0},c),"toast")};function ur(i){switch(i){case"success":return"check";case"error":return"close";case"warning":return"alert";case"info":return"info"}}function dr(i){let n={position:i?.position??"top-right",duration:i?.duration??3e3,max:i?.max??3},e=null,t=null,r=0,s=(a,l)=>{let c=l.ui.$();return c.toasts=[],e={add:p=>{c.toasts=[...c.toasts,p]},remove:p=>{let d=Zt.query(`.wf-toast[data-id="${p}"]`);if(d){d.classList.add("wf-toast-out");let m=getComputedStyle(d).animationName;if(m&&m!=="none"){cr(d,()=>{c.toasts=c.toasts.filter(u=>u.id!==p)});return}}c.toasts=c.toasts.filter(m=>m.id!==p)}},()=>Te("div",{class:"wf-toast-host"},[Te(Hn,{toasts:c.toasts,position:n.position,duration:n.duration,max:n.max,onRemove:p=>e?.remove(p)})])},o=()=>{if(e||!t)return;let a=Zt.createElement("div");a&&(Zt.bodyAppend(a),lr(a,Te(s,{}),t))};return a=>(t=a,a.toast=(l,c="info",p,d)=>{o();let m=String(++r);e?.add({id:m,type:c,message:l,duration:p,action:d});let u=p??n.duration;u>0&&setTimeout(()=>e?.remove(m),u)},a)}import{h as et}from"weifuwu/ui-dom";var fr=(i,n)=>e=>{let{variant:t="info",closable:r,onClose:s,children:o}=e;if(!o)return null;let a=et("span",{class:"wf-alert-icon"},et($,{name:mr(t)})),l=r?et("button",{class:"wf-alert-close",onClick:s,type:"button","aria-label":"\u5173\u95ED"},et($,{name:"close"})):null,c=et("span",{class:"wf-alert-msg"},o);return et("div",{class:`wf-alert wf-alert--${t}`,role:"alert"},[a,c,l].filter(Boolean))};function mr(i){switch(i){case"success":return"check";case"error":return"close";case"warning":return"alert";case"info":return"info"}}import{h as Jt}from"weifuwu/ui-dom";var hr=(i,n)=>e=>{let{text:t="\u52A0\u8F7D\u4E2D..."}=e;return Jt("div",{class:"wf-loading",role:"status","aria-live":"polite"},[Jt("div",{class:"wf-loading-spinner"}),Jt("span",{class:"wf-loading-text"},t)])};import{h as tt}from"weifuwu/ui-dom";var gr=(i,n)=>e=>{let{icon:t=tt($,{name:"inbox"}),text:r="\u6682\u65E0\u6570\u636E",hint:s,children:o}=e,a=[tt("div",{class:"wf-empty-icon"},t),tt("div",{class:"wf-empty-text"},r)];return s&&a.push(tt("div",{class:"wf-empty-hint"},s)),o&&a.push(tt("div",{class:"wf-empty-action"},o)),tt("div",{class:"wf-empty",role:"status"},a)};import{createClientBrowser as br}from"weifuwu/ui-dom";import{h as bt}from"weifuwu/ui-dom";var yr=(i,n)=>{let e=n?.browser??br(),t=n.ui.$();t.inkLeft=0,t.inkWidth=0;let r=null,s=l=>{l&&(t.inkLeft=l.offsetLeft,t.inkWidth=l.offsetWidth)},o=()=>{r&&s(r.querySelector(".wf-tab--active"))},a=l=>{l&&(r=l,queueMicrotask(o))};return l=>{let{items:c=[]}=l;if(c.length===0)return null;let p=n?.ui?.useControlled({value:l.active,onChange:l.onChange,name:"Tabs"}),d=b=>{let w=p?.controlled;p?.setValue(b),w||l.onChange?.(b)},m=p?.value??c[0].key,u=b=>{let w=b.currentTarget,v=Array.from(w.querySelectorAll(".wf-tab")),C=v.indexOf(e?.activeElement()??null);if(C<0||!p)return;let T=C;if(b.key==="ArrowRight")T=(C+1)%v.length;else if(b.key==="ArrowLeft")T=(C-1+v.length)%v.length;else if(b.key==="Home")T=0;else if(b.key==="End")T=v.length-1;else return;b.preventDefault();let P=c[T];P&&P.key!==c[C].key&&(d(P.key),v[T].focus(),s(v[T]))},h=c.map(b=>bt("button",{class:`wf-tab${b.key===m?" wf-tab--active":""}`,key:b.key,role:"tab",tabindex:b.key===m?0:-1,"aria-selected":b.key===m?"true":"false",onClick:b.key!==m?(w=>{s(w?.currentTarget),d(b.key)}):void 0},b.label)),f=bt("span",{class:"wf-tab-ink",style:{transform:`translateX(${t.inkLeft}px)`,width:`${t.inkWidth}px`},"aria-hidden":"true"}),g=c.find(b=>b.key===m),y=g?.content?bt("div",{class:"wf-tab-content",role:"tabpanel"},g.content):null;return bt("div",{class:"wf-tabs",role:"tablist",onKeyDown:u},[bt("div",{class:"wf-tab-list",ref:a},[...h,f]),y].filter(Boolean))}};import{h as en}from"weifuwu/ui-dom";var wr=(i,n)=>{let e=null,t=o=>{e=o},r=null,s=n.ui.usePopup({trigger:"click",el:()=>e,isOpen:()=>r?.open??!1,setOpen:o=>r?.setOpen(o)});return o=>{let{trigger:a,items:l=[]}=o;r=n.ui.useOpen({open:o.open,onOpenChange:o.onOpenChange,name:"Dropdown"});let c=l.map((d,m)=>en("button",{class:`wf-dropdown-item${d.variant==="danger"?" wf-dropdown-item--danger":""}`,key:d.value??m,disabled:d.disabled||void 0,role:"menuitem",onClick:d.disabled?void 0:()=>{d.onClick?.()}},d.label)),p=en("div",{class:"wf-dropdown-menu",role:"menu"},c);return en("div",{class:`wf-dropdown${r?.open?" wf-dropdown--open":""}`,ref:t,...s.wrapProps,"aria-haspopup":"menu","aria-expanded":String(!!r?.open)},[a,s.portal(p,"dropdown")].filter(Boolean))}};import{h as Ve}from"weifuwu/ui-dom";var vr=(i,n)=>e=>{let{total:t,pageSize:r=20}=e,s=n?.ui?.useControlled({value:e.page,onChange:e.onChange,name:"Pagination"}),o=s?.value??1,a=m=>{let u=s?.controlled;s?.setValue(m),u||e.onChange?.(m)},l=n?.i18n?.components?.Pagination??{},c=Math.max(1,Math.ceil(t/r));if(c<=1)return null;let p=[];p.push(Ve("button",{class:`wf-page-btn${o<=1?" wf-page-btn--disabled":""}`,disabled:o<=1,"aria-label":l.prevAria??"\u4E0A\u4E00\u9875",onClick:o>1?()=>a(o-1):void 0},Ve($,{name:"chevron-left"})));let d=xr(o,c);for(let m of d)m==="..."?p.push(Ve("span",{class:"wf-page-ellipsis"},"...")):p.push(Ve("button",{class:`wf-page-btn${m===o?" wf-page-btn--active":""}`,"aria-current":m===o?"page":void 0,onClick:m!==o?()=>a(m):void 0},String(m)));return p.push(Ve("button",{class:`wf-page-btn${o>=c?" wf-page-btn--disabled":""}`,disabled:o>=c,"aria-label":l.nextAria??"\u4E0B\u4E00\u9875",onClick:o<c?()=>a(o+1):void 0},Ve($,{name:"chevron-right"}))),Ve("nav",{class:"wf-pagination","aria-label":l.ariaLabel??"\u5206\u9875"},p)};function xr(i,n){if(n<=7)return Array.from({length:n},(s,o)=>o+1);let e=[1];i>3&&e.push("...");let t=Math.max(2,i-1),r=Math.min(n-1,i+1);for(let s=t;s<=r;s++)e.push(s);return i<n-2&&e.push("..."),e.push(n),e}import{h as Cr}from"weifuwu/ui-dom";var kr=(i,n)=>e=>{let{variant:t="default",padding:r="md",clickable:s,hover:o,active:a,onClick:l,className:c,style:p,children:d}=e,m=["wf-card",`wf-card--${t}`,`wf-card--pad-${r}`,s&&"wf-card--clickable",o&&"wf-card--hover",a&&"wf-card--active",(s||o)&&"wf-elevate"].filter(Boolean).join(" ");return Cr("div",{class:c?`${m} ${c}`:m,style:p,onClick:l,role:s?"button":void 0,tabindex:s?0:void 0,onKeyDown:s?u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),l?.())}:void 0},d)};import{h as tn}from"weifuwu/ui-dom";var Mr=(i,n)=>e=>{let{variant:t="default",dot:r,children:s,count:o,overflowCount:a=99,showZero:l=!1}=e;if(r)return tn("span",{class:`wf-badge-dot wf-badge-dot--${t}`});if(o!=null){if(o===0&&!l)return null;let c=o>a?`${a}+`:String(o);return tn("span",{class:`wf-badge wf-badge--count wf-badge--${t}`,"aria-label":`${o>a?`\u8D85\u8FC7 ${a}`:o} \u6761`},c)}return tn("span",{class:`wf-badge wf-badge--${t}`},s??"")};import{h as zn}from"weifuwu/ui-dom";var _n=["#4f6ef7","#22c55e","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#ec4899"];function Pr(i){let n=0;for(let e=0;e<i.length;e++)n=i.charCodeAt(e)+((n<<5)-n);return _n[Math.abs(n)%_n.length]}var nn=(i,n)=>e=>{let{name:t="",src:r,size:s="md",color:o}=e,a=Array.from(t.trim())[0]?.toUpperCase()??"?";return r?zn("img",{class:`wf-avatar wf-avatar--${s}`,src:r,alt:t}):zn("div",{class:`wf-avatar wf-avatar--${s}`,style:{background:o??Pr(t)}},a)};import{h as Rt}from"weifuwu/ui-dom";var Tr=(i,n)=>e=>{let{closable:t,onClose:r,variant:s="default",children:o}=e,a=t?Rt("button",{class:"wf-tag-close",onClick:r,type:"button","aria-label":"\u79FB\u9664"},Rt($,{name:"close"})):null;return Rt("span",{class:`wf-tag wf-tag--${s}`},[Rt("span",{class:"wf-tag-text"},o),a].filter(Boolean))};import{h as Be}from"weifuwu/ui-dom";var $r=(i,n)=>{let e=n.ui.useTween(0,{duration:400,ease:"easeOutCubic"}),t=0,r=null,s,o=()=>{r&&(clearInterval(r),r=null)};return a=>{let{label:l,value:c,trend:p,trendLabel:d,icon:m,onClick:u,animate:h,countdown:f,onFinish:g}=a;s=g;let y=typeof c=="number"?c:0;h&&typeof c=="number"?e.reset(y):e.value=y,f!==void 0?(t=Math.max(0,Math.ceil((f-Date.now())/1e3)),r||(r=setInterval(()=>{t=Math.max(0,Math.ceil((f-Date.now())/1e3)),t<=0&&(o(),s?.()),n.ui.render()},1e3))):r&&o();let b=f!==void 0?(()=>{let v=Math.floor(t/3600),C=Math.floor(t%3600/60),T=t%60,P=M=>String(M).padStart(2,"0");return v>0?`${P(v)}:${P(C)}:${P(T)}`:`${P(C)}:${P(T)}`})():String(typeof c=="number"?e.value:c??""),w=[];return m&&w.push(Be("div",{class:"wf-stat-icon"},m)),w.push(Be("div",{class:"wf-stat-value wf-nums"},b)),w.push(Be("div",{class:"wf-stat-label"},l)),p&&w.push(Be("div",{class:`wf-stat-trend wf-stat-trend--${p}`},[Be("span",{class:"wf-stat-trend-arrow"},Be($,{name:p==="up"?"arrow-up":"arrow-down"})),d?Be("span",{class:"wf-stat-trend-label"},d):null].filter(Boolean))),Be("div",{class:`wf-stat${u?" wf-stat--clickable":""}${u?" wf-elevate":""}`,onClick:u,role:u?"button":void 0,tabindex:u?0:void 0,onKeyDown:u?v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),u())}:void 0},w)}};import{h as Ne}from"weifuwu/ui-dom";var Er=(i,n)=>e=>{let{items:t=[],active:r,current:s=0}=e,o=r??t[s]?.key,a=t.map((l,c)=>{let p=t.findIndex(b=>b.key===o),d=c<p,m=c===p,u=["wf-step",d&&"wf-step--done",m&&"wf-step--current"].filter(Boolean).join(" "),h=d?Ne("span",{class:"wf-step-num"},Ne($,{name:"check"})):Ne("span",{class:"wf-step-num"},String(c+1)),f=Ne("span",{class:"wf-step-label"},l.label),g=l.description?Ne("span",{class:"wf-step-desc"},l.description):null,y=c<t.length-1?Ne("span",{class:`wf-step-connector${d?" wf-step-connector--done":""}`}):null;return Ne("div",{class:u,key:l.key,role:"listitem","aria-current":m?"step":void 0},[h,f,g,y].filter(Boolean))});return Ne("div",{class:"wf-steps",role:"list"},a)};import{h as Lr}from"weifuwu/ui-dom";async function Ir(i,n){let e={};for(let[t,r]of Object.entries(n)){let s=i[t]??"";for(let o of r){if(o.required&&!String(s).trim()){e[t]=o.message;break}if(o.pattern&&!o.pattern.test(String(s))){e[t]=o.message;break}if(o.minLength!=null&&String(s).length<o.minLength){e[t]=o.message;break}if(o.maxLength!=null&&String(s).length>o.maxLength){e[t]=o.message;break}if(o.validator){let a=await o.validator(s);if(a!==!0){e[t]=typeof a=="string"?a:o.message;break}}}}return e}var Sr=(i,n)=>e=>{let{validation:t,onSubmit:r,onError:s,children:o}=e;return Lr("form",{class:"wf-form",onSubmit:async l=>{l.preventDefault();let c=l.target,p=new FormData(c),d={};for(let[m,u]of p.entries())if(m in d){let h=d[m];d[m]=Array.isArray(h)?[...h,u]:[h,u]}else d[m]=u;if(t){let m=await Ir(d,t);if(Object.keys(m).length>0){s?.(m);return}s?.({})}await r?.(d)},noValidate:t?!0:void 0},o)};import{h as yt}from"weifuwu/ui-dom";var Ar=(i,n)=>e=>{let{label:t,required:r,error:s,hint:o,children:a}=e,l=[];if(t){let c=[t];r&&c.push(yt("span",{class:"wf-field-req"},"*")),l.push(yt("label",{class:"wf-field-label"},c))}return l.push(a),s&&l.push(yt("div",{class:"wf-field-err"},s)),o&&!s&&l.push(yt("div",{class:"wf-field-hint"},o)),yt("div",{class:`wf-field${s?" wf-field--err":""}`},l)};import{h as nt}from"weifuwu/ui-dom";var Dr=(i,n)=>e=>{let{label:t,value:r=0,min:s=0,max:o=100,step:a=1,onChange:l}=e,c=Number(r),p=o>s?(c-s)/(o-s)*100:0,d=`linear-gradient(to right, var(--wf-color-primary) ${p}%, var(--wf-color-border) ${p}%)`,m=nt("input",{type:"range",class:"wf-slider-input",value:c,min:s,max:o,step:a,"aria-label":t,style:{background:d},onChange:l?h=>l(Number(h.target.value)):void 0}),u=nt("span",{class:"wf-slider-value"},String(c));return t?nt("div",{class:"wf-slider-wrap"},[nt("label",{class:"wf-slider-label"},t),nt("div",{class:"wf-slider"},[m,u])]):nt("div",{class:"wf-slider"},[m,u])};import{h as ot}from"weifuwu/ui-dom";var Rr=(i,n)=>e=>{let{value:t="",placeholder:r="\u641C\u7D22...",onInput:s,onClear:o}=e,a=t&&o?ot("button",{class:"wf-search-clear",type:"button","aria-label":"\u6E05\u9664",onClick:o},ot($,{name:"close"})):null,l=ot("span",{class:"wf-search-icon"},ot($,{name:"search"}));return ot("div",{class:"wf-search"},[l,ot("input",{class:"wf-search-input",type:"search",value:t,placeholder:r,onInput:s}),a].filter(Boolean))};import{h as Kn}from"weifuwu/ui-dom";var Or=(i,n)=>e=>{let{options:t,size:r="md",block:s,ariaLabel:o}=e,a=n?.ui?.useControlled({value:e.value,onChange:e.onChange,name:"SegmentedControl"}),l=p=>{let d=a?.controlled;a?.setValue(p),d||e.onChange?.(p)},c=["wf-segmented",r==="sm"&&"wf-segmented--sm",s&&"wf-segmented--block"].filter(Boolean).join(" ");return Kn("div",{class:c,role:"group","aria-label":o},t.map(p=>Kn("button",{type:"button",class:`wf-segmented-option${p.value===a?.value?" wf-segmented-option--active":""}`,"aria-pressed":p.value===a?.value?"true":"false",disabled:p.disabled||void 0,onClick:p.disabled?void 0:()=>l(p.value)},p.label)))};import{h as wt}from"weifuwu/ui-dom";var Br=(i,n)=>e=>{let{value:t,max:r=100,label:s,showValue:o,status:a="default",size:l="md"}=e,c=t==null,p=c?0:Math.min(100,Math.max(0,t/r*100)),d=n?.i18n?.components?.ProgressBar??{},m=wt("div",{class:`wf-progress wf-progress--${l}${c?" wf-progress--indeterminate":""}${a!=="default"?` wf-progress--${a}`:""}`,role:"progressbar","aria-valuenow":c?void 0:Math.round(t),"aria-valuemin":0,"aria-valuemax":Math.round(r),"aria-label":s??d.ariaLabel??"\u8FDB\u5EA6"},[wt("div",{class:`wf-progress-fill${a!=="default"?` wf-progress-fill--${a}`:""}`,style:c?void 0:{width:`${p}%`}})]);if(!s&&!o)return m;let u=[];return s&&u.push(wt("span",{class:"wf-progress-label"},s)),u.push(m),o&&!c&&u.push(wt("span",{class:"wf-progress-value"},`${Math.round(p)}%`)),wt("div",{class:"wf-progress-wrap"},u)};import{createClientBrowser as Nr}from"weifuwu/ui-dom";import{h as vt}from"weifuwu/ui-dom";var Hr=(i,n)=>{let e=n.browser??Nr(),t=n.ui.$();t.internalActive=[];let r=[],s=o=>{if(!o)return;let a=Number(o.dataset.idx);Number.isNaN(a)||(r[a]=o)};return o=>{let{items:a=[],active:l,onChange:c,multiple:p=!1}=o;t.internalActive.length===0&&a.length>0&&(t.internalActive=a.map(b=>b.key));let d=l!==void 0,m=d?l:t.internalActive,u=b=>m.includes(b),h=b=>{d?c?.(b):t.internalActive=b},f=b=>{u(b)?h(m.filter(w=>w!==b)):h(p?[...m,b]:[b])},g=b=>{let w=e?.activeElement()??null,v=r.indexOf(w);if(v<0)return;let C=v;if(b.key==="ArrowDown"||b.key==="ArrowRight")C=(v+1)%a.length;else if(b.key==="ArrowUp"||b.key==="ArrowLeft")C=(v-1+a.length)%a.length;else return;b.preventDefault(),r[C]?.focus()};if(a.length===0)return null;let y=a.map((b,w)=>{let v=u(b.key);return vt("div",{class:`wf-accordion-item${v?" wf-accordion-item--open":""}`,key:b.key},[vt("button",{type:"button",class:"wf-accordion-summary",ref:s,"data-idx":String(w),disabled:b.disabled||void 0,"aria-expanded":v?"true":"false",onClick:b.disabled?void 0:()=>f(b.key)},[b.title,vt($,{name:"chevron-down",size:14,className:"wf-accordion-arrow"})]),v&&b.content?vt("div",{class:"wf-accordion-content"},b.content):null].filter(Boolean))});return vt("div",{class:"wf-accordion",onKeyDown:g},y)}};import{h as xt}from"weifuwu/ui-dom";var zr=(i,n)=>e=>{let{title:t,sub:r,display:s,children:o}=e;return xt("div",{class:"wf-page-head"},[xt("div",{class:"wf-page-head-left"},[xt("h2",{class:`wf-page-title${s?" wf-page-title--display":""}`},t),r?xt("p",{class:"wf-page-sub"},r):null].filter(Boolean)),o?xt("div",{class:"wf-page-head-actions"},o):null].filter(Boolean))};import{h as Ct}from"weifuwu/ui-dom";var _r=(i,n)=>e=>{let{items:t}=e,r=t.flatMap((o,a)=>{let l=a===t.length-1,c=l?Ct("span",{class:"wf-breadcrumb-current","aria-current":"page"},o.label):o.href?Ct("a",{class:"wf-breadcrumb-link",href:o.href},o.label):Ct("span",{class:"wf-breadcrumb-text"},o.label);return l?c:[c,Ct("span",{class:"wf-breadcrumb-sep","aria-hidden":"true"},"/")]}),s=n?.i18n?.components?.Breadcrumb??{};return Ct("nav",{class:"wf-breadcrumb","aria-label":s.ariaLabel??"\u9762\u5305\u5C51"},r)};import{h as on}from"weifuwu/ui-dom";var Kr=(i,n)=>e=>{let{vertical:t,children:r}=e;return t?on("div",{class:"wf-divider wf-divider--vertical",role:"separator"}):on("div",{class:r?"wf-divider wf-divider--with-text":"wf-divider",role:"separator"},r?on("span",{class:"wf-divider-text"},r):void 0)};import{h as X}from"weifuwu/ui-dom";function jn(i){return i<1024?`${i}B`:i<1024*1024?`${(i/1024).toFixed(1)}KB`:`${(i/(1024*1024)).toFixed(1)}MB`}var rn=(i,n)=>{let e=n?.i18n?.components?.FileUpload??{},t=null,r=u=>{u&&(t=u)},s=new Map,o=u=>`${u.name}:${u.size}`,a=u=>{if(!u.type.startsWith("image/"))return;let h=o(u),f=s.get(h);return!f&&typeof URL<"u"&&URL.createObjectURL&&(f=URL.createObjectURL(u),s.set(h,f)),f},l=u=>{if(!u){for(let h of s.values())URL.revokeObjectURL?.(h);s.clear()}},c=!1,p={...i},d=!1,{dropProps:m}=n.ui.useDragDrop({onDrop:u=>{if(d=!1,n.ui.render(),p.disabled)return;let h=Array.from(u.dataTransfer?.files??[]);p.maxSize&&h.filter(g=>g.size>p.maxSize).length>0||p.onChange?.(h)},onDragOver:()=>{d||(d=!0,n.ui.render())},onDragLeave:()=>{d&&(d=!1,n.ui.render())}});return u=>{Object.assign(p,u);let{accept:h,multiple:f,maxSize:g,disabled:y,error:b,hint:w,value:v,onChange:C,children:T,uploading:P,progress:M}=u,I=v??[];v!==void 0&&!C&&!c&&(c=!0,console.warn(`[weifuwu/FileUpload] value \u5DF2\u4F20\uFF08\u53D7\u63A7\uFF09\u4F46\u672A\u63D0\u4F9B onChange\u2014\u2014\u9009\u62E9/\u5220\u9664\u65E0\u6CD5\u751F\u6548\u3002
2
2
  \u4F20 onChange \u6216\u7701\u7565 value \u4F7F\u7528\u975E\u53D7\u63A7\u6A21\u5F0F\u3002`));let N=k=>{let x=k.target,R=Array.from(x.files??[]);g&&R.filter(S=>S.size>g).length>0||(C?.(R),x.value="")},L=k=>{let x=I.filter((R,B)=>B!==k);C?.(x)},D=X("input",{type:"file",class:"wf-upload-input",accept:h||void 0,multiple:f||void 0,disabled:y||void 0,onChange:N,style:{display:"none"},ref:r}),O=X("div",{class:`wf-upload-zone${y?" wf-upload-zone--disabled":""}${b?" wf-upload-zone--err":""}${d?" wf-upload-zone--drag":""}`,onClick:y?void 0:()=>t?.click(),...m},T??X("div",{class:"wf-upload-placeholder"},[X("span",{class:"wf-upload-icon"},"\u{1F4C1}"),X("span",{class:"wf-upload-text"},e.placeholder??"\u70B9\u51FB\u6216\u62D6\u62FD\u4E0A\u4F20\u6587\u4EF6"),h?X("span",{class:"wf-upload-hint"},`${e.supportedFormats??"\u652F\u6301\u683C\u5F0F: "}${h}`):null,g?X("span",{class:"wf-upload-hint"},`${e.maxSize??"\u6700\u5927 "}${jn(g)}`):null].filter(Boolean))),z=I.length>0?X("ul",{class:"wf-upload-list"},I.map((k,x)=>{let R=a(k),B=[R?X("img",{class:"wf-upload-thumb",src:R,alt:k.name}):null,X("span",{class:"wf-upload-item-info"},[X("span",{class:"wf-upload-item-name"},k.name),X("span",{class:"wf-upload-item-size"},jn(k.size))]),X("button",{class:"wf-upload-item-remove","aria-label":`${e.remove??"\u5220\u9664"} ${k.name}`,onClick:()=>L(x)},X($,{name:"trash"}))];return X("li",{class:"wf-upload-item",key:k.name+k.size},B.filter(Boolean))})):null,H=P?X("div",{class:"wf-upload-progress",role:"progressbar","aria-valuenow":M??0},X("div",{class:"wf-upload-progress-fill",style:{width:`${M??0}%`}})):null,E=[D,O,z,H];return b&&E.push(X("div",{class:"wf-upload-err"},b)),w&&!b&&E.push(X("div",{class:"wf-upload-hint"},w)),X("div",{class:"wf-upload",ref:l},E)}};import{h as Ot}from"weifuwu/ui-dom";var jr=(i,n)=>{let e=!1,t="top",r=!1,s=null,o=l=>{l&&(s=l)},a=n.ui.usePopup({trigger:"hover",placement:()=>t,gap:6,el:()=>s,isOpen:()=>e,setOpen:l=>{e=l,n.ui.render()},disabled:()=>r});return l=>{let{content:c,position:p="top",children:d}=l;t=p,r=!!l.disabled;let m=Ot("div",{class:`wf-tooltip wf-tooltip--${p}`,role:"tooltip"},[Ot("div",{class:"wf-tooltip-arrow"}),Ot("div",{class:"wf-tooltip-content"},c)]);return Ot("div",{class:"wf-tooltip-wrap",ref:o,"aria-haspopup":"tooltip",...a.wrapProps},[d,a.portal(m,"tooltip")].filter(Boolean))}};import{h as He,createPortal as Wr}from"weifuwu/ui-dom";var Vr=(i,n)=>{let e=n.ui.useDialog({name:"Drawer"});return t=>{let{open:r,title:s,position:o="right",onClose:a,children:l,footer:c,width:p}=t,d=n?.i18n?.components?.Drawer??{},m=e.sync(!!r);if(m==="closed")return null;let u=He("div",{class:"wf-drawer-overlay",onClick:a}),h=He("button",{class:"wf-drawer-close",onClick:a,type:"button","aria-label":d.closeAria??"\u5173\u95ED"},He($,{name:"close"})),f=s?He("div",{class:"wf-drawer-header"},[s,h]):null,g=He("div",{class:"wf-drawer-body"},l),y=c?He("div",{class:"wf-drawer-footer"},c):null,b=He("div",{class:`wf-drawer-panel wf-drawer-panel--${o}`,style:p?{"--wf-drawer-width":p}:void 0,ref:e.panelRef,onClick:v=>v.stopPropagation()},[f,g,y].filter(Boolean)),w=He("div",{ref:e.rootRef,class:`wf-drawer wf-drawer--${o} ${m==="exit"?"wf-drawer--exit":"wf-drawer--enter"}`,role:"dialog","aria-modal":"true","aria-label":s??d.ariaLabel??"\u4FA7\u8FB9\u9762\u677F",tabIndex:-1,onKeyDown:v=>{v.key==="Escape"&&a?.()}},[u,b]);return Wr(w,"drawer")}};import{h as Bt}from"weifuwu/ui-dom";var kt=(i,n)=>{let e="bottom",t="click",r=!1,s=null,o=c=>{c&&(s=c)},a=null,l=n.ui.usePopup({trigger:()=>t,placement:()=>e,gap:6,el:()=>s,isOpen:()=>a?.open??!1,setOpen:c=>a?.setOpen(c),disabled:()=>r});return c=>{let{content:p,position:d="bottom",trigger:m="click",children:u}=c;e=d,t=m,a=n.ui.useOpen({open:c.open,onOpenChange:c.onOpenChange,name:"Popover"}),r=!!c.disabled;let h=Bt("div",{class:`wf-popover wf-popover--${d} wf-popover--enter`,role:"tooltip"},[Bt("div",{class:"wf-popover-arrow"}),Bt("div",{class:"wf-popover-content"},p)]);return Bt("div",{class:`wf-popover-wrap${a?.open?" wf-popover-wrap--open":""}`,ref:o,"aria-haspopup":"dialog","aria-expanded":String(!!a?.open),...l.wrapProps},[u,l.portal(h,"popover")].filter(Boolean))}};import{h as rt,Fragment as Fr}from"weifuwu/ui-dom";var Gr=i=>n=>{let{variant:e="text",lines:t=1,cols:r=3,width:s,height:o,className:a}=n,l={};s!==void 0&&(l.width=typeof s=="number"?`${s}px`:s),o!==void 0&&(l.height=typeof o=="number"?`${o}px`:o);let c=["wf-skeleton",`wf-skeleton--${e}`,a].filter(Boolean).join(" ");if(e==="table"){let d=Array.from({length:t},(m,u)=>{let h=Array.from({length:r},(f,g)=>{let y=u===t-1&&g===r-1?"40%":void 0;return rt("div",{class:"wf-skeleton wf-skeleton--text",style:y?{width:y}:void 0})});return rt("div",{class:"wf-skeleton-row"},h)});return rt("div",{class:"wf-skeleton-table"},d)}if(t<=1)return rt("div",{class:c,style:Object.keys(l).length?l:void 0});let p=Array.from({length:t},(d,m)=>{let u=m===t-1&&t>1?`${c} wf-skeleton--short`:c;return rt("div",{class:u,style:Object.keys(l).length?l:void 0})});return rt(Fr,null,p)};import{h as st,createPortal as qr}from"weifuwu/ui-dom";var Ur=(i,n)=>{let e=!1,t=1,r=()=>{e&&(e=!1,t=1,n.ui.render())};return n.ui.useGlobalKey(s=>{s.key==="Escape"&&e&&r()}),s=>{let{src:o,alt:a="",fallback:l,loading:c,width:p,height:d,className:m,style:u,preview:h,previewScale:f=1}=s,g={class:["wf-image",m].filter(Boolean).join(" "),src:o??l??"",alt:a,loading:c??"lazy"};if(p!==void 0&&(g.width=p),d!==void 0&&(g.height=d),u&&(g.style=u),l&&(g.onError=b=>{let w=b.currentTarget;w.src!==l&&(w.src=l)}),!h)return st("img",g);let y=e?qr(st("div",{class:"wf-img-preview-overlay",onClick:b=>{b.target===b.currentTarget&&r()}},st("img",{class:"wf-img-preview-image",src:o??l??"",alt:a,style:{transform:`scale(${t*f})`,maxWidth:"90vw",maxHeight:"90vh"},onClick:b=>{b.stopPropagation(),t=t===1?2:1,n.ui.render()}})),"popover"):null;return st("div",{class:"wf-img-preview-wrap"},[st("button",{type:"button",class:"wf-img-preview-trigger","aria-label":"\u653E\u5927\u9884\u89C8",onClick:()=>{e=!0,n.ui.render()}},st("img",g)),y].filter(Boolean))}};import{h as Nt}from"weifuwu/ui-dom";var Yr=(i,n)=>{let e=!1,t={once:!0},r=n.ui.useInView({rootMargin:()=>t.rootMargin??"0px",threshold:()=>t.threshold??0}),s=o=>{o?r.observe(o):r.disconnect()};return o=>{if(Object.assign(t,o),r.isIn)return e||(e=!0,o.once!==!1&&r.disconnect(),o.onEnter?.()),Nt("div",{class:"wf-inview wf-inview--loaded"},o.children);let a=o.placeholder!==void 0?o.placeholder:Nt("div",{class:"wf-inview-placeholder"});return Nt("div",{class:"wf-inview wf-inview--pending"},[Nt("div",{class:"wf-inview-pending",style:{width:"1px",height:"1px",opacity:0,pointerEvents:"none"},ref:s}),a])}};import{createClientBrowser as Zr}from"weifuwu/ui-dom";import{h as _,createPortal as Jr}from"weifuwu/ui-dom";var Qr=["\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"];function Ht(){return Qr}function Wn(i,n){return new Date(i,n+1,0).getDate()}function Xr(i,n){return new Date(i,n,1).getDay()}function Mt(i,n){let e=[],t=Wn(i,n),r=Xr(i,n),s=n===0?11:n-1,o=n===0?i-1:i,a=Wn(o,s),l=new Date,c=[];for(let u=r-1;u>=0;u--){let h=a-u;c.push({year:o,month:s,day:h,isOtherMonth:!0,isToday:o===l.getFullYear()&&s===l.getMonth()&&h===l.getDate()})}for(let u=1;u<=t;u++)c.push({year:i,month:n,day:u,isOtherMonth:!1,isToday:i===l.getFullYear()&&n===l.getMonth()&&u===l.getDate()}),c.length===7&&(e.push(c),c=[]);let p=n===11?0:n+1,d=n===11?i+1:i,m=1;for(;e.length<6;){for(;c.length<7;)c.push({year:d,month:p,day:m++,isOtherMonth:!0,isToday:d===l.getFullYear()&&p===l.getMonth()&&m-1===l.getDate()});e.push(c),c=[]}return e}function $e(i,n,e){return`${i}-${String(n+1).padStart(2,"0")}-${String(e).padStart(2,"0")}`}function sn(i,n){return`${String(i).padStart(2,"0")}:${String(n).padStart(2,"0")}`}function Vn(i,n,e,t,r){return`${$e(i,n,e)} ${sn(t,r)}`}function an(){return Array.from({length:24},(i,n)=>n)}function ln(){return Array.from({length:12},(i,n)=>n*5)}var es=(i,n)=>{let e=n.browser??Zr(),t=!1,r="",s=new Date,o=s.getFullYear(),a=s.getMonth(),l=s.getHours(),c=Math.round(s.getMinutes()/5)*5,p=s.getFullYear(),d=s.getMonth(),m=s.getDate(),u=null,h=null,f=null,g=P=>{f=P},y=!1,b=n.ui.usePopupPosition({el:()=>f,isOpen:()=>t,compute:P=>({top:P.bottom+4,left:P.left,width:P.width}),panel:()=>w,margin:4}),w=null,v=n.ui.useAnimationEnd(()=>{b.refresh(),n.ui.render()},{once:!0}),C,T=P=>{P?(w=P,v(P),C=setTimeout(()=>{b.refresh(),n.ui.render()},400)):(w=null,clearTimeout(C))};return P=>{let M=n?.i18n?.components?.DatePicker??{},{mode:I="date",value:N,onChange:L,placeholder:D=M.placeholder??"\u9009\u62E9\u65E5\u671F",disabled:O}=P,z=t,H=j=>{t=j,n.ui.render()};t&&!y&&b.refresh(),y=t;let E=j=>{O||H(!t)},k=j=>{if(I==="datetime")p=j.year,d=j.month,m=j.day,o=j.year,a=j.month,n.ui.render();else if(I==="range")if(!u||u&&h)u=$e(j.year,j.month,j.day),h=null,n.ui.render();else{h=$e(j.year,j.month,j.day);let ie=u<h?u:h,A=u<h?h:u;r=`${ie} ~ ${A}`,L?.(r),H(!1)}else r=$e(j.year,j.month,j.day),L?.(r),H(!1)},x=()=>{a===0?(o--,a=11):a--,n.ui.render()},R=()=>{a===11?(o++,a=0):a++,n.ui.render()},B=()=>{r=sn(l,c),L?.(r),H(!1)},S=()=>{r=Vn(p,d,m,l,c),L?.(r),H(!1)},W=Mt(o,a),U=[M.w0,M.w1,M.w2,M.w3,M.w4,M.w5,M.w6].some(j=>j)?[M.w0,M.w1,M.w2,M.w3,M.w4,M.w5,M.w6]:Ht(),G=(j,ie,A)=>_("button",{class:"wf-datepicker-header-btn",type:"button","aria-label":ie,onClick:A},_($,{name:j})),Ke=_("div",{class:"wf-datepicker-header"},[G("chevron-left",M.prevMonth??"\u4E0A\u4E2A\u6708",x),_("span",{class:"wf-datepicker-header-title"},`${o}\u5E74${a+1}\u6708`),G("chevron-right",M.nextMonth??"\u4E0B\u4E2A\u6708",R)]),Re=_("div",{class:"wf-datepicker-weekdays"},U.map(j=>_("span",{class:"wf-datepicker-weekday"},j))),V=W.map((j,ie)=>_("div",{class:"wf-datepicker-grid",key:`row-${ie}`},j.map((A,F)=>{let J=["wf-datepicker-cell"];A.isOtherMonth&&J.push("wf-datepicker-cell--other-month"),A.isToday&&J.push("wf-datepicker-cell--today");let ce=$e(A.year,A.month,A.day);return I==="range"?ce===u||ce===h?J.push("wf-datepicker-cell--range-edge"):u&&h&&ce>u&&ce<h&&J.push("wf-datepicker-cell--in-range"):I==="datetime"?p===A.year&&d===A.month&&m===A.day&&J.push("wf-datepicker-cell--selected"):ce===r&&J.push("wf-datepicker-cell--selected"),_("button",{class:J.join(" "),key:`${A.year}-${A.month}-${A.day}`,type:"button",onClick:()=>k(A)},String(A.day))}))),Qt=_("div",{class:"wf-datepicker-range-panel"},[Ke,Re,...V]),St=j=>{if(j.key==="Escape"){H(!1);return}if(I==="time"||I==="datetime"||!["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(j.key))return;let ie=j.currentTarget,A=Array.from(ie.querySelectorAll(".wf-datepicker-cell")),F=A.indexOf(e?.activeElement()??null);if(F<0)return;j.preventDefault();let J=7,ce=F;j.key==="ArrowLeft"?ce--:j.key==="ArrowRight"?ce++:j.key==="ArrowUp"?ce-=J:j.key==="ArrowDown"&&(ce+=J),ce>=0&&ce<A.length&&A[ce].focus()},ut=_("div",{class:"wf-datepicker-overlay",onMouseDown:()=>H(!1)}),Ye=null;if(z)if(I==="time"){let j=an(),ie=ln(),A=_("div",{style:{position:"fixed",top:b.top,left:b.left,width:b.width},class:"wf-time-picker",role:"dialog",ref:T,onKeyDown:St,onMouseDown:F=>F.stopPropagation()},[_("div",{class:"wf-time-body"},[_("div",{class:"wf-time-col"},[_("div",{class:"wf-time-col-label"},M.hour??"\u65F6"),_("div",{class:"wf-time-opt-list"},j.map(F=>_("button",{class:`wf-time-opt${F===l?" wf-time-opt--selected":""}`,type:"button",key:F,onClick:()=>{l=F,n.ui.render()}},String(F).padStart(2,"0"))))]),_("div",{class:"wf-time-col"},[_("div",{class:"wf-time-col-label"},M.minute??"\u5206"),_("div",{class:"wf-time-opt-list"},ie.map(F=>_("button",{class:`wf-time-opt${F===c?" wf-time-opt--selected":""}`,type:"button",key:F,onClick:()=>{c=F,n.ui.render()}},String(F).padStart(2,"0"))))])]),_("div",{class:"wf-time-footer"},[_("button",{class:"wf-datepicker-footer-btn",type:"button",onClick:()=>H(!1)},M.cancel??"\u53D6\u6D88"),_("button",{class:"wf-datepicker-footer-btn",type:"button",onClick:B},M.confirm??"\u786E\u5B9A")])]);Ye=[ut,A]}else if(I==="range"){let j=a===11?0:a+1,ie=a===11?o+1:o,A=Mt(ie,j),F=_("div",{style:{position:"fixed",top:b.top,left:b.left},class:"wf-datepicker-range-wrap",ref:T,onMouseDown:J=>J.stopPropagation()},[_("div",{class:"wf-datepicker-range-panel"},[_("div",{class:"wf-datepicker-header"},[G("chevron-left",M.prevMonth??"\u4E0A\u4E2A\u6708",x),_("span",{class:"wf-datepicker-header-title"},`${o}\u5E74${a+1}\u6708`),_("span",{class:"wf-datepicker-header-title"})]),Re,...V]),_("div",{class:"wf-datepicker-range-panel"},[_("div",{class:"wf-datepicker-header"},[_("span",{class:"wf-datepicker-header-title"}),_("span",{class:"wf-datepicker-header-title"},`${ie}\u5E74${j+1}\u6708`),G("chevron-right",M.nextMonth??"\u4E0B\u4E2A\u6708",R)]),_("div",{class:"wf-datepicker-weekdays"},U.map(J=>_("span",{class:"wf-datepicker-weekday"},J))),...A.map((J,ce)=>_("div",{class:"wf-datepicker-grid",key:`row-${ce}`},J.map(je=>{let dt=$e(je.year,je.month,je.day),ft=["wf-datepicker-cell"];return je.isOtherMonth&&ft.push("wf-datepicker-cell--other-month"),je.isToday&&ft.push("wf-datepicker-cell--today"),dt===u||dt===h?ft.push("wf-datepicker-cell--range-edge"):u&&h&&dt>u&&dt<h&&ft.push("wf-datepicker-cell--in-range"),_("button",{class:ft.join(" "),key:dt,type:"button",onClick:()=>k(je)},String(je.day))})))])]);Ye=[ut,F]}else{let j=[Qt];I==="datetime"&&(j.push(_("div",{class:"wf-datetime-time"},[_("span",{class:"wf-datetime-time-label"},(M.time??"\u65F6\u95F4")+"\uFF1A"),_("div",{class:"wf-datetime-time-select"},[_("select",{class:"wf-datetime-select",value:l,onChange:A=>{l=parseInt(A.target.value),n.ui.render()}},an().map(A=>_("option",{value:A,key:A},String(A).padStart(2,"0")))),_("span",{class:"wf-datetime-sep"},":"),_("select",{class:"wf-datetime-select",value:c,onChange:A=>{c=parseInt(A.target.value),n.ui.render()}},ln().map(A=>_("option",{value:A,key:A},String(A).padStart(2,"0"))))])])),j.push(_("div",{class:"wf-time-footer"},[_("button",{class:"wf-datepicker-footer-btn",type:"button",onClick:S},M.confirm??"\u786E\u5B9A")])));let ie=_("div",{style:{position:"fixed",top:b.top,left:b.left,width:b.width},class:"wf-datepicker-dropdown",role:"dialog",ref:T,onKeyDown:St,onMouseDown:A=>A.stopPropagation()},j);Ye=[ut,ie]}let Qe=z?Jr(Ye,"dp-calendar"):null;return _("div",{class:`wf-datepicker${O?" wf-datepicker--disabled":""}`},[_("input",{class:"wf-datepicker-input",type:"text",placeholder:D,value:(N??r??"")||"",ref:g,readonly:!0,disabled:O,role:"combobox","aria-haspopup":"dialog","aria-expanded":String(z),onClick:E}),Qe].filter(Boolean))}};import{h as q}from"weifuwu/ui-dom";function Pt(i,n){let e=(t=>{let r=(t-i[0])/(i[1]-i[0]);return n[0]+r*(n[1]-n[0])});return e.domain=i,e.range=n,e.invert=t=>{let r=(t-n[0])/(n[1]-n[0]);return i[0]+r*(i[1]-i[0])},e}function Gn(i,n,e){return i.length===0?"":i.map((t,r)=>{let s=n(r),o=e(t.value);return r===0?`M${s},${o}`:`L${s},${o}`}).join(" ")}function qn(i,n,e,t){if(i.length===0)return"";let r=i.map((a,l)=>{let c=n(l),p=e(a.value);return`${c},${p}`}),s=n(0),o=n(i.length-1);return`M${s},${t}L${r.join("L")}L${o},${t}Z`}function Un(i,n,e,t){let r=t??Math.max(4,(n.range[1]-n.range[0])/i.length*.6);return i.map((s,o)=>({x:n(o)-r/2,y:e(Math.max(0,s.value)),width:r,height:Math.abs(e(s.value)-e(0)),color:s.color??Tt(o),label:s.label,value:s.value}))}function Yn(i,n,e,t){let r=i.reduce((o,a)=>o+Math.abs(a.value),0);if(r===0)return[];let s=-Math.PI/2;return i.map((o,a)=>{let l=Math.abs(o.value)/r*Math.PI*2,c=s+l,p=ts(n,e,t,s,c),d=s+l/2;return s=c,{d:p,color:o.color??Tt(a),label:o.label,value:o.value,centroid:{x:n+Math.cos(d)*t*.6,y:e+Math.sin(d)*t*.6}}})}function ts(i,n,e,t,r){let s=i+e*Math.cos(t),o=n+e*Math.sin(t),a=i+e*Math.cos(r),l=n+e*Math.sin(r),c=r-t>Math.PI?1:0;return`M${i},${n}L${s},${o}A${e},${e} 0 ${c} 1 ${a},${l}Z`}var Fn=["#3b82f6","#ef4444","#22c55e","#f59e0b","#8b5cf6","#ec4899","#06b6d4","#84cc16"];function Tt(i){return Fn[i%Fn.length]}function cn(i,n=5){let[e,t]=i.domain,r=(t-e)/n,s=[];for(let o=0;o<=n;o++){let a=e+r*o;s.push({value:a,y:i(a),label:ns(a)})}return s}function ns(i){return Math.abs(i)>=1e6?(i/1e6).toFixed(1)+"M":Math.abs(i)>=1e3?(i/1e3).toFixed(1)+"k":String(Math.round(i))}var os=(i,n)=>{let e=null,t=null,r=!1,s=n.ui.usePopupPosition({el:()=>t,isOpen:()=>e!==null,compute:o=>({top:o.top-8,left:o.left+o.width/2})});return o=>{let{type:a="line",data:l,options:c={},title:p,area:d,className:m}=o,u=c.width??320,h=c.height??200,f=c.padding??32,g=u-f*2,y=h-f*2,b=l.map(O=>O.value),w=Math.min(0,...b),v=Math.max(...b),C=v-w||1,T=()=>{let O=Math.max(1,l.length-1),z=Pt([-.5,O+.5],[0,g]),H=Pt([w,v],[y,0]),E=cn(H),k=Gn(l,z,H),x=d?qn(l,z,H,H(0)):null,R=l.map((B,S)=>{let W=z(S)+f,U=H(B.value)+f;return q("circle",{key:`dot-${S}`,cx:W,cy:U,r:3,fill:B.color??Tt(S),stroke:"#fff","stroke-width":1.5,style:{cursor:"pointer"},onMouseEnter:G=>{t=G.target,e={label:B.label,value:B.value},n.ui.render()},onMouseLeave:()=>{t=null,e=null,n.ui.render()}})});return q("svg",{style:{width:"100%"},height:h,viewBox:`0 0 ${u} ${h}`},[...E.map((B,S)=>q("g",{key:`tick-${S}`},[q("line",{x1:f,y1:B.y+f,x2:u-f,y2:B.y+f,stroke:"#e5e7eb","stroke-width":1}),q("text",{x:f-6,y:B.y+f+4,"text-anchor":"end",fill:"#6b7280","font-size":"11","font-family":"var(--wf-font-sans)"},B.label)])),...x?[q("path",{key:"area",d:x,fill:"#3b82f620",stroke:"none",transform:`translate(${f},${f})`})]:[],q("path",{key:"line",d:k,fill:"none",stroke:"#3b82f6","stroke-width":2,"stroke-linejoin":"round","stroke-linecap":"round",transform:`translate(${f},${f})`}),...l.map((B,S)=>{let W=z(S)+f;return q("text",{key:`xlabel-${S}`,x:W,y:h-f+14,"text-anchor":"middle",fill:"#6b7280","font-size":"10","font-family":"var(--wf-font-sans)"},B.label)}),...R])},P=()=>{let O=Math.max(1,l.length-1),z=Pt([-.5,O+.5],[0,g]),H=Pt([w,v],[y,0]),E=cn(H),k=Un(l,z,H);return q("svg",{style:{width:"100%"},height:h,viewBox:`0 0 ${u} ${h}`},[...E.map((x,R)=>q("g",{key:`tick-${R}`},[q("line",{x1:f,y1:x.y+f,x2:u-f,y2:x.y+f,stroke:"#e5e7eb","stroke-width":1}),q("text",{x:f-6,y:x.y+f+4,"text-anchor":"end",fill:"#6b7280","font-size":"11","font-family":"var(--wf-font-sans)"},x.label)])),...k.map((x,R)=>q("rect",{key:`bar-${R}`,x:x.x+f,y:x.y+f,width:x.width,height:x.height,fill:x.color,rx:2,onMouseEnter:B=>{t=B.target,e={label:x.label,value:x.value},n.ui.render()},onMouseLeave:()=>{t=null,e=null,n.ui.render()}})),...l.map((x,R)=>{let B=z(R)+f;return q("text",{key:`xlabel-${R}`,x:B,y:h-f+14,"text-anchor":"middle",fill:"#6b7280","font-size":"10","font-family":"var(--wf-font-sans)"},x.label)})])},M=()=>{let O=u/2,z=h/2,H=Math.min(g,y)/2-4,E=Yn(l,O,z,H);return q("svg",{style:{width:"100%"},height:h,viewBox:`0 0 ${u} ${h}`},[...E.map((k,x)=>q("g",{key:`arc-${x}`},[q("path",{d:k.d,fill:k.color,stroke:"#fff","stroke-width":1.5,onMouseEnter:R=>{t=R.target,e={label:k.label,value:k.value},n.ui.render()},onMouseLeave:()=>{t=null,e=null,n.ui.render()}}),...k.value/l.reduce((R,B)=>R+Math.abs(B.value),0)>.05?[q("text",{x:k.centroid.x,y:k.centroid.y+3,"text-anchor":"middle",fill:"#fff","font-size":"11","font-weight":"bold","font-family":"var(--wf-font-sans)"},`${Math.round(k.value/l.reduce((R,B)=>R+Math.abs(B.value),0)*100)}%`)]:[]]))])},I;a==="bar"?I=P():a==="pie"?I=M():I=T();let N=l.length>1?q("div",{class:"wf-chart-legend"},l.map((O,z)=>q("span",{class:"wf-chart-legend-item",key:`leg-${z}`},[q("span",{class:"wf-chart-legend-dot",style:{background:O.color??Tt(z)}}),q("span",{class:"wf-chart-legend-label"},O.label)]))):null,L=e!==null;L&&!r&&s.refresh(),r=L;let D=e?q("div",{class:"wf-chart-tooltip",style:{position:"fixed",left:s.left,top:s.top}},[q("div",{class:"wf-chart-tooltip-label"},e.label),q("div",{class:"wf-chart-tooltip-value"},String(e.value))]):null;return q("div",{class:`wf-chart${m?" "+m:""}`,role:"img","aria-label":p??n?.i18n?.components?.Chart?.ariaLabel??"\u56FE\u8868"},[p?q("div",{class:"wf-chart-title"},p):null,I,N,D].filter(Boolean))}};import{createClientBrowser as ps}from"weifuwu/ui-dom";import{h as Z}from"weifuwu/ui-dom";import{createClientBrowser as rs}from"weifuwu/ui-dom";var ze=rs();function Fe(){let i={};try{i.bold=ze.queryCommandState("bold"),i.italic=ze.queryCommandState("italic"),i.underline=ze.queryCommandState("underline");let n=ze.queryCommandValue("formatBlock");i.h1=n==="h1"||n==="H1",i.h2=n==="h2"||n==="H2",i.h3=n==="h3"||n==="H3",i.blockquote=n==="blockquote"||n==="BLOCKQUOTE",i.alignLeft=ze.queryCommandState("justifyLeft"),i.alignCenter=ze.queryCommandState("justifyCenter"),i.alignRight=ze.queryCommandState("justifyRight")}catch{}return i}function ee(i,n){try{ze.execCommand(i,n)}catch{}}function Qn(i){switch(i){case"bold":ee("bold");break;case"italic":ee("italic");break;case"underline":ee("underline");break;case"h1":ee("formatBlock","<h1>");break;case"h2":ee("formatBlock","<h2>");break;case"h3":ee("formatBlock","<h3>");break;case"ul":ee("insertUnorderedList");break;case"ol":ee("insertOrderedList");break;case"blockquote":ee("formatBlock","<blockquote>");break;case"alignLeft":ee("justifyLeft");break;case"alignCenter":ee("justifyCenter");break;case"alignRight":ee("justifyRight");break;case"hr":ee("insertHorizontalRule");break;case"image":break;case"link":break;case"clear":ee("removeFormat"),ee("formatBlock","<div>");break;case"source":break}}import{h as pn}from"weifuwu/ui-dom";var to=["bold","italic","underline","h1","h2","h3","ul","ol","blockquote","alignLeft","alignCenter","alignRight","hr","image","table","link","clear","source"],ss={bold:"B",italic:"I",underline:"U",h1:"H1",h2:"H2",h3:"H3",ul:"\u25A1",ol:"1.",blockquote:"\u275D",alignLeft:"\u21E4",alignCenter:"\u21D4",alignRight:"\u21E5",hr:"\u2014",image:"\u{1F5BC}",table:"\u229E",link:"\u{1F517}",clear:"\u2715",source:"</>"},Xn={bold:"\u52A0\u7C97 (Ctrl+B)",italic:"\u659C\u4F53 (Ctrl+I)",underline:"\u4E0B\u5212\u7EBF (Ctrl+U)",h1:"\u6807\u9898 1",h2:"\u6807\u9898 2",h3:"\u6807\u9898 3",ul:"\u65E0\u5E8F\u5217\u8868",ol:"\u6709\u5E8F\u5217\u8868",blockquote:"\u5F15\u7528",alignLeft:"\u5DE6\u5BF9\u9F50",alignCenter:"\u5C45\u4E2D",alignRight:"\u53F3\u5BF9\u9F50",hr:"\u5206\u5272\u7EBF",image:"\u63D2\u5165\u56FE\u7247",table:"\u63D2\u5165\u8868\u683C",link:"\u63D2\u5165\u94FE\u63A5",clear:"\u6E05\u9664\u683C\u5F0F",source:"\u6E90\u7801"},as=["bold","italic","underline"],Zn=["h1","h2","h3"],Jn=["ul","ol"],eo=["blockquote","alignLeft","alignCenter","alignRight","hr"],is=["image","table","link","clear"];function ls(i,n){return as.includes(i)&&Zn.includes(n)||Zn.includes(i)&&Jn.includes(n)||Jn.includes(i)&&eo.includes(n)||eo.includes(i)&&is.includes(n)||["link","clear"].includes(i)&&n==="source"}function no(i,n,e,t,r){let s=i.map(a=>{if(r?.[a])return r[a](a);let p=["wf-editor-tb-btn",(a==="source"?e:!!n[a])&&"wf-editor-tb-btn--active",a==="link"&&"wf-editor-tb-btn--link"].filter(Boolean).join(" ");return pn("button",{key:a,class:p,type:"button",title:Xn[a],"aria-label":Xn[a],"data-item":a,onClick:()=>t(a)},ss[a])}),o=[];return i.forEach((a,l)=>{l>0&&ls(i[l-1],a)&&o.push(pn("span",{class:"wf-editor-tb-sep",key:`sep-${l}`})),o.push(s[l])}),pn("div",{class:"wf-editor-toolbar",role:"toolbar","aria-label":"\u7F16\u8F91\u683C\u5F0F"},o)}import{h as $t}from"weifuwu/ui-dom";import{createClientBrowser as cs}from"weifuwu/ui-dom";var at=cs(),oo=6;function ro(i,n){let e=at.getSelection();if(!e||!e.rangeCount)return;let t=e.getRangeAt(0);if(!t)return;let r=at.createElement("table"),s=at.createElement("tbody");if(!r||!s)return;r.className="wf-editor-table";for(let a=0;a<i;a++){let l=at.createElement("tr");if(l){for(let c=0;c<n;c++){let p=at.createElement("td");p&&(a===0&&(p.style.fontWeight="var(--wf-font-weight-semibold,600)"),p.innerHTML="&nbsp;",l.appendChild(p))}s.appendChild(l)}}r.appendChild(s);let o=at.createElement("div");o&&(o.appendChild(r),t.deleteContents(),t.insertNode(o),t.setStartAfter(o),t.collapse(!0),e.removeAllRanges(),e.addRange(t))}function so(i,n,e,t,r){let s=$t("div",{class:"wf-editor-table-grid",onMouseLeave:r},Array.from({length:oo},(a,l)=>$t("div",{class:"wf-editor-table-grid-row",key:`r${l}`},Array.from({length:oo},(c,p)=>{let d=l<=i&&p<=n;return $t("div",{class:`wf-editor-table-grid-cell${d?" wf-editor-table-grid-cell--active":""}`,key:`${l}-${p}`,onMouseEnter:()=>t(l,p),onClick:()=>e(l+1,p+1)})})))),o=i>=0&&n>=0?`${i+1} \xD7 ${n+1} \u8868\u683C`:"\u9009\u62E9\u8868\u683C\u5927\u5C0F";return $t("div",{class:"wf-editor-table-picker",onMouseDown:a=>a.stopPropagation()},[s,$t("div",{class:"wf-editor-table-picker-label"},o)])}function us(i,n){if(i===n)return!0;if(!i||!n)return!1;let e=Object.keys(i);if(e.length!==Object.keys(n).length)return!1;for(let t of e)if(i[t]!==n[t])return!1;return!0}var ds=(i,n)=>{let e=n.browser??ps(),t=null,r=!1,s="",o="rich",a=!1,l="",c=!1,p=!1,d=-1,m=-1,u="",h=null,f=w=>{w&&(h=w)},g=null,y=()=>{let w=e?.getSelection();w&&w.rangeCount>0&&(g=w.getRangeAt(0))},b=()=>{if(!h||!g)return;h.focus();let w=e?.getSelection();w&&(w.removeAllRanges(),w.addRange(g))};return w=>{let{value:v="",onChange:C,onUpload:T,placeholder:P="",disabled:M=!1,minHeight:I="200px"}=w,N=w.toolbar??to,L=o==="rich",D=A=>{C?.(A)},O=A=>{if(!M){if(A==="source"){L?(u=h?.innerHTML??v,o="source",n.ui.render()):(o="rich",t={},n.ui.render(),C?.(v));return}if(L){if(A==="image"){a=!0,l="",n.ui.render();return}if(A==="link"){y();let F=e?.getSelection();if(!F||F.isCollapsed){r=!0,s="",n.ui.render();return}e?.execCommand("createLink")?(ee("unlink"),t=Fe(),n.ui.render()):(r=!0,s="",n.ui.render());return}Qn(A),t=Fe(),n.ui.render(),h&&C&&D(h.innerHTML)}}},z=A=>{r=!1,n.ui.render(),A&&(h?.focus(),ee("createLink",A),t=Fe(),h&&C&&D(h.innerHTML))},H=()=>{r=!1,s="",n.ui.render()},E=A=>{A&&(ee("insertImage",A),t=Fe(),h&&C&&D(h.innerHTML))},k=async A=>{let F=A[0];if(F){c=!0,n.ui.render();try{let J=await T(F);E(J),a=!1,l="",n.ui.render()}catch{}finally{c=!1,n.ui.render()}}},x=A=>{a=!1,l="",n.ui.render(),h?.focus(),E(A)},R=()=>{a=!1,l="",n.ui.render()},B=(A,F)=>{p=!1,d=-1,m=-1,b(),ro(A,F),n.ui.render(),h&&C&&D(h.innerHTML)},S=(A,F)=>{d=A,m=F,n.ui.render()},W=()=>{d=-1,m=-1,n.ui.render()},U=Z("button",{key:"table",class:"wf-editor-tb-btn",type:"button",title:"\u63D2\u5165\u8868\u683C","aria-label":"\u63D2\u5165\u8868\u683C","data-item":"table"},"\u229E"),G=p?so(d,m,B,S,W):null,Ke=Z(kt,{key:"table",open:L&&!!p,onOpenChange:A=>{p=A,A&&y(),n.ui.render()},content:G},U),Re=A=>{M||D(A.currentTarget.innerHTML)},V=A=>{let F=A.target.value;C?.(F)},Qt=A=>{if(M||!L)return;y(),(A.ctrlKey||A.metaKey)&&["b","i","u"].includes(A.key.toLowerCase())&&(t=Fe(),n.ui.render(),h&&C&&D(h.innerHTML))},St=()=>{if(!L)return;y();let A=Fe();if(t===null){t=A;return}us(t,A)||(t=A,n.ui.render())},ut=()=>{y();let A=!1;r&&(r=!1,A=!0),a&&(a=!1,A=!0),A&&n.ui.render()},Ye=L&&r?Z(Ze,{open:!0,title:"\u63D2\u5165\u94FE\u63A5",onClose:H,footer:[Z("button",{class:"wf-btn wf-btn--ghost wf-btn--sm",type:"button",onClick:H},"\u53D6\u6D88"),Z("button",{class:"wf-btn wf-btn--primary wf-btn--sm",type:"button",onClick:()=>z(s)},"\u786E\u5B9A")]},Z("input",{type:"url",class:"wf-editor-link-input",placeholder:"https://...",value:s,"data-editor-link-input":!0,onInput:A=>{s=A.target.value,n.ui.render()},onKeyDown:A=>{A.key==="Enter"&&z(A.target.value),A.key==="Escape"&&H()}})):null,Qe=[];T&&(Qe.push(Z(rn,{accept:"image/*",multiple:!1,disabled:c,onChange:k},Z("div",{class:"wf-editor-img-zone"},[Z("span",{class:"wf-editor-img-zone-icon"},"\u{1F5BC}"),Z("span",{class:"wf-editor-img-zone-text"},c?"\u4E0A\u4F20\u4E2D...":"\u70B9\u51FB\u6216\u62D6\u62FD\u4E0A\u4F20\u56FE\u7247")]))),Qe.push(Z("span",{class:"wf-editor-img-or"},"\u6216"))),Qe.push(Z("input",{type:"url",class:"wf-editor-link-input",placeholder:T?"\u7C98\u8D34\u56FE\u7247\u94FE\u63A5":"https://...",value:l,"data-image-input":!0,disabled:c||void 0,onInput:A=>{l=A.target.value,n.ui.render()},onKeyDown:A=>{A.key==="Enter"&&x(A.target.value),A.key==="Escape"&&R()}}));let Rn=L&&a?Z(Ze,{open:!0,title:"\u63D2\u5165\u56FE\u7247",onClose:R,footer:[Z("button",{class:"wf-btn wf-btn--ghost wf-btn--sm",type:"button",disabled:c||void 0,onClick:R},"\u53D6\u6D88"),Z("button",{class:"wf-btn wf-btn--primary wf-btn--sm",type:"button",disabled:c||void 0,onClick:()=>x(l)},T?"\u63D2\u5165":"\u786E\u5B9A")]},Z("div",{class:"wf-stack",style:"gap:8px"},Qe)):null,j=null;if(L){let A=["wf-editor-content",M&&"wf-editor-content--disabled",P&&"wf-editor-content--has-placeholder"].filter(Boolean).join(" ");j=Z("div",{class:A,contentEditable:!M,innerHTML:L?v:u,"data-placeholder":P||void 0,style:{minHeight:I},onInput:Re,onKeyUp:Qt,onMouseUp:St,onMouseDown:ut,ref:f})}else j=Z("textarea",{class:"wf-editor-source",value:v,disabled:M,style:{minHeight:I},onInput:V});let ie={table:()=>Ke};return Z("div",{class:`wf-editor${M?" wf-editor--disabled":""}`},[!M&&N.length>0?no(N,t??{},!L,O,ie):null,j,Ye,Rn,Z("input",{type:"hidden",value:v,"aria-hidden":"true"})])}};import{createClientBrowser as fs}from"weifuwu/ui-dom";import{h as ao}from"weifuwu/ui-dom";var dn=fs(),io="wf_theme";function lo(i){let n=dn.storageGet(i);return n==="light"||n==="dark"||n==="auto"?n:null}function ms(i,n){dn.storageSet(i,n)}function un(i){let n=dn.rootElement();n&&(i==="auto"?n.removeAttribute("data-theme"):n.setAttribute("data-theme",i))}function hs(){let i=lo(io);return i||"auto"}var gs=(i,n)=>{let e=i.storageKey??io,t=i.mode??lo(e)??"auto";return un(t),r=>{let s=n?.i18n?.components?.ThemeSwitch??{},a=[{value:"auto",label:s.auto??"\u81EA\u52A8"},{value:"light",label:s.light??"\u4EAE\u8272"},{value:"dark",label:s.dark??"\u6697\u8272"}].map(l=>ao("button",{type:"button",class:`wf-theme-seg${t===l.value?" wf-theme-seg--active":""}`,role:"radio","aria-checked":String(t===l.value),"aria-label":l.label,onClick:()=>{t!==l.value&&(t=l.value,un(t),ms(e,t),r.onChange?.(t),n.ui.render())}},l.label));return ao("div",{class:"wf-theme-switch",role:"radiogroup","aria-label":s.label??"\u4E3B\u9898\u5207\u6362"},a)}};import{h as ge}from"weifuwu/ui-dom";import{h as K}from"weifuwu/ui-dom";function co(i){return i===null?"wf-json-null":typeof i=="string"?"wf-json-string":typeof i=="number"?"wf-json-number":typeof i=="boolean"?"wf-json-boolean":""}function po(i){return i===null?"null":typeof i=="string"?JSON.stringify(i):String(i)}var fn=(i,n)=>{let e=n.ui.$();e.expanded={},e.copiedPath=void 0;let t=(s,o,a)=>{e.expanded[s]=a===void 0?!e.expanded[s]:!a},r=(s,o,a)=>{if(a){a(s,o);return}n.browser?.copyText(`${s} = ${JSON.stringify(o)}`)};return s=>{let o=n.ui._selfId,{data:a,defaultExpandDepth:l=2,maxKeys:c=100,rootName:p="root",onCopy:d,className:m}=s,u=(g,y,b)=>{r(g,y,d);let v=b.currentTarget?.querySelector("path"),C=v?.getAttribute("d");v&&C&&(v.setAttribute("d","M20 6 9 17l-5-5"),n.browser?.timeout(()=>v.setAttribute("d",C),1e3))},h=(g,y,b,w)=>{if(typeof g=="object"&&g!==null){let v=e.expanded[y]===!0||b>=l&&e.expanded[y]!==!1;if(v){let I=Array.isArray(g)?`Array(${g.length})`:"Object";return K("div",{class:"wf-json-row wf-json-collapse","data-path":y,role:"button",tabIndex:0,onClick:()=>t(y,o,v),onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),t(y,o,v))}},[K("button",{class:"wf-json-toggle","aria-label":"\u5C55\u5F00",tabIndex:-1,onClick:N=>{N.stopPropagation(),t(y,o,v)}},K($,{name:"chevron-right",size:10})),K("span",{class:"wf-json-key"},`${w}:`),K("span",{class:"wf-json-summary"},`${I} {\u2026}`),K("button",{class:"wf-json-copy","aria-label":`\u590D\u5236 ${y}`,tabIndex:-1,onClick:N=>{N.stopPropagation(),u(y,g,N)}},K($,{name:e.copiedPath===y?"check":"copy",size:10}))])}if(Array.isArray(g)){let I=g.map((N,L)=>h(N,`${y}[${L}]`,b+1,String(L)));return K("div",{class:"wf-json-node","data-path":y},[K("div",{class:"wf-json-row wf-json-row--header",role:"button",tabIndex:0,onClick:()=>t(y,o,v),onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),t(y,o,v))}},[K("button",{class:"wf-json-toggle","aria-label":"\u6536\u8D77",tabIndex:-1,onClick:N=>{N.stopPropagation(),t(y,o,v)}},K($,{name:"chevron-down",size:10})),K("span",{class:"wf-json-key"},`${w}:`),K("span",{class:"wf-json-node-summary"},`Array(${g.length})`)]),K("div",{class:"wf-json-children"},I)])}let C=Object.entries(g),T=C.length>c,M=(T?C.slice(0,c):C).map(([I,N])=>h(N,`${y}.${I}`,b+1,I));return T&&M.push(K("div",{class:"wf-json-more"},`+${C.length-c} \u9879\uFF08\u61D2\u5C55\u5F00\uFF09`)),K("div",{class:"wf-json-node","data-path":y},[K("div",{class:"wf-json-row wf-json-row--header",role:"button",tabIndex:0,onClick:()=>t(y,o,v),onKeyDown:I=>{(I.key==="Enter"||I.key===" ")&&(I.preventDefault(),t(y,o,v))}},[K("button",{class:"wf-json-toggle","aria-label":"\u6536\u8D77",tabIndex:-1,onClick:I=>{I.stopPropagation(),t(y,o,v)}},K($,{name:"chevron-down",size:10})),K("span",{class:"wf-json-key"},`${w}:`),K("span",{class:"wf-json-node-summary"},`Object(${C.length})`)]),K("div",{class:"wf-json-children"},M)])}return K("div",{class:"wf-json-row","data-path":y},[K("span",{class:"wf-json-toggle-placeholder"}),K("span",{class:"wf-json-key"},`${w}:`),K("span",{class:`wf-json-value ${co(g)}`},po(g)),K("button",{class:"wf-json-copy","aria-label":`\u590D\u5236 ${y}`,tabIndex:-1,onClick:v=>u(y,g,v)},K($,{name:"copy",size:10}))])},f;if(typeof a=="object"&&a!==null){let g=e.expanded[p]===!0;f=g?K("div",{class:"wf-json-row wf-json-collapse","data-path":p,role:"button",tabIndex:0,onClick:()=>t(p,o,g),onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),t(p,o,g))}},[K("button",{class:"wf-json-toggle","aria-label":"\u5C55\u5F00",tabIndex:-1,onClick:y=>{y.stopPropagation(),t(p,o,g)}},K($,{name:"chevron-right",size:10})),K("span",{class:"wf-json-summary"},"Object {\u2026}")]):Array.isArray(a)?K("div",{class:"wf-json-node","data-path":p},[K("div",{class:"wf-json-row wf-json-row--header",role:"button",tabIndex:0,onClick:()=>t(p,o,g),onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),t(p,o,g))}},[K("button",{class:"wf-json-toggle","aria-label":"\u6536\u8D77",tabIndex:-1,onClick:y=>{y.stopPropagation(),t(p,o,g)}},K($,{name:"chevron-down",size:10})),K("span",{class:"wf-json-node-summary"},`Array(${a.length})`)]),K("div",{class:"wf-json-children"},a.map((y,b)=>h(y,`${p}[${b}]`,1,String(b))))]):K("div",{class:"wf-json-node","data-path":p},[K("div",{class:"wf-json-row wf-json-row--header",role:"button",tabIndex:0,onClick:()=>t(p,o,g),onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),t(p,o,g))}},[K("button",{class:"wf-json-toggle","aria-label":"\u6536\u8D77",tabIndex:-1,onClick:y=>{y.stopPropagation(),t(p,o,g)}},K($,{name:"chevron-down",size:10})),K("span",{class:"wf-json-key"},`${p}:`),K("span",{class:"wf-json-node-summary"},`Object(${Object.keys(a).length})`)]),K("div",{class:"wf-json-children"},(()=>{let y=Object.entries(a),b=y.length>c,w=(b?y.slice(0,c):y).map(([v,C])=>h(C,`${p}.${v}`,1,v));return b&&w.push(K("div",{class:"wf-json-more"},`+${y.length-c} \u9879\uFF08\u61D2\u5C55\u5F00\uFF09`)),w})())])}else f=K("div",{class:"wf-json-row"},[K("span",{class:`wf-json-value ${co(a)}`},po(a))]);return K("div",{class:["wf-json-viewer",m].filter(Boolean).join(" ")},[f])}};var bs={running:"settings",ok:"check",error:"close"},mn=(i,n)=>e=>{let{call:t,progress:r,result:s,renderArgs:o}=e,a=s?s.ok?"ok":"error":"running",l=o?o(t.args):ge(fn,{data:t.args,defaultExpandDepth:1,maxKeys:50,rootName:"args"}),c=r?[r.message?ge("div",{class:"wf-toolcall-msg"},`${r.message} (${r.step}/${r.total})`):null,ge("div",{class:"wf-toolcall-bar",role:"progressbar","aria-valuenow":r.step,"aria-valuemax":r.total},[ge("div",{class:"wf-toolcall-bar-fill",style:{width:`${Math.min(100,r.step/Math.max(1,r.total)*100)}%`}})])]:null,p=s&&!s.ok&&s.error?ge("div",{class:"wf-toolcall-error"},`${s.error.code}: ${s.error.message}`):null;return ge("div",{class:`wf-toolcall wf-toolcall--${a}`},[ge("div",{class:"wf-toolcall-header"},[ge("span",{class:`wf-toolcall-icon wf-toolcall-icon--${a}`},ge($,{name:bs[a]})),ge("span",{class:"wf-toolcall-name"},t.name)]),ge("div",{class:"wf-toolcall-body"},[l,c,p].filter(Boolean))])};import{h as re}from"weifuwu/ui-dom";var ys={pending:"\u7B49\u5F85\u5BA1\u6279",approved:"\u5DF2\u6279\u51C6",rejected:"\u5DF2\u62D2\u7EDD",timeout:"\u5BA1\u6279\u8D85\u65F6"},hn=(i,n)=>{let e="",t=!1;return r=>{let{request:s,status:o="pending",onApprove:a,onReject:l,renderDetail:c,loading:p}=r,d=c?c(s):[re("div",{class:"wf-approval-name"},s.name),re("code",{class:"wf-approval-args"},JSON.stringify(s.args))],m=o==="pending"?re("div",{class:"wf-approval-actions"},[t?re("div",{class:"wf-approval-note"},[re("input",{class:"wf-approval-note-input",placeholder:"\u5907\u6CE8\uFF08\u62D2\u7EDD\u539F\u56E0\uFF0C\u5C06\u8FDB\u5165 agent \u4E0A\u4E0B\u6587\uFF09\u2026","aria-label":"\u62D2\u7EDD\u5907\u6CE8",value:e,disabled:p||void 0,onInput:u=>{e=u.target.value}})]):null,re("div",{class:"wf-approval-btns"},[re("button",{class:"wf-btn wf-btn--primary wf-btn--sm",type:"button",disabled:p||void 0,onClick:p?void 0:()=>a?.()},p?"\u63D0\u4EA4\u4E2D\u2026":"\u5141\u8BB8"),re("button",{class:"wf-btn wf-btn--danger wf-btn--sm",type:"button",disabled:p||void 0,onClick:p?void 0:()=>{if(!t){t=!0,n.ui.render();return}l?.(e)}},t?"\u786E\u8BA4\u62D2\u7EDD":"\u62D2\u7EDD"),t?re("button",{class:"wf-btn wf-btn--secondary wf-btn--sm",type:"button",disabled:p||void 0,onClick:()=>{t=!1,e="",n.ui.render()}},"\u53D6\u6D88"):null].filter(Boolean))].filter(Boolean)):re("div",{class:`wf-approval-status wf-approval-status--${o}`},ys[o]);return re("div",{class:`wf-approval wf-approval--${o}`},[re("div",{class:"wf-approval-header"},[re("span",{class:"wf-approval-icon"},re($,{name:o==="pending"?"pause":o==="approved"?"check":"close"})),re("span",{class:"wf-approval-title"},"\u5DE5\u5177\u5BA1\u6279")]),re("div",{class:"wf-approval-detail"},d),s.reason?re("div",{class:"wf-approval-reason"},s.reason):null,m])}};import{createClientBrowser as ws}from"weifuwu/ui-dom";import{h as se}from"weifuwu/ui-dom";var vs={send:"\u53D1\u9001",stop:"\u505C\u6B62",retry:"\u91CD\u8BD5",thinking:"\u{1F914} \u601D\u8003\u4E2D\u2026",runningTool:i=>i?`\u6267\u884C\u5DE5\u5177 ${i}`:"\u6267\u884C\u5DE5\u5177\u2026",tokens:i=>`tokens: ${i.prompt_tokens}\u2192${i.completion_tokens}`,error:i=>`${i.code}: ${i.message}`,placeholder:"\u8F93\u5165\u6D88\u606F\uFF0C\u56DE\u8F66\u53D1\u9001\u2026",empty:"\u8F93\u5165\u6D88\u606F\u5F00\u59CB\u5BF9\u8BDD\u3002"},xs=(i,n)=>{let e=n.browser??ws(),t,r=!0,s=i.chat.__watch?.(()=>n.ui.dirty()),o=n.ui.useVisualViewport(),a=()=>{t&&(t.scrollTop=t.scrollHeight)},l=n.ui.useScrollPosition({getScroller:()=>t??window}),c=p=>{p&&!t?(t=p,l.refresh(),queueMicrotask(a)):!p&&t&&(t=void 0,s?.())};return p=>{let{chat:d,raiseOnKeyboard:m=!1}=p,u={...vs,...p.labels};t&&(r=t.scrollHeight-l.y-t.clientHeight<48),r&&queueMicrotask(a);let h=d.messages??[],f=[];h.length===0&&f.push(se("p",{class:"wf-aichat-empty"},u.empty));for(let g of h)f.push(Cs(g,p,u));return d.step&&f.push(se("div",{class:"wf-aichat-status"},d.step.type==="llm"?u.thinking:u.runningTool(d.step.name))),d.usage&&f.push(se("div",{class:"wf-aichat-usage"},u.tokens(d.usage))),d.error&&f.push(se("div",{class:"wf-aichat-error"},u.error(d.error))),se("div",{class:"wf-aichat"},[se("div",{class:"wf-aichat-list",style:{maxHeight:p.maxHeight??"70vh"},ref:c},f),se("div",{class:`wf-aichat-inputbar${o.keyboardOpen&&m?" wf-aichat-inputbar--raised":""}`,style:o.keyboardOpen&&m?{position:"fixed",left:"0",right:"0",bottom:`${Math.max(0,e?.viewportHeight()-(o.height+o.offsetTop))+8}px`,zIndex:"var(--wf-z-popover)"}:void 0},[se("input",{class:"wf-aichat-input",value:d.input??"",placeholder:u.placeholder,onInput:g=>{d.input=g.target.value},onKeyDown:g=>{g.key==="Enter"&&d.send()}}),d.streaming?se("button",{class:"wf-btn wf-btn--primary wf-btn--sm",type:"button",onClick:()=>d.stop()},u.stop):se("button",{class:"wf-btn wf-btn--primary wf-btn--sm",type:"button",onClick:()=>d.send()},u.send),!d.streaming&&d.error?se("button",{class:"wf-btn wf-btn--danger wf-btn--sm",type:"button",onClick:()=>d.retry()},u.retry):null])])}};function Cs(i,n,e){let t=[];if(i.toolCalls?.length){let r=i.toolCalls.map((s,o)=>se(mn,{key:`${i.id}-tool-${o}`,call:s.call,progress:s.progress,result:s.result,renderArgs:n.renderToolArgs}));t.push(se("div",{class:"wf-aichat-tools"},r))}if(i.approval){let r=se(hn,{request:i.approval,onApprove:()=>n.chat.approve("approved"),onReject:s=>n.chat.approve("rejected",s??"\u7528\u6237\u62D2\u7EDD")});t.push(se("div",{class:"wf-aichat-approval"},r))}return t.push(se("div",{class:`wf-aichat-bubble wf-aichat-bubble--${i.role}`},n.renderMessage?n.renderMessage(i):i.content||"\u2026")),se("div",{key:i.id,class:`wf-aichat-msg wf-aichat-msg--${i.role}`},t)}import{h as Y,Fragment as $s}from"weifuwu/ui-dom";var ks=/^https?:\/\//i;function Ms(i){let n=i.trim();return ks.test(n)?n:null}function pe(i){let n=[],e=0,t="",r=()=>{t&&(n.push({type:"text",text:t}),t="")};for(;e<i.length;){let s=i[e];if(s==="`"){let o=i.indexOf("`",e+1);if(o>e){r(),n.push({type:"code",text:i.slice(e+1,o)}),e=o+1;continue}t+=s,e++;continue}if(s==="*"&&i[e+1]==="*"){let o=i.indexOf("**",e+2);if(o>e){r(),n.push({type:"bold",children:pe(i.slice(e+2,o))}),e=o+2;continue}}if(s==="~"&&i[e+1]==="~"){let o=i.indexOf("~~",e+2);if(o>e){r(),n.push({type:"del",children:pe(i.slice(e+2,o))}),e=o+2;continue}}if(s==="*"){let o=i.indexOf("*",e+1);if(o>e){r(),n.push({type:"italic",children:pe(i.slice(e+1,o))}),e=o+1;continue}}if(s==="["){let o=i.indexOf("]",e+1);if(o>e&&i[o+1]==="("){let a=i.indexOf(")",o+2);if(a>o){let l=i.slice(e+1,o),c=i.slice(o+2,a),p=Ms(c);if(p){r(),n.push({type:"link",href:p,children:pe(l)}),e=a+1;continue}t+=i.slice(e,a+1),e=a+1;continue}}}t+=s,e++}return r(),n}function gn(i){let n=i.replace(/\r\n/g,`
3
3
  `).split(`
4
4
  `),e=[],t=0,r=s=>{s.type==="paragraph"&&s.inline.length===0||e.push(s)};for(;t<n.length;){let s=n[t];if(/^\s*$/.test(s)){t++;continue}if(/^```/.test(s.trim())){let u=s.trim().slice(3).trim(),h=[];for(t++;t<n.length&&!/^\s*```/.test(n[t]);)h.push(n[t]),t++;t++,r({type:"code",lang:u||void 0,code:h.join(`
package/dist/index.d.ts CHANGED
@@ -31,8 +31,6 @@ export type { Ai, ApprovalRequest } from './ai/contracts.ts';
31
31
  export type { AiOptions, AiInjected, AiClient, AiClientModule, ChatResponse, AgentConfig, AgentTool, AgentRunner, ToolContext, AgentRunResult, AgentStep, WfEmitter, } from './ai/index.ts';
32
32
  export type { WfStreamEvent, WfMessageStart, WfToken, WfUsage, WfDone, WfError, WfErrorCode, WfToolCall, WfToolResult, WfToolProgress, WfStep, WfApprovalRequest, WfApprovalResponse, WfApprovalDecision, ChatMessage, ChatParams, MessageRole, ToolCall, ToolDefinition, } from './ai/types.ts';
33
33
  export { ui } from './ui/index.ts';
34
- export { uiSsr } from './ui/ssr-page.ts';
35
- export type { UiSsrOptions } from './ui/ssr-page.ts';
36
34
  export type { GraphQLOptions, GraphQLHandler } from './graphql.ts';
37
35
  export { postgres, MIGRATIONS_TABLE } from './postgres/index.ts';
38
36
  export type { PostgresOptions, PostgresClient, PostgresInjected } from './postgres/types.ts';