pixelize-design-library 2.2.198 → 2.3.1-beta.2

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 (150) hide show
  1. package/.claude/settings.local.json +24 -0
  2. package/coverage/clover.xml +638 -0
  3. package/coverage/coverage-final.json +20 -0
  4. package/coverage/lcov-report/Table/CompactSelect.tsx.html +379 -0
  5. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +514 -0
  6. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +373 -0
  7. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +574 -0
  8. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +574 -0
  9. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +1027 -0
  10. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +397 -0
  11. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +1060 -0
  12. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +361 -0
  13. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +337 -0
  14. package/coverage/lcov-report/Table/Components/index.html +266 -0
  15. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +178 -0
  16. package/coverage/lcov-report/Table/Components/useTable.ts.html +778 -0
  17. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +1810 -0
  18. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +178 -0
  19. package/coverage/lcov-report/Table/Table.tsx.html +1567 -0
  20. package/coverage/lcov-report/Table/TableProps.tsx.html +658 -0
  21. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +619 -0
  22. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +229 -0
  23. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +532 -0
  24. package/coverage/lcov-report/Table/TableSettings/index.html +146 -0
  25. package/coverage/lcov-report/Table/TableToDo.tsx.html +973 -0
  26. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +271 -0
  27. package/coverage/lcov-report/Table/filterTypes.ts.html +97 -0
  28. package/coverage/lcov-report/Table/index.html +176 -0
  29. package/coverage/lcov-report/base.css +224 -0
  30. package/coverage/lcov-report/block-navigation.js +87 -0
  31. package/coverage/lcov-report/favicon.png +0 -0
  32. package/coverage/lcov-report/index.html +146 -0
  33. package/coverage/lcov-report/prettify.css +1 -0
  34. package/coverage/lcov-report/prettify.js +2 -0
  35. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  36. package/coverage/lcov-report/sorter.js +210 -0
  37. package/coverage/lcov.info +1836 -0
  38. package/dist/Assets/defaultLogo.tsx +31 -0
  39. package/dist/Components/Button/Button.styles.js +44 -3
  40. package/dist/Components/Button/ButtonProps.d.ts +1 -1
  41. package/dist/Components/ButtonGroupIcon/ButtonGoupIconProps.d.ts +2 -2
  42. package/dist/Components/ButtonGroupIcon/ButtonGroupIcon.js +50 -38
  43. package/dist/Components/Checkbox/Checkbox.js +2 -2
  44. package/dist/Components/Checkbox/Checkbox.styles.js +2 -0
  45. package/dist/Components/Common/FormLabel.d.ts +2 -1
  46. package/dist/Components/Common/FormLabel.js +8 -9
  47. package/dist/Components/Common/fieldStyles.d.ts +22 -0
  48. package/dist/Components/Common/fieldStyles.js +42 -0
  49. package/dist/Components/DatePicker/CalendarPanel.d.ts +2 -0
  50. package/dist/Components/DatePicker/CalendarPanel.js +104 -65
  51. package/dist/Components/DatePicker/RangeDatePicker.js +37 -16
  52. package/dist/Components/DatePicker/SingleDatePicker.js +16 -16
  53. package/dist/Components/DatePicker/TimePicker.js +4 -4
  54. package/dist/Components/Input/Input/Input.d.ts +1 -1
  55. package/dist/Components/Input/Input/Input.js +5 -4
  56. package/dist/Components/Input/Input/InputProps.d.ts +2 -0
  57. package/dist/Components/Input/TextInput.styles.js +2 -1
  58. package/dist/Components/InputTextArea/InputTextArea.style.js +2 -1
  59. package/dist/Components/MultiSelect/MultiSelect.js +11 -12
  60. package/dist/Components/NavigationBar/NavigationBar.d.ts +1 -1
  61. package/dist/Components/NavigationBar/NavigationBar.js +54 -27
  62. package/dist/Components/NavigationBar/NavigationBarProps.d.ts +1 -0
  63. package/dist/Components/NoteTextArea/NoteTextArea.js +44 -40
  64. package/dist/Components/NumberInput/NumberInput.styles.js +2 -1
  65. package/dist/Components/PinInput/PinInput.d.ts +1 -1
  66. package/dist/Components/PinInput/PinInput.js +3 -2
  67. package/dist/Components/PinInput/PinInputProps.d.ts +4 -0
  68. package/dist/Components/RadioButton/RadioButton.js +1 -1
  69. package/dist/Components/SearchSelect/SearchSelect.d.ts +1 -1
  70. package/dist/Components/SearchSelect/SearchSelect.js +3 -3
  71. package/dist/Components/SearchSelect/SearchSelectProps.d.ts +2 -0
  72. package/dist/Components/Select/Select.styles.js +2 -1
  73. package/dist/Components/SelectSearch/SelectSearch.js +7 -4
  74. package/dist/Components/SideBar/SecondaryBar.js +20 -18
  75. package/dist/Components/SideBar/SideBar.d.ts +1 -1
  76. package/dist/Components/SideBar/SideBar.js +58 -43
  77. package/dist/Components/SideBar/SideBarProps.d.ts +14 -3
  78. package/dist/Components/SideBar/components/MenuItemBox.js +28 -24
  79. package/dist/Components/SideBar/components/MenuItems.js +16 -2
  80. package/dist/Components/SideBar/components/MenuPopoverContent.js +16 -16
  81. package/dist/Components/SideBar/components/OtherApps.js +16 -14
  82. package/dist/Components/Table/Table.d.ts +1 -1
  83. package/dist/Components/Table/Table.js +119 -38
  84. package/dist/Components/Table/TableProps.d.ts +34 -2
  85. package/dist/Components/Table/{Components → components}/TableBody.d.ts +5 -1
  86. package/dist/Components/Table/components/TableBody.js +303 -0
  87. package/dist/Components/Table/components/TableGroupRow.d.ts +15 -0
  88. package/dist/Components/Table/components/TableGroupRow.js +27 -0
  89. package/dist/Components/Table/{Components → components}/TableHeader.js +23 -9
  90. package/dist/Components/Table/{LeftFilterPane.js → filters/LeftFilterPane.js} +3 -3
  91. package/dist/Components/Table/{TableSettings → settings}/TableSettings.d.ts +4 -2
  92. package/dist/Components/Table/settings/TableSettings.js +141 -0
  93. package/dist/Theme/Default/palette.d.ts +4 -0
  94. package/dist/Theme/Default/palette.js +3 -0
  95. package/dist/Theme/Emerald/palette.d.ts +4 -0
  96. package/dist/Theme/Emerald/palette.js +2 -1
  97. package/dist/Theme/Meadow/palette.d.ts +4 -0
  98. package/dist/Theme/Meadow/palette.js +2 -1
  99. package/dist/Theme/Radiant/palette.d.ts +4 -0
  100. package/dist/Theme/Radiant/palette.js +2 -1
  101. package/dist/Theme/Rosewood/palette.d.ts +4 -0
  102. package/dist/Theme/Rosewood/palette.js +2 -1
  103. package/dist/Theme/Skyline/palette.d.ts +4 -0
  104. package/dist/Theme/Skyline/palette.js +2 -1
  105. package/dist/Theme/Slate/palette.d.ts +4 -0
  106. package/dist/Theme/Slate/palette.js +2 -1
  107. package/dist/Theme/themeProps.d.ts +4 -0
  108. package/dist/Utils/table.d.ts +21 -0
  109. package/dist/Utils/table.js +98 -14
  110. package/package.json +2 -2
  111. package/dist/Components/Table/Components/TableBody.js +0 -201
  112. package/dist/Components/Table/TableSettings/TableFilters.d.ts +0 -10
  113. package/dist/Components/Table/TableSettings/TableFilters.js +0 -69
  114. package/dist/Components/Table/TableSettings/TableFilters.test.d.ts +0 -1
  115. package/dist/Components/Table/TableSettings/TableFilters.test.js +0 -109
  116. package/dist/Components/Table/TableSettings/TableSettings.js +0 -141
  117. package/dist/Components/Table/TableToDo.d.ts +0 -2
  118. package/dist/Components/Table/TableToDo.js +0 -291
  119. /package/dist/Components/Table/{Components → components}/HeaderActions.d.ts +0 -0
  120. /package/dist/Components/Table/{Components → components}/HeaderActions.js +0 -0
  121. /package/dist/Components/Table/{Components → components}/Pagination.d.ts +0 -0
  122. /package/dist/Components/Table/{Components → components}/Pagination.js +0 -0
  123. /package/dist/Components/Table/{Components → components}/TableActions.d.ts +0 -0
  124. /package/dist/Components/Table/{Components → components}/TableActions.js +0 -0
  125. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.d.ts +0 -0
  126. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.js +0 -0
  127. /package/dist/Components/Table/{Components → components}/TableHeader.d.ts +0 -0
  128. /package/dist/Components/Table/{Components → components}/TableLoading.d.ts +0 -0
  129. /package/dist/Components/Table/{Components → components}/TableLoading.js +0 -0
  130. /package/dist/Components/Table/{Components → components}/TableSearch.d.ts +0 -0
  131. /package/dist/Components/Table/{Components → components}/TableSearch.js +0 -0
  132. /package/dist/Components/Table/{Components → filters}/ActiveFilters.d.ts +0 -0
  133. /package/dist/Components/Table/{Components → filters}/ActiveFilters.js +0 -0
  134. /package/dist/Components/Table/{CompactSelect.d.ts → filters/CompactSelect.d.ts} +0 -0
  135. /package/dist/Components/Table/{CompactSelect.js → filters/CompactSelect.js} +0 -0
  136. /package/dist/Components/Table/{LeftFilterPane.d.ts → filters/LeftFilterPane.d.ts} +0 -0
  137. /package/dist/Components/Table/{SelectOperationControls.d.ts → filters/SelectOperationControls.d.ts} +0 -0
  138. /package/dist/Components/Table/{SelectOperationControls.js → filters/SelectOperationControls.js} +0 -0
  139. /package/dist/Components/Table/{Components → filters}/TableFilters.d.ts +0 -0
  140. /package/dist/Components/Table/{Components → filters}/TableFilters.js +0 -0
  141. /package/dist/Components/Table/{TextOperationControls.d.ts → filters/TextOperationControls.d.ts} +0 -0
  142. /package/dist/Components/Table/{TextOperationControls.js → filters/TextOperationControls.js} +0 -0
  143. /package/dist/Components/Table/{Components → hooks}/useDebounce.d.ts +0 -0
  144. /package/dist/Components/Table/{Components → hooks}/useDebounce.js +0 -0
  145. /package/dist/Components/Table/{Components → hooks}/useTable.d.ts +0 -0
  146. /package/dist/Components/Table/{Components → hooks}/useTable.js +0 -0
  147. /package/dist/Components/Table/{TableSettings → settings}/ManageColumns.d.ts +0 -0
  148. /package/dist/Components/Table/{TableSettings → settings}/ManageColumns.js +0 -0
  149. /package/dist/Components/Table/{TableSettings → settings}/ManageColumns.test.d.ts +0 -0
  150. /package/dist/Components/Table/{TableSettings → settings}/ManageColumns.test.js +0 -0
