foxit-component 1.0.4-alpha.9 → 1.0.5-alpha.1
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/es/Alert/Alert.d.ts +2 -1
- package/es/Alert/Alert.js +5 -2
- package/es/Checkbox/Checkbox.d.ts +2 -1
- package/es/Checkbox/Checkbox.js +10 -4
- package/es/Menu/Menu.js +4 -4
- package/es/Table/Table.d.ts +10 -1
- package/es/Table/Table.js +32 -11
- package/es/Table/useRowSelection.d.ts +22 -0
- package/es/Table/useRowSelection.js +116 -0
- package/es/Tabs/Tabs.d.ts +1 -0
- package/es/Tabs/Tabs.js +6 -4
- package/es/Tooltip/Tooltip.d.ts +2 -0
- package/es/Tooltip/Tooltip.js +125 -27
- package/es/index.css +1 -1
- package/package.json +1 -1
package/es/Alert/Alert.d.ts
CHANGED
|
@@ -6,8 +6,9 @@ import './alert.css';
|
|
|
6
6
|
interface AlertProps {
|
|
7
7
|
message: string | React.ReactNode;
|
|
8
8
|
showIcon?: boolean;
|
|
9
|
-
type?: 'success' | 'warning' | 'error' | 'gradient';
|
|
9
|
+
type?: 'success' | 'warning' | 'error' | 'gradient' | 'arrows';
|
|
10
10
|
className?: string;
|
|
11
|
+
arrowPosition?: 'left' | 'right';
|
|
11
12
|
}
|
|
12
13
|
declare const Alert: React.FC<AlertProps>;
|
|
13
14
|
export { Alert };
|
package/es/Alert/Alert.js
CHANGED
|
@@ -4,7 +4,8 @@ import { Icon } from '../Icon/index.js';
|
|
|
4
4
|
import classNames from 'classnames';
|
|
5
5
|
|
|
6
6
|
var Alert = function (_a) {
|
|
7
|
-
var
|
|
7
|
+
var _b;
|
|
8
|
+
var message = _a.message, _c = _a.showIcon, showIcon = _c === void 0 ? true : _c, _d = _a.type, type = _d === void 0 ? 'success' : _d, className = _a.className, _e = _a.arrowPosition, arrowPosition = _e === void 0 ? 'left' : _e;
|
|
8
9
|
var getIconName = function (type) {
|
|
9
10
|
switch (type) {
|
|
10
11
|
case 'success':
|
|
@@ -19,7 +20,9 @@ var Alert = function (_a) {
|
|
|
19
20
|
return 'WarningColoursOutlined';
|
|
20
21
|
}
|
|
21
22
|
};
|
|
22
|
-
return (jsxs("div", __assign({ className: classNames('foxit-alert', "foxit-alert-".concat(type),
|
|
23
|
+
return (jsxs("div", __assign({ className: classNames('foxit-alert', "foxit-alert-".concat(type), (_b = {},
|
|
24
|
+
_b["foxit-alert-arrows-".concat(arrowPosition)] = type === 'arrows',
|
|
25
|
+
_b), className) }, { children: [showIcon && type !== 'arrows' && (jsx("div", __assign({ className: "foxit-alert-icon-container" }, { children: jsx(Icon, { name: getIconName(type), className: "foxit-alert-icon" }) }))), jsx("div", __assign({ className: "foxit-alert-message" }, { children: message }))] })));
|
|
23
26
|
};
|
|
24
27
|
|
|
25
28
|
export { Alert };
|
|
@@ -5,8 +5,9 @@ interface CheckboxProps {
|
|
|
5
5
|
checked?: boolean;
|
|
6
6
|
disabled?: boolean;
|
|
7
7
|
value?: string;
|
|
8
|
-
children
|
|
8
|
+
children?: React.ReactNode;
|
|
9
9
|
size?: 'default' | 'small';
|
|
10
|
+
indeterminate?: boolean;
|
|
10
11
|
}
|
|
11
12
|
interface CheckboxGroupProps {
|
|
12
13
|
value?: string[];
|
package/es/Checkbox/Checkbox.js
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import { __assign, __spreadArray } from '../node_modules/tslib/tslib.es6.js';
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { createContext, useContext, useState, useEffect } from 'react';
|
|
3
|
+
import { createContext, useContext, useState, useRef, useEffect } from 'react';
|
|
4
4
|
|
|
5
5
|
var CheckboxGroupContext = createContext(null);
|
|
6
6
|
var Checkbox = function (_a) {
|
|
7
|
-
var onChange = _a.onChange, checked = _a.checked, _b = _a.disabled, disabled = _b === void 0 ? false : _b, value = _a.value, children = _a.children, _c = _a.size, size = _c === void 0 ? 'default' : _c;
|
|
7
|
+
var onChange = _a.onChange, checked = _a.checked, _b = _a.disabled, disabled = _b === void 0 ? false : _b, value = _a.value, children = _a.children, _c = _a.size, size = _c === void 0 ? 'default' : _c, _d = _a.indeterminate, indeterminate = _d === void 0 ? false : _d;
|
|
8
8
|
var groupContext = useContext(CheckboxGroupContext);
|
|
9
|
-
var
|
|
9
|
+
var _e = useState(checked || false), internalChecked = _e[0], setInternalChecked = _e[1];
|
|
10
|
+
var inputRef = useRef(null);
|
|
10
11
|
useEffect(function () {
|
|
11
12
|
if (checked !== undefined) {
|
|
12
13
|
setInternalChecked(checked);
|
|
13
14
|
}
|
|
14
15
|
}, [checked]);
|
|
16
|
+
useEffect(function () {
|
|
17
|
+
if (inputRef.current) {
|
|
18
|
+
inputRef.current.indeterminate = indeterminate;
|
|
19
|
+
}
|
|
20
|
+
}, [indeterminate]);
|
|
15
21
|
var handleChange = function (e) {
|
|
16
22
|
var newChecked = e.target.checked;
|
|
17
23
|
setInternalChecked(newChecked);
|
|
@@ -23,7 +29,7 @@ var Checkbox = function (_a) {
|
|
|
23
29
|
}
|
|
24
30
|
};
|
|
25
31
|
var isChecked = groupContext ? groupContext.value.includes(value || '') : internalChecked;
|
|
26
|
-
return (jsxs("label", __assign({ className: "foxit-checkbox-container ".concat(disabled ? 'disabled' : '', " ").concat(size === 'small' ? 'small' : '') }, { children: [jsx("input", { type: "checkbox", checked: isChecked, disabled: disabled, onChange: handleChange }), jsx("span", { className: "foxit-checkbox-checkmark ".concat(disabled ? 'disabled' : '') }), jsx("span", __assign({ className: "foxit-checkbox-content" }, { children: children }))] })));
|
|
32
|
+
return (jsxs("label", __assign({ className: "foxit-checkbox-container ".concat(disabled ? 'disabled' : '', " ").concat(size === 'small' ? 'small' : '') }, { children: [jsx("input", { ref: inputRef, type: "checkbox", checked: isChecked, disabled: disabled, onChange: handleChange }), jsx("span", { className: "foxit-checkbox-checkmark ".concat(disabled ? 'disabled' : '') }), jsx("span", __assign({ className: "foxit-checkbox-content" }, { children: children }))] })));
|
|
27
33
|
};
|
|
28
34
|
var CheckboxGroup = function (_a) {
|
|
29
35
|
var value = _a.value, onChange = _a.onChange, children = _a.children;
|
package/es/Menu/Menu.js
CHANGED
|
@@ -3,6 +3,7 @@ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { useState, useRef, useEffect } from 'react';
|
|
4
4
|
import { Icon } from '../Icon/index.js';
|
|
5
5
|
import { getDirection } from '../utils.js';
|
|
6
|
+
import classNames from 'classnames';
|
|
6
7
|
|
|
7
8
|
var getItem = function (label, key, icon, children, type) {
|
|
8
9
|
return {
|
|
@@ -106,8 +107,7 @@ var Menu = function (_a) {
|
|
|
106
107
|
if (!hoveredKey)
|
|
107
108
|
return null;
|
|
108
109
|
var item = findItemByKey(items, hoveredKey);
|
|
109
|
-
if (!
|
|
110
|
-
return null;
|
|
110
|
+
// if (!item?.children) return null;
|
|
111
111
|
// 根据方向设置样式
|
|
112
112
|
var dir = getDirection();
|
|
113
113
|
var popupStyle = {
|
|
@@ -125,9 +125,9 @@ var Menu = function (_a) {
|
|
|
125
125
|
popupStyle.left = "".concat(popupPosition.left, "px");
|
|
126
126
|
popupStyle.right = 'auto';
|
|
127
127
|
}
|
|
128
|
-
return (jsx("div", __assign({ ref: popupRef, className: "foxit-menu-popup", style: popupStyle, onMouseEnter: function () { return setHoveredKey(hoveredKey); }, onMouseLeave: function () { return setHoveredKey(null); } }, { children: jsxs("div", __assign({ className: "foxit-menu foxit-menu-popup-content" }, { children: [jsxs("div", __assign({ className: "foxit-menu-popup-title" }, { children: [jsx("span", __assign({ className: "foxit-menu-item-icon" }, { children: item.icon })), jsx("span", { children: item.label })] })), item.children.map(function (child) {
|
|
128
|
+
return (jsx("div", __assign({ ref: popupRef, className: "foxit-menu-popup", style: popupStyle, onMouseEnter: function () { return setHoveredKey(hoveredKey); }, onMouseLeave: function () { return setHoveredKey(null); } }, { children: jsxs("div", __assign({ className: "foxit-menu foxit-menu-popup-content" }, { children: [jsxs("div", __assign({ className: classNames("foxit-menu-popup-title", !(item === null || item === void 0 ? void 0 : item.children) && 'foxit-menu-popup-title-no-border') }, { children: [jsx("span", __assign({ className: "foxit-menu-item-icon" }, { children: item === null || item === void 0 ? void 0 : item.icon })), jsx("span", { children: item === null || item === void 0 ? void 0 : item.label })] })), (item === null || item === void 0 ? void 0 : item.children) && (item === null || item === void 0 ? void 0 : item.children.map(function (child) {
|
|
129
129
|
return child.children ? renderPopupSubMenu(child) : renderPopupMenuItem(child);
|
|
130
|
-
})] })) })));
|
|
130
|
+
}))] })) })));
|
|
131
131
|
};
|
|
132
132
|
// 弹出菜单中的普通菜单项渲染
|
|
133
133
|
var renderPopupMenuItem = function (item) {
|
package/es/Table/Table.d.ts
CHANGED
|
@@ -7,12 +7,21 @@ export interface Column<T> {
|
|
|
7
7
|
align?: 'left' | 'center' | 'right';
|
|
8
8
|
render?: (text: T[keyof T], record: T) => React.ReactNode;
|
|
9
9
|
}
|
|
10
|
+
export interface RowSelection<T> {
|
|
11
|
+
selectedRowKeys?: React.Key[];
|
|
12
|
+
onChange?: (selectedRowKeys: React.Key[], selectedRows: T[]) => void;
|
|
13
|
+
getCheckboxProps?: (record: T) => {
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
10
17
|
interface TableProps<T> {
|
|
11
18
|
columns: Column<T>[];
|
|
12
19
|
data: T[];
|
|
13
20
|
loading?: boolean;
|
|
14
21
|
emptyText?: React.ReactNode;
|
|
15
22
|
mobile?: boolean;
|
|
23
|
+
rowSelection?: RowSelection<T>;
|
|
24
|
+
rowKey?: keyof T | ((record: T) => React.Key);
|
|
16
25
|
}
|
|
17
|
-
declare const Table: <T>({ columns, data, loading, emptyText, mobile }: TableProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
declare const Table: <T>({ columns, data, loading, emptyText, mobile, rowSelection, rowKey }: TableProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
18
27
|
export default Table;
|
package/es/Table/Table.js
CHANGED
|
@@ -3,9 +3,12 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
3
3
|
import Empty from '../Empty/Empty.js';
|
|
4
4
|
import { Icon } from '../Icon/index.js';
|
|
5
5
|
import { getDirection } from '../utils.js';
|
|
6
|
+
import { useRowSelection } from './useRowSelection.js';
|
|
7
|
+
import Checkbox from '../Checkbox/Checkbox.js';
|
|
6
8
|
|
|
7
9
|
var Table = function (_a) {
|
|
8
|
-
var columns = _a.columns, data = _a.data, loading = _a.loading, emptyText = _a.emptyText, _b = _a.mobile, mobile = _b === void 0 ? false : _b;
|
|
10
|
+
var columns = _a.columns, data = _a.data, loading = _a.loading, emptyText = _a.emptyText, _b = _a.mobile, mobile = _b === void 0 ? false : _b, rowSelection = _a.rowSelection, _c = _a.rowKey, rowKey = _c === void 0 ? 'id' : _c;
|
|
11
|
+
var _d = useRowSelection({ data: data, rowSelection: rowSelection, rowKey: rowKey }), isAllSelected = _d.isAllSelected, isIndeterminate = _d.isIndeterminate, getRowKey = _d.getRowKey, handleRowSelect = _d.handleRowSelect, handleSelectAll = _d.handleSelectAll, shouldShowCheckbox = _d.shouldShowCheckbox, setHoveredRow = _d.setHoveredRow, isRowSelected = _d.isRowSelected;
|
|
9
12
|
if (!loading && data.length === 0) {
|
|
10
13
|
return jsx(Empty, { description: emptyText || 'No Data' });
|
|
11
14
|
}
|
|
@@ -17,17 +20,35 @@ var Table = function (_a) {
|
|
|
17
20
|
: String(record[column.dataIndex]) }))] }), colIndex)); }) }), rowIndex)); })] })));
|
|
18
21
|
}
|
|
19
22
|
var handleColumnAlign = function (align) {
|
|
20
|
-
return getDirection() === 'rtl'
|
|
23
|
+
return getDirection() === 'rtl'
|
|
24
|
+
? align === 'left'
|
|
25
|
+
? 'right'
|
|
26
|
+
: align === 'right'
|
|
27
|
+
? 'left'
|
|
28
|
+
: align
|
|
29
|
+
: align;
|
|
21
30
|
};
|
|
22
|
-
return (jsxs("div", __assign({ className: "foxit-table" }, { children: [loading ? (jsx("div", __assign({ className: "foxit-table-loading" }, { children: jsx(Icon, { name: "LoadingOutlined", className: "foxit-table-icon-loading" }) }))) : null, jsxs("table", __assign({ className: "foxit-table-container" }, { children: [jsx("thead", { children:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
return (jsxs("div", __assign({ className: "foxit-table" }, { children: [loading ? (jsx("div", __assign({ className: "foxit-table-loading" }, { children: jsx(Icon, { name: "LoadingOutlined", className: "foxit-table-icon-loading" }) }))) : null, jsxs("table", __assign({ className: "foxit-table-container" }, { children: [jsx("thead", { children: jsxs("tr", __assign({ onMouseEnter: function () { return rowSelection && setHoveredRow('header'); }, onMouseLeave: function () { return setHoveredRow(null); } }, { children: [rowSelection && (jsx("th", __assign({ className: "foxit-table-checkbox" }, { children: jsx("div", __assign({ style: {
|
|
32
|
+
opacity: shouldShowCheckbox('header') ? 1 : 0,
|
|
33
|
+
transition: 'opacity 0.2s'
|
|
34
|
+
} }, { children: jsx(Checkbox, { size: "small", checked: isAllSelected, indeterminate: isIndeterminate, onChange: function (checked) { return handleSelectAll(checked); } }) })) }))), columns.map(function (column, index) { return (jsx("th", __assign({ style: {
|
|
35
|
+
width: column.width ? "".concat(column.width, "px") : 'auto',
|
|
36
|
+
textAlign: handleColumnAlign(column.align || 'left')
|
|
37
|
+
} }, { children: column.title }), index)); })] })) }), jsx("tbody", { children: data.map(function (record, rowIndex) {
|
|
38
|
+
var _a;
|
|
39
|
+
var key = getRowKey(record, rowIndex);
|
|
40
|
+
var isSelected = isRowSelected(record, rowIndex);
|
|
41
|
+
var checkboxProps = ((_a = rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.getCheckboxProps) === null || _a === void 0 ? void 0 : _a.call(rowSelection, record)) || {};
|
|
42
|
+
return (jsxs("tr", __assign({ className: rowIndex % 2 === 0 ? 'foxit-even-row' : 'foxit-odd-row', onMouseEnter: function () { return rowSelection && setHoveredRow(rowIndex); }, onMouseLeave: function () { return setHoveredRow(null); } }, { children: [rowSelection && (jsx("td", __assign({ className: "foxit-table-checkbox" }, { children: jsx("div", __assign({ style: {
|
|
43
|
+
opacity: shouldShowCheckbox(rowIndex) ? 1 : 0,
|
|
44
|
+
transition: 'opacity 0.2s'
|
|
45
|
+
} }, { children: jsx(Checkbox, { size: "small", checked: isSelected, onChange: function (checked) { return handleRowSelect(record, rowIndex, checked); }, disabled: checkboxProps.disabled }) })) }))), columns.map(function (column, colIndex) { return (jsx("td", __assign({ style: { textAlign: handleColumnAlign(column.align || 'left') } }, { children: column.render
|
|
46
|
+
? column.render(record[column.dataIndex], record)
|
|
47
|
+
: typeof record[column.dataIndex] === 'object'
|
|
48
|
+
? JSON.stringify(record[column.dataIndex]) // 将对象转换为字符串
|
|
49
|
+
: String(record[column.dataIndex]) // 确保它是一个字符串
|
|
50
|
+
}), colIndex)); })] }), key));
|
|
51
|
+
}) })] }))] })));
|
|
31
52
|
};
|
|
32
53
|
|
|
33
54
|
export { Table as default };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { RowSelection } from './Table';
|
|
3
|
+
interface UseRowSelectionOptions<T> {
|
|
4
|
+
data: T[];
|
|
5
|
+
rowSelection?: RowSelection<T>;
|
|
6
|
+
rowKey: keyof T | ((record: T) => React.Key);
|
|
7
|
+
}
|
|
8
|
+
interface UseRowSelectionReturn<T> {
|
|
9
|
+
selectedKeys: Set<React.Key>;
|
|
10
|
+
hoveredRow: number | 'header' | null;
|
|
11
|
+
hasSelection: boolean;
|
|
12
|
+
isAllSelected: boolean;
|
|
13
|
+
isIndeterminate: boolean;
|
|
14
|
+
getRowKey: (record: T, index: number) => React.Key;
|
|
15
|
+
handleRowSelect: (record: T, index: number, checked: boolean) => void;
|
|
16
|
+
handleSelectAll: (checked: boolean) => void;
|
|
17
|
+
shouldShowCheckbox: (rowIndex: number | 'header') => boolean;
|
|
18
|
+
setHoveredRow: (row: number | 'header' | null) => void;
|
|
19
|
+
isRowSelected: (record: T, index: number) => boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare const useRowSelection: <T>({ data, rowSelection, rowKey }: UseRowSelectionOptions<T>) => UseRowSelectionReturn<T>;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { useState, useEffect, useMemo } from 'react';
|
|
2
|
+
|
|
3
|
+
var useRowSelection = function (_a) {
|
|
4
|
+
var data = _a.data, rowSelection = _a.rowSelection, rowKey = _a.rowKey;
|
|
5
|
+
var _b = useState(new Set((rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) || [])), selectedKeys = _b[0], setSelectedKeys = _b[1];
|
|
6
|
+
var _c = useState(new Map()), selectedRowsMap = _c[0], setSelectedRowsMap = _c[1];
|
|
7
|
+
var _d = useState(null), hoveredRow = _d[0], setHoveredRow = _d[1];
|
|
8
|
+
var hasSelection = selectedKeys.size > 0;
|
|
9
|
+
useEffect(function () {
|
|
10
|
+
if (rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) {
|
|
11
|
+
var externalKeys_1 = new Set(rowSelection.selectedRowKeys);
|
|
12
|
+
var externalRowsMap = new Map(Array.from(selectedRowsMap.entries()).filter(function (_a) {
|
|
13
|
+
var key = _a[0];
|
|
14
|
+
return externalKeys_1.has(key);
|
|
15
|
+
}));
|
|
16
|
+
setSelectedKeys(externalKeys_1);
|
|
17
|
+
setSelectedRowsMap(externalRowsMap);
|
|
18
|
+
}
|
|
19
|
+
}, [JSON.stringify(rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys)]);
|
|
20
|
+
// 获取行的唯一 key
|
|
21
|
+
var getRowKey = function (record, index) {
|
|
22
|
+
var _a;
|
|
23
|
+
if (typeof rowKey === 'function') {
|
|
24
|
+
return rowKey(record);
|
|
25
|
+
}
|
|
26
|
+
return (_a = record[rowKey]) !== null && _a !== void 0 ? _a : index;
|
|
27
|
+
};
|
|
28
|
+
// 处理单行选择
|
|
29
|
+
var handleRowSelect = function (record, index, checked) {
|
|
30
|
+
var key = getRowKey(record, index);
|
|
31
|
+
var newSelectedKeys = new Set(selectedKeys);
|
|
32
|
+
var newSelectedRowsMap = new Map(selectedRowsMap);
|
|
33
|
+
if (checked) {
|
|
34
|
+
newSelectedKeys.add(key);
|
|
35
|
+
newSelectedRowsMap.set(key, record);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
newSelectedKeys.delete(key);
|
|
39
|
+
newSelectedRowsMap.delete(key);
|
|
40
|
+
}
|
|
41
|
+
setSelectedKeys(newSelectedKeys);
|
|
42
|
+
setSelectedRowsMap(newSelectedRowsMap);
|
|
43
|
+
if (rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.onChange) {
|
|
44
|
+
var selectedRows = Array.from(newSelectedRowsMap.values());
|
|
45
|
+
rowSelection.onChange(Array.from(newSelectedKeys), selectedRows);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
// 处理全选
|
|
49
|
+
var handleSelectAll = function (checked) {
|
|
50
|
+
var newSelectedKeys = new Set(selectedKeys);
|
|
51
|
+
var newSelectedRowsMap = new Map(selectedRowsMap);
|
|
52
|
+
if (checked) {
|
|
53
|
+
data.forEach(function (record, index) {
|
|
54
|
+
var _a;
|
|
55
|
+
var checkboxProps = ((_a = rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.getCheckboxProps) === null || _a === void 0 ? void 0 : _a.call(rowSelection, record)) || {};
|
|
56
|
+
if (!checkboxProps.disabled) {
|
|
57
|
+
var key = getRowKey(record, index);
|
|
58
|
+
newSelectedKeys.add(key);
|
|
59
|
+
newSelectedRowsMap.set(key, record);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
data.forEach(function (record, index) {
|
|
65
|
+
var key = getRowKey(record, index);
|
|
66
|
+
newSelectedKeys.delete(key);
|
|
67
|
+
newSelectedRowsMap.delete(key);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
setSelectedKeys(newSelectedKeys);
|
|
71
|
+
setSelectedRowsMap(newSelectedRowsMap);
|
|
72
|
+
if (rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.onChange) {
|
|
73
|
+
var selectedRows = Array.from(newSelectedRowsMap.values());
|
|
74
|
+
rowSelection.onChange(Array.from(newSelectedKeys), selectedRows);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
// 判断是否全选
|
|
78
|
+
var isAllSelected = useMemo(function () {
|
|
79
|
+
if (data.length === 0)
|
|
80
|
+
return false;
|
|
81
|
+
var selectableData = data.filter(function (record) {
|
|
82
|
+
var _a;
|
|
83
|
+
var checkboxProps = ((_a = rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.getCheckboxProps) === null || _a === void 0 ? void 0 : _a.call(rowSelection, record)) || {};
|
|
84
|
+
return !checkboxProps.disabled;
|
|
85
|
+
});
|
|
86
|
+
return (selectableData.length > 0 &&
|
|
87
|
+
selectableData.every(function (record, index) { return selectedKeys.has(getRowKey(record, index)); }));
|
|
88
|
+
}, [data, selectedKeys, rowSelection]);
|
|
89
|
+
// 判断是否部分选中
|
|
90
|
+
var isIndeterminate = useMemo(function () {
|
|
91
|
+
return selectedKeys.size > 0 && !isAllSelected;
|
|
92
|
+
}, [selectedKeys.size, isAllSelected]);
|
|
93
|
+
// 判断复选框是否应该显示
|
|
94
|
+
var shouldShowCheckbox = function (rowIndex) {
|
|
95
|
+
return hasSelection || hoveredRow === rowIndex;
|
|
96
|
+
};
|
|
97
|
+
// 判断某行是否被选中
|
|
98
|
+
var isRowSelected = function (record, index) {
|
|
99
|
+
return selectedKeys.has(getRowKey(record, index));
|
|
100
|
+
};
|
|
101
|
+
return {
|
|
102
|
+
selectedKeys: selectedKeys,
|
|
103
|
+
hoveredRow: hoveredRow,
|
|
104
|
+
hasSelection: hasSelection,
|
|
105
|
+
isAllSelected: isAllSelected,
|
|
106
|
+
isIndeterminate: isIndeterminate,
|
|
107
|
+
getRowKey: getRowKey,
|
|
108
|
+
handleRowSelect: handleRowSelect,
|
|
109
|
+
handleSelectAll: handleSelectAll,
|
|
110
|
+
shouldShowCheckbox: shouldShowCheckbox,
|
|
111
|
+
setHoveredRow: setHoveredRow,
|
|
112
|
+
isRowSelected: isRowSelected
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export { useRowSelection };
|
package/es/Tabs/Tabs.d.ts
CHANGED
package/es/Tabs/Tabs.js
CHANGED
|
@@ -5,9 +5,9 @@ import classNames from 'classnames';
|
|
|
5
5
|
|
|
6
6
|
var ButtonTabs = function (_a) {
|
|
7
7
|
var _b;
|
|
8
|
-
var activeKey = _a.activeKey, items = _a.items, onChange = _a.onChange, _c = _a.type, type = _c === void 0 ? 'button' : _c, className = _a.className;
|
|
9
|
-
var
|
|
10
|
-
var
|
|
8
|
+
var activeKey = _a.activeKey, items = _a.items, onChange = _a.onChange, _c = _a.type, type = _c === void 0 ? 'button' : _c, className = _a.className, _d = _a.destroyOnHidden, destroyOnHidden = _d === void 0 ? true : _d;
|
|
9
|
+
var _e = useState(activeKey || ((_b = items[0]) === null || _b === void 0 ? void 0 : _b.key)), internalActiveKey = _e[0], setInternalActiveKey = _e[1];
|
|
10
|
+
var _f = useState(false), showScrollButtons = _f[0], setShowScrollButtons = _f[1];
|
|
11
11
|
var tabListRef = useRef(null);
|
|
12
12
|
var handleTabChange = function (key) {
|
|
13
13
|
if (onChange) {
|
|
@@ -37,7 +37,9 @@ var ButtonTabs = function (_a) {
|
|
|
37
37
|
};
|
|
38
38
|
}, [items]);
|
|
39
39
|
var currentKey = activeKey || internalActiveKey;
|
|
40
|
-
return (jsxs("div", { children: [type === 'button' ? (jsx("div", __assign({ className: "foxit-tabs" }, { children: items.map(function (item) { return (jsx("button", __assign({ className: "foxit-tab-item ".concat(currentKey === item.key ? 'active' : ''), onClick: function () { return handleTabChange(item.key); } }, { children: item.label }), item.key)); }) }))) : (jsx("div", __assign({ className: "foxit-linktabs" }, { children: jsxs("div", __assign({ className: "foxit-linktabs-inner" }, { children: [showScrollButtons && (jsx("button", __assign({ className: "foxit-linktabs-scroll foxit-linktabs-scroll-left", onClick: function () { return handleScroll('left'); } }, { children: '<' }))), jsx("div", __assign({ ref: tabListRef, className: classNames('foxit-linktabs-list', className) }, { children: items.map(function (item) { return (jsx("button", __assign({ className: "foxit-linktab-btn".concat(currentKey === item.key ? ' active' : ''), onClick: function () { return handleTabChange(item.key); } }, { children: item.label }), item.key)); }) })), showScrollButtons && (jsx("button", __assign({ className: "foxit-linktabs-scroll foxit-linktabs-scroll-right", onClick: function () { return handleScroll('right'); } }, { children: '>' })))] })) }))), jsx("div", __assign({ className: "foxit-tab-content" }, { children:
|
|
40
|
+
return (jsxs("div", { children: [type === 'button' ? (jsx("div", __assign({ className: "foxit-tabs" }, { children: items.map(function (item) { return (jsx("button", __assign({ className: "foxit-tab-item ".concat(currentKey === item.key ? 'active' : ''), onClick: function () { return handleTabChange(item.key); } }, { children: item.label }), item.key)); }) }))) : (jsx("div", __assign({ className: "foxit-linktabs" }, { children: jsxs("div", __assign({ className: "foxit-linktabs-inner" }, { children: [showScrollButtons && (jsx("button", __assign({ className: "foxit-linktabs-scroll foxit-linktabs-scroll-left", onClick: function () { return handleScroll('left'); } }, { children: '<' }))), jsx("div", __assign({ ref: tabListRef, className: classNames('foxit-linktabs-list', className) }, { children: items.map(function (item) { return (jsx("button", __assign({ className: "foxit-linktab-btn".concat(currentKey === item.key ? ' active' : ''), onClick: function () { return handleTabChange(item.key); } }, { children: item.label }), item.key)); }) })), showScrollButtons && (jsx("button", __assign({ className: "foxit-linktabs-scroll foxit-linktabs-scroll-right", onClick: function () { return handleScroll('right'); } }, { children: '>' })))] })) }))), jsx("div", __assign({ className: "foxit-tab-content" }, { children: destroyOnHidden
|
|
41
|
+
? items.map(function (item) { return item.key === currentKey && jsx("div", { children: item.children }, item.key); })
|
|
42
|
+
: items.map(function (item) { return (jsx("div", __assign({ style: { display: item.key === currentKey ? 'block' : 'none' } }, { children: item.children }), item.key)); }) }))] }));
|
|
41
43
|
};
|
|
42
44
|
|
|
43
45
|
export { ButtonTabs as default };
|
package/es/Tooltip/Tooltip.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
2
|
import './tooltip.css';
|
|
3
|
+
type PlacementType = 'top' | 'bottom' | 'left' | 'right';
|
|
3
4
|
interface TooltipProps {
|
|
4
5
|
title: string | ReactNode;
|
|
5
6
|
children: ReactNode;
|
|
6
7
|
whiteGround?: boolean;
|
|
7
8
|
className?: string;
|
|
9
|
+
placement?: PlacementType;
|
|
8
10
|
}
|
|
9
11
|
declare const Tooltip: React.FC<TooltipProps>;
|
|
10
12
|
export default Tooltip;
|
package/es/Tooltip/Tooltip.js
CHANGED
|
@@ -6,44 +6,140 @@ import classNames from 'classnames';
|
|
|
6
6
|
import { getDirection } from '../utils.js';
|
|
7
7
|
|
|
8
8
|
var Tooltip = function (_a) {
|
|
9
|
-
var title = _a.title, children = _a.children, _b = _a.whiteGround, whiteGround = _b === void 0 ? false : _b, className = _a.className;
|
|
9
|
+
var title = _a.title, children = _a.children, _b = _a.whiteGround, whiteGround = _b === void 0 ? false : _b, className = _a.className, _c = _a.placement, placement = _c === void 0 ? 'top' : _c;
|
|
10
10
|
var childRef = useRef(null);
|
|
11
11
|
var tooltipRef = useRef(null);
|
|
12
|
-
var
|
|
12
|
+
var _d = useState({
|
|
13
13
|
visibility: 'hidden',
|
|
14
14
|
position: 'absolute',
|
|
15
15
|
top: '0',
|
|
16
16
|
left: '0'
|
|
17
|
-
}), tooltipStyle =
|
|
17
|
+
}), tooltipStyle = _d[0], setTooltipStyle = _d[1];
|
|
18
|
+
var _e = useState({
|
|
19
|
+
visibility: 'hidden'
|
|
20
|
+
}), bridgeStyle = _e[0], setBridgeStyle = _e[1];
|
|
18
21
|
var isVisibleRef = useRef(false);
|
|
19
|
-
var
|
|
20
|
-
var
|
|
22
|
+
var _f = useState({}), arrowPosition = _f[0], setArrowPosition = _f[1];
|
|
23
|
+
var _g = useState(false), mounted = _g[0], setMounted = _g[1];
|
|
21
24
|
var calculateTooltipPosition = function () {
|
|
22
25
|
if (childRef.current && tooltipRef.current && isVisibleRef.current) {
|
|
23
|
-
var
|
|
24
|
-
var
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
26
|
+
var childRect_1 = childRef.current.getBoundingClientRect();
|
|
27
|
+
var tooltipHeight_1 = tooltipRef.current.offsetHeight;
|
|
28
|
+
var tooltipWidth_1 = tooltipRef.current.offsetWidth;
|
|
29
|
+
var padding_1 = 8; // 屏幕边缘留点空隙
|
|
30
|
+
var gap = 8; // tooltip 与 child 之间的间距
|
|
31
|
+
// 辅助函数:限制水平位置不超出屏幕
|
|
32
|
+
var clampLeft = function (left) {
|
|
33
|
+
var maxLeft = window.scrollX + document.documentElement.clientWidth - tooltipWidth_1 - padding_1;
|
|
34
|
+
var minLeft = window.scrollX + padding_1;
|
|
35
|
+
return Math.max(minLeft, Math.min(maxLeft, left));
|
|
36
|
+
};
|
|
37
|
+
// 辅助函数:限制垂直位置不超出屏幕
|
|
38
|
+
var clampTop = function (top) {
|
|
39
|
+
var maxTop = window.scrollY + document.documentElement.clientHeight - tooltipHeight_1 - padding_1;
|
|
40
|
+
var minTop = window.scrollY + padding_1;
|
|
41
|
+
return Math.max(minTop, Math.min(maxTop, top));
|
|
42
|
+
};
|
|
43
|
+
// 辅助函数:计算水平方向箭头位置
|
|
44
|
+
var calcHorizontalArrow = function (left, isTop) {
|
|
45
|
+
var _a;
|
|
46
|
+
var childCenterX = childRect_1.left + childRect_1.width / 2;
|
|
47
|
+
var arrowLeftPx = Math.max(12, Math.min(tooltipWidth_1 - 12, childCenterX - left));
|
|
48
|
+
return _a = {
|
|
49
|
+
left: getDirection() === 'rtl' ? "calc(".concat(arrowLeftPx, "px - 10px)") : "".concat(arrowLeftPx, "px")
|
|
50
|
+
},
|
|
51
|
+
_a[isTop ? 'bottom' : 'top'] = '-5px',
|
|
52
|
+
_a.transform = 'translateX(-50%)',
|
|
53
|
+
_a;
|
|
54
|
+
};
|
|
55
|
+
// 辅助函数:计算垂直方向箭头位置
|
|
56
|
+
var calcVerticalArrow = function (top, isLeft) {
|
|
57
|
+
var _a;
|
|
58
|
+
var childCenterY = childRect_1.top + childRect_1.height / 2;
|
|
59
|
+
// 将绝对坐标 top 转换为视口坐标
|
|
60
|
+
var arrowTopPx = Math.max(12, Math.min(tooltipHeight_1 - 12, childCenterY - (top - window.scrollY)));
|
|
61
|
+
return _a = {
|
|
62
|
+
top: "".concat(arrowTopPx, "px")
|
|
63
|
+
},
|
|
64
|
+
_a[isLeft ? 'right' : 'left'] = '-5px',
|
|
65
|
+
_a.transform = 'translateY(-50%)',
|
|
66
|
+
_a;
|
|
67
|
+
};
|
|
68
|
+
var top_1 = 0;
|
|
69
|
+
var left = 0;
|
|
70
|
+
var arrowStyle = {};
|
|
71
|
+
var bridgeTop = 0;
|
|
72
|
+
var bridgeLeft = 0;
|
|
73
|
+
var bridgeWidth = 0;
|
|
74
|
+
var bridgeHeight = 0;
|
|
75
|
+
switch (placement) {
|
|
76
|
+
case 'top': {
|
|
77
|
+
top_1 = window.scrollY + childRect_1.top - tooltipHeight_1 - gap;
|
|
78
|
+
left = clampLeft(window.scrollX + childRect_1.left + childRect_1.width / 2 - tooltipWidth_1 / 2);
|
|
79
|
+
arrowStyle = calcHorizontalArrow(left, true);
|
|
80
|
+
// 桥接区域:从 tooltip 底部到 child 顶部
|
|
81
|
+
var bridgeLeftStart = Math.min(left, window.scrollX + childRect_1.left);
|
|
82
|
+
var bridgeRightEnd = Math.max(left + tooltipWidth_1, window.scrollX + childRect_1.right);
|
|
83
|
+
bridgeTop = top_1 + tooltipHeight_1;
|
|
84
|
+
bridgeLeft = bridgeLeftStart;
|
|
85
|
+
bridgeWidth = bridgeRightEnd - bridgeLeftStart;
|
|
86
|
+
bridgeHeight = gap + 5;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
case 'bottom': {
|
|
90
|
+
top_1 = window.scrollY + childRect_1.bottom + gap;
|
|
91
|
+
left = clampLeft(window.scrollX + childRect_1.left + childRect_1.width / 2 - tooltipWidth_1 / 2);
|
|
92
|
+
arrowStyle = calcHorizontalArrow(left, false);
|
|
93
|
+
// 桥接区域:从 child 底部到 tooltip 顶部
|
|
94
|
+
var bridgeLeftStart = Math.min(left, window.scrollX + childRect_1.left);
|
|
95
|
+
var bridgeRightEnd = Math.max(left + tooltipWidth_1, window.scrollX + childRect_1.right);
|
|
96
|
+
bridgeTop = window.scrollY + childRect_1.bottom;
|
|
97
|
+
bridgeLeft = bridgeLeftStart;
|
|
98
|
+
bridgeWidth = bridgeRightEnd - bridgeLeftStart;
|
|
99
|
+
bridgeHeight = gap + 5;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
case 'left': {
|
|
103
|
+
top_1 = clampTop(window.scrollY + childRect_1.top + childRect_1.height / 2 - tooltipHeight_1 / 2);
|
|
104
|
+
left = window.scrollX + childRect_1.left - tooltipWidth_1 - gap;
|
|
105
|
+
arrowStyle = calcVerticalArrow(top_1, true);
|
|
106
|
+
// 桥接区域:从 tooltip 右侧到 child 左侧
|
|
107
|
+
var bridgeTopStart = Math.min(top_1, window.scrollY + childRect_1.top);
|
|
108
|
+
var bridgeBottomEnd = Math.max(top_1 + tooltipHeight_1, window.scrollY + childRect_1.bottom);
|
|
109
|
+
bridgeTop = bridgeTopStart;
|
|
110
|
+
bridgeLeft = left + tooltipWidth_1;
|
|
111
|
+
bridgeWidth = gap + 5;
|
|
112
|
+
bridgeHeight = bridgeBottomEnd - bridgeTopStart;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
case 'right': {
|
|
116
|
+
top_1 = clampTop(window.scrollY + childRect_1.top + childRect_1.height / 2 - tooltipHeight_1 / 2);
|
|
117
|
+
left = window.scrollX + childRect_1.right + gap;
|
|
118
|
+
arrowStyle = calcVerticalArrow(top_1, false);
|
|
119
|
+
// 桥接区域:从 child 右侧到 tooltip 左侧
|
|
120
|
+
var bridgeTopStart = Math.min(top_1, window.scrollY + childRect_1.top);
|
|
121
|
+
var bridgeBottomEnd = Math.max(top_1 + tooltipHeight_1, window.scrollY + childRect_1.bottom);
|
|
122
|
+
bridgeTop = bridgeTopStart;
|
|
123
|
+
bridgeLeft = window.scrollX + childRect_1.right;
|
|
124
|
+
bridgeWidth = gap + 5;
|
|
125
|
+
bridgeHeight = bridgeBottomEnd - bridgeTopStart;
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
setArrowPosition(arrowStyle);
|
|
41
130
|
setTooltipStyle({
|
|
42
131
|
position: 'absolute',
|
|
43
132
|
top: "".concat(top_1, "px"),
|
|
44
133
|
left: "".concat(left, "px"),
|
|
45
134
|
visibility: 'visible',
|
|
46
|
-
zIndex: 9999
|
|
135
|
+
zIndex: 9999
|
|
136
|
+
});
|
|
137
|
+
setBridgeStyle({
|
|
138
|
+
top: "".concat(bridgeTop, "px"),
|
|
139
|
+
left: "".concat(bridgeLeft, "px"),
|
|
140
|
+
width: "".concat(bridgeWidth, "px"),
|
|
141
|
+
height: "".concat(bridgeHeight, "px"),
|
|
142
|
+
visibility: 'visible'
|
|
47
143
|
});
|
|
48
144
|
}
|
|
49
145
|
};
|
|
@@ -56,6 +152,7 @@ var Tooltip = function (_a) {
|
|
|
56
152
|
var handleMouseLeave = function () {
|
|
57
153
|
isVisibleRef.current = false;
|
|
58
154
|
setTooltipStyle(function (prev) { return (__assign(__assign({}, prev), { visibility: 'hidden' })); });
|
|
155
|
+
setBridgeStyle(function (prev) { return (__assign(__assign({}, prev), { visibility: 'hidden' })); });
|
|
59
156
|
window.removeEventListener('scroll', calculateTooltipPosition); // 移除滚动事件监听
|
|
60
157
|
window.removeEventListener('resize', calculateTooltipPosition); // 移除窗口大小变化监听
|
|
61
158
|
};
|
|
@@ -68,9 +165,10 @@ var Tooltip = function (_a) {
|
|
|
68
165
|
};
|
|
69
166
|
}, []);
|
|
70
167
|
return (jsxs(Fragment, { children: [jsx("div", __assign({ className: "foxit-tooltip-container", onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, ref: childRef }, { children: children })), mounted &&
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
168
|
+
title &&
|
|
169
|
+
ReactDOM.createPortal(jsxs(Fragment, { children: [jsx("div", { className: "foxit-tooltip-bridge", onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, style: bridgeStyle }), jsxs("div", __assign({ onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, className: classNames('foxit-tooltip-content', "foxit-tooltip-placement-".concat(placement), {
|
|
170
|
+
'foxit-tooltip-white': whiteGround
|
|
171
|
+
}, className), style: tooltipStyle, ref: tooltipRef }, { children: [title, jsx("div", { className: classNames('foxit-tooltip-arrow', "foxit-tooltip-arrow-".concat(placement)), style: arrowPosition })] }))] }), document.body // 直接挂载到 body,避免层叠上下文限制
|
|
74
172
|
)] }));
|
|
75
173
|
};
|
|
76
174
|
|
package/es/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.foxit-checkbox-container{cursor:pointer;display:inline-block;position:relative;-webkit-user-select:none;user-select:none}[dir=ltr] .foxit-checkbox-container{padding-left:25px}[dir=rtl] .foxit-checkbox-container{padding-right:25px}.foxit-checkbox-container.small{line-height:16px}[dir=ltr] .foxit-checkbox-container.small{padding-left:21px}[dir=rtl] .foxit-checkbox-container.small{padding-right:21px}.foxit-checkbox-container input{cursor:pointer;opacity:0;position:absolute}.foxit-checkbox-checkmark{background-color:#fff;border:1px solid #b3b3b3;border-radius:4px;height:20px;position:absolute;top:0;width:20px}[dir=ltr] .foxit-checkbox-checkmark{left:0}[dir=rtl] .foxit-checkbox-checkmark{right:0}.foxit-checkbox-container.small .foxit-checkbox-checkmark{height:16px;width:16px}.foxit-checkbox-content{line-height:20px}.foxit-checkbox-container.small .foxit-checkbox-content{display:inline-block;font-size:12px;line-height:16px}.foxit-checkbox-container input:checked~.foxit-checkbox-checkmark{background-color:#ff5f00;border:none}[dir=rtl] .foxit-checkbox-container input:checked~.foxit-checkbox-checkmark{transform:scaleX(-1)}.foxit-checkbox-checkmark:after{content:"";display:none;position:absolute}.foxit-checkbox-container input:checked~.foxit-checkbox-checkmark:after{display:block}.foxit-checkbox-container .foxit-checkbox-checkmark:after{border:solid #fff;height:10px;top:4px;width:6px}[dir=ltr] .foxit-checkbox-container .foxit-checkbox-checkmark:after{border-width:0 2px 2px 0;left:7px;transform:rotate(45deg)}[dir=rtl] .foxit-checkbox-container .foxit-checkbox-checkmark:after{border-width:0 0 2px 2px;right:7px;transform:rotate(-45deg)}.foxit-checkbox-container.small .foxit-checkbox-checkmark:after{top:2px}[dir=ltr] .foxit-checkbox-container.small .foxit-checkbox-checkmark:after{left:5px}[dir=rtl] .foxit-checkbox-container.small .foxit-checkbox-checkmark:after{right:5px}.foxit-checkbox-container.disabled{color:#00000040;cursor:not-allowed;opacity:.6}.foxit-checkbox-checkmark.disabled{background-color:#f5f5f5;border:1px solid #d9d9d9}.foxit-empty{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:20px;text-align:center}.foxit-empty-image{margin-bottom:16px}.foxit-empty-description{color:#757575;font-size:14px}.foxit-form-item{margin-bottom:24px}.foxit-form-item label{color:#525252;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.foxit-form-item-embedlabel{background-color:#fff;display:inline-block!important;padding:0 4px;position:relative;top:18px;z-index:1}[dir=ltr] .foxit-form-item-embedlabel{margin-left:4px}[dir=rtl] .foxit-form-item-embedlabel{margin-right:4px}.foxit-form-required{color:#e22727}.foxit-form-error-text,.foxit-form-warning-text{font-size:12px;line-height:24px;min-height:24px}.foxit-form-error-text{color:#e22727}.foxit-form-warning-text{color:orange}.foxit-form-item>.foxit-form-error-component .foxit-checkbox-container,.foxit-form-item>.foxit-form-error-component .foxit-input-wrapper,.foxit-form-item>.foxit-form-error-component .foxit-radio-container,.foxit-form-item>.foxit-form-error-component .foxit-select-wrapper>:nth-child(3){border:1px solid #e22727!important}.foxit-form-item>.foxit-form-warning-component .foxit-checkbox-container,.foxit-form-item>.foxit-form-warning-component .foxit-input-wrapper,.foxit-form-item>.foxit-form-warning-component .foxit-radio-container,.foxit-form-item>.foxit-form-warning-component .foxit-select-wrapper>:nth-child(3){border-color:orange!important}.foxit-input-wrapper{align-items:center;border:1px solid #d9d9d9;border-radius:10px;display:flex;font-size:14px;font-weight:400;padding:11px 16px;transition:border-color .3s}.foxit-input-wrapper:focus-within{border-color:#ff5f00!important}.foxit-input-wrapper:hover{border-color:#757575}.foxit-input-element{border:none;color:#525252;flex:1;line-height:24px;outline:none!important}[dir=ltr] .foxit-input-element{text-align:left}[dir=rtl] .foxit-input-element{text-align:right}.foxit-input-element::placeholder{color:#b3b3b3}.foxit-input-addon{align-items:center;color:#b3b3b3;cursor:pointer;display:flex;transition:color .3s}[dir=ltr] .foxit-input-addon{padding:0 0 0 8px}[dir=ltr] .foxit-input-addon-before,[dir=rtl] .foxit-input-addon{padding:0 8px 0 0}[dir=rtl] .foxit-input-addon-before{padding:0 0 0 8px}.foxit-input-wrapper:focus-within .foxit-input-addon{color:#ff5f00!important}.foxit-input-wrapper:hover .foxit-input-addon{color:#757575}.foxit-input-wrapper :disabled,.foxit-input-wrapper-disabled{background-color:#f8f8f8}.foxit-input-wrapper-disabled:hover{border-color:#d9d9d9}.foxit-input-wrapper-disabled .foxit-input-element{color:#b3b3b3}[dir=ltr] .foxit-input-wrapper-textarea{padding-right:0}[dir=rtl] .foxit-input-wrapper-textarea{padding-left:0}.foxit-textarea-element{resize:none;scrollbar-color:#d9d9d9 #fff;scrollbar-gutter:stable;scrollbar-width:auto}.foxit-textarea-element::-webkit-scrollbar{width:16px}.foxit-textarea-element::-webkit-scrollbar-track{background:#fff}.foxit-textarea-element::-webkit-scrollbar-thumb{background-color:#d9d9d9;border:4px solid #fff;border-radius:8px}.foxit-pagination-container{align-items:center;display:flex;justify-content:center}.foxit-pagination-button,.foxit-pagination-next,.foxit-pagination-prev{background-color:initial;border:none;border-radius:10px;color:#757575;cursor:pointer;font-size:16px;font-weight:500;height:48px;margin:0 4px;min-width:48px;padding:0 12px;transition:background-color .3s ease,color .3s ease}.foxit-pagination-next:hover,.foxit-pagination-prev:hover{color:#ff5f00}.foxit-pagination-button:hover{background-color:#ff5f001a}.foxit-pagination-button:disabled{background-color:#ff5f00;color:#fff;cursor:default}.foxit-pagination-mobile-container{display:flex;justify-content:center;margin:16px 0}.foxit-pagination-mobile-next,.foxit-pagination-mobile-prev{height:36px;margin:0 8px;min-width:40px}.foxit-pagination-mobile-info{font-size:16px;min-width:48px}.foxit-button,.foxit-pagination-mobile-info{align-items:center;display:flex;justify-content:center}.foxit-button{border:0;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;letter-spacing:.42px}.foxit-button-circle{aspect-ratio:1;border-radius:50%!important;padding:0!important;width:auto}.foxit-button:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.foxit-button:hover{opacity:.8}.foxit-button-primary{background-color:#ff5f00;color:#fff}.foxit-button-secondary{background-color:#fff;border:1px solid #ff5f00;color:#ff5f00}.foxit-button-small{border-radius:5px;min-height:38px;padding:8px 24px}.foxit-button-small svg{height:16px;width:16px}.foxit-button-small.foxit-button-circle{height:38px;width:38px}.foxit-button-medium{border-radius:5px;min-height:44px;padding:11px 32px}.foxit-button-medium svg{height:20px;width:20px}.foxit-button-medium.foxit-button-circle{height:44px;width:44px}.foxit-button-large{min-height:56px;padding:16px 32px}.foxit-button-large.foxit-button-circle{height:56px;width:56px}.foxit-button-prevent-click{pointer-events:none}.foxit-button-loading{animation:spin 1s linear infinite}[dir=ltr] .foxit-button-loading{margin-right:8px}[dir=rtl] .foxit-button-loading{margin-left:8px}.foxit-button-primary .foxit-button-loading{color:#fff}.foxit-button-secondary .foxit-button-loading{color:#ff5f00}.foxit-radio-container{cursor:pointer;display:inline-block;position:relative;-webkit-user-select:none;user-select:none}[dir=ltr] .foxit-radio-container{padding-left:25px}[dir=rtl] .foxit-radio-container{padding-right:25px}.foxit-radio-container input{cursor:pointer;opacity:0;position:absolute}.foxit-radio-checkmark{background-color:#fff;border:1px solid #b3b3b3;border-radius:50%;height:20px;position:absolute;top:0;width:20px}[dir=ltr] .foxit-radio-checkmark{left:0}[dir=rtl] .foxit-radio-checkmark{right:0}.foxit-radio-content{line-height:20px}.foxit-radio-container input:checked~.foxit-radio-checkmark{background-color:#fff;border:1px solid #ff5f00}.foxit-radio-checkmark:after{content:"";display:none;position:absolute}.foxit-radio-container input:checked~.foxit-radio-checkmark:after{display:block}.foxit-radio-container .foxit-radio-checkmark:after{background:#ff5f00;border-radius:50%;height:10px;top:4px;width:10px}[dir=ltr] .foxit-radio-container .foxit-radio-checkmark:after{left:4px}[dir=rtl] .foxit-radio-container .foxit-radio-checkmark:after{right:4px}.foxit-radio-container.disabled{cursor:not-allowed;opacity:.6}.foxit-select-custom-control{display:flex}[dir=ltr] .foxit-select-custom-control{margin-right:-4px;padding-left:8px}[dir=rtl] .foxit-select-custom-control{margin-left:-4px;padding-right:8px}.foxit-table{border:1px solid #ff5f00;border-radius:10px;color:#373737;min-height:200px;overflow:hidden;position:relative}.foxit-table-loading{align-items:center;background-color:#ffffffb3;display:flex;height:100%;justify-content:center;position:absolute;top:0;width:100%;z-index:5}[dir=ltr] .foxit-table-loading{left:0}[dir=rtl] .foxit-table-loading{right:0}.foxit-table-icon-loading{animation:spin 1s linear infinite;color:#ff5f00}.foxit-table-container{border-collapse:collapse;min-width:100%;table-layout:fixed;width:auto}.foxit-table-container td,.foxit-table-container th{word-wrap:break-word;height:70px;min-height:70px;padding:24px;white-space:pre-wrap}.foxit-table-container th{background-color:#fff6f0;font-size:16px;font-weight:700}.foxit-table-container td{font-size:14px;font-weight:400}.foxit-table-container .foxit-even-row{background-color:#fff}.foxit-table-container .foxit-odd-row{background-color:#fff6f0}.foxit-table-mobile-list{display:flex;flex-direction:column;gap:16px}.foxit-table-mobile-card{background:#f8f8f8;border-radius:10px;display:flex;flex-direction:column;gap:12px;padding:32px}.foxit-table-mobile-row{align-items:flex-start;display:flex;flex-direction:row;justify-content:space-between}.foxit-table-mobile-row:not(:last-child){border-bottom:1px solid #efefef;padding-bottom:12px}.foxit-table-mobile-label{word-wrap:break-word;color:#373737;font-size:16px;font-weight:700;max-width:50%;white-space:pre-wrap}[dir=ltr] .foxit-table-mobile-label{margin-right:16px}[dir=rtl] .foxit-table-mobile-label{margin-left:16px}.foxit-table-mobile-value{word-wrap:break-word;color:#373737;flex:1 1 0;font-size:14px;font-weight:400;white-space:pre-wrap}[dir=ltr] .foxit-table-mobile-value{text-align:right}[dir=rtl] .foxit-table-mobile-value{text-align:left}.foxit-table-mobile-loading{align-items:center;background:#0000;display:flex;justify-content:center;padding:24px 0;width:100%}.foxit-tabs{display:flex;flex-wrap:wrap;gap:8px}.foxit-tab-item{background-color:#f1f3f4;border:none;border-radius:10px;color:#757575;cursor:pointer;font-size:14px;font-weight:600;padding:14px 20px;transition:background-color .3s,color .3s}.foxit-tab-item.active{background-color:#ff5f00;color:#fff}.foxit-tab-item:hover:not(.active){background-color:#e0e0e0}.foxit-tab-content{margin-top:16px}.foxit-linktabs{width:100%}.foxit-linktabs-inner{margin-left:auto;margin-right:auto;position:relative}.foxit-linktabs-scroll{background:#fff;border:none;padding:8px;position:absolute;top:6px;z-index:10}.foxit-linktabs-scroll:hover{color:#ff5f00;cursor:pointer}[dir=ltr] .foxit-linktabs-scroll-left{left:-24px}[dir=ltr] .foxit-linktabs-scroll-right,[dir=rtl] .foxit-linktabs-scroll-left{right:-24px}[dir=rtl] .foxit-linktabs-scroll-right{left:-24px}.foxit-linktabs-list{-ms-overflow-style:none;border-bottom:1px solid #f1f3f4;display:flex;overflow-x:auto;scrollbar-width:none;text-align:center;white-space:nowrap;width:100%}.foxit-linktabs-list::-webkit-scrollbar{display:none}.foxit-linktab-btn{background:none;border:none;color:#b3b3b3;cursor:pointer;display:inline-block;font-size:14px;font-weight:600;outline:none;padding:12px;transition:border-color .2s,color .2s}.foxit-linktab-btn.active{border-bottom:2px solid #ff5f00;color:#ff5f00}.foxit-tag{border-radius:5px;display:inline-block;font-size:12px;font-weight:600;min-height:24px;padding:4px 8px}.foxit-tag-active{background-color:#edfafa;color:#0f8b8d}.foxit-tag-canceled{background-color:#ffecec;color:#e22727}.foxit-tag-pending{background-color:#fbf4d0;color:#9b8827}.foxit-tag-offline{background-color:#edecff;color:#6462c6}.foxit-tag-trial{background-color:#e4f4fe;color:#2288ce}.foxit-tag-expired{background-color:#ececec;color:#757575}.foxit-tag-completed{background-color:#edfafa;color:#0f8b8d}.foxit-toast-container{pointer-events:none;position:fixed;top:0;transition-delay:0s;transition-duration:.5s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%;z-index:2000}[dir=ltr] .foxit-toast-container{left:50%;transform:translateX(-50%)}[dir=rtl] .foxit-toast-container{right:50%;transform:translateX(50%)}.foxit-toast-loading{animation:spin 1s linear infinite;color:#ff5f00}.foxit-toast-loading-overlay{background-color:#000;height:100vh;inset:0;opacity:.15;pointer-events:auto;position:fixed;z-index:10}.foxit-toast-item{align-items:center;background-color:#fff;border:none;border-radius:50px;color:#525252;display:flex;flex-direction:row;gap:8px;justify-content:center;margin-bottom:16px;margin-left:auto;margin-right:auto;padding:9px 12px;position:relative;top:102px;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:fit-content;z-index:20}.foxit-toast-item-success{background-color:#ddfae8;color:#1f7f40}.foxit-toast-item-error{background-color:#fae5dd;color:#e22727}.foxit-toast-item-warning{background-color:#fff0e7;color:#525252}.foxit-toast-enter{opacity:0;transform:translateY(-100%)}.foxit-toast-enter-active{transition:all .5s ease-out}.foxit-toast-enter-active,.foxit-toast-exit{opacity:1;transform:translateY(0)}.foxit-toast-exit-active{opacity:0;transform:translateY(-100%);transition:all .5s ease-in}.foxit-tooltip-container{display:inline-block;position:relative;width:auto}.foxit-tooltip-content{background-color:#525252;border-radius:10px;color:#fff;max-width:100%;min-width:100px;padding:12px 16px;position:absolute;width:300px;z-index:1}.foxit-tooltip-white{background-color:#fff;border:1px solid #e0e0e0;box-shadow:0 2px 4px #0000001a;color:#525252}.foxit-tooltip-arrow{border-left:5px solid #0000;border-right:5px solid #0000;border-top:5px solid #525252;bottom:-5px;height:0;position:absolute;width:0}[dir=ltr] .foxit-tooltip-arrow{transform:translateX(-50%)}[dir=rtl] .foxit-tooltip-arrow{transform:translateX(50%)}.foxit-tooltip-white .foxit-tooltip-arrow{border-top-color:#e0e0e0}.foxit-tooltip-white .foxit-tooltip-arrow:after{border-left:5px solid #0000;border-right:5px solid #0000;border-top:5px solid #fff;content:"";position:absolute;top:-6px}[dir=ltr] .foxit-tooltip-white .foxit-tooltip-arrow:after{left:-5px}[dir=rtl] .foxit-tooltip-white .foxit-tooltip-arrow:after{right:-5px}.foxit-menu{border-radius:10px;font-size:14px;overflow:hidden}.foxit-menu-item-content{align-items:center;cursor:pointer;display:flex;padding:12px 16px}[dir=ltr] .foxit-menu-item{padding-left:0}[dir=rtl] .foxit-menu-item{padding-right:0}.foxit-menu-item.selected{background-color:#fff6f0!important;border-radius:10px;color:#ff5f00;font-weight:600}.foxit-menu-item:hover{background-color:#f5f6f8;border-radius:10px}.foxit-menu-submenu-title{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px}.foxit-menu-submenu-title:hover{background-color:#f5f6f8;border-radius:10px}.foxit-menu-icon{transition:transform .3s ease-in-out}[dir=ltr] .foxit-menu-rotated-icon{transform:rotate(180deg)}[dir=rtl] .foxit-menu-rotated-icon{transform:rotate(-180deg)}.foxit-menu-item-label{font-weight:600}.foxit-menu-collapsed{transition:width .2s;width:50px!important}.foxit-menu-item-icon{align-items:center;display:inline-flex}[dir=ltr] .foxit-menu-item-icon{margin-right:8px}[dir=rtl] .foxit-menu-item-icon{margin-left:8px}.foxit-menu-item-icon-collapsed{font-size:16px}[dir=ltr] .foxit-menu-item-icon-collapsed{margin-right:0}[dir=rtl] .foxit-menu-item-icon-collapsed{margin-left:0}.foxit-menu-collapsed .foxit-menu-item-content,.foxit-menu-collapsed .foxit-menu-submenu-title{align-items:center;display:flex;justify-content:center;padding:12px}[dir=ltr] .foxit-menu-item-icon-mr8{margin-right:8px}[dir=rtl] .foxit-menu-item-icon-mr8{margin-left:8px}.foxit-menu-collapsed-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.foxit-menu-popup{background-color:#fff;border-radius:10px;box-shadow:0 3px 6px #0000001f,0 1px 3px #00000014;min-width:200px;padding:5px 0}.foxit-menu-popup-content{width:100%}.foxit-menu-popup-title{align-items:center;border-bottom:1px solid #f0f0f0;color:#333;display:flex;font-weight:600;padding:8px 16px}.foxit-modal-content-container{background-color:#fff;border-radius:10px;display:flex;flex-direction:column;gap:24px;justify-content:space-between;max-height:70vh;min-width:320px}@media (max-width:600px){.foxit-modal-content-container{box-sizing:border-box;overflow-y:auto}}[dir=ltr] .foxit-modal-success{background:linear-gradient(135deg,#fffaf7,#f9ede3,#fffaf7,#f9ede3)}[dir=rtl] .foxit-modal-success{background:linear-gradient(-135deg,#fffaf7,#f9ede3,#fffaf7,#f9ede3)}.foxit-modal-head{align-items:center;column-gap:8px;display:flex;justify-content:space-between;padding:36px 36px 0}.foxit-modal-children{box-sizing:border-box;max-height:60vh;overflow-y:auto;padding:0 36px}@media (max-width:600px){.foxit-modal-children{height:auto;max-height:100%;overflow-y:initial}}.foxit-modal-title{font-size:20px;font-weight:700}.foxit-modal-success-icon{display:flex;height:94px;margin-top:-50px;width:115px}.foxit-modal-close-button{align-items:center;cursor:pointer;display:flex;height:16px;justify-content:center;width:16px}.foxit-modal-close-button svg{stroke:#6b7280}.foxit-modal-close-button:hover svg{stroke:#ea580c}.foxit-modal-footer{display:flex;flex-wrap:wrap;gap:16px;justify-content:flex-end;padding:0 36px 36px}@media (max-width:600px){.foxit-modal-footer{align-items:stretch;flex-direction:column;width:100%}}.foxit-modal-fixed-layout{align-items:center;display:flex;flex-direction:column;inset:0;padding:36px;position:fixed;z-index:99}.foxit-modal-justify-center{justify-content:center}.foxit-modal-justify-top{justify-content:flex-start;padding-top:96px}.foxit-modal-justify-bottom{justify-content:flex-end}.foxit-modal-overlay{cursor:pointer;height:100%;inset:0;position:fixed;width:100%;z-index:99}.foxit-modal-overlay-bg{background-color:#00000026;height:100%;inset:0;position:absolute;width:100%}.foxit-modal-content{align-items:center;display:flex;font-size:16px;font-weight:400;justify-content:center;max-height:100%;width:auto;z-index:99}.foxit-modal-opacity-0{opacity:0}.foxit-modal-opacity-100{opacity:1}.foxit-modal-scale-0{transform:scale(0)}.foxit-modal-scale-100{transform:scale(1)}.foxit-modal-transition{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.foxit-modal-hide-overflow{overflow-y:hidden}.foxit-switch{background-color:#ccc;border-radius:100px;cursor:pointer;display:inline-block;height:22px;line-height:22px;min-width:40px;position:relative;transition:background-color .3s;width:40px}.foxit-switch.small{height:14px;line-height:14px;min-width:24px;width:24px}.foxit-switch.checked{background-color:#ff5f00}.foxit-switch-handle{background-color:#fff;border-radius:50%;height:18px;position:absolute;top:2px;transition:transform .3s;width:18px}[dir=ltr] .foxit-switch-handle{transform:translateX(1px)}[dir=rtl] .foxit-switch-handle{transform:translateX(-1px)}.foxit-switch.small .foxit-switch-handle{height:12px;top:1px;width:12px}[dir=ltr] .foxit-switch.checked .foxit-switch-handle{transform:translateX(20px)}[dir=rtl] .foxit-switch.checked .foxit-switch-handle{transform:translateX(-20px)}[dir=ltr] .foxit-switch.small.checked .foxit-switch-handle{transform:translateX(11px)}[dir=rtl] .foxit-switch.small.checked .foxit-switch-handle{transform:translateX(-11px)}.foxit-spin{display:inline-block;pointer-events:none;position:relative;width:100%}.foxit-spin .foxit-spin-container{opacity:.5}.foxit-spin-spinning{animation:spin 1s linear infinite;color:#ff5f00}[dir=ltr] .foxit-spin-spinning{margin-right:8px}[dir=rtl] .foxit-spin-spinning{margin-left:8px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.foxit-spin-icon{position:absolute;top:50%}[dir=ltr] .foxit-spin-icon{left:50%;transform:translate(-50%,-50%)}[dir=rtl] .foxit-spin-icon{right:50%;transform:translate(50%,-50%)}.foxit-spin-small .foxit-spin-icon{font-size:16px}.foxit-spin-default .foxit-spin-icon{font-size:24px}.foxit-spin-large .foxit-spin-icon{font-size:32px}.foxit-alert{align-items:flex-start;border-radius:5px;display:flex;padding:12px}.foxit-alert-icon-container{height:20px;width:20px}[dir=ltr] .foxit-alert-icon-container{margin-right:8px}[dir=rtl] .foxit-alert-icon-container{margin-left:8px}.foxit-alert-icon{height:20px;width:20px}.foxit-alert-message{font-size:12px}.foxit-alert-success,.foxit-alert-warning{background-color:#f5fff2;border:1px solid #30dc6b}.foxit-alert-error{background-color:#fae5dd;border:1px solid #e22727}.foxit-alert-gradient{border:1px solid #ff5f00;display:block}[dir=ltr] .foxit-alert-gradient{background:linear-gradient(135deg,#fffaf7,#f9ede3,#fffaf7,#f9ede3)}[dir=rtl] .foxit-alert-gradient{background:linear-gradient(-135deg,#fffaf7,#f9ede3,#fffaf7,#f9ede3)}.foxit-quantity,.foxit-quantity-button{align-items:center;display:flex}.foxit-quantity-button{background-color:#ff5f00;border:none;border-radius:4px;color:#fff;cursor:pointer;height:16px;justify-content:center;margin-left:8px;margin-right:8px;width:16px}.foxit-quantity-button:disabled{background-color:#ffc2a0;cursor:not-allowed}.foxit-quantity-button>div{font-size:16px;margin-top:-3px}.foxit-quantity-number{border:1px solid #b3b3b3;border-radius:4px;color:#525252;flex:1;font-size:14px;height:24px;line-height:24px;outline:none!important;text-align:center;width:48px}.foxit-drawer-mask{background-color:#00000026;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .3s;z-index:99}.foxit-drawer-mask-open{opacity:1;pointer-events:auto}.foxit-drawer{background:#fff;height:100vh;overflow:auto;position:fixed;top:0;z-index:100}[dir=ltr] .foxit-drawer{box-shadow:-2px 0 8px #00000026;right:0;transition:right .3s}[dir=rtl] .foxit-drawer{box-shadow:2px 0 8px #00000026;left:0;transition:left .3s}.foxit-drawer-content{padding:24px}.foxit-steps{display:flex}.foxit-steps-horizontal{align-items:flex-start;flex-direction:row}.foxit-steps-vertical{flex-direction:column}.foxit-steps-item{display:flex;flex:1;position:relative}.foxit-steps-horizontal .foxit-steps-item{align-items:center;flex-direction:column;text-align:center}.foxit-steps-vertical .foxit-steps-item{align-items:flex-start;flex-direction:row;margin-bottom:16px}.foxit-steps-item-container{display:flex;position:relative;z-index:1}.foxit-steps-horizontal .foxit-steps-item-container{align-items:center;flex-direction:column}.foxit-steps-vertical .foxit-steps-item-container{align-items:flex-start;flex-direction:row}.foxit-steps-item-clickable .foxit-steps-item-container{cursor:pointer}.foxit-steps-item-clickable:hover .foxit-steps-item-title{color:FF5F00}.foxit-steps-item-icon{align-items:center;display:flex;justify-content:center;margin-bottom:8px;position:relative}.foxit-steps-vertical .foxit-steps-item-icon{margin-bottom:0;margin-top:4px}[dir=ltr] .foxit-steps-vertical .foxit-steps-item-icon{margin-right:16px}[dir=rtl] .foxit-steps-vertical .foxit-steps-item-icon{margin-left:16px}.foxit-steps-icon{align-items:center;border-radius:50%;display:flex;font-size:12px;height:16px;justify-content:center;transition:all .3s ease;width:16px}.foxit-steps-icon-wait{background-color:#fff;border:1px solid #cecece}.foxit-steps-icon-process{background-color:#ff5f00;border:1px solid #ff5f00}.foxit-steps-icon-finish{background-color:#fff;border:1px solid #ff5f00;color:#ff5f00}.foxit-steps-item-content{display:flex;flex-direction:column;min-width:0}.foxit-steps-horizontal .foxit-steps-item-content{align-items:center;text-align:center}.foxit-steps-vertical .foxit-steps-item-content{align-items:flex-start}[dir=ltr] .foxit-steps-vertical .foxit-steps-item-content{text-align:left}[dir=rtl] .foxit-steps-vertical .foxit-steps-item-content{text-align:right}.foxit-steps-item-title{color:#757575;font-size:14px;line-height:1.5;margin-bottom:4px;transition:color .3s ease}.foxit-steps-item-process .foxit-steps-item-title{color:#ff5f00;font-weight:700}.foxit-steps-item-description{color:#00000073;font-size:12px;line-height:1.5;max-width:120px}.foxit-steps-item-tail{height:1px;position:absolute;top:8px;width:calc(100% - 16px);z-index:0}[dir=ltr] .foxit-steps-item-tail{left:50%}[dir=rtl] .foxit-steps-item-tail{right:50%}[dir=ltr] .foxit-steps-horizontal .foxit-steps-item-tail{transform:translateX(8px)}[dir=rtl] .foxit-steps-horizontal .foxit-steps-item-tail{transform:translateX(-8px)}.foxit-steps-vertical .foxit-steps-item-tail{height:100%;position:absolute;top:20px;transform:none;width:1px}[dir=ltr] .foxit-steps-vertical .foxit-steps-item-tail{left:8px}[dir=rtl] .foxit-steps-vertical .foxit-steps-item-tail{right:8px}.foxit-steps-item-tail-line{background-color:#d9d9d9;height:100%;transition:background-color .3s ease;width:100%}.foxit-steps-item-finish .foxit-steps-item-tail-line{background-color:#ff6b35}.foxit-steps-item-process .foxit-steps-item-tail-line{background-color:#d9d9d9}
|
|
1
|
+
.foxit-checkbox-container{cursor:pointer;display:inline-block;position:relative;-webkit-user-select:none;user-select:none}[dir=ltr] .foxit-checkbox-container{padding-left:25px}[dir=rtl] .foxit-checkbox-container{padding-right:25px}.foxit-checkbox-container.small{line-height:16px}[dir=ltr] .foxit-checkbox-container.small{padding-left:21px}[dir=rtl] .foxit-checkbox-container.small{padding-right:21px}.foxit-checkbox-container input{cursor:pointer;opacity:0;position:absolute}.foxit-checkbox-checkmark{background-color:#fff;border:1px solid #b3b3b3;border-radius:4px;height:20px;position:absolute;top:0;width:20px}[dir=ltr] .foxit-checkbox-checkmark{left:0}[dir=rtl] .foxit-checkbox-checkmark{right:0}.foxit-checkbox-container input:indeterminate~.foxit-checkbox-checkmark{background-color:#fff}.foxit-checkbox-container.small .foxit-checkbox-checkmark{height:16px;width:16px}.foxit-checkbox-content{line-height:20px}.foxit-checkbox-container.small .foxit-checkbox-content{display:inline-block;font-size:12px;line-height:16px}.foxit-checkbox-container input:checked~.foxit-checkbox-checkmark{background-color:#ff5f00;border:none}[dir=rtl] .foxit-checkbox-container input:checked~.foxit-checkbox-checkmark{transform:scaleX(-1)}.foxit-checkbox-checkmark:after{content:"";display:none;position:absolute}.foxit-checkbox-container input:checked~.foxit-checkbox-checkmark:after{display:block}.foxit-checkbox-container .foxit-checkbox-checkmark:after{border:solid #fff;height:10px;top:4px;width:6px}[dir=ltr] .foxit-checkbox-container .foxit-checkbox-checkmark:after{border-width:0 2px 2px 0;left:7px;transform:rotate(45deg)}[dir=rtl] .foxit-checkbox-container .foxit-checkbox-checkmark:after{border-width:0 0 2px 2px;right:7px;transform:rotate(-45deg)}.foxit-checkbox-container input:indeterminate~.foxit-checkbox-checkmark:after{background-color:#ff5f00;border:none;border-radius:2px;display:block;height:10px;top:50%;width:10px}[dir=ltr] .foxit-checkbox-container input:indeterminate~.foxit-checkbox-checkmark:after{left:50%;transform:translate(-50%,-50%)}[dir=rtl] .foxit-checkbox-container input:indeterminate~.foxit-checkbox-checkmark:after{right:50%;transform:translate(50%,-50%)}.foxit-checkbox-container.small .foxit-checkbox-checkmark:after{top:2px}[dir=ltr] .foxit-checkbox-container.small .foxit-checkbox-checkmark:after{left:5px}[dir=rtl] .foxit-checkbox-container.small .foxit-checkbox-checkmark:after{right:5px}.foxit-checkbox-container.small input:indeterminate~.foxit-checkbox-checkmark:after{height:8px;top:50%;width:8px}[dir=ltr] .foxit-checkbox-container.small input:indeterminate~.foxit-checkbox-checkmark:after{left:50%;transform:translate(-50%,-50%)}[dir=rtl] .foxit-checkbox-container.small input:indeterminate~.foxit-checkbox-checkmark:after{right:50%;transform:translate(50%,-50%)}.foxit-checkbox-container.disabled{color:#00000040;cursor:not-allowed;opacity:.6}.foxit-checkbox-checkmark.disabled{background-color:#f5f5f5;border:1px solid #d9d9d9}.foxit-empty{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:20px;text-align:center}.foxit-empty-image{margin-bottom:16px}.foxit-empty-description{color:#757575;font-size:14px}.foxit-form-item{margin-bottom:24px}.foxit-form-item label{color:#525252;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.foxit-form-item-embedlabel{background-color:#fff;display:inline-block!important;padding:0 4px;position:relative;top:18px;z-index:1}[dir=ltr] .foxit-form-item-embedlabel{margin-left:4px}[dir=rtl] .foxit-form-item-embedlabel{margin-right:4px}.foxit-form-required{color:#e22727}.foxit-form-error-text,.foxit-form-warning-text{font-size:12px;line-height:24px;min-height:24px}.foxit-form-error-text{color:#e22727}.foxit-form-warning-text{color:orange}.foxit-form-item>.foxit-form-error-component .foxit-checkbox-container,.foxit-form-item>.foxit-form-error-component .foxit-input-wrapper,.foxit-form-item>.foxit-form-error-component .foxit-radio-container,.foxit-form-item>.foxit-form-error-component .foxit-select-wrapper>:nth-child(3){border:1px solid #e22727!important}.foxit-form-item>.foxit-form-warning-component .foxit-checkbox-container,.foxit-form-item>.foxit-form-warning-component .foxit-input-wrapper,.foxit-form-item>.foxit-form-warning-component .foxit-radio-container,.foxit-form-item>.foxit-form-warning-component .foxit-select-wrapper>:nth-child(3){border-color:orange!important}.foxit-input-wrapper{align-items:center;border:1px solid #d9d9d9;border-radius:10px;display:flex;font-size:14px;font-weight:400;padding:11px 16px;transition:border-color .3s}.foxit-input-wrapper:focus-within{border-color:#ff5f00!important}.foxit-input-wrapper:hover{border-color:#757575}.foxit-input-element{border:none;color:#525252;flex:1;line-height:24px;outline:none!important}[dir=ltr] .foxit-input-element{text-align:left}[dir=rtl] .foxit-input-element{text-align:right}.foxit-input-element::placeholder{color:#b3b3b3}.foxit-input-addon{align-items:center;color:#b3b3b3;cursor:pointer;display:flex;transition:color .3s}[dir=ltr] .foxit-input-addon{padding:0 0 0 8px}[dir=ltr] .foxit-input-addon-before,[dir=rtl] .foxit-input-addon{padding:0 8px 0 0}[dir=rtl] .foxit-input-addon-before{padding:0 0 0 8px}.foxit-input-wrapper:focus-within .foxit-input-addon{color:#ff5f00!important}.foxit-input-wrapper:hover .foxit-input-addon{color:#757575}.foxit-input-wrapper :disabled,.foxit-input-wrapper-disabled{background-color:#f8f8f8}.foxit-input-wrapper-disabled:hover{border-color:#d9d9d9}.foxit-input-wrapper-disabled .foxit-input-element{color:#b3b3b3}[dir=ltr] .foxit-input-wrapper-textarea{padding-right:0}[dir=rtl] .foxit-input-wrapper-textarea{padding-left:0}.foxit-textarea-element{resize:none;scrollbar-color:#d9d9d9 #fff;scrollbar-gutter:stable;scrollbar-width:auto}.foxit-textarea-element::-webkit-scrollbar{width:16px}.foxit-textarea-element::-webkit-scrollbar-track{background:#fff}.foxit-textarea-element::-webkit-scrollbar-thumb{background-color:#d9d9d9;border:4px solid #fff;border-radius:8px}.foxit-pagination-container{align-items:center;display:flex;justify-content:center}.foxit-pagination-button,.foxit-pagination-next,.foxit-pagination-prev{background-color:initial;border:none;border-radius:10px;color:#757575;cursor:pointer;font-size:16px;font-weight:500;height:48px;margin:0 4px;min-width:48px;padding:0 12px;transition:background-color .3s ease,color .3s ease}.foxit-pagination-next:hover,.foxit-pagination-prev:hover{color:#ff5f00}.foxit-pagination-button:hover{background-color:#ff5f001a}.foxit-pagination-button:disabled{background-color:#ff5f00;color:#fff;cursor:default}.foxit-pagination-mobile-container{display:flex;justify-content:center;margin:16px 0}.foxit-pagination-mobile-next,.foxit-pagination-mobile-prev{height:36px;margin:0 8px;min-width:40px}.foxit-pagination-mobile-info{font-size:16px;min-width:48px}.foxit-button,.foxit-pagination-mobile-info{align-items:center;display:flex;justify-content:center}.foxit-button{border:0;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;letter-spacing:.42px}.foxit-button-circle{aspect-ratio:1;border-radius:50%!important;padding:0!important;width:auto}.foxit-button:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.foxit-button:hover{opacity:.8}.foxit-button-primary{background-color:#ff5f00;color:#fff}.foxit-button-secondary{background-color:#fff;border:1px solid #ff5f00;color:#ff5f00}.foxit-button-small{border-radius:5px;min-height:38px;padding:8px 24px}.foxit-button-small svg{height:16px;width:16px}.foxit-button-small.foxit-button-circle{height:38px;width:38px}.foxit-button-medium{border-radius:5px;min-height:44px;padding:11px 32px}.foxit-button-medium svg{height:20px;width:20px}.foxit-button-medium.foxit-button-circle{height:44px;width:44px}.foxit-button-large{min-height:56px;padding:16px 32px}.foxit-button-large.foxit-button-circle{height:56px;width:56px}.foxit-button-prevent-click{pointer-events:none}.foxit-button-loading{animation:spin 1s linear infinite}[dir=ltr] .foxit-button-loading{margin-right:8px}[dir=rtl] .foxit-button-loading{margin-left:8px}.foxit-button-primary .foxit-button-loading{color:#fff}.foxit-button-secondary .foxit-button-loading{color:#ff5f00}.foxit-radio-container{cursor:pointer;display:inline-block;position:relative;-webkit-user-select:none;user-select:none}[dir=ltr] .foxit-radio-container{padding-left:25px}[dir=rtl] .foxit-radio-container{padding-right:25px}.foxit-radio-container input{cursor:pointer;opacity:0;position:absolute}.foxit-radio-checkmark{background-color:#fff;border:1px solid #b3b3b3;border-radius:50%;height:20px;position:absolute;top:0;width:20px}[dir=ltr] .foxit-radio-checkmark{left:0}[dir=rtl] .foxit-radio-checkmark{right:0}.foxit-radio-content{line-height:20px}.foxit-radio-container input:checked~.foxit-radio-checkmark{background-color:#fff;border:1px solid #ff5f00}.foxit-radio-checkmark:after{content:"";display:none;position:absolute}.foxit-radio-container input:checked~.foxit-radio-checkmark:after{display:block}.foxit-radio-container .foxit-radio-checkmark:after{background:#ff5f00;border-radius:50%;height:10px;top:4px;width:10px}[dir=ltr] .foxit-radio-container .foxit-radio-checkmark:after{left:4px}[dir=rtl] .foxit-radio-container .foxit-radio-checkmark:after{right:4px}.foxit-radio-container.disabled{cursor:not-allowed;opacity:.6}.foxit-select-custom-control{display:flex}[dir=ltr] .foxit-select-custom-control{margin-right:-4px;padding-left:8px}[dir=rtl] .foxit-select-custom-control{margin-left:-4px;padding-right:8px}.foxit-table{border:1px solid #ff5f00;border-radius:10px;color:#373737;min-height:200px;overflow:hidden;position:relative}.foxit-table-loading{align-items:center;background-color:#ffffffb3;display:flex;height:100%;justify-content:center;position:absolute;top:0;width:100%;z-index:5}[dir=ltr] .foxit-table-loading{left:0}[dir=rtl] .foxit-table-loading{right:0}.foxit-table-icon-loading{animation:spin 1s linear infinite;color:#ff5f00}.foxit-table-container{border-collapse:collapse;min-width:100%;table-layout:fixed;width:auto}.foxit-table-container td,.foxit-table-container th{word-wrap:break-word;height:70px;min-height:70px;padding:24px;white-space:pre-wrap}.foxit-table-container th{background-color:#fff6f0;font-size:16px;font-weight:700}.foxit-table-container td{font-size:14px;font-weight:400}.foxit-table-container .foxit-even-row{background-color:#fff}.foxit-table-container .foxit-odd-row{background-color:#fff6f0}.foxit-table-mobile-list{display:flex;flex-direction:column;gap:16px}.foxit-table-mobile-card{background:#f8f8f8;border-radius:10px;display:flex;flex-direction:column;gap:12px;padding:32px}.foxit-table-mobile-row{align-items:flex-start;display:flex;flex-direction:row;justify-content:space-between}.foxit-table-mobile-row:not(:last-child){border-bottom:1px solid #efefef;padding-bottom:12px}.foxit-table-mobile-label{word-wrap:break-word;color:#373737;font-size:16px;font-weight:700;max-width:50%;white-space:pre-wrap}[dir=ltr] .foxit-table-mobile-label{margin-right:16px}[dir=rtl] .foxit-table-mobile-label{margin-left:16px}.foxit-table-mobile-value{word-wrap:break-word;color:#373737;flex:1 1 0;font-size:14px;font-weight:400;white-space:pre-wrap}[dir=ltr] .foxit-table-mobile-value{text-align:right}[dir=rtl] .foxit-table-mobile-value{text-align:left}.foxit-table-mobile-loading{align-items:center;background:#0000;display:flex;justify-content:center;padding:24px 0;width:100%}.foxit-table-checkbox{position:relative;text-align:center}[dir=ltr] .foxit-table-checkbox{padding:24px 0 24px 16px!important}[dir=rtl] .foxit-table-checkbox{padding:24px 16px 24px 0!important}.foxit-tabs{display:flex;flex-wrap:wrap;gap:8px}.foxit-tab-item{background-color:#f1f3f4;border:none;border-radius:10px;color:#757575;cursor:pointer;font-size:14px;font-weight:600;padding:14px 20px;transition:background-color .3s,color .3s}.foxit-tab-item.active{background-color:#ff5f00;color:#fff}.foxit-tab-item:hover:not(.active){background-color:#e0e0e0}.foxit-tab-content{margin-top:16px}.foxit-linktabs{width:100%}.foxit-linktabs-inner{margin-left:auto;margin-right:auto;position:relative}.foxit-linktabs-scroll{background:#fff;border:none;padding:8px;position:absolute;top:6px;z-index:10}.foxit-linktabs-scroll:hover{color:#ff5f00;cursor:pointer}[dir=ltr] .foxit-linktabs-scroll-left{left:-24px}[dir=ltr] .foxit-linktabs-scroll-right,[dir=rtl] .foxit-linktabs-scroll-left{right:-24px}[dir=rtl] .foxit-linktabs-scroll-right{left:-24px}.foxit-linktabs-list{-ms-overflow-style:none;border-bottom:1px solid #f1f3f4;display:flex;overflow-x:auto;scrollbar-width:none;text-align:center;white-space:nowrap;width:100%}.foxit-linktabs-list::-webkit-scrollbar{display:none}.foxit-linktab-btn{background:none;border:none;color:#b3b3b3;cursor:pointer;display:inline-block;font-size:14px;font-weight:600;outline:none;padding:12px;transition:border-color .2s,color .2s}.foxit-linktab-btn.active{border-bottom:2px solid #ff5f00;color:#ff5f00}.foxit-tag{border-radius:5px;display:inline-block;font-size:12px;font-weight:600;min-height:24px;padding:4px 8px}.foxit-tag-active{background-color:#edfafa;color:#0f8b8d}.foxit-tag-canceled{background-color:#ffecec;color:#e22727}.foxit-tag-pending{background-color:#fbf4d0;color:#9b8827}.foxit-tag-offline{background-color:#edecff;color:#6462c6}.foxit-tag-trial{background-color:#e4f4fe;color:#2288ce}.foxit-tag-expired{background-color:#ececec;color:#757575}.foxit-tag-completed{background-color:#edfafa;color:#0f8b8d}.foxit-toast-container{pointer-events:none;position:fixed;top:0;transition-delay:0s;transition-duration:.5s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%;z-index:2000}[dir=ltr] .foxit-toast-container{left:50%;transform:translateX(-50%)}[dir=rtl] .foxit-toast-container{right:50%;transform:translateX(50%)}.foxit-toast-loading{animation:spin 1s linear infinite;color:#ff5f00}.foxit-toast-loading-overlay{background-color:#000;height:100vh;inset:0;opacity:.15;pointer-events:auto;position:fixed;z-index:10}.foxit-toast-item{align-items:center;background-color:#fff;border:none;border-radius:50px;color:#525252;display:flex;flex-direction:row;gap:8px;justify-content:center;margin-bottom:16px;margin-left:auto;margin-right:auto;padding:9px 12px;position:relative;top:102px;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:fit-content;z-index:20}.foxit-toast-item-success{background-color:#ddfae8;color:#1f7f40}.foxit-toast-item-error{background-color:#fae5dd;color:#e22727}.foxit-toast-item-warning{background-color:#fff0e7;color:#525252}.foxit-toast-enter{opacity:0;transform:translateY(-100%)}.foxit-toast-enter-active{transition:all .5s ease-out}.foxit-toast-enter-active,.foxit-toast-exit{opacity:1;transform:translateY(0)}.foxit-toast-exit-active{opacity:0;transform:translateY(-100%);transition:all .5s ease-in}.foxit-tooltip-container{display:inline-block;position:relative;width:auto}.foxit-tooltip-content{background-color:#525252;border-radius:10px;color:#fff;max-width:100%;min-width:100px;padding:12px 16px;position:absolute;width:300px;z-index:1}.foxit-tooltip-white{background-color:#fff;border:1px solid #e0e0e0;box-shadow:0 2px 4px #0000001a;color:#525252}.foxit-tooltip-bridge{background-color:initial;pointer-events:auto;position:absolute;z-index:9998}.foxit-tooltip-arrow{height:0;position:absolute;width:0}.foxit-tooltip-arrow-top{border-top:5px solid #525252}.foxit-tooltip-arrow-bottom,.foxit-tooltip-arrow-top{border-left:5px solid #0000;border-right:5px solid #0000}.foxit-tooltip-arrow-bottom{border-bottom:5px solid #525252}.foxit-tooltip-arrow-left{border-bottom:5px solid #0000;border-top:5px solid #0000}[dir=ltr] .foxit-tooltip-arrow-left{border-left:5px solid #525252}[dir=rtl] .foxit-tooltip-arrow-left{border-right:5px solid #525252}.foxit-tooltip-arrow-right{border-bottom:5px solid #0000;border-top:5px solid #0000}[dir=ltr] .foxit-tooltip-arrow-right{border-right:5px solid #525252}[dir=rtl] .foxit-tooltip-arrow-right{border-left:5px solid #525252}.foxit-tooltip-white .foxit-tooltip-arrow-top{border-top-color:#e0e0e0}.foxit-tooltip-white .foxit-tooltip-arrow-bottom{border-bottom-color:#e0e0e0}[dir=ltr] .foxit-tooltip-white .foxit-tooltip-arrow-left{border-left-color:#e0e0e0}[dir=ltr] .foxit-tooltip-white .foxit-tooltip-arrow-right,[dir=rtl] .foxit-tooltip-white .foxit-tooltip-arrow-left{border-right-color:#e0e0e0}[dir=rtl] .foxit-tooltip-white .foxit-tooltip-arrow-right{border-left-color:#e0e0e0}.foxit-tooltip-white .foxit-tooltip-arrow-top:after{border-left:5px solid #0000;border-right:5px solid #0000;border-top:5px solid #fff;content:"";position:absolute;top:-6px}[dir=ltr] .foxit-tooltip-white .foxit-tooltip-arrow-top:after{left:-5px}[dir=rtl] .foxit-tooltip-white .foxit-tooltip-arrow-top:after{right:-5px}.foxit-tooltip-white .foxit-tooltip-arrow-bottom:after{border-bottom:5px solid #fff;border-left:5px solid #0000;border-right:5px solid #0000;bottom:-6px;content:"";position:absolute}[dir=ltr] .foxit-tooltip-white .foxit-tooltip-arrow-bottom:after{left:-5px}[dir=rtl] .foxit-tooltip-white .foxit-tooltip-arrow-bottom:after{right:-5px}.foxit-tooltip-white .foxit-tooltip-arrow-left:after{border-bottom:5px solid #0000;border-top:5px solid #0000;content:"";position:absolute;top:-5px}[dir=ltr] .foxit-tooltip-white .foxit-tooltip-arrow-left:after{border-left:5px solid #fff;left:-6px}[dir=rtl] .foxit-tooltip-white .foxit-tooltip-arrow-left:after{border-right:5px solid #fff;right:-6px}.foxit-tooltip-white .foxit-tooltip-arrow-right:after{border-bottom:5px solid #0000;border-top:5px solid #0000;content:"";position:absolute;top:-5px}[dir=ltr] .foxit-tooltip-white .foxit-tooltip-arrow-right:after{border-right:5px solid #fff;right:-6px}[dir=rtl] .foxit-tooltip-white .foxit-tooltip-arrow-right:after{border-left:5px solid #fff;left:-6px}.foxit-menu{border-radius:10px;font-size:14px;overflow:hidden}.foxit-menu-item-content{align-items:center;cursor:pointer;display:flex;padding:12px 16px}[dir=ltr] .foxit-menu-item{padding-left:0}[dir=rtl] .foxit-menu-item{padding-right:0}.foxit-menu-item.selected{background-color:#fff6f0!important;border-radius:10px;color:#ff5f00;font-weight:600}.foxit-menu-item:hover{background-color:#f5f6f8;border-radius:10px}.foxit-menu-submenu-title{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px}.foxit-menu-submenu-title:hover{background-color:#f5f6f8;border-radius:10px}.foxit-menu-icon{transition:transform .3s ease-in-out}[dir=ltr] .foxit-menu-rotated-icon{transform:rotate(180deg)}[dir=rtl] .foxit-menu-rotated-icon{transform:rotate(-180deg)}.foxit-menu-item-label{font-weight:600}.foxit-menu-collapsed{transition:width .2s;width:50px!important}.foxit-menu-item-icon{align-items:center;display:inline-flex}[dir=ltr] .foxit-menu-item-icon{margin-right:8px}[dir=rtl] .foxit-menu-item-icon{margin-left:8px}.foxit-menu-item-icon-collapsed{font-size:16px}[dir=ltr] .foxit-menu-item-icon-collapsed{margin-right:0}[dir=rtl] .foxit-menu-item-icon-collapsed{margin-left:0}.foxit-menu-collapsed .foxit-menu-item-content,.foxit-menu-collapsed .foxit-menu-submenu-title{align-items:center;display:flex;justify-content:center;padding:12px}[dir=ltr] .foxit-menu-item-icon-mr8{margin-right:8px}[dir=rtl] .foxit-menu-item-icon-mr8{margin-left:8px}.foxit-menu-collapsed-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.foxit-menu-popup{background-color:#fff;border-radius:10px;box-shadow:0 3px 6px #0000001f,0 1px 3px #00000014;min-width:200px;padding:5px 0}.foxit-menu-popup-content{width:100%}.foxit-menu-popup-title{align-items:center;border-bottom:1px solid #f0f0f0;color:#333;display:flex;font-weight:600;padding:8px 16px}.foxit-menu-popup-title-no-border{border-bottom:none}.foxit-modal-content-container{background-color:#fff;border-radius:10px;display:flex;flex-direction:column;gap:24px;justify-content:space-between;max-height:70vh;min-width:320px}@media (max-width:600px){.foxit-modal-content-container{box-sizing:border-box;overflow-y:auto}}[dir=ltr] .foxit-modal-success{background:linear-gradient(135deg,#fffaf7,#f9ede3,#fffaf7,#f9ede3)}[dir=rtl] .foxit-modal-success{background:linear-gradient(-135deg,#fffaf7,#f9ede3,#fffaf7,#f9ede3)}.foxit-modal-head{align-items:center;column-gap:8px;display:flex;justify-content:space-between;padding:36px 36px 0}.foxit-modal-children{box-sizing:border-box;max-height:60vh;overflow-y:auto;padding:0 36px}@media (max-width:600px){.foxit-modal-children{height:auto;max-height:100%;overflow-y:initial}}.foxit-modal-title{font-size:20px;font-weight:700}.foxit-modal-success-icon{display:flex;height:94px;margin-top:-50px;width:115px}.foxit-modal-close-button{align-items:center;cursor:pointer;display:flex;height:16px;justify-content:center;width:16px}.foxit-modal-close-button svg{stroke:#6b7280}.foxit-modal-close-button:hover svg{stroke:#ea580c}.foxit-modal-footer{display:flex;flex-wrap:wrap;gap:16px;justify-content:flex-end;padding:0 36px 36px}@media (max-width:600px){.foxit-modal-footer{align-items:stretch;flex-direction:column;width:100%}}.foxit-modal-fixed-layout{align-items:center;display:flex;flex-direction:column;inset:0;padding:36px;position:fixed;z-index:99}.foxit-modal-justify-center{justify-content:center}.foxit-modal-justify-top{justify-content:flex-start;padding-top:96px}.foxit-modal-justify-bottom{justify-content:flex-end}.foxit-modal-overlay{cursor:pointer;height:100%;inset:0;position:fixed;width:100%;z-index:99}.foxit-modal-overlay-bg{background-color:#00000026;height:100%;inset:0;position:absolute;width:100%}.foxit-modal-content{align-items:center;display:flex;font-size:16px;font-weight:400;justify-content:center;max-height:100%;width:auto;z-index:99}.foxit-modal-opacity-0{opacity:0}.foxit-modal-opacity-100{opacity:1}.foxit-modal-scale-0{transform:scale(0)}.foxit-modal-scale-100{transform:scale(1)}.foxit-modal-transition{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.foxit-modal-hide-overflow{overflow-y:hidden}.foxit-switch{background-color:#ccc;border-radius:100px;cursor:pointer;display:inline-block;height:22px;line-height:22px;min-width:40px;position:relative;transition:background-color .3s;width:40px}.foxit-switch.small{height:14px;line-height:14px;min-width:24px;width:24px}.foxit-switch.checked{background-color:#ff5f00}.foxit-switch-handle{background-color:#fff;border-radius:50%;height:18px;position:absolute;top:2px;transition:transform .3s;width:18px}[dir=ltr] .foxit-switch-handle{transform:translateX(1px)}[dir=rtl] .foxit-switch-handle{transform:translateX(-1px)}.foxit-switch.small .foxit-switch-handle{height:12px;top:1px;width:12px}[dir=ltr] .foxit-switch.checked .foxit-switch-handle{transform:translateX(20px)}[dir=rtl] .foxit-switch.checked .foxit-switch-handle{transform:translateX(-20px)}[dir=ltr] .foxit-switch.small.checked .foxit-switch-handle{transform:translateX(11px)}[dir=rtl] .foxit-switch.small.checked .foxit-switch-handle{transform:translateX(-11px)}.foxit-spin{display:inline-block;pointer-events:none;position:relative;width:100%}.foxit-spin .foxit-spin-container{opacity:.5}.foxit-spin-spinning{animation:spin 1s linear infinite;color:#ff5f00}[dir=ltr] .foxit-spin-spinning{margin-right:8px}[dir=rtl] .foxit-spin-spinning{margin-left:8px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.foxit-spin-icon{position:absolute;top:50%}[dir=ltr] .foxit-spin-icon{left:50%;transform:translate(-50%,-50%)}[dir=rtl] .foxit-spin-icon{right:50%;transform:translate(50%,-50%)}.foxit-spin-small .foxit-spin-icon{font-size:16px}.foxit-spin-default .foxit-spin-icon{font-size:24px}.foxit-spin-large .foxit-spin-icon{font-size:32px}.foxit-alert{align-items:flex-start;border-radius:5px;display:flex;padding:12px}.foxit-alert-icon-container{height:20px;width:20px}[dir=ltr] .foxit-alert-icon-container{margin-right:8px}[dir=rtl] .foxit-alert-icon-container{margin-left:8px}.foxit-alert-icon{height:20px;width:20px}.foxit-alert-message{font-size:12px}.foxit-alert-success,.foxit-alert-warning{background-color:#f5fff2;border:1px solid #30dc6b}.foxit-alert-error{background-color:#fae5dd;border:1px solid #e22727}.foxit-alert-gradient{border:1px solid #ff5f00;display:block}[dir=ltr] .foxit-alert-gradient{background:linear-gradient(135deg,#fffaf7,#f9ede3,#fffaf7,#f9ede3)}[dir=rtl] .foxit-alert-gradient{background:linear-gradient(-135deg,#fffaf7,#f9ede3,#fffaf7,#f9ede3)}.foxit-alert-arrows{background-color:#fff;border:1px solid #ffb990;box-shadow:0 2px 8px #0000001a;position:relative}.foxit-alert-arrows-left:after,.foxit-alert-arrows-left:before{border-style:solid;content:"";height:0;position:absolute;top:50%;transform:translateY(-50%);width:0}[dir=ltr] .foxit-alert-arrows-left:after,[dir=ltr] .foxit-alert-arrows-left:before{left:-8px}[dir=rtl] .foxit-alert-arrows-left:after,[dir=rtl] .foxit-alert-arrows-left:before{right:-8px}[dir=ltr] .foxit-alert-arrows-left:before{border-color:#0000 #ffb990 #0000 #0000;border-width:9px 9px 9px 0;left:-9px}[dir=rtl] .foxit-alert-arrows-left:before{border-color:#0000 #0000 #0000 #ffb990;border-width:9px 0 9px 9px;right:-9px}[dir=ltr] .foxit-alert-arrows-left:after{border-color:#0000 #fff #0000 #0000;border-width:8px 8px 8px 0;left:-8px}[dir=rtl] .foxit-alert-arrows-left:after{border-color:#0000 #0000 #0000 #fff;border-width:8px 0 8px 8px;right:-8px}.foxit-alert-arrows-right:after,.foxit-alert-arrows-right:before{border-style:solid;content:"";height:0;position:absolute;top:50%;transform:translateY(-50%);width:0}[dir=ltr] .foxit-alert-arrows-right:after,[dir=ltr] .foxit-alert-arrows-right:before{right:-8px}[dir=rtl] .foxit-alert-arrows-right:after,[dir=rtl] .foxit-alert-arrows-right:before{left:-8px}[dir=ltr] .foxit-alert-arrows-right:before{border-color:#0000 #0000 #0000 #ffb990;border-width:9px 0 9px 9px;right:-9px}[dir=rtl] .foxit-alert-arrows-right:before{border-color:#0000 #ffb990 #0000 #0000;border-width:9px 9px 9px 0;left:-9px}[dir=ltr] .foxit-alert-arrows-right:after{border-color:#0000 #0000 #0000 #fff;border-width:8px 0 8px 8px;right:-8px}[dir=rtl] .foxit-alert-arrows-right:after{border-color:#0000 #fff #0000 #0000;border-width:8px 8px 8px 0;left:-8px}.foxit-quantity,.foxit-quantity-button{align-items:center;display:flex}.foxit-quantity-button{background-color:#ff5f00;border:none;border-radius:4px;color:#fff;cursor:pointer;height:16px;justify-content:center;margin-left:8px;margin-right:8px;width:16px}.foxit-quantity-button:disabled{background-color:#ffc2a0;cursor:not-allowed}.foxit-quantity-button>div{font-size:16px;margin-top:-3px}.foxit-quantity-number{border:1px solid #b3b3b3;border-radius:4px;color:#525252;flex:1;font-size:14px;height:24px;line-height:24px;outline:none!important;text-align:center;width:48px}.foxit-drawer-mask{background-color:#00000026;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .3s;z-index:99}.foxit-drawer-mask-open{opacity:1;pointer-events:auto}.foxit-drawer{background:#fff;height:100vh;overflow:auto;position:fixed;top:0;z-index:100}[dir=ltr] .foxit-drawer{box-shadow:-2px 0 8px #00000026;right:0;transition:right .3s}[dir=rtl] .foxit-drawer{box-shadow:2px 0 8px #00000026;left:0;transition:left .3s}.foxit-drawer-content{padding:24px}.foxit-steps{display:flex}.foxit-steps-horizontal{align-items:flex-start;flex-direction:row}.foxit-steps-vertical{flex-direction:column}.foxit-steps-item{display:flex;flex:1;position:relative}.foxit-steps-horizontal .foxit-steps-item{align-items:center;flex-direction:column;text-align:center}.foxit-steps-vertical .foxit-steps-item{align-items:flex-start;flex-direction:row;margin-bottom:16px}.foxit-steps-item-container{display:flex;position:relative;z-index:1}.foxit-steps-horizontal .foxit-steps-item-container{align-items:center;flex-direction:column}.foxit-steps-vertical .foxit-steps-item-container{align-items:flex-start;flex-direction:row}.foxit-steps-item-clickable .foxit-steps-item-container{cursor:pointer}.foxit-steps-item-clickable:hover .foxit-steps-item-title{color:FF5F00}.foxit-steps-item-icon{align-items:center;display:flex;justify-content:center;margin-bottom:8px;position:relative}.foxit-steps-vertical .foxit-steps-item-icon{margin-bottom:0;margin-top:4px}[dir=ltr] .foxit-steps-vertical .foxit-steps-item-icon{margin-right:16px}[dir=rtl] .foxit-steps-vertical .foxit-steps-item-icon{margin-left:16px}.foxit-steps-icon{align-items:center;border-radius:50%;display:flex;font-size:12px;height:16px;justify-content:center;transition:all .3s ease;width:16px}.foxit-steps-icon-wait{background-color:#fff;border:1px solid #cecece}.foxit-steps-icon-process{background-color:#ff5f00;border:1px solid #ff5f00}.foxit-steps-icon-finish{background-color:#fff;border:1px solid #ff5f00;color:#ff5f00}.foxit-steps-item-content{display:flex;flex-direction:column;min-width:0}.foxit-steps-horizontal .foxit-steps-item-content{align-items:center;text-align:center}.foxit-steps-vertical .foxit-steps-item-content{align-items:flex-start}[dir=ltr] .foxit-steps-vertical .foxit-steps-item-content{text-align:left}[dir=rtl] .foxit-steps-vertical .foxit-steps-item-content{text-align:right}.foxit-steps-item-title{color:#757575;font-size:14px;line-height:1.5;margin-bottom:4px;transition:color .3s ease}.foxit-steps-item-process .foxit-steps-item-title{color:#ff5f00;font-weight:700}.foxit-steps-item-description{color:#00000073;font-size:12px;line-height:1.5;max-width:120px}.foxit-steps-item-tail{height:1px;position:absolute;top:8px;width:calc(100% - 16px);z-index:0}[dir=ltr] .foxit-steps-item-tail{left:50%}[dir=rtl] .foxit-steps-item-tail{right:50%}[dir=ltr] .foxit-steps-horizontal .foxit-steps-item-tail{transform:translateX(8px)}[dir=rtl] .foxit-steps-horizontal .foxit-steps-item-tail{transform:translateX(-8px)}.foxit-steps-vertical .foxit-steps-item-tail{height:100%;position:absolute;top:20px;transform:none;width:1px}[dir=ltr] .foxit-steps-vertical .foxit-steps-item-tail{left:8px}[dir=rtl] .foxit-steps-vertical .foxit-steps-item-tail{right:8px}.foxit-steps-item-tail-line{background-color:#d9d9d9;height:100%;transition:background-color .3s ease;width:100%}.foxit-steps-item-finish .foxit-steps-item-tail-line{background-color:#ff6b35}.foxit-steps-item-process .foxit-steps-item-tail-line{background-color:#d9d9d9}
|