@jmruthers/pace-core 0.5.178 → 0.5.180

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 (145) hide show
  1. package/dist/{chunk-LEBYAJVF.js → chunk-6HLVGAZG.js} +1 -1
  2. package/dist/chunk-6HLVGAZG.js.map +1 -0
  3. package/dist/{chunk-CRGFNQ2L.js → chunk-CPTUD43C.js} +2 -2
  4. package/dist/chunk-CPTUD43C.js.map +1 -0
  5. package/dist/{chunk-2AKRP5QZ.js → chunk-N5YCCUG5.js} +3 -3
  6. package/dist/chunk-N5YCCUG5.js.map +1 -0
  7. package/dist/{chunk-GOL4XSJU.js → chunk-P6UUHOIF.js} +43 -5
  8. package/dist/{chunk-GOL4XSJU.js.map → chunk-P6UUHOIF.js.map} +1 -1
  9. package/dist/components.js +2 -2
  10. package/dist/hooks.js +2 -2
  11. package/dist/index.js +4 -4
  12. package/dist/rbac/index.d.ts +2 -2
  13. package/dist/rbac/index.js +1 -1
  14. package/docs/api/classes/ColumnFactory.md +1 -1
  15. package/docs/api/classes/ErrorBoundary.md +1 -1
  16. package/docs/api/classes/InvalidScopeError.md +1 -1
  17. package/docs/api/classes/MissingUserContextError.md +1 -1
  18. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  19. package/docs/api/classes/PermissionDeniedError.md +1 -1
  20. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  21. package/docs/api/classes/RBACAuditManager.md +1 -1
  22. package/docs/api/classes/RBACCache.md +1 -1
  23. package/docs/api/classes/RBACEngine.md +1 -1
  24. package/docs/api/classes/RBACError.md +1 -1
  25. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  26. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  27. package/docs/api/classes/StorageUtils.md +1 -1
  28. package/docs/api/enums/FileCategory.md +1 -1
  29. package/docs/api/interfaces/AggregateConfig.md +1 -1
  30. package/docs/api/interfaces/BadgeProps.md +1 -1
  31. package/docs/api/interfaces/ButtonProps.md +1 -1
  32. package/docs/api/interfaces/CalendarProps.md +1 -1
  33. package/docs/api/interfaces/CardProps.md +1 -1
  34. package/docs/api/interfaces/ColorPalette.md +1 -1
  35. package/docs/api/interfaces/ColorShade.md +1 -1
  36. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  37. package/docs/api/interfaces/DataRecord.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/EventAppRoleData.md +1 -1
  45. package/docs/api/interfaces/EventLogoProps.md +1 -1
  46. package/docs/api/interfaces/ExportColumn.md +1 -1
  47. package/docs/api/interfaces/ExportOptions.md +1 -1
  48. package/docs/api/interfaces/FileDisplayProps.md +1 -1
  49. package/docs/api/interfaces/FileMetadata.md +1 -1
  50. package/docs/api/interfaces/FileReference.md +1 -1
  51. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  52. package/docs/api/interfaces/FileUploadOptions.md +1 -1
  53. package/docs/api/interfaces/FileUploadProps.md +1 -1
  54. package/docs/api/interfaces/FooterProps.md +1 -1
  55. package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
  56. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  57. package/docs/api/interfaces/InputProps.md +1 -1
  58. package/docs/api/interfaces/LabelProps.md +1 -1
  59. package/docs/api/interfaces/LoginFormProps.md +1 -1
  60. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  61. package/docs/api/interfaces/NavigationContextType.md +1 -1
  62. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  63. package/docs/api/interfaces/NavigationItem.md +1 -1
  64. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  65. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  66. package/docs/api/interfaces/Organisation.md +1 -1
  67. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  68. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  69. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  70. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  71. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  72. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  73. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  74. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  75. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  76. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  77. package/docs/api/interfaces/PaletteData.md +1 -1
  78. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  79. package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
  80. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  81. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  82. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  83. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  84. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  85. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  86. package/docs/api/interfaces/RBACConfig.md +1 -1
  87. package/docs/api/interfaces/RBACLogger.md +1 -1
  88. package/docs/api/interfaces/ResourcePermissions.md +1 -1
  89. package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
  90. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  91. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  92. package/docs/api/interfaces/RoleManagementResult.md +1 -1
  93. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  94. package/docs/api/interfaces/RouteConfig.md +1 -1
  95. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  96. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  97. package/docs/api/interfaces/SessionRestorationLoaderProps.md +1 -1
  98. package/docs/api/interfaces/StorageConfig.md +1 -1
  99. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  100. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  101. package/docs/api/interfaces/StorageListOptions.md +1 -1
  102. package/docs/api/interfaces/StorageListResult.md +1 -1
  103. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  104. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  105. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  106. package/docs/api/interfaces/StyleImport.md +1 -1
  107. package/docs/api/interfaces/SwitchProps.md +1 -1
  108. package/docs/api/interfaces/TabsContentProps.md +1 -1
  109. package/docs/api/interfaces/TabsListProps.md +1 -1
  110. package/docs/api/interfaces/TabsProps.md +1 -1
  111. package/docs/api/interfaces/TabsTriggerProps.md +1 -1
  112. package/docs/api/interfaces/TextareaProps.md +1 -1
  113. package/docs/api/interfaces/ToastActionElement.md +1 -1
  114. package/docs/api/interfaces/ToastProps.md +1 -1
  115. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  116. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  117. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  118. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  119. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  120. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  121. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +1 -1
  122. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
  123. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  124. package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
  125. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  126. package/docs/api/interfaces/UseResourcePermissionsOptions.md +1 -1
  127. package/docs/api/interfaces/UserEventAccess.md +1 -1
  128. package/docs/api/interfaces/UserMenuProps.md +1 -1
  129. package/docs/api/interfaces/UserProfile.md +1 -1
  130. package/docs/api/modules.md +6 -6
  131. package/docs/best-practices/deployment.md +6 -3
  132. package/docs/getting-started/installation-guide.md +2 -1
  133. package/docs/implementation-guides/authentication.md +5 -3
  134. package/docs/rbac/quick-start.md +2 -1
  135. package/package.json +1 -1
  136. package/src/components/PaceAppLayout/PaceAppLayout.tsx +54 -3
  137. package/src/components/PublicLayout/PublicPageDiagnostic.tsx +1 -1
  138. package/src/components/PublicLayout/PublicPageProvider.tsx +2 -1
  139. package/src/hooks/public/usePublicEvent.ts +1 -1
  140. package/src/rbac/hooks/useResourcePermissions.test.ts +26 -3
  141. package/src/rbac/secureClient.ts +2 -2
  142. package/src/vite-env.d.ts +1 -0
  143. package/dist/chunk-2AKRP5QZ.js.map +0 -1
  144. package/dist/chunk-CRGFNQ2L.js.map +0 -1
  145. package/dist/chunk-LEBYAJVF.js.map +0 -1
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / PublicPageHeaderProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / PublicPageHeaderProps
2
2
 
