@jmruthers/pace-core 0.5.169 → 0.5.171

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 (124) hide show
  1. package/dist/{chunk-D2BVDX3I.js → chunk-R22KYCHR.js} +63 -16
  2. package/dist/chunk-R22KYCHR.js.map +1 -0
  3. package/dist/components.js +1 -1
  4. package/dist/index.js +1 -1
  5. package/docs/api/classes/ColumnFactory.md +1 -1
  6. package/docs/api/classes/ErrorBoundary.md +1 -1
  7. package/docs/api/classes/InvalidScopeError.md +1 -1
  8. package/docs/api/classes/MissingUserContextError.md +1 -1
  9. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  10. package/docs/api/classes/PermissionDeniedError.md +1 -1
  11. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  12. package/docs/api/classes/RBACAuditManager.md +1 -1
  13. package/docs/api/classes/RBACCache.md +1 -1
  14. package/docs/api/classes/RBACEngine.md +1 -1
  15. package/docs/api/classes/RBACError.md +1 -1
  16. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  17. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  18. package/docs/api/classes/StorageUtils.md +1 -1
  19. package/docs/api/enums/FileCategory.md +1 -1
  20. package/docs/api/interfaces/AggregateConfig.md +1 -1
  21. package/docs/api/interfaces/BadgeProps.md +1 -1
  22. package/docs/api/interfaces/ButtonProps.md +1 -1
  23. package/docs/api/interfaces/CalendarProps.md +1 -1
  24. package/docs/api/interfaces/CardProps.md +1 -1
  25. package/docs/api/interfaces/ColorPalette.md +1 -1
  26. package/docs/api/interfaces/ColorShade.md +1 -1
  27. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  28. package/docs/api/interfaces/DataRecord.md +1 -1
  29. package/docs/api/interfaces/DataTableAction.md +1 -1
  30. package/docs/api/interfaces/DataTableColumn.md +1 -1
  31. package/docs/api/interfaces/DataTableProps.md +1 -1
  32. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  33. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  34. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  35. package/docs/api/interfaces/EventAppRoleData.md +1 -1
  36. package/docs/api/interfaces/EventLogoProps.md +1 -1
  37. package/docs/api/interfaces/ExportColumn.md +1 -1
  38. package/docs/api/interfaces/ExportOptions.md +1 -1
  39. package/docs/api/interfaces/FileDisplayProps.md +1 -1
  40. package/docs/api/interfaces/FileMetadata.md +1 -1
  41. package/docs/api/interfaces/FileReference.md +1 -1
  42. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  43. package/docs/api/interfaces/FileUploadOptions.md +1 -1
  44. package/docs/api/interfaces/FileUploadProps.md +1 -1
  45. package/docs/api/interfaces/FooterProps.md +1 -1
  46. package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
  47. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  48. package/docs/api/interfaces/InputProps.md +1 -1
  49. package/docs/api/interfaces/LabelProps.md +1 -1
  50. package/docs/api/interfaces/LoginFormProps.md +1 -1
  51. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  52. package/docs/api/interfaces/NavigationContextType.md +1 -1
  53. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  54. package/docs/api/interfaces/NavigationItem.md +1 -1
  55. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  56. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  57. package/docs/api/interfaces/Organisation.md +1 -1
  58. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  59. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  60. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  61. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  62. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  63. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  64. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  65. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  66. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  67. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  68. package/docs/api/interfaces/PaletteData.md +1 -1
  69. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  70. package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
  71. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  72. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  73. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  74. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  75. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  76. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  77. package/docs/api/interfaces/RBACConfig.md +1 -1
  78. package/docs/api/interfaces/RBACLogger.md +1 -1
  79. package/docs/api/interfaces/ResourcePermissions.md +1 -1
  80. package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
  81. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  82. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  83. package/docs/api/interfaces/RoleManagementResult.md +1 -1
  84. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  85. package/docs/api/interfaces/RouteConfig.md +1 -1
  86. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  87. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  88. package/docs/api/interfaces/SessionRestorationLoaderProps.md +1 -1
  89. package/docs/api/interfaces/StorageConfig.md +1 -1
  90. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  91. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  92. package/docs/api/interfaces/StorageListOptions.md +1 -1
  93. package/docs/api/interfaces/StorageListResult.md +1 -1
  94. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  95. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  96. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  97. package/docs/api/interfaces/StyleImport.md +1 -1
  98. package/docs/api/interfaces/SwitchProps.md +1 -1
  99. package/docs/api/interfaces/TabsContentProps.md +1 -1
  100. package/docs/api/interfaces/TabsListProps.md +1 -1
  101. package/docs/api/interfaces/TabsProps.md +1 -1
  102. package/docs/api/interfaces/TabsTriggerProps.md +1 -1
  103. package/docs/api/interfaces/TextareaProps.md +1 -1
  104. package/docs/api/interfaces/ToastActionElement.md +1 -1
  105. package/docs/api/interfaces/ToastProps.md +1 -1
  106. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  107. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  108. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  109. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  110. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  111. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  112. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +1 -1
  113. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
  114. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  115. package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
  116. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  117. package/docs/api/interfaces/UseResourcePermissionsOptions.md +1 -1
  118. package/docs/api/interfaces/UserEventAccess.md +1 -1
  119. package/docs/api/interfaces/UserMenuProps.md +1 -1
  120. package/docs/api/interfaces/UserProfile.md +1 -1
  121. package/docs/api/modules.md +2 -2
  122. package/package.json +1 -1
  123. package/src/components/NavigationMenu/NavigationMenu.tsx +65 -14
  124. package/dist/chunk-D2BVDX3I.js.map +0 -1