@@ -1,4 +1,15 @@
1
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
+ };
2
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
@@ -10,48 +21,64 @@ var useCustomTheme_1 = require("../../Theme/useCustomTheme");
10
21
  var lucide_react_1 = require("lucide-react");
11
22
  function NavBar(_a) {
12
23
  var _b, _c, _d, _e;
13
- var userAvathar = _a.userAvathar, userName = _a.userName, navMenu = _a.navMenu, moreIcon = _a.moreIcon, handleNavOnClick = _a.handleNavOnClick, handleLogout = _a.handleLogout, logoutText = _a.logoutText, navigationBarText = _a.navigationBarText, sideBarToggole = _a.sideBarToggole, onSideBarToggole = _a.onSideBarToggole;
24
+ var userAvathar = _a.userAvathar, userName = _a.userName, userRole = _a.userRole, navMenu = _a.navMenu, moreIcon = _a.moreIcon, handleNavOnClick = _a.handleNavOnClick, handleLogout = _a.handleLogout, logoutText = _a.logoutText, navigationBarText = _a.navigationBarText, sideBarToggole = _a.sideBarToggole, onSideBarToggole = _a.onSideBarToggole;
14
25
  var theme = (0, useCustomTheme_1.useCustomTheme)();
15
- return (react_1.default.createElement(react_2.Box, { bg: theme.colors.backgroundColor.light, px: 4, boxShadow: theme.shadows.sm },
26
+ // Shared rounded pill affordance for the bar's icon controls.
27
+ var iconButtonStyle = {
28
+ w: "1.75rem",
29
+ h: "1.75rem",
30
+ alignItems: "center",
31
+ justifyContent: "center",
32
+ borderRadius: "md",
33
+ cursor: "pointer",
34
+ transition: "background 0.15s",
35
+ _hover: { bg: "blackAlpha.50" },
36
+ };
37
+ // Light elevated pill item.
38
+ var menuItemStyle = {
39
+ bg: "transparent",
40
+ borderRadius: "7px",
41
+ mx: "0.375rem",
42
+ px: "0.625rem",
43
+ py: "0.5rem",
44
+ fontWeight: 500,
45
+ fontSize: "13px",
46
+ color: "gray.700",
47
+ gap: theme.space["2"],
48
+ transition: "background 0.12s",
49
+ _hover: { bg: theme.colors.primary[50], color: theme.colors.primary[700] },
50
+ _focus: { bg: theme.colors.primary[50], color: theme.colors.primary[700] },
51
+ _active: { bg: theme.colors.primary[50], color: theme.colors.primary[700] },
52
+ };
53
+ return (react_1.default.createElement(react_2.Box, { bg: theme.colors.backgroundColor.light, px: 4, borderBottom: "1px solid", borderColor: "blackAlpha.100" },
16
54
  react_1.default.createElement(react_2.Flex, { h: 16, alignItems: "center", justifyContent: "space-between" },
17
55
  react_1.default.createElement(react_2.Box, { display: "flex", gap: 1.5, alignItems: "center" },
18
- react_1.default.createElement(react_2.Box, { onClick: function () { return onSideBarToggole === null || onSideBarToggole === void 0 ? void 0 : onSideBarToggole(); }, display: { base: "block", lg: "none", xl: "none", md: "none" } }, sideBarToggole ? (react_1.default.createElement(lucide_react_1.PanelLeftClose, { size: "1.25rem" })) : (react_1.default.createElement(lucide_react_1.PanelRightClose, { size: "1.25rem" }))),
19
- (navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.onIconClick) && (react_1.default.createElement(react_2.Box, { width: "1.5rem", height: "1.5rem", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", onClick: function () { var _a; return (_a = navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.onIconClick) === null || _a === void 0 ? void 0 : _a.call(navigationBarText); } },
56
+ react_1.default.createElement(react_2.Box, __assign({ onClick: function () { return onSideBarToggole === null || onSideBarToggole === void 0 ? void 0 : onSideBarToggole(); }, display: { base: "flex", lg: "none", xl: "none", md: "none" } }, iconButtonStyle), sideBarToggole ? (react_1.default.createElement(lucide_react_1.PanelLeftClose, { size: "1.25rem" })) : (react_1.default.createElement(lucide_react_1.PanelRightClose, { size: "1.25rem" }))),
57
+ (navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.onIconClick) && (react_1.default.createElement(react_2.Box, __assign({}, iconButtonStyle, { display: "flex", onClick: function () { var _a; return (_a = navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.onIconClick) === null || _a === void 0 ? void 0 : _a.call(navigationBarText); } }),
20
58
  react_1.default.createElement(lucide_react_1.CircleArrowLeft, { size: "1.25rem", color: (_c = (_b = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _b === void 0 ? void 0 : _b.text) === null || _c === void 0 ? void 0 : _c[500] }))),
21
59
  (navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.text) && (react_1.default.createElement(react_2.Text, { color: (_e = (_d = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _d === void 0 ? void 0 : _d.secondary) === null || _e === void 0 ? void 0 : _e[500], fontSize: "1.25rem", fontWeight: 600, fontFamily: "open-sans, sans-serif", letterSpacing: "-0.013rem" }, navigationBarText === null || navigationBarText === void 0 ? void 0 : navigationBarText.text))),
22
60
  react_1.default.createElement(react_2.Flex, null,
23
61
  react_1.default.createElement(react_2.Stack, { direction: "row", alignItems: "center", spacing: 7 },
24
62
  react_1.default.createElement(react_2.Menu, null,
25
- react_1.default.createElement(react_2.Box, { cursor: "pointer" }, moreIcon),
63
+ moreIcon && react_1.default.createElement(react_2.Box, __assign({}, iconButtonStyle, { display: "flex" }), moreIcon),
26
64
  react_1.default.createElement(react_2.MenuButton, { as: react_2.Button, rounded: "full", variant: "link", cursor: "pointer", minW: 0 },
27
65
  react_1.default.createElement(react_2.Avatar, { size: "sm", name: userName, src: userAvathar })),
28
- react_1.default.createElement(react_2.MenuList, { alignItems: "center", zIndex: 5, p: 0 },
66
+ react_1.default.createElement(react_2.MenuList, { alignItems: "center", zIndex: 5, p: 0, py: "0.375rem", bg: theme.colors.backgroundColor.light, border: "1px solid", borderColor: "blackAlpha.100", borderRadius: "0.75rem", boxShadow: "lg", color: "gray.700", overflow: "hidden" },
29
67
  react_1.default.createElement(react_2.Box, { display: "flex", flexDirection: "column", maxH: "90vh" },
30
- react_1.default.createElement(react_2.Center, { py: 4 },
68
+ react_1.default.createElement(react_2.Center, { pt: 4, pb: 2 },
31
69
  react_1.default.createElement(react_2.Avatar, { size: "xl", name: userName, src: userAvathar })),
32
- react_1.default.createElement(react_2.Center, null,
33
- react_1.default.createElement(react_2.Text, { fontWeight: 500 }, userName)),
34
- react_1.default.createElement(react_2.MenuDivider, null),
70
+ react_1.default.createElement(react_2.Center, { flexDirection: "column", gap: "0.125rem", pb: 2, px: 4 },
71
+ react_1.default.createElement(react_2.Text, { fontWeight: 600, fontSize: "14px", color: "gray.800", isTruncated: true, maxW: "100%" }, userName),
72
+ userRole && (react_1.default.createElement(react_2.Text, { fontSize: "11px", color: "gray.500", isTruncated: true, maxW: "100%" }, userRole))),
73
+ react_1.default.createElement(react_2.MenuDivider, { borderColor: "blackAlpha.100" }),
35
74
  react_1.default.createElement(react_2.Box, { flex: 1, overflowY: "auto" }, navMenu === null || navMenu === void 0 ? void 0 : navMenu.map(function (menu, idx) {
36
75
  var _a, _b, _c;
37
- return (react_1.default.createElement(react_2.MenuItem, { onClick: function () { return handleNavOnClick(menu.url); }, key: "".concat(String((_c = (_b = (_a = menu.id) !== null && _a !== void 0 ? _a : menu.url) !== null && _b !== void 0 ? _b : menu.title) !== null && _c !== void 0 ? _c : idx), "-").concat(idx), sx: {
38
- fontWeight: 500,
39
- gap: theme.space["2"],
40
- }, _focus: {
41
- backgroundColor: "transparent",
42
- }, _hover: {
43
- backgroundColor: theme.colors.primary["50"],
44
- } },
45
- menu.icon && react_1.default.createElement(react_2.Box, null, menu === null || menu === void 0 ? void 0 : menu.icon),
76
+ return (react_1.default.createElement(react_2.MenuItem, { onClick: function () { return handleNavOnClick(menu.url); }, key: "".concat(String((_c = (_b = (_a = menu.id) !== null && _a !== void 0 ? _a : menu.url) !== null && _b !== void 0 ? _b : menu.title) !== null && _c !== void 0 ? _c : idx), "-").concat(idx), sx: menuItemStyle },
77
+ menu.icon && (react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", flexShrink: 0, sx: { "& svg": { width: "16px", height: "16px" } } }, menu === null || menu === void 0 ? void 0 : menu.icon)),
46
78
  react_1.default.createElement(react_2.Box, null, menu.title)));
47
79
  })),
48
- react_1.default.createElement(react_2.MenuDivider, null),
49
- react_1.default.createElement(react_2.MenuItem, { onClick: handleLogout, sx: {
50
- fontWeight: 500,
51
- gap: theme.space["2"],
52
- }, _hover: {
53
- backgroundColor: theme.colors.primary["50"],
54
- } },
55
- react_1.default.createElement(react_2.Box, null, react_1.default.createElement(lucide_react_1.LogOut, { size: 16 })),
80
+ react_1.default.createElement(react_2.MenuDivider, { borderColor: "blackAlpha.100" }),
81
+ react_1.default.createElement(react_2.MenuItem, { onClick: handleLogout, sx: __assign(__assign({}, menuItemStyle), { color: "red.500", _hover: { bg: "red.50", color: "red.600" }, _focus: { bg: "red.50", color: "red.600" }, _active: { bg: "red.50", color: "red.600" } }) },
82
+ react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center" }, react_1.default.createElement(lucide_react_1.LogOut, { size: 16 })),
56
83
  react_1.default.createElement(react_2.Box, null, logoutText))))))))));
57
84
  }
@@ -1,6 +1,7 @@
1
1
  export type NavbarProps = {
2
2
  userAvathar: string;
3
3
  userName: string;
4
+ userRole?: string;
4
5
  navMenu: MenuProps[];
5
6
  moreIcon?: any;
6
7
  handleNavOnClick: (url: string) => void;
@@ -47,6 +47,7 @@ var react_1 = __importStar(require("react"));
47
47
  var react_2 = require("@chakra-ui/react");
48
48
  var lucide_react_1 = require("lucide-react");
49
49
  var useCustomTheme_1 = require("../../Theme/useCustomTheme");
50
+ var fieldStyles_1 = require("../Common/fieldStyles");
50
51
  var countWords = function (text) {
51
52
  if (text === void 0) { text = ""; }
52
53
  var t = text.trim();
@@ -160,43 +161,45 @@ function NoteTextArea(_a) {
160
161
  var start = nameWithoutExtension.substring(0, maxLength - extension.length - 3);
161
162
  return "".concat(start, "...").concat(extension);
162
163
  };
163
- return (react_1.default.createElement(react_2.Box, { w: width, borderRadius: "0.25rem", overflow: "hidden", border: "1px solid", borderColor: isActive ? theme.colors.primary[300] : theme.colors.gray[200], bg: isActive ? theme.colors.gray[50] : "transparent", boxShadow: isActive ? "0 0 0 0.125rem ".concat((_b = theme.colors.boxShadow) === null || _b === void 0 ? void 0 : _b.primary) : "none" },
164
- !isActive && (react_1.default.createElement(react_2.Flex, { px: 4, align: "center", cursor: "text", onClick: handleTextArea, bg: theme.colors.white, borderRadius: "0.25rem", minH: "44px" },
165
- react_1.default.createElement(react_2.Text, { color: theme.colors.gray[300], fontStyle: "italic", fontSize: "md" }, customPlaceholder))),
164
+ var noteWordCount = countWords(noteValue);
165
+ var isOverLimit = noteWordCount > maxNoteWordCount;
166
+ return (react_1.default.createElement(react_2.Box, { w: width, borderRadius: fieldStyles_1.FIELD_RADIUS, overflow: "hidden", border: "1px solid", borderColor: isActive ? theme.colors.primary[500] : (_b = theme.colors.boxborder) === null || _b === void 0 ? void 0 : _b[500], bg: isActive ? theme.colors.gray[50] : theme.colors.white, transition: "border-color 0.2s" },
167
+ !isActive && (react_1.default.createElement(react_2.Flex, { px: 3, gap: 2, align: "center", cursor: "text", onClick: handleTextArea, bg: theme.colors.white, borderRadius: fieldStyles_1.FIELD_RADIUS, minH: "2.5rem", transition: "background 0.15s", _hover: { bg: theme.colors.gray[50] } },
168
+ react_1.default.createElement(lucide_react_1.SquarePen, { size: 16, color: theme.colors.gray[500] }),
169
+ react_1.default.createElement(react_2.Text, { color: theme.colors.gray[500], fontSize: "sm" }, customPlaceholder))),
166
170
  isActive && (react_1.default.createElement(react_1.default.Fragment, null,
167
171
  react_1.default.createElement(react_2.Box, { bg: theme.colors.white },
168
- titleShow && (react_1.default.createElement(react_2.Input, { ref: inputRef, value: titleValue, onChange: function (e) {
169
- if (e.target.value.length === 0)
170
- setTitleShow(false);
171
- setTitleValue(e.target.value);
172
- }, placeholder: "Add a title...", variant: "unstyled", pl: 3, fontWeight: 500, fontSize: "0.95rem", _placeholder: {
173
- fontStyle: "italic",
174
- color: theme.colors.gray[300],
175
- background: theme.colors.white,
176
- } })),
177
- react_1.default.createElement(react_2.Box, { bg: theme.colors.white, minH: "80px", pl: 3, pt: 2, position: "relative" },
178
- react_1.default.createElement(react_2.Textarea, { ref: noteAreaRef, value: noteValue, onChange: handleNoteChange, placeholder: customPlaceholder, variant: "unstyled", resize: "none", minH: "80px", _placeholder: { fontStyle: "italic", color: theme.colors.gray[300] }, style: { overflow: "hidden" }, p: 0 }))),
179
- react_1.default.createElement(react_2.Divider, null),
180
- react_1.default.createElement(react_2.Box, { px: 4, py: 3 },
181
- react_1.default.createElement(react_2.Flex, { align: "center", justify: "space-between", w: "100%" },
182
- react_1.default.createElement(react_2.Flex, { align: "center", gap: 3, minW: 0 },
183
- react_1.default.createElement(react_2.Box, { as: "label", htmlFor: "file-upload", cursor: "pointer", display: "flex", alignItems: "center", gap: 2 },
184
- react_1.default.createElement(lucide_react_1.Paperclip, { size: 18 })),
185
- react_1.default.createElement(react_2.Box, { h: "18px", w: "1px", bg: theme.colors.gray[200] }),
186
- !titleShow ? (react_1.default.createElement(react_2.Text, { onClick: function () { return setTitleShow(true); }, cursor: "pointer", color: theme.colors.gray[600], fontWeight: 500, fontSize: "sm" }, "Add a Title")) : (react_1.default.createElement(react_2.Tooltip, { label: titleValue, hasArrow: true, isDisabled: !titleValue },
187
- react_1.default.createElement(react_2.Text, { color: theme.colors.gray[600], fontSize: "sm", fontWeight: 500, isTruncated: true, maxW: "200px", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, titleValue || "Title")))),
188
- react_1.default.createElement(react_2.Flex, { gap: 3, align: "center", ml: "auto", flexShrink: 0 },
189
- cancelButtonHide ? null : (react_1.default.createElement(react_1.default.Fragment, null,
190
- react_1.default.createElement(react_2.Button, { variant: "ghost", colorScheme: "gray", borderRadius: "6px", onClick: handleCloseTextArea, _hover: { bg: "transparent" } }, "Cancel"))),
191
- react_1.default.createElement(react_2.Button, { colorScheme: "purple", borderRadius: "8px", isLoading: !!saveButtonLoading, isDisabled: !noteValue || isSaveDisabled, onClick: function () { return handleSubmit(noteValue, titleValue, files); } },
172
+ titleShow && (react_1.default.createElement(react_1.default.Fragment, null,
173
+ react_1.default.createElement(react_2.Input, { ref: inputRef, value: titleValue, onChange: function (e) {
174
+ if (e.target.value.length === 0)
175
+ setTitleShow(false);
176
+ setTitleValue(e.target.value);
177
+ }, placeholder: "Add a title...", variant: "unstyled", px: 3, pt: 2.5, pb: 1.5, fontWeight: 600, fontSize: "0.875rem", color: theme.colors.text[700], _placeholder: {
178
+ fontStyle: "italic",
179
+ color: theme.colors.gray[300],
180
+ } }),
181
+ react_1.default.createElement(react_2.Divider, { borderColor: theme.colors.gray[200] }))),
182
+ react_1.default.createElement(react_2.Box, { bg: theme.colors.white, minH: "76px", px: 3, pt: 2.5, position: "relative" },
183
+ react_1.default.createElement(react_2.Textarea, { ref: noteAreaRef, value: noteValue, onChange: handleNoteChange, placeholder: customPlaceholder, variant: "unstyled", resize: "none", minH: "76px", fontSize: "0.75rem", color: theme.colors.text[700], _placeholder: { fontStyle: "italic", color: theme.colors.gray[300] }, style: { overflow: "hidden" }, p: 0 }))),
184
+ react_1.default.createElement(react_2.Divider, { borderColor: theme.colors.gray[200] }),
185
+ react_1.default.createElement(react_2.Box, { px: 3, py: 2.5 },
186
+ react_1.default.createElement(react_2.Flex, { align: "center", justify: "space-between", w: "100%", gap: 3 },
187
+ react_1.default.createElement(react_2.Flex, { align: "center", gap: 2, minW: 0 },
188
+ react_1.default.createElement(react_2.Tooltip, { label: "Attach files", hasArrow: true, placement: "top" },
189
+ react_1.default.createElement(react_2.Box, { as: "label", htmlFor: "file-upload", cursor: "pointer", display: "flex", alignItems: "center", justifyContent: "center", w: "1.75rem", h: "1.75rem", borderRadius: "md", color: theme.colors.gray[600], transition: "background 0.15s", _hover: { bg: theme.colors.gray[100] } },
190
+ react_1.default.createElement(lucide_react_1.Paperclip, { size: 16 }))),
191
+ react_1.default.createElement(react_2.Box, { h: "1rem", w: "1px", bg: theme.colors.gray[200] }),
192
+ !titleShow ? (react_1.default.createElement(react_2.Box, { as: "button", type: "button", onClick: function () { return setTitleShow(true); }, px: 2, py: 1, borderRadius: "md", color: theme.colors.gray[600], fontWeight: 500, fontSize: "sm", transition: "background 0.15s", _hover: { bg: theme.colors.gray[100] } }, "+ Add a title")) : (react_1.default.createElement(react_2.Tooltip, { label: titleValue, hasArrow: true, isDisabled: !titleValue },
193
+ react_1.default.createElement(react_2.Text, { color: theme.colors.gray[600], fontSize: "sm", fontWeight: 500, isTruncated: true, maxW: "180px" }, titleValue || "Title")))),
194
+ react_1.default.createElement(react_2.Flex, { gap: 2.5, align: "center", ml: "auto", flexShrink: 0 },
195
+ react_1.default.createElement(react_2.Text, { fontSize: "xs", fontWeight: 500, color: isOverLimit ? theme.colors.semantic.error[500] : theme.colors.gray[500], whiteSpace: "nowrap" },
196
+ noteWordCount,
197
+ "/",
198
+ maxNoteWordCount),
199
+ cancelButtonHide ? null : (react_1.default.createElement(react_2.Button, { size: "sm", variant: "ghost", colorScheme: "gray", onClick: handleCloseTextArea }, "Cancel")),
200
+ react_1.default.createElement(react_2.Button, { size: "sm", variant: "solid", isLoading: !!saveButtonLoading, isDisabled: !noteValue || isSaveDisabled, onClick: function () { return handleSubmit(noteValue, titleValue, files); } },
192
201
  saveButtonLoading ? (react_1.default.createElement(react_2.Spinner, { size: "xs", thickness: "2px", mr: 2 })) : null,
193
202
  "Save"))),
194
- react_1.default.createElement(react_2.Flex, { mt: 3, gap: 2, align: "center", color: theme.colors.gray[600], fontSize: "sm" },
195
- react_1.default.createElement(react_2.Text, { fontWeight: 600 }, "Note:"),
196
- react_1.default.createElement(react_2.Text, null,
197
- "You can add up to ",
198
- maxNoteWordCount,
199
- " words only")),
200
203
  react_1.default.createElement("input", { id: "file-upload", type: "file", style: { display: "none" }, onChange: function (e) {
201
204
  var newFiles = Array.from(e.target.files || []);
202
205
  var validFiles = newFiles.filter(function (f) { return f.size <= maxFileSize; });
@@ -211,12 +214,13 @@ function NoteTextArea(_a) {
211
214
  setFiles(function (prev) { return __spreadArray(__spreadArray([], prev, true), validFiles, true); });
212
215
  }
213
216
  }, multiple: true }),
214
- fileError && (react_1.default.createElement(react_2.Text, { color: theme.colors.red[500], mt: 2, fontSize: "sm" }, fileError)),
215
- files.length > 0 && (react_1.default.createElement(react_2.Box, { mt: 3 }, files.map(function (f, idx) { return (react_1.default.createElement(react_2.Flex, { key: idx, align: "center", justify: "space-between", w: "320px", mb: 2 },
216
- react_1.default.createElement(react_2.Flex, { gap: 3, align: "center" },
217
- react_1.default.createElement(react_2.Text, { fontSize: "sm" }, shortenFileName(f.name)),
218
- react_1.default.createElement(react_2.Text, { fontSize: "sm", color: theme.colors.gray[500] }, formatBytes(f.size))),
219
- react_1.default.createElement(lucide_react_1.X, { size: 16, cursor: "pointer", color: theme.colors.red[600], onClick: function () {
217
+ fileError && (react_1.default.createElement(react_2.Text, { color: theme.colors.semantic.error[500], mt: 2, fontSize: "xs" }, fileError)),
218
+ files.length > 0 && (react_1.default.createElement(react_2.Flex, { mt: 3, gap: 2, wrap: "wrap" }, files.map(function (f, idx) { return (react_1.default.createElement(react_2.Flex, { key: idx, align: "center", gap: 2, pl: 2.5, pr: 1.5, py: 1, borderRadius: "full", bg: theme.colors.gray[100], maxW: "100%" },
219
+ react_1.default.createElement(lucide_react_1.File, { size: 13, color: theme.colors.gray[500] }),
220
+ react_1.default.createElement(react_2.Text, { fontSize: "xs", color: theme.colors.text[700], isTruncated: true, maxW: "160px" }, shortenFileName(f.name)),
221
+ react_1.default.createElement(react_2.Text, { fontSize: "xs", color: theme.colors.gray[500], whiteSpace: "nowrap" }, formatBytes(f.size)),
222
+ react_1.default.createElement(react_2.Box, { as: "button", type: "button", display: "flex", alignItems: "center", justifyContent: "center", borderRadius: "full", p: 0.5, color: theme.colors.gray[500], transition: "all 0.15s", _hover: { bg: theme.colors.gray[200], color: theme.colors.semantic.error[500] }, onClick: function () {
220
223
  return setFiles(function (prev) { return prev.filter(function (fileItem) { return fileItem !== f; }); });
221
- } }))); }))))))));
224
+ } },
225
+ react_1.default.createElement(lucide_react_1.X, { size: 13 })))); }))))))));
222
226
  }
@@ -9,7 +9,8 @@ exports.NumberInput = {
9
9
  letterSpacing: "0.044rem",
10
10
  pt: "0.813rem",
11
11
  pb: "0.813rem",
12
- borderRadius: "0.25rem",
12
+ borderRadius: "0.5rem",
13
+ transition: "border-color 0.2s, box-shadow 0.2s",
13
14
  _placeholder: {
14
15
  fontStyle: "italic",
15
16
  },
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import { ChakraPinInputProps } from "./PinInputProps";
3
- export default function PinInputs({ otp, mask, defaultValue, placeholder, manageFocus, errorBorderColor, focusBorderColor, onChange, onComplete, type, color, variant, pins, label, }: ChakraPinInputProps): React.JSX.Element;
3
+ export default function PinInputs({ otp, mask, defaultValue, placeholder, manageFocus, errorBorderColor, focusBorderColor, onChange, onComplete, type, color, variant, pins, label, id, isRequired, isInformation, informationMessage, }: ChakraPinInputProps): React.JSX.Element;
@@ -7,11 +7,12 @@ exports.default = PinInputs;
7
7
  var react_1 = __importDefault(require("react"));
8
8
  var react_2 = require("@chakra-ui/react");
9
9
  var useCustomTheme_1 = require("../../Theme/useCustomTheme");
10
+ var FormLabel_1 = require("../Common/FormLabel");
10
11
  function PinInputs(_a) {
11
- var otp = _a.otp, mask = _a.mask, defaultValue = _a.defaultValue, placeholder = _a.placeholder, manageFocus = _a.manageFocus, errorBorderColor = _a.errorBorderColor, focusBorderColor = _a.focusBorderColor, onChange = _a.onChange, onComplete = _a.onComplete, type = _a.type, _b = _a.color, color = _b === void 0 ? "primary" : _b, variant = _a.variant, _c = _a.pins, pins = _c === void 0 ? 3 : _c, label = _a.label;
12
+ var otp = _a.otp, mask = _a.mask, defaultValue = _a.defaultValue, placeholder = _a.placeholder, manageFocus = _a.manageFocus, errorBorderColor = _a.errorBorderColor, focusBorderColor = _a.focusBorderColor, onChange = _a.onChange, onComplete = _a.onComplete, type = _a.type, _b = _a.color, color = _b === void 0 ? "primary" : _b, variant = _a.variant, _c = _a.pins, pins = _c === void 0 ? 3 : _c, label = _a.label, id = _a.id, isRequired = _a.isRequired, isInformation = _a.isInformation, informationMessage = _a.informationMessage;
12
13
  var theme = (0, useCustomTheme_1.useCustomTheme)();
13
14
  return (react_1.default.createElement(react_1.default.Fragment, null,
14
- label && (react_1.default.createElement(react_2.Text, { fontWeight: "bold", marginBottom: "8px" }, label)),
15
+ label && (react_1.default.createElement(FormLabel_1.TextLabel, { label: label, id: id, isRequired: isRequired, isInformation: isInformation, informationMessage: informationMessage })),
15
16
  react_1.default.createElement(react_2.HStack, null,
16
17
  react_1.default.createElement(react_2.PinInput, { otp: otp, mask: mask, defaultValue: defaultValue, placeholder: placeholder, manageFocus: manageFocus, errorBorderColor: errorBorderColor, focusBorderColor: focusBorderColor, onChange: onChange, onComplete: onComplete, type: type, colorScheme: color, variant: variant }, Array.from({ length: pins }).map(function (_, index) { return (react_1.default.createElement(react_2.PinInputField, { key: index, backgroundColor: theme.colors.background[100], borderColor: theme.colors.boxborder[300], _focus: {
17
18
  borderColor: theme.colors.primary[500],
@@ -6,4 +6,8 @@ export type ChakraPinInputProps = Pick<PinInputProps, "otp" | "mask" | "defaultV
6
6
  color?: "gray" | "red" | "orange" | "yellow" | "green" | "teal" | "blue" | "cyan" | "purple" | "pink" | "whiteAlpha" | "blackAlpha" | "primary";
7
7
  pins: number;
8
8
  label?: string;
9
+ id?: string;
10
+ isRequired?: boolean;
11
+ isInformation?: boolean;
12
+ informationMessage?: string;
9
13
  };
@@ -25,7 +25,7 @@ var RadioButton = function (_a) {
25
25
  boxShadow: "0 0 0 2px ".concat(theme.colors.primary[200]),
26
26
  },
27
27
  } },
28
- react_1.default.createElement(FormLabel_1.TextLabel, { label: label, fontSize: labelFontSize, showTooltip: showLabelTooltip, tooltipLabel: labelTooltip, clampLines: labelClampLines })));
28
+ react_1.default.createElement(FormLabel_1.TextLabel, { label: label, fontSize: labelFontSize, showTooltip: showLabelTooltip, tooltipLabel: labelTooltip, clampLines: labelClampLines, inline: true })));
29
29
  };
30
30
  exports.RadioButton = RadioButton;
31
31
  var RadioButtonGroup = function (_a) {
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { SearchSelectProps } from "./SearchSelectProps";
3
- declare const SearchSelect: ({ id, label, options, onSelect, onSearch, isOptionLoading, isLoading, loadingText, placeholder, value, searchQuery, isMultiple, isRequired, error, errorMessage, helperText, width, height, size, chip, information, rightIcon, addNew, isSelectAll, pagination, insideSelect, isRemoveAllIcon, }: SearchSelectProps) => React.JSX.Element;
3
+ declare const SearchSelect: ({ id, label, options, onSelect, onSearch, isOptionLoading, isLoading, loadingText, placeholder, value, searchQuery, isMultiple, isRequired, error, errorMessage, helperText, width, height, size, chip, information, isInformation, informationMessage, rightIcon, addNew, isSelectAll, pagination, insideSelect, isRemoveAllIcon, }: SearchSelectProps) => React.JSX.Element;
4
4
  export default SearchSelect;
@@ -82,7 +82,7 @@ var normalizeMultiValue = function (val) {
82
82
  };
83
83
  var SearchSelect = function (_a) {
84
84
  var _b, _c, _d, _e, _f, _g, _h, _j;
85
- var id = _a.id, label = _a.label, options = _a.options, onSelect = _a.onSelect, onSearch = _a.onSearch, _k = _a.isOptionLoading, isOptionLoading = _k === void 0 ? false : _k, _l = _a.isLoading, isLoading = _l === void 0 ? false : _l, _m = _a.loadingText, loadingText = _m === void 0 ? "Loading..." : _m, _o = _a.placeholder, placeholder = _o === void 0 ? "Select" : _o, value = _a.value, _p = _a.searchQuery, searchQuery = _p === void 0 ? "" : _p, _q = _a.isMultiple, isMultiple = _q === void 0 ? false : _q, _r = _a.isRequired, isRequired = _r === void 0 ? false : _r, _s = _a.error, error = _s === void 0 ? false : _s, errorMessage = _a.errorMessage, helperText = _a.helperText, _t = _a.width, width = _t === void 0 ? "100%" : _t, height = _a.height, _u = _a.size, size = _u === void 0 ? "md" : _u, chip = _a.chip, information = _a.information, rightIcon = _a.rightIcon, addNew = _a.addNew, _v = _a.isSelectAll, isSelectAll = _v === void 0 ? false : _v, pagination = _a.pagination, insideSelect = _a.insideSelect, isRemoveAllIcon = _a.isRemoveAllIcon;
85
+ var id = _a.id, label = _a.label, options = _a.options, onSelect = _a.onSelect, onSearch = _a.onSearch, _k = _a.isOptionLoading, isOptionLoading = _k === void 0 ? false : _k, _l = _a.isLoading, isLoading = _l === void 0 ? false : _l, _m = _a.loadingText, loadingText = _m === void 0 ? "Loading..." : _m, _o = _a.placeholder, placeholder = _o === void 0 ? "Select" : _o, value = _a.value, _p = _a.searchQuery, searchQuery = _p === void 0 ? "" : _p, _q = _a.isMultiple, isMultiple = _q === void 0 ? false : _q, _r = _a.isRequired, isRequired = _r === void 0 ? false : _r, _s = _a.error, error = _s === void 0 ? false : _s, errorMessage = _a.errorMessage, helperText = _a.helperText, _t = _a.width, width = _t === void 0 ? "100%" : _t, height = _a.height, _u = _a.size, size = _u === void 0 ? "md" : _u, chip = _a.chip, information = _a.information, isInformation = _a.isInformation, informationMessage = _a.informationMessage, rightIcon = _a.rightIcon, addNew = _a.addNew, _v = _a.isSelectAll, isSelectAll = _v === void 0 ? false : _v, pagination = _a.pagination, insideSelect = _a.insideSelect, isRemoveAllIcon = _a.isRemoveAllIcon;
86
86
  var s = (0, searchSelectSize_1.getSearchSelectSizeStyles)((size || "md"));
87
87
  var insideSelectBoxHeight = height !== null && height !== void 0 ? height : s.insideSelectDefaultHeight;
88
88
  var _w = (0, react_1.useState)(searchQuery), inputValue = _w[0], setInputValue = _w[1];
@@ -224,13 +224,13 @@ var SearchSelect = function (_a) {
224
224
  }
225
225
  }, [customSelectOpen]);
226
226
  return (react_1.default.createElement(react_2.Box, { ref: containerRef, width: width, position: "relative" },
227
- label && (react_1.default.createElement(FormLabel_1.TextLabel, { label: label, id: id, isRequired: isRequired, isInformation: information === null || information === void 0 ? void 0 : information.isInformation, informationMessage: information === null || information === void 0 ? void 0 : information.informationMessage })),
227
+ label && (react_1.default.createElement(FormLabel_1.TextLabel, { label: label, id: id, isRequired: isRequired, isInformation: isInformation !== null && isInformation !== void 0 ? isInformation : information === null || information === void 0 ? void 0 : information.isInformation, informationMessage: informationMessage !== null && informationMessage !== void 0 ? informationMessage : information === null || information === void 0 ? void 0 : information.informationMessage })),
228
228
  react_1.default.createElement(react_2.InputGroup, { size: size },
229
229
  react_1.default.createElement(react_2.Box, { as: "div", w: "100%", minH: s.minH, px: s.px, pr: s.pr, position: "relative", display: "flex", alignItems: "center", flexWrap: "wrap", gap: s.gap, border: "0.063rem solid", borderColor: error
230
230
  ? theme.colors.semantic.error[500]
231
231
  : focused
232
232
  ? theme.colors.primary[500]
233
- : (_b = theme.colors.boxborder) === null || _b === void 0 ? void 0 : _b[500], borderRadius: "0.25rem", bg: (_c = theme.colors.gray) === null || _c === void 0 ? void 0 : _c[50], boxShadow: focused
233
+ : (_b = theme.colors.boxborder) === null || _b === void 0 ? void 0 : _b[500], borderRadius: "0.5rem", bg: (_c = theme.colors.gray) === null || _c === void 0 ? void 0 : _c[50], boxShadow: focused
234
234
  ? error
235
235
  ? "0 0 0 0.125rem ".concat((_d = theme.colors.boxShadow) === null || _d === void 0 ? void 0 : _d.error)
236
236
  : "0 0 0 0.125rem ".concat((_e = theme.colors.boxShadow) === null || _e === void 0 ? void 0 : _e.primary)
@@ -27,6 +27,8 @@ export type SearchSelectProps = {
27
27
  isInformation?: boolean;
28
28
  informationMessage?: string;
29
29
  };
30
+ isInformation?: boolean;
31
+ informationMessage?: string;
30
32
  rightIcon?: {
31
33
  icon?: React.ReactNode;
32
34
  onClick?: () => void;
@@ -7,7 +7,8 @@ exports.Select = {
7
7
  fontWeight: 500,
8
8
  fontSize: "0.875rem",
9
9
  letterSpacing: "0.044rem",
10
- borderRadius: "0.25rem",
10
+ borderRadius: "0.5rem",
11
+ transition: "border-color 0.2s, box-shadow 0.2s",
11
12
  minWidth: "0", // allow shrinking inside flex
12
13
  width: "100%", // full container width
13
14
  maxWidth: "100%",
@@ -60,6 +60,7 @@ exports.default = SelectSearch;
60
60
  var react_1 = __importStar(require("react"));
61
61
  var react_2 = require("@chakra-ui/react");
62
62
  var FormLabel_1 = require("../Common/FormLabel");
63
+ var fieldStyles_1 = require("../Common/fieldStyles");
63
64
  var useCustomTheme_1 = require("../../Theme/useCustomTheme");
64
65
  var lucide_react_1 = require("lucide-react");
65
66
  var ErrorMessage_1 = __importDefault(require("../Common/ErrorMessage"));
@@ -90,7 +91,6 @@ function SelectSearch(_a) {
90
91
  BottomIcon = _l === void 0 ? false : _l, BottomText = _a.BottomText, handleBottomClick = _a.handleBottomClick, BottomTextColor = _a.BottomTextColor, isColorOptions = _a.isColorOptions;
91
92
  var theme = (0, useCustomTheme_1.useCustomTheme)();
92
93
  var errorBorder = "2px solid ".concat(theme.colors.semantic.error[500]);
93
- var defaultBorderThick = "2px solid ".concat(theme.colors.boxborder[500]);
94
94
  var defaultBorderThin = "1px solid ".concat(theme.colors.boxborder[500]);
95
95
  var _m = (0, react_1.useState)(initialSelectedOption ? [initialSelectedOption] : []), selectedOptions = _m[0], setSelectedOptions = _m[1];
96
96
  var _o = (0, react_1.useState)(searchQuery), inputValue = _o[0], setInputValue = _o[1];
@@ -239,13 +239,16 @@ function SelectSearch(_a) {
239
239
  react_1.default.createElement(react_2.TagLabel, { width: "50px" }, option.label),
240
240
  react_1.default.createElement(react_2.TagCloseButton, { onClick: function () { return handleRemoveOption(option); } }))); }))),
241
241
  react_1.default.createElement(react_2.InputGroup, null,
242
- react_1.default.createElement(react_2.Input, { ref: inputRef, border: error ? errorBorder : defaultBorderThick, variant: "flushed", value: inputValue ? inputValue : "", onClick: function () { return setIsOpen(true); }, onFocus: function () { return setIsOpen(true); }, onChange: function (e) { return handleInputChange(e.target.value); }, placeholder: placeholder, onKeyDown: handleKeyDown, id: id, name: name, cursor: "pointer", borderColor: "gray.300", _hover: {
242
+ react_1.default.createElement(react_2.Input, { ref: inputRef, variant: "outline", borderRadius: fieldStyles_1.FIELD_RADIUS, value: inputValue ? inputValue : "", onClick: function () { return setIsOpen(true); }, onFocus: function () { return setIsOpen(true); }, onChange: function (e) { return handleInputChange(e.target.value); }, placeholder: placeholder, onKeyDown: handleKeyDown, id: id, name: name, cursor: "pointer", borderColor: theme.colors.boxborder[500], transition: "border-color 0.2s, box-shadow 0.2s", _hover: {
243
243
  borderColor: error
244
244
  ? theme.colors.semantic.error[500]
245
245
  : theme.colors.primary[500],
246
246
  }, _focus: {
247
- borderColor: error ? "none" : theme.colors.primary[500],
248
- }, style: __assign(__assign({}, inputStyle), { backgroundColor: theme.colors.backgroundColor.main, fontWeight: 600, color: theme.colors.gray[700], padding: "0 0.5rem", fontSize: 15, letterSpacing: 0.7, border: error ? errorBorder : defaultBorderThin }) }),
247
+ borderColor: error
248
+ ? theme.colors.semantic.error[500]
249
+ : theme.colors.primary[500],
250
+ boxShadow: (0, fieldStyles_1.fieldFocusRing)(theme, !!error),
251
+ }, style: __assign(__assign({}, inputStyle), { backgroundColor: theme.colors.gray[50], fontWeight: 600, color: theme.colors.gray[700], padding: "0 0.75rem", fontSize: 15, letterSpacing: 0.7, border: error ? errorBorder : defaultBorderThin }) }),
249
252
  rightIcon && (react_1.default.createElement(react_2.InputRightElement, { pointerEvents: "none", children: rightIcon, style: __assign({}, rightElementStyle) }))),
250
253
  isOpen && (react_1.default.createElement(react_2.Box, { ref: dropdownRef, marginTop: "5px", position: "absolute", top: position === "below" ? "100%" : "auto", bottom: position === "above" ? "100%" : "auto", left: 0, right: 0, border: "1px solid", borderColor: "gray.300", borderRadius: "md", bg: "white", maxHeight: "150px", overflowY: "auto", zIndex: 10 },
251
254
  react_1.default.createElement(RenderOptions, { isOptionLoading: isOptionLoading, filteredOptions: filteredOptions, loadingText: loadingText, handleOptionClick: handleOptionClick, isProfile: isProfile, isColorOptions: isColorOptions }),
@@ -42,6 +42,7 @@ var useCustomTheme_1 = require("../../Theme/useCustomTheme");
42
42
  var lucide_react_1 = require("lucide-react");
43
43
  var OverflowTooltipText_1 = __importDefault(require("./components/OverflowTooltipText"));
44
44
  var ToolTip_1 = __importDefault(require("../ToolTip/ToolTip"));
45
+ var Sidebar_1 = require("../../Constants/Sidebar");
45
46
  var parseBadge = function (badge) {
46
47
  var _a, _b, _c;
47
48
  return ({
@@ -57,12 +58,12 @@ var CollapsedItem = function (_a) {
57
58
  var _b = parseBadge(item.badge), badgeVal = _b.badgeVal, colorScheme = _b.colorScheme, radius = _b.radius, variant = _b.variant;
58
59
  return (react_1.default.createElement(react_2.Popover, { trigger: "hover", placement: "right-start", closeOnBlur: false, isLazy: true },
59
60
  react_1.default.createElement(react_2.PopoverTrigger, null,
60
- react_1.default.createElement(react_2.Box, { py: "0.75rem", display: "flex", alignItems: "center", justifyContent: "center", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, color: theme.colors.white, _hover: { bg: item.disabled ? "transparent" : theme.colors.primary[700] }, onClick: function () { return !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)); }, bg: isActive ? theme.colors.primary[600] : "transparent" },
61
- react_1.default.createElement(react_2.Box, { position: "relative" },
62
- react_1.default.createElement(react_2.Icon, { as: item.icon, fontSize: "1.2rem" }),
61
+ react_1.default.createElement(react_2.Box, { role: "group", py: "8px", mb: "2px", borderRadius: "7px", display: "flex", alignItems: "center", justifyContent: "center", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.primary[500] : "transparent", _hover: { bg: item.disabled ? "transparent" : "whiteAlpha.100" }, onClick: function () { return !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)); }, bg: isActive ? theme.colors.primary.opacity[16] : "transparent", transition: "background 0.12s" },
62
+ react_1.default.createElement(react_2.Box, { position: "relative", display: "flex", alignItems: "center" },
63
+ react_1.default.createElement(react_2.Icon, { as: item.icon, fontSize: "1rem", color: isActive ? theme.colors.primary[300] : "whiteAlpha.600", _groupHover: isActive ? undefined : { color: "whiteAlpha.800" }, transition: "color 0.12s" }),
63
64
  badgeVal != null && (react_1.default.createElement(react_2.Box, { position: "absolute", top: "0", right: "0", w: "0.375rem", h: "0.375rem", borderRadius: "full", bg: theme.colors.red[400] }))))),
64
65
  react_1.default.createElement(react_2.Portal, null,
65
- react_1.default.createElement(react_2.PopoverContent, { borderRadius: "0.063rem", bg: theme.colors.primary[isActive ? 500 : 700], boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", cursor: item.disabled ? "not-allowed" : "pointer", zIndex: 1500, color: "white", border: 'none' },
66
+ react_1.default.createElement(react_2.PopoverContent, { borderRadius: "0.5rem", bg: theme.colors.sidebar.background[200], boxShadow: "lg", minW: "10rem", maxW: "14rem", py: "0.125rem", ml: "-0.5rem", cursor: item.disabled ? "not-allowed" : "pointer", zIndex: 1500, color: "white", border: 'none' },
66
67
  react_1.default.createElement(react_2.PopoverBody, { p: "0.75rem" },
67
68
  react_1.default.createElement(react_2.Flex, { align: "center", gap: "0.5rem", justify: "space-between" },
68
69
  react_1.default.createElement(react_2.Flex, { align: "center", gap: "0.5rem", flex: "1", minW: 0 },
@@ -74,27 +75,28 @@ var ExpandedItem = function (_a) {
74
75
  var item = _a.item, isActive = _a.isActive, itemFontSize = _a.itemFontSize, onItemClick = _a.onItemClick;
75
76
  var theme = (0, useCustomTheme_1.useCustomTheme)();
76
77
  var _b = parseBadge(item.badge), badgeVal = _b.badgeVal, colorScheme = _b.colorScheme, radius = _b.radius, variant = _b.variant;
77
- return (react_1.default.createElement(react_2.Flex, { px: "1rem", py: "0.75rem", align: "center", justify: "space-between", gap: "0.5rem", overflow: "hidden", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, bg: isActive ? theme.colors.primary[600] : "transparent", _hover: { bg: item.disabled ? "transparent" : theme.colors.primary[700] }, onClick: function () { return !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)); }, color: theme.colors.white, borderLeft: isActive ? "0.188rem solid ".concat(theme.colors.background[300]) : "0.188rem solid transparent" },
78
- react_1.default.createElement(react_2.Flex, { align: "center", gap: "0.5rem", flex: "1", minW: 0, overflow: "hidden" },
79
- react_1.default.createElement(react_2.Icon, { as: item.icon, fontSize: "1.2rem", flexShrink: 0 }),
78
+ return (react_1.default.createElement(react_2.Flex, { role: "group", px: "8px", py: "7px", mb: "2px", borderRadius: "7px", align: "center", justify: "space-between", gap: "8px", overflow: "hidden", cursor: item.disabled ? "not-allowed" : "pointer", opacity: item.disabled ? 0.6 : 1, bg: isActive ? theme.colors.primary.opacity[16] : "transparent", _hover: { bg: item.disabled ? "transparent" : "whiteAlpha.100" }, onClick: function () { return !item.disabled && (onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item)); }, borderLeft: "2px solid", borderLeftColor: isActive ? theme.colors.primary[500] : "transparent", transition: "background 0.12s" },
79
+ react_1.default.createElement(react_2.Flex, { align: "center", gap: "8px", flex: "1", minW: 0, overflow: "hidden" },
80
+ react_1.default.createElement(react_2.Icon, { as: item.icon, fontSize: "0.95rem", flexShrink: 0, color: isActive ? theme.colors.primary[300] : "whiteAlpha.800", _groupHover: isActive ? undefined : { color: "white" }, transition: "color 0.12s" }),
80
81
  react_1.default.createElement(react_2.Box, { flex: "1", minW: 0 },
81
- react_1.default.createElement(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: itemFontSize, fontWeight: 600, as: "p" }, item.title))),
82
+ react_1.default.createElement(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: itemFontSize, fontWeight: isActive ? 600 : 500, color: isActive ? theme.colors.primary[100] : "whiteAlpha.900", _groupHover: isActive ? undefined : { color: "white" }, as: "p" }, item.title))),
82
83
  badgeVal != null && (react_1.default.createElement(react_2.Badge, { colorScheme: colorScheme, fontSize: "0.625rem", variant: variant, borderRadius: radius }, badgeVal))));
83
84
  };
84
85
  var SecondaryBar = function (_a) {
85
- var _b = _a.items, items = _b === void 0 ? [] : _b, _c = _a.defaultCollapsed, defaultCollapsed = _c === void 0 ? true : _c, _d = _a.collapsedWidth, collapsedWidth = _d === void 0 ? "3.5rem" : _d, _e = _a.expandedWidth, expandedWidth = _e === void 0 ? "10rem" : _e, _f = _a.headerFontSize, headerFontSize = _f === void 0 ? "0.95rem" : _f, _g = _a.itemFontSize, itemFontSize = _g === void 0 ? "0.875rem" : _g, selected = _a.selected, onItemClick = _a.onItemClick, title = _a.title;
86
+ var _b = _a.items, items = _b === void 0 ? [] : _b, _c = _a.defaultCollapsed, defaultCollapsed = _c === void 0 ? true : _c, _d = _a.collapsedWidth, collapsedWidth = _d === void 0 ? "3.5rem" : _d, _e = _a.expandedWidth, expandedWidth = _e === void 0 ? "10rem" : _e, _f = _a.headerFontSize, headerFontSize = _f === void 0 ? "0.75rem" : _f, _g = _a.itemFontSize, itemFontSize = _g === void 0 ? "0.75rem" : _g, selected = _a.selected, onItemClick = _a.onItemClick, title = _a.title, icon = _a.icon;
86
87
  var theme = (0, useCustomTheme_1.useCustomTheme)();
87
88
  var _h = (0, react_1.useState)(defaultCollapsed), collapsed = _h[0], setCollapsed = _h[1];
88
89
  var width = collapsed ? collapsedWidth : expandedWidth;
89
- return (react_1.default.createElement(react_2.Box, { transition: "all 0.3s", pos: "sticky", top: 0, h: "100vh", w: width, bg: theme.colors.sidebar.background[200], boxShadow: theme.shadows.md, zIndex: 1 },
90
- react_1.default.createElement(react_2.VStack, { align: "stretch", spacing: 0 },
91
- react_1.default.createElement(react_2.Flex, { align: "center", justify: collapsed ? "center" : "space-between", px: collapsed ? 0 : "0.75rem", h: "4rem", overflow: "hidden" },
92
- !collapsed && (react_1.default.createElement(react_2.Box, { flex: "1", minW: 0, mr: "0.5rem" },
93
- react_1.default.createElement(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: headerFontSize, fontWeight: 700, color: theme.colors.white, as: "p" }, title !== null && title !== void 0 ? title : ""))),
94
- react_1.default.createElement(react_2.Box, { w: "1.625rem", h: "100%", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", onClick: function () { return setCollapsed(function (c) { return !c; }); } }, collapsed ? (react_1.default.createElement(ToolTip_1.default, { label: title !== null && title !== void 0 ? title : "", placement: "right" },
95
- react_1.default.createElement(lucide_react_1.ChevronRight, { size: 16, color: theme.colors.white }))) : (react_1.default.createElement(lucide_react_1.ChevronLeft, { size: 16, color: theme.colors.white })))),
96
- react_1.default.createElement(react_2.Box, { w: "100%", h: "0.063rem", bg: theme.colors.sidebar.background[500] }),
97
- react_1.default.createElement(react_2.Box, { id: "secondary-scroll-container", flex: "1", overflowY: "auto", overflowX: "hidden" }, items.map(function (item) {
90
+ return (react_1.default.createElement(react_2.Box, { transition: "all 0.3s", pos: "sticky", top: 0, h: "100vh", w: width, bg: theme.colors.sidebar.background[500], borderLeft: "1px solid", borderColor: "whiteAlpha.100", boxShadow: theme.shadows.md, zIndex: 1 },
91
+ react_1.default.createElement(react_2.VStack, { align: "stretch", spacing: 0, h: "100%" },
92
+ react_1.default.createElement(react_2.Flex, { align: "center", justify: collapsed ? "center" : "space-between", px: collapsed ? 0 : "10px", gap: "7px", h: Sidebar_1.HEADER_HEIGHT, overflow: "hidden", borderBottom: "1px solid", borderColor: "whiteAlpha.100", flexShrink: 0 },
93
+ !collapsed && (react_1.default.createElement(react_1.default.Fragment, null,
94
+ icon && (react_1.default.createElement(react_2.Icon, { as: icon, fontSize: "0.95rem", color: theme.colors.primary[300], flexShrink: 0 })),
95
+ react_1.default.createElement(react_2.Box, { flex: "1", minW: 0 },
96
+ react_1.default.createElement(OverflowTooltipText_1.default, { placement: "right", maxWidth: "100%", fontSize: headerFontSize, fontWeight: 600, color: "whiteAlpha.900", as: "p" }, title !== null && title !== void 0 ? title : "")))),
97
+ react_1.default.createElement(react_2.Box, { w: "20px", h: "20px", borderRadius: "5px", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer", flexShrink: 0, onClick: function () { return setCollapsed(function (c) { return !c; }); }, _hover: { bg: "whiteAlpha.100" }, transition: "background 0.15s" }, collapsed ? (react_1.default.createElement(ToolTip_1.default, { label: title !== null && title !== void 0 ? title : "", placement: "right" },
98
+ react_1.default.createElement(lucide_react_1.ChevronRight, { size: 13, color: theme.colors.white, opacity: 0.6 }))) : (react_1.default.createElement(lucide_react_1.ChevronLeft, { size: 13, color: theme.colors.white, opacity: 0.6 })))),
99
+ react_1.default.createElement(react_2.Box, { id: "secondary-scroll-container", flex: "1", minH: 0, overflowY: "auto", overflowX: "hidden", p: "8px 6px" }, items.map(function (item) {
98
100
  var _a;
99
101
  var isActive = String(selected) === String(item.id) ||
100
102
  String(selected) === String(item.title);
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import { SidebarProps } from "./SideBarProps";
3
- export default function Sidebar({ menus, activeMenu, handleMenuClick, handleSecondaryNavClick, toggle, changeToggle, logo, companyName, isDisableAddNew, onAddNewClick, selectedSubMenu, selectedSecondaryItem, isLoading, loadingLines, open, otherApps, }: SidebarProps): React.JSX.Element;
3
+ export default function Sidebar({ menus, activeMenu, handleMenuClick, handleSecondaryNavClick, toggle, changeToggle, logo, companyName, companySubtitle, user, isDisableAddNew, onAddNewClick, selectedSubMenu, selectedSecondaryItem, isLoading, loadingLines, open, otherApps, }: SidebarProps): React.JSX.Element;