@apform-ui/core 1.0.1 → 1.1.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 ADDED
@@ -0,0 +1,85 @@
1
+ # @apform-ui/core
2
+
3
+ Apform UI 企业级 Vue 3 UI 组件库,基于 Element Plus 2.14.2 fork。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install @apform-ui/core element-plus@2.14.2
9
+ ```
10
+
11
+ ## 组件
12
+
13
+ | 组件 | 说明 |
14
+ |------|------|
15
+ | `AppDialog` | 通用弹框(全屏、拖拽) |
16
+ | `AppIcon` | 统一图标(Iconify,120+ 图标) |
17
+ | `AppPagination` | 统一分页器 |
18
+ | `UserAvatar` | 用户头像(图片/首字母) |
19
+ | `StatusTag` | 状态标签(预设 15 种状态) |
20
+ | `Skeleton` | 骨架屏(card/list/table) |
21
+ | `CardGridSkeleton` | 卡片网格骨架 |
22
+ | `EmptyState` | 空状态占位 |
23
+ | `ErrorBoundary` | 错误边界 |
24
+ | `FilterTabs` | 筛选标签栏 |
25
+ | `ConfirmDialog` | 确认弹框 |
26
+ | `FormDialog` | 表单弹框 |
27
+ | `Toast` | 轻提示 |
28
+
29
+ ## Composables
30
+
31
+ | Composable | 说明 |
32
+ |------------|------|
33
+ | `useMessage` | 消息提示(替代 ElMessage) |
34
+ | `useConfirm` | 确认弹框(替代 ElMessageBox.confirm) |
35
+ | `useDebounceFn` | 防抖函数 |
36
+ | `useToast` | 轻提示(编程式) |
37
+
38
+ ## 工具函数
39
+
40
+ | 函数 | 说明 |
41
+ |------|------|
42
+ | `resolveApiErrorMessage` | API 错误消息标准化 |
43
+ | `iconRegistry` | 120+ 图标注册表 |
44
+
45
+ ## 快速使用
46
+
47
+ ```vue
48
+ <script setup>
49
+ import {
50
+ AppDialog, AppIcon, AppPagination,
51
+ useMessage, useConfirm, useDebounceFn,
52
+ StatusTag, EmptyState, Skeleton,
53
+ } from '@apform-ui/core'
54
+ import '@apform-ui/core/tokens.css'
55
+ import '@apform-ui/core/design-tokens.css'
56
+
57
+ const msg = useMessage()
58
+ const { confirm, confirmDelete } = useConfirm()
59
+ </script>
60
+
61
+ <template>
62
+ <AppIcon name="setting" :size="18" />
63
+ <StatusTag status="approved" />
64
+ <EmptyState icon="files" title="暂无数据" />
65
+ <AppPagination v-model:current-page="page" :total="100" />
66
+ </template>
67
+ ```
68
+
69
+ ## 设计令牌
70
+
71
+ ```css
72
+ @import '@apform-ui/core/tokens.css'; /* 颜色/字体/间距 */
73
+ @import '@apform-ui/core/design-tokens.css'; /* 动画/z-index */
74
+ ```
75
+
76
+ ## 文档
77
+
78
+ https://nan1010082085.github.io/apform-ui/
79
+
80
+ ## Fork 信息
81
+
82
+ | 项目 | 值 |
83
+ |------|------|
84
+ | Fork 基准 | Element Plus 2.14.2 |
85
+ | Fork 日期 | 2026-08-27 |
@@ -0,0 +1 @@
1
+ ._header_e01ea_2{display:flex;align-items:center;justify-content:space-between;width:100%;gap:16px}._title_e01ea_10{font-size:16px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._headerRight_e01ea_19{display:flex;align-items:center;gap:4px;flex-shrink:0}._headerBtn_e01ea_26{width:32px;height:32px;font-size:16px;color:#fff!important}._headerBtn_e01ea_26:hover{background:transparent!important;color:#fff!important}._body_e01ea_38{max-height:calc(100vh - 220px);overflow-y:auto;overflow-x:hidden}._footer_e01ea_44{display:flex;justify-content:flex-end;padding-right:20px}._pagination_ycmph_2{display:flex;justify-content:flex-end;margin-top:20px;padding-bottom:8px}._content_fjn03_2{display:flex;align-items:flex-start;gap:12px}._icon_fjn03_8{font-size:24px;flex-shrink:0}._message_fjn03_13{margin:0;color:var(--el-text-color-secondary);line-height:1.6}._tabs_1ouiv_2{display:flex;gap:2px;background:var(--bg-color-gray-dark, #e8eaed);border-radius:8px;padding:3px}._tab_1ouiv_2{padding:6px 16px;font-size:13px;font-weight:500;color:var(--text-color-regular, #606266);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .2s;white-space:nowrap;line-height:1.4}._tab_1ouiv_2:hover{color:var(--text-color-title, #303133);background:#fff9}._tabActive_1ouiv_29{color:var(--text-color-title, #303133);background:var(--bg-color-white, #ffffff);box-shadow:0 1px 3px #00000014}._container_122pq_2{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:var(--z-index-toast, 1080);display:flex;flex-direction:column;gap:8px;pointer-events:none}._item_122pq_14{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;pointer-events:auto;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .08));white-space:nowrap;max-width:90vw;transition:all .3s ease}._info_122pq_31{background:var(--color-info-bg, rgba(22, 119, 255, .08));color:var(--color-info, #4581E9);border:1px solid var(--color-info-light, #E5EFF6)}._success_122pq_37{background:var(--color-success-bg, rgba(82, 196, 26, .1));color:var(--color-success, #26A036);border:1px solid var(--color-success-light, #36B37E)}._warning_122pq_43{background:var(--color-warning-bg, rgba(255, 191, 0, .1));color:var(--color-warning, #F09700);border:1px solid var(--color-warning-light, #FF6010)}._error_122pq_49{background:var(--color-danger-bg, rgba(255, 1, 1, .08));color:var(--color-danger, #E50113);border:1px solid var(--color-danger-light, #FF6B55)}._removing_122pq_55{opacity:0;transform:translateY(-16px) scale(.95)}._icon_122pq_60{font-size:14px;flex-shrink:0}._msg_122pq_65{overflow:hidden;text-overflow:ellipsis}.toast-enter-active,.toast-leave-active{transition:all .3s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(-16px) scale(.95)}._empty_1r2bv_2{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center}._icon_1r2bv_11{color:var(--text-color-placeholder, #969FA8);margin-bottom:16px}._title_1r2bv_16{margin:0 0 8px;font-size:18px;font-weight:500;color:var(--text-color-primary, #333333)}._desc_1r2bv_23{margin:0 0 24px;font-size:14px;color:var(--text-color-secondary, #666666);max-width:400px}._actions_1r2bv_30{display:flex;gap:12px}.apf-error-boundary{padding:16px;border:1px solid var(--color-danger-light, #FF6B55);border-radius:var(--border-radius-md, 4px);background:var(--color-danger-bg, rgba(255, 1, 1, .08))}.apf-error-boundary__inner{display:flex;flex-direction:column;gap:8px}.apf-error-boundary__header{display:flex;align-items:center;gap:8px}.apf-error-boundary__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--color-danger, #E50113);color:#fff;font-size:12px;font-weight:700}.apf-error-boundary__title{font-weight:600;color:var(--color-danger, #E50113)}.apf-error-boundary__info{font-size:12px;color:var(--text-color-muted, #909399)}.apf-error-boundary__message{font-size:13px;color:var(--text-color-regular, #606266);font-family:var(--font-family-mono, monospace);word-break:break-all}._skeleton_258xs_2{width:100%}._animated_258xs_6 ._cardImage_258xs_6,._animated_258xs_6 ._line_258xs_7,._animated_258xs_6 ._avatar_258xs_8{background:linear-gradient(90deg,var(--bg-color-gray, #f5f7fa) 25%,var(--bg-color-gray-light, #fafafa) 50%,var(--bg-color-gray, #f5f7fa) 75%);background-size:200% 100%;animation:_skeleton-loading_258xs_1 1.5s ease infinite}@keyframes _skeleton-loading_258xs_1{0%{background-position:200% 0}to{background-position:-200% 0}}._card_258xs_6{display:inline-block;width:calc(33.333% - 12px);margin:6px;border-radius:var(--border-radius-md, 4px);overflow:hidden;background:var(--bg-color-white, #fff);border:1px solid var(--border-color-light, #ebedf3)}._cardImage_258xs_6{width:100%;height:160px;background:var(--bg-color-gray, #f5f7fa)}._cardBody_258xs_36{padding:16px}._listItem_258xs_41{display:flex;align-items:center;gap:16px;padding:16px;border-bottom:1px solid var(--border-color-light, #ebedf3)}._avatar_258xs_8{width:40px;height:40px;border-radius:50%;background:var(--bg-color-gray, #f5f7fa);flex-shrink:0}._listContent_258xs_57{flex:1;display:flex;flex-direction:column;gap:8px}._line_258xs_7{height:14px;border-radius:4px;background:var(--bg-color-gray, #f5f7fa)}._lineTitle_258xs_71{width:40%;height:16px}._lineText_258xs_76{width:100%}._lineTextShort_258xs_80{width:60%}._grid_t4mi3_2{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;padding:16px 0}._card_t4mi3_9{border-radius:var(--border-radius-md, 4px);overflow:hidden;background:var(--bg-color-white, #fff);border:1px solid var(--border-color-light, #ebedf3)}._animated_t4mi3_16 ._thumb_t4mi3_16,._animated_t4mi3_16 ._line_t4mi3_17{background:linear-gradient(90deg,var(--bg-color-gray, #f5f7fa) 25%,var(--bg-color-gray-light, #fafafa) 50%,var(--bg-color-gray, #f5f7fa) 75%);background-size:200% 100%;animation:_skeleton-loading_t4mi3_1 1.5s ease infinite}@keyframes _skeleton-loading_t4mi3_1{0%{background-position:200% 0}to{background-position:-200% 0}}._thumb_t4mi3_16{width:100%;height:140px;background:var(--bg-color-gray, #f5f7fa)}._body_t4mi3_39{padding:16px;display:flex;flex-direction:column;gap:10px}._line_t4mi3_17{height:14px;border-radius:4px;background:var(--bg-color-gray, #f5f7fa)}._title_t4mi3_52{width:50%;height:16px}._text_t4mi3_57{width:100%}._textShort_t4mi3_61{width:70%}._avatar_139k7_2{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;background:linear-gradient(135deg,var(--color-primary, #0060A2),var(--color-primary-hover, #4581E9));color:#fff;font-weight:600}._circle_139k7_13{border-radius:50%}._square_139k7_17{border-radius:var(--border-radius-md, 4px)}._img_139k7_21{width:100%;height:100%;object-fit:cover}._initial_139k7_27{-webkit-user-select:none;user-select:none;line-height:1}.apf-message-parts[data-v-15673685],.apf-md-block[data-v-15673685]{min-width:0;width:fit-content;max-width:100%;font-size:14px}.apf-md-block[data-v-15673685] p{margin:0 0 .55em;line-height:1.7}.apf-md-block[data-v-15673685] p:last-child{margin-bottom:0}.apf-md-block[data-v-15673685] .table-scroll{overflow-x:auto;margin:10px 0;max-width:min(100%,840px);border:1px solid var(--c-border);border-radius:8px;background:#fff}.apf-md-block[data-v-15673685] table{border-collapse:collapse;width:100%;font-size:14px}.apf-md-block[data-v-15673685] th,.apf-md-block[data-v-15673685] td{border-bottom:1px solid var(--c-border);padding:8px 10px;text-align:left;vertical-align:top}.apf-md-block[data-v-15673685] th{background:#f3f6f6;font-weight:650}.apf-md-block[data-v-15673685] tr:last-child td{border-bottom:0}.apf-md-block[data-v-15673685] blockquote{margin:8px 0;padding:6px 12px;border-left:3px solid var(--c-primary);color:var(--c-text-secondary);background:#f7fafa}.apf-md-block[data-v-15673685] ul,.apf-md-block[data-v-15673685] ol{margin:8px 0;padding-left:1.3em}.apf-md-block[data-v-15673685] li{margin:3px 0;line-height:1.6}.apf-md-block[data-v-15673685] h1,.apf-md-block[data-v-15673685] h2,.apf-md-block[data-v-15673685] h3{margin:12px 0 6px;line-height:1.35;font-weight:700}.apf-md-block[data-v-15673685] h2{margin-top:14px;padding-bottom:4px;border-bottom:1px solid var(--c-border-soft, #e9efef);font-size:15px;color:var(--c-text)}.apf-md-block[data-v-15673685] h2:first-child{margin-top:0}.apf-md-block[data-v-15673685] ol{margin:8px 0 10px;padding-left:1.35em}.apf-md-block[data-v-15673685] ol li{margin:6px 0;padding-left:2px;line-height:1.65}.apf-md-block[data-v-15673685] a{color:var(--c-primary);text-decoration:underline;text-underline-offset:2px}.apf-md-block[data-v-15673685] code{padding:1px 5px;border-radius:4px;background:#eef3f3;font-size:.92em}.apf-md-block[data-v-15673685] pre code{padding:0;background:transparent}.apf-code-wrap[data-v-15673685]{margin-top:10px;border:1px solid #2a3842;border-radius:var(--radius);overflow:hidden}.apf-code-wrap[data-v-15673685]:first-child{margin-top:0}.apf-code-head[data-v-15673685],.apf-artifact-head[data-v-15673685]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px 6px 10px;background:#243039}.apf-part-actions[data-v-15673685]{display:inline-flex;gap:2px}.apf-code-lang[data-v-15673685],.apf-artifact-badge[data-v-15673685]{display:inline-block;padding:1px 6px;border-radius:3px;background:#ffffff14;color:#9fb3bd;font-size:10px;font-weight:650;text-transform:lowercase}.apf-artifact-badge[data-v-15673685]{text-transform:none;color:#8fd0c8;background:#8fd0c81f}.apf-artifact-card[data-v-15673685]{margin-top:10px;border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;background:#f7fafa}.apf-artifact-card[data-v-15673685]:first-child{margin-top:0}.apf-artifact-card .apf-artifact-head[data-v-15673685]{background:#eef5f5}.apf-artifact-card .apf-artifact-badge[data-v-15673685]{background:var(--c-primary-soft);color:var(--c-primary)}.apf-artifact-card .apf-icon-btn[data-v-15673685]{color:var(--c-text-muted)}.apf-artifact-card .apf-code-block[data-v-15673685]{border-radius:0}.apf-code-block[data-v-15673685]{margin:0;padding:12px 14px;overflow-x:auto;max-height:420px;background:#1e2a33;color:#e8efef;white-space:pre;font-size:12.5px;line-height:1.55}.apf-json .apf-code-block[data-v-15673685]{color:#d7ece8}.apf-icon-btn[data-v-15673685]{display:inline-grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:5px;background:transparent;color:#9fb3bd;cursor:pointer}.apf-icon-btn[data-v-15673685]:hover{color:#fff;background:#ffffff1a}.apf-artifact-card .apf-icon-btn[data-v-15673685]:hover{color:var(--c-primary);background:var(--c-primary-soft)}.apf-att-list[data-v-ca153ee0]{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.apf-image-grid[data-v-ca153ee0]{display:grid;gap:8px;grid-template-columns:minmax(0,1fr)}.apf-image-grid.apf-multi[data-v-ca153ee0]{grid-template-columns:repeat(2,minmax(0,1fr))}.apf-att-image[data-v-ca153ee0]{display:block;width:100%;padding:0;border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;background:#f7fafa;cursor:zoom-in}.apf-att-image img[data-v-ca153ee0]{display:block;width:100%;max-height:240px;object-fit:cover;background:#fff}.apf-att-file[data-v-ca153ee0]{display:flex;gap:10px;align-items:flex-start;width:100%;padding:10px 12px;border:1px solid var(--c-border);border-radius:var(--radius);background:#f7fafa;text-align:left;color:inherit;cursor:pointer;font:inherit}.apf-att-file[data-v-ca153ee0]:hover{border-color:var(--c-primary)}.apf-att-badge[data-v-ca153ee0]{flex:none;min-width:40px;height:28px;padding:0 8px;display:grid;place-items:center;border-radius:6px;background:var(--c-primary-soft);color:var(--c-primary);font-size:11px;font-weight:700;letter-spacing:.02em}.apf-att-meta[data-v-ca153ee0]{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.apf-att-meta strong[data-v-ca153ee0]{font-size:13px;font-weight:650;word-break:break-all}.apf-att-meta small[data-v-ca153ee0]{font-size:11px;color:var(--c-text-muted)}.apf-doc-list[data-v-8c8a0f20]{display:flex;flex-direction:column;gap:8px;margin-top:10px}.apf-doc-card[data-v-8c8a0f20]{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--c-border);border-radius:var(--radius);background:#f7fafa}.apf-doc-card.apf-clickable[data-v-8c8a0f20]{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.apf-doc-card.apf-clickable[data-v-8c8a0f20]:hover{border-color:var(--c-primary);box-shadow:0 0 0 2px #0d6b6714}.apf-doc-card.apf-clickable[data-v-8c8a0f20]:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}.apf-doc-icon[data-v-8c8a0f20]{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:6px;background:var(--c-primary-soft);color:var(--c-primary)}.apf-doc-body[data-v-8c8a0f20]{min-width:0;flex:1}.apf-doc-name[data-v-8c8a0f20]{display:block;font-size:13px;font-weight:650}.apf-doc-summary[data-v-8c8a0f20]{margin:4px 0 0;font-size:12px;line-height:1.5;color:var(--c-text-secondary)}.apf-doc-meta[data-v-8c8a0f20]{display:inline-block;margin-top:4px;font-size:11px;color:var(--c-text-muted)}.apf-message[data-v-fafcc1d2]{display:flex;gap:12px;max-width:1040px;margin:0 auto 22px;align-items:flex-start}.apf-message.user[data-v-fafcc1d2]{justify-content:flex-end}.apf-bubble-wrap[data-v-fafcc1d2]{display:flex;flex-direction:column;gap:8px;max-width:880px;min-width:0;width:100%}.apf-message.user .apf-bubble-wrap[data-v-fafcc1d2]{align-items:flex-end;max-width:720px}.apf-result-wrap[data-v-fafcc1d2]{display:flex;flex-direction:column;align-items:stretch;width:fit-content;max-width:100%;animation:apf-msg-in-fafcc1d2 .28s ease both}.apf-message.user .apf-result-wrap[data-v-fafcc1d2]{align-items:flex-end}@keyframes apf-msg-in-fafcc1d2{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.apf-tip[data-v-fafcc1d2]{margin:0;padding:0 2px;color:var(--c-text-muted);font-size:12px}.apf-bubble[data-v-fafcc1d2]{margin:0;padding:12px 16px;width:fit-content;max-width:100%;font-size:14px;line-height:1.7;background:var(--c-surface);border:1px solid var(--c-border);border-radius:14px;word-break:break-word;box-shadow:0 1px 2px #1428280a}.apf-bubble.apf-user[data-v-fafcc1d2]{background:#e8f3f2;border-color:#cfe3e1}.apf-bubble.apf-waiting[data-v-fafcc1d2]{border-color:#f0d9a8;background:linear-gradient(180deg,#fffdf8,#fff 48%)}.apf-bubble.apf-failed[data-v-fafcc1d2]{border-color:#f0c4be;background:#fff8f7}.apf-message-content[data-v-fafcc1d2]>:first-child{margin-top:0}.apf-message-content[data-v-fafcc1d2]>:last-child{margin-bottom:0}.apf-inline-progress[data-v-fafcc1d2]{margin:10px 0 0;font-size:12px;color:var(--c-running, #0060A2)}.apf-detail-block[data-v-fafcc1d2]{width:fit-content;max-width:100%;color:var(--c-text-muted);font-size:12px;border:1px solid var(--c-border-soft, var(--c-border));border-radius:8px;background:#ffffff8c;padding:0 8px;transition:width .28s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease}.apf-detail-block.open[data-v-fafcc1d2]{width:100%;background:#ffffffb8}.apf-detail-block.streaming[data-v-fafcc1d2]{border-color:color-mix(in srgb,var(--c-running, #0060A2) 28%,var(--c-border));box-shadow:0 0 0 1px color-mix(in srgb,var(--c-running, #0060A2) 10%,transparent)}.apf-detail-summary[data-v-fafcc1d2]{display:inline-flex;align-items:center;gap:6px;width:100%;margin:0;padding:5px 2px;border:0;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer;text-align:left;border-radius:6px}.apf-detail-summary[data-v-fafcc1d2]:hover{color:var(--c-text-secondary)}.apf-chevron[data-v-fafcc1d2]{display:inline-block;width:0;height:0;border-style:solid;border-width:4px 0 4px 6px;border-color:transparent transparent transparent currentColor;opacity:.7;transition:transform .22s ease;flex:none}.apf-detail-block.open .apf-chevron[data-v-fafcc1d2]{transform:rotate(90deg)}.apf-live-dot[data-v-fafcc1d2]{width:6px;height:6px;border-radius:50%;background:var(--c-running, #0060A2);animation:apf-blink-fafcc1d2 1.4s infinite both;margin-left:2px}.apf-detail-collapse[data-v-fafcc1d2]{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .3s ease}.apf-detail-block.open .apf-detail-collapse[data-v-fafcc1d2]{grid-template-rows:1fr}.apf-detail-collapse-inner[data-v-fafcc1d2]{overflow:hidden;min-height:0}.apf-detail-content[data-v-fafcc1d2]{margin:0;padding:0;background:transparent;border-radius:8px;white-space:pre-wrap;line-height:1.55;color:var(--c-text-secondary);max-height:14em;overflow:hidden;opacity:0;transform:translateY(-4px);transition:opacity .22s ease,transform .22s ease,padding .22s ease,margin .22s ease,background-color .22s ease}.apf-detail-block.open .apf-detail-content[data-v-fafcc1d2]{margin:0 0 8px;padding:8px 10px;background:var(--c-bg);overflow-y:auto;opacity:1;transform:none;transition-delay:.04s}.apf-detail-block.open .apf-detail-content.streaming[data-v-fafcc1d2]{max-height:6.4em;mask-image:linear-gradient(180deg,transparent 0%,#000 22%,#000 100%);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 22%,#000 100%)}.apf-tool-row[data-v-fafcc1d2]{display:flex;justify-content:space-between;gap:16px;margin:0 0 8px;padding:6px 8px;background:var(--c-bg);border-radius:8px}.apf-err[data-v-fafcc1d2]{color:var(--c-danger, #E50113)}.apf-waiting-hint[data-v-fafcc1d2]{color:var(--c-warning, #F09700);background:#fdf2df;border-color:#f0d9a8}.apf-failed-hint[data-v-fafcc1d2]{color:var(--c-danger, #E50113);background:var(--c-danger-soft, #fff8f7);border-color:#f0c4be}.apf-cancelled-hint[data-v-fafcc1d2]{color:var(--c-text-muted, #909399);background:#eef2f2;border-color:var(--c-border)}.apf-typing[data-v-fafcc1d2]{display:flex;align-items:center;gap:10px;padding:12px 15px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:14px}.apf-status-text[data-v-fafcc1d2]{font-size:13px;color:var(--c-text-muted)}.apf-dots[data-v-fafcc1d2]{display:inline-flex;gap:4px}.apf-dots i[data-v-fafcc1d2]{width:6px;height:6px;background:var(--c-running, #0060A2);border-radius:50%;animation:apf-blink-fafcc1d2 1.4s infinite both}.apf-dots i[data-v-fafcc1d2]:nth-child(2){animation-delay:.2s}.apf-dots i[data-v-fafcc1d2]:nth-child(3){animation-delay:.4s}@keyframes apf-blink-fafcc1d2{0%,80%,to{opacity:.3}40%{opacity:1}}.apf-result-actions[data-v-fafcc1d2],.apf-fail-actions[data-v-fafcc1d2]{display:flex;align-items:center;gap:4px;margin-top:4px}.apf-text-link[data-v-fafcc1d2]{border:0;background:transparent;color:var(--c-text-muted);font-size:12px;cursor:pointer;padding:4px 6px;border-radius:6px}.apf-text-link[data-v-fafcc1d2]:hover{color:var(--c-primary, #0060A2);background:var(--c-primary-soft, #e8f4ff)}.apf-icon-btn[data-v-fafcc1d2]{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--c-text-muted);cursor:pointer}.apf-icon-btn[data-v-fafcc1d2]:hover{color:var(--c-primary, #0060A2);background:var(--c-primary-soft, #e8f4ff)}.apf-inline-approval[data-v-fafcc1d2]{margin-top:4px;padding:14px;width:min(100%,520px);background:var(--c-surface);border:1px solid var(--c-border);border-left:3px solid var(--c-warning, #F09700);border-radius:var(--radius);box-shadow:0 4px 14px #281e0a0a}.apf-inline-approval.apf-dangerous-approval[data-v-fafcc1d2]{border-left-color:var(--c-danger, #E50113);background:var(--c-danger-soft, #fff8f7)}.apf-approval-head[data-v-fafcc1d2]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.apf-approval-title[data-v-fafcc1d2]{font-weight:700;font-size:13px}.apf-approval-danger-tag[data-v-fafcc1d2]{font-size:10px;font-weight:700;color:#fff;background:var(--c-danger, #E50113);padding:1px 6px;border-radius:3px}.apf-approval-prompt[data-v-fafcc1d2]{margin:0 0 10px;font-size:13px;line-height:1.55;color:var(--c-text-secondary)}.apf-approval-actions[data-v-fafcc1d2]{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.apf-approval-btn[data-v-fafcc1d2]{padding:6px 16px;border-radius:var(--radius);font-size:13px;cursor:pointer;border:1px solid transparent}.apf-approval-btn-primary[data-v-fafcc1d2]{background:var(--c-primary, #0060A2);color:#fff}.apf-approval-btn-primary[data-v-fafcc1d2]:hover{background:var(--c-primary-hover, #4581E9)}.apf-approval-btn-primary[data-v-fafcc1d2]:disabled{opacity:.5;cursor:not-allowed}.apf-approval-btn-danger[data-v-fafcc1d2]{background:var(--c-danger, #E50113);color:#fff}.apf-approval-btn-danger[data-v-fafcc1d2]:hover{opacity:.9}.apf-approval-btn-danger[data-v-fafcc1d2]:disabled{opacity:.5;cursor:not-allowed}.apf-chip[data-v-fafcc1d2]{display:inline-flex;align-items:center;gap:6px;width:fit-content;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#eef2f2;color:var(--c-text-secondary);animation:apf-chip-in-fafcc1d2 .24s ease both}.apf-chip i[data-v-fafcc1d2]{width:6px;height:6px;border-radius:50%;background:currentColor}.apf-chip-running[data-v-fafcc1d2]{color:var(--c-running, #0060A2);background:#e8f4ff}.apf-chip-waiting[data-v-fafcc1d2]{color:var(--c-warning, #F09700);background:#fdf2df}.apf-chip-success[data-v-fafcc1d2]{color:var(--c-primary, #0060A2);background:var(--c-primary-soft, #e8f4ff)}.apf-chip-failed[data-v-fafcc1d2]{color:var(--c-danger, #E50113);background:var(--c-danger-soft, #fff8f7)}.apf-chip-cancelled[data-v-fafcc1d2]{color:var(--c-text-muted, #909399)}@keyframes apf-chip-in-fafcc1d2{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.apf-result-wrap[data-v-fafcc1d2],.apf-chip[data-v-fafcc1d2],.apf-live-dot[data-v-fafcc1d2],.apf-dots i[data-v-fafcc1d2]{animation:none}.apf-detail-block[data-v-fafcc1d2],.apf-detail-collapse[data-v-fafcc1d2],.apf-detail-content[data-v-fafcc1d2],.apf-chevron[data-v-fafcc1d2]{transition:none}}.apf-message-list[data-v-78110c0f]{flex:1;overflow-y:auto;padding:24px 32px;background:transparent}.apf-skeleton-line[data-v-78110c0f]{max-width:960px;margin:0 auto;padding:16px;background:var(--c-surface);border:1px solid var(--c-border-soft);border-radius:var(--radius)}.apf-skeleton[data-v-78110c0f]{background:linear-gradient(90deg,var(--c-bg) 25%,var(--c-bg-soft, #f0f0f0) 50%,var(--c-bg) 75%);background-size:200% 100%;animation:apf-skeleton-loading-78110c0f 1.5s ease infinite;border-radius:4px}@keyframes apf-skeleton-loading-78110c0f{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:767px){.apf-message-list[data-v-78110c0f]{padding:16px}}.apf-composer[data-v-5aa35898]{position:relative;flex:none;width:min(960px,calc(100% - 48px));margin:0 auto 20px;padding-top:14px}.apf-composer-field[data-v-5aa35898]{position:relative;display:flex;flex-direction:column;border:1.5px solid var(--c-border);border-radius:var(--radius-lg, 12px);background:var(--c-surface);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.apf-composer-field[data-v-5aa35898]:focus-within,.apf-composer-field[data-v-5aa35898]:hover:not(.apf-disabled){border-color:var(--c-primary, #0060A2);box-shadow:0 0 0 3px #0d6b6714,0 0 20px #5eb8b029}.apf-composer-field.apf-disabled[data-v-5aa35898]{background:#f4f6f6}.apf-pending-list[data-v-5aa35898]{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px 0}.apf-pending-chip[data-v-5aa35898]{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 8px;border:1px solid var(--c-border);border-radius:999px;background:#f4f6f6;font-size:12px}.apf-pending-chip.error[data-v-5aa35898]{border-color:#e8b4b4;color:#a33}.apf-pending-thumb[data-v-5aa35898]{width:22px;height:22px;border-radius:4px;object-fit:cover}.apf-pending-name[data-v-5aa35898]{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apf-pending-status[data-v-5aa35898]{color:var(--c-text-muted);font-size:11px}.apf-pending-status.apf-error[data-v-5aa35898]{color:#a33}.apf-pending-remove[data-v-5aa35898]{border:0;background:transparent;color:var(--c-text-muted);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.apf-file-input[data-v-5aa35898]{display:none}textarea[data-v-5aa35898]{display:block;width:100%;min-height:96px;max-height:220px;resize:none;padding:16px 18px 10px;border:0;border-radius:0;outline:none;background:transparent;line-height:1.5;font-size:14px;box-shadow:none}textarea[data-v-5aa35898]:disabled{color:var(--c-text-muted)}.apf-composer-footer[data-v-5aa35898]{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none;min-height:48px;padding:6px 12px 10px;border-top:1px solid transparent}.apf-composer-tools[data-v-5aa35898]{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.apf-cap-btn[data-v-5aa35898]{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--c-border);border-radius:50%;background:var(--c-surface);color:var(--c-text-secondary);cursor:pointer}.apf-cap-btn[data-v-5aa35898]:hover:not(:disabled){border-color:var(--c-primary, #0060A2);color:var(--c-primary, #0060A2)}.apf-cap-btn[data-v-5aa35898]:disabled{cursor:not-allowed;opacity:.55}.apf-send-btn[data-v-5aa35898]{flex:none;width:36px;height:36px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:var(--c-primary, #0060A2);color:#fff;cursor:pointer;font-size:18px;line-height:1}.apf-send-btn[data-v-5aa35898]:hover:not(:disabled){background:var(--c-primary-hover, #4581E9)}.apf-send-btn[data-v-5aa35898]:disabled{background:var(--c-border);cursor:not-allowed}.apf-composer-meta[data-v-5aa35898]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding:0 2px}.apf-cap-row[data-v-5aa35898]{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.apf-cap-chip[data-v-5aa35898]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text-secondary);font-size:11px}.apf-meta-right[data-v-5aa35898]{display:flex;align-items:center;gap:10px;flex:none;min-width:0}.apf-ws-status[data-v-5aa35898]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.apf-ws-dot[data-v-5aa35898]{display:block;width:8px;height:8px;border-radius:50%;background:#b7c2c1}.apf-ws-status.ok .apf-ws-dot[data-v-5aa35898]{background:#2f9e8f;box-shadow:0 0 0 3px #2f9e8f29}.apf-ws-status.pending .apf-ws-dot[data-v-5aa35898]{background:#d4a017;animation:apf-ws-pulse-5aa35898 1.1s ease-in-out infinite}.apf-ws-status.streaming .apf-ws-dot[data-v-5aa35898]{background:#5ecfc4;box-shadow:0 0 0 3px #5ecfc42e;animation:apf-ws-pulse-5aa35898 .9s ease-in-out infinite}.apf-ws-status.warn .apf-ws-dot[data-v-5aa35898]{background:#d4a017}.apf-ws-status.err .apf-ws-dot[data-v-5aa35898]{background:#c44;box-shadow:0 0 0 3px #cc444424}.apf-ws-status.idle .apf-ws-dot[data-v-5aa35898]{background:#b7c2c1}@keyframes apf-ws-pulse-5aa35898{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}.apf-hint[data-v-5aa35898]{flex:none;color:var(--c-text-muted);font-size:11px;text-align:right;white-space:nowrap}@media(max-width:600px){.apf-composer-tools[data-v-5aa35898]{gap:4px}textarea[data-v-5aa35898]{min-height:84px;padding:14px 14px 8px}.apf-composer-meta[data-v-5aa35898]{flex-direction:column;align-items:flex-start}.apf-meta-right[data-v-5aa35898]{width:100%;justify-content:space-between}.apf-hint[data-v-5aa35898]{display:none}}.apf-run-bar[data-v-843e05a9]{padding:12px 16px;border-bottom:1px solid var(--c-border-soft);background:var(--c-surface)}.apf-row[data-v-843e05a9]{display:flex;align-items:center;gap:12px}.apf-elapsed[data-v-843e05a9]{font-size:12px;color:var(--c-text-muted);font-variant-numeric:tabular-nums}.apf-btn-cancel[data-v-843e05a9]{margin-left:auto;padding:4px 12px;font-size:12px;border:1px solid var(--c-danger);border-radius:var(--radius);color:var(--c-danger);background:var(--c-surface);cursor:pointer}.apf-btn-cancel[data-v-843e05a9]:hover{background:var(--c-danger-soft)}.apf-error-text[data-v-843e05a9]{margin:8px 0 0;font-size:12px;color:var(--c-danger)}.apf-chip[data-v-843e05a9]{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#eef2f2;color:var(--c-text-secondary)}.apf-chip i[data-v-843e05a9]{width:6px;height:6px;border-radius:50%;background:currentColor}.apf-running[data-v-843e05a9]{color:var(--c-running, #0060A2);background:#e8f4ff}.apf-waiting[data-v-843e05a9]{color:var(--c-warning, #F09700);background:#fdf2df}.apf-success[data-v-843e05a9]{color:var(--c-primary, #0060A2);background:var(--c-primary-soft, #e8f4ff)}.apf-failed[data-v-843e05a9]{color:var(--c-danger, #E50113);background:var(--c-danger-soft, #fff8f7)}.apf-cancelled[data-v-843e05a9]{color:var(--c-text-muted, #909399)}.apf-approval-card[data-v-a05b0296]{margin:0 16px 16px;padding:16px;background:var(--c-surface);border:1px solid var(--c-border);border-left:3px solid var(--c-primary);border-radius:var(--radius)}.apf-approval-card.apf-dangerous[data-v-a05b0296]{border-left-color:var(--c-danger);background:var(--c-danger-soft)}.apf-header[data-v-a05b0296]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.apf-title[data-v-a05b0296]{font-weight:700;font-size:14px}.apf-danger-tag[data-v-a05b0296]{font-size:11px;font-weight:700;color:#fff;background:var(--c-danger);padding:1px 6px;border-radius:3px}.apf-prompt[data-v-a05b0296]{margin:0 0 12px;font-size:13px;line-height:1.6;color:var(--c-text-secondary)}.apf-field[data-v-a05b0296]{margin-bottom:10px}.apf-field label[data-v-a05b0296]{display:block;font-size:12px;color:var(--c-text-muted);margin-bottom:4px}.apf-field input[data-v-a05b0296],.apf-field textarea[data-v-a05b0296],.apf-field select[data-v-a05b0296]{display:block;width:100%;padding:8px 10px;border:1px solid var(--c-border);border-radius:var(--radius);font-size:13px;outline:none;background:var(--c-surface)}.apf-field input[data-v-a05b0296]:focus,.apf-field textarea[data-v-a05b0296]:focus,.apf-field select[data-v-a05b0296]:focus{border-color:var(--c-primary)}.apf-actions[data-v-a05b0296]{display:flex;gap:8px;justify-content:flex-end}.apf-btn[data-v-a05b0296]{padding:6px 16px;border-radius:var(--radius);font-size:13px;cursor:pointer;border:1px solid transparent}.apf-btn-primary[data-v-a05b0296]{background:var(--c-primary);color:#fff}.apf-btn-primary[data-v-a05b0296]:hover{background:var(--c-primary-hover)}.apf-btn-primary[data-v-a05b0296]:disabled{opacity:.5;cursor:not-allowed}.apf-btn-danger[data-v-a05b0296]{background:var(--c-danger);color:#fff}.apf-btn-danger[data-v-a05b0296]:hover{opacity:.9}.apf-btn-danger[data-v-a05b0296]:disabled{opacity:.5;cursor:not-allowed}