@apform-ui/core 1.1.0 → 1.4.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.
Files changed (122) hide show
  1. package/README.md +5 -0
  2. package/dist/__tests__/components.spec.d.ts +1 -0
  3. package/dist/apform-ui.css +1 -1
  4. package/dist/apform-ui.js +4141 -2635
  5. package/dist/apform-ui.umd.cjs +61 -57
  6. package/dist/components/AppDialog/AppDialog.vue.d.ts +48 -0
  7. package/dist/components/AppDialog/index.d.ts +1 -0
  8. package/dist/components/AppIcon/AppIcon.vue.d.ts +11 -0
  9. package/dist/components/AppIcon/index.d.ts +1 -0
  10. package/dist/components/AppPagination/AppPagination.vue.d.ts +26 -0
  11. package/dist/components/AppPagination/index.d.ts +1 -0
  12. package/dist/components/CardGridSkeleton/CardGridSkeleton.vue.d.ts +34 -0
  13. package/dist/components/CardGridSkeleton/index.d.ts +1 -0
  14. package/dist/components/CardTable/CardTable.vue.d.ts +28 -0
  15. package/dist/components/CardTable/index.d.ts +1 -0
  16. package/dist/components/Chat/ApprovalCard/ApprovalCard.vue.d.ts +12 -0
  17. package/dist/components/Chat/ApprovalCard/index.d.ts +1 -0
  18. package/dist/components/Chat/AssistantPicker/AssistantPicker.vue.d.ts +23 -0
  19. package/dist/components/Chat/AssistantPicker/index.d.ts +2 -0
  20. package/dist/components/Chat/AssistantPicker/types.d.ts +9 -0
  21. package/dist/components/Chat/Composer/Composer.vue.d.ts +32 -0
  22. package/dist/components/Chat/Composer/index.d.ts +1 -0
  23. package/dist/components/Chat/ConversationHeader/ConversationHeader.vue.d.ts +21 -0
  24. package/dist/components/Chat/ConversationHeader/index.d.ts +1 -0
  25. package/dist/components/Chat/MessageBubble/MessageBubble.vue.d.ts +23 -0
  26. package/dist/components/Chat/MessageBubble/index.d.ts +1 -0
  27. package/dist/components/Chat/MessageList/MessageList.vue.d.ts +24 -0
  28. package/dist/components/Chat/MessageList/index.d.ts +1 -0
  29. package/dist/components/Chat/ModelPicker/ModelPicker.vue.d.ts +16 -0
  30. package/dist/components/Chat/ModelPicker/index.d.ts +2 -0
  31. package/dist/components/Chat/ModelPicker/types.d.ts +6 -0
  32. package/dist/components/Chat/ProcessingDrawer/ProcessingDrawer.vue.d.ts +32 -0
  33. package/dist/components/Chat/ProcessingDrawer/index.d.ts +1 -0
  34. package/dist/components/Chat/RunStatusBar/RunStatusBar.vue.d.ts +12 -0
  35. package/dist/components/Chat/RunStatusBar/index.d.ts +1 -0
  36. package/dist/components/Chat/SessionSidebar/SessionSidebar.vue.d.ts +18 -0
  37. package/dist/components/Chat/SessionSidebar/index.d.ts +1 -0
  38. package/dist/components/Chat/message/AttachmentPreviewModal.vue.d.ts +18 -0
  39. package/dist/components/Chat/message/DocumentSummaryList.vue.d.ts +12 -0
  40. package/dist/components/Chat/message/MessageAttachmentList.vue.d.ts +11 -0
  41. package/dist/components/Chat/message/MessageParts.vue.d.ts +6 -0
  42. package/dist/components/Chat/message/index.d.ts +4 -0
  43. package/dist/components/ConfirmDialog/ConfirmDialog.vue.d.ts +26 -0
  44. package/dist/components/ConfirmDialog/index.d.ts +1 -0
  45. package/dist/components/ContentPanel/ContentPanel.vue.d.ts +31 -0
  46. package/dist/components/ContentPanel/index.d.ts +1 -0
  47. package/dist/components/DocumentPreview/DocumentPreviewDrawer.vue.d.ts +61 -0
  48. package/dist/components/DocumentPreview/DocumentPreviewPanel.vue.d.ts +53 -0
  49. package/dist/components/DocumentPreview/index.d.ts +3 -0
  50. package/dist/components/DocumentPreview/types.d.ts +33 -0
  51. package/dist/components/EmptyState/EmptyState.vue.d.ts +33 -0
  52. package/dist/components/EmptyState/index.d.ts +1 -0
  53. package/dist/components/ErrorBoundary/ErrorBoundary.vue.d.ts +39 -0
  54. package/dist/components/ErrorBoundary/index.d.ts +1 -0
  55. package/dist/components/FieldRow/FieldRow.vue.d.ts +23 -0
  56. package/dist/components/FieldRow/index.d.ts +1 -0
  57. package/dist/components/FilterBar/FilterBar.vue.d.ts +30 -0
  58. package/dist/components/FilterBar/index.d.ts +1 -0
  59. package/dist/components/FilterTabs/FilterTabs.vue.d.ts +21 -0
  60. package/dist/components/FilterTabs/index.d.ts +1 -0
  61. package/dist/components/FormDialog/FormDialog.vue.d.ts +44 -0
  62. package/dist/components/FormDialog/index.d.ts +1 -0
  63. package/dist/components/HintText/HintText.vue.d.ts +19 -0
  64. package/dist/components/HintText/index.d.ts +1 -0
  65. package/dist/components/JsonCard/JsonCard.vue.d.ts +20 -0
  66. package/dist/components/JsonCard/index.d.ts +1 -0
  67. package/dist/components/JsonDetailDialog/JsonDetailDialog.vue.d.ts +13 -0
  68. package/dist/components/JsonDetailDialog/index.d.ts +1 -0
  69. package/dist/components/LoadingDots/LoadingDots.vue.d.ts +10 -0
  70. package/dist/components/LoadingDots/index.d.ts +1 -0
  71. package/dist/components/PageHeader/PageHeader.vue.d.ts +28 -0
  72. package/dist/components/PageHeader/index.d.ts +1 -0
  73. package/dist/components/PageShell/PageShell.vue.d.ts +25 -0
  74. package/dist/components/PageShell/index.d.ts +1 -0
  75. package/dist/components/SchemaLitePreview/SchemaLitePreview.vue.d.ts +30 -0
  76. package/dist/components/SchemaLitePreview/index.d.ts +2 -0
  77. package/dist/components/SearchForm/SearchForm.vue.d.ts +39 -0
  78. package/dist/components/SearchForm/index.d.ts +2 -0
  79. package/dist/components/SectionToggle/SectionToggle.vue.d.ts +20 -0
  80. package/dist/components/SectionToggle/index.d.ts +1 -0
  81. package/dist/components/Skeleton/Skeleton.vue.d.ts +29 -0
  82. package/dist/components/Skeleton/index.d.ts +1 -0
  83. package/dist/components/StatusTag/StatusTag.vue.d.ts +21 -0
  84. package/dist/components/StatusTag/index.d.ts +2 -0
  85. package/dist/components/TableRowActions/TableRowActions.vue.d.ts +23 -0
  86. package/dist/components/TableRowActions/index.d.ts +2 -0
  87. package/dist/components/Toast/Toast.vue.d.ts +12 -0
  88. package/dist/components/Toast/index.d.ts +2 -0
  89. package/dist/components/TruncatedTooltipText/TruncatedTooltipText.vue.d.ts +22 -0
  90. package/dist/components/TruncatedTooltipText/index.d.ts +1 -0
  91. package/dist/components/UserAvatar/UserAvatar.vue.d.ts +26 -0
  92. package/dist/components/UserAvatar/index.d.ts +1 -0
  93. package/dist/composables/index.d.ts +9 -0
  94. package/dist/composables/useClientPagination.d.ts +15 -0
  95. package/dist/composables/useConfirm.d.ts +15 -0
  96. package/dist/composables/useDataLoading.d.ts +30 -0
  97. package/dist/composables/useDebounceFn.d.ts +1 -0
  98. package/dist/composables/useMessage.d.ts +8 -0
  99. package/dist/composables/useToast.d.ts +17 -0
  100. package/dist/index.d.ts +77 -0
  101. package/dist/stories/AppDialog.stories.d.ts +9 -0
  102. package/dist/stories/AppIcon.stories.d.ts +9 -0
  103. package/dist/stories/ApprovalCard.stories.d.ts +8 -0
  104. package/dist/stories/Composer.stories.d.ts +9 -0
  105. package/dist/stories/MessageBubble.stories.d.ts +10 -0
  106. package/dist/stories/RunStatusBar.stories.d.ts +8 -0
  107. package/dist/stories/StatusTag.stories.d.ts +8 -0
  108. package/dist/stories/useConfirm.stories.d.ts +5 -0
  109. package/dist/stories/useMessage.stories.d.ts +5 -0
  110. package/dist/tokens/index.d.ts +139 -0
  111. package/dist/types/chat.d.ts +121 -0
  112. package/dist/types/index.d.ts +1 -0
  113. package/dist/utils/attachmentKind.d.ts +7 -0
  114. package/dist/utils/iconRegistry.d.ts +7 -0
  115. package/dist/utils/index.d.ts +6 -0
  116. package/dist/utils/pagination.d.ts +8 -0
  117. package/dist/utils/resolveApiErrorMessage.d.ts +22 -0
  118. package/dist/utils/textParser.d.ts +20 -0
  119. package/package.json +3 -1
  120. package/src/tokens/index.ts +78 -0
  121. package/src/tokens/tokens.css +74 -5
  122. package/styles/element-override.css +155 -0
