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.
Files changed (39) hide show
  1. package/dist/Components/AlertDialog/AlertDialog.js +2 -2
  2. package/dist/Components/FileUploader/FileUploader.d.ts +4 -0
  3. package/dist/Components/FileUploader/FileUploader.js +146 -0
  4. package/dist/Components/FileUploader/FileUploaderProps.d.ts +13 -0
  5. package/dist/Components/MultiSelect/MultiSelect.js +1 -1
  6. package/dist/Components/Notification/Notification.d.ts +4 -0
  7. package/dist/Components/Notification/Notification.js +131 -0
  8. package/dist/Components/Notification/NotificationProps.d.ts +16 -0
  9. package/dist/index.d.ts +3 -1
  10. package/dist/index.js +6 -2
  11. package/package.json +1 -1
  12. package/dist/Components/Apexcharts/ApexBarChart/ApexBarChart.stories.d.ts +0 -1
  13. package/dist/Components/Apexcharts/ApexBarChart/ApexBarChart.stories.js +0 -6
  14. package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChart.d.ts +0 -4
  15. package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChart.js +0 -58
  16. package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChartProps.d.ts +0 -21
  17. package/dist/Components/Apexcharts/ApexPieChart/ApexPieChart.stories.d.ts +0 -1
  18. package/dist/Components/Apexcharts/ApexPieChart/ApexPieChart.stories.js +0 -6
  19. package/dist/Components/InputTextArea/InputTextArea.stories.d.ts +0 -1
  20. package/dist/Components/InputTextArea/InputTextArea.stories.js +0 -7
  21. package/dist/Components/KaTable/CustomHeader.d.ts +0 -14
  22. package/dist/Components/KaTable/CustomHeader.js +0 -69
  23. package/dist/Components/KaTable/KaTable.d.ts +0 -13
  24. package/dist/Components/KaTable/KaTable.js +0 -111
  25. package/dist/Components/KaTable/KaTableProps.d.ts +0 -23
  26. package/dist/Components/KaTable/SelectionCell.d.ts +0 -8
  27. package/dist/Components/KaTable/SelectionCell.js +0 -38
  28. package/dist/Components/KaTable/SelectionHeader.d.ts +0 -3
  29. package/dist/Components/KaTable/SelectionHeader.js +0 -56
  30. package/dist/Components/KaTable/ka-table.css +0 -27
  31. package/dist/Components/KaTable/useMergedChildComponents.d.ts +0 -14
  32. package/dist/Components/KaTable/useMergedChildComponents.js +0 -224
  33. package/dist/Components/NumberInput/NumberInput.stories.d.ts +0 -1
  34. package/dist/Components/NumberInput/NumberInput.stories.js +0 -5
  35. package/dist/Components/Table/Table.css +0 -16
  36. package/dist/Theme/Default/fonts.d.ts +0 -35
  37. package/dist/Theme/Default/fonts.js +0 -37
  38. /package/dist/Components/{Apexcharts/ApexDonutChart/ApexDonutChartProps.js → FileUploader/FileUploaderProps.js} +0 -0
  39. /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: confirmButtonColor, onClick: onConfirm, isLoading: isConfirmLoading, ml: 3, size: "sm", sx: button2Style }, confirmButtonText)))));
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,4 @@
1
+ import React from "react";
2
+ import { FileUploaderProps } from "./FileUploaderProps";
3
+ declare const FileUploader: React.FC<FileUploaderProps>;
4
+ export default FileUploader;
@@ -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: "blue" },
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,4 @@
1
+ import React from "react";
2
+ import { NotificationProps } from "./NotificationProps";
3
+ declare const Notification: React.FC<NotificationProps>;
4
+ export default Notification;
@@ -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
- export { Accordian, AlertDialog, ApexBarChart, ApexPieChart, ApexPolarChart, ApexLineChart, Breadcrumbs, Button, ButtonGroupIcon, Card, Checkbox, ContactForm, DatePicker, Drawer, DrawerHeader, DrawerBody, DrawerFooter, Dropdown, Editor, FileUpload, FormWrapper, Header, HeaderActions, InputTextArea, InputSwitch, KanbanBoard, Loading, Modal, ModalHeader, ModalBody, ModalFooter, NavigationBar, 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
+ 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.Search = exports.Reorder = 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.NavigationBar = exports.ModalFooter = exports.ModalBody = exports.ModalHeader = exports.Modal = exports.Loading = exports.KanbanBoard = exports.InputSwitch = exports.InputTextArea = exports.HeaderActions = exports.Header = exports.FormWrapper = 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 = 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,6 +1,6 @@
1
1
  {
2
2
  "name": "pixelize-design-library",
3
- "version": "2.2.16",
3
+ "version": "2.2.17",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -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,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,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, };