@tonyarbor/components 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Avatar.d.mts +42 -0
- package/dist/Avatar.d.ts +42 -0
- package/dist/Avatar.js +158 -0
- package/dist/Avatar.js.map +1 -0
- package/dist/Avatar.mjs +7 -0
- package/dist/Avatar.mjs.map +1 -0
- package/dist/Banner.d.mts +59 -0
- package/dist/Banner.d.ts +59 -0
- package/dist/Banner.js +222 -0
- package/dist/Banner.js.map +1 -0
- package/dist/Banner.mjs +7 -0
- package/dist/Banner.mjs.map +1 -0
- package/dist/Breadcrumbs.d.mts +51 -0
- package/dist/Breadcrumbs.d.ts +51 -0
- package/dist/Breadcrumbs.js +276 -0
- package/dist/Breadcrumbs.js.map +1 -0
- package/dist/Breadcrumbs.mjs +7 -0
- package/dist/Breadcrumbs.mjs.map +1 -0
- package/dist/Checkbox.d.mts +4 -0
- package/dist/Checkbox.d.ts +4 -0
- package/dist/Checkbox.js +45 -16
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.mjs +1 -1
- package/dist/DatePicker.d.mts +68 -0
- package/dist/DatePicker.d.ts +68 -0
- package/dist/DatePicker.js +490 -0
- package/dist/DatePicker.js.map +1 -0
- package/dist/DatePicker.mjs +7 -0
- package/dist/DatePicker.mjs.map +1 -0
- package/dist/Pagination.d.mts +36 -0
- package/dist/Pagination.d.ts +36 -0
- package/dist/Pagination.js +301 -0
- package/dist/Pagination.js.map +1 -0
- package/dist/Pagination.mjs +7 -0
- package/dist/Pagination.mjs.map +1 -0
- package/dist/Radio.js +32 -12
- package/dist/Radio.js.map +1 -1
- package/dist/Radio.mjs +1 -1
- package/dist/SearchGlobal.d.mts +45 -0
- package/dist/SearchGlobal.d.ts +45 -0
- package/dist/SearchGlobal.js +209 -0
- package/dist/SearchGlobal.js.map +1 -0
- package/dist/SearchGlobal.mjs +7 -0
- package/dist/SearchGlobal.mjs.map +1 -0
- package/dist/SearchOnPage.d.mts +45 -0
- package/dist/SearchOnPage.d.ts +45 -0
- package/dist/SearchOnPage.js +171 -0
- package/dist/SearchOnPage.js.map +1 -0
- package/dist/SearchOnPage.mjs +7 -0
- package/dist/SearchOnPage.mjs.map +1 -0
- package/dist/Table.d.mts +80 -0
- package/dist/Table.d.ts +80 -0
- package/dist/Table.js +347 -0
- package/dist/Table.js.map +1 -0
- package/dist/Table.mjs +8 -0
- package/dist/Table.mjs.map +1 -0
- package/dist/TableControls.d.mts +76 -0
- package/dist/TableControls.d.ts +76 -0
- package/dist/TableControls.js +461 -0
- package/dist/TableControls.js.map +1 -0
- package/dist/TableControls.mjs +7 -0
- package/dist/TableControls.mjs.map +1 -0
- package/dist/TableFooterPagination.d.mts +56 -0
- package/dist/TableFooterPagination.d.ts +56 -0
- package/dist/TableFooterPagination.js +499 -0
- package/dist/TableFooterPagination.js.map +1 -0
- package/dist/TableFooterPagination.mjs +7 -0
- package/dist/TableFooterPagination.mjs.map +1 -0
- package/dist/Tabs.d.mts +50 -0
- package/dist/Tabs.d.ts +50 -0
- package/dist/Tabs.js +187 -0
- package/dist/Tabs.js.map +1 -0
- package/dist/Tabs.mjs +7 -0
- package/dist/Tabs.mjs.map +1 -0
- package/dist/TextArea.d.mts +64 -0
- package/dist/TextArea.d.ts +64 -0
- package/dist/TextArea.js +171 -0
- package/dist/TextArea.js.map +1 -0
- package/dist/TextArea.mjs +7 -0
- package/dist/TextArea.mjs.map +1 -0
- package/dist/Toast.d.mts +48 -0
- package/dist/Toast.d.ts +48 -0
- package/dist/Toast.js +169 -0
- package/dist/Toast.js.map +1 -0
- package/dist/Toast.mjs +7 -0
- package/dist/Toast.mjs.map +1 -0
- package/dist/Toggle.d.mts +48 -0
- package/dist/Toggle.d.ts +48 -0
- package/dist/Toggle.js +291 -0
- package/dist/Toggle.js.map +1 -0
- package/dist/Toggle.mjs +7 -0
- package/dist/Toggle.mjs.map +1 -0
- package/dist/Tooltip.d.mts +32 -0
- package/dist/Tooltip.d.ts +32 -0
- package/dist/Tooltip.js +109 -0
- package/dist/Tooltip.js.map +1 -0
- package/dist/Tooltip.mjs +7 -0
- package/dist/Tooltip.mjs.map +1 -0
- package/dist/chunk-52TG3BFX.mjs +463 -0
- package/dist/chunk-52TG3BFX.mjs.map +1 -0
- package/dist/chunk-AI2U34CF.mjs +159 -0
- package/dist/chunk-AI2U34CF.mjs.map +1 -0
- package/dist/chunk-B7RX3TPX.mjs +135 -0
- package/dist/chunk-B7RX3TPX.mjs.map +1 -0
- package/dist/chunk-C25FFMRQ.mjs +255 -0
- package/dist/chunk-C25FFMRQ.mjs.map +1 -0
- package/dist/{chunk-BCYJIUQX.mjs → chunk-CUTYEIFE.mjs} +47 -18
- package/dist/chunk-CUTYEIFE.mjs.map +1 -0
- package/dist/chunk-DULH2KRW.mjs +133 -0
- package/dist/chunk-DULH2KRW.mjs.map +1 -0
- package/dist/chunk-G5NVKF2G.mjs +434 -0
- package/dist/chunk-G5NVKF2G.mjs.map +1 -0
- package/dist/chunk-JSG27ZZS.mjs +122 -0
- package/dist/chunk-JSG27ZZS.mjs.map +1 -0
- package/dist/{chunk-ARBHNHO7.mjs → chunk-M6DVBEEL.mjs} +33 -13
- package/dist/chunk-M6DVBEEL.mjs.map +1 -0
- package/dist/chunk-MBUMR2XJ.mjs +135 -0
- package/dist/chunk-MBUMR2XJ.mjs.map +1 -0
- package/dist/chunk-MNH2TGUX.mjs +73 -0
- package/dist/chunk-MNH2TGUX.mjs.map +1 -0
- package/dist/chunk-RQP6ZGD7.mjs +240 -0
- package/dist/chunk-RQP6ZGD7.mjs.map +1 -0
- package/dist/chunk-RRMG2SSZ.mjs +265 -0
- package/dist/chunk-RRMG2SSZ.mjs.map +1 -0
- package/dist/chunk-U4JXKZZG.mjs +186 -0
- package/dist/chunk-U4JXKZZG.mjs.map +1 -0
- package/dist/chunk-UPBHDBAK.mjs +173 -0
- package/dist/chunk-UPBHDBAK.mjs.map +1 -0
- package/dist/chunk-W55QJIAN.mjs +467 -0
- package/dist/chunk-W55QJIAN.mjs.map +1 -0
- package/dist/chunk-YV4OXFIM.mjs +151 -0
- package/dist/chunk-YV4OXFIM.mjs.map +1 -0
- package/dist/index.d.mts +15 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +3414 -30
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +63 -3
- package/package.json +78 -1
- package/dist/chunk-ARBHNHO7.mjs.map +0 -1
- package/dist/chunk-BCYJIUQX.mjs.map +0 -1
package/dist/Table.d.mts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface TableColumn {
|
|
4
|
+
/**
|
|
5
|
+
* Unique key for the column
|
|
6
|
+
*/
|
|
7
|
+
key: string;
|
|
8
|
+
/**
|
|
9
|
+
* Column header label
|
|
10
|
+
*/
|
|
11
|
+
label: string;
|
|
12
|
+
/**
|
|
13
|
+
* Whether to show the menu icon in the header
|
|
14
|
+
*/
|
|
15
|
+
showMenu?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Custom width for the column
|
|
18
|
+
*/
|
|
19
|
+
width?: string;
|
|
20
|
+
}
|
|
21
|
+
interface TableRow {
|
|
22
|
+
/**
|
|
23
|
+
* Unique ID for the row
|
|
24
|
+
*/
|
|
25
|
+
id: string;
|
|
26
|
+
/**
|
|
27
|
+
* Cell data keyed by column key
|
|
28
|
+
*/
|
|
29
|
+
cells: Record<string, React.ReactNode>;
|
|
30
|
+
/**
|
|
31
|
+
* Whether the row is selected
|
|
32
|
+
*/
|
|
33
|
+
selected?: boolean;
|
|
34
|
+
}
|
|
35
|
+
interface TableProps {
|
|
36
|
+
/**
|
|
37
|
+
* Table columns configuration
|
|
38
|
+
*/
|
|
39
|
+
columns: TableColumn[];
|
|
40
|
+
/**
|
|
41
|
+
* Table rows data
|
|
42
|
+
*/
|
|
43
|
+
rows: TableRow[];
|
|
44
|
+
/**
|
|
45
|
+
* Callback when row selection changes
|
|
46
|
+
*/
|
|
47
|
+
onRowSelectionChange?: (rowId: string, selected: boolean) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Callback when select all is toggled
|
|
50
|
+
*/
|
|
51
|
+
onSelectAllChange?: (selected: boolean) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Whether all rows are selected
|
|
54
|
+
*/
|
|
55
|
+
allSelected?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Whether some rows are selected (indeterminate state)
|
|
58
|
+
*/
|
|
59
|
+
someSelected?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Custom className
|
|
62
|
+
*/
|
|
63
|
+
className?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Custom style
|
|
66
|
+
*/
|
|
67
|
+
style?: React.CSSProperties;
|
|
68
|
+
/**
|
|
69
|
+
* Test ID for testing
|
|
70
|
+
*/
|
|
71
|
+
'data-testid'?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Table component - Arbor Design System
|
|
75
|
+
*
|
|
76
|
+
* A data table component with selectable rows and column headers.
|
|
77
|
+
*/
|
|
78
|
+
declare const Table: React.ForwardRefExoticComponent<TableProps & React.RefAttributes<HTMLTableElement>>;
|
|
79
|
+
|
|
80
|
+
export { Table, type TableColumn, type TableProps, type TableRow };
|
package/dist/Table.d.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface TableColumn {
|
|
4
|
+
/**
|
|
5
|
+
* Unique key for the column
|
|
6
|
+
*/
|
|
7
|
+
key: string;
|
|
8
|
+
/**
|
|
9
|
+
* Column header label
|
|
10
|
+
*/
|
|
11
|
+
label: string;
|
|
12
|
+
/**
|
|
13
|
+
* Whether to show the menu icon in the header
|
|
14
|
+
*/
|
|
15
|
+
showMenu?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Custom width for the column
|
|
18
|
+
*/
|
|
19
|
+
width?: string;
|
|
20
|
+
}
|
|
21
|
+
interface TableRow {
|
|
22
|
+
/**
|
|
23
|
+
* Unique ID for the row
|
|
24
|
+
*/
|
|
25
|
+
id: string;
|
|
26
|
+
/**
|
|
27
|
+
* Cell data keyed by column key
|
|
28
|
+
*/
|
|
29
|
+
cells: Record<string, React.ReactNode>;
|
|
30
|
+
/**
|
|
31
|
+
* Whether the row is selected
|
|
32
|
+
*/
|
|
33
|
+
selected?: boolean;
|
|
34
|
+
}
|
|
35
|
+
interface TableProps {
|
|
36
|
+
/**
|
|
37
|
+
* Table columns configuration
|
|
38
|
+
*/
|
|
39
|
+
columns: TableColumn[];
|
|
40
|
+
/**
|
|
41
|
+
* Table rows data
|
|
42
|
+
*/
|
|
43
|
+
rows: TableRow[];
|
|
44
|
+
/**
|
|
45
|
+
* Callback when row selection changes
|
|
46
|
+
*/
|
|
47
|
+
onRowSelectionChange?: (rowId: string, selected: boolean) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Callback when select all is toggled
|
|
50
|
+
*/
|
|
51
|
+
onSelectAllChange?: (selected: boolean) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Whether all rows are selected
|
|
54
|
+
*/
|
|
55
|
+
allSelected?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Whether some rows are selected (indeterminate state)
|
|
58
|
+
*/
|
|
59
|
+
someSelected?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Custom className
|
|
62
|
+
*/
|
|
63
|
+
className?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Custom style
|
|
66
|
+
*/
|
|
67
|
+
style?: React.CSSProperties;
|
|
68
|
+
/**
|
|
69
|
+
* Test ID for testing
|
|
70
|
+
*/
|
|
71
|
+
'data-testid'?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Table component - Arbor Design System
|
|
75
|
+
*
|
|
76
|
+
* A data table component with selectable rows and column headers.
|
|
77
|
+
*/
|
|
78
|
+
declare const Table: React.ForwardRefExoticComponent<TableProps & React.RefAttributes<HTMLTableElement>>;
|
|
79
|
+
|
|
80
|
+
export { Table, type TableColumn, type TableProps, type TableRow };
|
package/dist/Table.js
ADDED
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/Table/index.ts
|
|
31
|
+
var Table_exports = {};
|
|
32
|
+
__export(Table_exports, {
|
|
33
|
+
Table: () => Table
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(Table_exports);
|
|
36
|
+
|
|
37
|
+
// src/Table/Table.tsx
|
|
38
|
+
var React2 = __toESM(require("react"));
|
|
39
|
+
var import_clsx2 = require("clsx");
|
|
40
|
+
var import_lucide_react2 = require("lucide-react");
|
|
41
|
+
|
|
42
|
+
// src/Checkbox/Checkbox.tsx
|
|
43
|
+
var React = __toESM(require("react"));
|
|
44
|
+
var import_clsx = require("clsx");
|
|
45
|
+
var import_lucide_react = require("lucide-react");
|
|
46
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
47
|
+
var checkboxStyles = {
|
|
48
|
+
width: "16px",
|
|
49
|
+
height: "16px",
|
|
50
|
+
border: "1px solid #7e7e7e",
|
|
51
|
+
// grey-500
|
|
52
|
+
borderRadius: "4px",
|
|
53
|
+
display: "flex",
|
|
54
|
+
alignItems: "center",
|
|
55
|
+
justifyContent: "center",
|
|
56
|
+
cursor: "pointer",
|
|
57
|
+
transition: "all 0.2s ease-in-out",
|
|
58
|
+
flexShrink: 0,
|
|
59
|
+
backgroundColor: "#ffffff"
|
|
60
|
+
};
|
|
61
|
+
var checkedStyles = {
|
|
62
|
+
backgroundColor: "#0e8a0e",
|
|
63
|
+
// brand-600
|
|
64
|
+
border: "1px solid #0e8a0e"
|
|
65
|
+
};
|
|
66
|
+
var checkedHoverStyles = {
|
|
67
|
+
backgroundColor: "#005700",
|
|
68
|
+
// brand-800
|
|
69
|
+
border: "1px solid #005700"
|
|
70
|
+
};
|
|
71
|
+
var uncheckedHoverStyles = {
|
|
72
|
+
border: "1px solid #474747"
|
|
73
|
+
// grey-700
|
|
74
|
+
};
|
|
75
|
+
var labelStyles = {
|
|
76
|
+
fontSize: "13px",
|
|
77
|
+
color: "#2f2f2f",
|
|
78
|
+
cursor: "pointer",
|
|
79
|
+
userSelect: "none",
|
|
80
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
81
|
+
};
|
|
82
|
+
var wrapperStyles = {
|
|
83
|
+
display: "flex",
|
|
84
|
+
alignItems: "center",
|
|
85
|
+
gap: "8px"
|
|
86
|
+
};
|
|
87
|
+
var Checkbox = React.forwardRef(
|
|
88
|
+
({
|
|
89
|
+
label,
|
|
90
|
+
checked = false,
|
|
91
|
+
onChange,
|
|
92
|
+
disabled = false,
|
|
93
|
+
className,
|
|
94
|
+
style,
|
|
95
|
+
"data-testid": dataTestId,
|
|
96
|
+
name,
|
|
97
|
+
value,
|
|
98
|
+
indeterminate = false
|
|
99
|
+
}, ref) => {
|
|
100
|
+
const [isFocused, setIsFocused] = React.useState(false);
|
|
101
|
+
const [isHovered, setIsHovered] = React.useState(false);
|
|
102
|
+
const checkboxId = React.useId();
|
|
103
|
+
const innerRef = React.useRef(null);
|
|
104
|
+
React.useEffect(() => {
|
|
105
|
+
const node = innerRef.current;
|
|
106
|
+
if (node) {
|
|
107
|
+
node.indeterminate = indeterminate;
|
|
108
|
+
if (typeof ref === "function") {
|
|
109
|
+
ref(node);
|
|
110
|
+
} else if (ref) {
|
|
111
|
+
ref.current = node;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}, [indeterminate, ref]);
|
|
115
|
+
const handleChange = (e) => {
|
|
116
|
+
if (!disabled) {
|
|
117
|
+
onChange?.(e.target.checked);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
const boxStyle = {
|
|
121
|
+
...checkboxStyles,
|
|
122
|
+
...(checked || indeterminate) && !disabled && checkedStyles,
|
|
123
|
+
...isHovered && !disabled && !(checked || indeterminate) && uncheckedHoverStyles,
|
|
124
|
+
...isHovered && !disabled && (checked || indeterminate) && checkedHoverStyles,
|
|
125
|
+
...disabled && !checked && !indeterminate && { backgroundColor: "#efefef", border: "1px solid #b3b3b3" },
|
|
126
|
+
...disabled && (checked || indeterminate) && { backgroundColor: "#b3b3b3", border: "1px solid #b3b3b3" },
|
|
127
|
+
...isFocused && !disabled && {
|
|
128
|
+
boxShadow: "0px 0px 0px 3px #3cad51"
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
const checkmarkColor = "#ffffff";
|
|
132
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
133
|
+
"div",
|
|
134
|
+
{
|
|
135
|
+
className: (0, import_clsx.clsx)("arbor-checkbox-wrapper", className),
|
|
136
|
+
style: { ...wrapperStyles, ...style },
|
|
137
|
+
"data-testid": dataTestId,
|
|
138
|
+
children: [
|
|
139
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
140
|
+
"input",
|
|
141
|
+
{
|
|
142
|
+
ref: innerRef,
|
|
143
|
+
id: checkboxId,
|
|
144
|
+
type: "checkbox",
|
|
145
|
+
checked,
|
|
146
|
+
onChange: handleChange,
|
|
147
|
+
onFocus: () => setIsFocused(true),
|
|
148
|
+
onBlur: () => setIsFocused(false),
|
|
149
|
+
disabled,
|
|
150
|
+
name,
|
|
151
|
+
value,
|
|
152
|
+
style: {
|
|
153
|
+
position: "absolute",
|
|
154
|
+
opacity: 0,
|
|
155
|
+
width: 0,
|
|
156
|
+
height: 0
|
|
157
|
+
},
|
|
158
|
+
"aria-checked": indeterminate ? "mixed" : checked
|
|
159
|
+
}
|
|
160
|
+
),
|
|
161
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
162
|
+
"label",
|
|
163
|
+
{
|
|
164
|
+
htmlFor: checkboxId,
|
|
165
|
+
onMouseEnter: () => !disabled && setIsHovered(true),
|
|
166
|
+
onMouseLeave: () => !disabled && setIsHovered(false),
|
|
167
|
+
style: {
|
|
168
|
+
display: "flex",
|
|
169
|
+
alignItems: "center",
|
|
170
|
+
gap: "8px",
|
|
171
|
+
cursor: disabled ? "not-allowed" : "pointer"
|
|
172
|
+
},
|
|
173
|
+
children: [
|
|
174
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: boxStyle, children: (checked || indeterminate) && (indeterminate ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Minus, { size: 12, color: checkmarkColor, strokeWidth: 3 }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Check, { size: 16, color: checkmarkColor, strokeWidth: 3 })) }),
|
|
175
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
176
|
+
"span",
|
|
177
|
+
{
|
|
178
|
+
style: {
|
|
179
|
+
...labelStyles,
|
|
180
|
+
color: disabled ? "#7e7e7e" : "#2f2f2f",
|
|
181
|
+
cursor: disabled ? "not-allowed" : "pointer"
|
|
182
|
+
},
|
|
183
|
+
children: label
|
|
184
|
+
}
|
|
185
|
+
)
|
|
186
|
+
]
|
|
187
|
+
}
|
|
188
|
+
)
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
);
|
|
194
|
+
Checkbox.displayName = "Checkbox";
|
|
195
|
+
|
|
196
|
+
// src/Table/Table.tsx
|
|
197
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
198
|
+
var tableStyles = {
|
|
199
|
+
width: "100%",
|
|
200
|
+
borderCollapse: "separate",
|
|
201
|
+
borderSpacing: 0,
|
|
202
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
203
|
+
};
|
|
204
|
+
var headerCellStyles = {
|
|
205
|
+
height: "44px",
|
|
206
|
+
paddingLeft: "16px",
|
|
207
|
+
paddingRight: "16px",
|
|
208
|
+
paddingTop: 0,
|
|
209
|
+
paddingBottom: 0,
|
|
210
|
+
backgroundColor: "#f8f8f8",
|
|
211
|
+
borderBottom: "1px solid #efefef",
|
|
212
|
+
fontSize: "13px",
|
|
213
|
+
fontWeight: 600,
|
|
214
|
+
color: "#2f2f2f",
|
|
215
|
+
textAlign: "left",
|
|
216
|
+
position: "relative"
|
|
217
|
+
};
|
|
218
|
+
var checkboxCellStyles = {
|
|
219
|
+
width: "48px",
|
|
220
|
+
paddingLeft: "16px",
|
|
221
|
+
paddingRight: "8px"
|
|
222
|
+
};
|
|
223
|
+
var bodyCellStyles = {
|
|
224
|
+
height: "41px",
|
|
225
|
+
paddingLeft: "16px",
|
|
226
|
+
paddingRight: "16px",
|
|
227
|
+
paddingTop: "8px",
|
|
228
|
+
paddingBottom: "8px",
|
|
229
|
+
borderBottom: "1px solid #efefef",
|
|
230
|
+
fontSize: "13px",
|
|
231
|
+
color: "#2f2f2f"
|
|
232
|
+
};
|
|
233
|
+
var menuButtonStyles = {
|
|
234
|
+
width: "24px",
|
|
235
|
+
height: "24px",
|
|
236
|
+
border: "none",
|
|
237
|
+
backgroundColor: "transparent",
|
|
238
|
+
cursor: "pointer",
|
|
239
|
+
display: "inline-flex",
|
|
240
|
+
alignItems: "center",
|
|
241
|
+
justifyContent: "center",
|
|
242
|
+
padding: 0,
|
|
243
|
+
marginLeft: "8px",
|
|
244
|
+
borderRadius: "4px",
|
|
245
|
+
transition: "background-color 0.2s ease-in-out"
|
|
246
|
+
};
|
|
247
|
+
var rowStyles = {
|
|
248
|
+
transition: "background-color 0.1s ease-in-out"
|
|
249
|
+
};
|
|
250
|
+
var Table = React2.forwardRef(
|
|
251
|
+
({
|
|
252
|
+
columns,
|
|
253
|
+
rows,
|
|
254
|
+
onRowSelectionChange,
|
|
255
|
+
onSelectAllChange,
|
|
256
|
+
allSelected = false,
|
|
257
|
+
someSelected = false,
|
|
258
|
+
className,
|
|
259
|
+
style,
|
|
260
|
+
"data-testid": dataTestId
|
|
261
|
+
}, ref) => {
|
|
262
|
+
const [hoveredRow, setHoveredRow] = React2.useState(null);
|
|
263
|
+
const [hoveredMenuButton, setHoveredMenuButton] = React2.useState(null);
|
|
264
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
265
|
+
"table",
|
|
266
|
+
{
|
|
267
|
+
ref,
|
|
268
|
+
className: (0, import_clsx2.clsx)("arbor-table", className),
|
|
269
|
+
style: { ...tableStyles, ...style },
|
|
270
|
+
"data-testid": dataTestId,
|
|
271
|
+
children: [
|
|
272
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("tr", { children: [
|
|
273
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("th", { style: { ...headerCellStyles, ...checkboxCellStyles }, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
274
|
+
Checkbox,
|
|
275
|
+
{
|
|
276
|
+
checked: allSelected,
|
|
277
|
+
indeterminate: someSelected && !allSelected,
|
|
278
|
+
onChange: onSelectAllChange,
|
|
279
|
+
"aria-label": "Select all rows"
|
|
280
|
+
}
|
|
281
|
+
) }),
|
|
282
|
+
columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
283
|
+
"th",
|
|
284
|
+
{
|
|
285
|
+
style: {
|
|
286
|
+
...headerCellStyles,
|
|
287
|
+
...column.width ? { width: column.width } : {}
|
|
288
|
+
},
|
|
289
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", alignItems: "center" }, children: [
|
|
290
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: column.label }),
|
|
291
|
+
column.showMenu !== false && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
292
|
+
"button",
|
|
293
|
+
{
|
|
294
|
+
type: "button",
|
|
295
|
+
onMouseEnter: () => setHoveredMenuButton(`header-${column.key}`),
|
|
296
|
+
onMouseLeave: () => setHoveredMenuButton(null),
|
|
297
|
+
style: {
|
|
298
|
+
...menuButtonStyles,
|
|
299
|
+
backgroundColor: hoveredMenuButton === `header-${column.key}` ? "#f5f5f5" : "transparent"
|
|
300
|
+
},
|
|
301
|
+
"aria-label": `${column.label} options`,
|
|
302
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react2.MoreVertical, { size: 16, color: "#595959" })
|
|
303
|
+
}
|
|
304
|
+
)
|
|
305
|
+
] })
|
|
306
|
+
},
|
|
307
|
+
column.key
|
|
308
|
+
))
|
|
309
|
+
] }) }),
|
|
310
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("tbody", { children: rows.map((row, index) => {
|
|
311
|
+
const isOdd = index % 2 === 0;
|
|
312
|
+
const isHovered = hoveredRow === row.id;
|
|
313
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
314
|
+
"tr",
|
|
315
|
+
{
|
|
316
|
+
onMouseEnter: () => setHoveredRow(row.id),
|
|
317
|
+
onMouseLeave: () => setHoveredRow(null),
|
|
318
|
+
style: {
|
|
319
|
+
...rowStyles,
|
|
320
|
+
backgroundColor: isHovered ? "#fafafa" : isOdd ? "white" : "#f8f8f8"
|
|
321
|
+
},
|
|
322
|
+
children: [
|
|
323
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("td", { style: { ...bodyCellStyles, ...checkboxCellStyles }, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
324
|
+
Checkbox,
|
|
325
|
+
{
|
|
326
|
+
checked: row.selected || false,
|
|
327
|
+
onChange: (checked) => onRowSelectionChange?.(row.id, checked),
|
|
328
|
+
"aria-label": `Select row ${row.id}`
|
|
329
|
+
}
|
|
330
|
+
) }),
|
|
331
|
+
columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("td", { style: bodyCellStyles, children: row.cells[column.key] }, column.key))
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
row.id
|
|
335
|
+
);
|
|
336
|
+
}) })
|
|
337
|
+
]
|
|
338
|
+
}
|
|
339
|
+
);
|
|
340
|
+
}
|
|
341
|
+
);
|
|
342
|
+
Table.displayName = "Table";
|
|
343
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
344
|
+
0 && (module.exports = {
|
|
345
|
+
Table
|
|
346
|
+
});
|
|
347
|
+
//# sourceMappingURL=Table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Table/index.ts","../src/Table/Table.tsx","../src/Checkbox/Checkbox.tsx"],"sourcesContent":["export { Table } from './Table';\nexport type { TableProps, TableColumn, TableRow } from './Table';\n","import * as React from 'react';\nimport { clsx } from 'clsx';\nimport { MoreVertical } from 'lucide-react';\nimport { Checkbox } from '../Checkbox';\n\nexport interface TableColumn {\n /**\n * Unique key for the column\n */\n key: string;\n /**\n * Column header label\n */\n label: string;\n /**\n * Whether to show the menu icon in the header\n */\n showMenu?: boolean;\n /**\n * Custom width for the column\n */\n width?: string;\n}\n\nexport interface TableRow {\n /**\n * Unique ID for the row\n */\n id: string;\n /**\n * Cell data keyed by column key\n */\n cells: Record<string, React.ReactNode>;\n /**\n * Whether the row is selected\n */\n selected?: boolean;\n}\n\nexport interface TableProps {\n /**\n * Table columns configuration\n */\n columns: TableColumn[];\n /**\n * Table rows data\n */\n rows: TableRow[];\n /**\n * Callback when row selection changes\n */\n onRowSelectionChange?: (rowId: string, selected: boolean) => void;\n /**\n * Callback when select all is toggled\n */\n onSelectAllChange?: (selected: boolean) => void;\n /**\n * Whether all rows are selected\n */\n allSelected?: boolean;\n /**\n * Whether some rows are selected (indeterminate state)\n */\n someSelected?: boolean;\n /**\n * Custom className\n */\n className?: string;\n /**\n * Custom style\n */\n style?: React.CSSProperties;\n /**\n * Test ID for testing\n */\n 'data-testid'?: string;\n}\n\nconst tableStyles: React.CSSProperties = {\n width: '100%',\n borderCollapse: 'separate',\n borderSpacing: 0,\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n};\n\nconst headerCellStyles: React.CSSProperties = {\n height: '44px',\n paddingLeft: '16px',\n paddingRight: '16px',\n paddingTop: 0,\n paddingBottom: 0,\n backgroundColor: '#f8f8f8',\n borderBottom: '1px solid #efefef',\n fontSize: '13px',\n fontWeight: 600,\n color: '#2f2f2f',\n textAlign: 'left',\n position: 'relative',\n};\n\nconst checkboxCellStyles: React.CSSProperties = {\n width: '48px',\n paddingLeft: '16px',\n paddingRight: '8px',\n};\n\nconst bodyCellStyles: React.CSSProperties = {\n height: '41px',\n paddingLeft: '16px',\n paddingRight: '16px',\n paddingTop: '8px',\n paddingBottom: '8px',\n borderBottom: '1px solid #efefef',\n fontSize: '13px',\n color: '#2f2f2f',\n};\n\nconst menuButtonStyles: React.CSSProperties = {\n width: '24px',\n height: '24px',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 0,\n marginLeft: '8px',\n borderRadius: '4px',\n transition: 'background-color 0.2s ease-in-out',\n};\n\nconst rowStyles: React.CSSProperties = {\n transition: 'background-color 0.1s ease-in-out',\n};\n\n/**\n * Table component - Arbor Design System\n *\n * A data table component with selectable rows and column headers.\n */\nexport const Table = React.forwardRef<HTMLTableElement, TableProps>(\n (\n {\n columns,\n rows,\n onRowSelectionChange,\n onSelectAllChange,\n allSelected = false,\n someSelected = false,\n className,\n style,\n 'data-testid': dataTestId,\n },\n ref\n ) => {\n const [hoveredRow, setHoveredRow] = React.useState<string | null>(null);\n const [hoveredMenuButton, setHoveredMenuButton] = React.useState<string | null>(null);\n\n return (\n <table\n ref={ref}\n className={clsx('arbor-table', className)}\n style={{ ...tableStyles, ...style }}\n data-testid={dataTestId}\n >\n <thead>\n <tr>\n {/* Checkbox header cell */}\n <th style={{ ...headerCellStyles, ...checkboxCellStyles }}>\n <Checkbox\n checked={allSelected}\n indeterminate={someSelected && !allSelected}\n onChange={onSelectAllChange}\n aria-label=\"Select all rows\"\n />\n </th>\n\n {/* Column headers */}\n {columns.map((column) => (\n <th\n key={column.key}\n style={{\n ...headerCellStyles,\n ...(column.width ? { width: column.width } : {}),\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <span>{column.label}</span>\n {column.showMenu !== false && (\n <button\n type=\"button\"\n onMouseEnter={() => setHoveredMenuButton(`header-${column.key}`)}\n onMouseLeave={() => setHoveredMenuButton(null)}\n style={{\n ...menuButtonStyles,\n backgroundColor:\n hoveredMenuButton === `header-${column.key}` ? '#f5f5f5' : 'transparent',\n }}\n aria-label={`${column.label} options`}\n >\n <MoreVertical size={16} color=\"#595959\" />\n </button>\n )}\n </div>\n </th>\n ))}\n </tr>\n </thead>\n\n <tbody>\n {rows.map((row, index) => {\n const isOdd = index % 2 === 0;\n const isHovered = hoveredRow === row.id;\n\n return (\n <tr\n key={row.id}\n onMouseEnter={() => setHoveredRow(row.id)}\n onMouseLeave={() => setHoveredRow(null)}\n style={{\n ...rowStyles,\n backgroundColor: isHovered\n ? '#fafafa'\n : isOdd\n ? 'white'\n : '#f8f8f8',\n }}\n >\n {/* Checkbox cell */}\n <td style={{ ...bodyCellStyles, ...checkboxCellStyles }}>\n <Checkbox\n checked={row.selected || false}\n onChange={(checked) => onRowSelectionChange?.(row.id, checked)}\n aria-label={`Select row ${row.id}`}\n />\n </td>\n\n {/* Data cells */}\n {columns.map((column) => (\n <td key={column.key} style={bodyCellStyles}>\n {row.cells[column.key]}\n </td>\n ))}\n </tr>\n );\n })}\n </tbody>\n </table>\n );\n }\n);\n\nTable.displayName = 'Table';\n","import * as React from 'react';\nimport { clsx } from 'clsx';\nimport { Check, Minus } from 'lucide-react';\n\nexport interface CheckboxProps {\n /**\n * The label for the checkbox\n */\n label?: string;\n /**\n * Whether the checkbox is checked\n */\n checked?: boolean;\n /**\n * Callback when checked state changes\n */\n onChange?: (checked: boolean) => void;\n /**\n * Whether the checkbox is disabled\n */\n disabled?: boolean;\n /**\n * Custom className\n */\n className?: string;\n /**\n * Custom style\n */\n style?: React.CSSProperties;\n /**\n * Test ID for testing\n */\n 'data-testid'?: string;\n /**\n * Name attribute for form submission\n */\n name?: string;\n /**\n * Value attribute for form submission\n */\n value?: string;\n /**\n * Indeterminate state (shows minus icon)\n */\n indeterminate?: boolean;\n}\n\nconst checkboxStyles: React.CSSProperties = {\n width: '16px',\n height: '16px',\n border: '1px solid #7e7e7e', // grey-500\n borderRadius: '4px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n backgroundColor: '#ffffff',\n};\n\nconst checkedStyles: React.CSSProperties = {\n backgroundColor: '#0e8a0e', // brand-600\n border: '1px solid #0e8a0e',\n};\n\nconst checkedHoverStyles: React.CSSProperties = {\n backgroundColor: '#005700', // brand-800\n border: '1px solid #005700',\n};\n\nconst uncheckedHoverStyles: React.CSSProperties = {\n border: '1px solid #474747', // grey-700\n};\n\nconst labelStyles: React.CSSProperties = {\n fontSize: '13px',\n color: '#2f2f2f',\n cursor: 'pointer',\n userSelect: 'none' as const,\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n};\n\nconst wrapperStyles: React.CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n};\n\n/**\n * Checkbox component - Arbor Design System\n *\n * A checkbox input with label support.\n */\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n label,\n checked = false,\n onChange,\n disabled = false,\n className,\n style,\n 'data-testid': dataTestId,\n name,\n value,\n indeterminate = false,\n },\n ref\n ) => {\n const [isFocused, setIsFocused] = React.useState(false);\n const [isHovered, setIsHovered] = React.useState(false);\n const checkboxId = React.useId();\n const innerRef = React.useRef<HTMLInputElement | null>(null);\n\n // Merge refs\n React.useEffect(() => {\n const node = innerRef.current;\n if (node) {\n // Set indeterminate property on the native input element\n node.indeterminate = indeterminate;\n\n // Forward to external ref if provided\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n (ref as React.MutableRefObject<HTMLInputElement | null>).current = node;\n }\n }\n }, [indeterminate, ref]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!disabled) {\n onChange?.(e.target.checked);\n }\n };\n\n const boxStyle: React.CSSProperties = {\n ...checkboxStyles,\n ...((checked || indeterminate) && !disabled && checkedStyles),\n ...(isHovered && !disabled && !(checked || indeterminate) && uncheckedHoverStyles),\n ...(isHovered && !disabled && (checked || indeterminate) && checkedHoverStyles),\n ...(disabled && !checked && !indeterminate && { backgroundColor: '#efefef', border: '1px solid #b3b3b3' }),\n ...(disabled && (checked || indeterminate) && { backgroundColor: '#b3b3b3', border: '1px solid #b3b3b3' }),\n ...(isFocused && !disabled && {\n boxShadow: '0px 0px 0px 3px #3cad51',\n }),\n };\n\n const checkmarkColor = '#ffffff';\n\n return (\n <div\n className={clsx('arbor-checkbox-wrapper', className)}\n style={{ ...wrapperStyles, ...style }}\n data-testid={dataTestId}\n >\n <input\n ref={innerRef}\n id={checkboxId}\n type=\"checkbox\"\n checked={checked}\n onChange={handleChange}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n disabled={disabled}\n name={name}\n value={value}\n style={{\n position: 'absolute',\n opacity: 0,\n width: 0,\n height: 0,\n }}\n aria-checked={indeterminate ? 'mixed' : checked}\n />\n <label\n htmlFor={checkboxId}\n onMouseEnter={() => !disabled && setIsHovered(true)}\n onMouseLeave={() => !disabled && setIsHovered(false)}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n }}\n >\n <div style={boxStyle}>\n {(checked || indeterminate) && (\n indeterminate ? (\n <Minus size={12} color={checkmarkColor} strokeWidth={3} />\n ) : (\n <Check size={16} color={checkmarkColor} strokeWidth={3} />\n )\n )}\n </div>\n {label && (\n <span\n style={{\n ...labelStyles,\n color: disabled ? '#7e7e7e' : '#2f2f2f',\n cursor: disabled ? 'not-allowed' : 'pointer',\n }}\n >\n {label}\n </span>\n )}\n </label>\n </div>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n"],"mappings":"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","names":["React","import_clsx","import_lucide_react","import_jsx_runtime"]}
|
package/dist/Table.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface TableControlsProps {
|
|
4
|
+
/**
|
|
5
|
+
* Number of selected items for the Actions button
|
|
6
|
+
*/
|
|
7
|
+
selectedCount?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Callback when Actions dropdown is clicked
|
|
10
|
+
*/
|
|
11
|
+
onActionsClick?: () => void;
|
|
12
|
+
/**
|
|
13
|
+
* Callback when Undo is clicked
|
|
14
|
+
*/
|
|
15
|
+
onUndoClick?: () => void;
|
|
16
|
+
/**
|
|
17
|
+
* Callback when Redo is clicked
|
|
18
|
+
*/
|
|
19
|
+
onRedoClick?: () => void;
|
|
20
|
+
/**
|
|
21
|
+
* Callback when Hide Columns is clicked
|
|
22
|
+
*/
|
|
23
|
+
onHideColumnsClick?: () => void;
|
|
24
|
+
/**
|
|
25
|
+
* Callback when Search is clicked
|
|
26
|
+
*/
|
|
27
|
+
onSearchClick?: () => void;
|
|
28
|
+
/**
|
|
29
|
+
* Callback when Download is clicked
|
|
30
|
+
*/
|
|
31
|
+
onDownloadClick?: () => void;
|
|
32
|
+
/**
|
|
33
|
+
* Callback when Tooltips toggle is clicked
|
|
34
|
+
*/
|
|
35
|
+
onTooltipsClick?: () => void;
|
|
36
|
+
/**
|
|
37
|
+
* Whether tooltips are enabled
|
|
38
|
+
*/
|
|
39
|
+
tooltipsEnabled?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Callback when Settings is clicked
|
|
42
|
+
*/
|
|
43
|
+
onSettingsClick?: () => void;
|
|
44
|
+
/**
|
|
45
|
+
* Callback when Expand is clicked
|
|
46
|
+
*/
|
|
47
|
+
onExpandClick?: () => void;
|
|
48
|
+
/**
|
|
49
|
+
* Whether undo is disabled
|
|
50
|
+
*/
|
|
51
|
+
undoDisabled?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Whether redo is disabled
|
|
54
|
+
*/
|
|
55
|
+
redoDisabled?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Custom className
|
|
58
|
+
*/
|
|
59
|
+
className?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Custom style
|
|
62
|
+
*/
|
|
63
|
+
style?: React.CSSProperties;
|
|
64
|
+
/**
|
|
65
|
+
* Test ID for testing
|
|
66
|
+
*/
|
|
67
|
+
'data-testid'?: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* TableControls component - Arbor Design System
|
|
71
|
+
*
|
|
72
|
+
* A toolbar component with action buttons and controls for tables.
|
|
73
|
+
*/
|
|
74
|
+
declare const TableControls: React.ForwardRefExoticComponent<TableControlsProps & React.RefAttributes<HTMLDivElement>>;
|
|
75
|
+
|
|
76
|
+
export { TableControls, type TableControlsProps };
|