@dreamtree-org/twreact-ui 1.0.81 → 1.0.83
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/index.css +1 -1
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.js +70 -142
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +70 -142
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -3935,89 +3935,16 @@ var DEFAULT_ACTIONS = [{
|
|
|
3935
3935
|
})
|
|
3936
3936
|
}];
|
|
3937
3937
|
|
|
3938
|
-
//
|
|
3939
|
-
var
|
|
3940
|
-
var
|
|
3941
|
-
_ref$actions = _ref.actions,
|
|
3938
|
+
// Simple inline action menu component (no portal)
|
|
3939
|
+
var ActionMenu = /*#__PURE__*/memo(function ActionMenu(_ref) {
|
|
3940
|
+
var _ref$actions = _ref.actions,
|
|
3942
3941
|
actions = _ref$actions === void 0 ? [] : _ref$actions,
|
|
3943
|
-
|
|
3942
|
+
row = _ref.row,
|
|
3944
3943
|
onAction = _ref.onAction,
|
|
3945
3944
|
menuRef = _ref.menuRef;
|
|
3946
|
-
var _useState = useState({
|
|
3947
|
-
left: 0,
|
|
3948
|
-
top: 0,
|
|
3949
|
-
transformOrigin: "top right",
|
|
3950
|
-
maxHeight: 300,
|
|
3951
|
-
width: 180,
|
|
3952
|
-
opacity: 0
|
|
3953
|
-
}),
|
|
3954
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
3955
|
-
style = _useState2[0],
|
|
3956
|
-
setStyle = _useState2[1];
|
|
3957
|
-
var menuWidth = 180;
|
|
3958
|
-
var maxMenuHeight = 320;
|
|
3959
|
-
var margin = 8;
|
|
3960
|
-
var minMenuHeight = 80;
|
|
3961
|
-
useLayoutEffect(function () {
|
|
3962
|
-
if (!anchorElem) return;
|
|
3963
|
-
var computePosition = function computePosition() {
|
|
3964
|
-
var rect = anchorElem.getBoundingClientRect();
|
|
3965
|
-
var scrollY = window.scrollY || window.pageYOffset;
|
|
3966
|
-
var scrollX = window.scrollX || window.pageXOffset;
|
|
3967
|
-
var spaceBelow = window.innerHeight - rect.bottom;
|
|
3968
|
-
var spaceAbove = rect.top;
|
|
3969
|
-
var placement = "bottom";
|
|
3970
|
-
var allowedMaxHeight;
|
|
3971
|
-
if (spaceBelow < 160 && spaceAbove > spaceBelow) {
|
|
3972
|
-
placement = "top";
|
|
3973
|
-
allowedMaxHeight = Math.min(maxMenuHeight, Math.max(minMenuHeight, spaceAbove - margin));
|
|
3974
|
-
} else {
|
|
3975
|
-
allowedMaxHeight = Math.min(maxMenuHeight, Math.max(minMenuHeight, spaceBelow - margin));
|
|
3976
|
-
}
|
|
3977
|
-
var measuredMenuHeight = allowedMaxHeight;
|
|
3978
|
-
var menuEl = menuRef === null || menuRef === void 0 ? void 0 : menuRef.current;
|
|
3979
|
-
if (menuEl) {
|
|
3980
|
-
var contentHeight = menuEl.scrollHeight || menuEl.offsetHeight || allowedMaxHeight;
|
|
3981
|
-
measuredMenuHeight = Math.min(contentHeight, allowedMaxHeight);
|
|
3982
|
-
}
|
|
3983
|
-
var top = placement === "top" ? rect.top + scrollY - measuredMenuHeight - margin : rect.bottom + scrollY + margin;
|
|
3984
|
-
var minTop = margin + scrollY;
|
|
3985
|
-
var maxTop = window.innerHeight + scrollY - measuredMenuHeight - margin;
|
|
3986
|
-
top = Math.max(minTop, Math.min(top, maxTop));
|
|
3987
|
-
var left = rect.right + scrollX - menuWidth;
|
|
3988
|
-
left = Math.max(margin, Math.min(left, window.innerWidth - menuWidth - margin));
|
|
3989
|
-
setStyle({
|
|
3990
|
-
left: left,
|
|
3991
|
-
top: top,
|
|
3992
|
-
transformOrigin: placement === "bottom" ? "top right" : "bottom right",
|
|
3993
|
-
maxHeight: allowedMaxHeight,
|
|
3994
|
-
width: menuWidth,
|
|
3995
|
-
opacity: 1
|
|
3996
|
-
});
|
|
3997
|
-
};
|
|
3998
|
-
computePosition();
|
|
3999
|
-
var onScrollOrResize = function onScrollOrResize() {
|
|
4000
|
-
window.requestAnimationFrame(computePosition);
|
|
4001
|
-
};
|
|
4002
|
-
window.addEventListener("resize", onScrollOrResize);
|
|
4003
|
-
window.addEventListener("scroll", onScrollOrResize, true);
|
|
4004
|
-
return function () {
|
|
4005
|
-
window.removeEventListener("resize", onScrollOrResize);
|
|
4006
|
-
window.removeEventListener("scroll", onScrollOrResize, true);
|
|
4007
|
-
};
|
|
4008
|
-
}, [anchorElem, menuRef]);
|
|
4009
3945
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
4010
3946
|
ref: menuRef,
|
|
4011
|
-
|
|
4012
|
-
position: "absolute",
|
|
4013
|
-
top: style.top,
|
|
4014
|
-
left: style.left,
|
|
4015
|
-
width: style.width,
|
|
4016
|
-
maxHeight: style.maxHeight,
|
|
4017
|
-
transformOrigin: style.transformOrigin,
|
|
4018
|
-
opacity: style.opacity
|
|
4019
|
-
},
|
|
4020
|
-
className: "absolute z-50 bg-white rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 overflow-y-auto transition-opacity duration-150 ease-out",
|
|
3947
|
+
className: "absolute right-0 top-full mt-1 z-50 w-44 bg-white rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 overflow-y-auto max-h-64",
|
|
4021
3948
|
onClick: function onClick(e) {
|
|
4022
3949
|
return e.stopPropagation();
|
|
4023
3950
|
}
|
|
@@ -4033,9 +3960,9 @@ var ActionMenuPortal = /*#__PURE__*/memo(function ActionMenuPortal(_ref) {
|
|
|
4033
3960
|
className: "w-full text-left px-3 py-2 text-sm hover:bg-gray-100 flex items-center gap-2 rounded-md",
|
|
4034
3961
|
onClick: function onClick(e) {
|
|
4035
3962
|
e.stopPropagation();
|
|
4036
|
-
onAction === null || onAction === void 0 || onAction(action,
|
|
3963
|
+
onAction === null || onAction === void 0 || onAction(action, row);
|
|
4037
3964
|
}
|
|
4038
|
-
}, action.render ? action.render(
|
|
3965
|
+
}, action.render ? action.render(row) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, action.icon && /*#__PURE__*/React__default.createElement("span", {
|
|
4039
3966
|
className: "inline-flex"
|
|
4040
3967
|
}, action.icon), /*#__PURE__*/React__default.createElement("span", null, action.label))));
|
|
4041
3968
|
})));
|
|
@@ -4123,85 +4050,85 @@ var Table = function Table(_ref2) {
|
|
|
4123
4050
|
pageNumber = _ref2.pageNumber,
|
|
4124
4051
|
props = _objectWithoutProperties$1(_ref2, _excluded$k);
|
|
4125
4052
|
// Core state
|
|
4126
|
-
var
|
|
4127
|
-
|
|
4128
|
-
isMobileView =
|
|
4129
|
-
setIsMobileView =
|
|
4130
|
-
var
|
|
4053
|
+
var _useState = useState(false),
|
|
4054
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
4055
|
+
isMobileView = _useState2[0],
|
|
4056
|
+
setIsMobileView = _useState2[1];
|
|
4057
|
+
var _useState3 = useState(function () {
|
|
4131
4058
|
return Array.isArray(data) ? data : [];
|
|
4132
4059
|
}),
|
|
4060
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
4061
|
+
tableData = _useState4[0],
|
|
4062
|
+
setTableData = _useState4[1];
|
|
4063
|
+
var _useState5 = useState(false),
|
|
4133
4064
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
var _useState7 = useState(
|
|
4065
|
+
loading = _useState6[0],
|
|
4066
|
+
setLoading = _useState6[1];
|
|
4067
|
+
var _useState7 = useState(pageSize),
|
|
4137
4068
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
var _useState9 = useState(
|
|
4141
|
-
_useState0 = _slicedToArray(_useState9, 2),
|
|
4142
|
-
limit = _useState0[0],
|
|
4143
|
-
setLimit = _useState0[1];
|
|
4144
|
-
var _useState1 = useState(function () {
|
|
4069
|
+
limit = _useState8[0],
|
|
4070
|
+
setLimit = _useState8[1];
|
|
4071
|
+
var _useState9 = useState(function () {
|
|
4145
4072
|
return typeof pageNumber === "number" ? pageNumber : 1;
|
|
4146
4073
|
}),
|
|
4147
|
-
|
|
4148
|
-
currentPage =
|
|
4149
|
-
setCurrentPage =
|
|
4074
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
4075
|
+
currentPage = _useState0[0],
|
|
4076
|
+
setCurrentPage = _useState0[1];
|
|
4150
4077
|
|
|
4151
4078
|
// Column state
|
|
4152
|
-
var
|
|
4079
|
+
var _useState1 = useState(function () {
|
|
4153
4080
|
return Array.isArray(columns) ? columns.map(function (c) {
|
|
4154
4081
|
return _objectSpread$9({}, c);
|
|
4155
4082
|
}) : [];
|
|
4156
4083
|
}),
|
|
4084
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
4085
|
+
columnsState = _useState10[0],
|
|
4086
|
+
setColumnsState = _useState10[1];
|
|
4087
|
+
var _useState11 = useState(false),
|
|
4157
4088
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
var _useState13 = useState(false),
|
|
4161
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
4162
|
-
showColumnMenu = _useState14[0],
|
|
4163
|
-
setShowColumnMenu = _useState14[1];
|
|
4089
|
+
showColumnMenu = _useState12[0],
|
|
4090
|
+
setShowColumnMenu = _useState12[1];
|
|
4164
4091
|
|
|
4165
4092
|
// Sorting/filtering state
|
|
4166
|
-
var
|
|
4093
|
+
var _useState13 = useState({
|
|
4167
4094
|
key: null,
|
|
4168
4095
|
direction: "asc"
|
|
4169
4096
|
}),
|
|
4097
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
4098
|
+
sortConfig = _useState14[0],
|
|
4099
|
+
setSortConfig = _useState14[1];
|
|
4100
|
+
var _useState15 = useState({}),
|
|
4170
4101
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
var _useState17 = useState(
|
|
4102
|
+
filters = _useState16[0],
|
|
4103
|
+
setFilters = _useState16[1];
|
|
4104
|
+
var _useState17 = useState(""),
|
|
4174
4105
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
var _useState19 = useState(""),
|
|
4178
|
-
_useState20 = _slicedToArray(_useState19, 2),
|
|
4179
|
-
searchInput = _useState20[0],
|
|
4180
|
-
setSearchInput = _useState20[1];
|
|
4106
|
+
searchInput = _useState18[0],
|
|
4107
|
+
setSearchInput = _useState18[1];
|
|
4181
4108
|
|
|
4182
4109
|
// Selection/expansion state
|
|
4183
|
-
var
|
|
4110
|
+
var _useState19 = useState(function () {
|
|
4184
4111
|
return new Set();
|
|
4185
4112
|
}),
|
|
4186
|
-
|
|
4187
|
-
selectedRows =
|
|
4188
|
-
setSelectedRows =
|
|
4189
|
-
var
|
|
4113
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
|
4114
|
+
selectedRows = _useState20[0],
|
|
4115
|
+
setSelectedRows = _useState20[1];
|
|
4116
|
+
var _useState21 = useState(function () {
|
|
4190
4117
|
return new Set();
|
|
4191
4118
|
}),
|
|
4192
|
-
|
|
4193
|
-
expandedRows =
|
|
4194
|
-
setExpandedRows =
|
|
4119
|
+
_useState22 = _slicedToArray(_useState21, 2),
|
|
4120
|
+
expandedRows = _useState22[0],
|
|
4121
|
+
setExpandedRows = _useState22[1];
|
|
4195
4122
|
|
|
4196
4123
|
// Action menu state
|
|
4197
|
-
var
|
|
4124
|
+
var _useState23 = useState(null),
|
|
4125
|
+
_useState24 = _slicedToArray(_useState23, 2),
|
|
4126
|
+
actionAnchor = _useState24[0],
|
|
4127
|
+
setActionAnchor = _useState24[1];
|
|
4128
|
+
var _useState25 = useState(false),
|
|
4198
4129
|
_useState26 = _slicedToArray(_useState25, 2),
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
var _useState27 = useState(false),
|
|
4202
|
-
_useState28 = _slicedToArray(_useState27, 2),
|
|
4203
|
-
showMobileFilters = _useState28[0],
|
|
4204
|
-
setShowMobileFilters = _useState28[1];
|
|
4130
|
+
showMobileFilters = _useState26[0],
|
|
4131
|
+
setShowMobileFilters = _useState26[1];
|
|
4205
4132
|
|
|
4206
4133
|
// Refs
|
|
4207
4134
|
var columnMenuRef = useRef(null);
|
|
@@ -4542,15 +4469,14 @@ var Table = function Table(_ref2) {
|
|
|
4542
4469
|
title: "Actions"
|
|
4543
4470
|
}, /*#__PURE__*/React__default.createElement(MoreVertical, {
|
|
4544
4471
|
className: "h-4 w-4"
|
|
4545
|
-
})), (actionAnchor === null || actionAnchor === void 0 ? void 0 : actionAnchor.key) === actionCellKey && /*#__PURE__*/
|
|
4546
|
-
anchorElem: actionAnchor.elem,
|
|
4547
|
-
anchorRow: actionAnchor.row,
|
|
4472
|
+
})), (actionAnchor === null || actionAnchor === void 0 ? void 0 : actionAnchor.key) === actionCellKey && /*#__PURE__*/React__default.createElement(ActionMenu, {
|
|
4548
4473
|
actions: actionsToUse,
|
|
4474
|
+
row: row,
|
|
4549
4475
|
onAction: function onAction(action) {
|
|
4550
4476
|
return handleOnAction(action, row);
|
|
4551
4477
|
},
|
|
4552
4478
|
menuRef: actionMenuRef
|
|
4553
|
-
})
|
|
4479
|
+
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
4554
4480
|
className: "p-4"
|
|
4555
4481
|
}, visibleColumns.map(function (column, colIndex) {
|
|
4556
4482
|
var extraCellClass = typeof cellClass === "function" ? cellClass({
|
|
@@ -4932,7 +4858,7 @@ var Table = function Table(_ref2) {
|
|
|
4932
4858
|
return e.stopPropagation();
|
|
4933
4859
|
}
|
|
4934
4860
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
4935
|
-
className: "inline-block"
|
|
4861
|
+
className: "relative inline-block"
|
|
4936
4862
|
}, /*#__PURE__*/React__default.createElement("button", {
|
|
4937
4863
|
onClick: function onClick(e) {
|
|
4938
4864
|
return toggleActions(e, actionCellKey, row);
|
|
@@ -4942,15 +4868,14 @@ var Table = function Table(_ref2) {
|
|
|
4942
4868
|
title: "Actions"
|
|
4943
4869
|
}, /*#__PURE__*/React__default.createElement(MoreVertical, {
|
|
4944
4870
|
className: "h-4 w-4"
|
|
4945
|
-
}))
|
|
4946
|
-
anchorElem: actionAnchor.elem,
|
|
4947
|
-
anchorRow: actionAnchor.row,
|
|
4871
|
+
})), (actionAnchor === null || actionAnchor === void 0 ? void 0 : actionAnchor.key) === actionCellKey && /*#__PURE__*/React__default.createElement(ActionMenu, {
|
|
4948
4872
|
actions: actionsToUse,
|
|
4873
|
+
row: row,
|
|
4949
4874
|
onAction: function onAction(action) {
|
|
4950
4875
|
return handleOnAction(action, row);
|
|
4951
4876
|
},
|
|
4952
4877
|
menuRef: actionMenuRef
|
|
4953
|
-
})
|
|
4878
|
+
})))), hasDetails && isExpanded && DetailsComponent && /*#__PURE__*/React__default.createElement("tr", null, /*#__PURE__*/React__default.createElement("td", {
|
|
4954
4879
|
colSpan: visibleCount,
|
|
4955
4880
|
className: "px-6 py-4 bg-gray-50"
|
|
4956
4881
|
}, /*#__PURE__*/React__default.createElement(DetailsComponent, {
|
|
@@ -15905,7 +15830,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
15905
15830
|
};
|
|
15906
15831
|
|
|
15907
15832
|
var _excluded$b = ["emitter", "content", "notifications"],
|
|
15908
|
-
_excluded2$2 = ["emitter", "logo", "items", "user", "notifications", "searchable", "onSearch", "leftIcon", "rightMenuContent", "onLeftIconClick", "onLoginClick", "className"];
|
|
15833
|
+
_excluded2$2 = ["emitter", "logo", "items", "user", "notifications", "searchable", "onSearch", "leftIcon", "rightMenuContent", "onLeftIconClick", "onLoginClick", "onLogoutClick", "className"];
|
|
15909
15834
|
|
|
15910
15835
|
// Simplified Notifications, uses notifications from props and a single effect for fetch/update
|
|
15911
15836
|
var NotificationsDropdown = function NotificationsDropdown(_ref) {
|
|
@@ -16057,6 +15982,10 @@ var Navbar = function Navbar(_ref3) {
|
|
|
16057
15982
|
onLoginClick = _ref3$onLoginClick === void 0 ? function () {
|
|
16058
15983
|
return console.log("invoked onLoginClick");
|
|
16059
15984
|
} : _ref3$onLoginClick,
|
|
15985
|
+
_ref3$onLogoutClick = _ref3.onLogoutClick,
|
|
15986
|
+
onLogoutClick = _ref3$onLogoutClick === void 0 ? function () {
|
|
15987
|
+
return console.log("invoked onLogoutClick");
|
|
15988
|
+
} : _ref3$onLogoutClick,
|
|
16060
15989
|
className = _ref3.className,
|
|
16061
15990
|
props = _objectWithoutProperties$1(_ref3, _excluded2$2);
|
|
16062
15991
|
var _useState3 = useState(false),
|
|
@@ -16093,8 +16022,7 @@ var Navbar = function Navbar(_ref3) {
|
|
|
16093
16022
|
onLoginClick === null || onLoginClick === void 0 || onLoginClick();
|
|
16094
16023
|
};
|
|
16095
16024
|
var handleLogoutClick = function handleLogoutClick() {
|
|
16096
|
-
|
|
16097
|
-
(_onLogoutClick = onLogoutClick) === null || _onLogoutClick === void 0 || _onLogoutClick();
|
|
16025
|
+
onLogoutClick === null || onLogoutClick === void 0 || onLogoutClick();
|
|
16098
16026
|
};
|
|
16099
16027
|
|
|
16100
16028
|
// Render navigation items as either <a> or <button>
|