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.
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>
@@ -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 { }
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1 @@
1
+
@@ -0,0 +1 @@
1
+ export { }
package/dist/mobile.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";
@@ -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>
@@ -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
+
@@ -0,0 +1 @@
1
+ export { }
package/dist/shared.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";
@@ -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}
@@ -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>