@@ -0,0 +1,22 @@
1
+ /**
2
+ * resolveApiErrorMessage — API 错误消息标准化
3
+ *
4
+ * 将各种格式的 API 错误转换为人类可读的错误消息。
5
+ * 来自 editor 项目,在 flow/ai 项目中有类似但不一致的实现。
6
+ *
7
+ * 用法:
8
+ * try {
9
+ * await apiCall()
10
+ * } catch (e) {
11
+ * msg.error(resolveApiErrorMessage(e))
12
+ * }
13
+ */
14
+ export interface ApiError {
15
+ code?: string;
16
+ message?: string;
17
+ errors?: Record<string, string[]>;
18
+ }
19
+ /**
20
+ * 从错误对象中提取可读的错误消息
21
+ */
22
+ export declare function resolveApiErrorMessage(error: unknown): string;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * 文本解析工具 — Markdown + 代码块分割
3
+ *
4
+ * 从 workflow-agent-chat/frontend/src/utils/textParser.ts 提取。
5
+ * 将消息正文拆成文本 / 代码块 / artifact 片段。
6
+ */
7
+ export interface TextPart {
8
+ type: 'text' | 'code' | 'artifact';
9
+ content: string;
10
+ language?: string;
11
+ artifactType?: 'code' | 'json' | 'html' | 'form';
12
+ }
13
+ /**
14
+ * 将消息正文拆成文本 / 代码块 / artifact 片段。
15
+ */
16
+ export declare function splitTextAndCodeBlocks(content: string): TextPart[];
17
+ /**
18
+ * Markdown → 安全 HTML。
19
+ */
20
+ export declare function renderMarkdown(content: string): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apform-ui/core",
3
- "version": "1.1.0",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "author": "yangdongnan",
6
6
  "license": "MIT",