3
3
  # Interface: PublicPageHeaderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / PublicPageLayoutProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / PublicPageLayoutProps
2
2
 
3
3
  # Interface: PublicPageLayoutProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / RBACConfig
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / RBACConfig
2
2
 
3
3
  # Interface: RBACConfig
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / RBACLogger
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / RBACLogger
2
2
 
3
3
  # Interface: RBACLogger
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / ResourcePermissions
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / ResourcePermissions
2
2
 
3
3
  # Interface: ResourcePermissions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / RevokeEventAppRoleParams
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / RevokeEventAppRoleParams
2
2
 
3
3
  # Interface: RevokeEventAppRoleParams
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / RoleBasedRouterContextType
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / RoleBasedRouterContextType
2
2
 
3
3
  # Interface: RoleBasedRouterContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / RoleBasedRouterProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / RoleBasedRouterProps
2
2
 
3
3
  # Interface: RoleBasedRouterProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / RoleManagementResult
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / RoleManagementResult
2
2
 
3
3
  # Interface: RoleManagementResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / RouteAccessRecord
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / RouteAccessRecord
2
2
 
3
3
  # Interface: RouteAccessRecord
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / RouteConfig
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / RouteConfig
2
2
 
3
3
  # Interface: RouteConfig
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / SecureDataContextType
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / SecureDataContextType
2
2
 
3
3
  # Interface: SecureDataContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / SecureDataProviderProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / SecureDataProviderProps
