@zhama/a2ui 0.10.4 → 0.11.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 (49) hide show
  1. package/README.md +179 -70
  2. package/dist/{a2ui-CnaCcq4c.d.ts → a2ui-CZYqbeoz.d.ts} +2 -1
  3. package/dist/{a2ui-vyxwZCoa.d.cts → a2ui-Dpl-E-Do.d.cts} +2 -1
  4. package/dist/context/index.cjs +702 -1
  5. package/dist/context/index.d.cts +35 -2
  6. package/dist/context/index.d.ts +35 -2
  7. package/dist/context/index.js +702 -1
  8. package/dist/data/index.cjs +2 -2
  9. package/dist/data/index.d.cts +3 -2
  10. package/dist/data/index.d.ts +3 -2
  11. package/dist/data/index.js +2 -2
  12. package/dist/events/index.d.cts +3 -2
  13. package/dist/events/index.d.ts +3 -2
  14. package/dist/index-BvhdLkQ7.d.ts +111 -0
  15. package/dist/{index-DCv59E9u.d.cts → index-CWQNUF1X.d.ts} +65 -20
  16. package/dist/index-Ccel8ysN.d.cts +111 -0
  17. package/dist/index-CfG_a073.d.cts +143 -0
  18. package/dist/{index-CEWReOmS.d.ts → index-DF2gGMk6.d.ts} +1 -1
  19. package/dist/index-DZnukf8z.d.ts +143 -0
  20. package/dist/{index-CfuPxsd1.d.cts → index-DfVLIScc.d.cts} +1 -1
  21. package/dist/{index-DKh6MRhF.d.cts → index-K0C1W74m.d.ts} +26 -15
  22. package/dist/{index-BJe-XUR4.d.ts → index-PGBpNFSS.d.cts} +26 -15
  23. package/dist/{index-BWAU7Xp2.d.ts → index-nNr2JOQb.d.cts} +65 -20
  24. package/dist/index.cjs +702 -2
  25. package/dist/index.d.cts +71 -8
  26. package/dist/index.d.ts +71 -8
  27. package/dist/index.js +702 -2
  28. package/dist/styles/index.cjs +702 -1
  29. package/dist/styles/index.d.cts +3 -2
  30. package/dist/styles/index.d.ts +3 -2
  31. package/dist/styles/index.js +702 -1
  32. package/dist/types/index.cjs +1 -1
  33. package/dist/types/index.d.cts +2 -2
  34. package/dist/types/index.d.ts +2 -2
  35. package/dist/types/index.js +1 -0
  36. package/dist/{types-CtrG7MJe.d.cts → types-Csi2jaoN.d.cts} +122 -178
  37. package/dist/{types-CtrG7MJe.d.ts → types-Csi2jaoN.d.ts} +122 -178
  38. package/dist/ui/index.cjs +2 -2
  39. package/dist/ui/index.d.cts +4 -3
  40. package/dist/ui/index.d.ts +4 -3
  41. package/dist/ui/index.js +2 -2
  42. package/package.json +3 -19
  43. package/dist/index-Bgqafemj.d.ts +0 -106
  44. package/dist/index-BltkjFKi.d.ts +0 -67
  45. package/dist/index-Bzqwwd1k.d.cts +0 -106
  46. package/dist/index-CLn74O53.d.cts +0 -67
  47. package/dist/styles/a2ui-variables.css +0 -106
  48. package/dist/styles/a2ui.css +0 -143
  49. package/tailwind.preset.js +0 -326
