@jmruthers/pace-core 0.5.112 → 0.5.114

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 (127) hide show
  1. package/dist/{DataTable-3D3BUZDV.js → DataTable-3JRLZXER.js} +4 -4
  2. package/dist/{api-QPMBZZUZ.js → api-PKU4PUBO.js} +2 -2
  3. package/dist/{chunk-EKVVTPIF.js → chunk-5YIZFEUQ.js} +18 -10
  4. package/dist/chunk-5YIZFEUQ.js.map +1 -0
  5. package/dist/{chunk-MNSGWRPB.js → chunk-HKWQN44G.js} +10 -10
  6. package/dist/{chunk-WMPZY26G.js → chunk-JHWQNJP3.js} +5 -4
  7. package/dist/{chunk-WMPZY26G.js.map → chunk-JHWQNJP3.js.map} +1 -1
  8. package/dist/{chunk-C5RN4TE5.js → chunk-KTHLNIMA.js} +3 -3
  9. package/dist/{chunk-TAJRS6YB.js → chunk-QKIVSZ2O.js} +4 -3
  10. package/dist/{chunk-TAJRS6YB.js.map → chunk-QKIVSZ2O.js.map} +1 -1
  11. package/dist/{chunk-I7JC7PTJ.js → chunk-ZPXWJA4H.js} +2 -2
  12. package/dist/components.js +4 -4
  13. package/dist/hooks.js +1 -1
  14. package/dist/index.js +6 -6
  15. package/dist/rbac/index.js +3 -3
  16. package/dist/utils.js +1 -1
  17. package/docs/api/classes/ColumnFactory.md +1 -1
  18. package/docs/api/classes/ErrorBoundary.md +1 -1
  19. package/docs/api/classes/InvalidScopeError.md +1 -1
  20. package/docs/api/classes/MissingUserContextError.md +1 -1
  21. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  22. package/docs/api/classes/PermissionDeniedError.md +1 -1
  23. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  24. package/docs/api/classes/RBACAuditManager.md +1 -1
  25. package/docs/api/classes/RBACCache.md +1 -1
  26. package/docs/api/classes/RBACEngine.md +3 -3
  27. package/docs/api/classes/RBACError.md +1 -1
  28. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  29. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  30. package/docs/api/classes/StorageUtils.md +1 -1
  31. package/docs/api/enums/FileCategory.md +1 -1
  32. package/docs/api/interfaces/AggregateConfig.md +1 -1
  33. package/docs/api/interfaces/ButtonProps.md +1 -1
  34. package/docs/api/interfaces/CardProps.md +1 -1
  35. package/docs/api/interfaces/ColorPalette.md +1 -1
  36. package/docs/api/interfaces/ColorShade.md +1 -1
  37. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  38. package/docs/api/interfaces/DataRecord.md +1 -1
  39. package/docs/api/interfaces/DataTableAction.md +1 -1
  40. package/docs/api/interfaces/DataTableColumn.md +1 -1
  41. package/docs/api/interfaces/DataTableProps.md +1 -1
  42. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  43. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  44. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  45. package/docs/api/interfaces/FileDisplayProps.md +1 -1
  46. package/docs/api/interfaces/FileMetadata.md +1 -1
  47. package/docs/api/interfaces/FileReference.md +1 -1
  48. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  49. package/docs/api/interfaces/FileUploadOptions.md +1 -1
  50. package/docs/api/interfaces/FileUploadProps.md +1 -1
  51. package/docs/api/interfaces/FooterProps.md +1 -1
  52. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  53. package/docs/api/interfaces/InputProps.md +1 -1
  54. package/docs/api/interfaces/LabelProps.md +1 -1
  55. package/docs/api/interfaces/LoginFormProps.md +1 -1
  56. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  57. package/docs/api/interfaces/NavigationContextType.md +1 -1
  58. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  59. package/docs/api/interfaces/NavigationItem.md +1 -1
  60. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  61. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  62. package/docs/api/interfaces/Organisation.md +1 -1
  63. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  64. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  65. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  66. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  67. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  68. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  69. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  70. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  71. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  72. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  73. package/docs/api/interfaces/PaletteData.md +1 -1
  74. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  75. package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
  76. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  77. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  78. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  79. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  80. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  81. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  82. package/docs/api/interfaces/RBACConfig.md +1 -1
  83. package/docs/api/interfaces/RBACLogger.md +1 -1
  84. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  85. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  86. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  87. package/docs/api/interfaces/RouteConfig.md +1 -1
  88. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  89. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  90. package/docs/api/interfaces/StorageConfig.md +1 -1
  91. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  92. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  93. package/docs/api/interfaces/StorageListOptions.md +1 -1
  94. package/docs/api/interfaces/StorageListResult.md +1 -1
  95. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  96. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  97. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  98. package/docs/api/interfaces/StyleImport.md +1 -1
  99. package/docs/api/interfaces/SwitchProps.md +1 -1
  100. package/docs/api/interfaces/ToastActionElement.md +1 -1
  101. package/docs/api/interfaces/ToastProps.md +1 -1
  102. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  103. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  104. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  105. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  106. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  107. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  108. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +1 -1
  109. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
  110. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  111. package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
  112. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  113. package/docs/api/interfaces/UserEventAccess.md +1 -1
  114. package/docs/api/interfaces/UserMenuProps.md +1 -1
  115. package/docs/api/interfaces/UserProfile.md +1 -1
  116. package/docs/api/modules.md +5 -5
  117. package/docs/architecture/rpc-function-standards.md +131 -11
  118. package/package.json +1 -1
  119. package/src/components/Dialog/Dialog.tsx +3 -2
  120. package/src/components/NavigationMenu/NavigationMenu.tsx +29 -5
  121. package/src/rbac/engine.ts +4 -2
  122. package/dist/chunk-EKVVTPIF.js.map +0 -1
  123. /package/dist/{DataTable-3D3BUZDV.js.map → DataTable-3JRLZXER.js.map} +0 -0
  124. /package/dist/{api-QPMBZZUZ.js.map → api-PKU4PUBO.js.map} +0 -0
  125. /package/dist/{chunk-MNSGWRPB.js.map → chunk-HKWQN44G.js.map} +0 -0
  126. /package/dist/{chunk-C5RN4TE5.js.map → chunk-KTHLNIMA.js.map} +0 -0
  127. /package/dist/{chunk-I7JC7PTJ.js.map → chunk-ZPXWJA4H.js.map} +0 -0
