bj-web-components 0.2.15 → 0.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/miniapp/index.d.ts +0 -0
  3. package/dist/miniapp.d.ts +1 -1
  4. package/dist/mobile/index.d.ts +0 -0
  5. package/dist/mobile.d.ts +1 -1
  6. package/dist/react/index.d.ts +0 -0
  7. package/dist/react.d.ts +1 -1
  8. package/dist/shared/index.d.ts +0 -0
  9. package/dist/shared.d.ts +1 -1
  10. package/dist/style.css +1 -1
  11. package/dist/web/BasicInput/BInput.d.ts +3 -0
  12. package/dist/web/BasicInput/index.d.ts +2 -0
  13. package/dist/web/BasicInput/types.d.ts +32 -0
  14. package/dist/web/BasicInput/utils.d.ts +13 -0
  15. package/dist/web/CategoryDropdown/CategoryDropdown.d.ts +2 -0
  16. package/dist/web/CategoryDropdown/index.d.ts +2 -0
  17. package/dist/web/CategoryDropdown/types.d.ts +31 -0
  18. package/dist/web/CheckBox/BCheckBox.d.ts +3 -0
  19. package/dist/web/CheckBox/Group.d.ts +3 -0
  20. package/dist/web/CheckBox/context.d.ts +11 -0
  21. package/dist/web/CheckBox/index.d.ts +9 -0
  22. package/dist/web/CheckBox/types.d.ts +54 -0
  23. package/dist/web/Dropdown/BDropdown.d.ts +2 -0
  24. package/dist/web/Dropdown/index.d.ts +2 -0
  25. package/dist/web/Dropdown/types.d.ts +41 -0
  26. package/dist/web/EmptyInputBox/EmptyInputBox.d.ts +3 -0
  27. package/dist/web/EmptyInputBox/index.d.ts +2 -0
  28. package/dist/web/EmptyInputBox/types.d.ts +28 -0
  29. package/dist/web/FileCard/FileCard.d.ts +2 -0
  30. package/dist/web/FileCard/index.d.ts +2 -0
  31. package/dist/web/FileCard/types.d.ts +20 -0
  32. package/dist/web/Icon/Icon.d.ts +6 -0
  33. package/dist/web/Icon/index.d.ts +2 -0
  34. package/dist/web/Icon/types.d.ts +11 -0
  35. package/dist/web/Input/Input.d.ts +3 -0
  36. package/dist/web/Input/index.d.ts +2 -0
  37. package/dist/web/Input/types.d.ts +55 -0
  38. package/dist/web/InputNumber/BInputNumber.d.ts +3 -0
  39. package/dist/web/InputNumber/StepHandler.d.ts +10 -0
  40. package/dist/web/InputNumber/hooks/useCursor.d.ts +2 -0
  41. package/dist/web/InputNumber/hooks/useFrame.d.ts +2 -0
  42. package/dist/web/InputNumber/index.d.ts +2 -0
  43. package/dist/web/InputNumber/types.d.ts +60 -0
  44. package/dist/web/InputNumber/utils/decimal.d.ts +46 -0
  45. package/dist/web/Modal/Modal.d.ts +2 -0
  46. package/dist/web/Modal/index.d.ts +2 -0
  47. package/dist/web/Modal/types.d.ts +42 -0
  48. package/dist/web/OverlayScrollbar/BOverlayScrollbar.d.ts +2 -0
  49. package/dist/web/OverlayScrollbar/index.d.ts +2 -0
  50. package/dist/web/OverlayScrollbar/types.d.ts +18 -0
  51. package/dist/web/Pagination/Pagination.d.ts +3 -0
  52. package/dist/web/Pagination/index.d.ts +2 -0
  53. package/dist/web/Pagination/types.d.ts +44 -0
  54. package/dist/web/ProductField/ProductField.d.ts +2 -0
  55. package/dist/web/ProductField/index.d.ts +2 -0
  56. package/dist/web/ProductField/types.d.ts +48 -0
  57. package/dist/web/SkuInputCard/SkuInputCard.d.ts +2 -0
  58. package/dist/web/SkuInputCard/index.d.ts +2 -0
  59. package/dist/web/SkuInputCard/types.d.ts +63 -0
  60. package/dist/web/Switch/Switch.d.ts +6 -0
  61. package/dist/web/Switch/index.d.ts +2 -0
  62. package/dist/web/Switch/types.d.ts +29 -0
  63. package/dist/web/Table/BTable.d.ts +10 -0
  64. package/dist/web/Table/BTable.js +1 -1
  65. package/dist/web/Table/BTable.mjs +213 -207
  66. package/dist/web/Table/Column.d.ts +3 -0
  67. package/dist/web/Table/ColumnGroup.d.ts +3 -0
  68. package/dist/web/Table/index.d.ts +4 -0
  69. package/dist/web/Table/types.d.ts +299 -0
  70. package/dist/web/Table/utils/columns.d.ts +11 -0
  71. package/dist/web/Table/utils/sortFilter.d.ts +7 -0
  72. package/dist/web/Tabs/BTabs.d.ts +8 -0
  73. package/dist/web/Tabs/TabPane.d.ts +7 -0
  74. package/dist/web/Tabs/index.d.ts +3 -0
  75. package/dist/web/Tabs/types.d.ts +32 -0
  76. package/dist/web/Tooltip/ConfirmTooltip.d.ts +2 -0
  77. package/dist/web/Tooltip/ContentTooltip.d.ts +2 -0
  78. package/dist/web/Tooltip/ProgressTooltip.d.ts +2 -0
  79. package/dist/web/Tooltip/TooltipWrapper.d.ts +3 -0
  80. package/dist/web/Tooltip/index.d.ts +6 -0
  81. package/dist/web/Tooltip/types.d.ts +36 -0
  82. package/dist/web/Tooltip/useAutoPlacement.d.ts +7 -0
  83. package/dist/web/index.d.ts +18 -0
  84. package/dist/web.d.ts +2 -1115
  85. package/package.json +1 -1
