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.
@@ -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 message = _a.message, _b = _a.showIcon, showIcon = _b === void 0 ? true : _b, _c = _a.type, type = _c === void 0 ? 'success' : _c, className = _a.className;
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), className) }, { children: [showIcon && (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
+ 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: React.ReactNode;
8
+ children?: React.ReactNode;
9
9
  size?: 'default' | 'small';
10
+ indeterminate?: boolean;
10
11
  }
11
12
  interface CheckboxGroupProps {
12
13
  value?: string[];
@@ -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 _d = useState(checked || false), internalChecked = _d[0], setInternalChecked = _d[1];
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 (!(item === null || item === void 0 ? void 0 : item.children))
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) {
@@ -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' ? (align === 'left' ? 'right' : align === 'right' ? 'left' : align) : align;
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: jsx("tr", { children: columns.map(function (column, index) { return (jsx("th", __assign({ style: {
23
- width: column.width ? "".concat(column.width, "px") : 'auto',
24
- textAlign: handleColumnAlign(column.align || 'left')
25
- } }, { children: column.title }), index)); }) }) }), jsx("tbody", { children: data.map(function (record, rowIndex) { return (jsx("tr", __assign({ className: rowIndex % 2 === 0 ? 'foxit-even-row' : 'foxit-odd-row' }, { children: columns.map(function (column, colIndex) { return (jsx("td", __assign({ style: { textAlign: handleColumnAlign(column.align || 'left') } }, { children: column.render
26
- ? column.render(record[column.dataIndex], record)
27
- : typeof record[column.dataIndex] === 'object'
28
- ? JSON.stringify(record[column.dataIndex]) // 将对象转换为字符串
29
- : String(record[column.dataIndex]) // 确保它是一个字符串
30
- }), colIndex)); }) }), rowIndex)); }) })] }))] })));
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
@@ -11,6 +11,7 @@ interface ButtonTabsProps {
11
11
  onChange?: (key: string) => void;
12
12
  type?: 'button' | 'link';
13
13
  className?: string;
14
+ destroyOnHidden?: boolean;
14
15
  }
15
16
  declare const ButtonTabs: React.FC<ButtonTabsProps>;
16
17
  export default ButtonTabs;
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 _d = useState(activeKey || ((_b = items[0]) === null || _b === void 0 ? void 0 : _b.key)), internalActiveKey = _d[0], setInternalActiveKey = _d[1];
10
- var _e = useState(false), showScrollButtons = _e[0], setShowScrollButtons = _e[1];
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: items.map(function (item) { return item.key === currentKey && jsx("div", { children: item.children }, item.key); }) }))] }));
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 };
@@ -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;
@@ -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 _c = useState({
12
+ var _d = useState({
13
13
  visibility: 'hidden',
14
14
  position: 'absolute',
15
15
  top: '0',
16
16
  left: '0'
17
- }), tooltipStyle = _c[0], setTooltipStyle = _c[1];
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 _d = useState('50%'), arrowLeft = _d[0], setArrowLeft = _d[1];
20
- var _e = useState(false), mounted = _e[0], setMounted = _e[1];
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 childRect = childRef.current.getBoundingClientRect();
24
- var tooltipHeight = tooltipRef.current.offsetHeight;
25
- var tooltipWidth = tooltipRef.current.offsetWidth;
26
- var top_1 = window.scrollY + childRect.top - tooltipHeight - 4; // 计算绝对位置,考虑页面滚动
27
- var left = window.scrollX + childRect.left + childRect.width / 2 - tooltipWidth / 2;
28
- var padding = 8; // 屏幕边缘留点空隙
29
- var maxLeft = window.scrollX + document.documentElement.clientWidth - tooltipWidth - padding;
30
- var minLeft = window.scrollX + padding;
31
- if (left < minLeft)
32
- left = minLeft;
33
- if (left > maxLeft)
34
- left = maxLeft;
35
- // 箭头的 left 计算
36
- var childCenter = childRect.left + childRect.width / 2;
37
- var arrowLeftPx = childCenter - left;
38
- // 限制箭头不超出 tooltip 边界
39
- arrowLeftPx = Math.max(12, Math.min(tooltipWidth - 12, arrowLeftPx));
40
- setArrowLeft("".concat(arrowLeftPx, "px"));
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
- ReactDOM.createPortal(jsxs("div", __assign({ onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, className: classNames('foxit-tooltip-content', {
72
- 'foxit-tooltip-white': whiteGround
73
- }, className), style: tooltipStyle, ref: tooltipRef }, { children: [title, jsx("div", { className: "foxit-tooltip-arrow", style: { left: getDirection() === 'rtl' ? "calc(".concat(arrowLeft, " - 10px)") : arrowLeft } })] })), document.body // 直接挂载到 body,避免层叠上下文限制
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}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foxit-component",
3
- "version": "1.0.4-alpha.9",
3
+ "version": "1.0.5-alpha.1",
4
4
  "author": {
5
5
  "name": "linye",
6
6
  "email": "869675630@qq.com"