@@ -1282,6 +1282,15 @@ var NavigationMenu = React12.forwardRef(({
1282
1282
  }, [filterByPermissions, permissionMap, permissionsLoading, permissionsError, stableScope]);
1283
1283
  const previousFilteredItemsRef = React12.useRef([]);
1284
1284
  const filteredItems = React12.useMemo(() => {
1285
+ logger.warn("NavigationMenu", "filteredItems useMemo running", {
1286
+ filterByPermissions,
1287
+ hasAuthContext: !!authContext,
1288
+ hasRbacContext: !!rbacContext,
1289
+ permissionsLoading,
1290
+ permissionMapSize: permissionMap ? Object.keys(permissionMap).length : 0,
1291
+ permissionsError: permissionsError?.message,
1292
+ itemsCount: items?.length || 0
1293
+ });
1285
1294
  if (filterByPermissions) {
1286
1295
  const isOrgContextReady = orgContextReady && selectedOrganisation?.id;
1287
1296
  const isEventContextReady = eventLoadingRaw === void 0 ? true : !eventLoading;
@@ -1317,7 +1326,16 @@ var NavigationMenu = React12.forwardRef(({
1317
1326
  const permissions = item.permissions.filter((p) => typeof p === "string").map((p) => p);
1318
1327
  if (permissions.length > 0) {
1319
1328
  const hasPermission = hasAnyPermission(permissions);
1320
- if (!hasPermission) return false;
1329
+ if (!hasPermission) {
1330
+ logger.warn("NavigationMenu", `Filtering out navigation item "${item.label}" - no explicit permission:`, {
1331
+ itemId: item.id,
1332
+ href: item.href,
1333
+ requiredPermissions: permissions,
1334
+ hasPermission,
1335
+ permissionMapKeys: Object.keys(permissionMap).slice(0, 20)
1336
+ });
1337
+ return false;
1338
+ }
1321
1339
  }
1322
1340
  }
1323
1341
  if (item.roles && item.roles.length > 0) {
@@ -1338,7 +1356,18 @@ var NavigationMenu = React12.forwardRef(({
1338
1356
  return rbacContext.organisationRole === role || rbacContext.eventAppRole === role || rbacContext.isSuperAdmin;
1339
1357
  }
1340
1358
  });
1341
- if (!hasRole) return false;
1359
+ if (!hasRole) {
1360
+ logger.warn("NavigationMenu", `Filtering out navigation item "${item.label}" - no required role:`, {
1361
+ itemId: item.id,
1362
+ href: item.href,
1363
+ requiredRoles: item.roles,
1364
+ hasRole,
1365
+ organisationRole: rbacContext.organisationRole,
1366
+ eventAppRole: rbacContext.eventAppRole,
1367
+ isSuperAdmin: rbacContext.isSuperAdmin
1368
+ });
1369
+ return false;
1370
+ }
1342
1371
  }
1343
1372
  if (item.accessLevel) {
1344
1373
  if (typeof item.accessLevel === "string") {
@@ -1363,6 +1392,13 @@ var NavigationMenu = React12.forwardRef(({
1363
1392
  const requiredLevel = levelHierarchy[accessLevel] || 0;
1364
1393
  const userLevel = userAccessLevel ? levelHierarchy[userAccessLevel] || 0 : 0;
1365
1394
  if (userLevel < requiredLevel) {
1395
+ logger.warn("NavigationMenu", `Filtering out navigation item "${item.label}" - insufficient access level:`, {
1396
+ itemId: item.id,
1397
+ href: item.href,
1398
+ requiredAccessLevel: item.accessLevel,
1399
+ userAccessLevel,
1400
+ userEventRole: rbacContext.eventAppRole
1401
+ });
1366
1402
  return false;
1367
1403
  }
1368
1404
  }
@@ -1376,23 +1412,29 @@ var NavigationMenu = React12.forwardRef(({
1376
1412
  const hasPagePermission = permissionMap[pagePermission] === true;
1377
1413
  const finalHasPermission = isSuperAdmin2 || hasPagePermission;
1378
1414
  if (!finalHasPermission) {
1379
- if (auditLog) {
1380
- logger.debug("NavigationMenu", `Filtering out navigation item "${item.label}" - no page permission:`, {
1381
- itemId: item.id,
1382
- href: item.href,
1383
- pageId,
1384
- permission: pagePermission,
1385
- hasPermission: finalHasPermission,
1386
- isSuperAdmin: isSuperAdmin2,
1387
- permissionMapValue: permissionMap[pagePermission],
1388
- permissionMapKeys: Object.keys(permissionMap).slice(0, 10)
1389
- // Show first 10 keys for debugging
1390
- });
1391
- }
1415
+ logger.warn("NavigationMenu", `Filtering out navigation item "${item.label}" - no page permission:`, {
1416
+ itemId: item.id,
1417
+ href: item.href,
1418
+ pageId,
1419
+ permission: pagePermission,
1420
+ hasPermission: finalHasPermission,
1421
+ isSuperAdmin: isSuperAdmin2,
1422
+ permissionMapValue: permissionMap[pagePermission],
1423
+ permissionMapKeys: Object.keys(permissionMap).slice(0, 20)
1424
+ // Show first 20 keys for debugging
1425
+ });
1392
1426
  return false;
1393
1427
  }
1394
1428
  }
1395
1429
  }
1430
+ logger.debug("NavigationMenu", `Navigation item "${item.label}" passed all permission checks`, {
1431
+ itemId: item.id,
1432
+ href: item.href,
1433
+ hasPermissions: !!(item.permissions && item.permissions.length > 0),
1434
+ hasRoles: !!(item.roles && item.roles.length > 0),
1435
+ hasAccessLevel: !!item.accessLevel,
1436
+ hasHref: !!item.href
1437
+ });
1396
1438
  return true;
1397
1439
  };
1398
1440
  const filterItem = (item) => {
@@ -1411,6 +1453,11 @@ var NavigationMenu = React12.forwardRef(({
1411
1453
  };
1412
1454
  };
1413
1455
  const filtered = (items || []).map((item) => filterItem(item)).filter((item) => item !== null);
1456
+ logger.warn("NavigationMenu", "filteredItems result", {
1457
+ originalItemsCount: items?.length || 0,
1458
+ filteredItemsCount: filtered.length,
1459
+ permissionMapSize: permissionMap ? Object.keys(permissionMap).length : 0
1460
+ });
1414
1461
  previousFilteredItemsRef.current = filtered;
1415
1462
  return filtered;
1416
1463
  }, [
@@ -4655,4 +4702,4 @@ export {
4655
4702
  EventLogoCompact,
4656
4703
  EventLogoLarge
4657
4704
  };
4658
- //# sourceMappingURL=chunk-D2BVDX3I.js.map
4705
+ //# sourceMappingURL=chunk-R22KYCHR.js.map