@@ -0,0 +1,3 @@
1
+ import { ColumnProps } from './types';
2
+ declare function Column<RecordType>(_: ColumnProps<RecordType>): null;
3
+ export default Column;
@@ -0,0 +1,3 @@
1
+ import { ColumnGroupProps } from './types';
2
+ declare function ColumnGroup<RecordType>(_: ColumnGroupProps<RecordType>): null;
3
+ export default ColumnGroup;
@@ -0,0 +1,4 @@
1
+ export { BTable } from './BTable';
2
+ export { default as Column } from './Column';
3
+ export { default as ColumnGroup } from './ColumnGroup';
4
+ export type { Breakpoint, CellType, ColumnFilterItem, ColumnGroupProps, ColumnGroupType, ColumnProps, ColumnsType, ColumnTitleProps, ColumnType, CompareFn, ExpandableConfig, FilterDropdownProps, FilterRequest, FilterSearchType, FilterValue, FixedType, GetRowKey, RenderedCell, SortOrder, SorterResult, TableAlign, TableComponents, TableDataIndex, TableKey, TableLocale, TablePaginationConfig, TableProps, TableRowSelection, TableSelectionType, TableSize, } from './types';
@@ -0,0 +1,299 @@
1
+ import { CSSProperties, HTMLAttributes, Key, ReactElement, ReactNode, Ref, TdHTMLAttributes } from 'react';
2
+ import { PaginationProps } from '../Pagination';
3
+ import { BDropdownProps } from '../Dropdown';
4
+ export type TableKey = Exclude<Key, bigint>;
5
+ export type TableDataIndex = string | number | readonly (string | number)[];
6
+ export type TableSize = 'large' | 'middle' | 'small';
7
+ export type TableSelectionType = 'checkbox' | 'radio';
8
+ export type TableAlign = 'left' | 'center' | 'right';
9
+ export type FixedType = 'left' | 'right' | boolean;
10
+ export type TableLayout = 'auto' | 'fixed';
11
+ export type SortOrder = 'ascend' | 'descend' | null;
12
+ export type TableAction = 'paginate' | 'sort' | 'filter';
13
+ export type Breakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
14
+ export type FilterValue = Array<TableKey | boolean>;
15
+ export type FilterKey = Array<string | number> | null;
16
+ export type RowSelectMethod = 'all' | 'none' | 'invert' | 'single' | 'multiple';
17
+ export interface RenderedCell<RecordType> {
18
+ children?: ReactNode;
19
+ props?: CellType<RecordType>;
20
+ }
21
+ export interface CellType<RecordType> {
22
+ key?: Key;
23
+ className?: string;
24
+ style?: CSSProperties;
25
+ children?: ReactNode;
26
+ column?: ColumnsType<RecordType>[number];
27
+ colSpan?: number;
28
+ rowSpan?: number;
29
+ }
30
+ export interface ColumnFilterItem {
31
+ text: ReactNode;
32
+ /** Secondary text forwarded to the built-in BDropdown in double-line mode. */
33
+ description?: ReactNode;
34
+ value: TableKey | boolean;
35
+ children?: ColumnFilterItem[];
36
+ }
37
+ export interface ColumnTitleProps<RecordType> {
38
+ sortOrder?: SortOrder;
39
+ sortColumn?: ColumnType<RecordType>;
40
+ sortColumns?: Array<{
41
+ column: ColumnType<RecordType>;
42
+ order: SortOrder;
43
+ }>;
44
+ filters?: Record<string, FilterValue>;
45
+ }
46
+ export type ColumnTitle<RecordType> = ReactNode | ((props: ColumnTitleProps<RecordType>) => ReactNode);
47
+ export type CompareFn<RecordType> = (first: RecordType, second: RecordType, sortOrder?: SortOrder) => number;
48
+ export type FilterSearchType<RecordType = ColumnFilterItem> = boolean | ((input: string, item: RecordType) => boolean);
49
+ export type FilterRequest = (input: string) => ColumnFilterItem[] | Promise<ColumnFilterItem[]>;
50
+ export interface FilterDropdownProps {
51
+ prefixCls: string;
52
+ setSelectedKeys: (selectedKeys: TableKey[]) => void;
53
+ selectedKeys: TableKey[];
54
+ confirm: (options?: {
55
+ closeDropdown?: boolean;
56
+ }) => void;
57
+ clearFilters?: (options?: {
58
+ confirm?: boolean;
59
+ closeDropdown?: boolean;
60
+ }) => void;
61
+ filters?: ColumnFilterItem[];
62
+ close: () => void;
63
+ visible: boolean;
64
+ }
65
+ export type GetComponentProps<DataType> = (data: DataType, index?: number) => HTMLAttributes<HTMLElement> | TdHTMLAttributes<HTMLTableCellElement>;
66
+ export interface ColumnSharedType<RecordType> {
67
+ title?: ColumnTitle<RecordType>;
68
+ /** Hint badge rendered beside the column title. Accepts text, icons, or custom JSX. */
69
+ badge?: ReactNode;
70
+ key?: TableKey;
71
+ className?: string;
72
+ fixed?: FixedType;
73
+ width?: number | string;
74
+ align?: TableAlign;
75
+ ellipsis?: boolean | {
76
+ showTitle?: boolean;
77
+ };
78
+ responsive?: Breakpoint[];
79
+ onHeaderCell?: GetComponentProps<ColumnsType<RecordType>[number]>;
80
+ }
81
+ export interface ColumnType<RecordType> extends ColumnSharedType<RecordType> {
82
+ colSpan?: number;
83
+ rowSpan?: number;
84
+ dataIndex?: TableDataIndex;
85
+ render?: (value: unknown, record: RecordType, index: number) => ReactNode | RenderedCell<RecordType>;
86
+ shouldCellUpdate?: (record: RecordType, previousRecord: RecordType) => boolean;
87
+ onCell?: GetComponentProps<RecordType>;
88
+ sorter?: boolean | CompareFn<RecordType> | {
89
+ compare?: CompareFn<RecordType>;
90
+ multiple?: number;
91
+ };
92
+ sortOrder?: SortOrder;
93
+ defaultSortOrder?: SortOrder;
94
+ sortDirections?: SortOrder[];
95
+ showSorterTooltip?: boolean | {
96
+ title?: ReactNode;
97
+ };
98
+ filtered?: boolean;
99
+ filters?: ColumnFilterItem[];
100
+ /** Props forwarded to BDropdown when rendering the built-in filter panel. Table-managed options, value, and callbacks take precedence. */
101
+ filterDropdownProps?: Partial<BDropdownProps>;
102
+ filterDropdown?: ReactNode | ((props: FilterDropdownProps) => ReactNode);
103
+ filterMultiple?: boolean;
104
+ filteredValue?: FilterValue | null;
105
+ defaultFilteredValue?: FilterValue | null;
106
+ filterIcon?: ReactNode | ((filtered: boolean) => ReactNode);
107
+ filterMode?: 'menu' | 'tree';
108
+ /** Show a search input. Pass a matcher to search custom option fields. */
109
+ filterSearch?: FilterSearchType;
110
+ /** Load filter options externally after the search input's 300ms debounce. */
111
+ filterRequest?: FilterRequest;
112
+ onFilter?: (value: TableKey | boolean, record: RecordType) => boolean;
113
+ filterDropdownOpen?: boolean;
114
+ onFilterDropdownOpenChange?: (open: boolean) => void;
115
+ filterResetToDefaultFilteredValue?: boolean;
116
+ /** @deprecated Use filterDropdownOpen. */
117
+ filterDropdownVisible?: boolean;
118
+ /** @deprecated Use onFilterDropdownOpenChange. */
119
+ onFilterDropdownVisibleChange?: (visible: boolean) => void;
120
+ }
121
+ export interface ColumnGroupType<RecordType> extends ColumnSharedType<RecordType> {
122
+ colSpan?: number;
123
+ children: ColumnsType<RecordType>;
124
+ }
125
+ export type ColumnsType<RecordType = unknown> = readonly (ColumnGroupType<RecordType> | ColumnType<RecordType>)[];
126
+ export type GetRowKey<RecordType> = (record: RecordType, index?: number) => TableKey;
127
+ export type RowClassName<RecordType> = (record: RecordType, index: number, indent: number) => string;
128
+ export interface ExpandableConfig<RecordType> {
129
+ expandedRowKeys?: readonly TableKey[];
130
+ defaultExpandedRowKeys?: readonly TableKey[];
131
+ expandedRowRender?: (record: RecordType, index: number, indent: number, expanded: boolean) => ReactNode;
132
+ columnTitle?: ReactNode;
133
+ expandRowByClick?: boolean;
134
+ expandIcon?: (props: {
135
+ prefixCls: string;
136
+ expanded: boolean;
137
+ record: RecordType;
138
+ expandable: boolean;
139
+ onExpand: (record: RecordType, event: React.MouseEvent<HTMLElement>) => void;
140
+ }) => ReactNode;
141
+ onExpand?: (expanded: boolean, record: RecordType) => void;
142
+ onExpandedRowsChange?: (expandedKeys: readonly TableKey[]) => void;
143
+ defaultExpandAllRows?: boolean;
144
+ indentSize?: number;
145
+ expandIconColumnIndex?: number;
146
+ showExpandColumn?: boolean;
147
+ expandedRowClassName?: RowClassName<RecordType>;
148
+ childrenColumnName?: string;
149
+ rowExpandable?: (record: RecordType) => boolean;
150
+ columnWidth?: number | string;
151
+ fixed?: FixedType;
152
+ }
153
+ export interface TableRowSelection<RecordType> {
154
+ preserveSelectedRowKeys?: boolean;
155
+ type?: TableSelectionType;
156
+ selectedRowKeys?: TableKey[];
157
+ defaultSelectedRowKeys?: TableKey[];
158
+ getCheckboxProps?: (record: RecordType) => {
159
+ disabled?: boolean;
160
+ name?: string;
161
+ };
162
+ columnTitle?: ReactNode;
163
+ columnWidth?: number | string;
164
+ fixed?: FixedType;
165
+ hideSelectAll?: boolean;
166
+ checkStrictly?: boolean;
167
+ selections?: boolean | Array<{
168
+ key: string;
169
+ text: ReactNode;
170
+ onSelect?: (keys: TableKey[]) => void;
171
+ }>;
172
+ renderCell?: (checked: boolean, record: RecordType, index: number, originNode: ReactNode) => ReactNode | RenderedCell<RecordType>;
173
+ onChange?: (selectedRowKeys: TableKey[], selectedRows: RecordType[], info?: {
174
+ type: RowSelectMethod;
175
+ }) => void;
176
+ onSelect?: (record: RecordType, selected: boolean, selectedRows: RecordType[], nativeEvent?: Event) => void;
177
+ onSelectAll?: (selected: boolean, selectedRows: RecordType[], changeRows?: RecordType[]) => void;
178
+ onSelectInvert?: (selectedRowKeys: TableKey[]) => void;
179
+ onSelectNone?: () => void;
180
+ onSelectMultiple?: (selected: boolean, selectedRows: RecordType[], changeRows: RecordType[]) => void;
181
+ }
182
+ export interface TablePaginationConfig extends PaginationProps {
183
+ position?: Array<'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight' | 'none'>;
184
+ /** Render the supplied data as the current server-side page without local slicing. */
185
+ serverPagination?: boolean;
186
+ }
187
+ export interface TableLocale {
188
+ filterTitle?: string;
189
+ filterConfirm?: ReactNode;
190
+ filterReset?: ReactNode;
191
+ filterEmptyText?: ReactNode;
192
+ filterCheckall?: ReactNode;
193
+ filterSearchPlaceholder?: string;
194
+ emptyText?: ReactNode | (() => ReactNode);
195
+ selectAll?: ReactNode;
196
+ selectNone?: ReactNode;
197
+ selectInvert?: ReactNode;
198
+ selectionAll?: ReactNode;
199
+ sortTitle?: string;
200
+ expand?: string;
201
+ collapse?: string;
202
+ triggerDesc?: string;
203
+ triggerAsc?: string;
204
+ cancelSort?: string;
205
+ }
206
+ export interface SorterResult<RecordType> {
207
+ column?: ColumnType<RecordType>;
208
+ order?: SortOrder;
209
+ field?: TableKey | readonly TableKey[];
210
+ columnKey?: TableKey;
211
+ }
212
+ export interface TableCurrentDataSource<RecordType> {
213
+ currentDataSource: RecordType[];
214
+ action: TableAction;
215
+ }
216
+ export interface TableComponents<RecordType> {
217
+ table?: React.ElementType;
218
+ header?: {
219
+ wrapper?: React.ElementType;
220
+ row?: React.ElementType;
221
+ cell?: React.ElementType;
222
+ };
223
+ body?: {
224
+ wrapper?: React.ElementType;
225
+ row?: React.ElementType;
226
+ cell?: React.ElementType;
227
+ } | ((data: readonly RecordType[], info: {
228
+ scrollbarSize: number;
229
+ ref: Ref<{
230
+ scrollLeft: number;
231
+ }>;
232
+ onScroll: (info: {
233
+ currentTarget?: HTMLElement;
234
+ scrollLeft?: number;
235
+ }) => void;
236
+ }) => ReactNode);
237
+ }
238
+ export interface TableProps<RecordType extends object> {
239
+ columns?: ColumnsType<RecordType>;
240
+ children?: ReactNode;
241
+ dataSource?: readonly RecordType[];
242
+ rowKey?: keyof RecordType | string | GetRowKey<RecordType>;
243
+ rowSelection?: TableRowSelection<RecordType>;
244
+ pagination?: false | TablePaginationConfig;
245
+ loading?: boolean | {
246
+ spinning?: boolean;
247
+ tip?: ReactNode;
248
+ indicator?: ReactNode;
249
+ };
250
+ bordered?: boolean;
251
+ size?: TableSize;
252
+ showHeader?: boolean;
253
+ /** Empty-state description. Defaults to `t('暂无数据')`. */
254
+ emptyText?: ReactNode | (() => ReactNode);
255
+ /** Empty-state image URL or custom image node. */
256
+ emptyImage?: string | ReactNode;
257
+ /** Empty-state body height. Defaults to 454px. */
258
+ emptyHeight?: number | string;
259
+ /** Translation function used by built-in Table text. */
260
+ t?: (text: string) => string;
261
+ className?: string;
262
+ style?: CSSProperties;
263
+ id?: string;
264
+ rowClassName?: string | RowClassName<RecordType>;
265
+ tableLayout?: TableLayout;
266
+ scroll?: {
267
+ x?: number | true | string;
268
+ y?: number | string;
269
+ scrollToFirstRowOnChange?: boolean;
270
+ };
271
+ sticky?: boolean | {
272
+ offsetHeader?: number;
273
+ offsetSummary?: number;
274
+ offsetScroll?: number;
275
+ getContainer?: () => Window | HTMLElement;
276
+ };
277
+ direction?: 'ltr' | 'rtl';
278
+ title?: (data: readonly RecordType[]) => ReactNode;
279
+ footer?: (data: readonly RecordType[]) => ReactNode;
280
+ summary?: (data: readonly RecordType[]) => ReactNode;
281
+ components?: TableComponents<RecordType>;
282
+ onRow?: GetComponentProps<RecordType>;
283
+ onHeaderRow?: GetComponentProps<readonly ColumnType<RecordType>[]>;
284
+ expandable?: ExpandableConfig<RecordType>;
285
+ locale?: TableLocale;
286
+ sortDirections?: SortOrder[];
287
+ showSorterTooltip?: boolean | {
288
+ title?: ReactNode;
289
+ };
290
+ getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
291
+ onChange?: (pagination: TablePaginationConfig, filters: Record<string, FilterValue | null>, sorter: SorterResult<RecordType> | SorterResult<RecordType>[], extra: TableCurrentDataSource<RecordType>) => void;
292
+ ref?: Ref<HTMLDivElement>;
293
+ }
294
+ export interface ColumnProps<RecordType> extends ColumnType<RecordType> {
295
+ children?: null;
296
+ }
297
+ export interface ColumnGroupProps<RecordType> extends Omit<ColumnGroupType<RecordType>, 'children'> {
298
+ children: ReactElement<ColumnProps<RecordType>> | Array<ReactElement<ColumnProps<RecordType>>>;
299
+ }
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { ColumnGroupType, ColumnsType, ColumnType } from '../types';
3
+ export interface HeaderCell<RecordType> {
4
+ column: ColumnGroupType<RecordType> | ColumnType<RecordType>;
5
+ colSpan: number;
6
+ rowSpan: number;
7
+ depth: number;
8
+ }
9
+ export declare function convertChildrenToColumns<RecordType>(children: ReactNode): ColumnsType<RecordType>;
10
+ export declare function flattenColumns<RecordType>(columns: ColumnsType<RecordType>): ColumnType<RecordType>[];
11
+ export declare function buildHeaderRows<RecordType>(columns: ColumnsType<RecordType>): HeaderCell<RecordType>[][];
@@ -0,0 +1,7 @@
1
+ import { ColumnTitleProps, ColumnType, ColumnsType, FilterValue, SortOrder, SorterResult, TableKey } from '../types';
2
+ export declare function getColumnKey<RecordType>(column: ColumnType<RecordType>, index: number): TableKey;
3
+ export declare function renderColumnTitle<RecordType>(title: ColumnType<RecordType>['title'], props: ColumnTitleProps<RecordType>): import('react').ReactNode;
4
+ export declare function getNextSortOrder(current: SortOrder, directions?: SortOrder[]): SortOrder;
5
+ export declare function sortRecords<RecordType>(records: readonly RecordType[], columns: ColumnsType<RecordType>, orders: Map<TableKey, SortOrder>, childrenColumnName?: string): RecordType[];
6
+ export declare function filterRecords<RecordType>(records: readonly RecordType[], columns: ColumnsType<RecordType>, filters: Map<TableKey, FilterValue | null>): RecordType[];
7
+ export declare function getSorterResult<RecordType>(columns: ColumnsType<RecordType>, orders: Map<TableKey, SortOrder>): SorterResult<RecordType> | SorterResult<RecordType>[];
@@ -0,0 +1,8 @@
1
+ import { default as TabPane } from './TabPane';
2
+ import { BTabsProps } from './types';
3
+ declare function BTabs({ activeKey, children, centered, className, defaultActiveKey, id, items, onChange, onTabClick, style, tabBarGutter, tabBarStyle, tabPosition, type, }: BTabsProps): import("react/jsx-runtime").JSX.Element;
4
+ declare namespace BTabs {
5
+ var TabPane: typeof import("./TabPane").default;
6
+ }
7
+ export { TabPane };
8
+ export default BTabs;
@@ -0,0 +1,7 @@
1
+ import { ReactElement } from 'react';
2
+ import { BTabsTabPaneProps } from './types';
3
+ declare function TabPane(_: BTabsTabPaneProps): ReactElement | null;
4
+ declare namespace TabPane {
5
+ var displayName: string;
6
+ }
7
+ export default TabPane;
@@ -0,0 +1,3 @@
1
+ export { default as BTabs } from './BTabs';
2
+ export { default as TabPane } from './TabPane';
3
+ export type { BTabsItem, BTabsPosition, BTabsProps, BTabsTabPaneProps, BTabsType } from './types';
@@ -0,0 +1,32 @@
1
+ import { CSSProperties, Key, ReactNode } from 'react';
2
+ export type BTabsType = 'line' | 'card';
3
+ export type BTabsPosition = 'top' | 'right' | 'bottom' | 'left';
4
+ export interface BTabsItem {
5
+ key: string;
6
+ label: ReactNode;
7
+ children?: ReactNode;
8
+ disabled?: boolean;
9
+ forceRender?: boolean;
10
+ className?: string;
11
+ style?: CSSProperties;
12
+ }
13
+ export interface BTabsTabPaneProps extends Omit<BTabsItem, 'key' | 'label'> {
14
+ tab: ReactNode;
15
+ tabKey?: Key;
16
+ }
17
+ export interface BTabsProps {
18
+ activeKey?: string;
19
+ defaultActiveKey?: string;
20
+ items?: BTabsItem[];
21
+ children?: ReactNode;
22
+ className?: string;
23
+ style?: CSSProperties;
24
+ id?: string;
25
+ tabPosition?: BTabsPosition;
26
+ type?: BTabsType;
27
+ centered?: boolean;
28
+ tabBarGutter?: number;
29
+ tabBarStyle?: CSSProperties;
30
+ onChange?: (activeKey: string) => void;
31
+ onTabClick?: (activeKey: string, event: React.MouseEvent<HTMLButtonElement>) => void;
32
+ }
@@ -0,0 +1,2 @@
1
+ import { ConfirmTooltipProps } from './types';
2
+ export default function ConfirmTooltip({ placement, title, okText, cancelText, onOk, onCancel, className, style, }: ConfirmTooltipProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { ContentTooltipProps } from './types';
2
+ export default function BTooltip({ placement, content, variant, className, style, getPopupContainer, getAnchorElement, color, fontColor, }: ContentTooltipProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { ProgressTooltipProps } from './types';
2
+ export default function ProgressTooltip({ placement, title, progress, className, style, }: ProgressTooltipProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { TooltipWrapperProps } from './types';
2
+ declare const TooltipWrapper: import('react').ForwardRefExoticComponent<TooltipWrapperProps & import('react').RefAttributes<HTMLDivElement>>;
3
+ export default TooltipWrapper;
@@ -0,0 +1,6 @@
1
+ export { default as ConfirmTooltip } from './ConfirmTooltip';
2
+ export { default as ProgressTooltip } from './ProgressTooltip';
3
+ export { default as BTooltip } from './ContentTooltip';
4
+ export { default as ContentTooltip } from './ContentTooltip';
5
+ export { default as TooltipWrapper } from './TooltipWrapper';
6
+ export type { TooltipPlacement, TooltipVariant, ConfirmTooltipProps, ProgressTooltipProps, ContentTooltipProps, ContentTooltipProps as BTooltipProps, TooltipWrapperProps, } from './types';
@@ -0,0 +1,36 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ export type TooltipPlacement = 'auto' | 'top' | 'topLeft' | 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'leftTop' | 'leftBottom' | 'right' | 'rightTop' | 'rightBottom';
3
+ export type TooltipVariant = 'default' | 'light' | 'bordered' | 'tinted';
4
+ export interface BaseTooltipProps {
5
+ placement?: TooltipPlacement;
6
+ className?: string;
7
+ style?: CSSProperties;
8
+ /** 自定义弹层挂载容器,默认 document.body */
9
+ getPopupContainer?: () => HTMLElement;
10
+ /** Optional element used as the positioning anchor when rendered through a portal. */
11
+ getAnchorElement?: () => HTMLElement | null;
12
+ }
13
+ export interface ConfirmTooltipProps extends BaseTooltipProps {
14
+ title?: string;
15
+ okText?: string;
16
+ cancelText?: string;
17
+ onOk?: () => void;
18
+ onCancel?: () => void;
19
+ }
20
+ export interface ProgressTooltipProps extends BaseTooltipProps {
21
+ title?: string;
22
+ progress?: number;
23
+ }
24
+ export interface ContentTooltipProps extends BaseTooltipProps {
25
+ content?: ReactNode;
26
+ variant?: TooltipVariant;
27
+ /** Tooltip background color, including the arrow. */
28
+ color?: string;
29
+ /** Tooltip content text color. */
30
+ fontColor?: string;
31
+ }
32
+ export interface TooltipWrapperProps {
33
+ children: React.ReactNode;
34
+ style?: CSSProperties;
35
+ className?: string;
36
+ }
@@ -0,0 +1,7 @@
1
+ import { TooltipPlacement } from './types';
2
+ /**
3
+ * 当 placement='auto' 时,顺时针探测视口空间,自动选出第一个放得下的方向。
4
+ * 返回 [resolvedPlacement, popupRef],将 popupRef 绑到弹窗根节点即可。
5
+ * popupRef 是 callback ref,支持 portal 场景下弹窗异步挂载后重新触发计算。
6
+ */
7
+ export declare function useAutoPlacement(placement: TooltipPlacement): [Exclude<TooltipPlacement, 'auto'>, (el: HTMLDivElement | null) => void];
@@ -0,0 +1,18 @@
1
+ export * from './Icon';
2
+ export * from './Tooltip';
3
+ export * from './SkuInputCard';
4
+ export * from './Input';
5
+ export * from './BasicInput';
6
+ export * from './Tabs';
7
+ export * from './EmptyInputBox';
8
+ export * from './Modal';
9
+ export * from './ProductField';
10
+ export * from './CategoryDropdown';
11
+ export * from './Pagination';
12
+ export * from './FileCard';
13
+ export * from './Switch';
14
+ export * from './InputNumber';
15
+ export * from './Table';
16
+ export * from './CheckBox';
17
+ export * from './OverlayScrollbar';
18
+ export * from './Dropdown';