2
2
 
3
3
  # Interface: SecureDataProviderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / SessionRestorationLoaderProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / SessionRestorationLoaderProps
2
2
 
3
3
  # Interface: SessionRestorationLoaderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / StorageConfig
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / StorageConfig
2
2
 
3
3
  # Interface: StorageConfig
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / StorageFileInfo
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / StorageFileInfo
2
2
 
3
3
  # Interface: StorageFileInfo
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / StorageFileMetadata
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / StorageFileMetadata
2
2
 
3
3
  # Interface: StorageFileMetadata
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / StorageListOptions
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / StorageListOptions
2
2
 
3
3
  # Interface: StorageListOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / StorageListResult
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / StorageListResult
2
2
 
3
3
  # Interface: StorageListResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / StorageUploadOptions
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / StorageUploadOptions
2
2
 
3
3
  # Interface: StorageUploadOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / StorageUploadResult
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / StorageUploadResult
2
2
 
3
3
  # Interface: StorageUploadResult
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / StorageUrlOptions
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / StorageUrlOptions
2
2
 
3
3
  # Interface: StorageUrlOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / StyleImport
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / StyleImport
2
2
 
3
3
  # Interface: StyleImport
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / SwitchProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / SwitchProps
2
2
 
3
3
  # Interface: SwitchProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / TabsContentProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / TabsContentProps
2
2
 
3
3
  # Interface: TabsContentProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / TabsListProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / TabsListProps
2
2
 
3
3
  # Interface: TabsListProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / TabsProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / TabsProps
2
2
 
3
3
  # Interface: TabsProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / TabsTriggerProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / TabsTriggerProps
2
2
 
3
3
  # Interface: TabsTriggerProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / TextareaProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / TextareaProps
2
2
 
3
3
  # Interface: TextareaProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / ToastActionElement
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / ToastActionElement
2
2
 
3
3
  # Interface: ToastActionElement
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / ToastProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / ToastProps
2
2
 
3
3
  # Interface: ToastProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UnifiedAuthContextType
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UnifiedAuthContextType
2
2
 
3
3
  # Interface: UnifiedAuthContextType
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UnifiedAuthProviderProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UnifiedAuthProviderProps
2
2
 
3
3
  # Interface: UnifiedAuthProviderProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UseInactivityTrackerOptions
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UseInactivityTrackerOptions
2
2
 
3
3
  # Interface: UseInactivityTrackerOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UseInactivityTrackerReturn
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UseInactivityTrackerReturn
2
2
 
3
3
  # Interface: UseInactivityTrackerReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UsePublicEventOptions
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UsePublicEventOptions
2
2
 
3
3
  # Interface: UsePublicEventOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UsePublicEventReturn
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UsePublicEventReturn
2
2
 
3
3
  # Interface: UsePublicEventReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayOptions
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayOptions
2
2
 
3
3
  # Interface: UsePublicFileDisplayOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayReturn
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UsePublicFileDisplayReturn
2
2
 
3
3
  # Interface: UsePublicFileDisplayReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UsePublicRouteParamsReturn
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UsePublicRouteParamsReturn
2
2
 
3
3
  # Interface: UsePublicRouteParamsReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UseResolvedScopeOptions
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UseResolvedScopeOptions
2
2
 
3
3
  # Interface: UseResolvedScopeOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UseResolvedScopeReturn
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UseResolvedScopeReturn
2
2
 
3
3
  # Interface: UseResolvedScopeReturn
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UseResourcePermissionsOptions
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UseResourcePermissionsOptions
2
2
 
3
3
  # Interface: UseResourcePermissionsOptions
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UserEventAccess
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UserEventAccess
2
2
 
3
3
  # Interface: UserEventAccess
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UserMenuProps
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UserMenuProps
2
2
 
3
3
  # Interface: UserMenuProps
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.178](../README.md) / [Exports](../modules.md) / UserProfile
1
+ [@jmruthers/pace-core - v0.5.180](../README.md) / [Exports](../modules.md) / UserProfile
2
2
 
3
3
  # Interface: UserProfile
4
4
 
