pixelize-design-library 1.1.27 → 1.1.28

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.
@@ -19,6 +19,7 @@ export type ButtonGroupIconProps = {
19
19
  dropdownOptions?: {
20
20
  label: string;
21
21
  id: string | number;
22
+ image?: ReactElement | undefined;
22
23
  }[];
23
24
  onDropdownOptionClick?: (event: React.MouseEvent, option: {
24
25
  label: string;
@@ -66,7 +66,9 @@ function ButtonGroupIcon(_a) {
66
66
  },
67
67
  } }),
68
68
  react_1.default.createElement(react_2.Portal, null,
69
- react_1.default.createElement(react_2.MenuList, { style: menulistStyle }, dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map(function (option, index) { return (react_1.default.createElement(react_2.MenuItem, { key: index, onClick: function (event) { return handleMenuClick(event, option); }, style: menuItemStyle }, option.label)); }))))) : rightIcon && (react_1.default.createElement(react_2.IconButton, { "aria-label": "Right icon button", icon: rightIcon, onClick: onRightIconClick, onBlur: onBlurRightIcon, style: buttonGroupRightIconStyle, sx: {
69
+ react_1.default.createElement(react_2.MenuList, { style: menulistStyle }, dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map(function (option, index) { return (react_1.default.createElement(react_2.MenuItem, { key: index, onClick: function (event) { return handleMenuClick(event, option); }, style: menuItemStyle }, option === null || option === void 0 ? void 0 :
70
+ option.image,
71
+ option.label)); }))))) : rightIcon && (react_1.default.createElement(react_2.IconButton, { "aria-label": "Right icon button", icon: rightIcon, onClick: onRightIconClick, onBlur: onBlurRightIcon, style: buttonGroupRightIconStyle, sx: {
70
72
  backgroundColor: theme.colors.primary[500],
71
73
  "&:hover": {
72
74
  backgroundColor: theme.colors.primary[400],
@@ -29,10 +29,10 @@ var bs_1 = require("react-icons/bs");
29
29
  var fa_1 = require("react-icons/fa");
30
30
  var CustomHeader = function (_a) {
31
31
  var column = _a.column, onSortChange = _a.onSortChange, onMenuItemClick = _a.onMenuItemClick, menuItems = _a.menuItems, columnVisibility = _a.columnVisibility;
32
- // console.log(columnVisibility, "columnVisibility");
33
32
  var _b = (0, react_1.useState)(false), isSubmenuOpen = _b[0], setSubmenuOpen = _b[1];
34
33
  var _c = (0, react_1.useState)(null), submenuPosition = _c[0], setSubmenuPosition = _c[1];
35
- var _d = (0, react_2.useDisclosure)(), isOpen = _d.isOpen, onOpen = _d.onOpen, onClose = _d.onClose;
34
+ var _d = (0, react_1.useState)("none"), sortState = _d[0], setSortState = _d[1];
35
+ var _e = (0, react_2.useDisclosure)(), isOpen = _e.isOpen, onOpen = _e.onOpen, onClose = _e.onClose;
36
36
  var filterButtonRef = (0, react_1.useRef)(null);
37
37
  var handleSubmenuToggle = function (e) {
38
38
  e.stopPropagation();
@@ -45,19 +45,14 @@ var CustomHeader = function (_a) {
45
45
  (rect.bottom - rect.top),
46
46
  left: rect.x - (rect.x - 220) * (rect.width / rect.width),
47
47
  });
48
- // setSubmenuPosition({
49
- // top: rect.bottom,
50
- // left: rect.right,
51
- // });
52
48
  }
53
49
  };
54
50
  var handleMenuItemClick = function (action) {
55
51
  if (onMenuItemClick) {
56
- onMenuItemClick(action, column.title);
52
+ onMenuItemClick(action, column);
57
53
  }
58
54
  setSubmenuOpen(false);
59
55
  };
60
- var _e = (0, react_1.useState)("none"), sortState = _e[0], setSortState = _e[1];
61
56
  var handleSortClick = function () {
62
57
  setSortState(function (prevState) {
63
58
  var newState = prevState === "none" ? "asc" : prevState === "asc" ? "desc" : "none";
@@ -109,409 +104,3 @@ var CustomHeader = function (_a) {
109
104
  react_1.default.createElement(fa_1.FaCaretDown, { color: "black", size: 16 }))))))));
110
105
  };
111
106
  exports.default = CustomHeader;
112
- // import React, { useState, useRef } from "react";
113
- // import {
114
- // Box,
115
- // IconButton,
116
- // Menu,
117
- // MenuButton,
118
- // MenuList,
119
- // MenuItem,
120
- // Portal,
121
- // MenuDivider,
122
- // MenuGroup,
123
- // Flex,
124
- // useDisclosure,
125
- // } from "@chakra-ui/react";
126
- // import { BsThreeDots } from "react-icons/bs";
127
- // import { FaCaretDown, FaCaretUp, FaSort } from "react-icons/fa";
128
- // import { FiInfo } from "react-icons/fi";
129
- // const CustomHeader = ({ column, onSortChange, onMenuItemClick,menuItems }: any) => {
130
- // const [isSubmenuOpen, setSubmenuOpen] = useState(false);
131
- // const [submenuPosition, setSubmenuPosition] = useState<{
132
- // top: number;
133
- // left: number;
134
- // } | null>(null);
135
- // const { isOpen, onOpen, onClose } = useDisclosure();
136
- // const filterButtonRef = useRef<HTMLButtonElement | null>(null);
137
- // const handleSubmenuToggle = (e: React.MouseEvent) => {
138
- // e.stopPropagation();
139
- // setSubmenuOpen((prev) => !prev);
140
- // if (filterButtonRef.current) {
141
- // const rect = filterButtonRef.current.getBoundingClientRect();
142
- // setSubmenuPosition({
143
- // top:
144
- // rect.bottom -
145
- // ((rect.bottom - rect.top) * (rect.bottom - 35)) /
146
- // (rect.bottom - rect.top),
147
- // left: rect.x - (rect.x - 320) * (rect.width / rect.width),
148
- // });
149
- // }
150
- // };
151
- // const handleMenuItemClick = (action: string) => {
152
- // if (onMenuItemClick) {
153
- // onMenuItemClick(action, column.title);
154
- // }
155
- // setSubmenuOpen(false);
156
- // };
157
- // const [sortState, setSortState] = useState<"none" | "asc" | "desc">("none");
158
- // const handleSortClick = () => {
159
- // setSortState((prevState) => {
160
- // const newState =
161
- // prevState === "none" ? "asc" : prevState === "asc" ? "desc" : "none";
162
- // if (onSortChange) {
163
- // onSortChange(newState, column.title);
164
- // }
165
- // return newState;
166
- // });
167
- // };
168
- // return (
169
- // <div onMouseEnter={onOpen} onMouseLeave={onClose}>
170
- // <Box
171
- // style={{
172
- // display: "flex",
173
- // justifyContent: "space-between",
174
- // alignItems: "center",
175
- // }}
176
- // >
177
- // <Box sx={{ fontWeight: "bold" }}>{column.title}</Box>
178
- // <Box
179
- // style={{
180
- // display: "flex",
181
- // justifyContent: "space-between",
182
- // alignItems: "center",
183
- // }}
184
- // >
185
- // <FiInfo />
186
- // <Menu>
187
- // {isOpen && (
188
- // <MenuButton
189
- // ref={filterButtonRef}
190
- // as={IconButton}
191
- // aria-label="More options"
192
- // icon={<BsThreeDots />}
193
- // size="sm"
194
- // variant="ghost"
195
- // sx={{
196
- // _hover: {
197
- // background: "none",
198
- // },
199
- // _active: {
200
- // background: "none",
201
- // },
202
- // }}
203
- // />
204
- // )}
205
- // <Portal>
206
- // <MenuList
207
- // sx={{
208
- // boxShadow: "0px 0px 20px 11px rgba(0, 0, 0, 0.1)",
209
- // borderRadius: "8px",
210
- // padding: "8px",
211
- // backgroundColor: "white",
212
- // }}
213
- // onMouseLeave={onClose}
214
- // >
215
- // <MenuItem onClick={() => handleMenuItemClick("Sort")}>
216
- // Sort
217
- // </MenuItem>
218
- // <MenuItem onClick={() => handleMenuItemClick("Hide column")}>
219
- // Hide column
220
- // </MenuItem>
221
- // {/* Main menu item with submenu toggle */}
222
- // <MenuItem closeOnSelect={false} onClick={handleSubmenuToggle}>
223
- // Filter
224
- // </MenuItem>
225
- // {/* Submenu */}
226
- // {isSubmenuOpen && submenuPosition && (
227
- // <Box
228
- // position="absolute"
229
- // top={submenuPosition.top}
230
- // left={submenuPosition.left}
231
- // transform="translateX(-50%)"
232
- // zIndex={1}
233
- // boxShadow="0px 0px 20px 11px rgba(0, 0, 0, 0.1)"
234
- // borderRadius="8px"
235
- // backgroundColor="white"
236
- // padding="8px"
237
- // width={"200px"} // Set a fixed width or adjust as needed
238
- // >
239
- // <MenuGroup onMouseLeave={onClose}>
240
- // <MenuItem
241
- // closeOnSelect={true}
242
- // onClick={() => handleMenuItemClick("Filter by Date")}
243
- // >
244
- // Filter by Date
245
- // </MenuItem>
246
- // <MenuItem
247
- // closeOnSelect={true}
248
- // onClick={() => handleMenuItemClick("Filter by Name")}
249
- // >
250
- // Filter by Name
251
- // </MenuItem>
252
- // <MenuItem
253
- // closeOnSelect={true}
254
- // onClick={() => handleMenuItemClick("Filter by Status")}
255
- // >
256
- // Filter by Status
257
- // </MenuItem>
258
- // </MenuGroup>
259
- // </Box>
260
- // )}
261
- // <MenuDivider />
262
- // <MenuItem onClick={() => handleMenuItemClick("Other Options")}>
263
- // Other Options
264
- // </MenuItem>
265
- // </MenuList>
266
- // </Portal>
267
- // </Menu>
268
- // </Box>
269
- // </Box>
270
- // <Box sx={{ position: "absolute", right: 20, top: 0 }}>
271
- // {isOpen && (
272
- // <Flex alignItems="center">
273
- // <Box
274
- // display="flex"
275
- // alignItems="center"
276
- // backgroundColor="white"
277
- // padding={sortState === "asc" ? "1px" : "2px"}
278
- // borderRadius="10px"
279
- // flexDirection={"column"}
280
- // width={"20px"}
281
- // height={"20px"}
282
- // onClick={handleSortClick}
283
- // cursor="pointer"
284
- // boxShadow="0px 0px 20px 11px rgba(0, 0, 0, 0.1)"
285
- // transition="transform 0.2s ease-in-out"
286
- // _hover={{ transform: "scale(1.1)" }}
287
- // >
288
- // <Box
289
- // transition="opacity 0.2s ease-in-out"
290
- // opacity={sortState === "none" ? 1 : 0}
291
- // position="absolute"
292
- // >
293
- // <FaSort color="black" size={16} />
294
- // </Box>
295
- // <Box
296
- // transition="opacity 0.2s ease-in-out"
297
- // opacity={sortState === "asc" ? 1 : 0}
298
- // position="absolute"
299
- // >
300
- // <FaCaretUp color="black" size={16} />
301
- // </Box>
302
- // <Box
303
- // transition="opacity 0.2s ease-in-out"
304
- // opacity={sortState === "desc" ? 1 : 0}
305
- // position="absolute"
306
- // >
307
- // <FaCaretDown color="black" size={16} />
308
- // </Box>
309
- // </Box>
310
- // </Flex>
311
- // )}
312
- // </Box>
313
- // </div>
314
- // );
315
- // };
316
- // export default CustomHeader;
317
- // import React, { useState, useRef } from "react";
318
- // import {
319
- // Box,
320
- // IconButton,
321
- // Menu,
322
- // MenuButton,
323
- // MenuList,
324
- // MenuItem,
325
- // Portal,
326
- // MenuDivider,
327
- // MenuGroup,
328
- // Flex,
329
- // useDisclosure,
330
- // } from "@chakra-ui/react";
331
- // import { BsThreeDots } from "react-icons/bs";
332
- // import { FaCaretDown, FaCaretUp, FaSort } from "react-icons/fa";
333
- // import { FiInfo } from "react-icons/fi";
334
- // const CustomHeader = ({ column }: any) => {
335
- // const [isSubmenuOpen, setSubmenuOpen] = useState(false);
336
- // const [submenuPosition, setSubmenuPosition] = useState<{
337
- // top: number;
338
- // left: number;
339
- // } | null>(null);
340
- // const { isOpen, onOpen, onClose } = useDisclosure();
341
- // const filterButtonRef = useRef<HTMLButtonElement | null>(null);
342
- // const handleSubmenuToggle = (e: React.MouseEvent) => {
343
- // e.stopPropagation();
344
- // setSubmenuOpen((prev) => !prev);
345
- // if (filterButtonRef.current) {
346
- // const rect = filterButtonRef.current.getBoundingClientRect();
347
- // console.log(rect);
348
- // setSubmenuPosition({
349
- // top:
350
- // rect.bottom -
351
- // ((rect.bottom - rect.top) * (rect.bottom - 35)) /
352
- // (rect.bottom - rect.top),
353
- // left: rect.x - (rect.x - 320) * (rect.width / rect.width),
354
- // });
355
- // }
356
- // };
357
- // const handleMenuItemClick = (action: string) => {
358
- // console.log(action, "menuitem");
359
- // setSubmenuOpen(false);
360
- // };
361
- // const [sortState, setSortState] = useState<"none" | "asc" | "desc">("none");
362
- // const handleSortClick = () => {
363
- // setSortState((prevState) => {
364
- // if (prevState === "none") return "asc";
365
- // if (prevState === "asc") return "desc";
366
- // return "none";
367
- // });
368
- // };
369
- // return (
370
- // <div onMouseEnter={onOpen} onMouseLeave={onClose}>
371
- // <Box
372
- // style={{
373
- // display: "flex",
374
- // justifyContent: "space-between",
375
- // alignItems: "center",
376
- // }}
377
- // >
378
- // <Box sx={{ fontWeight: "bold" }}>{column.title}</Box>
379
- // <Box
380
- // style={{
381
- // display: "flex",
382
- // justifyContent: "space-between",
383
- // alignItems: "center",
384
- // }}
385
- // >
386
- // <FiInfo />
387
- // <Menu>
388
- // {isOpen && (
389
- // <MenuButton
390
- // ref={filterButtonRef}
391
- // as={IconButton}
392
- // aria-label="More options"
393
- // icon={<BsThreeDots />}
394
- // size="sm"
395
- // variant="ghost"
396
- // sx={{
397
- // _hover: {
398
- // background: "none",
399
- // },
400
- // _active: {
401
- // background: "none",
402
- // },
403
- // }}
404
- // />
405
- // )}
406
- // <Portal>
407
- // <MenuList
408
- // sx={{
409
- // boxShadow: "0px 0px 20px 11px rgba(0, 0, 0, 0.1)",
410
- // borderRadius: "8px",
411
- // padding: "8px",
412
- // backgroundColor: "white",
413
- // }}
414
- // onMouseLeave={onClose}
415
- // >
416
- // <MenuItem onClick={() => handleMenuItemClick("Sort")}>
417
- // Sort
418
- // </MenuItem>
419
- // <MenuItem onClick={() => handleMenuItemClick("Hide column")}>
420
- // Hide column
421
- // </MenuItem>
422
- // {/* Main menu item with submenu toggle */}
423
- // <MenuItem closeOnSelect={false} onClick={handleSubmenuToggle}>
424
- // Filter
425
- // </MenuItem>
426
- // {/* Submenu */}
427
- // {isSubmenuOpen && submenuPosition && (
428
- // <Box
429
- // position="absolute"
430
- // top={submenuPosition.top}
431
- // left={submenuPosition.left}
432
- // transform="translateX(-50%)"
433
- // zIndex={1}
434
- // boxShadow="0px 0px 20px 11px rgba(0, 0, 0, 0.1)"
435
- // borderRadius="8px"
436
- // backgroundColor="white"
437
- // padding="8px"
438
- // width={"200px"} // Set a fixed width or adjust as needed
439
- // >
440
- // <MenuGroup onMouseLeave={onClose}>
441
- // <MenuItem
442
- // closeOnSelect={true}
443
- // onClick={() => handleMenuItemClick("Filter by Date")}
444
- // >
445
- // Filter by Date
446
- // </MenuItem>
447
- // <MenuItem
448
- // closeOnSelect={true}
449
- // onClick={() => handleMenuItemClick("Filter by Name")}
450
- // >
451
- // Filter by Name
452
- // </MenuItem>
453
- // <MenuItem
454
- // closeOnSelect={true}
455
- // onClick={() => handleMenuItemClick("Filter by Status")}
456
- // >
457
- // Filter by Status
458
- // </MenuItem>
459
- // </MenuGroup>
460
- // </Box>
461
- // )}
462
- // <MenuDivider />
463
- // <MenuItem onClick={() => handleMenuItemClick("Other Options")}>
464
- // Other Options
465
- // </MenuItem>
466
- // </MenuList>
467
- // </Portal>
468
- // </Menu>
469
- // </Box>
470
- // </Box>
471
- // <Box sx={{ position: "absolute", right: 20, top: 0 }}>
472
- // {isOpen && (
473
- // <Flex alignItems="center">
474
- // <Box
475
- // display="flex"
476
- // alignItems="center"
477
- // backgroundColor="white"
478
- // padding={sortState === "asc" ? "1px" : "2px"}
479
- // borderRadius="10px"
480
- // flexDirection={"column"}
481
- // width={"20px"}
482
- // height={"20px"}
483
- // onClick={handleSortClick}
484
- // cursor="pointer"
485
- // boxShadow="0px 0px 20px 11px rgba(0, 0, 0, 0.1)"
486
- // transition="transform 0.2s ease-in-out"
487
- // _hover={{ transform: "scale(1.1)" }}
488
- // >
489
- // <Box
490
- // transition="opacity 0.2s ease-in-out"
491
- // opacity={sortState === "none" ? 1 : 0}
492
- // position="absolute"
493
- // >
494
- // <FaSort color="black" size={16} />
495
- // </Box>
496
- // <Box
497
- // transition="opacity 0.2s ease-in-out"
498
- // opacity={sortState === "asc" ? 1 : 0}
499
- // position="absolute"
500
- // >
501
- // <FaCaretUp color="black" size={16} />
502
- // </Box>
503
- // <Box
504
- // transition="opacity 0.2s ease-in-out"
505
- // opacity={sortState === "desc" ? 1 : 0}
506
- // position="absolute"
507
- // >
508
- // <FaCaretDown color="black" size={16} />
509
- // </Box>
510
- // </Box>
511
- // </Flex>
512
- // )}
513
- // </Box>
514
- // </div>
515
- // );
516
- // };
517
- // export default CustomHeader;