pixelize-design-library 2.2.16 → 2.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.
- package/dist/Components/AlertDialog/AlertDialog.js +2 -2
- package/dist/Components/FileUploader/FileUploader.d.ts +4 -0
- package/dist/Components/FileUploader/FileUploader.js +146 -0
- package/dist/Components/FileUploader/FileUploaderProps.d.ts +13 -0
- package/dist/Components/MultiSelect/MultiSelect.js +1 -1
- package/dist/Components/Notification/Notification.d.ts +4 -0
- package/dist/Components/Notification/Notification.js +131 -0
- package/dist/Components/Notification/NotificationProps.d.ts +16 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +6 -2
- package/package.json +1 -1
- package/dist/Components/Apexcharts/ApexBarChart/ApexBarChart.stories.d.ts +0 -1
- package/dist/Components/Apexcharts/ApexBarChart/ApexBarChart.stories.js +0 -6
- package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChart.d.ts +0 -4
- package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChart.js +0 -58
- package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChartProps.d.ts +0 -21
- package/dist/Components/Apexcharts/ApexPieChart/ApexPieChart.stories.d.ts +0 -1
- package/dist/Components/Apexcharts/ApexPieChart/ApexPieChart.stories.js +0 -6
- package/dist/Components/InputTextArea/InputTextArea.stories.d.ts +0 -1
- package/dist/Components/InputTextArea/InputTextArea.stories.js +0 -7
- package/dist/Components/KaTable/CustomHeader.d.ts +0 -14
- package/dist/Components/KaTable/CustomHeader.js +0 -69
- package/dist/Components/KaTable/KaTable.d.ts +0 -13
- package/dist/Components/KaTable/KaTable.js +0 -111
- package/dist/Components/KaTable/KaTableProps.d.ts +0 -23
- package/dist/Components/KaTable/SelectionCell.d.ts +0 -8
- package/dist/Components/KaTable/SelectionCell.js +0 -38
- package/dist/Components/KaTable/SelectionHeader.d.ts +0 -3
- package/dist/Components/KaTable/SelectionHeader.js +0 -56
- package/dist/Components/KaTable/ka-table.css +0 -27
- package/dist/Components/KaTable/useMergedChildComponents.d.ts +0 -14
- package/dist/Components/KaTable/useMergedChildComponents.js +0 -224
- package/dist/Components/NumberInput/NumberInput.stories.d.ts +0 -1
- package/dist/Components/NumberInput/NumberInput.stories.js +0 -5
- package/dist/Components/Table/Table.css +0 -16
- package/dist/Theme/Default/fonts.d.ts +0 -35
- package/dist/Theme/Default/fonts.js +0 -37
- /package/dist/Components/{Apexcharts/ApexDonutChart/ApexDonutChartProps.js → FileUploader/FileUploaderProps.js} +0 -0
- /package/dist/Components/{KaTable/KaTableProps.js → Notification/NotificationProps.js} +0 -0
|
@@ -14,7 +14,7 @@ var AlertDialog = function (_a) {
|
|
|
14
14
|
react_2.default.createElement(react_1.AlertDialogCloseButton, { sx: closeButtonStyle }),
|
|
15
15
|
react_2.default.createElement(react_1.AlertDialogBody, { sx: bodyStyle }, content),
|
|
16
16
|
react_2.default.createElement(react_1.AlertDialogFooter, { sx: footerStyle },
|
|
17
|
-
react_2.default.createElement(react_1.Button, { ref: null, onClick: onClose, size: "sm", sx: button1Style }, cancelButtonText),
|
|
18
|
-
react_2.default.createElement(react_1.Button, { colorScheme:
|
|
17
|
+
react_2.default.createElement(react_1.Button, { ref: null, onClick: onClose, variant: "outline", colorScheme: "red", size: "sm", sx: button1Style }, cancelButtonText),
|
|
18
|
+
react_2.default.createElement(react_1.Button, { colorScheme: "primary", onClick: onConfirm, isLoading: isConfirmLoading, ml: 3, size: "sm", sx: button2Style }, confirmButtonText)))));
|
|
19
19
|
};
|
|
20
20
|
exports.default = AlertDialog;
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
26
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
27
|
+
if (ar || !(i in from)) {
|
|
28
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
29
|
+
ar[i] = from[i];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
var react_1 = __importStar(require("react"));
|
|
36
|
+
var react_2 = require("@chakra-ui/react");
|
|
37
|
+
var lucide_react_1 = require("lucide-react");
|
|
38
|
+
var Toaster_1 = require("../Toaster/Toaster");
|
|
39
|
+
var FileUploader = function (_a) {
|
|
40
|
+
var _b = _a.maxFiles, maxFiles = _b === void 0 ? 10 : _b, _c = _a.maxTotalSize, maxTotalSize = _c === void 0 ? 20 : _c, onFilesChange = _a.onFilesChange, _d = _a.acceptTypes, acceptTypes = _d === void 0 ? ["jpeg", "jpg", "png"] : _d;
|
|
41
|
+
var showToast = (0, Toaster_1.useToaster)().showToast;
|
|
42
|
+
var _e = (0, react_1.useState)([]), uploadedFiles = _e[0], setUploadedFiles = _e[1];
|
|
43
|
+
var _f = (0, react_1.useState)(false), setIsDragOver = _f[1];
|
|
44
|
+
// const [error, setError] = useState<string | null>(null);
|
|
45
|
+
var fileInputRef = (0, react_1.useRef)(null);
|
|
46
|
+
var totalSize = uploadedFiles.reduce(function (acc, f) { return acc + f.size; }, 0);
|
|
47
|
+
var maxTotalBytes = maxTotalSize * 1024 * 1024;
|
|
48
|
+
var formatFileSize = function (bytes) {
|
|
49
|
+
if (bytes === 0)
|
|
50
|
+
return "0 KB";
|
|
51
|
+
var k = 1024;
|
|
52
|
+
var sizes = ["Bytes", "KB", "MB"];
|
|
53
|
+
var i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
54
|
+
return "".concat((bytes / Math.pow(k, i)).toFixed(2), " ").concat(sizes[i]);
|
|
55
|
+
};
|
|
56
|
+
var handleFiles = function (files) {
|
|
57
|
+
// setError(null);
|
|
58
|
+
var newFiles = Array.from(files).map(function (file) { return ({
|
|
59
|
+
id: Math.random().toString(36).substring(2),
|
|
60
|
+
name: file.name,
|
|
61
|
+
size: file.size,
|
|
62
|
+
previewUrl: file.type.startsWith("image/") ? URL.createObjectURL(file) : "",
|
|
63
|
+
}); });
|
|
64
|
+
var combinedFiles = __spreadArray(__spreadArray([], uploadedFiles, true), newFiles, true).slice(0, maxFiles);
|
|
65
|
+
var totalSizeBytes = combinedFiles.reduce(function (acc, f) { return acc + f.size; }, 0);
|
|
66
|
+
if (totalSizeBytes > maxTotalBytes) {
|
|
67
|
+
showToast({
|
|
68
|
+
title: "Total file size exceeds ".concat(maxTotalSize, " MB limit."),
|
|
69
|
+
duration: 3000,
|
|
70
|
+
status: "error",
|
|
71
|
+
});
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
setUploadedFiles(combinedFiles);
|
|
75
|
+
onFilesChange === null || onFilesChange === void 0 ? void 0 : onFilesChange(combinedFiles);
|
|
76
|
+
};
|
|
77
|
+
var handleFileInput = function (e) {
|
|
78
|
+
if (e.target.files) {
|
|
79
|
+
handleFiles(e.target.files);
|
|
80
|
+
e.target.value = ""; // fix: reopen file dialog for same files
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
var handleDrop = function (e) {
|
|
84
|
+
e.preventDefault();
|
|
85
|
+
setIsDragOver(false);
|
|
86
|
+
if (e.dataTransfer.files)
|
|
87
|
+
handleFiles(e.dataTransfer.files);
|
|
88
|
+
};
|
|
89
|
+
var handleDragOver = function (e) {
|
|
90
|
+
e.preventDefault();
|
|
91
|
+
setIsDragOver(true);
|
|
92
|
+
};
|
|
93
|
+
var handleDragLeave = function () { return setIsDragOver(false); };
|
|
94
|
+
var removeFile = function (id) {
|
|
95
|
+
var filtered = uploadedFiles.filter(function (f) { return f.id !== id; });
|
|
96
|
+
setUploadedFiles(filtered);
|
|
97
|
+
onFilesChange === null || onFilesChange === void 0 ? void 0 : onFilesChange(filtered);
|
|
98
|
+
};
|
|
99
|
+
var handleBrowseClick = function () { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); };
|
|
100
|
+
// ✅ Convert ["png","pdf","zip"] → ".png,.pdf,.zip" for input accept
|
|
101
|
+
var acceptString = acceptTypes.map(function (ext) { return ".".concat(ext); }).join(",");
|
|
102
|
+
return (react_1.default.createElement(react_2.Box, { maxW: "500px", mx: "auto", p: 6 },
|
|
103
|
+
react_1.default.createElement(react_2.Text, { fontSize: "sm", color: "gray.600", mb: 4 },
|
|
104
|
+
"Files Uploaded:",
|
|
105
|
+
" ",
|
|
106
|
+
react_1.default.createElement(react_2.Text, { as: "span", fontWeight: "medium", color: "blue.500" },
|
|
107
|
+
uploadedFiles.length,
|
|
108
|
+
" / ",
|
|
109
|
+
maxFiles),
|
|
110
|
+
" ",
|
|
111
|
+
"| Total size:",
|
|
112
|
+
" ",
|
|
113
|
+
react_1.default.createElement(react_2.Text, { as: "span", fontWeight: "medium" },
|
|
114
|
+
formatFileSize(totalSize),
|
|
115
|
+
" / ",
|
|
116
|
+
maxTotalSize,
|
|
117
|
+
" MB")),
|
|
118
|
+
react_1.default.createElement(react_2.Box, { border: "1px dashed", borderColor: "gray.300", borderRadius: "md", p: 1, mt: 1, mb: 1 },
|
|
119
|
+
uploadedFiles.length > 0 && (react_1.default.createElement(react_2.Box, null,
|
|
120
|
+
react_1.default.createElement(react_2.Grid, { templateColumns: "repeat(2, 1fr)", gap: 3 }, uploadedFiles.map(function (file) {
|
|
121
|
+
var _a;
|
|
122
|
+
return (react_1.default.createElement(react_2.Flex, { key: file.id, align: "center", justify: "space-between", border: "1px solid", borderColor: "gray.200", borderRadius: "md", pl: 1, bg: "gray.50" },
|
|
123
|
+
react_1.default.createElement(react_2.HStack, { spacing: 3, flex: "1", minW: "0" },
|
|
124
|
+
file.previewUrl ? (react_1.default.createElement(react_2.Image, { src: file.previewUrl, alt: file.name, boxSize: "28px", borderRadius: "sm", objectFit: "cover" })) : (react_1.default.createElement(react_2.Box, { boxSize: "28px", borderRadius: "sm", bg: "gray.200", display: "flex", alignItems: "center", justifyContent: "center", fontSize: "xs", color: "gray.600" }, (_a = file.name.split(".").pop()) === null || _a === void 0 ? void 0 : _a.toUpperCase())),
|
|
125
|
+
react_1.default.createElement(react_2.Box, { minW: "0" },
|
|
126
|
+
react_1.default.createElement(react_2.Text, { fontSize: "sm", fontWeight: "medium", noOfLines: 1 }, file.name),
|
|
127
|
+
react_1.default.createElement(react_2.Text, { fontSize: "xs", color: "gray.600" },
|
|
128
|
+
"(",
|
|
129
|
+
formatFileSize(file.size),
|
|
130
|
+
")"))),
|
|
131
|
+
react_1.default.createElement(react_2.HStack, { spacing: 1 },
|
|
132
|
+
react_1.default.createElement(react_2.Tooltip, { label: "Remove" },
|
|
133
|
+
react_1.default.createElement(react_2.IconButton, { "aria-label": "Remove", icon: react_1.default.createElement(lucide_react_1.X, { size: 14 }), size: "xs", variant: "ghost", colorScheme: "red", onClick: function () { return removeFile(file.id); } })))));
|
|
134
|
+
})))),
|
|
135
|
+
react_1.default.createElement("input", { ref: fileInputRef, type: "file", multiple: true, accept: acceptString, onChange: handleFileInput, style: { display: "none" } }),
|
|
136
|
+
react_1.default.createElement(react_2.Box, { p: uploadedFiles.length ? 0 : 5, mb: 2, textAlign: uploadedFiles.length ? "left" : "center", pt: uploadedFiles.length ? 5 : 5, transition: "all 0.2s", onDrop: handleDrop, onDragOver: handleDragOver, onDragLeave: handleDragLeave, cursor: "pointer", onClick: handleBrowseClick },
|
|
137
|
+
react_1.default.createElement(react_2.Box, null,
|
|
138
|
+
react_1.default.createElement(react_2.Text, { fontWeight: "medium", fontSize: "md" },
|
|
139
|
+
"Drag and drop the files here, or",
|
|
140
|
+
react_1.default.createElement(react_2.Box, { as: "span", color: "blue.400", ml: 1 }, "Click here"))),
|
|
141
|
+
react_1.default.createElement(react_2.Text, { fontSize: "xs", color: "gray.500" },
|
|
142
|
+
"Supported formats: ",
|
|
143
|
+
acceptTypes.map(function (t) { return t.toUpperCase(); }).join(", "),
|
|
144
|
+
".")))));
|
|
145
|
+
};
|
|
146
|
+
exports.default = FileUploader;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type UploadedFile = {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
size: number;
|
|
5
|
+
type?: string;
|
|
6
|
+
previewUrl?: string;
|
|
7
|
+
};
|
|
8
|
+
export type FileUploaderProps = {
|
|
9
|
+
maxFiles?: number;
|
|
10
|
+
maxTotalSize?: number;
|
|
11
|
+
acceptTypes?: string[];
|
|
12
|
+
onFilesChange?: (files: UploadedFile[]) => void;
|
|
13
|
+
};
|
|
@@ -117,7 +117,7 @@ function MultiSelect(_a) {
|
|
|
117
117
|
? (_b = theme.colors.boxShadow) === null || _b === void 0 ? void 0 : _b.error
|
|
118
118
|
: (_c = theme.colors.boxShadow) === null || _c === void 0 ? void 0 : _c.primary),
|
|
119
119
|
} },
|
|
120
|
-
options.map(function (option) { return (react_1.default.createElement(react_2.Tag, { key: option.id, size: "md", borderRadius: "full", variant: "subtle", colorScheme: "
|
|
120
|
+
options.map(function (option) { return (react_1.default.createElement(react_2.Tag, { key: option.id, size: "md", borderRadius: "full", variant: "subtle", colorScheme: "primary" },
|
|
121
121
|
react_1.default.createElement(react_2.TagLabel, null, option.label),
|
|
122
122
|
react_1.default.createElement(react_2.TagCloseButton, { onClick: function () { return handleRemove(option); } }))); }),
|
|
123
123
|
react_1.default.createElement(react_2.Input, { ref: inputRef, type: "text", value: inputValue, isDisabled: isDisabled, isReadOnly: isReadOnly, id: id, name: name, size: size, variant: "unstyled", flex: "1", style: __assign(__assign({}, inputStyle), { backgroundColor: "transparent", fontWeight: 500, color: theme.colors.gray[700], fontSize: 15, letterSpacing: 0.3 }), onChange: handleInputChange, onKeyDown: handleKeyDown, placeholder: options.length === 0 ? placeholderText : "" })),
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
var react_1 = __importStar(require("react"));
|
|
27
|
+
var react_2 = require("@chakra-ui/react");
|
|
28
|
+
var lucide_react_1 = require("lucide-react");
|
|
29
|
+
var useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
30
|
+
var Notification = function (_a) {
|
|
31
|
+
var notification = _a.notification, onClose = _a.onClose;
|
|
32
|
+
var theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
33
|
+
var bgColor = theme.colors.white;
|
|
34
|
+
var borderColor = theme.colors.gray[200];
|
|
35
|
+
var textColor = theme.colors.gray[700];
|
|
36
|
+
var titleColor = theme.colors.gray[800];
|
|
37
|
+
var warningColor = theme.colors.semantic.warning;
|
|
38
|
+
var errorColor = theme.colors.semantic.error;
|
|
39
|
+
var successColor = theme.colors.semantic.success;
|
|
40
|
+
var startDate = notification.startDate
|
|
41
|
+
? new Date(notification.startDate)
|
|
42
|
+
: null;
|
|
43
|
+
// 🧮 Calculate time difference
|
|
44
|
+
var _b = (0, react_1.useMemo)(function () {
|
|
45
|
+
var targetDate = notification.dueDate
|
|
46
|
+
? new Date(notification.dueDate)
|
|
47
|
+
: notification.endDate
|
|
48
|
+
? new Date(notification.endDate)
|
|
49
|
+
: null;
|
|
50
|
+
if (!targetDate)
|
|
51
|
+
return { timeLabel: "", diffDays: null };
|
|
52
|
+
var now = new Date();
|
|
53
|
+
var diffMs = targetDate.getTime() - now.getTime();
|
|
54
|
+
var diffMinutes = Math.floor(diffMs / (1000 * 60));
|
|
55
|
+
var diffHours = diffMinutes / 60;
|
|
56
|
+
var diffDays = diffHours / 24;
|
|
57
|
+
var toTitle = function (text) {
|
|
58
|
+
if (!text)
|
|
59
|
+
return "Item";
|
|
60
|
+
return text.charAt(0).toUpperCase() + text.slice(1).toLowerCase();
|
|
61
|
+
};
|
|
62
|
+
var typeLabel = toTitle(notification.type);
|
|
63
|
+
var label = "";
|
|
64
|
+
if (diffMs < 0) {
|
|
65
|
+
// 🔴 Overdue / Ended
|
|
66
|
+
var overdueMinutes = Math.abs(diffMinutes);
|
|
67
|
+
if (overdueMinutes < 60)
|
|
68
|
+
label = "".concat(typeLabel, " overdue by ").concat(overdueMinutes, " minute").concat(overdueMinutes === 1 ? "" : "s", " ago");
|
|
69
|
+
else if (overdueMinutes < 1440)
|
|
70
|
+
label = "".concat(typeLabel, " overdue by ").concat(Math.floor(overdueMinutes / 60), " hour").concat(Math.floor(overdueMinutes / 60) === 1 ? "" : "s", " ago");
|
|
71
|
+
else
|
|
72
|
+
label = "".concat(typeLabel, " overdue by ").concat(Math.floor(overdueMinutes / 1440), " day").concat(Math.floor(overdueMinutes / 1440) === 1 ? "" : "s", " ago");
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// 🟢 Upcoming
|
|
76
|
+
if (diffMinutes < 60)
|
|
77
|
+
label = "".concat(typeLabel, " due in ").concat(diffMinutes, " minute").concat(diffMinutes === 1 ? "" : "s");
|
|
78
|
+
else if (diffHours < 24)
|
|
79
|
+
label = "".concat(typeLabel, " due in ").concat(Math.floor(diffHours), " hour").concat(Math.floor(diffHours) === 1 ? "" : "s");
|
|
80
|
+
else
|
|
81
|
+
label = "".concat(typeLabel, " due in ").concat(Math.ceil(diffDays), " day").concat(Math.ceil(diffDays) === 1 ? "" : "s");
|
|
82
|
+
}
|
|
83
|
+
return { timeLabel: label, diffDays: diffDays };
|
|
84
|
+
}, [notification.dueDate, notification.endDate, notification.type]), timeLabel = _b.timeLabel, diffDays = _b.diffDays;
|
|
85
|
+
// 🟡 Status color indicator
|
|
86
|
+
var getStatusColor = function () {
|
|
87
|
+
if (diffDays === null)
|
|
88
|
+
return theme.colors.gray[400];
|
|
89
|
+
if (diffDays < 0)
|
|
90
|
+
return errorColor; // Overdue
|
|
91
|
+
if (diffDays <= 0.04)
|
|
92
|
+
return warningColor; // Less than 1 hour
|
|
93
|
+
if (diffDays <= 1)
|
|
94
|
+
return theme.colors.yellow[400]; // Within a day
|
|
95
|
+
return successColor; // Future
|
|
96
|
+
};
|
|
97
|
+
var TimeIcon = diffDays !== null && diffDays < 0 ? lucide_react_1.AlertCircle : lucide_react_1.Clock;
|
|
98
|
+
var formattedStart = (startDate === null || startDate === void 0 ? void 0 : startDate.toLocaleString("en-US", {
|
|
99
|
+
day: "2-digit",
|
|
100
|
+
month: "short",
|
|
101
|
+
hour: "2-digit",
|
|
102
|
+
minute: "2-digit",
|
|
103
|
+
})) || "";
|
|
104
|
+
return (react_1.default.createElement(react_2.Box, { bg: bgColor, border: "1px solid", borderColor: borderColor, borderRadius: "xl", p: 4, w: "100%", maxW: "400px", boxShadow: "sm", _hover: { boxShadow: "md", transform: "translateY(-2px)" }, transition: "all 0.2s ease", position: "relative" },
|
|
105
|
+
onClose && (react_1.default.createElement(react_2.Box, { position: "absolute", top: "2", right: "2", cursor: "pointer", onClick: onClose, onKeyDown: function (e) {
|
|
106
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
107
|
+
e.preventDefault();
|
|
108
|
+
onClose();
|
|
109
|
+
}
|
|
110
|
+
}, tabIndex: 0, p: 1, borderRadius: "md", _hover: { bg: theme.colors.red[100], color: theme.colors.red[500], transform: "scale(1.1)" }, transition: "all 0.2s ease" },
|
|
111
|
+
react_1.default.createElement(lucide_react_1.X, { size: 16 }))),
|
|
112
|
+
react_1.default.createElement(react_2.VStack, { align: "start", spacing: 3, w: "100%" },
|
|
113
|
+
react_1.default.createElement(react_2.HStack, { spacing: 2 },
|
|
114
|
+
react_1.default.createElement(react_2.Icon, { as: TimeIcon, color: theme.colors.orange[400], boxSize: 4 }),
|
|
115
|
+
react_1.default.createElement(react_2.Text, { fontSize: "sm", color: theme.colors.orange[500], fontWeight: "semibold" }, timeLabel)),
|
|
116
|
+
react_1.default.createElement(react_2.HStack, { align: "center", spacing: 3, w: "100%" },
|
|
117
|
+
react_1.default.createElement(react_2.Avatar, { size: "sm", name: notification.host || notification.title, src: notification.avatarUrl || "" }),
|
|
118
|
+
react_1.default.createElement(react_2.VStack, { align: "start", spacing: 0, flex: "1" },
|
|
119
|
+
react_1.default.createElement(react_2.Text, { fontWeight: "bold", fontSize: "md", color: titleColor }, notification.title),
|
|
120
|
+
notification.description && (react_1.default.createElement(react_2.Text, { fontSize: "sm", color: textColor }, notification.description)))),
|
|
121
|
+
react_1.default.createElement(react_2.Divider, { borderColor: borderColor }),
|
|
122
|
+
react_1.default.createElement(react_2.HStack, { justify: "space-between", w: "100%" },
|
|
123
|
+
react_1.default.createElement(react_2.HStack, { spacing: 2 },
|
|
124
|
+
react_1.default.createElement(react_2.Icon, { as: lucide_react_1.Calendar, color: theme.colors.gray[400], boxSize: 4 }),
|
|
125
|
+
react_1.default.createElement(react_2.Text, { fontSize: "sm", color: theme.colors.gray[500] }, formattedStart)),
|
|
126
|
+
react_1.default.createElement(react_2.HStack, { spacing: 2 },
|
|
127
|
+
react_1.default.createElement(react_2.Icon, { as: lucide_react_1.User, color: theme.colors.gray[400], boxSize: 4 }),
|
|
128
|
+
notification.host && (react_1.default.createElement(react_2.Text, { fontSize: "sm", color: theme.colors.gray[500] }, notification.host))),
|
|
129
|
+
react_1.default.createElement(react_2.Box, { boxSize: "3", bg: getStatusColor(), borderRadius: "full" })))));
|
|
130
|
+
};
|
|
131
|
+
exports.default = Notification;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type NotificationData = {
|
|
2
|
+
id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
startDate: string;
|
|
5
|
+
dueDate?: string;
|
|
6
|
+
endDate?: string;
|
|
7
|
+
host?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
status?: string;
|
|
10
|
+
type?: string;
|
|
11
|
+
};
|
|
12
|
+
export type NotificationProps = {
|
|
13
|
+
notification: NotificationData;
|
|
14
|
+
onClose?: () => void;
|
|
15
|
+
showStatus?: boolean;
|
|
16
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ import Drawer, { DrawerHeader, DrawerBody, DrawerFooter } from "./Components/Dra
|
|
|
14
14
|
import Dropdown from "./Components/Dropdown/DropDown";
|
|
15
15
|
import Editor from "./Components/Editor/Editor";
|
|
16
16
|
import FileUpload from "./Components/FileUpload/FileUpload";
|
|
17
|
+
import FileUploader from "./Components/FileUploader/FileUploader";
|
|
17
18
|
import FormWrapper from "./Components/Form/FormWrapper";
|
|
18
19
|
import Header from "./Components/Header/Header";
|
|
19
20
|
import HeaderActions from "./Components/Header/HeaderActions";
|
|
@@ -57,5 +58,6 @@ import PhoneNumberInput from "./Components/Input/PhoneNumberInput";
|
|
|
57
58
|
import { InputSwitch } from "./Components/Input/Switch/InputSwitch";
|
|
58
59
|
import PaymentCard from "./Components/Card/PaymentCard/PaymentCard";
|
|
59
60
|
import ApexLineChart from "./Components/Apexcharts/ApexLineChart/ApexLineChart";
|
|
60
|
-
|
|
61
|
+
import Notification from "./Components/Notification/Notification";
|
|
62
|
+
export { Accordian, AlertDialog, ApexBarChart, ApexPieChart, ApexPolarChart, ApexLineChart, Breadcrumbs, Button, ButtonGroupIcon, Card, Checkbox, ContactForm, DatePicker, Drawer, DrawerHeader, DrawerBody, DrawerFooter, Dropdown, Editor, FileUpload, FileUploader, FormWrapper, Header, HeaderActions, InputTextArea, InputSwitch, KanbanBoard, Loading, Modal, ModalHeader, ModalBody, ModalFooter, NavigationBar, Notification, NoteTextArea, MultiSelect, NumberInput, PaymentCard, PhoneNumberInput, PinInput, ProductCard, ProductDetails, ProfileCard, ProfileCardHeader, ProfileCardBody, ProfileCardFooter, ProfilePhotoViewer, ProgressBar, RadioButton, RadioButtonGroup, Reorder, Search, Select, SearchSelect, SelectSearch, SideBar, Slider, Skeletons, Switch, Table, TableToggle, Tag, TextInput, Timeline, Toaster, ToolTip, useToaster, VerifyEmailOtp, useCustomTheme, ThemesList, debounce, };
|
|
61
63
|
export default withTheme;
|
package/dist/index.js
CHANGED
|
@@ -27,8 +27,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.
|
|
31
|
-
exports.debounce = exports.ThemesList = exports.useCustomTheme = exports.VerifyEmailOtp = exports.useToaster = exports.ToolTip = exports.Toaster = exports.Timeline = exports.TextInput = exports.Tag = exports.TableToggle = exports.Table = exports.Switch = exports.Skeletons = exports.Slider = exports.SideBar = exports.SelectSearch = exports.SearchSelect = exports.Select = void 0;
|
|
30
|
+
exports.RadioButtonGroup = exports.RadioButton = exports.ProgressBar = exports.ProfilePhotoViewer = exports.ProfileCardFooter = exports.ProfileCardBody = exports.ProfileCardHeader = exports.ProfileCard = exports.ProductDetails = exports.ProductCard = exports.PinInput = exports.PhoneNumberInput = exports.PaymentCard = exports.NumberInput = exports.MultiSelect = exports.NoteTextArea = exports.Notification = exports.NavigationBar = exports.ModalFooter = exports.ModalBody = exports.ModalHeader = exports.Modal = exports.Loading = exports.KanbanBoard = exports.InputSwitch = exports.InputTextArea = exports.HeaderActions = exports.Header = exports.FormWrapper = exports.FileUploader = exports.FileUpload = exports.Editor = exports.Dropdown = exports.DrawerFooter = exports.DrawerBody = exports.DrawerHeader = exports.Drawer = exports.DatePicker = exports.ContactForm = exports.Checkbox = exports.Card = exports.ButtonGroupIcon = exports.Button = exports.Breadcrumbs = exports.ApexLineChart = exports.ApexPolarChart = exports.ApexPieChart = exports.ApexBarChart = exports.AlertDialog = exports.Accordian = void 0;
|
|
31
|
+
exports.debounce = exports.ThemesList = exports.useCustomTheme = exports.VerifyEmailOtp = exports.useToaster = exports.ToolTip = exports.Toaster = exports.Timeline = exports.TextInput = exports.Tag = exports.TableToggle = exports.Table = exports.Switch = exports.Skeletons = exports.Slider = exports.SideBar = exports.SelectSearch = exports.SearchSelect = exports.Select = exports.Search = exports.Reorder = void 0;
|
|
32
32
|
var Accordion_1 = __importDefault(require("./Components/Accordion/Accordion"));
|
|
33
33
|
exports.Accordian = Accordion_1.default;
|
|
34
34
|
var AlertDialog_1 = __importDefault(require("./Components/AlertDialog/AlertDialog"));
|
|
@@ -64,6 +64,8 @@ var Editor_1 = __importDefault(require("./Components/Editor/Editor"));
|
|
|
64
64
|
exports.Editor = Editor_1.default;
|
|
65
65
|
var FileUpload_1 = __importDefault(require("./Components/FileUpload/FileUpload"));
|
|
66
66
|
exports.FileUpload = FileUpload_1.default;
|
|
67
|
+
var FileUploader_1 = __importDefault(require("./Components/FileUploader/FileUploader"));
|
|
68
|
+
exports.FileUploader = FileUploader_1.default;
|
|
67
69
|
var FormWrapper_1 = __importDefault(require("./Components/Form/FormWrapper"));
|
|
68
70
|
exports.FormWrapper = FormWrapper_1.default;
|
|
69
71
|
var Header_1 = __importDefault(require("./Components/Header/Header"));
|
|
@@ -157,4 +159,6 @@ var PaymentCard_1 = __importDefault(require("./Components/Card/PaymentCard/Payme
|
|
|
157
159
|
exports.PaymentCard = PaymentCard_1.default;
|
|
158
160
|
var ApexLineChart_1 = __importDefault(require("./Components/Apexcharts/ApexLineChart/ApexLineChart"));
|
|
159
161
|
exports.ApexLineChart = ApexLineChart_1.default;
|
|
162
|
+
var Notification_1 = __importDefault(require("./Components/Notification/Notification"));
|
|
163
|
+
exports.Notification = Notification_1.default;
|
|
160
164
|
exports.default = withTheme_1.default;
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import React from 'react';
|
|
3
|
-
// import { StoryFn, Meta } from '@storybook/react';
|
|
4
|
-
// import ApexBarChart from './ApexBarChart';
|
|
5
|
-
// import { ApexBarChartProps } from './ApexBarChartProps';
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { ApexDonutChartProps } from "./ApexDonutChartProps";
|
|
3
|
-
declare const ApexDonutChart: ({ data, labels, title, titlePosition, height, width, donutColors, chartColor, titleStyle, legendStyle, }: ApexDonutChartProps) => React.JSX.Element;
|
|
4
|
-
export default ApexDonutChart;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
var react_1 = __importDefault(require("react"));
|
|
18
|
-
var react_apexcharts_1 = __importDefault(require("react-apexcharts"));
|
|
19
|
-
var ApexDonutChart = function (_a) {
|
|
20
|
-
var _b;
|
|
21
|
-
var data = _a.data, labels = _a.labels, title = _a.title, _c = _a.titlePosition, titlePosition = _c === void 0 ? "center" : _c, _d = _a.height, height = _d === void 0 ? 400 : _d, _e = _a.width, width = _e === void 0 ? 500 : _e, donutColors = _a.donutColors, chartColor = _a.chartColor, _f = _a.titleStyle, titleStyle = _f === void 0 ? {
|
|
22
|
-
color: "#3182ce",
|
|
23
|
-
fontSize: "16px",
|
|
24
|
-
fontWeight: 600,
|
|
25
|
-
fontFamily: "Arial",
|
|
26
|
-
} : _f, _g = _a.legendStyle, legendStyle = _g === void 0 ? {
|
|
27
|
-
colors: "#000",
|
|
28
|
-
position: "bottom",
|
|
29
|
-
useSeriesColors: false,
|
|
30
|
-
} : _g;
|
|
31
|
-
var options = {
|
|
32
|
-
chart: {
|
|
33
|
-
type: "donut",
|
|
34
|
-
},
|
|
35
|
-
labels: labels,
|
|
36
|
-
colors: (_b = chartColor !== null && chartColor !== void 0 ? chartColor : donutColors) !== null && _b !== void 0 ? _b : ["#3182ce", "#e53e3e", "#38a169", "#dd6b20"],
|
|
37
|
-
legend: {
|
|
38
|
-
position: legendStyle.position,
|
|
39
|
-
labels: {
|
|
40
|
-
colors: legendStyle.colors,
|
|
41
|
-
useSeriesColors: legendStyle.useSeriesColors,
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
title: {
|
|
45
|
-
text: title,
|
|
46
|
-
align: titlePosition,
|
|
47
|
-
style: __assign(__assign({}, titleStyle), { fontSize: (titleStyle === null || titleStyle === void 0 ? void 0 : titleStyle.fontSize)
|
|
48
|
-
? String(titleStyle.fontSize) // ✅ ensures string if number passed
|
|
49
|
-
: undefined }),
|
|
50
|
-
},
|
|
51
|
-
dataLabels: {
|
|
52
|
-
enabled: true,
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
return (react_1.default.createElement("div", null,
|
|
56
|
-
react_1.default.createElement(react_apexcharts_1.default, { options: options, series: data, type: "donut", height: height, width: width })));
|
|
57
|
-
};
|
|
58
|
-
exports.default = ApexDonutChart;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export type ApexDonutChartProps = {
|
|
2
|
-
data: number[];
|
|
3
|
-
labels: string[];
|
|
4
|
-
title?: string;
|
|
5
|
-
titlePosition?: "left" | "center" | "right";
|
|
6
|
-
height?: number;
|
|
7
|
-
width?: number;
|
|
8
|
-
donutColors?: string[];
|
|
9
|
-
chartColor?: string[];
|
|
10
|
-
titleStyle?: {
|
|
11
|
-
color?: string;
|
|
12
|
-
fontSize?: string | number;
|
|
13
|
-
fontWeight?: number | string;
|
|
14
|
-
fontFamily?: string;
|
|
15
|
-
};
|
|
16
|
-
legendStyle?: {
|
|
17
|
-
colors?: string | string[];
|
|
18
|
-
useSeriesColors?: boolean;
|
|
19
|
-
position?: "top" | "right" | "bottom" | "left";
|
|
20
|
-
};
|
|
21
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import React from 'react';
|
|
3
|
-
// import { StoryFn, Meta } from '@storybook/react';
|
|
4
|
-
// import ApexPieChart from './ApexPieChart';
|
|
5
|
-
// import { ApexPieChartProps } from './ApexPieChartProps';
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import React from "react";
|
|
3
|
-
// import type { Meta, StoryObj } from "@storybook/react/*";
|
|
4
|
-
// import { InputTextAreaProps } from "./InputTextAreaProps";
|
|
5
|
-
// import InputTextArea from "./InputTextArea";
|
|
6
|
-
// import { useState } from "react";
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
type CustomHeaderProps = {
|
|
3
|
-
column: any;
|
|
4
|
-
onSortChange?: (sortState: string, columnName: string) => void;
|
|
5
|
-
menuItems?: Array<{
|
|
6
|
-
label: string;
|
|
7
|
-
onClick: () => void;
|
|
8
|
-
submenu?: any[];
|
|
9
|
-
}>;
|
|
10
|
-
isSort?: boolean;
|
|
11
|
-
sortDirection: string;
|
|
12
|
-
};
|
|
13
|
-
declare const CustomHeader: React.MemoExoticComponent<({ column, onSortChange, menuItems, isSort, sortDirection, }: CustomHeaderProps) => React.JSX.Element>;
|
|
14
|
-
export default CustomHeader;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
var react_1 = __importStar(require("react"));
|
|
27
|
-
var react_2 = require("@chakra-ui/react");
|
|
28
|
-
var bs_1 = require("react-icons/bs");
|
|
29
|
-
var fa_1 = require("react-icons/fa");
|
|
30
|
-
var useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
31
|
-
var CustomHeader = (0, react_1.memo)(function (_a) {
|
|
32
|
-
var column = _a.column, onSortChange = _a.onSortChange, menuItems = _a.menuItems, isSort = _a.isSort, sortDirection = _a.sortDirection;
|
|
33
|
-
var handleSortClick = (0, react_1.useCallback)(function () {
|
|
34
|
-
var sortOrder = "none";
|
|
35
|
-
if (sortDirection === "none")
|
|
36
|
-
sortOrder = "asc";
|
|
37
|
-
else if (sortDirection === "asc")
|
|
38
|
-
sortOrder = "desc";
|
|
39
|
-
onSortChange === null || onSortChange === void 0 ? void 0 : onSortChange(sortOrder, column.key);
|
|
40
|
-
}, [sortDirection, column.key, onSortChange]);
|
|
41
|
-
return (react_1.default.createElement(react_2.Box, { display: "flex", justifyContent: "space-between", alignItems: "center" },
|
|
42
|
-
react_1.default.createElement(react_2.Box, { fontWeight: "bold" }, column.title),
|
|
43
|
-
react_1.default.createElement(react_2.Flex, { alignItems: "center" },
|
|
44
|
-
isSort && (react_1.default.createElement(SortingIcon, { sortState: sortDirection, handleSortClick: handleSortClick })),
|
|
45
|
-
menuItems && (menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) ? (react_1.default.createElement(react_2.Menu, null,
|
|
46
|
-
react_1.default.createElement(react_2.MenuButton, { as: react_2.IconButton, "aria-label": "Options", icon: react_1.default.createElement(bs_1.BsThreeDots, null), size: "sm", variant: "ghost", _hover: { bg: "none" }, _active: { bg: "none" } }),
|
|
47
|
-
react_1.default.createElement(react_2.Portal, null,
|
|
48
|
-
react_1.default.createElement(react_2.MenuList, null, menuItems.map(function (item, index) { return (react_1.default.createElement(react_1.default.Fragment, { key: index },
|
|
49
|
-
react_1.default.createElement(react_2.MenuItem, { onClick: function () { return item === null || item === void 0 ? void 0 : item.onClick(); } }, item.label),
|
|
50
|
-
item.submenu && react_1.default.createElement(Submenu, { items: item.submenu }))); }))))) : null)));
|
|
51
|
-
});
|
|
52
|
-
var SortingIcon = (0, react_1.memo)(function (_a) {
|
|
53
|
-
var sortState = _a.sortState, handleSortClick = _a.handleSortClick;
|
|
54
|
-
var theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
55
|
-
return (react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", justifyContent: "center", bg: theme.colors.white, borderRadius: "full", cursor: "pointer", w: "24px", h: "24px", onClick: handleSortClick, transition: "transform 0.2s ease-in-out", _hover: { transform: "scale(1.1)" } },
|
|
56
|
-
sortState === "none" && react_1.default.createElement(fa_1.FaSort, { size: 14 }),
|
|
57
|
-
sortState === "asc" && react_1.default.createElement(fa_1.FaCaretUp, { size: 14 }),
|
|
58
|
-
sortState === "desc" && react_1.default.createElement(fa_1.FaCaretDown, { size: 14 })));
|
|
59
|
-
});
|
|
60
|
-
var Submenu = (0, react_1.memo)(function (_a) {
|
|
61
|
-
var items = _a.items;
|
|
62
|
-
return (react_1.default.createElement(react_2.MenuGroup, null, items.map(function (subItem, index) { return (react_1.default.createElement(react_2.MenuItem, { key: index, onClick: function () { return (subItem === null || subItem === void 0 ? void 0 : subItem.onClick) && (subItem === null || subItem === void 0 ? void 0 : subItem.onClick()); }, sx: {
|
|
63
|
-
pl: 6,
|
|
64
|
-
fontSize: "sm",
|
|
65
|
-
color: "gray.600",
|
|
66
|
-
_hover: { bg: "gray.100", color: "gray.800" }, // Hover styles
|
|
67
|
-
} }, subItem.label)); })));
|
|
68
|
-
});
|
|
69
|
-
exports.default = CustomHeader;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import * as TableEnums from "ka-table/enums";
|
|
3
|
-
import * as TableProps from "ka-table/props";
|
|
4
|
-
import * as TableActionCreator from "ka-table/actionCreators";
|
|
5
|
-
import * as TableModel from "ka-table/models";
|
|
6
|
-
import * as TableUtils from "ka-table/utils";
|
|
7
|
-
import * as TableFun from "ka-table";
|
|
8
|
-
import "ka-table/style.css";
|
|
9
|
-
import "./ka-table.css";
|
|
10
|
-
import { KaTableProps } from "./KaTableProps";
|
|
11
|
-
declare const _default: React.MemoExoticComponent<({ columns, data, rowKey, Edit, format, filter, childComponents, columnReorder, columnResizing, editableCells, validation, loading, checkSelect, onRowClick, onSelectionChange, selected, columnVisibility, headerBgColor, freezedBgColor, headerTextColor, freezedTextColor, }: KaTableProps) => React.JSX.Element>;
|
|
12
|
-
export default _default;
|
|
13
|
-
export { TableEnums, TableActionCreator, TableProps, TableModel, TableUtils, TableFun, };
|