@jmruthers/pace-core 0.5.176 → 0.5.178

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 (136) hide show
  1. package/dist/{DataTable-XLD74HEH.js → DataTable-4VSEJQ7D.js} +3 -3
  2. package/dist/{chunk-G2JIKESV.js → chunk-GOL4XSJU.js} +7 -11
  3. package/dist/chunk-GOL4XSJU.js.map +1 -0
  4. package/dist/{chunk-2R2QIWZ5.js → chunk-GQA2LIAE.js} +2 -2
  5. package/dist/{chunk-TTHIANWS.js → chunk-LEBYAJVF.js} +2 -2
  6. package/dist/{chunk-KATF5CZL.js → chunk-ONI7Y733.js} +4 -3
  7. package/dist/chunk-ONI7Y733.js.map +1 -0
  8. package/dist/components.js +3 -3
  9. package/dist/index.js +4 -4
  10. package/dist/rbac/index.js +2 -2
  11. package/dist/utils.js +1 -1
  12. package/docs/api/classes/ColumnFactory.md +1 -1
  13. package/docs/api/classes/ErrorBoundary.md +1 -1
  14. package/docs/api/classes/InvalidScopeError.md +1 -1
  15. package/docs/api/classes/MissingUserContextError.md +1 -1
  16. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  17. package/docs/api/classes/PermissionDeniedError.md +1 -1
  18. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  19. package/docs/api/classes/RBACAuditManager.md +1 -1
  20. package/docs/api/classes/RBACCache.md +1 -1
  21. package/docs/api/classes/RBACEngine.md +1 -1
  22. package/docs/api/classes/RBACError.md +1 -1
  23. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  24. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  25. package/docs/api/classes/StorageUtils.md +1 -1
  26. package/docs/api/enums/FileCategory.md +1 -1
  27. package/docs/api/interfaces/AggregateConfig.md +1 -1
  28. package/docs/api/interfaces/BadgeProps.md +1 -1
  29. package/docs/api/interfaces/ButtonProps.md +1 -1
  30. package/docs/api/interfaces/CalendarProps.md +1 -1
  31. package/docs/api/interfaces/CardProps.md +1 -1
  32. package/docs/api/interfaces/ColorPalette.md +1 -1
  33. package/docs/api/interfaces/ColorShade.md +1 -1
  34. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  35. package/docs/api/interfaces/DataRecord.md +1 -1
  36. package/docs/api/interfaces/DataTableAction.md +1 -1
  37. package/docs/api/interfaces/DataTableColumn.md +1 -1
  38. package/docs/api/interfaces/DataTableProps.md +1 -1
  39. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  40. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  41. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  42. package/docs/api/interfaces/EventAppRoleData.md +1 -1
  43. package/docs/api/interfaces/EventLogoProps.md +1 -1
  44. package/docs/api/interfaces/ExportColumn.md +1 -1
  45. package/docs/api/interfaces/ExportOptions.md +1 -1
  46. package/docs/api/interfaces/FileDisplayProps.md +1 -1
  47. package/docs/api/interfaces/FileMetadata.md +1 -1
  48. package/docs/api/interfaces/FileReference.md +1 -1
  49. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  50. package/docs/api/interfaces/FileUploadOptions.md +1 -1
  51. package/docs/api/interfaces/FileUploadProps.md +1 -1
  52. package/docs/api/interfaces/FooterProps.md +1 -1
  53. package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
  54. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  55. package/docs/api/interfaces/InputProps.md +1 -1
  56. package/docs/api/interfaces/LabelProps.md +1 -1
  57. package/docs/api/interfaces/LoginFormProps.md +1 -1
  58. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  59. package/docs/api/interfaces/NavigationContextType.md +1 -1
  60. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  61. package/docs/api/interfaces/NavigationItem.md +1 -1
  62. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  63. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  64. package/docs/api/interfaces/Organisation.md +1 -1
  65. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  66. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  67. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  68. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  69. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  70. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  71. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  72. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  73. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  74. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  75. package/docs/api/interfaces/PaletteData.md +1 -1
  76. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  77. package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
  78. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  79. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  80. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  81. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  82. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  83. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  84. package/docs/api/interfaces/RBACConfig.md +1 -1
  85. package/docs/api/interfaces/RBACLogger.md +1 -1
  86. package/docs/api/interfaces/ResourcePermissions.md +1 -1
  87. package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
  88. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  89. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  90. package/docs/api/interfaces/RoleManagementResult.md +1 -1
  91. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  92. package/docs/api/interfaces/RouteConfig.md +1 -1
  93. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  94. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  95. package/docs/api/interfaces/SessionRestorationLoaderProps.md +1 -1
  96. package/docs/api/interfaces/StorageConfig.md +1 -1
  97. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  98. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  99. package/docs/api/interfaces/StorageListOptions.md +1 -1
  100. package/docs/api/interfaces/StorageListResult.md +1 -1
  101. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  102. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  103. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  104. package/docs/api/interfaces/StyleImport.md +1 -1
  105. package/docs/api/interfaces/SwitchProps.md +1 -1
  106. package/docs/api/interfaces/TabsContentProps.md +1 -1
  107. package/docs/api/interfaces/TabsListProps.md +1 -1
  108. package/docs/api/interfaces/TabsProps.md +1 -1
  109. package/docs/api/interfaces/TabsTriggerProps.md +1 -1
  110. package/docs/api/interfaces/TextareaProps.md +1 -1
  111. package/docs/api/interfaces/ToastActionElement.md +1 -1
  112. package/docs/api/interfaces/ToastProps.md +1 -1
  113. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  114. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  115. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  116. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  117. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  118. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  119. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +1 -1
  120. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
  121. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  122. package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
  123. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  124. package/docs/api/interfaces/UseResourcePermissionsOptions.md +1 -1
  125. package/docs/api/interfaces/UserEventAccess.md +1 -1
  126. package/docs/api/interfaces/UserMenuProps.md +1 -1
  127. package/docs/api/interfaces/UserProfile.md +1 -1
  128. package/docs/api/modules.md +2 -2
  129. package/package.json +1 -1
  130. package/src/components/PaceAppLayout/PaceAppLayout.tsx +6 -9
  131. package/src/rbac/hooks/useRBAC.ts +3 -2
  132. package/dist/chunk-G2JIKESV.js.map +0 -1
  133. package/dist/chunk-KATF5CZL.js.map +0 -1
  134. /package/dist/{DataTable-XLD74HEH.js.map → DataTable-4VSEJQ7D.js.map} +0 -0
  135. /package/dist/{chunk-2R2QIWZ5.js.map → chunk-GQA2LIAE.js.map} +0 -0
  136. /package/dist/{chunk-TTHIANWS.js.map → chunk-LEBYAJVF.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.176](../README.md) / [Exports](../modules.md) / UserMenuProps