@@ -54,9 +54,9 @@ import {
54
54
  sortHierarchicalDataWithSorting,
55
55
  validateHierarchicalData,
56
56
  validatePaginationConfig
57
- } from "./chunk-WMPZY26G.js";
58
- import "./chunk-I7JC7PTJ.js";
59
- import "./chunk-TAJRS6YB.js";
57
+ } from "./chunk-JHWQNJP3.js";
58
+ import "./chunk-ZPXWJA4H.js";
59
+ import "./chunk-QKIVSZ2O.js";
60
60
  import "./chunk-3OGQLOJM.js";
61
61
  import {
62
62
  CircuitBreaker,
@@ -157,4 +157,4 @@ export {
157
157
  validateHierarchicalData,
158
158
  validatePaginationConfig
159
159
  };
160
- //# sourceMappingURL=DataTable-3D3BUZDV.js.map
160
+ //# sourceMappingURL=DataTable-3JRLZXER.js.map
@@ -20,7 +20,7 @@ import {
20
20
  isSuperAdmin,
21
21
  resolveAppContext,
22
22
  setupRBAC
23
- } from "./chunk-TAJRS6YB.js";
23
+ } from "./chunk-QKIVSZ2O.js";
24
24
  import "./chunk-3OGQLOJM.js";
25
25
  import "./chunk-PLDDJCW6.js";
