@jmruthers/pace-core 0.5.9 → 0.5.11

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 (126) hide show
  1. package/dist/{DataTable-4TQ6VBHW.js → DataTable-7LYDPZXT.js} +5 -5
  2. package/dist/{chunk-PCFG6WRC.js → chunk-7KDZXMES.js} +5 -5
  3. package/dist/{chunk-HXX35Q2M.js → chunk-7UEIZCST.js} +2 -2
  4. package/dist/{chunk-OCM3I4GY.js → chunk-AMOT5ZSZ.js} +3 -3
  5. package/dist/{chunk-PVMYVQSM.js → chunk-CMXBNDPM.js} +3 -3
  6. package/dist/{chunk-K6B7BLSE.js → chunk-DKDTXS5Q.js} +2 -2
  7. package/dist/{chunk-GNTALZV3.js → chunk-DV2Z3RBQ.js} +3 -3
  8. package/dist/{chunk-SM6KCLW5.js → chunk-JV73V2W5.js} +10 -6
  9. package/dist/chunk-JV73V2W5.js.map +1 -0
  10. package/dist/{chunk-CTV3NKPM.js → chunk-ROHDZOP7.js} +3 -3
  11. package/dist/{chunk-QKHFMQ5R.js → chunk-RQ7Y2CN6.js} +30 -5
  12. package/dist/chunk-RQ7Y2CN6.js.map +1 -0
  13. package/dist/{chunk-HD7PYDUV.js → chunk-XYRRPUYV.js} +2 -2
  14. package/dist/components.js +7 -7
  15. package/dist/hooks.js +4 -4
  16. package/dist/index.js +10 -10
  17. package/dist/providers.js +3 -3
  18. package/dist/rbac/index.js +5 -5
  19. package/dist/utils.js +1 -1
  20. package/docs/api/classes/ErrorBoundary.md +1 -1
  21. package/docs/api/classes/InvalidScopeError.md +1 -1
  22. package/docs/api/classes/MissingUserContextError.md +1 -1
  23. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  24. package/docs/api/classes/PermissionDeniedError.md +1 -1
  25. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  26. package/docs/api/classes/RBACAuditManager.md +1 -1
  27. package/docs/api/classes/RBACCache.md +1 -1
  28. package/docs/api/classes/RBACEngine.md +1 -1
  29. package/docs/api/classes/RBACError.md +1 -1
  30. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  31. package/docs/api/classes/SecureSupabaseClient.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/DataTableAction.md +1 -1
  39. package/docs/api/interfaces/DataTableColumn.md +1 -1
  40. package/docs/api/interfaces/DataTableProps.md +1 -1
  41. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  42. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  43. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  44. package/docs/api/interfaces/EventContextType.md +1 -1
  45. package/docs/api/interfaces/EventLogoProps.md +1 -1
  46. package/docs/api/interfaces/EventProviderProps.md +1 -1
  47. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  48. package/docs/api/interfaces/FileUploadProps.md +1 -1
  49. package/docs/api/interfaces/FooterProps.md +1 -1
  50. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  51. package/docs/api/interfaces/InputProps.md +1 -1
  52. package/docs/api/interfaces/LabelProps.md +1 -1
  53. package/docs/api/interfaces/LoginFormProps.md +1 -1
  54. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  55. package/docs/api/interfaces/NavigationContextType.md +1 -1
  56. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  57. package/docs/api/interfaces/NavigationItem.md +1 -1
  58. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  59. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  60. package/docs/api/interfaces/Organisation.md +1 -1
  61. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  62. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  63. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  64. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  65. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  66. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  67. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  68. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  69. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  70. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  71. package/docs/api/interfaces/PaletteData.md +1 -1
  72. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  73. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  74. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  75. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  76. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  77. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  78. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  79. package/docs/api/interfaces/RBACConfig.md +1 -1
  80. package/docs/api/interfaces/RBACContextType.md +1 -1
  81. package/docs/api/interfaces/RBACLogger.md +1 -1
  82. package/docs/api/interfaces/RBACProviderProps.md +1 -1
  83. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  84. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  85. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  86. package/docs/api/interfaces/RouteConfig.md +1 -1
  87. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  88. package/docs/api/interfaces/SecureDataProviderProps.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/ToastActionElement.md +1 -1
  99. package/docs/api/interfaces/ToastProps.md +1 -1
  100. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  101. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  102. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  103. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  104. package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
  105. package/docs/api/interfaces/UsePublicEventLogoReturn.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/UsePublicRouteParamsReturn.md +1 -1
  109. package/docs/api/interfaces/UserEventAccess.md +1 -1
  110. package/docs/api/interfaces/UserMenuProps.md +1 -1
  111. package/docs/api/interfaces/UserProfile.md +1 -1
  112. package/docs/api/modules.md +2 -2
  113. package/package.json +1 -1
  114. package/src/providers/AuthProvider.tsx +34 -5
  115. package/src/rbac/components/PagePermissionGuard.tsx +11 -2
  116. package/dist/chunk-QKHFMQ5R.js.map +0 -1
  117. package/dist/chunk-SM6KCLW5.js.map +0 -1
  118. /package/dist/{DataTable-4TQ6VBHW.js.map → DataTable-7LYDPZXT.js.map} +0 -0
  119. /package/dist/{chunk-PCFG6WRC.js.map → chunk-7KDZXMES.js.map} +0 -0
  120. /package/dist/{chunk-HXX35Q2M.js.map → chunk-7UEIZCST.js.map} +0 -0
  121. /package/dist/{chunk-OCM3I4GY.js.map → chunk-AMOT5ZSZ.js.map} +0 -0
  122. /package/dist/{chunk-PVMYVQSM.js.map → chunk-CMXBNDPM.js.map} +0 -0
  123. /package/dist/{chunk-K6B7BLSE.js.map → chunk-DKDTXS5Q.js.map} +0 -0
  124. /package/dist/{chunk-GNTALZV3.js.map → chunk-DV2Z3RBQ.js.map} +0 -0
  125. /package/dist/{chunk-CTV3NKPM.js.map → chunk-ROHDZOP7.js.map} +0 -0
  126. /package/dist/{chunk-HD7PYDUV.js.map → chunk-XYRRPUYV.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / PublicLoadingSpinnerProps
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / PublicLoadingSpinnerProps
2
2
 
3
3
  # Interface: PublicLoadingSpinnerProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / PublicPageFooterProps
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / PublicPageFooterProps
2
2
 
3
3
  # Interface: PublicPageFooterProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / PublicPageHeaderProps
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / PublicPageHeaderProps
2
2
 
3
3
  # Interface: PublicPageHeaderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / PublicPageLayoutProps
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / PublicPageLayoutProps
2
2
 
3
3
  # Interface: PublicPageLayoutProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / RBACConfig
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / RBACConfig
2
2
 
3
3
  # Interface: RBACConfig
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / RBACContextType
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / RBACContextType
2
2
 
3
3
  # Interface: RBACContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / RBACLogger
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / RBACLogger
2
2
 
3
3
  # Interface: RBACLogger
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / RBACProviderProps
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / RBACProviderProps
2
2
 
3
3
  # Interface: RBACProviderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / RoleBasedRouterContextType
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / RoleBasedRouterContextType
2
2
 
3
3
  # Interface: RoleBasedRouterContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / RoleBasedRouterProps
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / RoleBasedRouterProps
2
2
 
3
3
  # Interface: RoleBasedRouterProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / RouteAccessRecord
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / RouteAccessRecord
2
2
 
3
3
  # Interface: RouteAccessRecord
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / RouteConfig
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / RouteConfig
2
2
 
3
3
  # Interface: RouteConfig
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / SecureDataContextType
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / SecureDataContextType
2
2
 
3
3
  # Interface: SecureDataContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / SecureDataProviderProps
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / SecureDataProviderProps
2
2
 
3
3
  # Interface: SecureDataProviderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / StorageConfig
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / StorageConfig
2
2
 
3
3
  # Interface: StorageConfig
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / StorageFileInfo
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / StorageFileInfo
2
2
 
3
3
  # Interface: StorageFileInfo
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / StorageFileMetadata
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / StorageFileMetadata
2
2
 
3
3
  # Interface: StorageFileMetadata
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / StorageListOptions
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / StorageListOptions
2
2
 
3
3
  # Interface: StorageListOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / StorageListResult
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / StorageListResult
2
2
 
3
3
  # Interface: StorageListResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / StorageUploadOptions
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / StorageUploadOptions
2
2
 
3
3
  # Interface: StorageUploadOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / StorageUploadResult
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / StorageUploadResult
2
2
 
3
3
  # Interface: StorageUploadResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / StorageUrlOptions
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / StorageUrlOptions
2
2
 
3
3
  # Interface: StorageUrlOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / StyleImport
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / StyleImport
2
2
 
3
3
  # Interface: StyleImport
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / ToastActionElement
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / ToastActionElement
2
2
 
3
3
  # Interface: ToastActionElement
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / ToastProps
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / ToastProps
2
2
 
3
3
  # Interface: ToastProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UnifiedAuthContextType
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UnifiedAuthContextType
2
2
 
3
3
  # Interface: UnifiedAuthContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UnifiedAuthProviderProps
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UnifiedAuthProviderProps
2
2
 
3
3
  # Interface: UnifiedAuthProviderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UseInactivityTrackerOptions
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UseInactivityTrackerOptions
2
2
 
3
3
  # Interface: UseInactivityTrackerOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UseInactivityTrackerReturn
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UseInactivityTrackerReturn
2
2
 
3
3
  # Interface: UseInactivityTrackerReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UsePublicEventLogoOptions
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UsePublicEventLogoOptions
2
2
 
3
3
  # Interface: UsePublicEventLogoOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UsePublicEventLogoReturn
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UsePublicEventLogoReturn
2
2
 
3
3
  # Interface: UsePublicEventLogoReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UsePublicEventOptions
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UsePublicEventOptions
2
2
 
3
3
  # Interface: UsePublicEventOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UsePublicEventReturn
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UsePublicEventReturn
2
2
 
3
3
  # Interface: UsePublicEventReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UsePublicRouteParamsReturn
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UsePublicRouteParamsReturn
2
2
 
3
3
  # Interface: UsePublicRouteParamsReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UserEventAccess
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UserEventAccess
2
2
 
3
3
  # Interface: UserEventAccess
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UserMenuProps
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UserMenuProps
2
2
 
3
3
  # Interface: UserMenuProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.9](../README.md) / [Exports](../modules.md) / UserProfile
1
+ [@jmruthers/pace-core - v0.5.11](../README.md) / [Exports](../modules.md) / UserProfile
2
2
 
3
3
  # Interface: UserProfile
4
4
 
@@ -1,6 +1,6 @@
1
- [@jmruthers/pace-core - v0.5.9](README.md) / Exports
1
+ [@jmruthers/pace-core - v0.5.11](README.md) / Exports
2
2
 
3
- # @jmruthers/pace-core - v0.5.9
3
+ # @jmruthers/pace-core - v0.5.11
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.9",
3
+ "version": "0.5.11",
4
4
  "description": "Clean, modern React component library with Tailwind v4 styling and native utilities",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -87,22 +87,39 @@ export function AuthProvider({ children, supabaseClient }: AuthProviderProps) {
87
87
  useEffect(() => {
88
88
  if (!supabaseClient) return;
89
89
 
90
- const loadInitialUser = async () => {
90
+ const loadInitialUser = async (retryCount = 0) => {
91
91
  try {
92
+ DebugLogger.log('AuthProvider', `Loading initial user (attempt ${retryCount + 1})...`);
92
93
  const response = await supabaseClient.auth.getUser();
93
94
  const { data: { user: initialUser }, error } = response || { data: { user: null }, error: null };
95
+
94
96
  if (error) {
95
97
  console.warn('Failed to get initial user:', error);
98
+ // Retry once if it's a network error
99
+ if (retryCount === 0 && (error.message?.includes('network') || error.message?.includes('timeout'))) {
100
+ console.log('AuthProvider: Retrying initial user load due to network error...');
101
+ setTimeout(() => loadInitialUser(1), 1000);
102
+ return;
103
+ }
96
104
  setAuthLoading(false);
97
105
  return;
98
106
  }
99
107
 
100
108
  if (initialUser) {
109
+ DebugLogger.log('AuthProvider', 'Initial user loaded successfully:', initialUser.email);
101
110
  setUser(initialUser);
111
+ } else {
112
+ DebugLogger.log('AuthProvider', 'No initial user found');
102
113
  }
103
114
  setAuthLoading(false);
104
115
  } catch (error) {
105
116
  console.error('Error loading initial user:', error);
117
+ // Retry once if it's a network error
118
+ if (retryCount === 0 && (error instanceof Error && (error.message.includes('network') || error.message.includes('timeout')))) {
119
+ console.log('AuthProvider: Retrying initial user load due to network error...');
120
+ setTimeout(() => loadInitialUser(1), 1000);
121
+ return;
122
+ }
106
123
  setAuthLoading(false);
107
124
  }
108
125
  };
@@ -125,13 +142,14 @@ export function AuthProvider({ children, supabaseClient }: AuthProviderProps) {
125
142
  return;
126
143
  }
127
144
 
128
- // Shorter timeout to prevent hanging
145
+ // Reasonable timeout to allow for auth state changes while preventing infinite hanging
129
146
  const timeoutId = setTimeout(() => {
130
147
  if (authLoading) {
131
- console.warn('AuthProvider: Auth loading timeout reached');
148
+ console.warn('AuthProvider: Auth loading timeout reached - this may indicate a network issue or slow auth response');
132
149
  setAuthLoading(false);
150
+ setAuthError(new AuthError('Authentication timeout - please try refreshing the page'));
133
151
  }
134
- }, 2000); // Reduced from 5000 to 2000
152
+ }, 10000); // Increased to 10 seconds to allow for proper auth flow
135
153
 
136
154
  try {
137
155
  DebugLogger.log('AuthProvider', 'Setting up auth state change listener...');
@@ -151,7 +169,8 @@ export function AuthProvider({ children, supabaseClient }: AuthProviderProps) {
151
169
  setUser(null);
152
170
  setAuthLoading(false);
153
171
  setAuthError(null);
154
- } else {
172
+ } else if (event === 'SIGNED_IN' || event === 'TOKEN_REFRESHED') {
173
+ DebugLogger.log('AuthProvider', 'User signed in or token refreshed');
155
174
  setSession(session);
156
175
  setUser(session?.user ?? null);
157
176
  setAuthLoading(false);
@@ -160,6 +179,16 @@ export function AuthProvider({ children, supabaseClient }: AuthProviderProps) {
160
179
  if (session) {
161
180
  setAuthError(null);
162
181
  }
182
+ } else {
183
+ // Handle other events (INITIAL_SESSION, etc.)
184
+ if (session) {
185
+ setSession(session);
186
+ setUser(session.user ?? null);
187
+ setAuthLoading(false);
188
+ if (session) {
189
+ setAuthError(null);
190
+ }
191
+ }
163
192
  }
164
193
  } catch (error) {
165
194
  console.warn('[AuthProvider] Error in auth state change handler:', error);
@@ -306,9 +306,18 @@ export function PagePermissionGuard({
306
306
  useCache: true
307
307
  });
308
308
 
309
+ // Only call useCan when we have a valid resolved scope
310
+ // This prevents the race condition by not calling useCan with invalid scope
311
+ const shouldCheckPermissions = resolvedScope && resolvedScope.organisationId;
312
+
313
+ // Use a stable scope object to prevent unnecessary re-renders
314
+ const scopeForUseCan = useMemo(() => {
315
+ return shouldCheckPermissions ? resolvedScope : { organisationId: 'loading', appId: 'loading', eventId: undefined };
316
+ }, [shouldCheckPermissions, resolvedScope]);
317
+
309
318
  const { can, isLoading: canIsLoading, error: canError } = useCan(
310
319
  user?.id || '',
311
- resolvedScope || { organisationId: '', appId: '', eventId: selectedEventId || undefined },
320
+ scopeForUseCan,
312
321
  permission,
313
322
  effectivePageId,
314
323
  true // Use cache
@@ -317,7 +326,7 @@ export function PagePermissionGuard({
317
326
  console.log('[PagePermissionGuard] useCan returned:', { can, canIsLoading, canError });
318
327
 
319
328
  // Combine loading states - we're loading if either scope is resolving OR permission check is loading
320
- const isLoading = !resolvedScope || canIsLoading;
329
+ const isLoading = !resolvedScope || !shouldCheckPermissions || canIsLoading;
321
330
  const error = checkError || canError;
322
331
 
323
332
  console.log('[PagePermissionGuard] Combined state:', {