@@ -1,6 +1,6 @@
1
- [@jmruthers/pace-core - v0.5.178](README.md) / Exports
1
+ [@jmruthers/pace-core - v0.5.180](README.md) / Exports
2
2
 
3
- # @jmruthers/pace-core - v0.5.178
3
+ # @jmruthers/pace-core - v0.5.180
4
4
 
5
5
  **`File`**
6
6
 
@@ -3545,7 +3545,7 @@ Public page context with environment variables
3545
3545
 
3546
3546
  #### Defined in
3547
3547
 
3548
- [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:129](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L129)
3548
+ [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:130](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L130)
3549
3549
 
3550
3550
  ___
3551
3551
 
@@ -3563,7 +3563,7 @@ True if we're in a public page context
3563
3563
 
3564
3564
  #### Defined in
3565
3565
 
3566
- [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:144](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L144)
3566
+ [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:145](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L145)
3567
3567
 
3568
3568
  ___
3569
3569
 
@@ -7178,7 +7178,7 @@ Create a secure Supabase client with organisation context
7178
7178
  | Name | Type | Description |
7179
7179
  | :------ | :------ | :------ |
7180
7180
  | `supabaseUrl` | `string` | Supabase project URL |
7181
- | `supabaseKey` | `string` | Supabase anon key |
7181
+ | `supabaseKey` | `string` | Supabase publishable key or anon key (accepts both legacy anon keys and modern publishable keys) |
7182
7182
  | `organisationId` | `string` | Required organisation ID |
7183
7183
  | `eventId?` | `string` | Optional event ID |
7184
7184
  | `appId?` | `string` | Optional app ID |
@@ -7194,7 +7194,7 @@ SecureSupabaseClient instance
7194
7194
  ```typescript
7195
7195
  const client = createSecureClient(
7196
7196
  'https://your-project.supabase.co',
7197
- 'your-anon-key',
7197
+ 'your-publishable-key-or-anon-key',
7198
7198
  'org-123',
7199
7199
  'event-456',
7200
7200
  'app-789'
@@ -24,19 +24,22 @@ Deployment in `@jmruthers/pace-core` covers multiple environments:
24
24
  ```typescript
25
25
  // .env.local (development)
26
26
  VITE_SUPABASE_URL=http://localhost:54321
27
- VITE_SUPABASE_ANON_KEY=your-local-anon-key
27
+ // Accepts both legacy anon keys and modern publishable keys (sb_publishable_...)
28
+ VITE_SUPABASE_ANON_KEY=your-local-publishable-key-or-anon-key
28
29
  VITE_APP_ENV=development
29
30
  VITE_DEBUG=true
30
31
 
31
32
  // .env.staging
32
33
  VITE_SUPABASE_URL=https://your-project.supabase.co
33
- VITE_SUPABASE_ANON_KEY=your-staging-anon-key
34
+ // Accepts both legacy anon keys and modern publishable keys (sb_publishable_...)
35
+ VITE_SUPABASE_ANON_KEY=your-staging-publishable-key-or-anon-key
34
36
  VITE_APP_ENV=staging
35
37
  VITE_DEBUG=false
36
38
 
37
39
  // .env.production
38
40
  VITE_SUPABASE_URL=https://your-project.supabase.co
39
- VITE_SUPABASE_ANON_KEY=your-production-anon-key
41
+ // Accepts both legacy anon keys and modern publishable keys (sb_publishable_...)
42
+ VITE_SUPABASE_ANON_KEY=your-production-publishable-key-or-anon-key
40
43
  VITE_APP_ENV=production
41
44
  VITE_DEBUG=false
42
45
  ```
@@ -171,7 +171,8 @@ Set environment variables in `.env.local`:
171
171
 
172
172
  ```bash
173
173
  VITE_SUPABASE_URL=https://your-project.supabase.co
174
- VITE_SUPABASE_ANON_KEY=your-anon-key-here
174
+ # Accepts both legacy anon keys and modern publishable keys (sb_publishable_...)
175
+ VITE_SUPABASE_ANON_KEY=your-publishable-key-or-anon-key-here
175
176
  ```
176
177
 
177
178
  Wrap your app with providers:
@@ -44,10 +44,12 @@ Create `.env.local`:
44
44
  ```bash
45
45
  # Supabase Configuration
46
46
  REACT_APP_SUPABASE_URL=https://your-project.supabase.co
