bj-web-components 0.1.7
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 +167 -0
- package/dist/Switch-4R9E-bDk.js +1 -0
- package/dist/Switch-D6dAcrxq.mjs +1504 -0
- package/dist/favicon.ico +0 -0
- package/dist/file.svg +1 -0
- package/dist/globe.svg +1 -0
- package/dist/index.d.ts +434 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +16 -0
- package/dist/miniapp.d.ts +1 -0
- package/dist/miniapp.js +1 -0
- package/dist/miniapp.mjs +1 -0
- package/dist/mobile.d.ts +1 -0
- package/dist/mobile.js +1 -0
- package/dist/mobile.mjs +1 -0
- package/dist/next.svg +1 -0
- package/dist/react.d.ts +1 -0
- package/dist/react.js +1 -0
- package/dist/react.mjs +1 -0
- package/dist/shared.d.ts +1 -0
- package/dist/shared.js +1 -0
- package/dist/shared.mjs +1 -0
- package/dist/style.css +1 -0
- package/dist/vercel.svg +1 -0
- package/dist/web.d.ts +434 -0
- package/dist/web.js +1 -0
- package/dist/web.mjs +16 -0
- package/dist/window.svg +1 -0
- package/package.json +90 -0
package/dist/favicon.ico
ADDED
|
Binary file
|
package/dist/file.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
|
package/dist/globe.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import { ForwardRefExoticComponent } from 'react';
|
|
3
|
+
import { InputHTMLAttributes } from 'react';
|
|
4
|
+
import { JSX } from 'react/jsx-runtime';
|
|
5
|
+
import { ReactNode } from 'react';
|
|
6
|
+
import { RefAttributes } from 'react';
|
|
7
|
+
|
|
8
|
+
declare interface BaseTooltipProps {
|
|
9
|
+
placement?: TooltipPlacement;
|
|
10
|
+
className?: string;
|
|
11
|
+
style?: CSSProperties;
|
|
12
|
+
/** 自定义弹层挂载容器,默认 document.body */
|
|
13
|
+
getPopupContainer?: () => HTMLElement;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export declare function BuCategoryDropdown({ data, value, onChange, placeholder, disabled, maxVisible, className, style, getPopupContainer, }: BuCategoryDropdownProps): JSX.Element;
|
|
17
|
+
|
|
18
|
+
export declare interface BuCategoryDropdownProps {
|
|
19
|
+
/** 分类树数据 */
|
|
20
|
+
data: CategoryItem[];
|
|
21
|
+
/** 当前选中路径,数组索引对应层级 */
|
|
22
|
+
value?: string[];
|
|
23
|
+
/** 选中回调,返回新路径和对应的节点数组 */
|
|
24
|
+
onChange?: (value: string[], path: CategoryItem[]) => void;
|
|
25
|
+
/** 触发按钮占位文字 */
|
|
26
|
+
placeholder?: string;
|
|
27
|
+
/** 是否禁用整个组件 */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** 每列最多显示几项,超出后出现滚动条,默认 6 */
|
|
30
|
+
maxVisible?: number;
|
|
31
|
+
className?: string;
|
|
32
|
+
style?: CSSProperties;
|
|
33
|
+
/** 自定义下拉面板挂载容器,返回目标 DOM 元素。默认挂载到 document.body */
|
|
34
|
+
getPopupContainer?: () => HTMLElement;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export declare const BuEmptyInputBox: ForwardRefExoticComponent<BuEmptyInputBoxProps & RefAttributes<HTMLInputElement>>;
|
|
38
|
+
|
|
39
|
+
export declare type BuEmptyInputBoxLang = 'zh' | 'en';
|
|
40
|
+
|
|
41
|
+
export declare type BuEmptyInputBoxMode = 'single' | 'bilingual';
|
|
42
|
+
|
|
43
|
+
export declare interface BuEmptyInputBoxProps {
|
|
44
|
+
/** 单语 / 双语模式 */
|
|
45
|
+
mode?: BuEmptyInputBoxMode;
|
|
46
|
+
/** 双语模式下当前激活的语言 */
|
|
47
|
+
activeLang?: BuEmptyInputBoxLang;
|
|
48
|
+
onLangChange?: (lang: BuEmptyInputBoxLang) => void;
|
|
49
|
+
/** 受控值,与 antd Form 兼容 */
|
|
50
|
+
value?: string;
|
|
51
|
+
onChange?: (value: string) => void;
|
|
52
|
+
placeholder?: string;
|
|
53
|
+
maxLength?: number;
|
|
54
|
+
/** 错误状态 */
|
|
55
|
+
error?: boolean;
|
|
56
|
+
disabled?: boolean;
|
|
57
|
+
/** 点击删除按钮回调(传入时显示删除按钮) */
|
|
58
|
+
onDelete?: () => void;
|
|
59
|
+
/** Override display labels for i18n support */
|
|
60
|
+
labels?: {
|
|
61
|
+
zh?: string;
|
|
62
|
+
en?: string;
|
|
63
|
+
};
|
|
64
|
+
id?: string;
|
|
65
|
+
className?: string;
|
|
66
|
+
style?: CSSProperties;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export declare const BuInput: ForwardRefExoticComponent<BuInputProps & RefAttributes<HTMLInputElement | HTMLTextAreaElement>>;
|
|
70
|
+
|
|
71
|
+
export declare type BuInputLang = 'zh' | 'en';
|
|
72
|
+
|
|
73
|
+
export declare type BuInputMode = 'single' | 'bilingual';
|
|
74
|
+
|
|
75
|
+
export declare interface BuInputProps {
|
|
76
|
+
/** 输入框类型:input(单行)| textarea(多行) */
|
|
77
|
+
type?: BuInputType;
|
|
78
|
+
/** 单语 / 双语模式 */
|
|
79
|
+
mode?: BuInputMode;
|
|
80
|
+
/** 双语模式下当前激活的语言 */
|
|
81
|
+
activeLang?: BuInputLang;
|
|
82
|
+
onLangChange?: (lang: BuInputLang) => void;
|
|
83
|
+
/** 受控值,与 antd Form 兼容 */
|
|
84
|
+
value?: string;
|
|
85
|
+
onChange?: (value: string) => void;
|
|
86
|
+
/** 标签文字 */
|
|
87
|
+
label?: string;
|
|
88
|
+
/** 是否必填(label 前显示红色 *) */
|
|
89
|
+
required?: boolean;
|
|
90
|
+
placeholder?: string;
|
|
91
|
+
/** 最大字符数,配合 showCount 使用 */
|
|
92
|
+
maxLength?: number;
|
|
93
|
+
/** 是否显示字符计数,双语模式下始终显示 */
|
|
94
|
+
showCount?: boolean;
|
|
95
|
+
/** 错误状态:无值时 placeholder 变红;有值时显示 errorMessage */
|
|
96
|
+
error?: boolean;
|
|
97
|
+
/** 错误提示文字(有输入值 + error=true 时显示在输入框下方) */
|
|
98
|
+
errorMessage?: string;
|
|
99
|
+
disabled?: boolean;
|
|
100
|
+
/** 数字步进器最小值(type='number' 时生效) */
|
|
101
|
+
min?: number;
|
|
102
|
+
/** 数字步进器最大值(type='number' 时生效) */
|
|
103
|
+
max?: number;
|
|
104
|
+
/** 数字步进器步长(type='number' 时生效) */
|
|
105
|
+
step?: number;
|
|
106
|
+
/** 输入框左侧 icon,如拖拽把手 */
|
|
107
|
+
leftIcon?: ReactNode;
|
|
108
|
+
/** 输入框右侧 icon,如删除按钮 */
|
|
109
|
+
rightIcon?: ReactNode;
|
|
110
|
+
/** 自定义语言切换按钮,替换内置的中文/EN 按钮,双语模式下生效 */
|
|
111
|
+
langToggle?: ReactNode;
|
|
112
|
+
/** 正在翻译中状态,显示 loading 指示器 */
|
|
113
|
+
translating?: boolean;
|
|
114
|
+
/** 翻译完成状态,显示对勾 */
|
|
115
|
+
translated?: boolean;
|
|
116
|
+
onBlur?: () => void;
|
|
117
|
+
/** Override display labels for i18n support */
|
|
118
|
+
labels?: {
|
|
119
|
+
zh?: string;
|
|
120
|
+
en?: string;
|
|
121
|
+
};
|
|
122
|
+
id?: string;
|
|
123
|
+
className?: string;
|
|
124
|
+
style?: CSSProperties;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export declare type BuInputType = 'input' | 'textarea' | 'number';
|
|
128
|
+
|
|
129
|
+
export declare function BuModal({ open, title, mode, children, okText, cancelText, onOk, onCancel, onClose, activeLang, onLangChange, labels, hint, confirmLoading, width, className, style, }: BuModalProps): JSX.Element | null;
|
|
130
|
+
|
|
131
|
+
export declare interface BuModalProps {
|
|
132
|
+
/** 是否显示弹窗 */
|
|
133
|
+
open?: boolean;
|
|
134
|
+
/** 弹窗标题 */
|
|
135
|
+
title?: string;
|
|
136
|
+
/** 弹窗模式:standard 双按钮 | bilingual 双语双按钮 | single 单按钮居中 */
|
|
137
|
+
mode?: ModalMode;
|
|
138
|
+
/** 弹窗内容 */
|
|
139
|
+
children?: ReactNode;
|
|
140
|
+
/** 确认按钮文字 */
|
|
141
|
+
okText?: string;
|
|
142
|
+
/** 取消按钮文字(standard / bilingual 模式生效) */
|
|
143
|
+
cancelText?: string;
|
|
144
|
+
/** 确认回调 */
|
|
145
|
+
onOk?: () => void;
|
|
146
|
+
/** 取消回调 */
|
|
147
|
+
onCancel?: () => void;
|
|
148
|
+
/** 关闭回调(点击 × 或遮罩) */
|
|
149
|
+
onClose?: () => void;
|
|
150
|
+
/** bilingual 模式下当前激活语言 */
|
|
151
|
+
activeLang?: ModalLang;
|
|
152
|
+
/** bilingual 模式下语言切换回调 */
|
|
153
|
+
onLangChange?: (lang: ModalLang) => void;
|
|
154
|
+
/** 按钮上方的提示文字,12px #999 */
|
|
155
|
+
hint?: string;
|
|
156
|
+
/** Override display labels for i18n support */
|
|
157
|
+
labels?: {
|
|
158
|
+
zh?: string;
|
|
159
|
+
en?: string;
|
|
160
|
+
};
|
|
161
|
+
/** 确认按钮加载中状态 */
|
|
162
|
+
confirmLoading?: boolean;
|
|
163
|
+
/** 弹窗宽度,默认 480px,作用于内层白框 */
|
|
164
|
+
width?: number | string;
|
|
165
|
+
/** 自定义类名,挂在最外层遮罩上(整个 modal) */
|
|
166
|
+
className?: string;
|
|
167
|
+
/** 自定义样式,作用于内层白框 */
|
|
168
|
+
style?: CSSProperties;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export declare function BuProductField({ options, value, onChange, placeholder, emptyText, onManageField, multiple, showSearch, showSort, addButtonText, onAdd, labels, className, style, getPopupContainer, }: BuProductFieldProps): JSX.Element;
|
|
172
|
+
|
|
173
|
+
export declare interface BuProductFieldProps {
|
|
174
|
+
/** 可选项列表 */
|
|
175
|
+
options?: ProductFieldOption[];
|
|
176
|
+
/** 当前选中值(受控) */
|
|
177
|
+
value?: string[];
|
|
178
|
+
/** 选中变化回调 */
|
|
179
|
+
onChange?: (values: string[]) => void;
|
|
180
|
+
/** 触发器占位文字 */
|
|
181
|
+
placeholder?: string;
|
|
182
|
+
/** 无数据主文案 */
|
|
183
|
+
emptyText?: string;
|
|
184
|
+
/** 点击"管理字段"的回调 */
|
|
185
|
+
onManageField?: () => void;
|
|
186
|
+
/** 单选模式(默认多选) */
|
|
187
|
+
multiple?: boolean;
|
|
188
|
+
/** 是否显示搜索框(默认 true) */
|
|
189
|
+
showSearch?: boolean;
|
|
190
|
+
/** 是否显示排序按钮(默认 true) */
|
|
191
|
+
showSort?: boolean;
|
|
192
|
+
/** 底部新增区域内容(字符串或 React 元素),不传则不显示 */
|
|
193
|
+
addButtonText?: ReactNode;
|
|
194
|
+
/** 点击新增按钮的回调 */
|
|
195
|
+
onAdd?: () => void;
|
|
196
|
+
/** Override display labels for i18n support */
|
|
197
|
+
labels?: {
|
|
198
|
+
searchPlaceholder?: string;
|
|
199
|
+
sortDefault?: string;
|
|
200
|
+
sortAsc?: string;
|
|
201
|
+
sortDesc?: string;
|
|
202
|
+
noMatchText?: string;
|
|
203
|
+
manageFieldPre?: string;
|
|
204
|
+
manageFieldLink?: string;
|
|
205
|
+
manageFieldPost?: string;
|
|
206
|
+
};
|
|
207
|
+
className?: string;
|
|
208
|
+
style?: CSSProperties;
|
|
209
|
+
/** 自定义下拉面板挂载容器,返回目标 DOM 元素。默认挂载到 document.body */
|
|
210
|
+
getPopupContainer?: () => HTMLElement;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
export declare const BuSwitch: {
|
|
214
|
+
({ checked: controlledChecked, defaultChecked, onChange, disabled, loading, checkedChildren, unCheckedChildren, theme, activeColor, inactiveColor, className, style, }: BuSwitchProps): JSX.Element;
|
|
215
|
+
displayName: string;
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
export declare interface BuSwitchProps {
|
|
219
|
+
/** 是否选中(受控) */
|
|
220
|
+
checked?: boolean;
|
|
221
|
+
/** 初始是否选中(非受控) */
|
|
222
|
+
defaultChecked?: boolean;
|
|
223
|
+
/** 变化回调 */
|
|
224
|
+
onChange?: (checked: boolean) => void;
|
|
225
|
+
/** 是否禁用 */
|
|
226
|
+
disabled?: boolean;
|
|
227
|
+
/** 加载中 */
|
|
228
|
+
loading?: boolean;
|
|
229
|
+
/** 选中时的内容(显示在开关内部右侧) */
|
|
230
|
+
checkedChildren?: ReactNode;
|
|
231
|
+
/** 未选中时的内容(显示在开关内部左侧) */
|
|
232
|
+
unCheckedChildren?: ReactNode;
|
|
233
|
+
/** 颜色主题:light=黑灰系, dark=品牌红系 */
|
|
234
|
+
theme?: BuSwitchTheme;
|
|
235
|
+
/** 自定义选中颜色,覆盖 theme 默认色 */
|
|
236
|
+
activeColor?: string;
|
|
237
|
+
/** 自定义未选中颜色,覆盖 theme 默认色 */
|
|
238
|
+
inactiveColor?: string;
|
|
239
|
+
/** 自定义类名 */
|
|
240
|
+
className?: string;
|
|
241
|
+
/** 自定义样式 */
|
|
242
|
+
style?: CSSProperties;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/** 开关颜色主题 */
|
|
246
|
+
export declare type BuSwitchTheme = 'light' | 'dark';
|
|
247
|
+
|
|
248
|
+
export declare interface CategoryItem {
|
|
249
|
+
/** 唯一标识 */
|
|
250
|
+
value: string;
|
|
251
|
+
/** 显示文字 */
|
|
252
|
+
label: string;
|
|
253
|
+
/** 是否禁用(分类未创建好时不可选) */
|
|
254
|
+
disabled?: boolean;
|
|
255
|
+
/** 子分类 */
|
|
256
|
+
children?: CategoryItem[];
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
export declare function ConfirmTooltip({ placement, title, okText, cancelText, onOk, onCancel, className, style, }: ConfirmTooltipProps): JSX.Element;
|
|
260
|
+
|
|
261
|
+
export declare interface ConfirmTooltipProps extends BaseTooltipProps {
|
|
262
|
+
title?: string;
|
|
263
|
+
okText?: string;
|
|
264
|
+
cancelText?: string;
|
|
265
|
+
onOk?: () => void;
|
|
266
|
+
onCancel?: () => void;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
export declare function ContentTooltip({ placement, content, variant, className, style, }: ContentTooltipProps): JSX.Element;
|
|
270
|
+
|
|
271
|
+
export declare interface ContentTooltipProps extends BaseTooltipProps {
|
|
272
|
+
content?: string;
|
|
273
|
+
variant?: TooltipVariant;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
export declare function FileCard(props: FileCardProps): JSX.Element;
|
|
277
|
+
|
|
278
|
+
export declare interface FileCardProps {
|
|
279
|
+
/** 文件名 */
|
|
280
|
+
fileName: string;
|
|
281
|
+
/** 文件类型 */
|
|
282
|
+
fileType: FileType;
|
|
283
|
+
/** 文件 URL(image 类型可展示缩略图) */
|
|
284
|
+
fileUrl?: string;
|
|
285
|
+
/** 自定义类名 */
|
|
286
|
+
className?: string;
|
|
287
|
+
/** 自定义样式 */
|
|
288
|
+
style?: CSSProperties;
|
|
289
|
+
/** 删除回调 */
|
|
290
|
+
onDelete?: () => void;
|
|
291
|
+
/** 修改文件名提交回调 */
|
|
292
|
+
onRename?: (newName: string) => void | Promise<void>;
|
|
293
|
+
/** 预览点击回调 */
|
|
294
|
+
onPreview?: () => void;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export declare type FileType = 'pdf' | 'image' | 'doc' | 'docx' | 'xls' | 'xlsx' | 'ppt' | 'pptx' | 'zip' | 'rar' | 'txt' | 'other';
|
|
298
|
+
|
|
299
|
+
export declare type ModalLang = 'zh' | 'en';
|
|
300
|
+
|
|
301
|
+
export declare type ModalMode = 'standard' | 'bilingual' | 'single';
|
|
302
|
+
|
|
303
|
+
export declare const Pagination: (props: PaginationProps) => JSX.Element | null;
|
|
304
|
+
|
|
305
|
+
export declare type PaginationAlign = 'start' | 'center' | 'end';
|
|
306
|
+
|
|
307
|
+
export declare interface PaginationProps {
|
|
308
|
+
/** 国际化方法,默认返回原参数 */
|
|
309
|
+
t?: (text: string) => string;
|
|
310
|
+
current?: number;
|
|
311
|
+
defaultCurrent?: number;
|
|
312
|
+
pageSize?: number;
|
|
313
|
+
defaultPageSize?: number;
|
|
314
|
+
total?: number;
|
|
315
|
+
onChange?: (page: number, pageSize: number) => void;
|
|
316
|
+
onShowSizeChange?: (current: number, size: number) => void;
|
|
317
|
+
showSizeChanger?: boolean;
|
|
318
|
+
showQuickJumper?: boolean | {
|
|
319
|
+
goButton?: ReactNode;
|
|
320
|
+
};
|
|
321
|
+
pageSizeOptions?: number[];
|
|
322
|
+
disabled?: boolean;
|
|
323
|
+
hideOnSinglePage?: boolean;
|
|
324
|
+
showTotal?: boolean | ((total: number, range: [number, number]) => ReactNode);
|
|
325
|
+
size?: PaginationSize;
|
|
326
|
+
align?: PaginationAlign;
|
|
327
|
+
simple?: boolean;
|
|
328
|
+
/** 下拉弹框弹出位置,最高优先级。默认自动检测:底部空间不足时翻转到顶部 */
|
|
329
|
+
popupPlacement?: PopupPlacement;
|
|
330
|
+
className?: string;
|
|
331
|
+
style?: CSSProperties;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
export declare type PaginationSize = 'small' | 'medium' | 'large';
|
|
335
|
+
|
|
336
|
+
declare type PopupPlacement = 'bottom' | 'top';
|
|
337
|
+
|
|
338
|
+
export declare interface ProductFieldOption {
|
|
339
|
+
/** 选项唯一标识 */
|
|
340
|
+
value: string;
|
|
341
|
+
/** 选项显示内容,支持字符串或 React 元素 */
|
|
342
|
+
label: ReactNode;
|
|
343
|
+
/** 搜索匹配文本,label 为 ReactNode 时必须提供,否则该选项不参与搜索过滤 */
|
|
344
|
+
searchText?: string;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
export declare function ProgressTooltip({ placement, title, progress, className, style, }: ProgressTooltipProps): JSX.Element;
|
|
348
|
+
|
|
349
|
+
export declare interface ProgressTooltipProps extends BaseTooltipProps {
|
|
350
|
+
title?: string;
|
|
351
|
+
progress?: number;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
export declare function SkuInputCard({ id, name, onNameChange, mode, activeLang, onLangChange, showBody, error, onDelete, onPreviewImage, onDeleteImage, onUpload, onAssociate, images, labels, inputEvents, className, style, options, optionFilterProp, onSelect, onSearch, open: controlledOpen, onDropdownVisibleChange, }: SkuInputCardProps): JSX.Element;
|
|
355
|
+
|
|
356
|
+
export declare interface SkuInputCardProps {
|
|
357
|
+
/** Drag handle id, for external DnD libraries */
|
|
358
|
+
id?: string;
|
|
359
|
+
/** Product name value */
|
|
360
|
+
name?: string;
|
|
361
|
+
onNameChange?: (value: string) => void;
|
|
362
|
+
/** single: no language toggle; bilingual: show 中文/EN toggle */
|
|
363
|
+
mode?: SkuInputMode;
|
|
364
|
+
/** Active language when mode is bilingual */
|
|
365
|
+
activeLang?: SkuInputLang;
|
|
366
|
+
onLangChange?: (lang: SkuInputLang) => void;
|
|
367
|
+
/** Show/hide the body content area */
|
|
368
|
+
showBody?: boolean;
|
|
369
|
+
/** Error state — red border + tinted input */
|
|
370
|
+
error?: boolean;
|
|
371
|
+
onDelete?: () => void;
|
|
372
|
+
/** Called when user clicks the preview button on an uploaded image */
|
|
373
|
+
onPreviewImage?: (url: string) => void;
|
|
374
|
+
/** Called when user clicks the delete button on an uploaded image */
|
|
375
|
+
onDeleteImage?: (url: string) => void;
|
|
376
|
+
/**
|
|
377
|
+
* Parent-provided upload handler. Receives the selected File and should
|
|
378
|
+
* return a URL string (or Promise<string>) to display the image.
|
|
379
|
+
* If not provided the component manages uploads internally.
|
|
380
|
+
*/
|
|
381
|
+
onUpload?: (file: File) => string | Promise<string>;
|
|
382
|
+
/** Called when user clicks "关联图片". Parent is responsible for providing the image URL. */
|
|
383
|
+
onAssociate?: () => void;
|
|
384
|
+
/** Externally managed image list (URLs). Controls displayed images when provided. */
|
|
385
|
+
images?: string[];
|
|
386
|
+
/** Override display labels for i18n support */
|
|
387
|
+
labels?: {
|
|
388
|
+
namePlaceholder?: string;
|
|
389
|
+
uploadLocal?: string;
|
|
390
|
+
associateImage?: string;
|
|
391
|
+
searchPlaceholder?: string;
|
|
392
|
+
notFoundContent?: string;
|
|
393
|
+
};
|
|
394
|
+
/** Input event handlers applied to the name input element */
|
|
395
|
+
inputEvents?: Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'style' | 'className'>;
|
|
396
|
+
className?: string;
|
|
397
|
+
style?: CSSProperties;
|
|
398
|
+
/** Options for the search dropdown. When provided the input shows a dropdown on focus/type. */
|
|
399
|
+
options?: SkuInputOption[];
|
|
400
|
+
/** Custom filter: receives the option and the current input value; return true to show. */
|
|
401
|
+
optionFilterProp?: (option: SkuInputOption, inputValue: string) => boolean;
|
|
402
|
+
/** Called when user selects an option from the dropdown. */
|
|
403
|
+
onSelect?: (value: string, option: SkuInputOption) => void;
|
|
404
|
+
/** Called when input value changes while dropdown is active (for remote search). */
|
|
405
|
+
onSearch?: (value: string) => void;
|
|
406
|
+
/** Whether the dropdown is visible (controlled mode). */
|
|
407
|
+
open?: boolean;
|
|
408
|
+
/** Callback when dropdown visibility changes. */
|
|
409
|
+
onDropdownVisibleChange?: (visible: boolean) => void;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
export declare type SkuInputLang = 'zh' | 'en';
|
|
413
|
+
|
|
414
|
+
export declare type SkuInputMode = 'single' | 'bilingual';
|
|
415
|
+
|
|
416
|
+
export declare interface SkuInputOption {
|
|
417
|
+
value: string;
|
|
418
|
+
label: ReactNode;
|
|
419
|
+
disabled?: boolean;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
export declare type TooltipPlacement = 'auto' | 'top' | 'topLeft' | 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'leftTop' | 'leftBottom' | 'right' | 'rightTop' | 'rightBottom';
|
|
423
|
+
|
|
424
|
+
export declare type TooltipVariant = 'default' | 'light' | 'bordered' | 'tinted';
|
|
425
|
+
|
|
426
|
+
export declare const TooltipWrapper: ForwardRefExoticComponent<TooltipWrapperProps & RefAttributes<HTMLDivElement>>;
|
|
427
|
+
|
|
428
|
+
export declare interface TooltipWrapperProps {
|
|
429
|
+
children: React.ReactNode;
|
|
430
|
+
style?: CSSProperties;
|
|
431
|
+
className?: string;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
export { }
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./Switch-4R9E-bDk.js");exports.BuCategoryDropdown=o.BuCategoryDropdown;exports.BuEmptyInputBox=o.BuEmptyInputBox;exports.BuInput=o.BuInput;exports.BuModal=o.BuModal;exports.BuProductField=o.BuProductField;exports.BuSwitch=o.BuSwitch;exports.ConfirmTooltip=o.ConfirmTooltip;exports.ContentTooltip=o.ContentTooltip;exports.FileCard=o.FileCard;exports.Pagination=o.Pagination;exports.ProgressTooltip=o.ProgressTooltip;exports.SkuInputCard=o.SkuInputCard;exports.TooltipWrapper=o.TooltipWrapper;
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { B as s, a as t, b as p, c as r, d as u, e as i, C as n, f as e, F as B, P as d, g as l, S as C, T } from "./Switch-D6dAcrxq.mjs";
|
|
2
|
+
export {
|
|
3
|
+
s as BuCategoryDropdown,
|
|
4
|
+
t as BuEmptyInputBox,
|
|
5
|
+
p as BuInput,
|
|
6
|
+
r as BuModal,
|
|
7
|
+
u as BuProductField,
|
|
8
|
+
i as BuSwitch,
|
|
9
|
+
n as ConfirmTooltip,
|
|
10
|
+
e as ContentTooltip,
|
|
11
|
+
B as FileCard,
|
|
12
|
+
d as Pagination,
|
|
13
|
+
l as ProgressTooltip,
|
|
14
|
+
C as SkuInputCard,
|
|
15
|
+
T as TooltipWrapper
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { }
|
package/dist/miniapp.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/dist/miniapp.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/dist/mobile.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { }
|
package/dist/mobile.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/dist/mobile.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/dist/next.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
|
package/dist/react.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { }
|
package/dist/react.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/dist/react.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/dist/shared.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { }
|
package/dist/shared.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/dist/shared.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.tooltip-wrapper{position:relative;display:inline-block}.tooltip-popup{position:absolute;z-index:1000;background:#fff;border-radius:6px;box-shadow:0 4px 16px #0000001f;border:1px solid #e5e7eb;min-width:200px;max-width:280px;padding:16px}.tooltip-popup--top{bottom:calc(100% + 16px);left:50%;transform:translate(-50%)}.tooltip-popup--topLeft{bottom:calc(100% + 16px);left:0}.tooltip-popup--topRight{bottom:calc(100% + 16px);right:0}.tooltip-popup--bottom{top:calc(100% + 16px);left:50%;transform:translate(-50%)}.tooltip-popup--bottomLeft{top:calc(100% + 16px);left:0}.tooltip-popup--bottomRight{top:calc(100% + 16px);right:0}.tooltip-popup--left{right:calc(100% + 16px);top:50%;transform:translateY(-50%)}.tooltip-popup--leftTop{right:calc(100% + 16px);top:0}.tooltip-popup--leftBottom{right:calc(100% + 16px);bottom:0}.tooltip-popup--right{left:calc(100% + 16px);top:50%;transform:translateY(-50%)}.tooltip-popup--rightTop{left:calc(100% + 16px);top:0}.tooltip-popup--rightBottom{left:calc(100% + 16px);bottom:0}.tooltip-popup--light{box-shadow:0 2px 6px #0000000f}.tooltip-popup--bordered{border-color:#d1d5db;box-shadow:0 2px 8px #00000014}.tooltip-popup--tinted{background:#f5f3ff;border-color:#ddd6fe;box-shadow:0 2px 8px #8b5cf61a}.tooltip-arrow{position:absolute;width:14px;height:14px;background:#fff;transform:rotate(45deg)}.tooltip-arrow--top{bottom:-8px;left:calc(50% - 8px);border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;border-radius:0 0 2px}.tooltip-arrow--topLeft{bottom:-8px;left:16px;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;border-radius:0 0 2px}.tooltip-arrow--topRight{bottom:-8px;right:16px;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;border-radius:0 0 2px}.tooltip-arrow--bottom{top:-8px;left:calc(50% - 8px);border-left:1px solid #e5e7eb;border-top:1px solid #e5e7eb;border-radius:2px 0 0}.tooltip-arrow--bottomLeft{top:-8px;left:16px;border-left:1px solid #e5e7eb;border-top:1px solid #e5e7eb;border-radius:2px 0 0}.tooltip-arrow--bottomRight{top:-8px;right:16px;border-left:1px solid #e5e7eb;border-top:1px solid #e5e7eb;border-radius:2px 0 0}.tooltip-arrow--left{right:-8px;top:calc(50% - 8px);border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;border-radius:0 2px 0 0}.tooltip-arrow--leftTop{right:-8px;top:16px;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;border-radius:0 2px 0 0}.tooltip-arrow--leftBottom{right:-8px;bottom:16px;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;border-radius:0 2px 0 0}.tooltip-arrow--right{left:-8px;top:calc(50% - 8px);border-bottom:1px solid #e5e7eb;border-left:1px solid #e5e7eb;border-radius:0 0 0 2px}.tooltip-arrow--rightTop{left:-8px;top:16px;border-bottom:1px solid #e5e7eb;border-left:1px solid #e5e7eb;border-radius:0 0 0 2px}.tooltip-arrow--rightBottom{left:-8px;bottom:16px;border-bottom:1px solid #e5e7eb;border-left:1px solid #e5e7eb;border-radius:0 0 0 2px}.tooltip-arrow--tinted-bg{background:#f5f3ff}.tooltip-confirm__title{font-size:12px;color:#111827;margin-bottom:12px;line-height:1.5}.tooltip-confirm__actions{display:flex;align-items:center;justify-content:center;gap:30px}.tooltip-confirm__cancel{background:none;border:none;padding:0;height:24px;font-size:12px;color:#374151;cursor:pointer;border-radius:4px;transition:background-color .15s;width:60px}.tooltip-confirm__cancel:hover{background:#f3f4f6}.tooltip-confirm__ok{background:#1f2937;border:none;padding:0;height:24px;font-size:12px;color:#fff;cursor:pointer;border-radius:6px;width:60px;font-weight:500;transition:background-color .15s}.tooltip-confirm__ok:hover{background:#374151}.tooltip-progress{min-width:220px}.tooltip-progress__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.tooltip-progress__title{font-size:12px;color:#111827;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tooltip-progress__percent{font-size:12px;color:#6b7280;font-weight:500;flex-shrink:0;margin-left:8px}.tooltip-progress__track{width:100%;height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden}.tooltip-progress__fill{height:100%;width:var(--tooltip-progress, 0%);background:#1f2937;border-radius:2px;transition:width .3s ease}.tooltip-content__text{font-size:12px;color:#6b7280;line-height:1.6}@keyframes sku-shake{0%{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}to{transform:translate(0)}}.sku-input-card{position:relative;display:flex;flex-direction:row;min-width:411px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;background-clip:padding-box}.sku-input-card--error{border-color:#fde6e9}.sku-input-card__drag{display:flex;align-items:center;justify-content:center;width:32px;flex-shrink:0;color:#333;background:#f5f5f5;cursor:grab;margin-right:12px}.sku-input-card__drag:active{cursor:grabbing}.sku-input-card__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px;padding:12px 12px 12px 0}.sku-input-card__header{display:flex;align-items:center;gap:8px;background:#fff}.sku-input-card__name-wrap{position:relative;flex:1;min-width:0}.sku-input-card__name-input{width:100%;height:40px;background:#f5f5f5;border:1px solid #ebebeb;border-radius:6px;padding:0 8px;font-size:14px;color:#333;outline:none;box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:background .2s ease,border-color .2s ease}.sku-input-card__name-input::placeholder{color:#999}.sku-input-card__name-input--with-toggle{padding-right:118px}.sku-input-card__name-input--error{border-width:3px;border-color:#fde6e9;animation:sku-shake .4s ease}.sku-input-card__name-input--error::placeholder{color:#e60023}.sku-input-card__lang-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:2px;padding:2px;border:1px solid #e5e7eb;border-radius:6px;background:#fff}.sku-input-card__lang-btn{height:24px;width:51px;padding:0;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;border:none;background:transparent;color:#374151;line-height:24px;text-align:center}.sku-input-card__lang-btn--active{background:#1f2937;color:#fff}.sku-input-card__lang-btn--inactive{color:#374151}.sku-input-card__delete{display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:#333;background:#f3f4f6;border:none;cursor:pointer;flex-shrink:0;border-radius:4px;padding:0}.sku-input-card__delete:hover{color:#333}.sku-input-card__file-input{display:none}.sku-input-card__body{height:280px;display:flex;align-items:stretch;background:#f5f5f5;border-radius:8px;overflow:hidden}.sku-input-card__image-item{position:relative;flex:1}.sku-input-card__image-thumb{width:100%;height:100%;object-fit:cover;display:block}.sku-input-card__image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;gap:20px;opacity:0;transition:opacity .2s ease}.sku-input-card__image-item:hover .sku-input-card__image-overlay{opacity:1}.sku-input-card__image-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:#fff;cursor:pointer;padding:0}.sku-input-card__image-action-btn svg{width:32px;height:32px}.sku-input-card__add-btn{display:flex;align-items:center;justify-content:center;flex:1;color:#333;background:none;border:none;border-radius:4px;cursor:pointer}.sku-input-card__add-btn:hover{color:#333}.sku-input-card__upload-options{display:flex;align-items:center;justify-content:center;flex:1}.sku-input-card__upload-options-box{display:flex;flex-direction:column;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 16px #0000001f;overflow:hidden}.sku-input-card__upload-opt-btn{display:flex;align-items:center;justify-content:center;width:140px;height:45px;padding:0;background:none;border:none;cursor:pointer;font-size:13px;color:#6b7280;transition:background .15s ease,color .15s ease}.sku-input-card__upload-opt-btn:hover{background:#f3f4f6;color:#111827}.sku-input-card__dropdown{z-index:100}.sku-input-card__dropdown-list{background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 4px 16px #0000001f;max-height:216px;overflow-y:auto}.sku-input-card__dropdown-item{padding:8px 12px;font-size:13px;color:#333;cursor:pointer;transition:background .15s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sku-input-card__dropdown-item:hover{background:#f3f4f6}.sku-input-card__dropdown-item--disabled{color:#999;cursor:not-allowed}.sku-input-card__dropdown-item--disabled:hover{background:transparent}.sku-input-card__dropdown-item--selected{font-weight:600;background:#f3f4f6}.sku-input-card__dropdown-highlight{color:#ef4444;font-weight:600}.sku-input-card__loading{display:flex;align-items:center;justify-content:center;flex:1;background:#f5f5f5}.sku-input-card__loading-img{width:48px;height:48px}@keyframes bu-input-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bu-input-shake{0%{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}to{transform:translate(0)}}.bu-input{box-sizing:border-box;display:flex;flex-direction:column;gap:4px}.bu-input *{box-sizing:border-box}.bu-input__label{display:flex;align-items:center;gap:2px;font-size:13px;color:#333;font-weight:500;line-height:1.5}.bu-input__required{color:#ef4444;font-size:13px;line-height:1.5}.bu-input__row{display:flex;align-items:stretch}.bu-input__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;min-width:40px;background:#fff;border:1px solid #ebebeb;color:#333;box-sizing:border-box}.bu-input__icon--left{border-right:none;border-radius:6px 0 0 6px}.bu-input__icon--right{border-left:none;border-radius:0 6px 6px 0}.bu-input__box{position:relative;flex:1;background:#f5f5f5;border:1px solid #ebebeb;border-radius:6px;padding:8px 12px;transition:border-color .2s ease;box-sizing:border-box}.bu-input__box--error{border-width:3px;border-color:#fde6e9;padding:6px 10px;animation:bu-input-shake .4s ease}.bu-input__box--error .bu-input__field::placeholder{color:#f87171}.bu-input__box--disabled{background:#f0f0f0;cursor:not-allowed}.bu-input__box--single{height:40px}.bu-input__box--number{padding-right:36px}.bu-input__box--number.bu-input__box--error{padding-right:34px}.bu-input__box--has-left{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.bu-input__box--has-right{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.bu-input__field{flex:1;width:100%;background:transparent;border:none;outline:none;padding:0;font-size:14px;color:#333;line-height:22px;-moz-appearance:none;appearance:none;-webkit-appearance:none;resize:none;box-sizing:border-box}.bu-input__field::placeholder{color:#999}.bu-input__field:disabled{cursor:not-allowed;color:#999}.bu-input__field--input{height:100%}.bu-input__field--textarea{min-height:80px;padding-bottom:36px}.bu-input__footer{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:10px}.bu-input__footer--bottom{top:auto;transform:none;bottom:8px}.bu-input__count{font-size:12px;color:#999;line-height:1;-webkit-user-select:none;user-select:none}.bu-input__translating{display:flex;align-items:center;gap:4px;font-size:12px;color:#999;-webkit-user-select:none;user-select:none}.bu-input__translating-icon{width:12px;height:12px;flex-shrink:0;animation:bu-input-spin 1s linear infinite}.bu-input__translated{display:flex;align-items:center;gap:4px;font-size:12px;color:#16a34a;-webkit-user-select:none;user-select:none}.bu-input__translated svg{width:14px;height:14px;flex-shrink:0}.bu-input__lang-toggle{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid #e5e7eb;border-radius:6px;background:#fff}.bu-input__lang-btn{height:22px;width:44px;padding:0;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;border:none;background:transparent;color:#374151;line-height:22px;text-align:center}.bu-input__lang-btn--active{background:#1f2937;color:#fff}.bu-input__stepper{position:absolute;right:0;top:0;bottom:0;width:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3.3px;box-sizing:border-box}.bu-input__stepper-btn{display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;color:#6b7280;padding:0;line-height:1}.bu-input__stepper-btn:disabled{cursor:not-allowed;color:#d1d5db}.bu-input__error-msg{display:flex;align-items:center;gap:4px;font-size:12px;color:#ef4444;line-height:1.4;margin-top:2px}.bu-input__error-icon{flex-shrink:0;width:14px;height:14px}@keyframes bu-eib-shake{0%{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}to{transform:translate(0)}}.bu-eib{display:block}.bu-eib__box{position:relative;display:block;height:40px;background:#f5f5f5;border:1px solid #ebebeb;border-radius:6px;padding:0 12px;box-sizing:border-box;transition:border-color .2s ease}.bu-eib__box--actions-delete{padding-right:40px}.bu-eib__box--actions-toggle{padding-right:114px}.bu-eib__box--actions-both{padding-right:142px}.bu-eib__box--error{border-width:3px;border-color:#fde6e9;padding-left:10px;padding-top:0;padding-bottom:0;animation:bu-eib-shake .4s ease}.bu-eib__box--error.bu-eib__box--actions-delete{padding-right:38px}.bu-eib__box--error.bu-eib__box--actions-toggle{padding-right:112px}.bu-eib__box--error.bu-eib__box--actions-both{padding-right:140px}.bu-eib__box--error .bu-eib__field::placeholder{color:#f87171}.bu-eib__box--disabled{background:#f0f0f0;cursor:not-allowed}.bu-eib__field{display:block;width:100%;height:100%;background:transparent;border:none;outline:none;padding:0;font-size:14px;color:#333;line-height:40px;-moz-appearance:none;appearance:none;-webkit-appearance:none;box-sizing:border-box}.bu-eib__field::placeholder{color:#999}.bu-eib__field:disabled{cursor:not-allowed;color:#999}.bu-eib__actions{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px}.bu-eib__lang-toggle{display:flex;align-items:center;flex-shrink:0;gap:2px;padding:2px;border:1px solid #e5e7eb;border-radius:6px;background:#fff}.bu-eib__lang-btn{height:22px;width:44px;padding:0;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;border:none;background:transparent;color:#374151;line-height:22px;text-align:center}.bu-eib__lang-btn--active{background:#1f2937;color:#fff}.bu-eib__delete{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;cursor:pointer;color:#333;border-radius:4px}.bu-eib__delete:hover{background:#f3f4f6}@keyframes bu-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes bu-modal-slide-in{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.bu-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;animation:bu-modal-fade-in .18s ease}.bu-modal__container{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001f;width:480px;min-width:320px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;animation:bu-modal-slide-in .2s ease;overflow:hidden}.bu-modal__header{display:flex;align-items:center;height:64px;padding:0 20px;flex-shrink:0;gap:8px}.bu-modal__title{flex:1;font-size:15px;font-weight:500;color:#111827;line-height:1.4;margin:0}.bu-modal__lang-toggle{display:flex;align-items:center;flex-shrink:0;gap:2px;padding:2px;border:1px solid #e5e7eb;border-radius:6px;background:#fff}.bu-modal__lang-btn{height:22px;width:40px;padding:0;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;border:none;background:transparent;color:#374151;line-height:22px;text-align:center;transition:background .15s ease,color .15s ease}.bu-modal__lang-btn--active{background:#1f2937;color:#fff}.bu-modal__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;cursor:pointer;color:#999;border-radius:4px;font-size:20px;line-height:1;transition:background .15s ease,color .15s ease}.bu-modal__close:hover{background:#f3f4f6;color:#333}.bu-modal__body{flex:1;padding:0 20px;min-height:63px;color:#333;font-size:14px;line-height:1.6}.bu-modal__footer{display:flex;flex-direction:column;align-items:center;padding:60px 20px 24px;gap:10px}.bu-modal__hint{font-size:12px;color:#999;line-height:1.5;text-align:center;margin:0}.bu-modal__btn-row{display:flex;align-items:center;justify-content:center;gap:32px}.bu-modal__btn-cancel{height:34px;padding:0 16px;border:none;border-radius:6px;background:transparent;color:#374151;font-size:14px;font-weight:400;cursor:pointer;line-height:34px}.bu-modal__btn-ok{height:34px;padding:0 20px;border:none;border-radius:6px;background:#1f2937;color:#fff;font-size:14px;font-weight:500;cursor:pointer;line-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:opacity .15s ease}.bu-modal__btn-ok--loading{opacity:.65;cursor:not-allowed}.bu-modal__btn-ok:disabled{cursor:not-allowed}.bu-modal__btn-ok-spinner{display:inline-block;width:14px;height:14px;border:2px solid #ffffff;border-right-color:transparent;border-radius:50%;animation:bu-modal-spin .6s linear infinite;flex-shrink:0}@keyframes bu-modal-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}html ::-webkit-scrollbar-button{display:none;height:0;width:0}html ::-webkit-scrollbar-track{-webkit-border-radius:10px;border-radius:10px}html ::-webkit-scrollbar-thumb{-webkit-border-radius:10px;border-radius:50px;-webkit-box-shadow:inset 0 0 6px #E2E2E2}.bu-pf{position:relative;display:block;-webkit-user-select:none;user-select:none}.bu-pf ::-webkit-scrollbar-button{display:none;height:0;width:0}.bu-pf__trigger{display:flex;align-items:flex-start;min-height:40px;padding:6px 8px 6px 12px;background:#f5f5f5;border:1px solid #ebebeb;border-radius:6px;cursor:pointer;gap:8px;box-sizing:border-box;overflow:hidden}.bu-pf__trigger--selected{background:#f5f5f5;border-color:#f5f5f5}.bu-pf__trigger-tags{flex:1;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;align-content:flex-start;max-height:94px;overflow-y:auto;overflow-x:hidden;padding-right:4px}.bu-pf__trigger-tags::-webkit-scrollbar{width:4px}.bu-pf__trigger-tags::-webkit-scrollbar-track{background:transparent}.bu-pf__trigger-tags::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.bu-pf__trigger-tags::-webkit-scrollbar-button{display:none;height:0;width:0}.bu-pf__placeholder{flex:1;align-self:center;font-size:14px;color:#999;line-height:1}.bu-pf__arrow{flex-shrink:0;align-self:center;color:#999;display:flex;align-items:center;transition:transform .2s ease}.bu-pf__arrow--open{transform:rotate(180deg)}.bu-pf__panel{border-radius:6px;background:#f5f5f5}.bu-pf__dropdown{background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 0 12px #00000014;overflow:hidden}.bu-pf__header{display:flex;align-items:center;padding:6px 8px 6px 12px;min-height:40px;box-sizing:border-box;gap:8px;overflow:hidden;background:#f5f5f5;border-radius:8px;border:1px solid #DBDBDB}.bu-pf__tags{flex:1;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;align-content:flex-start;max-height:94px;overflow-y:auto;overflow-x:hidden;padding-right:4px}.bu-pf__tags::-webkit-scrollbar{width:4px}.bu-pf__tags::-webkit-scrollbar-track{background:transparent}.bu-pf__tags::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.bu-pf__tags::-webkit-scrollbar-button{display:none;height:0;width:0}.bu-pf__placeholder-inline{font-size:14px;color:#999;line-height:26px}.bu-pf__tag{display:inline-flex;align-items:center;height:26px;padding:0 6px 0 8px;background:#f5f5f5;border:1px solid #e5e7eb;border-radius:4px;gap:4px;cursor:default;min-width:250px}.bu-pf__tag--single{width:100%;border:none;border-radius:0;background:transparent;padding:0;min-width:0}.bu-pf__tag-text{font-size:13px;color:#333;line-height:1;white-space:nowrap}.bu-pf__tag-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:#99999973!important;cursor:pointer;color:#fff;flex-shrink:0;border-radius:9999px;margin-left:auto}.bu-pf__tag-close svg{width:16px;height:16px}.bu-pf__close{flex-shrink:0;align-self:center;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent!important;cursor:pointer;color:#999;border-radius:9999px;transform:rotate(180deg)}.bu-pf__close:hover{background:transparent!important;color:#333}.bu-pf__toolbar{display:flex;align-items:center;gap:8px;padding:12px 12px 16px}.bu-pf__search{flex:1;display:flex;align-items:center;gap:6px;height:40px;padding:0 10px;background:#fff;border:1px solid #ebebeb;border-radius:8px}.bu-pf__search-icon{flex-shrink:0;color:#999;display:flex;align-items:center}.bu-pf__search-input{flex:1;border:none;background:transparent;outline:none;font-size:13px;color:#333;line-height:1;min-width:0}.bu-pf__search-input::placeholder{color:#c4c4c4}.bu-pf__sort-wrap{position:relative;flex-shrink:0}.bu-pf__sort-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:4px;background:#f5f5f5;cursor:pointer;color:#999}.bu-pf__sort-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:100px;background:#fff;border-radius:6px;box-shadow:0 4px 16px #0000001f;z-index:1000;overflow:hidden}.bu-pf__sort-option{padding:10px 16px;font-size:13px;color:#333;cursor:pointer;white-space:nowrap;text-align:center}.bu-pf__sort-option:hover{background:#f5f5f5}.bu-pf__sort-option--active{background:#f5f5f5;font-weight:500}.bu-pf__no-match{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 0 24px}.bu-pf__no-match-img{width:80px;height:80px;object-fit:contain}.bu-pf__no-match-text{font-size:14px;color:#999;margin:0 0 4px;font-weight:350}.bu-pf__no-match-hint{font-size:12px;color:#999;margin:0}.bu-pf__manage-btn{display:inline;border:none;background:transparent;padding:0;font-size:12px;font-weight:600;color:#333;cursor:pointer}.bu-pf__list{max-height:300px;overflow-y:auto;margin-bottom:8px;width:calc(100% - 12px);display:flex;flex-direction:column;gap:12px}.bu-pf__list::-webkit-scrollbar{width:4px}.bu-pf__list::-webkit-scrollbar-button{height:0;width:0}.bu-pf__list::-webkit-scrollbar-track{background:transparent}.bu-pf__list::-webkit-scrollbar-thumb{border-radius:2px}.bu-pf__option{display:flex;align-items:center;height:40px;flex-shrink:0;padding:0 12px;gap:10px;cursor:pointer}.bu-pf__option:not(.bu-pf__option--multiple):hover{background:#f3f4f6}.bu-pf__option--selected{background:#f3f4f6}.bu-pf__checkbox-img{flex-shrink:0;width:16px;height:16px;display:block}.bu-pf__option-label{flex:1;font-size:14px;color:#333;line-height:1}.bu-pf__add-row{border-top:1px solid #f3f4f6;cursor:pointer}.bu-category-dropdown{position:relative;display:inline-block;min-width:110px;max-width:300px}.bu-category-dropdown__trigger{display:flex;align-items:center;gap:8px;height:40px;min-width:110px;max-width:300px;padding:0 8px;background:#fff;border:1px solid #ebebeb;border-radius:8px;cursor:pointer;box-sizing:border-box;transition:border-color .15s ease,background .15s ease;text-align:left}.bu-category-dropdown__trigger:hover:not(:disabled){border-color:#d1d5db}.bu-category-dropdown__trigger--open{border-color:#d1d5db;background:#f5f5f5}.bu-category-dropdown__trigger--has-value{background:#f5f5f5}.bu-category-dropdown__trigger:disabled{background:#f0f0f0;cursor:not-allowed}.bu-category-dropdown__trigger-label{display:block;width:100%;font-size:14px;line-height:21px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bu-category-dropdown__trigger-label--placeholder{color:#999}.bu-category-dropdown__trigger-chevron{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;color:#6b7280;transition:transform .2s ease}.bu-category-dropdown__trigger-chevron--open{transform:rotate(180deg)}.bu-category-dropdown__portal{background:#fff;border-radius:8px;padding:4px;box-shadow:0 4px 16px #0000001f;border:1px solid #ebebeb;z-index:1100}.bu-category-dropdown__panel{display:flex;align-items:stretch}.bu-category-dropdown__divider{width:1px;flex-shrink:0;background:#ebebeb;align-self:stretch}.bu-category-dropdown__col{display:flex;flex-direction:column;gap:2px;padding:0 8px 0 0}.bu-category-dropdown__col--indent{padding-left:8px}.bu-category-dropdown__col--last{padding-right:0}.bu-category-dropdown__col--scrollable{max-height:250px;overflow-y:auto;padding-right:4px}.bu-category-dropdown__col--scrollable::-webkit-scrollbar{width:4px}.bu-category-dropdown__col--scrollable::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:9999px}.bu-category-dropdown__col--scrollable::-webkit-scrollbar-track{background:transparent}.bu-category-dropdown__item{display:flex;align-items:center;gap:8px;height:40px;min-width:110px;max-width:300px;padding:0 8px;border:none;border-radius:8px;background:#fff;cursor:pointer;box-sizing:border-box;transition:background .15s ease;text-align:left;flex-shrink:0}.bu-category-dropdown__item:hover:not(:disabled){background:#f3f4f6}.bu-category-dropdown__item--selected-branch{background:#f5f5f5;padding-right:4px}.bu-category-dropdown__item--selected-leaf{background:#f5f5f5}.bu-category-dropdown__item--disabled{cursor:not-allowed;opacity:.45}.bu-category-dropdown__item-label{display:block;width:100%;font-size:14px;line-height:21px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bu-category-dropdown__item-arrow{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px;color:#6b7280}.pagination{display:flex;align-items:center;gap:16px;font-size:12px;color:#111827;-webkit-user-select:none;user-select:none}.pagination.pagination-start{justify-content:flex-start}.pagination.pagination-center{justify-content:center}.pagination.pagination-end{justify-content:flex-end}.pagination.pagination-small .pagination-item{min-width:24px;height:24px;padding:0 6px;font-size:12px}.pagination.pagination-medium .pagination-item{min-width:32px;height:32px;padding:0 8px;font-size:14px}.pagination.pagination-large .pagination-item{min-width:40px;height:40px;padding:0 10px;font-size:16px}.pagination.pagination-disabled{opacity:.5;pointer-events:none}.pagination .pagination-total{color:#111827}.pagination .pagination-list{display:flex;align-items:center;gap:4px}.pagination .pagination-item{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:4px;background:transparent;color:#111827;cursor:pointer;transition:all .2s;outline:none}.pagination .pagination-item:hover:not(:disabled):not(.pagination-ellipsis){background:#f3f4f6}.pagination .pagination-item:disabled{cursor:not-allowed;opacity:.5}.pagination .pagination-item.pagination-item-active{background:#f3f4f6;color:#111827}.pagination .pagination-item.pagination-ellipsis{cursor:default;pointer-events:none}.pagination .pagination-item.pagination-prev svg,.pagination .pagination-item.pagination-next svg{display:block}.pagination .pagination-sizer{display:flex;align-items:center;position:relative}.pagination .pagination-sizer .pagination-sizer-select{padding:4px 24px 4px 8px;border:1px solid #ebebeb;border-radius:4px;background:#f5f5f5;color:#111827;font-size:12px;cursor:pointer;outline:none;transition:all .2s;text-align:left;white-space:nowrap}.pagination .pagination-sizer .pagination-sizer-select:hover:not(:disabled){border-color:#d1d5db}.pagination .pagination-sizer .pagination-sizer-select:disabled{cursor:not-allowed;opacity:.5}.pagination .pagination-sizer .pagination-sizer-icon{position:absolute;right:8px;top:50%;transform:translateY(-50%);pointer-events:none;color:#999}.pagination .pagination-sizer .pagination-sizer-dropdown{position:absolute;left:50%;transform:translate(-50%);width:116px;background:#fff;border-radius:8px;box-shadow:0 0 12px #00000024;z-index:100;overflow:hidden;padding:4px}.pagination .pagination-sizer .pagination-sizer-dropdown.pagination-sizer-dropdown-bottom{top:calc(100% + 4px)}.pagination .pagination-sizer .pagination-sizer-dropdown.pagination-sizer-dropdown-top{bottom:calc(100% + 4px)}.pagination .pagination-sizer .pagination-sizer-option{display:block;width:100%;padding:10px;border:none;background:transparent;color:#111827;font-size:12px;text-align:center;cursor:pointer;transition:background-color .2s;white-space:nowrap;border-radius:6px;height:40px;display:flex;align-items:center;justify-content:center}.pagination .pagination-sizer .pagination-sizer-option:hover{background:#f3f4f6}.pagination .pagination-sizer .pagination-sizer-option[data-selected=true]{background:#f5f5f5}.pagination .pagination-jumper{display:flex;align-items:center;gap:4px}.pagination .pagination-jumper .pagination-jumper-input{width:48px;padding:4px 8px;border:1px solid #ebebeb;border-radius:4px;background:#fff;color:#111827;font-size:12px;text-align:center;outline:none;transition:border-color .2s}.pagination .pagination-jumper .pagination-jumper-input:hover:not(:disabled){border-color:#d1d5db}.pagination .pagination-jumper .pagination-jumper-input:disabled{cursor:not-allowed;opacity:.5}.pagination .pagination-jumper .pagination-jumper-input::-webkit-inner-spin-button,.pagination .pagination-jumper .pagination-jumper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pagination .pagination-jumper .pagination-jumper-input::-moz-inner-spin-button,.pagination .pagination-jumper .pagination-jumper-input::-moz-outer-spin-button{-moz-appearance:none;margin:0}.pagination.pagination-simple{display:inline-block}.pagination.pagination-simple .pagination-simple-list{display:inline-flex;align-items:center;justify-content:center;background:#f5f5f5;border-radius:8px;padding:0;gap:8px}.pagination.pagination-simple .pagination-simple-item{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:#111827;cursor:pointer;transition:all .2s;outline:none}.pagination.pagination-simple .pagination-simple-item:hover:not(:disabled){background:#0000000d}.pagination.pagination-simple .pagination-simple-item:disabled{cursor:not-allowed;opacity:.5}.pagination.pagination-simple .pagination-simple-item svg{display:block}.pagination.pagination-simple .pagination-simple-text{color:#111827;font-size:14px;line-height:21px;padding:0 8px}.dark .pagination,.dark .pagination .pagination-item{color:#fff}.dark .pagination .pagination-item:hover:not(:disabled):not(.pagination-ellipsis){background:#ffffff1a}.dark .pagination .pagination-item.pagination-item-active{background:#ffffff1a;color:#fff}.dark .pagination .pagination-total{color:#fff}.dark .pagination .pagination-sizer .pagination-sizer-select{background:#ffffff0d;border-color:#ffffff1a;color:#fff}.dark .pagination .pagination-sizer .pagination-sizer-select:hover:not(:disabled){border-color:#fff3}.dark .pagination .pagination-sizer .pagination-sizer-icon{color:#ffffff80}.dark .pagination .pagination-jumper .pagination-jumper-input{background:#ffffff0d;border-color:#ffffff1a;color:#fff}.dark .pagination .pagination-jumper .pagination-jumper-input:hover:not(:disabled){border-color:#fff3}.dark .pagination.pagination-simple .pagination-simple-list{background:#ffffff0d}.dark .pagination.pagination-simple .pagination-simple-item{color:#fff}.dark .pagination.pagination-simple .pagination-simple-item:hover:not(:disabled){background:#ffffff1a}.dark .pagination.pagination-simple .pagination-simple-text{color:#fff}.file-card{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;width:210px;display:flex;flex-direction:column;gap:8px}.file-card .file-card__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;border-radius:inherit;display:flex;align-items:center;justify-content:center;gap:20px;opacity:0;transition:opacity .18s;pointer-events:none}.file-card .file-card__overlay-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:#fff;cursor:pointer;border-radius:6px;padding:0;pointer-events:auto;transition:background .15s}.file-card .file-card__overlay-btn:hover{background:#fff3}.file-card .file-card__name-area{display:flex;align-items:flex-start;gap:4px;padding:4px 8px;height:50px}.file-card .file-card__name-area--editing{background:#fff;border:1px solid #ebebeb;border-radius:4px;padding:4px 8px;height:50px;display:flex;align-items:flex-start}.file-card .file-card__filename{flex:1;font-size:14px;line-height:1.5;color:#111827;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-all;padding:0;margin:0;box-sizing:border-box;vertical-align:top}.file-card .file-card__edit-input{flex:1;height:42px;padding:0;font-size:14px;line-height:1.5;color:#111827;border:none;border-radius:0;outline:none;background:transparent;resize:none;overflow-y:auto;scrollbar-width:none;box-sizing:border-box;vertical-align:top}.file-card .file-card__edit-input::-webkit-scrollbar{display:none}.file-card .file-card__edit-input:focus{outline:none}.file-card--pdf .file-card__pdf-preview{position:relative;height:138px;background:#d1d5db;border-radius:4px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;cursor:pointer;overflow:hidden;transition:box-shadow .2s}.file-card--pdf .file-card__pdf-preview:hover{box-shadow:0 4px 16px #0000001f}.file-card--pdf .file-card__pdf-preview:hover .file-card__overlay{opacity:1}.file-card--pdf .file-card__pdf-label{width:100%;padding:8px 10px;background:#1f2937;display:flex;align-items:center;justify-content:center;flex-shrink:0}.file-card--pdf .file-card__pdf-label span{font-size:14px;font-weight:350;color:#fff;letter-spacing:.3px}.file-card--other .file-card__other-preview{position:relative;height:138px;background:#fff;border:1px solid #ebebeb;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;transition:box-shadow .2s}.file-card--other .file-card__other-preview:hover{box-shadow:0 2px 6px #0000000f}.file-card--other .file-card__other-preview:hover .file-card__overlay{opacity:1}.file-card--other .file-card__image-thumb{width:100%;height:100%;object-fit:cover}.dark .file-card--pdf .file-card__pdf-preview{background:#2a2a2a}.dark .file-card--pdf .file-card__pdf-preview:hover{box-shadow:0 4px 12px #0006}.dark .file-card--pdf .file-card__pdf-label{background:#1a1a1a}.dark .file-card--other .file-card__other-preview{background:#1f1f1f;border-color:#303030}.dark .file-card--other .file-card__other-preview:hover{box-shadow:0 2px 8px #0000004d}.dark .file-card .file-card__filename{color:#e8e8e8}.dark .file-card .file-card__name-area--editing{background:#1f1f1f;border-color:#404040;padding:4px 8px;height:50px;display:flex;align-items:flex-start}.dark .file-card .file-card__edit-input{background:transparent;color:#e8e8e8;border:none;border-radius:0;height:42px;padding:0;font-size:14px;line-height:1.5;resize:none;overflow-y:auto;scrollbar-width:none;box-sizing:border-box;vertical-align:top}.dark .file-card .file-card__edit-input::-webkit-scrollbar{display:none}.dark .file-card .file-card__edit-input:focus{outline:none}.bu-switch{--bu-switch-light-on: #333333;--bu-switch-light-off: #CCCCCC;--bu-switch-dark-on: #e60023;--bu-switch-dark-off: rgba(255, 255, 255, .25);--bu-switch-track-bg: #CCCCCC;position:relative;display:inline-block;box-sizing:border-box;width:32px;min-width:32px;height:16px;padding:0;border:none;border-radius:9999px;background:var(--bu-switch-track-bg);cursor:pointer;transition:background .2s cubic-bezier(.4,0,.2,1);outline:none;vertical-align:middle;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.bu-switch--disabled{cursor:not-allowed;opacity:.5}.bu-switch--loading{cursor:wait}.bu-switch__track{display:flex;align-items:center;width:100%;height:100%;padding:2px;box-sizing:border-box}.bu-switch__thumb{position:relative;flex-shrink:0;width:12px;height:12px;border-radius:9999px;background:#fff;box-shadow:0 1px 3px #00000026;transition:transform .2s cubic-bezier(.4,0,.2,1);transform:translate(0)}.bu-switch--checked .bu-switch__thumb{transform:translate(16px)}.bu-switch__loading-icon{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#999;animation:bu-switch-spin .8s linear infinite}.bu-switch__loading-icon svg{width:10px;height:10px}@keyframes bu-switch-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.bu-switch__label{flex:1;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;overflow:hidden;white-space:nowrap;line-height:1;min-width:0;padding:0 2px}.bu-switch__label--left{justify-content:flex-start}.bu-switch__label--right{justify-content:flex-end}
|
package/dist/vercel.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
|