pixelize-design-library 2.3.8 → 2.3.10

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 (155) hide show
  1. package/.claude/settings.local.json +51 -0
  2. package/.cursor/plans/current.md +8 -11
  3. package/coverage/clover.xml +405 -0
  4. package/coverage/coverage-final.json +16 -0
  5. package/coverage/coverage-summary.json +50 -0
  6. package/coverage/lcov-report/Button/Button.tsx.html +244 -0
  7. package/coverage/lcov-report/Button/index.html +116 -0
  8. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +433 -0
  9. package/coverage/lcov-report/Checkbox/index.html +116 -0
  10. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +148 -0
  11. package/coverage/lcov-report/Common/FormLabel.tsx.html +331 -0
  12. package/coverage/lcov-report/Common/HelperText.tsx.html +124 -0
  13. package/coverage/lcov-report/Common/index.html +146 -0
  14. package/coverage/lcov-report/Components/Button/Button.tsx.html +244 -0
  15. package/coverage/lcov-report/Components/Button/index.html +116 -0
  16. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +433 -0
  17. package/coverage/lcov-report/Components/Checkbox/index.html +116 -0
  18. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +148 -0
  19. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +331 -0
  20. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +124 -0
  21. package/coverage/lcov-report/Components/Common/index.html +146 -0
  22. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +712 -0
  23. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +343 -0
  24. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +313 -0
  25. package/coverage/lcov-report/Components/CustomModulesTable/index.html +146 -0
  26. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +133 -0
  27. package/coverage/lcov-report/Components/Divider/index.html +116 -0
  28. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +994 -0
  29. package/coverage/lcov-report/Components/Dropdown/index.html +116 -0
  30. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +466 -0
  31. package/coverage/lcov-report/Components/EmptyState/index.html +116 -0
  32. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +373 -0
  33. package/coverage/lcov-report/Components/Header/index.html +116 -0
  34. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +487 -0
  35. package/coverage/lcov-report/Components/Input/index.html +116 -0
  36. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +205 -0
  37. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +547 -0
  38. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +190 -0
  39. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +247 -0
  40. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +116 -0
  41. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +3598 -0
  42. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +283 -0
  43. package/coverage/lcov-report/Components/KanbanBoard/index.html +161 -0
  44. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +511 -0
  45. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +334 -0
  46. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +1519 -0
  47. package/coverage/lcov-report/Components/OrganizationDetails/index.html +146 -0
  48. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +328 -0
  49. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +1732 -0
  50. package/coverage/lcov-report/Components/RolesPermission/index.html +131 -0
  51. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +2575 -0
  52. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +202 -0
  53. package/coverage/lcov-report/Components/SearchSelect/index.html +146 -0
  54. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +496 -0
  55. package/coverage/lcov-report/Components/Select/Select.tsx.html +361 -0
  56. package/coverage/lcov-report/Components/Select/index.html +116 -0
  57. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +562 -0
  58. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +346 -0
  59. package/coverage/lcov-report/Components/SideBar/components/index.html +116 -0
  60. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +490 -0
  61. package/coverage/lcov-report/Components/SignInActivityTable/index.html +116 -0
  62. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +595 -0
  63. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +2212 -0
  64. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +358 -0
  65. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +358 -0
  66. package/coverage/lcov-report/Components/Table/components/index.html +161 -0
  67. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +856 -0
  68. package/coverage/lcov-report/Components/Table/settings/index.html +116 -0
  69. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +331 -0
  70. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +256 -0
  71. package/coverage/lcov-report/Components/Tag/index.html +131 -0
  72. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +286 -0
  73. package/coverage/lcov-report/Components/ToolTip/index.html +116 -0
  74. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +709 -0
  75. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +505 -0
  76. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +379 -0
  77. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +1900 -0
  78. package/coverage/lcov-report/Components/UserDetails/index.html +161 -0
  79. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +466 -0
  80. package/coverage/lcov-report/EmptyState/index.html +116 -0
  81. package/coverage/lcov-report/Hooks/index.html +116 -0
  82. package/coverage/lcov-report/Hooks/usePreferences.ts.html +421 -0
  83. package/coverage/lcov-report/Input/TextInput.tsx.html +487 -0
  84. package/coverage/lcov-report/Input/index.html +131 -0
  85. package/coverage/lcov-report/Input/textInputIconSize.ts.html +205 -0
  86. package/coverage/lcov-report/KanbanBoard.tsx.html +3481 -0
  87. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +511 -0
  88. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +334 -0
  89. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +1519 -0
  90. package/coverage/lcov-report/OrganizationDetails/index.html +146 -0
  91. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +328 -0
  92. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +1732 -0
  93. package/coverage/lcov-report/RolesPermission/index.html +116 -0
  94. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +2575 -0
  95. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +202 -0
  96. package/coverage/lcov-report/SearchSelect/index.html +146 -0
  97. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +496 -0
  98. package/coverage/lcov-report/Table/CompactSelect.tsx.html +379 -0
  99. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +514 -0
  100. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +373 -0
  101. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +574 -0
  102. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +574 -0
  103. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +1027 -0
  104. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +397 -0
  105. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +1060 -0
  106. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +361 -0
  107. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +337 -0
  108. package/coverage/lcov-report/Table/Components/index.html +266 -0
  109. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +178 -0
  110. package/coverage/lcov-report/Table/Components/useTable.ts.html +778 -0
  111. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +1810 -0
  112. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +178 -0
  113. package/coverage/lcov-report/Table/Table.tsx.html +1567 -0
  114. package/coverage/lcov-report/Table/TableProps.tsx.html +658 -0
  115. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +619 -0
  116. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +229 -0
  117. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +532 -0
  118. package/coverage/lcov-report/Table/TableSettings/index.html +146 -0
  119. package/coverage/lcov-report/Table/TableToDo.tsx.html +973 -0
  120. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +271 -0
  121. package/coverage/lcov-report/Table/filterTypes.ts.html +97 -0
  122. package/coverage/lcov-report/Table/index.html +176 -0
  123. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +856 -0
  124. package/coverage/lcov-report/Table/settings/index.html +116 -0
  125. package/coverage/lcov-report/Tag/Tag.tsx.html +256 -0
  126. package/coverage/lcov-report/Tag/index.html +116 -0
  127. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +175 -0
  128. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +214 -0
  129. package/coverage/lcov-report/Theme/index.html +131 -0
  130. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +100 -0
  131. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +286 -0
  132. package/coverage/lcov-report/ToolTip/index.html +116 -0
  133. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +709 -0
  134. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +505 -0
  135. package/coverage/lcov-report/UserDetails/index.html +116 -0
  136. package/coverage/lcov-report/Utils/functions.ts.html +106 -0
  137. package/coverage/lcov-report/Utils/index.html +116 -0
  138. package/coverage/lcov-report/Utils/table.ts.html +1189 -0
  139. package/coverage/lcov-report/base.css +224 -0
  140. package/coverage/lcov-report/block-navigation.js +87 -0
  141. package/coverage/lcov-report/favicon.png +0 -0
  142. package/coverage/lcov-report/index.html +251 -0
  143. package/coverage/lcov-report/prettify.css +1 -0
  144. package/coverage/lcov-report/prettify.js +2 -0
  145. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  146. package/coverage/lcov-report/sorter.js +210 -0
  147. package/coverage/lcov.info +981 -0
  148. package/dist/Assets/defaultLogo.tsx +30 -0
  149. package/dist/Components/KanbanBoard/KanbanBoard.d.ts.map +1 -1
  150. package/dist/Components/KanbanBoard/KanbanBoard.js +38 -1
  151. package/dist/Components/Table/Table.d.ts.map +1 -1
  152. package/dist/Components/Table/Table.js +16 -7
  153. package/dist/Components/Table/settings/ManageColumns.d.ts.map +1 -1
  154. package/dist/Components/Table/settings/ManageColumns.js +2 -1
  155. package/package.json +1 -1