@@ -1,67 +0,0 @@
1
- import { j as Theme } from './types-CtrG7MJe.cjs';
2
-
3
- /**
4
- * A2UI Style Utilities
5
- */
6
- /**
7
- * 合并多个 class 映射,后面的会覆盖前面的相同前缀的类
8
- */
9
- declare function merge(...classes: Array<Record<string, boolean>>): Record<string, boolean>;
10
- /**
11
- * 将类追加到目标对象的所有属性
12
- */
13
- declare function appendToAll(target: Record<string, string[]>, exclusions: string[], ...classes: Array<Record<string, boolean>>): Record<string, string[]>;
14
- /**
15
- * 将类名映射转换为 className 字符串
16
- */
17
- declare function classesToString(classes: Record<string, boolean>): string;
18
- /**
19
- * 将样式对象转换为 React CSSProperties
20
- */
21
- declare function stylesToCSS(styles: Record<string, string>): React.CSSProperties;
22
-
23
- /**
24
- * A2UI Default Theme
25
- *
26
- * 完全匹配 packages/ui 设计系统
27
- * 基于 shadcn + Tailwind + Radix UI
28
- */
29
-
30
- /**
31
- * 默认主题配置
32
- * 现代化、专业的 UI 视觉风格
33
- */
34
- declare const defaultTheme: Theme;
35
- /**
36
- * 创建自定义主题
37
- */
38
- declare function createTheme(customTheme: Partial<Theme>): Theme;
39
-
40
- /**
41
- * A2UI Styles Module
42
- *
43
- * 导出:
44
- * - 主题配置 (defaultTheme, createTheme)
45
- * - 样式工具函数 (merge, classesToString, etc.)
46
- *
47
- * CSS 变量和基础样式:
48
- * @import '@zhama/a2ui/styles/a2ui.css';
49
- *
50
- * 仅变量:
51
- * @import '@zhama/a2ui/styles/a2ui-variables.css';
52
- *
53
- * Tailwind 预设:
54
- * import a2uiPreset from '@zhama/a2ui/tailwind.preset';
55
- */
56
-
57
- declare const index_appendToAll: typeof appendToAll;
58
- declare const index_classesToString: typeof classesToString;
59
- declare const index_createTheme: typeof createTheme;
60
- declare const index_defaultTheme: typeof defaultTheme;
61
- declare const index_merge: typeof merge;
62
- declare const index_stylesToCSS: typeof stylesToCSS;
63
- declare namespace index {
64
- export { index_appendToAll as appendToAll, index_classesToString as classesToString, index_createTheme as createTheme, index_defaultTheme as defaultTheme, index_merge as merge, index_stylesToCSS as stylesToCSS };
65
- }
66
-
67
- export { appendToAll as a, createTheme as b, classesToString as c, defaultTheme as d, index as i, merge as m, stylesToCSS as s };
@@ -1,106 +0,0 @@
1
- /**
2
- * A2UI Default CSS Variables
3
- *
4
- * 基于 shadcn/ui 的设计系统,提供完整的 CSS 变量定义
5
- *
6
- * 使用方式:
7
- * 1. 直接导入:@import '@zhama/a2ui/styles/a2ui-variables.css';
8
- * 2. 可选覆盖:在导入后重新定义 :root 中的变量
9
- */
10
-
11
- /* ============ 亮色主题 ============ */
12
- :root {
13
- /* 基础颜色 */
14
- --background: 0 0% 100%;
15
- --foreground: 222.2 84% 4.9%;
16
-
17
- /* 卡片颜色 */
18
- --card: 0 0% 100%;
19
- --card-foreground: 222.2 84% 4.9%;
20
-
21
- /* 弹出层颜色 */
22
- --popover: 0 0% 100%;
23
- --popover-foreground: 222.2 84% 4.9%;
24
-
25
- /* 主色调 - 蓝色系 */
26
- --primary: 221.2 83.2% 53.3%;
27
- --primary-foreground: 210 40% 98%;
28
-
29
- /* 次要色 */
30
- --secondary: 210 40% 96.1%;
31
- --secondary-foreground: 222.2 47.4% 11.2%;
32
-
33
- /* 柔和色 - 用于背景 */
34
- --muted: 210 40% 96.1%;
35
- --muted-foreground: 215.4 16.3% 46.9%;
36
-
37
- /* 强调色 */
38
- --accent: 210 40% 96.1%;
39
- --accent-foreground: 222.2 47.4% 11.2%;
40
-
41
- /* 危险色 - 红色系 */
42
- --destructive: 0 84.2% 60.2%;
43
- --destructive-foreground: 210 40% 98%;
44
-
45
- /* 边框和输入框 */
46
- --border: 214.3 31.8% 91.4%;
47
- --input: 214.3 31.8% 91.4%;
48
- --ring: 221.2 83.2% 53.3%;
49
-
50
- /* 圆角 */
51
- --radius: 0.5rem;
52
-
53
- /* 字体 */
54
- --font-sans:
55
- 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
56
- 'Helvetica Neue', sans-serif;
57
- --font-mono:
58
- 'Fira Code', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New',
59
- monospace;
60
- }
61
-
62
- /* ============ 深色主题 ============ */
63
- .dark {
64
- --background: 222.2 84% 4.9%;
65
- --foreground: 210 40% 98%;
66
-
67
- --card: 222.2 84% 4.9%;
68
- --card-foreground: 210 40% 98%;
69
-
70
- --popover: 222.2 84% 4.9%;
71
- --popover-foreground: 210 40% 98%;
72
-
73
- --primary: 217.2 91.2% 59.8%;
74
- --primary-foreground: 222.2 47.4% 11.2%;
75
-
76
- --secondary: 217.2 32.6% 17.5%;
77
- --secondary-foreground: 210 40% 98%;
78
-
79
- --muted: 217.2 32.6% 17.5%;
80
- --muted-foreground: 215 20.2% 65.1%;
81
-
82
- --accent: 217.2 32.6% 17.5%;
83
- --accent-foreground: 210 40% 98%;
84
-
85
- --destructive: 0 62.8% 30.6%;
86
- --destructive-foreground: 210 40% 98%;
87
-
88
- --border: 217.2 32.6% 17.5%;
89
- --input: 217.2 32.6% 17.5%;
90
- --ring: 224.3 76.3% 48%;
91
- }
92
-
93
- /*
94
- * ============ 注意 ============
95
- *
96
- * 此文件只包含 CSS 变量定义,不包含全局样式。
97
- * 全局样式(如 html/body 高度、字体、滚动条等)应由使用方自行定义。
98
- *
99
- * 使用方可参考以下样式添加到自己的 globals.css:
100
- *
101
- * html, body, #root { height: 100%; width: 100%; }
102
- * body {
103
- * background-color: hsl(var(--background));
104
- * color: hsl(var(--foreground));
105
- * }
106
- */
@@ -1,143 +0,0 @@
1
- /**
2
- * A2UI Unified CSS
3
- *
4
- * 包含:
5
- * 1. 完整的 CSS 变量定义 (Design Tokens)
6
- * 2. 基础元素样式重置 (Base/Reset)
7
- * 3. A2UI 核心布局类 (.a2ui-root)
8
- */
9
-
10
- @import './a2ui-variables.css';
11
-
12
- /* ============ 核心容器样式 ============ */
13
- .a2ui-root {
14
- /* 基础文字样式 */
15
- font-family: var(--font-sans);
16
- background-color: hsl(var(--background));
17
- background-image:
18
- radial-gradient(at 0% 0%, hsla(var(--primary), 0.08) 0px, transparent 50%),
19
- radial-gradient(at 100% 0%, hsla(var(--accent), 0.05) 0px, transparent 50%),
20
- radial-gradient(
21
- at 50% 100%,
22
- hsla(var(--primary), 0.03) 0px,
23
- transparent 50%
24
- );
25
- color: hsl(var(--foreground));
26
- -webkit-font-smoothing: antialiased;
27
- -moz-osx-font-smoothing: grayscale;
28
-
29
- /* 容器布局 */
30
- width: 100%;
31
- height: 100%;
32
- overflow: auto;
33
- box-sizing: border-box;
34
- padding-top: 2rem;
35
- }
36
-
37
- /* ============ 列表微调 ============ */
38
- .a2ui-list {
39
- max-width: 900px;
40
- margin-left: auto;
41
- margin-right: auto;
42
- }
43
-
44
- /* ============ 装饰性背景 ============ */
45
- .a2ui-bg-dot {
46
- background-image: radial-gradient(
47
- hsl(var(--foreground) / 0.1) 1px,
48
- transparent 1px
49
- );
50
- background-size: 20px 20px;
51
- }
52
-
53
- .a2ui-bg-grid {
54
- background-image:
55
- linear-gradient(hsl(var(--foreground) / 0.05) 1px, transparent 1px),
56
- linear-gradient(90deg, hsl(var(--foreground) / 0.05) 1px, transparent 1px);
57
- background-size: 20px 20px;
58
- }
59
-
60
- /* ============ 玻璃拟态 ============ */
61
- .a2ui-glass {
62
- background: hsla(var(--background), 0.8);
63
- backdrop-filter: blur(8px);
64
- -webkit-backdrop-filter: blur(8px);
65
- border: 1px solid hsla(var(--border), 0.5);
66
- }
67
-
68
- /* ============ 卡片装饰 ============ */
69
- .a2ui-card-gradient {
70
- background: linear-gradient(
71
- 135deg,
72
- hsl(var(--card)),
73
- hsl(var(--muted) / 0.3)
74
- );
75
- }
76
-
77
- /* ============ 渐变文字 ============ */
78
- .a2ui-text-gradient {
79
- background: linear-gradient(
80
- to bottom right,
81
- hsl(var(--foreground)),
82
- hsl(var(--primary))
83
- );
84
- -webkit-background-clip: text;
85
- -webkit-text-fill-color: transparent;
86
- background-clip: text;
87
- }
88
-
89
- /* 确保内部所有元素使用 border-box */
90
- .a2ui-root *,
91
- .a2ui-root *::before,
92
- .a2ui-root *::after {
93
- box-sizing: border-box;
94
- }
95
-
96
- /* ============ 基础元素 Reset (仅在 .a2ui-root 内生效) ============ */
97
- .a2ui-root h1,
98
- .a2ui-root h2,
99
- .a2ui-root h3,
100
- .a2ui-root h4,
101
- .a2ui-root h5,
102
- .a2ui-root h6 {
103
- margin: 0;
104
- font-weight: 600;
105
- line-height: 1.25;
106
- }
107
-
108
- .a2ui-root p {
109
- margin: 0;
110
- }
111
-
112
- .a2ui-root ul,
113
- .a2ui-root ol {
114
- margin: 0;
115
- padding: 0;
116
- list-style: none;
117
- }
118
-
119
- /* ============ 滚动条样式 ============ */
120
- .a2ui-root::-webkit-scrollbar {
121
- width: 6px;
122
- height: 6px;
123
- }
124
-
125
- .a2ui-root::-webkit-scrollbar-track {
126
- background: transparent;
127
- }
128
-
129
- .a2ui-root::-webkit-scrollbar-thumb {
130
- background: hsl(var(--muted-foreground) / 0.3);
131
- border-radius: 3px;
132
- }
133
-
134
- .a2ui-root::-webkit-scrollbar-thumb:hover {
135
- background: hsl(var(--muted-foreground) / 0.5);
136
- }
137
-
138
- /* ============ 辅助类 ============ */
139
- .a2ui-full-screen {
140
- position: fixed;
141
- inset: 0;
142
- z-index: 50;
143
- }
@@ -1,326 +0,0 @@
1
- /**
2
- * A2UI Tailwind CSS Preset
3
- *
4
- * 提供 A2UI 组件所需的完整 Tailwind 配置
5
- *
6
- * 使用方式:
7
- * // tailwind.config.js
8
- * import a2uiPreset from '@zhama/a2ui/tailwind.preset'
9
- *
10
- * export default {
11
- * presets: [a2uiPreset],
12
- * content: [
13
- * './src/**\/*.{js,ts,jsx,tsx}',
14
- * './node_modules/@zhama/a2ui/**\/*.{js,ts,jsx,tsx}',
15
- * ],
16
- * }
17
- */
18
-
19
- /** @type {import('tailwindcss').Config} */
20
- module.exports = {
21
- darkMode: ['class'],
22
- theme: {
23
- container: {
24
- center: true,
25
- padding: '2rem',
26
- screens: {
27
- '2xl': '1400px',
28
- },
29
- },
30
- extend: {
31
- // shadcn 颜色系统 - 基于 CSS 变量
32
- colors: {
33
- border: 'hsl(var(--border))',
34
- input: 'hsl(var(--input))',
35
- ring: 'hsl(var(--ring))',
36
- background: 'hsl(var(--background))',
37
- foreground: 'hsl(var(--foreground))',
38
- primary: {
39
- DEFAULT: 'hsl(var(--primary))',
40
- foreground: 'hsl(var(--primary-foreground))',
41
- },
42
- secondary: {
43
- DEFAULT: 'hsl(var(--secondary))',
44
- foreground: 'hsl(var(--secondary-foreground))',
45
- },
46
- destructive: {
47
- DEFAULT: 'hsl(var(--destructive))',
48
- foreground: 'hsl(var(--destructive-foreground))',
49
- },
50
- muted: {
51
- DEFAULT: 'hsl(var(--muted))',
52
- foreground: 'hsl(var(--muted-foreground))',
53
- },
54
- accent: {
55
- DEFAULT: 'hsl(var(--accent))',
56
- foreground: 'hsl(var(--accent-foreground))',
57
- },
58
- popover: {
59
- DEFAULT: 'hsl(var(--popover))',
60
- foreground: 'hsl(var(--popover-foreground))',
61
- },
62
- card: {
63
- DEFAULT: 'hsl(var(--card))',
64
- foreground: 'hsl(var(--card-foreground))',
65
- },
66
- },
67
- borderRadius: {
68
- lg: 'var(--radius)',
69
- md: 'calc(var(--radius) - 2px)',
70
- sm: 'calc(var(--radius) - 4px)',
71
- },
72
- fontFamily: {
73
- sans: [
74
- 'var(--font-sans)',
75
- 'Inter',
76
- '-apple-system',
77
- 'BlinkMacSystemFont',
78
- 'Segoe UI',
79
- 'Roboto',
80
- 'sans-serif',
81
- ],
82
- mono: ['var(--font-mono)', 'Fira Code', 'Monaco', 'Consolas', 'monospace'],
83
- },
84
- keyframes: {
85
- 'accordion-down': {
86
- from: { height: '0' },
87
- to: { height: 'var(--radix-accordion-content-height)' },
88
- },
89
- 'accordion-up': {
90
- from: { height: 'var(--radix-accordion-content-height)' },
91
- to: { height: '0' },
92
- },
93
- fadeIn: {
94
- '0%': { opacity: '0' },
95
- '100%': { opacity: '1' },
96
- },
97
- slideUp: {
98
- '0%': { opacity: '0', transform: 'translateY(10px)' },
99
- '100%': { opacity: '1', transform: 'translateY(0)' },
100
- },
101
- },
102
- animation: {
103
- 'accordion-down': 'accordion-down 0.2s ease-out',
104
- 'accordion-up': 'accordion-up 0.2s ease-out',
105
- 'fade-in': 'fadeIn 0.3s ease-out',
106
- 'slide-up': 'slideUp 0.3s ease-out',
107
- },
108
- },
109
- },
110
-
111
- // 安全列表:强制生成 A2UI 主题中使用的所有样式类
112
- safelist: [
113
- // ============ 布局 ============
114
- 'flex',
115
- 'inline-flex',
116
- 'grid',
117
- 'block',
118
- 'hidden',
119
- 'items-center',
120
- 'items-start',
121
- 'items-end',
122
- 'items-stretch',
123
- 'justify-center',
124
- 'justify-between',
125
- 'justify-start',
126
- 'justify-end',
127
- 'justify-around',
128
- 'justify-evenly',
129
- 'flex-col',
130
- 'flex-row',
131
- 'flex-wrap',
132
- 'space-y-1',
133
- 'space-y-2',
134
- 'space-y-3',
135
- 'space-y-4',
136
- 'space-x-1',
137
- 'space-x-2',
138
- 'space-x-3',
139
- 'space-x-4',
140
- 'gap-1',
141
- 'gap-1.5',
142
- 'gap-2',
143
- 'gap-3',
144
- 'gap-4',
145
- 'gap-6',
146
- 'w-full',
147
- 'w-4',
148
- 'w-5',
149
- 'w-6',
150
- 'w-10',
151
- 'w-24',
152
- 'w-48',
153
- 'h-10',
154
- 'h-4',
155
- 'h-5',
156
- 'h-6',
157
- 'h-auto',
158
- 'h-32',
159
- 'max-w-full',
160
- 'max-w-lg',
161
- 'max-h-96',
162
- 'relative',
163
- 'absolute',
164
- 'fixed',
165
- 'inset-0',
166
- 'group',
167
-
168
- // ============ 响应式网格 ============
169
- 'grid-cols-1',
170
- 'md:grid-cols-2',
171
- 'lg:grid-cols-3',
172
-
173
- // ============ 边框 ============
174
- 'border',
175
- 'border-0',
176
- 'border-2',
177
- 'border-t',
178
- 'border-b',
179
- 'border-l-4',
180
- 'border-border',
181
- 'border-input',
182
- 'border-primary',
183
- 'rounded-sm',
184
- 'rounded-md',
185
- 'rounded-lg',
186
- 'rounded-xl',
187
- 'rounded-full',
188
- 'rounded-t-md',
189
-
190
- // ============ 背景颜色 ============
191
- 'bg-card',
192
- 'bg-background',
193
- 'bg-primary',
194
- 'bg-muted',
195
- 'bg-secondary',
196
- 'bg-accent',
197
- 'bg-black/50',
198
- 'bg-transparent',
199
-
200
- // ============ 文字颜色 ============
201
- 'text-card-foreground',
202
- 'text-foreground',
203
- 'text-primary-foreground',
204
- 'text-muted-foreground',
205
- 'text-primary',
206
- 'text-secondary-foreground',
207
- 'text-destructive-foreground',
208
- 'text-accent-foreground',
209
- 'text-primary-foreground/70',
210
- 'text-white',
211
-
212
- // ============ 文字大小和样式 ============
213
- 'text-xs',
214
- 'text-sm',
215
- 'text-base',
216
- 'text-lg',
217
- 'text-xl',
218
- 'text-2xl',
219
- 'font-medium',
220
- 'font-semibold',
221
- 'font-bold',
222
- 'font-mono',
223
- 'tracking-tight',
224
- 'leading-none',
225
- 'leading-tight',
226
- 'leading-snug',
227
- 'leading-normal',
228
- 'leading-relaxed',
229
- 'whitespace-nowrap',
230
- 'italic',
231
-
232
- // ============ 间距 ============
233
- 'p-1',
234
- 'p-2',
235
- 'p-3',
236
- 'p-4',
237
- 'p-5',
238
- 'p-6',
239
- 'p-8',
240
- 'px-1',
241
- 'px-1.5',
242
- 'px-2',
243
- 'px-3',
244
- 'px-4',
245
- 'px-5',
246
- 'px-6',
247
- 'py-0.5',
248
- 'py-1',
249
- 'py-2',
250
- 'py-2.5',
251
- 'py-3',
252
- 'py-4',
253
- 'mx-4',
254
- 'my-4',
255
- 'mb-2',
256
- 'mb-3',
257
- 'mb-4',
258
- 'mt-2',
259
- 'pl-4',
260
- '-mb-px',
261
-
262
- // ============ 阴影 ============
263
- 'shadow-sm',
264
- 'shadow-md',
265
- 'shadow-lg',
266
- 'shadow-xl',
267
-
268
- // ============ 过渡和动画 ============
269
- 'transition-all',
270
- 'transition-colors',
271
- 'transition-shadow',
272
- 'transition-transform',
273
- 'duration-150',
274
- 'duration-200',
275
- 'duration-300',
276
- 'backdrop-blur-sm',
277
-
278
- // ============ 悬停效果 ============
279
- 'hover:bg-primary/90',
280
- 'hover:bg-muted/80',
281
- 'hover:bg-secondary/80',
282
- 'hover:shadow-md',
283
- 'hover:shadow-lg',
284
- 'hover:shadow-xl',
285
- 'hover:-translate-y-0.5',
286
- 'hover:underline',
287
- 'hover:border-primary',
288
- 'hover:scale-105',
289
-
290
- // ============ 焦点效果 ============
291
- 'focus-visible:outline-none',
292
- 'focus-visible:ring-2',
293
- 'focus-visible:ring-ring',
294
- 'focus-visible:ring-offset-2',
295
- 'ring-offset-background',
296
-
297
- // ============ 激活/禁用状态 ============
298
- 'active:scale-95',
299
- 'active:scale-[0.98]',
300
- 'disabled:pointer-events-none',
301
- 'disabled:opacity-50',
302
- 'disabled:cursor-not-allowed',
303
- 'cursor-pointer',
304
- 'cursor-default',
305
- 'cursor-wait',
306
-
307
- // ============ 占位符 ============
308
- 'placeholder:text-muted-foreground',
309
-
310
- // ============ 列表和文本 ============
311
- 'list-disc',
312
- 'list-decimal',
313
- 'list-inside',
314
- 'overflow-x-auto',
315
- 'overflow-hidden',
316
- 'underline-offset-4',
317
-
318
- // ============ 定位 ============
319
- 'z-50',
320
-
321
- // ============ 图片 ============
322
- 'object-cover',
323
- ],
324
-
325
- plugins: [],
326
- };