1
+ [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UserMenuProps
2
2
 
3
3
  # Interface: UserMenuProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.176](../README.md) / [Exports](../modules.md) / UserProfile
1
+ [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UserProfile
2
2
 
3
3
  # Interface: UserProfile
4
4
 
@@ -1,6 +1,6 @@
1
- [@jmruthers/pace-core - v0.5.176](README.md) / Exports
1
+ [@jmruthers/pace-core - v0.5.178](README.md) / Exports
2
2
 
3
- # @jmruthers/pace-core - v0.5.176
3
+ # @jmruthers/pace-core - v0.5.178
4
4
 
5
5
  **`File`**
6
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jmruthers/pace-core",
3
- "version": "0.5.176",
3
+ "version": "0.5.178",
4
4
  "description": "Clean, modern React component library with Tailwind v4 styling and native utilities",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -550,12 +550,9 @@ export function PaceAppLayout({
550
550
  return;
551
551
  }
552
552
 
553
- // Check if organisation context is available
554
- const scope = {
555
- organisationId: user.user_metadata?.organisationId || user.app_metadata?.organisationId,
556
- eventId: user.user_metadata?.eventId || user.app_metadata?.eventId,
557
- appId: user.user_metadata?.appId || user.app_metadata?.appId,
558
- };
553
+ // Use the scope from context (includes selectedOrganisation and selectedEvent)
554
+ // This is critical for event-based apps where event context comes from EventService, not user metadata
555
+ const currentScope = scope;
559
556
 
560
557
  // For super admins, show all items (they bypass permission checks)
561
558
  // Gracefully handle RBAC not being initialized (e.g., in tests)
@@ -584,7 +581,7 @@ export function PaceAppLayout({
584
581
 
585
582
  // If no organisation context yet, show all items until context is ready
586
583
  // This prevents navigation from being empty while context loads
587
- if (!scope.organisationId) {
584
+ if (!currentScope.organisationId) {
588
585
  if (isMounted) {
589
586
  setFilteredMenuItems(baseMenuItems);
590
587
  }
@@ -598,7 +595,7 @@ export function PaceAppLayout({
598
595
  const { getPermissionMap } = await import('../../rbac/api');
599
596
  const permissionMap = await getPermissionMap({
600
597
  userId: user.id,
601
- scope,
598
+ scope: currentScope,
602
599
  });
603
600
 
604
601
  // Filter items using the permission map (synchronous, no rate limit issues)
@@ -639,7 +636,7 @@ export function PaceAppLayout({
639
636
  return () => {
640
637
  isMounted = false;
641
638
  };
642
- }, [baseMenuItems, filterNavigationByPermissions, pageIdMapping, routePermissions, defaultPermission, can, user?.id, user?.user_metadata, user?.app_metadata]);
639
+ }, [baseMenuItems, filterNavigationByPermissions, pageIdMapping, routePermissions, defaultPermission, can, user?.id, scope]);
643
640
 
644
641
  // NEW: Phase 2 - Enhanced Routing Features
645
642
  // Check route access for role-based routing
@@ -232,7 +232,7 @@ export function useRBAC(pageId?: string): UserRBACContext {
232
232
  } finally {
233
233
  setIsLoading(false);
234
234
  }
235
- }, [appName, logger, resetState, selectedEvent, selectedEvent?.event_id, selectedOrganisation, selectedOrganisation?.id, session, user, requiresEvent, eventLoading, appConfig, orgContextReady, orgLoading]);
235
+ }, [appName, logger, resetState, selectedEvent?.event_id, selectedOrganisation?.id, session, user, requiresEvent, eventLoading, appConfig, orgContextReady, orgLoading]);
236
236
 
237
237
  const hasGlobalPermission = useCallback(
238
238
  (permission: string): boolean => {
@@ -266,6 +266,7 @@ export function useRBAC(pageId?: string): UserRBACContext {
266
266
  requiresEvent,
267
267
  eventLoading,
268
268
  hasSelectedEvent: !!selectedEvent,
269
+ selectedEventId: selectedEvent?.event_id,
269
270
  hasUser: !!user,
270
271
  hasSession: !!session,
271
272
  hasSelectedOrganisation: !!selectedOrganisation,
@@ -274,7 +275,7 @@ export function useRBAC(pageId?: string): UserRBACContext {
274
275
  orgLoading
275
276
  });
276
277
  loadRBACContext();
277
- }, [loadRBACContext, appName, requiresEvent, eventLoading, selectedEvent, user, session, selectedOrganisation, orgContextReady, orgLoading]);
278
+ }, [loadRBACContext, appName, requiresEvent, eventLoading, selectedEvent?.event_id, user, session, selectedOrganisation?.id, orgContextReady, orgLoading]);
278
279
 
279
280
  return {
280
281
  user,