@@ -35,6 +35,8 @@
35
35
  },
36
36
  "./tokens.css": "./src/tokens/tokens.css",
37
37
  "./design-tokens.css": "./src/tokens/design-tokens.css",
38
+ "./style.css": "./dist/apform-ui.css",
39
+ "./styles/element-override.css": "./styles/element-override.css",
38
40
  "./theme/*": "./src/theme/*",
39
41
  "./styles/*": "./styles/*"
40
42
  },
@@ -30,6 +30,22 @@ export const TEXT_COLORS = {
30
30
  inverse: '#FFFFFF',
31
31
  } as const
32
32
 
33
+ /** 字号(与 CSS --font-size-* 对齐) */
34
+ export const FONT_SIZE = {
35
+ 10: '10px',
36
+ 11: '11px',
37
+ 12: '12px',
38
+ 13: '13px',
39
+ 14: '14px',
40
+ 15: '15px',
41
+ 16: '16px',
42
+ 18: '18px',
43
+ 20: '20px',
44
+ 22: '22px',
45
+ 24: '24px',
46
+ 28: '28px',
47
+ } as const
48
+
33
49
  /** 间距 */
34
50
  export const SPACING = {
35
51
  xs: '4px',
@@ -39,13 +55,75 @@ export const SPACING = {
39
55
  xl: '32px',
40
56
  '2xl': '48px',
41
57
  '3xl': '64px',
58
+ 10: '10px',
59
+ 12: '12px',
60
+ 20: '20px',
61
+ } as const
62
+
63
+ /**
64
+ * 控件高度阶梯
65
+ * 全仓统计:32 > 28 > 24 > 40/44/48/60
66
+ */
67
+ export const CONTROL_HEIGHT = {
68
+ xs: '24px',
69
+ sm: '28px',
70
+ md: '32px',
71
+ lg: '40px',
72
+ xl: '44px',
73
+ } as const
74
+
75
+ /** 布局高度 */
76
+ export const LAYOUT_HEIGHT = {
77
+ header: '56px',
78
+ conversationHeader: '68px',
79
+ dialogFooter: '60px',
80
+ toolbar: '48px',
81
+ tabs: '40px',
82
+ listRow: '48px',
83
+ } as const
84
+
85
+ /** 图标尺寸 */
86
+ export const ICON_SIZE = {
87
+ xs: '12px',
88
+ sm: '14px',
89
+ md: '16px',
90
+ lg: '20px',
91
+ xl: '24px',
92
+ } as const
93
+
94
+ /** 页面边距 */
95
+ export const PAGE = {
96
+ paddingX: '24px',
97
+ paddingY: '24px',
98
+ headerPaddingTop: '28px',
99
+ sidebarWidth: '240px',
100
+ sidebarWidthCollapsed: '64px',
42
101
  } as const
43
102
 
44
103
  /** 圆角 */
45
104
  export const BORDER_RADIUS = {
46
105
  sm: '2px',
47
106
  md: '4px',
107
+ 6: '6px',
108
+ 8: '8px',
48
109
  lg: '10px',
110
+ xl: '12px',
111
+ full: '999px',
112
+ } as const
113
+
114
+ /** 表单布局 */
115
+ export const FORM = {
116
+ fieldWidth: '220px',
117
+ labelWidth: '96px',
118
+ fieldGap: '6px',
119
+ } as const
120
+
121
+ /** 头像尺寸 */
122
+ export const AVATAR_SIZE = {
123
+ sm: '24px',
124
+ md: '32px',
125
+ lg: '40px',
126
+ xl: '48px',
49
127
  } as const
50
128
 
51
129
  /** 阴影 */
@@ -16,14 +16,19 @@
16
16
  --font-family-number: 'Microsoft YaHei', '微软雅黑', 'DIN Alternate', Arial, sans-serif;
17
17
  --font-family-mono: Consolas, Monaco, monospace;
18
18
 
19
- /* 字体大小 */
19
+ /* 字体大小 — 覆盖全仓高频字号(11/12/13/14 占绝大多数) */
20
+ --font-size-10: 10px;
21
+ --font-size-11: 11px;
20
22
  --font-size-12: 12px;
21
23
  --font-size-13: 13px;
22
24
  --font-size-14: 14px;
25
+ --font-size-15: 15px;
23
26
  --font-size-16: 16px;
24
27
  --font-size-18: 18px;
25
28
  --font-size-20: 20px;
29
+ --font-size-22: 22px;
26
30
  --font-size-24: 24px;
31
+ --font-size-28: 28px;
27
32
 
28
33
  /* 字重 */
29
34
  --font-weight-regular: 400;
@@ -113,14 +118,75 @@
113
118
  --overlay-bg: rgba(0, 0, 0, 0.4);
114
119
 
115
120
  /* ---------- 尺寸系统 ---------- */
116
- --button-height: 32px;
117
- --button-height-lg: 40px;
118
- --input-height: 32px;
119
- --detail-item-height: 48px;
121
+ /**
122
+ * 控件高度阶梯(全仓 height 统计:32 > 28 > 24 > 40/44/48/60)
123
+ * 业务代码请优先用 --control-height-*,勿再写死 px
124
+ */
125
+ --control-height-xs: 24px;
126
+ --control-height-sm: 28px;
127
+ --control-height-md: 32px;
128
+ --control-height-lg: 40px;
129
+ --control-height-xl: 44px;
130
+
131
+ /* 语义别名(兼容历史变量名) */
132
+ --button-height: var(--control-height-md);
133
+ --button-height-sm: var(--control-height-sm);
134
+ --button-height-lg: var(--control-height-lg);
135
+ --input-height: var(--control-height-md);
136
+ --input-height-sm: var(--control-height-sm);
137
+ --input-height-lg: var(--control-height-lg);
138
+
139
+ /* 列表 / 详情行 */
140
+ --list-row-height: 48px;
141
+ --detail-item-height: var(--list-row-height);
142
+ --table-cell-padding-y: 8px;
143
+
144
+ /* 布局高度 */
145
+ --header-height: 56px;
146
+ --conversation-header-height: 68px;
120
147
  --dialog-footer-height: 60px;
148
+ --toolbar-height: 48px;
149
+ --tabs-height: 40px;
150
+
151
+ /* 侧栏 / 页面边距 */
152
+ --sidebar-width: 240px;
153
+ --sidebar-width-collapsed: 64px;
154
+ --page-padding-x: 24px;
155
+ --page-padding-y: 24px;
156
+ --page-padding-bottom: var(--page-padding-y);
157
+ --page-header-padding-top: 28px;
158
+
159
+ /* 图标尺寸阶梯 */
160
+ --icon-size-xs: 12px;
161
+ --icon-size-sm: 14px;
162
+ --icon-size-md: 16px;
163
+ --icon-size-lg: 20px;
164
+ --icon-size-xl: 24px;
165
+
166
+ /* 圆角(含聊天 / Tabs 常用 6、8) */
121
167
  --border-radius-sm: 2px;
122
168
  --border-radius-md: 4px;
169
+ --border-radius-6: 6px;
170
+ --border-radius-8: 8px;
123
171
  --border-radius-lg: 10px;
172
+ --border-radius-xl: 12px;
173
+ --border-radius-full: 999px;
174
+
175
+ /* 表单布局 */
176
+ --form-field-width: 220px;
177
+ --form-label-width: 96px;
178
+ --form-field-gap: 6px;
179
+
180
+ /* 头像尺寸 */
181
+ --avatar-size-sm: 24px;
182
+ --avatar-size-md: 32px;
183
+ --avatar-size-lg: 40px;
184
+ --avatar-size-xl: 48px;
185
+
186
+ /* Composer / 多行输入 */
187
+ --composer-textarea-min-height: 96px;
188
+ --composer-textarea-min-height-mobile: 84px;
189
+ --composer-textarea-max-height: 220px;
124
190
 
125
191
  /* 间距 */
126
192
  --spacing-xs: 4px;
@@ -128,6 +194,9 @@
128
194
  --spacing-md: 16px;
129
195
  --spacing-lg: 24px;
130
196
  --spacing-xl: 32px;
197
+ --spacing-2xl: 48px;
198
+ --spacing-3xl: 64px;
131
199
  --spacing-10px: 10px;
200
+ --spacing-12px: 12px;
132
201
  --spacing-20px: 20px;
133
202
  }
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Element Plus 表单 / 按钮尺寸覆盖
3
+ *
4
+ * 依赖 tokens.css 中的 --control-height-* / --button-height / --input-height。
5
+ * 用法:
6
+ * import '@apform-ui/core/design-tokens.css'
7
+ * import '@apform-ui/core/styles/element-override.css'
8
+ */
9
+
10
+ :root {
11
+ --el-component-size: var(--control-height-md);
12
+ --el-component-size-small: var(--control-height-xs);
13
+ --el-component-size-large: var(--control-height-lg);
14
+ --el-font-size-base: var(--font-size-14);
15
+ --el-font-size-small: var(--font-size-12);
16
+ --el-font-size-large: var(--font-size-16);
17
+ --el-border-radius-base: var(--border-radius-sm);
18
+ --el-border-radius-small: var(--border-radius-sm);
19
+ --el-pagination-button-height: var(--input-height);
20
+ --el-pagination-button-width: var(--input-height);
21
+ --el-pagination-button-height-small: var(--control-height-xs);
22
+ --el-pagination-button-width-small: var(--control-height-xs);
23
+ }
24
+
25
+ /* ---------- Button ---------- */
26
+ .el-button {
27
+ height: var(--button-height);
28
+ padding: 0 var(--spacing-md);
29
+ border-radius: var(--border-radius-sm);
30
+ font-size: var(--font-size-14);
31
+ font-weight: var(--font-weight-medium);
32
+ }
33
+
34
+ .el-button.el-button--small {
35
+ height: var(--control-height-xs);
36
+ padding: 0 var(--spacing-sm);
37
+ font-size: var(--font-size-12);
38
+ }
39
+
40
+ .el-button.el-button--large {
41
+ height: var(--button-height-lg);
42
+ padding: 0 var(--spacing-lg);
43
+ font-size: var(--font-size-16);
44
+ }
45
+
46
+ .el-button.is-circle {
47
+ width: var(--button-height);
48
+ height: var(--button-height);
49
+ padding: 0;
50
+ border-radius: 50%;
51
+ }
52
+
53
+ .el-button--small.is-circle {
54
+ width: var(--control-height-xs);
55
+ height: var(--control-height-xs);
56
+ }
57
+
58
+ .el-button--large.is-circle {
59
+ width: var(--control-height-lg);
60
+ height: var(--control-height-lg);
61
+ }
62
+
63
+ .el-button.is-link,
64
+ .el-button.is-text {
65
+ height: auto;
66
+ padding: 0;
67
+ }
68
+
69
+ /* ---------- Input / Select / Date ---------- */
70
+ .el-input:not(.el-textarea),
71
+ .el-select,
72
+ .el-date-editor,
73
+ .el-cascader,
74
+ .el-input-number {
75
+ --el-input-height: var(--input-height);
76
+ }
77
+
78
+ .el-input:not(.el-input--small):not(.el-input--large):not(.el-textarea) .el-input__wrapper {
79
+ min-height: var(--input-height);
80
+ box-sizing: border-box;
81
+ }
82
+
83
+ .el-input:not(.el-input--small):not(.el-input--large):not(.el-textarea) .el-input__inner {
84
+ height: var(--input-height);
85
+ line-height: var(--input-height);
86
+ }
87
+
88
+ .el-input--small:not(.el-textarea) .el-input__wrapper,
89
+ .el-select--small .el-select__wrapper {
90
+ min-height: var(--control-height-md);
91
+ height: var(--control-height-md);
92
+ box-sizing: border-box;
93
+ }
94
+
95
+ .el-select:not(.el-select--small):not(.el-select--large) .el-select__wrapper {
96
+ min-height: var(--input-height);
97
+ height: var(--input-height);
98
+ box-sizing: border-box;
99
+ }
100
+
101
+ .el-input--large:not(.el-textarea) .el-input__wrapper,
102
+ .el-select--large .el-select__wrapper {
103
+ min-height: var(--control-height-lg);
104
+ height: var(--control-height-lg);
105
+ box-sizing: border-box;
106
+ }
107
+
108
+ .el-textarea {
109
+ height: auto;
110
+ line-height: var(--line-height-normal);
111
+ }
112
+
113
+ /* ---------- Radio button group ---------- */
114
+ .el-radio-button__inner {
115
+ height: var(--button-height);
116
+ padding: 0 15px;
117
+ display: inline-flex;
118
+ align-items: center;
119
+ box-sizing: border-box;
120
+ font-size: var(--font-size-14);
121
+ }
122
+
123
+ .el-radio-button--large .el-radio-button__inner {
124
+ height: var(--button-height-lg);
125
+ }
126
+
127
+ /* ---------- Pagination ---------- */
128
+ .el-pagination {
129
+ align-items: center;
130
+ }
131
+
132
+ .el-pagination .el-pagination__total,
133
+ .el-pagination .el-pagination__sizes,
134
+ .el-pagination .btn-prev,
135
+ .el-pagination .btn-next,
136
+ .el-pagination .el-pager li,
137
+ .el-pagination .el-pagination__jump {
138
+ height: var(--input-height);
139
+ line-height: var(--input-height);
140
+ min-width: var(--input-height);
141
+ box-sizing: border-box;
142
+ }
143
+
144
+ .el-pagination .el-pagination__sizes .el-select .el-select__wrapper {
145
+ min-height: var(--input-height);
146
+ height: var(--input-height);
147
+ }
148
+
149
+ .el-pagination.el-pagination--small .btn-prev,
150
+ .el-pagination.el-pagination--small .btn-next,
151
+ .el-pagination.el-pagination--small .el-pager li {
152
+ height: var(--control-height-xs);
153
+ line-height: var(--control-height-xs);
154
+ min-width: var(--control-height-xs);
155
+ }