@@ -0,0 +1,30 @@
1
+ import { useCustomTheme } from "../Theme/useCustomTheme";
2
+
3
+ const DefaultLogo = () => {
4
+ const theme = useCustomTheme();
5
+ return (
6
+ <svg
7
+ width="12.09"
8
+ height="15.95"
9
+ viewBox="0 0 31 29"
10
+ fill="none"
11
+ xmlns="http://www.w3.org/2000/svg"
12
+ >
13
+ <path
14
+ d="M30.4999 6.26137V7.81058H15.9761H14.8787V22.8508V28.8862H12.5226C9.6824 28.8862 7.32632 26.4656 7.06812 23.3995C7.06812 23.2381 7.06812 23.0444 7.06812 22.8508V18.3323C7.06812 18.2677 7.06812 18.2032 7.06812 18.1063V15.5889V6.2291C7.06812 2.80793 9.84378 -5.72205e-06 13.2972 -5.72205e-06H24.8517C28.0147 0.355021 30.4676 3.00158 30.4676 6.2291L30.4999 6.26137Z"
15
+ fill={theme.colors.black}
16
+ />
17
+ <path
18
+ d="M7.10053 23.3672H7.03598C5.16402 23.2381 3.48571 22.4635 2.25926 21.3338C0.871428 20.0428 0 18.2677 0 16.3312V15.6211H7.06825V18.1386C7.06825 18.2032 7.06825 18.2677 7.06825 18.3645V22.883C7.06825 23.0767 7.06825 23.2381 7.06825 23.4317L7.10053 23.3672Z"
19
+ fill={theme.colors.black}
20
+ />
21
+ <path
22
+ d="M30.4678 12.0063V15.6211V17.1703C30.4678 20.6238 26.272 23.3994 21.0757 23.3994H14.8789V22.8508V15.6211H22.6572V7.81056C22.6895 7.81056 30.5001 7.81056 30.5001 7.81056V11.5868C30.5001 11.7159 30.5001 11.8772 30.5001 12.0063H30.4678Z"
23
+ fill={theme.colors.black}
24
+ />
25
+ </svg>
26
+
27
+ )
28
+ };
29
+
30
+ export default DefaultLogo;
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanBoard.d.ts","sourceRoot":"","sources":["../../../src/Components/KanbanBoard/KanbanBoard.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAEL,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAqH5B,QAAA,MAAM,WAAW,GAAI,0TA4BlB,gBAAgB,mDA+6BlB,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"KanbanBoard.d.ts","sourceRoot":"","sources":["../../../src/Components/KanbanBoard/KanbanBoard.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAEL,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAqH5B,QAAA,MAAM,WAAW,GAAI,0TA4BlB,gBAAgB,mDAs9BlB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -132,20 +132,37 @@ const KanbanBoard = ({ data, customColumns, customizeColumn, onDrag, onDelete, o
132
132
  const [expanded, setExpanded] = (0, react_1.useState)({});
133
133
  /** When true, column id maps to collapsed (body hidden). */
134
134
  const [collapsedColumns, setCollapsedColumns] = (0, react_1.useState)(() => ({ ...defaultCollapsedColumns }));
135
+ const hasHydratedCollapsedFromPrefs = (0, react_1.useRef)(false);
136
+ (0, react_1.useEffect)(() => {
137
+ hasHydratedCollapsedFromPrefs.current = false;
138
+ }, [
139
+ preferences.baseurl,
140
+ preferences.page,
141
+ preferences.key,
142
+ preferences.name,
143
+ ]);
135
144
  (0, react_1.useEffect)(() => {
136
145
  if (!enableColumnCollapse || !preferences.baseurl || preferencesLoading) {
137
146
  return;
138
147
  }
148
+ if (hasHydratedCollapsedFromPrefs.current) {
149
+ return;
150
+ }
151
+ const validIds = new Set(Object.keys(mergedColumns));
152
+ if (validIds.size === 0) {
153
+ return;
154
+ }
139
155
  if (!("collapsedColumns" in kanbanPreferencesJson)) {
156
+ hasHydratedCollapsedFromPrefs.current = true;
140
157
  return;
141
158
  }
142
159
  const saved = kanbanPreferencesJson.collapsedColumns;
143
160
  if (saved === null ||
144
161
  typeof saved !== "object" ||
145
162
  Array.isArray(saved)) {
163
+ hasHydratedCollapsedFromPrefs.current = true;
146
164
  return;
147
165
  }
148
- const validIds = new Set(Object.keys(mergedColumns));
149
166
  const next = {};
150
167
  for (const [k, v] of Object.entries(saved)) {
151
168
  if (validIds.has(k) && typeof v === "boolean") {
@@ -156,6 +173,7 @@ const KanbanBoard = ({ data, customColumns, customizeColumn, onDrag, onDelete, o
156
173
  ...defaultCollapsedColumns,
157
174
  ...next,
158
175
  });
176
+ hasHydratedCollapsedFromPrefs.current = true;
159
177
  }, [
160
178
  enableColumnCollapse,
161
179
  preferences.baseurl,
@@ -164,6 +182,25 @@ const KanbanBoard = ({ data, customColumns, customizeColumn, onDrag, onDelete, o
164
182
  mergedColumns,
165
183
  defaultCollapsedColumns,
166
184
  ]);
185
+ (0, react_1.useEffect)(() => {
186
+ if (!enableColumnCollapse) {
187
+ return;
188
+ }
189
+ const validIds = new Set(Object.keys(mergedColumns));
190
+ setCollapsedColumns((prev) => {
191
+ const hasStale = Object.keys(prev).some((k) => !validIds.has(k));
192
+ if (!hasStale) {
193
+ return prev;
194
+ }
195
+ const pruned = {};
196
+ for (const [k, v] of Object.entries(prev)) {
197
+ if (validIds.has(k)) {
198
+ pruned[k] = v;
199
+ }
200
+ }
201
+ return pruned;
202
+ });
203
+ }, [mergedColumns, enableColumnCollapse]);
167
204
  const toggleColumnCollapsed = (0, react_1.useCallback)((colId) => {
168
205
  setCollapsedColumns((prev) => {
169
206
  const collapsed = !prev[colId];
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/Components/Table/Table.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAkC,UAAU,EAAE,MAAM,cAAc,CAAC;AAuB1E,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAkB,EAClB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,SAAiB,EACjB,YAAmB,EACnB,UAAU,EACV,UAAU,EACV,cAAqB,EACrB,WAOC,EACD,cAAyB,EACzB,cAAsB,EACtB,OAAO,EACP,aAAqB,EACrB,aAAqB,EACrB,YAA0B,EAC1B,gBAAwB,EACxB,iBAAiB,EACjB,eAAoB,EACpB,YAAgB,EAChB,YAAY,EACZ,eAAuB,EACvB,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,OAAkB,EAClB,MAAM,EACN,WAAW,EACX,SAAS,EACT,UAAU,EACV,SAAS,GAEV,EAAE,UAAU,2CAuvBZ"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/Components/Table/Table.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAkC,UAAU,EAAE,MAAM,cAAc,CAAC;AAuB1E,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAkB,EAClB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,SAAiB,EACjB,YAAmB,EACnB,UAAU,EACV,UAAU,EACV,cAAqB,EACrB,WAOC,EACD,cAAyB,EACzB,cAAsB,EACtB,OAAO,EACP,aAAqB,EACrB,aAAqB,EACrB,YAA0B,EAC1B,gBAAwB,EACxB,iBAAiB,EACjB,eAAoB,EACpB,YAAgB,EAChB,YAAY,EACZ,eAAuB,EACvB,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,OAAkB,EAClB,MAAM,EACN,WAAW,EACX,SAAS,EACT,UAAU,EACV,SAAS,GAEV,EAAE,UAAU,2CAuwBZ"}
@@ -91,6 +91,7 @@ function Table({ data, columns, onSelection, isLoading, isCheckbox = false, head
91
91
  // Grouping is chosen by the user in Table Settings > Group and persisted to
92
92
  // preferences (`json.groupBy`); there is no `groupBy` prop.
93
93
  const [groupByState, setGroupByState] = (0, react_1.useState)(undefined);
94
+ const [isPaginationPopoverOpen, setIsPaginationPopoverOpen] = (0, react_1.useState)(false);
94
95
  // Grouped "Load more" accumulates pages here so loading more ADDS rows to the
95
96
  // groups (server pagination replaces `data` each fetch). Reset on fresh loads
96
97
  // (search / filter / sort / page-size). Only used in grouped + groupLoadMore mode.
@@ -140,7 +141,8 @@ function Table({ data, columns, onSelection, isLoading, isCheckbox = false, head
140
141
  pendingLoadMoreRef.current = false;
141
142
  loadedPagesRef.current = 1;
142
143
  setAccumulatedRows(tableData); // current page at the new size (not empty)
143
- }, [rowsPerPage, tableData]);
144
+ // eslint-disable-next-line react-hooks/exhaustive-deps
145
+ }, [rowsPerPage]);
144
146
  (0, react_1.useEffect)(() => {
145
147
  if (tablePreferences === null || tablePreferences === void 0 ? void 0 : tablePreferences.density) {
146
148
  setDensityState(tablePreferences.density);
@@ -151,7 +153,8 @@ function Table({ data, columns, onSelection, isLoading, isCheckbox = false, head
151
153
  const saved = tablePreferences.groupBy;
152
154
  setGroupByState(saved === null || saved === undefined || saved === "" ? undefined : saved);
153
155
  }
154
- }, [tablePreferences === null || tablePreferences === void 0 ? void 0 : tablePreferences.groupBy, setGroupByState, tablePreferences]);
156
+ // eslint-disable-next-line react-hooks/exhaustive-deps
157
+ }, [tablePreferences === null || tablePreferences === void 0 ? void 0 : tablePreferences.groupBy]);
155
158
  const handleDensityChange = (d) => {
156
159
  setDensityState(d);
157
160
  savePreferences === null || savePreferences === void 0 ? void 0 : savePreferences({ ...tablePreferences, columns: columnsList, groupBy: groupByState !== null && groupByState !== void 0 ? groupByState : null, density: d });
@@ -236,7 +239,8 @@ function Table({ data, columns, onSelection, isLoading, isCheckbox = false, head
236
239
  onPaginationRef.current(currentPage + 1, rowsPerPage, record, direction);
237
240
  prevPageRef.current = currentPage;
238
241
  }
239
- }, [currentPage, rowsPerPage, tableData, pages]);
242
+ // eslint-disable-next-line react-hooks/exhaustive-deps
243
+ }, [currentPage, rowsPerPage]);
240
244
  // Grouped "Load more": request the next chunk; parent appends it to `data` and
241
245
  // the table re-groups so new rows land in their respective groups.
242
246
  const handleGroupLoadMore = () => {
@@ -268,7 +272,7 @@ function Table({ data, columns, onSelection, isLoading, isCheckbox = false, head
268
272
  : "Showing all records";
269
273
  const tablePaginationText = (0, react_1.useMemo)(() => isServerPagination
270
274
  ? `${startRow + 1} - ${Math.min(startRow + rowsPerPage, totalRecords)} of ${totalRecords}`
271
- : `${startRow + 1} - ${endRow > tableData.length ? tableData.length : endRow} of ${tableData.length}`, [startRow, rowsPerPage, totalRecords, endRow, tableData.length, isServerPagination]);
275
+ : `${startRow + 1} - ${endRow > tableData.length ? tableData.length : endRow} of ${tableData.length}`, [startRow, rowsPerPage, totalRecords, endRow, tableData.length]); // eslint-disable-line react-hooks/exhaustive-deps
272
276
  const controlsHeight = 45;
273
277
  const estimatedRowHeight = 45;
274
278
  // In grouped mode the rendered rows come from the full grouped source, not the
@@ -308,6 +312,11 @@ function Table({ data, columns, onSelection, isLoading, isCheckbox = false, head
308
312
  const fittedMaxH = autoFitViewport ? Math.min(dynamicMaxH, viewportAvailableH) : dynamicMaxH;
309
313
  const tableMaxH = typeof tableMaxHeight === "number" ? tableMaxHeight : (isCompactRows ? rowsHeight + 8 : fittedMaxH);
310
314
  const isCompactHeader = (0, react_2.useBreakpointValue)({ base: true, md: true, lg: false });
315
+ (0, react_1.useEffect)(() => {
316
+ if (!isCompactHeader) {
317
+ setIsPaginationPopoverOpen(false);
318
+ }
319
+ }, [isCompactHeader]);
311
320
  const compactScrollbarPadding = isCompactRows ? 4 : 0;
312
321
  // Infinite scroll: reuse onPagination("next") when scrolled near the bottom.
313
322
  const infiniteRef = (0, react_1.useRef)({ isLoadingMore, isTableLoading, hasMore, rowsPerPage, dataLen: tableData.length, lastRecord: tableData[tableData.length - 1], totalRecords, isServerPagination });
@@ -380,9 +389,9 @@ function Table({ data, columns, onSelection, isLoading, isCheckbox = false, head
380
389
  animation: isRefreshing
381
390
  ? "pixelize-table-spin 1s linear infinite"
382
391
  : "none"
383
- }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.RefreshCw, { size: 16 }) }) })] })), headerActions && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Divider_1.default, {}), (0, jsx_runtime_1.jsx)(HeaderActions_1.default, { actions: headerActions, selections: selection })] })), (0, jsx_runtime_1.jsx)(ActiveFilters_1.default, { columns: columnsList, columnsSearch: columnsSearch, setColumnsSearch: setColumnsSearch }), (0, jsx_runtime_1.jsxs)(react_2.Box, { ml: "auto", display: "flex", alignItems: "center", gap: 2, children: [groupLoadMoreActive && loadMorePosition === "top" && (groupLoadMoreCaption || canGroupLoadMore) && ((0, jsx_runtime_1.jsxs)(react_2.Box, { display: "flex", alignItems: "center", gap: 2, flex: "0 0 auto", children: [groupLoadMoreCaption && ((0, jsx_runtime_1.jsx)(react_2.Box, { fontSize: "0.75rem", color: (_y = (_x = theme.colors) === null || _x === void 0 ? void 0 : _x.text) === null || _y === void 0 ? void 0 : _y[500], whiteSpace: "nowrap", children: groupLoadMoreCaption })), canGroupLoadMore && ((0, jsx_runtime_1.jsx)(Button_1.default, { size: "xs", variant: "outline", colorScheme: "gray", isLoading: isLoadingMore, loadingText: loadMoreText, onClick: handleGroupLoadMore, label: loadMoreText }))] })), (isPagination || isServerPagination) && !isGrouped && !canInfinite && !isCompactHeader && ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(Pagination_1.default, { columns: columns, currentPage: currentPage, setCurrentPage: setCurrentPage, rowsPerPage: rowsPerPage, pages: pages, paginationText: tablePaginationText, handlePageSizeChange: handlePageSizeChange, dataLength: tableData.length, isServerPagination: isServerPagination, paginationSelectOptions: paginationSelectOptions, isVisiblity: true }) })), (isPagination || isServerPagination) && !isGrouped && !canInfinite && isCompactHeader && tableData.length > 0 && ((0, jsx_runtime_1.jsxs)(react_2.Popover, { placement: "bottom-end", children: [(0, jsx_runtime_1.jsx)(react_2.PopoverTrigger, { children: (0, jsx_runtime_1.jsx)(ToolTip_1.default, { label: "Pagination", placement: "top", children: (0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": "More", size: "sm", variant: "ghost", icon: (0, jsx_runtime_1.jsx)(lucide_react_1.EllipsisVertical, { size: 18 }), color: (_0 = (_z = theme.colors) === null || _z === void 0 ? void 0 : _z.text) === null || _0 === void 0 ? void 0 : _0[500], _hover: {
384
- color: (_2 = (_1 = theme.colors) === null || _1 === void 0 ? void 0 : _1.primary) === null || _2 === void 0 ? void 0 : _2[500]
385
- } }) }) }), (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { maxW: "22rem", p: 2, overflow: "hidden", children: (0, jsx_runtime_1.jsx)(react_2.PopoverBody, { p: 0, children: (0, jsx_runtime_1.jsx)(Pagination_1.default, { columns: columns, currentPage: currentPage, setCurrentPage: setCurrentPage, rowsPerPage: rowsPerPage, pages: pages, paginationText: tablePaginationText, handlePageSizeChange: handlePageSizeChange, dataLength: tableData.length, isServerPagination: isServerPagination, paginationSelectOptions: paginationSelectOptions, isVisiblity: true }) }) })] }))] })] }), (0, jsx_runtime_1.jsxs)(react_2.TableContainer, { ref: tableContainerRef, position: "relative", h: isTableLoading ? tableMaxH : undefined, maxH: !isTableLoading ? tableMaxH : undefined, pb: isTableLoading ? 0 : compactScrollbarPadding, overflowY: isCompactRows ? "hidden" : "auto", overflowX: "auto", sx: {
392
+ }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.RefreshCw, { size: 16 }) }) })] })), headerActions && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Divider_1.default, {}), (0, jsx_runtime_1.jsx)(HeaderActions_1.default, { actions: headerActions, selections: selection })] })), (0, jsx_runtime_1.jsx)(ActiveFilters_1.default, { columns: columnsList, columnsSearch: columnsSearch, setColumnsSearch: setColumnsSearch }), (0, jsx_runtime_1.jsxs)(react_2.Box, { ml: "auto", display: "flex", alignItems: "center", gap: 2, children: [groupLoadMoreActive && loadMorePosition === "top" && (groupLoadMoreCaption || canGroupLoadMore) && ((0, jsx_runtime_1.jsxs)(react_2.Box, { display: "flex", alignItems: "center", gap: 2, flex: "0 0 auto", children: [groupLoadMoreCaption && ((0, jsx_runtime_1.jsx)(react_2.Box, { fontSize: "0.75rem", color: (_y = (_x = theme.colors) === null || _x === void 0 ? void 0 : _x.text) === null || _y === void 0 ? void 0 : _y[500], whiteSpace: "nowrap", children: groupLoadMoreCaption })), canGroupLoadMore && ((0, jsx_runtime_1.jsx)(Button_1.default, { size: "xs", variant: "outline", colorScheme: "gray", isLoading: isLoadingMore, loadingText: loadMoreText, onClick: handleGroupLoadMore, label: loadMoreText }))] })), (isPagination || isServerPagination) && !isGrouped && !canInfinite && !isCompactHeader && ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(Pagination_1.default, { columns: columns, currentPage: currentPage, setCurrentPage: setCurrentPage, rowsPerPage: rowsPerPage, pages: pages, paginationText: tablePaginationText, handlePageSizeChange: handlePageSizeChange, dataLength: tableData.length, isServerPagination: isServerPagination, paginationSelectOptions: paginationSelectOptions, isVisiblity: true }) })), (isPagination || isServerPagination) && !isGrouped && !canInfinite && isCompactHeader && tableData.length > 0 && ((0, jsx_runtime_1.jsxs)(react_2.Popover, { isOpen: isPaginationPopoverOpen, onClose: () => setIsPaginationPopoverOpen(false), placement: "bottom-end", children: [(0, jsx_runtime_1.jsx)(react_2.PopoverTrigger, { children: (0, jsx_runtime_1.jsx)(react_2.IconButton, { "aria-label": "Pagination", size: "sm", variant: "ghost", icon: (0, jsx_runtime_1.jsx)(lucide_react_1.EllipsisVertical, { size: 18 }), color: (_0 = (_z = theme.colors) === null || _z === void 0 ? void 0 : _z.text) === null || _0 === void 0 ? void 0 : _0[500], _hover: {
393
+ color: (_2 = (_1 = theme.colors) === null || _1 === void 0 ? void 0 : _1.primary) === null || _2 === void 0 ? void 0 : _2[500],
394
+ }, onClick: () => setIsPaginationPopoverOpen((open) => !open) }) }), (0, jsx_runtime_1.jsx)(react_2.Portal, { children: (0, jsx_runtime_1.jsx)(react_2.PopoverContent, { maxW: "22rem", p: 2, zIndex: 1600, bg: "white", boxShadow: "lg", children: (0, jsx_runtime_1.jsx)(react_2.PopoverBody, { p: 0, children: (0, jsx_runtime_1.jsx)(Pagination_1.default, { columns: columns, currentPage: currentPage, setCurrentPage: setCurrentPage, rowsPerPage: rowsPerPage, pages: pages, paginationText: tablePaginationText, handlePageSizeChange: handlePageSizeChange, dataLength: tableData.length, isServerPagination: isServerPagination, paginationSelectOptions: paginationSelectOptions, isVisiblity: true }) }) }) })] }))] })] }), (0, jsx_runtime_1.jsxs)(react_2.TableContainer, { ref: tableContainerRef, position: "relative", h: isTableLoading ? tableMaxH : undefined, maxH: !isTableLoading ? tableMaxH : undefined, pb: isTableLoading ? 0 : compactScrollbarPadding, overflowY: isCompactRows ? "hidden" : "auto", overflowX: "auto", sx: {
386
395
  '&::-webkit-scrollbar': {
387
396
  width: '6px',
388
397
  height: isCompactRows ? '0px' : '6px',
@@ -1 +1 @@
1
- {"version":3,"file":"ManageColumns.d.ts","sourceRoot":"","sources":["../../../../src/Components/Table/settings/ManageColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAYjF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,KAAK,oBAAoB,GAAG;IAC1B,oBAAoB,EAAE,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;CACnD,CAAC;AAEF,QAAA,MAAM,aAAa,GAAI,qDAKpB;IACD,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtE,oBAAoB,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;CACvD,4CAkOA,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ManageColumns.d.ts","sourceRoot":"","sources":["../../../../src/Components/Table/settings/ManageColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAYjF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,KAAK,oBAAoB,GAAG;IAC1B,oBAAoB,EAAE,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;CACnD,CAAC;AAEF,QAAA,MAAM,aAAa,GAAI,qDAKpB;IACD,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtE,oBAAoB,EAAE,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;CACvD,4CAmOA,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -17,7 +17,8 @@ const ManageColumns = ({ columns, items, setItems, childInputMethodsRef, }) => {
17
17
  const visibleCount = (0, react_1.useMemo)(() => items.filter((i) => !i.isHidden).length, [items]);
18
18
  (0, react_1.useEffect)(() => {
19
19
  setItems(columns);
20
- }, [columns, setItems]);
20
+ // eslint-disable-next-line react-hooks/exhaustive-deps
21
+ }, [columns]);
21
22
  (0, react_1.useImperativeHandle)(childInputMethodsRef, () => ({ getManageColumnsData: () => items }), [items]);
22
23
  const handleDragStart = (index) => setDraggedItemIndex(index);
23
24
  const handleDragOver = (e, index) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixelize-design-library",
3
- "version": "2.3.8",
3
+ "version": "2.3.10",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",