@jmruthers/pace-core 0.5.158 → 0.5.160

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-J33RZUVQ.js → DataTable-AB5BBQXJ.js} +3 -3
  2. package/dist/{chunk-PCSNCMVD.js → chunk-3KYPEQVM.js} +2 -2
  3. package/dist/{chunk-YBBFFGBX.js → chunk-4XFFMXYN.js} +2 -2
  4. package/dist/{chunk-KMPFOZJU.js → chunk-5SS46AOR.js} +32 -25
  5. package/dist/chunk-5SS46AOR.js.map +1 -0
  6. package/dist/{chunk-M4IQISCX.js → chunk-SRASYANN.js} +20 -18
  7. package/dist/chunk-SRASYANN.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 +8 -8
  129. package/package.json +1 -1
  130. package/src/components/NavigationMenu/NavigationMenu.tsx +20 -17
  131. package/src/rbac/hooks/usePermissions.ts +35 -23
  132. package/dist/chunk-KMPFOZJU.js.map +0 -1
  133. package/dist/chunk-M4IQISCX.js.map +0 -1
  134. /package/dist/{DataTable-J33RZUVQ.js.map → DataTable-AB5BBQXJ.js.map} +0 -0
  135. /package/dist/{chunk-PCSNCMVD.js.map → chunk-3KYPEQVM.js.map} +0 -0
  136. /package/dist/{chunk-YBBFFGBX.js.map → chunk-4XFFMXYN.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / RBACConfig
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / RBACConfig
2
2
 
3
3
  # Interface: RBACConfig
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / RBACLogger
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / RBACLogger
2
2
 
3
3
  # Interface: RBACLogger
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / ResourcePermissions
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / ResourcePermissions
2
2
 
3
3
  # Interface: ResourcePermissions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / RevokeEventAppRoleParams
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / RevokeEventAppRoleParams
2
2
 
3
3
  # Interface: RevokeEventAppRoleParams
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / RoleBasedRouterContextType
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / RoleBasedRouterContextType
2
2
 
3
3
  # Interface: RoleBasedRouterContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / RoleBasedRouterProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / RoleBasedRouterProps
2
2
 
3
3
  # Interface: RoleBasedRouterProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / RoleManagementResult
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / RoleManagementResult
2
2
 
3
3
  # Interface: RoleManagementResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / RouteAccessRecord
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / RouteAccessRecord
2
2
 
3
3
  # Interface: RouteAccessRecord
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / RouteConfig
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / RouteConfig
2
2
 
3
3
  # Interface: RouteConfig
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / SecureDataContextType
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / SecureDataContextType
2
2
 
3
3
  # Interface: SecureDataContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / SecureDataProviderProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / SecureDataProviderProps
2
2
 
3
3
  # Interface: SecureDataProviderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / SessionRestorationLoaderProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / SessionRestorationLoaderProps
2
2
 
3
3
  # Interface: SessionRestorationLoaderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / StorageConfig
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / StorageConfig
2
2
 
3
3
  # Interface: StorageConfig
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / StorageFileInfo
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / StorageFileInfo
2
2
 
3
3
  # Interface: StorageFileInfo
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / StorageFileMetadata
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / StorageFileMetadata
2
2
 
3
3
  # Interface: StorageFileMetadata
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / StorageListOptions
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / StorageListOptions
2
2
 
3
3
  # Interface: StorageListOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / StorageListResult
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / StorageListResult
2
2
 
3
3
  # Interface: StorageListResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / StorageUploadOptions
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / StorageUploadOptions
2
2
 
3
3
  # Interface: StorageUploadOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / StorageUploadResult
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / StorageUploadResult
2
2
 
3
3
  # Interface: StorageUploadResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / StorageUrlOptions
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / StorageUrlOptions
2
2
 
3
3
  # Interface: StorageUrlOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / StyleImport
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / StyleImport
2
2
 
3
3
  # Interface: StyleImport
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / SwitchProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / SwitchProps
2
2
 
3
3
  # Interface: SwitchProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / TabsContentProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / TabsContentProps
2
2
 
3
3
  # Interface: TabsContentProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / TabsListProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / TabsListProps
2
2
 
3
3
  # Interface: TabsListProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / TabsProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / TabsProps
2
2
 
3
3
  # Interface: TabsProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / TabsTriggerProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / TabsTriggerProps
2
2
 
3
3
  # Interface: TabsTriggerProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / TextareaProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / TextareaProps
2
2
 
3
3
  # Interface: TextareaProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / ToastActionElement
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / ToastActionElement
2
2
 
3
3
  # Interface: ToastActionElement
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / ToastProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / ToastProps
2
2
 
3
3
  # Interface: ToastProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UnifiedAuthContextType
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UnifiedAuthContextType
2
2
 
3
3
  # Interface: UnifiedAuthContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UnifiedAuthProviderProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UnifiedAuthProviderProps
2
2
 
3
3
  # Interface: UnifiedAuthProviderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UseInactivityTrackerOptions
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UseInactivityTrackerOptions
2
2
 
3
3
  # Interface: UseInactivityTrackerOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UseInactivityTrackerReturn
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UseInactivityTrackerReturn
2
2
 
3
3
  # Interface: UseInactivityTrackerReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UsePublicEventOptions
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UsePublicEventOptions
2
2
 
3
3
  # Interface: UsePublicEventOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UsePublicEventReturn
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UsePublicEventReturn
2
2
 
3
3
  # Interface: UsePublicEventReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayOptions
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayOptions
2
2
 
3
3
  # Interface: UsePublicFileDisplayOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayReturn
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayReturn
2
2
 
3
3
  # Interface: UsePublicFileDisplayReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UsePublicRouteParamsReturn
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UsePublicRouteParamsReturn
2
2
 
3
3
  # Interface: UsePublicRouteParamsReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UseResolvedScopeOptions
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UseResolvedScopeOptions
2
2
 
3
3
  # Interface: UseResolvedScopeOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UseResolvedScopeReturn
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UseResolvedScopeReturn
2
2
 
3
3
  # Interface: UseResolvedScopeReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UseResourcePermissionsOptions
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UseResourcePermissionsOptions
2
2
 
3
3
  # Interface: UseResourcePermissionsOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UserEventAccess
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UserEventAccess
2
2
 
3
3
  # Interface: UserEventAccess
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UserMenuProps
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UserMenuProps
2
2
 
3
3
  # Interface: UserMenuProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.158](../README.md) / [Exports](../modules.md) / UserProfile
1
+ [@jmruthers/pace-core - v0.5.159](../README.md) / [Exports](../modules.md) / UserProfile
2
2
 
3
3
  # Interface: UserProfile
4
4
 
@@ -1,6 +1,6 @@
1
- [@jmruthers/pace-core - v0.5.158](README.md) / Exports
1
+ [@jmruthers/pace-core - v0.5.159](README.md) / Exports
2
2
 
3
- # @jmruthers/pace-core - v0.5.158
3
+ # @jmruthers/pace-core - v0.5.159
4
4
 
5
5
  **`File`**
6
6
 
@@ -6673,7 +6673,7 @@ function MyComponent() {
6673
6673
 
6674
6674
  #### Defined in
6675
6675
 
6676
- [packages/core/src/rbac/hooks/usePermissions.ts:275](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L275)
6676
+ [packages/core/src/rbac/hooks/usePermissions.ts:287](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L287)
6677
6677
 
6678
6678
  ___
6679
6679
 
@@ -6723,7 +6723,7 @@ function MyComponent() {
6723
6723
 
6724
6724
  #### Defined in
6725
6725
 
6726
- [packages/core/src/rbac/hooks/usePermissions.ts:471](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L471)
6726
+ [packages/core/src/rbac/hooks/usePermissions.ts:483](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L483)
6727
6727
 
6728
6728
  ___
6729
6729
 
@@ -6780,7 +6780,7 @@ function MyComponent() {
6780
6780
 
6781
6781
  #### Defined in
6782
6782
 
6783
- [packages/core/src/rbac/hooks/usePermissions.ts:546](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L546)
6783
+ [packages/core/src/rbac/hooks/usePermissions.ts:558](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L558)
6784
6784
 
6785
6785
  ___
6786
6786
 
@@ -6831,7 +6831,7 @@ function MyComponent() {
6831
6831
 
6832
6832
  #### Defined in
6833
6833
 
6834
- [packages/core/src/rbac/hooks/usePermissions.ts:629](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L629)
6834
+ [packages/core/src/rbac/hooks/usePermissions.ts:641](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L641)
6835
6835
 
6836
6836
  ___
6837
6837
 
@@ -6882,7 +6882,7 @@ function MyComponent() {
6882
6882
 
6883
6883
  #### Defined in
6884
6884
 
6885
- [packages/core/src/rbac/hooks/usePermissions.ts:715](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L715)
6885
+ [packages/core/src/rbac/hooks/usePermissions.ts:727](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L727)
6886
6886
 
6887
6887
  ___
6888
6888
 
@@ -6933,7 +6933,7 @@ function MyComponent() {
6933
6933
 
6934
6934
  #### Defined in
6935
6935
 
6936
- [packages/core/src/rbac/hooks/usePermissions.ts:800](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L800)
6936
+ [packages/core/src/rbac/hooks/usePermissions.ts:812](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L812)
6937
6937
 
6938
6938
  ___
6939
6939
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jmruthers/pace-core",
3
- "version": "0.5.158",
3
+ "version": "0.5.160",
4
4
  "description": "Clean, modern React component library with Tailwind v4 styling and native utilities",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -594,27 +594,30 @@ export const NavigationMenu = React.forwardRef<
594
594
  }
595
595
  }, [filterByPermissions, stableScope.organisationId, stableScope.eventId, stableScope.appId, userId]);
596
596
 
597
- // Log when stableScope changes to verify usePermissions receives updates
598
- React.useEffect(() => {
599
- if (filterByPermissions && stableScope.organisationId) {
600
- logger.warn('NavigationMenu', 'Calling usePermissions with stableScope', {
601
- organisationId: stableScope.organisationId,
602
- eventId: stableScope.eventId,
603
- appId: stableScope.appId,
604
- hasAppId: !!stableScope.appId
605
- });
606
- }
607
- }, [filterByPermissions, stableScope.organisationId, stableScope.eventId, stableScope.appId]);
608
-
609
597
  // Create a stable scope reference that React can properly track
598
+ // IMPORTANT: Extract individual values to ensure React detects changes
610
599
  // This ensures usePermissions detects changes when appId changes from undefined to a value
600
+ const orgId = stableScope.organisationId || '';
601
+ const eventId = stableScope.eventId;
602
+ const appId = stableScope.appId;
603
+
611
604
  const stableScopeForPermissions = React.useMemo(() => {
612
- return {
613
- organisationId: stableScope.organisationId || '',
614
- eventId: stableScope.eventId,
615
- appId: stableScope.appId
605
+ const scope = {
606
+ organisationId: orgId,
607
+ eventId: eventId,
608
+ appId: appId
616
609
  };
617
- }, [stableScope.organisationId, stableScope.eventId, stableScope.appId]);
610
+ // Log when scope changes to verify React detects the change
611
+ if (filterByPermissions && scope.organisationId) {
612
+ logger.warn('NavigationMenu', 'stableScopeForPermissions created', {
613
+ organisationId: scope.organisationId,
614
+ eventId: scope.eventId,
615
+ appId: scope.appId,
616
+ hasAppId: !!scope.appId
617
+ });
618
+ }
619
+ return scope;
620
+ }, [filterByPermissions, orgId, eventId, appId]);
618
621
 
619
622
  const { permissions: permissionMap, hasAnyPermission, isLoading: permissionsLoading, error: permissionsError } = usePermissions(
620
623
  userId as any,
@@ -54,17 +54,23 @@ export function usePermissions(userId: UUID, scope: Scope) {
54
54
  const isFetchingRef = useRef(false);
55
55
  const logger = getRBACLogger();
56
56
 
57
+ // Extract individual values to ensure React detects changes
58
+ // This is critical - React compares these values, not the object reference
59
+ const orgId = scope.organisationId || '';
60
+ const eventId = scope.eventId;
61
+ const appId = scope.appId;
62
+
57
63
  // Log when scope changes to verify React detects the change
58
64
  React.useEffect(() => {
59
65
  logger.warn('[usePermissions] Scope changed', {
60
66
  userId,
61
- organisationId: scope.organisationId,
62
- eventId: scope.eventId,
63
- appId: scope.appId,
64
- hasAppId: !!scope.appId,
65
- hasOrganisationId: !!scope.organisationId
67
+ organisationId: orgId,
68
+ eventId: eventId,
69
+ appId: appId,
70
+ hasAppId: !!appId,
71
+ hasOrganisationId: !!orgId
66
72
  });
67
- }, [scope.organisationId, scope.eventId, scope.appId, userId]);
73
+ }, [orgId, eventId, appId, userId]);
68
74
 
69
75
  // Add timeout for missing organisation context (3 seconds)
70
76
  useEffect(() => {
@@ -86,13 +92,12 @@ export function usePermissions(userId: UUID, scope: Scope) {
86
92
  const fetchPermissions = async () => {
87
93
  // Prevent multiple simultaneous fetches
88
94
  if (isFetchingRef.current) {
89
- const logger = getRBACLogger();
90
95
  logger.warn('[usePermissions] Skipping fetch - already fetching', {
91
96
  userId,
92
97
  scope: {
93
- organisationId: scope.organisationId,
94
- eventId: scope.eventId,
95
- appId: scope.appId
98
+ organisationId: orgId,
99
+ eventId: eventId,
100
+ appId: appId
96
101
  }
97
102
  });
98
103
  return;
@@ -107,7 +112,7 @@ export function usePermissions(userId: UUID, scope: Scope) {
107
112
  // Don't fetch permissions if scope is invalid (e.g., organisationId is null/empty)
108
113
  // Wait for organisation context to resolve
109
114
  // IMPORTANT: Don't clear existing permissions here - keep them until we have new ones
110
- if (!scope.organisationId || scope.organisationId === null || (typeof scope.organisationId === 'string' && scope.organisationId.trim() === '')) {
115
+ if (!orgId || orgId === null || (typeof orgId === 'string' && orgId.trim() === '')) {
111
116
  // Keep existing permissions, just mark as loading
112
117
  setIsLoading(true);
113
118
  setError(null);
@@ -117,11 +122,11 @@ export function usePermissions(userId: UUID, scope: Scope) {
117
122
  // CRITICAL: getPermissionMap requires appId to fetch pages and permissions
118
123
  // If appId is missing, it returns an empty map
119
124
  // Wait for appId to be available before fetching
120
- if (!scope.appId) {
125
+ if (!appId) {
121
126
  logger.warn('[usePermissions] Waiting for appId before fetching permissions', {
122
127
  userId,
123
- organisationId: scope.organisationId,
124
- eventId: scope.eventId,
128
+ organisationId: orgId,
129
+ eventId: eventId,
125
130
  hasAppId: false
126
131
  });
127
132
  setIsLoading(true);
@@ -131,11 +136,11 @@ export function usePermissions(userId: UUID, scope: Scope) {
131
136
  logger.warn('[usePermissions] Fetching permissions', {
132
137
  userId,
133
138
  scope: {
134
- organisationId: scope.organisationId,
135
- eventId: scope.eventId,
136
- appId: scope.appId
139
+ organisationId: orgId,
140
+ eventId: eventId,
141
+ appId: appId
137
142
  },
138
- hasAppId: !!scope.appId
143
+ hasAppId: !!appId
139
144
  });
140
145
 
141
146
  try {
@@ -143,16 +148,23 @@ export function usePermissions(userId: UUID, scope: Scope) {
143
148
  setIsLoading(true);
144
149
  setError(null);
145
150
 
151
+ // Build scope object from extracted values
152
+ const scopeForFetch: Scope = {
153
+ organisationId: orgId,
154
+ eventId: eventId,
155
+ appId: appId
156
+ };
157
+
146
158
  // Fetch new permissions - don't clear old ones until we have new ones
147
- const permissionMap = await getPermissionMap({ userId, scope });
159
+ const permissionMap = await getPermissionMap({ userId, scope: scopeForFetch });
148
160
 
149
161
  logger.warn('[usePermissions] Permissions fetched successfully', {
150
162
  permissionCount: Object.keys(permissionMap).length,
151
163
  hasWildcard: !!permissionMap['*'],
152
164
  scope: {
153
- organisationId: scope.organisationId,
154
- eventId: scope.eventId,
155
- appId: scope.appId
165
+ organisationId: orgId,
166
+ eventId: eventId,
167
+ appId: appId
156
168
  }
157
169
  });
158
170
 
@@ -171,7 +183,7 @@ export function usePermissions(userId: UUID, scope: Scope) {
171
183
  };
172
184
 
173
185
  fetchPermissions();
174
- }, [userId, scope.organisationId, scope.eventId, scope.appId]);
186
+ }, [userId, orgId, eventId, appId]);
175
187
 
176
188
  const hasPermission = useCallback((permission: Permission): boolean => {
177
189
  if (permissions['*']) {