47
- REACT_APP_SUPABASE_ANON_KEY=your-anon-key-here
47
+ # Accepts both legacy anon keys and modern publishable keys (sb_publishable_...)
48
+ REACT_APP_SUPABASE_ANON_KEY=your-publishable-key-or-anon-key-here
48
49
 
49
- # ⚠️ CRITICAL: Use anon key, NOT service role key
50
- # The anon key starts with: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
50
+ # ⚠️ CRITICAL: Use publishable key or anon key, NOT service role key
51
+ # Legacy anon key starts with: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
52
+ # Modern publishable key starts with: sb_publishable_
51
53
  # The service role key has different permissions and can cause RPC timeouts
52
54
  ```
53
55
 
@@ -87,7 +87,8 @@ Create `.env.local`:
87
87
  ```bash
88
88
  # .env.local
89
89
  VITE_SUPABASE_URL=https://your-project.supabase.co
90
- VITE_SUPABASE_ANON_KEY=your-anon-key-here
90
+ # Accepts both legacy anon keys and modern publishable keys (sb_publishable_...)
91
+ VITE_SUPABASE_ANON_KEY=your-publishable-key-or-anon-key-here
91
92
  VITE_APP_NAME=user-manager
92
93
  ```
93
94
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jmruthers/pace-core",
3
- "version": "0.5.178",
3
+ "version": "0.5.180",
4
4
  "description": "Clean, modern React component library with Tailwind v4 styling and native utilities",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -390,19 +390,21 @@ export function PaceAppLayout({
390
390
  }
391
391
 
392
392
  // Resolve scope for permission checking
393
- const { resolvedScope } = useResolvedScope({
393
+ const { resolvedScope, isLoading: scopeLoading } = useResolvedScope({
394
394
  supabase: supabase || null,
395
395
  selectedOrganisationId: selectedOrganisation?.id || null,
396
396
  selectedEventId: selectedEvent?.event_id || null
397
397
  });
398
398
 
399
399
  // Build scope from resolved values
400
+ // Preserve appId from resolvedScope even when creating fallback scope
400
401
  const scope = useMemo<Scope>(() => {
401
402
  if (!resolvedScope?.organisationId) {
402
403
  return {
403
404
  organisationId: selectedOrganisation?.id || '',
404
405
  eventId: selectedEvent?.event_id || undefined,
405
- appId: undefined
406
+ // Preserve appId from resolvedScope if it exists, even if organisationId is missing
407
+ appId: resolvedScope?.appId || undefined
406
408
  };
407
409
  }
408
410
  return resolvedScope;
@@ -553,6 +555,26 @@ export function PaceAppLayout({
553
555
  // Use the scope from context (includes selectedOrganisation and selectedEvent)
554
556
  // This is critical for event-based apps where event context comes from EventService, not user metadata
555
557
  const currentScope = scope;
558
+
559
+ // Wait for scope to be fully resolved (including appId) before filtering
560
+ // This is important because getPermissionMap requires appId to fetch pages
561
+ if (scopeLoading || !currentScope.appId) {
562
+ // Scope still loading or appId not resolved yet - show no items until ready
563
+ // This is a security measure: don't show navigation until we can verify permissions
564
+ if (!scopeLoading && !currentScope.appId) {
565
+ logger.error('PaceAppLayout', 'appId not resolved in scope - navigation filtering disabled for security', {
566
+ scope: currentScope,
567
+ resolvedScope,
568
+ selectedOrganisationId: selectedOrganisation?.id,
569
+ selectedEventId: selectedEvent?.event_id,
570
+ appName: appName
571
+ });
572
+ }
573
+ if (isMounted) {
574
+ setFilteredMenuItems([]);
575
+ }
576
+ return;
577
+ }
556
578
 
557
579
  // For super admins, show all items (they bypass permission checks)
558
580
  // Gracefully handle RBAC not being initialized (e.g., in tests)
@@ -593,10 +615,28 @@ export function PaceAppLayout({
593
615
  // This makes 1 call instead of N calls (where N = number of navigation items)
594
616
  try {
595
617
  const { getPermissionMap } = await import('../../rbac/api');
618
+
619
+ // Log scope for debugging
620
+ logger.debug('PaceAppLayout', 'Filtering navigation with scope', {
621
+ organisationId: currentScope.organisationId,
622
+ eventId: currentScope.eventId,
623
+ appId: currentScope.appId,
624
+ hasOrganisationId: !!currentScope.organisationId,
625
+ hasEventId: !!currentScope.eventId,
626
+ hasAppId: !!currentScope.appId
627
+ });
628
+
596
629
  const permissionMap = await getPermissionMap({
597
630
  userId: user.id,
598
631
  scope: currentScope,
599
632
  });
633
+
634
+ // Log permission map for debugging
635
+ logger.debug('PaceAppLayout', 'Permission map received', {
636
+ permissionCount: Object.keys(permissionMap).length,
637
+ permissions: Object.keys(permissionMap),
638
+ hasWildcard: permissionMap['*'] === true
639
+ });
600
640
 
601
641
  // Filter items using the permission map (synchronous, no rate limit issues)
602
642
  const filtered = baseMenuItems.map((item) => {
@@ -611,6 +651,17 @@ export function PaceAppLayout({
611
651
  // Check permission map (super admin check already handled in getPermissionMap)
612
652
  const hasAccess = permissionMap['*'] === true || permissionMap[fullPermission] === true;
613
653
 
654
+ // Log each item's permission check for debugging
655
+ logger.debug('PaceAppLayout', 'Checking navigation item permission', {
656
+ itemId: item.id,
657
+ href: item.href,
658
+ pageId,
659
+ permission,
660
+ fullPermission,
661
+ hasAccess,
662
+ permissionInMap: permissionMap[fullPermission]
663
+ });
664
+
614
665
  return { item, hasAccess };
615
666
  });
616
667
 
@@ -636,7 +687,7 @@ export function PaceAppLayout({
636
687
  return () => {
637
688
  isMounted = false;
638
689
  };
639
- }, [baseMenuItems, filterNavigationByPermissions, pageIdMapping, routePermissions, defaultPermission, can, user?.id, scope]);
690
+ }, [baseMenuItems, filterNavigationByPermissions, pageIdMapping, routePermissions, defaultPermission, can, user?.id, scope, scopeLoading]);
640
691
 
641
692
  // NEW: Phase 2 - Enhanced Routing Features
642
693
  // Check route access for role-based routing
@@ -122,7 +122,7 @@ export function PublicPageDiagnostic({ enabled = true, label = 'PublicPage' }: P
122
122
  console.warn('🔧 SOLUTION: Wrap your public page component in <PublicPageProvider>');
123
123
  } else if (!newDiagnostics.hasEnvironmentVars) {
124
124
  console.warn(`⚠️ [${label}] WARNING: Missing environment variables`);
125
- console.warn('🔧 SOLUTION: Set VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY in your environment');
125
+ console.warn('🔧 SOLUTION: Set VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY in your environment (use publishable key if anon key is disabled)');
126
126
  } else {
127
127
  console.log(`✅ [${label}] All diagnostics passed! Public page should work correctly.`);
128
128
  }
@@ -92,9 +92,10 @@ export function PublicPageProvider({ children, appName }: PublicPageProviderProp
92
92
  null;
93
93
 
94
94
  // Create Supabase client if environment variables are available
95
+ // Note: VITE_SUPABASE_ANON_KEY accepts both legacy anon keys and modern publishable keys (sb_publishable_...)
95
96
  const supabase = useMemo(() => {
96
97
  if (!supabaseUrl || !supabaseKey) {
97
- logger.warn('PublicPageProvider', 'Missing Supabase environment variables. Please ensure VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY are set in your environment.');
98
+ logger.warn('PublicPageProvider', 'Missing Supabase environment variables. Please ensure VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY are set in your environment. Use publishable key if anon key is disabled.');
98
99
  return null;
99
100
  }
100
101
  const client = createClient<Database>(supabaseUrl, supabaseKey);
@@ -128,7 +128,7 @@ export function usePublicEvent(
128
128
  if (typeof window === 'undefined') return null;
129
129
 
130
130
  if (!environment.supabaseUrl || !environment.supabaseKey) {
131
- logger.warn('usePublicEvent', 'Missing Supabase environment variables. Please ensure VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY are set in your environment.');
131
+ logger.warn('usePublicEvent', 'Missing Supabase environment variables. Please ensure VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY are set in your environment. Use publishable key if anon key is disabled.');
132
132
  return null;
133
133
  }
134
134