26
26
  export {
@@ -46,4 +46,4 @@ export {
46
46
  resolveAppContext,
47
47
  setupRBAC
48
48
  };
49
- //# sourceMappingURL=api-QPMBZZUZ.js.map
49
+ //# sourceMappingURL=api-PKU4PUBO.js.map
@@ -25,16 +25,16 @@ import {
25
25
  SelectSeparator,
26
26
  SelectTrigger,
27
27
  SelectValue
28
- } from "./chunk-WMPZY26G.js";
28
+ } from "./chunk-JHWQNJP3.js";
29
29
  import {
30
30
  useCan,
31
31
  usePermissions,
32
32
  useRBAC,
33
33
  useResolvedScope
34
- } from "./chunk-I7JC7PTJ.js";
34
+ } from "./chunk-ZPXWJA4H.js";
35
35
  import {
36
36
  isSuperAdmin
37
- } from "./chunk-TAJRS6YB.js";
37
+ } from "./chunk-QKIVSZ2O.js";
38
38
  import {
39
39
  OrganisationProvider_exports,
40
40
  PublicErrorBoundary,
@@ -941,7 +941,7 @@ var NavigationMenu = React9.forwardRef(({
941
941
  eventId: void 0,
942
942
  appId: void 0
943
943
  });
944
- if (resolvedScope?.organisationId) {
944
+ if (!scopeLoading && resolvedScope?.organisationId) {
945
945
  const newOrgId = resolvedScope.organisationId;
946
946
  const newEventId = resolvedScope.eventId;
947
947
  const newAppId = resolvedScope.appId;
@@ -952,7 +952,7 @@ var NavigationMenu = React9.forwardRef(({
952
952
  appId: newAppId
953
953
  };
954
954
  }
955
- } else if (!resolvedScope) {
955
+ } else if (!scopeLoading && !resolvedScope) {
956
956
  if (stableScopeRef.current.organisationId !== "") {
957
957
  stableScopeRef.current = {
958
958
  organisationId: "",
@@ -967,9 +967,16 @@ var NavigationMenu = React9.forwardRef(({
967
967
  userId,
968
968
  stableScope
969
969
  );
970
+ const previousFilteredItemsRef = React9.useRef([]);
970
971
  const filteredItems = React9.useMemo(() => {
971
972
  if (filterByPermissions) {
972
- if (!authContext || !rbacContext || scopeLoading || permissionsLoading || !resolvedScope?.organisationId) {
973
+ if (!authContext || !rbacContext || scopeLoading || !resolvedScope?.organisationId) {
974
+ return [];
975
+ }
976
+ if (permissionsLoading) {
977
+ if (previousFilteredItemsRef.current.length > 0) {
978
+ return previousFilteredItemsRef.current;
979
+ }
973
980
  return [];
974
981
  }
975
982
  if (permissionsError || !permissionMap || Object.keys(permissionMap).length === 0) {
@@ -1086,6 +1093,7 @@ var NavigationMenu = React9.forwardRef(({
1086
1093
  };
1087
1094
  };
1088
1095
  const filtered = (items || []).map((item) => filterItem(item)).filter((item) => item !== null);
1096
+ previousFilteredItemsRef.current = filtered;
1089
1097
  return filtered;
1090
1098
  }, [
1091
1099
  items,
@@ -1577,7 +1585,7 @@ function PaceAppLayout({
1577
1585
  appId: user.user_metadata?.appId || user.app_metadata?.appId
1578
1586
  };
1579
1587
  try {
1580
- const { isSuperAdmin: isSuperAdmin2 } = await import("./api-QPMBZZUZ.js");
1588
+ const { isSuperAdmin: isSuperAdmin2 } = await import("./api-PKU4PUBO.js");
1581
1589
  const isSuper = await isSuperAdmin2(user.id);
1582
1590
  if (isSuper) {
1583
1591
  if (isMounted) {
@@ -1598,7 +1606,7 @@ function PaceAppLayout({
1598
1606
  return;
1599
1607
  }
1600
1608
  try {
1601
- const { getPermissionMap } = await import("./api-QPMBZZUZ.js");
1609
+ const { getPermissionMap } = await import("./api-PKU4PUBO.js");
1602
1610
  const permissionMap = await getPermissionMap({
1603
1611
  userId: user.id,
1604
1612
  scope: scope2
@@ -1657,7 +1665,7 @@ function PaceAppLayout({
1657
1665
  let hasAccess = true;
1658
1666
  if (currentRoute.pageId && currentRoute.permissions && currentRoute.permissions.length > 0) {
1659
1667
  try {
1660
- const { isPermittedCached } = await import("./api-QPMBZZUZ.js");
1668
+ const { isPermittedCached } = await import("./api-PKU4PUBO.js");
1661
1669
  const hasPagePermission = await isPermittedCached({
1662
1670
  userId: user?.id || "",
1663
1671
  scope,
@@ -4509,4 +4517,4 @@ export {
4509
4517
  PublicPageDiagnostic,
4510
4518
  PublicPageContextChecker
4511
4519
  };
4512
- //# sourceMappingURL=chunk-EKVVTPIF.js.map
4520
+ //# sourceMappingURL=chunk-5YIZFEUQ.js.map