@jmruthers/pace-core 0.5.134 → 0.5.136

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 (522) hide show
  1. package/dist/{DataTable-C7GaRZye.d.ts → DataTable-CWAZZcXC.d.ts} +1 -1
  2. package/dist/{DataTable-A36PJG6N.js → DataTable-CYOHOX3O.js} +25 -13
  3. package/dist/{PublicLoadingSpinner-CUAnTvcg.d.ts → EventLogo-801uofbR.d.ts} +51 -135
  4. package/dist/UnifiedAuthProvider-5E5TUNMS.js +17 -0
  5. package/dist/{UnifiedAuthProvider-BVKmQd9u.d.ts → UnifiedAuthProvider-DJxGTftH.d.ts} +1 -1
  6. package/dist/{api-TNIBJWLM.js → api-45XYYO2A.js} +4 -3
  7. package/dist/{audit-T36HM7IM.js → audit-64X3VJXB.js} +3 -2
  8. package/dist/{chunk-CTJRBUX2.js → chunk-2TWNJ46Y.js} +2 -2
  9. package/dist/{chunk-UJI6WSMD.js → chunk-444EZN6N.js} +3 -3
  10. package/dist/chunk-444EZN6N.js.map +1 -0
  11. package/dist/{chunk-3CG5L6RN.js → chunk-4MT5BGGL.js} +90 -73
  12. package/dist/chunk-4MT5BGGL.js.map +1 -0
  13. package/dist/{chunk-PYUXFQJ3.js → chunk-56XJ3TU6.js} +2 -2
  14. package/dist/chunk-56XJ3TU6.js.map +1 -0
  15. package/dist/chunk-5DPZ5EAT.js +60 -0
  16. package/dist/chunk-5DPZ5EAT.js.map +1 -0
  17. package/dist/{chunk-66C4BSAY.js → chunk-ANBQRTPX.js} +9 -2
  18. package/dist/chunk-ANBQRTPX.js.map +1 -0
  19. package/dist/chunk-APIBCTL2.js +670 -0
  20. package/dist/chunk-APIBCTL2.js.map +1 -0
  21. package/dist/{chunk-GKHF54DI.js → chunk-BESYRHQM.js} +10 -4
  22. package/dist/chunk-BESYRHQM.js.map +1 -0
  23. package/dist/{chunk-WP5I5GLN.js → chunk-BVYWGZVV.js} +112 -97
  24. package/dist/chunk-BVYWGZVV.js.map +1 -0
  25. package/dist/{chunk-GEVIB2UB.js → chunk-ERISIBYU.js} +14 -5
  26. package/dist/chunk-ERISIBYU.js.map +1 -0
  27. package/dist/{chunk-CQZU6TFE.js → chunk-FHWWBIHA.js} +100 -62
  28. package/dist/chunk-FHWWBIHA.js.map +1 -0
  29. package/dist/{chunk-O3NWNXDY.js → chunk-FMUCXFII.js} +2 -2
  30. package/dist/chunk-FMUCXFII.js.map +1 -0
  31. package/dist/{chunk-GVDR7WNV.js → chunk-HJGGOMQ6.js} +194 -518
  32. package/dist/chunk-HJGGOMQ6.js.map +1 -0
  33. package/dist/{chunk-BDZUMRBD.js → chunk-K2WWTH7O.js} +13 -6
  34. package/dist/chunk-K2WWTH7O.js.map +1 -0
  35. package/dist/{chunk-BYXRHAIF.js → chunk-L6PGMCMD.js} +23 -14
  36. package/dist/chunk-L6PGMCMD.js.map +1 -0
  37. package/dist/chunk-LMC26NLJ.js +84 -0
  38. package/dist/chunk-LMC26NLJ.js.map +1 -0
  39. package/dist/{chunk-M6DDYFUD.js → chunk-LS353YLY.js} +19 -16
  40. package/dist/chunk-LS353YLY.js.map +1 -0
  41. package/dist/{chunk-ZYZCRSBD.js → chunk-LTV3XIJJ.js} +16 -11
  42. package/dist/chunk-LTV3XIJJ.js.map +1 -0
  43. package/dist/{chunk-HMNOSGVA.js → chunk-NOHEVYVX.js} +377 -666
  44. package/dist/chunk-NOHEVYVX.js.map +1 -0
  45. package/dist/{chunk-JCQZ6LA7.js → chunk-Q5QRDWKI.js} +9 -3
  46. package/dist/chunk-Q5QRDWKI.js.map +1 -0
  47. package/dist/chunk-S5OFRT4M.js +94 -0
  48. package/dist/chunk-S5OFRT4M.js.map +1 -0
  49. package/dist/{chunk-3DBFLLLU.js → chunk-SBVILCCA.js} +14 -9
  50. package/dist/chunk-SBVILCCA.js.map +1 -0
  51. package/dist/{chunk-TGIY2AR2.js → chunk-SL2YQDR6.js} +4 -3
  52. package/dist/{chunk-TGIY2AR2.js.map → chunk-SL2YQDR6.js.map} +1 -1
  53. package/dist/{chunk-VZ5OR6HD.js → chunk-TVYPTYOY.js} +55 -179
  54. package/dist/chunk-TVYPTYOY.js.map +1 -0
  55. package/dist/{chunk-ZV77RZMU.js → chunk-XARJS7CD.js} +2 -2
  56. package/dist/chunk-XDNLUEXI.js +138 -0
  57. package/dist/chunk-XDNLUEXI.js.map +1 -0
  58. package/dist/{chunk-F64FFPOZ.js → chunk-YLKIDTUK.js} +26 -20
  59. package/dist/chunk-YLKIDTUK.js.map +1 -0
  60. package/dist/{chunk-5F3NDPJV.js → chunk-ZZ2SS7NI.js} +10 -5
  61. package/dist/chunk-ZZ2SS7NI.js.map +1 -0
  62. package/dist/components.d.ts +7 -287
  63. package/dist/components.js +26 -157
  64. package/dist/components.js.map +1 -1
  65. package/dist/{file-reference-C9isKNPn.d.ts → file-reference-C6Gkn77H.d.ts} +1 -1
  66. package/dist/{formatting-DFcCxUEk.d.ts → formatting-CvUXy2mF.d.ts} +1 -1
  67. package/dist/hooks.d.ts +3 -3
  68. package/dist/hooks.js +22 -16
  69. package/dist/hooks.js.map +1 -1
  70. package/dist/index.d.ts +219 -9
  71. package/dist/index.js +49 -31
  72. package/dist/index.js.map +1 -1
  73. package/dist/providers.d.ts +1 -1
  74. package/dist/providers.js +5 -4
  75. package/dist/rbac/index.js +13 -12
  76. package/dist/styles/index.js +2 -1
  77. package/dist/theming/runtime.d.ts +2 -19
  78. package/dist/theming/runtime.js +2 -1
  79. package/dist/{types-D5rqZQXk.d.ts → types-Dfz9dmVH.d.ts} +12 -1
  80. package/dist/types.d.ts +2 -2
  81. package/dist/types.js +1 -1
  82. package/dist/{useInactivityTracker-MRUU55XI.js → useInactivityTracker-TO6ZOF35.js} +3 -2
  83. package/dist/{usePublicRouteParams-Dyt1tzI9.d.ts → usePublicRouteParams-B7PabvuH.d.ts} +1 -1
  84. package/dist/utils.d.ts +195 -232
  85. package/dist/utils.js +173 -331
  86. package/dist/utils.js.map +1 -1
  87. package/dist/{validation-DnhrNMju.d.ts → validation-8npbysjg.d.ts} +26 -8
  88. package/dist/validation.d.ts +261 -10
  89. package/dist/validation.js +82 -440
  90. package/dist/validation.js.map +1 -1
  91. package/docs/api/classes/ColumnFactory.md +1 -1
  92. package/docs/api/classes/ErrorBoundary.md +6 -6
  93. package/docs/api/classes/InvalidScopeError.md +1 -1
  94. package/docs/api/classes/MissingUserContextError.md +1 -1
  95. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  96. package/docs/api/classes/PermissionDeniedError.md +1 -1
  97. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  98. package/docs/api/classes/RBACAuditManager.md +6 -6
  99. package/docs/api/classes/RBACCache.md +1 -1
  100. package/docs/api/classes/RBACEngine.md +7 -7
  101. package/docs/api/classes/RBACError.md +1 -1
  102. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  103. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  104. package/docs/api/classes/StorageUtils.md +1 -1
  105. package/docs/api/enums/FileCategory.md +1 -1
  106. package/docs/api/interfaces/AggregateConfig.md +4 -4
  107. package/docs/api/interfaces/ButtonProps.md +1 -1
  108. package/docs/api/interfaces/CardProps.md +1 -1
  109. package/docs/api/interfaces/ColorPalette.md +1 -1
  110. package/docs/api/interfaces/ColorShade.md +29 -4
  111. package/docs/api/interfaces/DataAccessRecord.md +9 -9
  112. package/docs/api/interfaces/DataRecord.md +1 -1
  113. package/docs/api/interfaces/DataTableAction.md +18 -18
  114. package/docs/api/interfaces/DataTableColumn.md +61 -1
  115. package/docs/api/interfaces/DataTableProps.md +3 -3
  116. package/docs/api/interfaces/DataTableToolbarButton.md +7 -7
  117. package/docs/api/interfaces/EmptyStateConfig.md +5 -5
  118. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +14 -14
  119. package/docs/api/interfaces/EventAppRoleData.md +1 -1
  120. package/docs/api/interfaces/EventLogoProps.md +152 -0
  121. package/docs/api/interfaces/ExportColumn.md +90 -0
  122. package/docs/api/interfaces/ExportOptions.md +126 -0
  123. package/docs/api/interfaces/FileDisplayProps.md +15 -15
  124. package/docs/api/interfaces/FileMetadata.md +1 -1
  125. package/docs/api/interfaces/FileReference.md +1 -1
  126. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  127. package/docs/api/interfaces/FileUploadOptions.md +1 -1
  128. package/docs/api/interfaces/FileUploadProps.md +1 -1
  129. package/docs/api/interfaces/FooterProps.md +1 -1
  130. package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
  131. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  132. package/docs/api/interfaces/InputProps.md +1 -1
  133. package/docs/api/interfaces/LabelProps.md +1 -1
  134. package/docs/api/interfaces/LoginFormProps.md +1 -1
  135. package/docs/api/interfaces/NavigationAccessRecord.md +10 -10
  136. package/docs/api/interfaces/NavigationContextType.md +9 -9
  137. package/docs/api/interfaces/NavigationGuardProps.md +10 -10
  138. package/docs/api/interfaces/NavigationItem.md +1 -1
  139. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  140. package/docs/api/interfaces/NavigationProviderProps.md +7 -7
  141. package/docs/api/interfaces/Organisation.md +1 -1
  142. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  143. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  144. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  145. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  146. package/docs/api/interfaces/PaceAppLayoutProps.md +27 -27
  147. package/docs/api/interfaces/PaceLoginPageProps.md +4 -4
  148. package/docs/api/interfaces/PageAccessRecord.md +8 -8
  149. package/docs/api/interfaces/PagePermissionContextType.md +8 -8
  150. package/docs/api/interfaces/PagePermissionGuardProps.md +11 -11
  151. package/docs/api/interfaces/PagePermissionProviderProps.md +7 -7
  152. package/docs/api/interfaces/PaletteData.md +4 -4
  153. package/docs/api/interfaces/PermissionEnforcerProps.md +11 -11
  154. package/docs/api/interfaces/ProtectedRouteProps.md +6 -6
  155. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  156. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  157. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  158. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  159. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  160. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  161. package/docs/api/interfaces/RBACConfig.md +1 -1
  162. package/docs/api/interfaces/RBACLogger.md +1 -1
  163. package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
  164. package/docs/api/interfaces/RoleBasedRouterContextType.md +8 -8
  165. package/docs/api/interfaces/RoleBasedRouterProps.md +10 -10
  166. package/docs/api/interfaces/RoleManagementResult.md +1 -1
  167. package/docs/api/interfaces/RouteAccessRecord.md +10 -10
  168. package/docs/api/interfaces/RouteConfig.md +10 -10
  169. package/docs/api/interfaces/SecureDataContextType.md +9 -9
  170. package/docs/api/interfaces/SecureDataProviderProps.md +8 -8
  171. package/docs/api/interfaces/SessionRestorationLoaderProps.md +21 -0
  172. package/docs/api/interfaces/StorageConfig.md +1 -1
  173. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  174. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  175. package/docs/api/interfaces/StorageListOptions.md +1 -1
  176. package/docs/api/interfaces/StorageListResult.md +1 -1
  177. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  178. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  179. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  180. package/docs/api/interfaces/StyleImport.md +1 -1
  181. package/docs/api/interfaces/SwitchProps.md +1 -1
  182. package/docs/api/interfaces/ToastActionElement.md +1 -1
  183. package/docs/api/interfaces/ToastProps.md +1 -1
  184. package/docs/api/interfaces/UnifiedAuthContextType.md +53 -53
  185. package/docs/api/interfaces/UnifiedAuthProviderProps.md +13 -13
  186. package/docs/api/interfaces/UseInactivityTrackerOptions.md +9 -9
  187. package/docs/api/interfaces/UseInactivityTrackerReturn.md +8 -8
  188. package/docs/api/interfaces/UsePublicEventOptions.md +3 -3
  189. package/docs/api/interfaces/UsePublicEventReturn.md +5 -5
  190. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +4 -4
  191. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +9 -9
  192. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  193. package/docs/api/interfaces/UseResolvedScopeOptions.md +4 -4
  194. package/docs/api/interfaces/UseResolvedScopeReturn.md +4 -4
  195. package/docs/api/interfaces/UserEventAccess.md +11 -11
  196. package/docs/api/interfaces/UserMenuProps.md +1 -1
  197. package/docs/api/interfaces/UserProfile.md +1 -1
  198. package/docs/api/modules.md +648 -212
  199. package/docs/api-reference/components.md +106 -26
  200. package/docs/architecture/README.md +0 -2
  201. package/docs/implementation-guides/data-tables.md +277 -13
  202. package/docs/implementation-guides/forms.md +1 -16
  203. package/docs/implementation-guides/permission-enforcement.md +8 -2
  204. package/examples/README.md +30 -14
  205. package/examples/STRUCTURE.md +125 -0
  206. package/examples/components/DataTable/HierarchicalActionsExample.tsx +421 -0
  207. package/examples/components/DataTable/HierarchicalExample.tsx +475 -0
  208. package/examples/components/DataTable/InitialPageSizeExample.tsx +177 -0
  209. package/examples/components/DataTable/PerformanceExample.tsx +506 -0
  210. package/examples/components/DataTable/index.ts +13 -0
  211. package/examples/components/Dialog/BasicHtmlTest.tsx +55 -0
  212. package/examples/components/Dialog/DebugHtmlExample.tsx +68 -0
  213. package/examples/components/Dialog/HtmlDialogExample.tsx +202 -0
  214. package/examples/components/Dialog/ScrollableDialogExample.tsx +290 -0
  215. package/examples/components/Dialog/SimpleHtmlTest.tsx +61 -0
  216. package/examples/components/Dialog/SmartDialogExample.tsx +322 -0
  217. package/examples/components/Dialog/index.ts +15 -0
  218. package/examples/components/index.ts +11 -0
  219. package/examples/features/index.ts +12 -0
  220. package/examples/{public-pages → features/public-pages}/CorrectPublicPageImplementation.tsx +1 -1
  221. package/examples/{public-pages → features/public-pages}/PublicEventPage.tsx +1 -1
  222. package/examples/{public-pages → features/public-pages}/PublicPageApp.tsx +1 -1
  223. package/examples/{public-pages → features/public-pages}/PublicPageUsageExample.tsx +1 -1
  224. package/examples/index.ts +11 -3
  225. package/package.json +30 -10
  226. package/src/components/Alert/Alert.tsx +1 -1
  227. package/src/components/Avatar/Avatar.tsx +1 -1
  228. package/src/components/Button/Button.tsx +1 -1
  229. package/src/components/Card/Card.tsx +1 -1
  230. package/src/components/Checkbox/Checkbox.tsx +1 -1
  231. package/src/components/DataTable/DataTable.test.tsx +1 -1
  232. package/src/components/DataTable/DataTable.tsx +1 -30
  233. package/src/components/DataTable/__tests__/DataTable.grouping-aggregation.test.tsx +562 -0
  234. package/src/components/DataTable/__tests__/styles.test.ts +2 -2
  235. package/src/components/DataTable/components/ActionButtons.tsx +0 -15
  236. package/src/components/DataTable/components/DataTableCore.tsx +4 -185
  237. package/src/components/DataTable/components/DataTableErrorBoundary.tsx +1 -1
  238. package/src/components/DataTable/components/DataTableModals.tsx +1 -27
  239. package/src/components/DataTable/components/EditableRow.tsx +1 -1
  240. package/src/components/DataTable/components/ImportModal.tsx +2 -14
  241. package/src/components/DataTable/components/PaginationControls.tsx +1 -1
  242. package/src/components/DataTable/components/UnifiedTableBody.tsx +109 -82
  243. package/src/components/DataTable/components/__tests__/ActionButtons.test.tsx +1 -1
  244. package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.test.tsx +1 -1
  245. package/src/components/DataTable/components/__tests__/DataTableModals.test.tsx +1 -1
  246. package/src/components/DataTable/components/__tests__/ImportModal.test.tsx +1 -1
  247. package/src/components/DataTable/examples/GroupingAggregationExample.tsx +273 -0
  248. package/src/components/DataTable/examples/HierarchicalActionsExample.tsx +1 -1
  249. package/src/components/DataTable/examples/__tests__/HierarchicalActionsExample.test.tsx +1 -1
  250. package/src/components/DataTable/hooks/useColumnOrderPersistence.ts +1 -1
  251. package/src/components/DataTable/hooks/useColumnVisibilityPersistence.ts +1 -1
  252. package/src/components/DataTable/hooks/useDataTablePermissions.ts +2 -23
  253. package/src/components/DataTable/index.ts +4 -0
  254. package/src/components/DataTable/styles.ts +1 -1
  255. package/src/components/DataTable/types.ts +13 -0
  256. package/src/components/DataTable/utils/__tests__/exportUtils.test.ts +1 -1
  257. package/src/components/DataTable/utils/aggregationUtils.ts +161 -0
  258. package/src/components/DataTable/utils/exportUtils.ts +1 -1
  259. package/src/components/DataTable/utils/flexibleImport.ts +1 -11
  260. package/src/components/DataTable/utils/index.ts +1 -0
  261. package/src/components/DataTable/utils/paginationUtils.ts +1 -1
  262. package/src/components/Dialog/Dialog.tsx +2 -2
  263. package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +35 -7
  264. package/src/components/ErrorBoundary/ErrorBoundary.tsx +5 -4
  265. package/src/components/EventSelector/EventSelector.tsx +3 -2
  266. package/src/components/FileDisplay/FileDisplay.tsx +2 -36
  267. package/src/components/FileUpload/FileUpload.test.tsx +2 -2
  268. package/src/components/FileUpload/FileUpload.tsx +2 -2
  269. package/src/components/Footer/Footer.tsx +1 -1
  270. package/src/components/Form/Form.test.tsx +4 -509
  271. package/src/components/Form/Form.tsx +1 -1
  272. package/src/components/Form/FormField.tsx +1 -1
  273. package/src/components/Form/index.ts +0 -12
  274. package/src/components/Header/Header.tsx +1 -1
  275. package/src/components/Input/Input.tsx +1 -1
  276. package/src/components/Label/Label.tsx +1 -1
  277. package/src/components/LoginForm/LoginForm.tsx +1 -1
  278. package/src/components/NavigationMenu/NavigationMenu.test.tsx +19 -3
  279. package/src/components/NavigationMenu/NavigationMenu.tsx +9 -8
  280. package/src/components/OrganisationSelector/OrganisationSelector.tsx +4 -3
  281. package/src/components/PaceAppLayout/PaceAppLayout.tsx +14 -12
  282. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.integration.test.tsx +0 -16
  283. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.security.test.tsx +0 -1
  284. package/src/components/PaceAppLayout/__tests__/PaceAppLayout.unit.test.tsx +0 -9
  285. package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +35 -3
  286. package/src/components/PaceLoginPage/PaceLoginPage.tsx +13 -12
  287. package/src/components/PasswordReset/PasswordChangeForm.tsx +1 -1
  288. package/src/components/PasswordReset/index.ts +0 -2
  289. package/src/components/Progress/Progress.tsx +1 -1
  290. package/src/components/ProtectedRoute/ProtectedRoute.test.tsx +35 -8
  291. package/src/components/ProtectedRoute/ProtectedRoute.tsx +3 -2
  292. package/src/components/PublicLayout/PublicErrorBoundary.tsx +1 -1
  293. package/src/components/PublicLayout/PublicLoadingSpinner.tsx +1 -1
  294. package/src/components/PublicLayout/PublicPageContextChecker.tsx +44 -43
  295. package/src/components/PublicLayout/PublicPageFooter.tsx +1 -1
  296. package/src/components/PublicLayout/PublicPageHeader.tsx +1 -15
  297. package/src/components/PublicLayout/PublicPageProvider.tsx +3 -2
  298. package/src/components/PublicLayout/__tests__/PublicPageContextChecker.test.tsx +2 -0
  299. package/src/components/PublicLayout/index.ts +4 -2
  300. package/src/components/Select/Select.tsx +1 -1
  301. package/src/components/{SessionRestorationLoader.tsx → SessionRestorationLoader/SessionRestorationLoader.tsx} +3 -2
  302. package/src/components/SessionRestorationLoader/index.ts +3 -0
  303. package/src/components/Switch/Switch.tsx +1 -1
  304. package/src/components/Table/Table.tsx +1 -1
  305. package/src/components/Toast/Toast.tsx +1 -1
  306. package/src/components/Tooltip/Tooltip.tsx +1 -1
  307. package/src/components/index.ts +4 -10
  308. package/src/hooks/__tests__/hooks.integration.test.tsx +37 -22
  309. package/src/hooks/__tests__/useComponentPerformance.unit.test.tsx +33 -17
  310. package/src/hooks/__tests__/useDataTablePerformance.unit.test.ts +28 -3
  311. package/src/hooks/__tests__/useFileDisplay.unit.test.ts +36 -9
  312. package/src/hooks/__tests__/useInactivityTracker.unit.test.ts +26 -2
  313. package/src/hooks/__tests__/usePerformanceMonitor.unit.test.ts +19 -6
  314. package/src/hooks/__tests__/usePermissionCache.simple.test.ts +17 -4
  315. package/src/hooks/__tests__/usePermissionCache.unit.test.ts +17 -4
  316. package/src/hooks/__tests__/usePublicEvent.simple.test.ts +26 -6
  317. package/src/hooks/__tests__/usePublicFileDisplay.test.ts +16 -6
  318. package/src/hooks/__tests__/useSecureDataAccess.unit.test.tsx +3 -3
  319. package/src/hooks/__tests__/useSessionRestoration.unit.test.tsx +17 -3
  320. package/src/hooks/public/usePublicEvent.ts +7 -6
  321. package/src/hooks/public/usePublicEventLogo.ts +7 -4
  322. package/src/hooks/public/usePublicFileDisplay.ts +6 -150
  323. package/src/hooks/useComponentPerformance.ts +4 -1
  324. package/src/hooks/useDataTablePerformance.ts +4 -3
  325. package/src/hooks/useEventTheme.test.ts +18 -5
  326. package/src/hooks/useEventTheme.ts +4 -1
  327. package/src/hooks/useEvents.ts +2 -0
  328. package/src/hooks/useFileDisplay.ts +9 -8
  329. package/src/hooks/useFileReference.ts +4 -1
  330. package/src/hooks/useFileUrl.ts +4 -1
  331. package/src/hooks/useInactivityTracker.ts +5 -4
  332. package/src/hooks/useOrganisationSecurity.test.ts +33 -12
  333. package/src/hooks/useOrganisationSecurity.ts +8 -7
  334. package/src/hooks/usePerformanceMonitor.ts +6 -3
  335. package/src/hooks/usePermissionCache.ts +13 -6
  336. package/src/hooks/useSecureDataAccess.test.ts +2 -2
  337. package/src/hooks/useSecureDataAccess.ts +9 -8
  338. package/src/hooks/useSessionRestoration.ts +4 -1
  339. package/src/hooks/useStorage.ts +4 -1
  340. package/src/index.ts +25 -8
  341. package/src/providers/services/AuthServiceProvider.tsx +3 -2
  342. package/src/providers/services/EventServiceProvider.tsx +2 -1
  343. package/src/providers/services/InactivityServiceProvider.tsx +2 -1
  344. package/src/providers/services/OrganisationServiceProvider.tsx +2 -1
  345. package/src/providers/services/UnifiedAuthProvider.tsx +4 -3
  346. package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +22 -2
  347. package/src/providers/services/__tests__/UnifiedAuthProvider.integration.test.tsx +24 -2
  348. package/src/rbac/__tests__/cache-invalidation.test.ts +20 -6
  349. package/src/rbac/api.ts +5 -2
  350. package/src/rbac/audit-enhanced.ts +6 -6
  351. package/src/rbac/audit.test.ts +60 -38
  352. package/src/rbac/audit.ts +8 -8
  353. package/src/rbac/cache-invalidation.ts +7 -4
  354. package/src/rbac/components/EnhancedNavigationMenu.tsx +11 -5
  355. package/src/rbac/components/NavigationGuard.tsx +7 -3
  356. package/src/rbac/components/NavigationProvider.tsx +6 -3
  357. package/src/rbac/components/PagePermissionGuard.tsx +28 -16
  358. package/src/rbac/components/PagePermissionProvider.tsx +4 -1
  359. package/src/rbac/components/PermissionEnforcer.tsx +9 -3
  360. package/src/rbac/components/RoleBasedRouter.tsx +3 -1
  361. package/src/rbac/components/SecureDataProvider.tsx +7 -3
  362. package/src/rbac/components/__tests__/EnhancedNavigationMenu.test.tsx +87 -61
  363. package/src/rbac/components/__tests__/NavigationGuard.test.tsx +83 -33
  364. package/src/rbac/components/__tests__/NavigationProvider.test.tsx +36 -13
  365. package/src/rbac/components/__tests__/PagePermissionGuard.test.tsx +2 -2
  366. package/src/rbac/components/__tests__/PagePermissionProvider.test.tsx +22 -8
  367. package/src/rbac/components/__tests__/PermissionEnforcer.test.tsx +19 -6
  368. package/src/rbac/components/__tests__/SecureDataProvider.fixed.test.tsx +43 -17
  369. package/src/rbac/components/__tests__/SecureDataProvider.test.tsx +42 -17
  370. package/src/rbac/engine.ts +15 -7
  371. package/src/rbac/hooks/usePermissions.ts +7 -3
  372. package/src/rbac/hooks/useResolvedScope.test.ts +2 -2
  373. package/src/rbac/hooks/useResolvedScope.ts +10 -7
  374. package/src/rbac/permissions.ts +5 -2
  375. package/src/rbac/security.test.ts +27 -16
  376. package/src/rbac/security.ts +5 -4
  377. package/src/services/AuthService.ts +22 -21
  378. package/src/services/EventService.ts +12 -12
  379. package/src/services/InactivityService.ts +5 -4
  380. package/src/services/OrganisationService.ts +26 -25
  381. package/src/services/__tests__/AuthService.test.ts +51 -19
  382. package/src/services/__tests__/EventService.test.ts +37 -5
  383. package/src/services/__tests__/InactivityService.test.ts +38 -4
  384. package/src/services/__tests__/OrganisationService.test.ts +3 -8
  385. package/src/services/base/BaseService.ts +3 -1
  386. package/src/theming/__tests__/runtime.test.ts +21 -12
  387. package/src/theming/parseEventColours.ts +5 -19
  388. package/src/theming/runtime.ts +8 -4
  389. package/src/types/validation.ts +2 -29
  390. package/src/utils/__tests__/appConfig.unit.test.ts +1 -1
  391. package/src/utils/__tests__/audit.unit.test.ts +1 -1
  392. package/src/utils/__tests__/auth-utils.unit.test.ts +1 -1
  393. package/src/utils/__tests__/bundleAnalysis.unit.test.ts +19 -19
  394. package/src/utils/__tests__/cn.unit.test.ts +1 -1
  395. package/src/utils/__tests__/debugLogger.test.ts +1 -1
  396. package/src/utils/__tests__/deviceFingerprint.unit.test.ts +1 -1
  397. package/src/utils/__tests__/dynamicUtils.unit.test.ts +1 -1
  398. package/src/utils/__tests__/formatting.unit.test.ts +1 -1
  399. package/src/utils/__tests__/lazyLoad.unit.test.tsx +1 -1
  400. package/src/utils/__tests__/logger.unit.test.ts +1 -1
  401. package/src/utils/__tests__/organisationContext.unit.test.ts +1 -1
  402. package/src/utils/__tests__/performanceBenchmark.test.ts +1 -1
  403. package/src/utils/__tests__/performanceBudgets.unit.test.ts +1 -1
  404. package/src/utils/__tests__/permissionTypes.unit.test.ts +1 -1
  405. package/src/utils/__tests__/permissionUtils.unit.test.ts +1 -1
  406. package/src/utils/__tests__/sanitization.unit.test.ts +1 -1
  407. package/src/utils/__tests__/schemaUtils.unit.test.ts +1 -1
  408. package/src/utils/__tests__/secureDataAccess.unit.test.ts +1 -1
  409. package/src/utils/__tests__/secureErrors.unit.test.ts +33 -15
  410. package/src/utils/__tests__/secureStorage.unit.test.ts +1 -1
  411. package/src/utils/__tests__/security.unit.test.ts +40 -18
  412. package/src/utils/__tests__/securityMonitor.unit.test.ts +1 -1
  413. package/src/utils/__tests__/sessionTracking.unit.test.ts +40 -29
  414. package/src/utils/__tests__/validationUtils.unit.test.ts +19 -6
  415. package/src/utils/{appIdResolver.test.ts → app/appIdResolver.test.ts} +28 -30
  416. package/src/utils/{appIdResolver.ts → app/appIdResolver.ts} +8 -5
  417. package/src/utils/{appNameResolver.test.ts → app/appNameResolver.test.ts} +1 -1
  418. package/src/utils/{appNameResolver.ts → app/appNameResolver.ts} +5 -1
  419. package/src/utils/{organisationContext.ts → context/organisationContext.ts} +6 -3
  420. package/src/utils/{sessionTracking.ts → context/sessionTracking.ts} +11 -12
  421. package/src/utils/{logger.ts → core/logger.ts} +4 -2
  422. package/src/utils/{deviceFingerprint.ts → device/deviceFingerprint.ts} +1 -1
  423. package/src/utils/{lazyLoad.tsx → dynamic/lazyLoad.tsx} +2 -2
  424. package/src/utils/{file-reference.test.ts → file-reference/__tests__/file-reference.test.ts} +5 -5
  425. package/src/utils/{file-reference.ts → file-reference/index.ts} +20 -38
  426. package/src/utils/index.ts +32 -54
  427. package/src/utils/{secureErrors.ts → security/secureErrors.ts} +6 -3
  428. package/src/utils/{security.ts → security/security.ts} +5 -2
  429. package/src/utils/storage/__tests__/helpers.unit.test.ts +1 -4
  430. package/src/utils/storage/helpers.ts +15 -8
  431. package/src/{components/Dialog/utils/__tests__/safeHtml.unit.test.ts → utils/validation/__tests__/htmlSanitization.unit.test.ts} +9 -15
  432. package/src/{validation → utils/validation}/csrf.ts +1 -1
  433. package/src/{components/Dialog/utils/safeHtml.ts → utils/validation/htmlSanitization.ts} +9 -10
  434. package/src/utils/validation/index.ts +79 -0
  435. package/src/utils/{sanitization.ts → validation/sanitization.ts} +71 -2
  436. package/src/{validation/schemaUtils.ts → utils/validation/schema.ts} +11 -6
  437. package/src/{validation → utils/validation}/sqlInjectionProtection.ts +2 -0
  438. package/src/utils/{validationUtils.ts → validation/validationUtils.ts} +4 -1
  439. package/src/validation/index.ts +3 -34
  440. package/dist/UnifiedAuthProvider-CQDZRJIS.js +0 -16
  441. package/dist/chunk-24MKLB7U.js +0 -81
  442. package/dist/chunk-24MKLB7U.js.map +0 -1
  443. package/dist/chunk-3CG5L6RN.js.map +0 -1
  444. package/dist/chunk-3DBFLLLU.js.map +0 -1
  445. package/dist/chunk-5F3NDPJV.js.map +0 -1
  446. package/dist/chunk-66C4BSAY.js.map +0 -1
  447. package/dist/chunk-BDZUMRBD.js.map +0 -1
  448. package/dist/chunk-BYXRHAIF.js.map +0 -1
  449. package/dist/chunk-CDQ3PX7L.js +0 -18
  450. package/dist/chunk-CDQ3PX7L.js.map +0 -1
  451. package/dist/chunk-CQZU6TFE.js.map +0 -1
  452. package/dist/chunk-F64FFPOZ.js.map +0 -1
  453. package/dist/chunk-GEVIB2UB.js.map +0 -1
  454. package/dist/chunk-GKHF54DI.js.map +0 -1
  455. package/dist/chunk-GVDR7WNV.js.map +0 -1
  456. package/dist/chunk-HMNOSGVA.js.map +0 -1
  457. package/dist/chunk-JCQZ6LA7.js.map +0 -1
  458. package/dist/chunk-M6DDYFUD.js.map +0 -1
  459. package/dist/chunk-O3NWNXDY.js.map +0 -1
  460. package/dist/chunk-PYUXFQJ3.js.map +0 -1
  461. package/dist/chunk-UJI6WSMD.js.map +0 -1
  462. package/dist/chunk-VZ5OR6HD.js.map +0 -1
  463. package/dist/chunk-WP5I5GLN.js.map +0 -1
  464. package/dist/chunk-ZYZCRSBD.js.map +0 -1
  465. package/src/components/Dialog/README.md +0 -804
  466. package/src/components/Form/FormErrorSummary.tsx +0 -113
  467. package/src/components/Form/FormFieldset.tsx +0 -127
  468. package/src/components/Form/FormLiveRegion.tsx +0 -198
  469. package/src/components/PasswordReset/PasswordResetForm.test.tsx +0 -597
  470. package/src/components/PasswordReset/PasswordResetForm.tsx +0 -201
  471. package/src/components/PublicLayout/PublicPageDebugger.tsx +0 -104
  472. package/src/components/PublicLayout/PublicPageDiagnostic.tsx +0 -162
  473. package/src/components/PublicLayout/__tests__/PublicPageDebugger.test.tsx +0 -185
  474. package/src/examples/CorrectPublicPageImplementation.tsx +0 -304
  475. package/src/examples/PublicEventPage.tsx +0 -287
  476. package/src/examples/PublicPageApp.tsx +0 -321
  477. package/src/examples/PublicPageUsageExample.tsx +0 -218
  478. package/src/utils/schemaUtils.ts +0 -37
  479. package/src/validation/__tests__/common.unit.test.ts +0 -101
  480. package/src/validation/__tests__/csrf.unit.test.ts +0 -365
  481. package/src/validation/__tests__/passwordSchema.unit.test.ts +0 -203
  482. package/src/validation/__tests__/sanitization.unit.test.ts +0 -250
  483. package/src/validation/__tests__/schemaUtils.unit.test.ts +0 -451
  484. package/src/validation/__tests__/sqlInjectionProtection.unit.test.ts +0 -462
  485. package/src/validation/__tests__/user.unit.test.ts +0 -440
  486. package/src/validation/sanitization.ts +0 -96
  487. /package/dist/{DataTable-A36PJG6N.js.map → DataTable-CYOHOX3O.js.map} +0 -0
  488. /package/dist/{UnifiedAuthProvider-CQDZRJIS.js.map → UnifiedAuthProvider-5E5TUNMS.js.map} +0 -0
  489. /package/dist/{api-TNIBJWLM.js.map → api-45XYYO2A.js.map} +0 -0
  490. /package/dist/{audit-T36HM7IM.js.map → audit-64X3VJXB.js.map} +0 -0
  491. /package/dist/{chunk-CTJRBUX2.js.map → chunk-2TWNJ46Y.js.map} +0 -0
  492. /package/dist/{chunk-ZV77RZMU.js.map → chunk-XARJS7CD.js.map} +0 -0
  493. /package/dist/{useInactivityTracker-MRUU55XI.js.map → useInactivityTracker-TO6ZOF35.js.map} +0 -0
  494. /package/examples/{public-pages → features/public-pages}/index.ts +0 -0
  495. /package/examples/{RBAC → features/rbac}/CompleteRBACExample.tsx +0 -0
  496. /package/examples/{RBAC → features/rbac}/EventBasedApp.tsx +0 -0
  497. /package/examples/{RBAC → features/rbac}/PermissionExample.tsx +0 -0
  498. /package/examples/{RBAC → features/rbac}/index.ts +0 -0
  499. /package/src/utils/{appConfig.ts → app/appConfig.ts} +0 -0
  500. /package/src/utils/{appNameResolver.simple.test.ts → app/appNameResolver.simple.test.ts} +0 -0
  501. /package/src/utils/{audit.ts → audit/audit.ts} +0 -0
  502. /package/src/utils/{organisationContext.test.ts → context/organisationContext.test.ts} +0 -0
  503. /package/src/utils/{cn.ts → core/cn.ts} +0 -0
  504. /package/src/utils/{debugLogger.ts → core/debugLogger.ts} +0 -0
  505. /package/src/utils/{dynamicUtils.ts → dynamic/dynamicUtils.ts} +0 -0
  506. /package/src/utils/{formatDate.test.ts → formatting/formatDate.test.ts} +0 -0
  507. /package/src/utils/{formatting.ts → formatting/formatting.ts} +0 -0
  508. /package/src/utils/{bundleAnalysis.ts → performance/bundleAnalysis.ts} +0 -0
  509. /package/src/utils/{performanceBenchmark.ts → performance/performanceBenchmark.ts} +0 -0
  510. /package/src/utils/{performanceBudgets.ts → performance/performanceBudgets.ts} +0 -0
  511. /package/src/utils/{permissionTypes.ts → permissions/permissionTypes.ts} +0 -0
  512. /package/src/utils/{permissionUtils.test.ts → permissions/permissionUtils.test.ts} +0 -0
  513. /package/src/utils/{permissionUtils.ts → permissions/permissionUtils.ts} +0 -0
  514. /package/src/utils/{auth-utils.ts → security/auth-utils.ts} +0 -0
  515. /package/src/utils/{secureDataAccess.test.ts → security/secureDataAccess.test.ts} +0 -0
  516. /package/src/utils/{secureDataAccess.ts → security/secureDataAccess.ts} +0 -0
  517. /package/src/utils/{secureStorage.ts → security/secureStorage.ts} +0 -0
  518. /package/src/utils/{securityMonitor.ts → security/securityMonitor.ts} +0 -0
  519. /package/src/{validation → utils/validation}/common.ts +0 -0
  520. /package/src/{validation → utils/validation}/passwordSchema.ts +0 -0
  521. /package/src/{validation → utils/validation}/user.ts +0 -0
  522. /package/src/utils/{validation.ts → validation/validation.ts} +0 -0
@@ -1,6 +1,6 @@
1
- [@jmruthers/pace-core - v0.5.134](README.md) / Exports
1
+ [@jmruthers/pace-core - v0.5.136](README.md) / Exports
2
2
 
3
- # @jmruthers/pace-core - v0.5.134
3
+ # @jmruthers/pace-core - v0.5.136
4
4
 
5
5
  **`File`**
6
6
 
@@ -61,6 +61,8 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
61
61
  - [DataTableToolbarButton](interfaces/DataTableToolbarButton.md)
62
62
  - [AggregateConfig](interfaces/AggregateConfig.md)
63
63
  - [EmptyStateConfig](interfaces/EmptyStateConfig.md)
64
+ - [ExportOptions](interfaces/ExportOptions.md)
65
+ - [ExportColumn](interfaces/ExportColumn.md)
64
66
  - [FileDisplayProps](interfaces/FileDisplayProps.md)
65
67
  - [FileUploadProps](interfaces/FileUploadProps.md)
66
68
  - [FooterProps](interfaces/FooterProps.md)
@@ -73,12 +75,14 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
73
75
  - [PaceAppLayoutProps](interfaces/PaceAppLayoutProps.md)
74
76
  - [PaceLoginPageProps](interfaces/PaceLoginPageProps.md)
75
77
  - [ProtectedRouteProps](interfaces/ProtectedRouteProps.md)
78
+ - [EventLogoProps](interfaces/EventLogoProps.md)
76
79
  - [PublicErrorBoundaryProps](interfaces/PublicErrorBoundaryProps.md)
77
80
  - [PublicErrorBoundaryState](interfaces/PublicErrorBoundaryState.md)
78
81
  - [PublicLoadingSpinnerProps](interfaces/PublicLoadingSpinnerProps.md)
79
82
  - [PublicPageFooterProps](interfaces/PublicPageFooterProps.md)
80
83
  - [PublicPageHeaderProps](interfaces/PublicPageHeaderProps.md)
81
84
  - [PublicPageLayoutProps](interfaces/PublicPageLayoutProps.md)
85
+ - [SessionRestorationLoaderProps](interfaces/SessionRestorationLoaderProps.md)
82
86
  - [SwitchProps](interfaces/SwitchProps.md)
83
87
  - [ToastProps](interfaces/ToastProps.md)
84
88
  - [ToastActionElement](interfaces/ToastActionElement.md)
@@ -193,6 +197,14 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
193
197
  - [CardActions](modules.md#cardactions)
194
198
  - [Checkbox](modules.md#checkbox)
195
199
  - [DataTable](modules.md#datatable)
200
+ - [sum](modules.md#sum)
201
+ - [average](modules.md#average)
202
+ - [count](modules.md#count)
203
+ - [min](modules.md#min)
204
+ - [max](modules.md#max)
205
+ - [generateCSVContent](modules.md#generatecsvcontent)
206
+ - [exportToCSVWithTableRows](modules.md#exporttocsvwithtablerows)
207
+ - [exportToCSV](modules.md#exporttocsv)
196
208
  - [Dialog](modules.md#dialog)
197
209
  - [DialogTrigger](modules.md#dialogtrigger)
198
210
  - [DialogPortal](modules.md#dialogportal)
@@ -220,17 +232,17 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
220
232
  - [PaceAppLayout](modules.md#paceapplayout)
221
233
  - [PaceLoginPage](modules.md#paceloginpage)
222
234
  - [PasswordChangeForm](modules.md#passwordchangeform)
223
- - [PasswordResetForm](modules.md#passwordresetform)
224
235
  - [Progress](modules.md#progress)
225
236
  - [ProtectedRoute](modules.md#protectedroute)
237
+ - [EventLogo](modules.md#eventlogo)
238
+ - [EventLogoCompact](modules.md#eventlogocompact)
239
+ - [EventLogoLarge](modules.md#eventlogolarge)
226
240
  - [useErrorBoundary](modules.md#useerrorboundary)
227
241
  - [DefaultPublicErrorFallback](modules.md#defaultpublicerrorfallback)
228
242
  - [PublicLoadingSpinner](modules.md#publicloadingspinner)
229
243
  - [PublicLoadingSpinnerFullPage](modules.md#publicloadingspinnerfullpage)
230
244
  - [PublicLoadingSkeleton](modules.md#publicloadingskeleton)
231
245
  - [PublicPageContextChecker](modules.md#publicpagecontextchecker)
232
- - [PublicPageDebugger](modules.md#publicpagedebugger)
233
- - [PublicPageDiagnostic](modules.md#publicpagediagnostic)
234
246
  - [PublicPageFooter](modules.md#publicpagefooter)
235
247
  - [PublicPageHeader](modules.md#publicpageheader)
236
248
  - [PublicPageLayout](modules.md#publicpagelayout)
@@ -369,6 +381,7 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
369
381
  - [getAppConfig](modules.md#getappconfig)
370
382
  - [getCurrentAppName](modules.md#getcurrentappname)
371
383
  - [getCurrentAppId](modules.md#getcurrentappid)
384
+ - [useSessionTracking](modules.md#usesessiontracking)
372
385
  - [cn](modules.md#cn)
373
386
  - [formatDate](modules.md#formatdate)
374
387
  - [formatCurrency](modules.md#formatcurrency)
@@ -377,7 +390,6 @@ import { Dialog, NavigationMenu } from '@jmruthers/pace-core/components';
377
390
  - [formatCompactNumber](modules.md#formatcompactnumber)
378
391
  - [formatFileSize](modules.md#formatfilesize)
379
392
  - [createSecureDataAccess](modules.md#createsecuredataaccess)
380
- - [useSessionTracking](modules.md#usesessiontracking)
381
393
  - [getFileSizeLimit](modules.md#getfilesizelimit)
382
394
  - [getBucketName](modules.md#getbucketname)
383
395
  - [validateFileSize](modules.md#validatefilesize)
@@ -441,7 +453,7 @@ ___
441
453
 
442
454
  #### Defined in
443
455
 
444
- [packages/core/src/hooks/useFileReference.ts:448](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L448)
456
+ [packages/core/src/hooks/useFileReference.ts:451](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L451)
445
457
 
446
458
  ___
447
459
 
@@ -467,7 +479,7 @@ ___
467
479
 
468
480
  #### Defined in
469
481
 
470
- [packages/core/src/hooks/useFileReference.ts:454](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L454)
482
+ [packages/core/src/hooks/useFileReference.ts:457](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L457)
471
483
 
472
484
  ___
473
485
 
@@ -495,7 +507,7 @@ ___
495
507
 
496
508
  #### Defined in
497
509
 
498
- [packages/core/src/hooks/useFileReference.ts:468](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L468)
510
+ [packages/core/src/hooks/useFileReference.ts:471](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L471)
499
511
 
500
512
  ___
501
513
 
@@ -515,7 +527,7 @@ ___
515
527
 
516
528
  #### Defined in
517
529
 
518
- [packages/core/src/rbac/permissions.ts:208](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L208)
530
+ [packages/core/src/rbac/permissions.ts:211](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L211)
519
531
 
520
532
  ___
521
533
 
@@ -688,7 +700,7 @@ ___
688
700
 
689
701
  #### Defined in
690
702
 
691
- [packages/core/src/rbac/permissions.ts:17](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L17)
703
+ [packages/core/src/rbac/permissions.ts:20](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L20)
692
704
 
693
705
  ___
694
706
 
@@ -722,7 +734,7 @@ ___
722
734
 
723
735
  #### Defined in
724
736
 
725
- [packages/core/src/rbac/permissions.ts:28](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L28)
737
+ [packages/core/src/rbac/permissions.ts:31](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L31)
726
738
 
727
739
  ___
728
740
 
@@ -761,7 +773,7 @@ ___
761
773
 
762
774
  #### Defined in
763
775
 
764
- [packages/core/src/rbac/permissions.ts:63](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L63)
776
+ [packages/core/src/rbac/permissions.ts:66](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L66)
765
777
 
766
778
  ___
767
779
 
@@ -796,7 +808,7 @@ ___
796
808
 
797
809
  #### Defined in
798
810
 
799
- [packages/core/src/rbac/permissions.ts:105](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L105)
811
+ [packages/core/src/rbac/permissions.ts:108](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L108)
800
812
 
801
813
  ___
802
814
 
@@ -878,7 +890,7 @@ ___
878
890
 
879
891
  #### Defined in
880
892
 
881
- [packages/core/src/rbac/permissions.ts:201](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L201)
893
+ [packages/core/src/rbac/permissions.ts:204](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L204)
882
894
 
883
895
  ___
884
896
 
@@ -1305,6 +1317,425 @@ Features are configured through the unified `features` prop for maximum flexibil
1305
1317
 
1306
1318
  ___
1307
1319
 
1320
+ ### sum
1321
+
1322
+ ▸ **sum**\<`TData`\>(`accessorKey`): \<TRow\>(`rows`: `TRow`[], `column`: [`DataTableColumn`](interfaces/DataTableColumn.md)\<`TRow`\>) => `number`
1323
+
1324
+ Creates a sum aggregation function for a specific field.
1325
+
1326
+ #### Type parameters
1327
+
1328
+ | Name | Type |
1329
+ | :------ | :------ |
1330
+ | `TData` | extends [`DataRecord`](interfaces/DataRecord.md) = [`DataRecord`](interfaces/DataRecord.md) |
1331
+
1332
+ #### Parameters
1333
+
1334
+ | Name | Type | Description |
1335
+ | :------ | :------ | :------ |
1336
+ | `accessorKey` | `string` \| keyof `TData` | The field key to sum (e.g., 'cost', 'quantity') |
1337
+
1338
+ #### Returns
1339
+
1340
+ `fn`
1341
+
1342
+ An aggregation function that sums the specified field across all rows
1343
+
1344
+ ▸ \<`TRow`\>(`rows`, `column`): `number`
1345
+
1346
+ ##### Type parameters
1347
+
1348
+ | Name | Type |
1349
+ | :------ | :------ |
1350
+ | `TRow` | extends [`DataRecord`](interfaces/DataRecord.md) = `TData` |
1351
+
1352
+ ##### Parameters
1353
+
1354
+ | Name | Type |
1355
+ | :------ | :------ |
1356
+ | `rows` | `TRow`[] |
1357
+ | `column` | [`DataTableColumn`](interfaces/DataTableColumn.md)\<`TRow`\> |
1358
+
1359
+ ##### Returns
1360
+
1361
+ `number`
1362
+
1363
+ **`Example`**
1364
+
1365
+ ```tsx
1366
+ {
1367
+ accessorKey: 'cost',
1368
+ header: 'Total Cost',
1369
+ aggregateFn: sum('cost'),
1370
+ }
1371
+ ```
1372
+
1373
+ #### Defined in
1374
+
1375
+ [packages/core/src/components/DataTable/utils/aggregationUtils.ts:28](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/utils/aggregationUtils.ts#L28)
1376
+
1377
+ ___
1378
+
1379
+ ### average
1380
+
1381
+ ▸ **average**\<`TData`\>(`accessorKey`): \<TRow\>(`rows`: `TRow`[], `column`: [`DataTableColumn`](interfaces/DataTableColumn.md)\<`TRow`\>) => `number`
1382
+
1383
+ Creates an average aggregation function for a specific field.
1384
+
1385
+ #### Type parameters
1386
+
1387
+ | Name | Type |
1388
+ | :------ | :------ |
1389
+ | `TData` | extends [`DataRecord`](interfaces/DataRecord.md) = [`DataRecord`](interfaces/DataRecord.md) |
1390
+
1391
+ #### Parameters
1392
+
1393
+ | Name | Type | Description |
1394
+ | :------ | :------ | :------ |
1395
+ | `accessorKey` | `string` \| keyof `TData` | The field key to average (e.g., 'price', 'rating') |
1396
+
1397
+ #### Returns
1398
+
1399
+ `fn`
1400
+
1401
+ An aggregation function that calculates the average of the specified field across all rows
1402
+
1403
+ ▸ \<`TRow`\>(`rows`, `column`): `number`
1404
+
1405
+ ##### Type parameters
1406
+
1407
+ | Name | Type |
1408
+ | :------ | :------ |
1409
+ | `TRow` | extends [`DataRecord`](interfaces/DataRecord.md) = `TData` |
1410
+
1411
+ ##### Parameters
1412
+
1413
+ | Name | Type |
1414
+ | :------ | :------ |
1415
+ | `rows` | `TRow`[] |
1416
+ | `column` | [`DataTableColumn`](interfaces/DataTableColumn.md)\<`TRow`\> |
1417
+
1418
+ ##### Returns
1419
+
1420
+ `number`
1421
+
1422
+ **`Example`**
1423
+
1424
+ ```tsx
1425
+ {
1426
+ accessorKey: 'price',
1427
+ header: 'Avg Price',
1428
+ aggregateFn: average('price'),
1429
+ }
1430
+ ```
1431
+
1432
+ #### Defined in
1433
+
1434
+ [packages/core/src/components/DataTable/utils/aggregationUtils.ts:53](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/utils/aggregationUtils.ts#L53)
1435
+
1436
+ ___
1437
+
1438
+ ### count
1439
+
1440
+ ▸ **count**\<`TData`\>(): \<TRow\>(`rows`: `TRow`[], `column`: [`DataTableColumn`](interfaces/DataTableColumn.md)\<`TRow`\>) => `number`
1441
+
1442
+ Creates a count aggregation function.
1443
+ Returns the number of rows in the group.
1444
+
1445
+ #### Type parameters
1446
+
1447
+ | Name | Type |
1448
+ | :------ | :------ |
1449
+ | `TData` | extends [`DataRecord`](interfaces/DataRecord.md) = [`DataRecord`](interfaces/DataRecord.md) |
1450
+
1451
+ #### Returns
1452
+
1453
+ `fn`
1454
+
1455
+ An aggregation function that counts the number of rows
1456
+
1457
+ ▸ \<`TRow`\>(`rows`, `column`): `number`
1458
+
1459
+ ##### Type parameters
1460
+
1461
+ | Name | Type |
1462
+ | :------ | :------ |
1463
+ | `TRow` | extends [`DataRecord`](interfaces/DataRecord.md) = `TData` |
1464
+
1465
+ ##### Parameters
1466
+
1467
+ | Name | Type |
1468
+ | :------ | :------ |
1469
+ | `rows` | `TRow`[] |
1470
+ | `column` | [`DataTableColumn`](interfaces/DataTableColumn.md)\<`TRow`\> |
1471
+
1472
+ ##### Returns
1473
+
1474
+ `number`
1475
+
1476
+ **`Example`**
1477
+
1478
+ ```tsx
1479
+ {
1480
+ accessorKey: 'id',
1481
+ header: 'Count',
1482
+ aggregateFn: count(),
1483
+ }
1484
+ ```
1485
+
1486
+ #### Defined in
1487
+
1488
+ [packages/core/src/components/DataTable/utils/aggregationUtils.ts:88](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/utils/aggregationUtils.ts#L88)
1489
+
1490
+ ___
1491
+
1492
+ ### min
1493
+
1494
+ ▸ **min**\<`TData`\>(`accessorKey`): \<TRow\>(`rows`: `TRow`[], `column`: [`DataTableColumn`](interfaces/DataTableColumn.md)\<`TRow`\>) => ``null`` \| `number`
1495
+
1496
+ Creates a minimum aggregation function for a specific field.
1497
+
1498
+ #### Type parameters
1499
+
1500
+ | Name | Type |
1501
+ | :------ | :------ |
1502
+ | `TData` | extends [`DataRecord`](interfaces/DataRecord.md) = [`DataRecord`](interfaces/DataRecord.md) |
1503
+
1504
+ #### Parameters
1505
+
1506
+ | Name | Type | Description |
1507
+ | :------ | :------ | :------ |
1508
+ | `accessorKey` | `string` \| keyof `TData` | The field key to find the minimum of (e.g., 'price', 'date') |
1509
+
1510
+ #### Returns
1511
+
1512
+ `fn`
1513
+
1514
+ An aggregation function that returns the minimum value of the specified field
1515
+
1516
+ ▸ \<`TRow`\>(`rows`, `column`): ``null`` \| `number`
1517
+
1518
+ ##### Type parameters
1519
+
1520
+ | Name | Type |
1521
+ | :------ | :------ |
1522
+ | `TRow` | extends [`DataRecord`](interfaces/DataRecord.md) = `TData` |
1523
+
1524
+ ##### Parameters
1525
+
1526
+ | Name | Type |
1527
+ | :------ | :------ |
1528
+ | `rows` | `TRow`[] |
1529
+ | `column` | [`DataTableColumn`](interfaces/DataTableColumn.md)\<`TRow`\> |
1530
+
1531
+ ##### Returns
1532
+
1533
+ ``null`` \| `number`
1534
+
1535
+ **`Example`**
1536
+
1537
+ ```tsx
1538
+ {
1539
+ accessorKey: 'price',
1540
+ header: 'Min Price',
1541
+ aggregateFn: min('price'),
1542
+ }
1543
+ ```
1544
+
1545
+ #### Defined in
1546
+
1547
+ [packages/core/src/components/DataTable/utils/aggregationUtils.ts:109](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/utils/aggregationUtils.ts#L109)
1548
+
1549
+ ___
1550
+
1551
+ ### max
1552
+
1553
+ ▸ **max**\<`TData`\>(`accessorKey`): \<TRow\>(`rows`: `TRow`[], `column`: [`DataTableColumn`](interfaces/DataTableColumn.md)\<`TRow`\>) => ``null`` \| `number`
1554
+
1555
+ Creates a maximum aggregation function for a specific field.
1556
+
1557
+ #### Type parameters
1558
+
1559
+ | Name | Type |
1560
+ | :------ | :------ |
1561
+ | `TData` | extends [`DataRecord`](interfaces/DataRecord.md) = [`DataRecord`](interfaces/DataRecord.md) |
1562
+
1563
+ #### Parameters
1564
+
1565
+ | Name | Type | Description |
1566
+ | :------ | :------ | :------ |
1567
+ | `accessorKey` | `string` \| keyof `TData` | The field key to find the maximum of (e.g., 'price', 'date') |
1568
+
1569
+ #### Returns
1570
+
1571
+ `fn`
1572
+
1573
+ An aggregation function that returns the maximum value of the specified field
1574
+
1575
+ ▸ \<`TRow`\>(`rows`, `column`): ``null`` \| `number`
1576
+
1577
+ ##### Type parameters
1578
+
1579
+ | Name | Type |
1580
+ | :------ | :------ |
1581
+ | `TRow` | extends [`DataRecord`](interfaces/DataRecord.md) = `TData` |
1582
+
1583
+ ##### Parameters
1584
+
1585
+ | Name | Type |
1586
+ | :------ | :------ |
1587
+ | `rows` | `TRow`[] |
1588
+ | `column` | [`DataTableColumn`](interfaces/DataTableColumn.md)\<`TRow`\> |
1589
+
1590
+ ##### Returns
1591
+
1592
+ ``null`` \| `number`
1593
+
1594
+ **`Example`**
1595
+
1596
+ ```tsx
1597
+ {
1598
+ accessorKey: 'price',
1599
+ header: 'Max Price',
1600
+ aggregateFn: max('price'),
1601
+ }
1602
+ ```
1603
+
1604
+ #### Defined in
1605
+
1606
+ [packages/core/src/components/DataTable/utils/aggregationUtils.ts:143](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/utils/aggregationUtils.ts#L143)
1607
+
1608
+ ___
1609
+
1610
+ ### generateCSVContent
1611
+
1612
+ ▸ **generateCSVContent**\<`TData`\>(`data`, `columns`, `options?`): `string`
1613
+
1614
+ Generates CSV content from data without triggering download
1615
+
1616
+ #### Type parameters
1617
+
1618
+ | Name | Type |
1619
+ | :------ | :------ |
1620
+ | `TData` | extends [`DataRecord`](interfaces/DataRecord.md) |
1621
+
1622
+ #### Parameters
1623
+
1624
+ | Name | Type | Description |
1625
+ | :------ | :------ | :------ |
1626
+ | `data` | `TData`[] | Array of data objects to export |
1627
+ | `columns` | [`ExportColumn`](interfaces/ExportColumn.md)[] | Column definitions for mapping |
1628
+ | `options` | `Object` | Export options |
1629
+ | `options.includeHeaders?` | `boolean` | - |
1630
+ | `options.locale?` | `string` | - |
1631
+ | `options.sanitizeForSecurity?` | `boolean` | - |
1632
+
1633
+ #### Returns
1634
+
1635
+ `string`
1636
+
1637
+ CSV content as string
1638
+
1639
+ #### Defined in
1640
+
1641
+ [packages/core/src/components/DataTable/utils/exportUtils.ts:123](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/utils/exportUtils.ts#L123)
1642
+
1643
+ ___
1644
+
1645
+ ### exportToCSVWithTableRows
1646
+
1647
+ ▸ **exportToCSVWithTableRows**(`tableRows`, `columns`, `columnIdToTableColumn`, `filename?`, `options?`): `Promise`\<`void`\>
1648
+
1649
+ Exports DataTable data using TanStack Table rows with getValue() for proper accessorFn evaluation
1650
+ This ensures computed columns (with accessorFn) export correctly with their displayed values
1651
+
1652
+ #### Parameters
1653
+
1654
+ | Name | Type | Default value |
1655
+ | :------ | :------ | :------ |
1656
+ | `tableRows` | \{ `original`: `any` ; `getValue`: (`columnId`: `string`) => `any` ; `id`: `string` }[] | `undefined` |
1657
+ | `columns` | [`ExportColumn`](interfaces/ExportColumn.md)[] | `undefined` |
1658
+ | `columnIdToTableColumn` | `Map`\<`string`, `any`\> | `undefined` |
1659
+ | `filename` | `string` | `"download.csv"` |
1660
+ | `options` | `Object` | `{}` |
1661
+ | `options.locale?` | `string` | `undefined` |
1662
+ | `options.sanitizeForSecurity?` | `boolean` | `undefined` |
1663
+
1664
+ #### Returns
1665
+
1666
+ `Promise`\<`void`\>
1667
+
1668
+ #### Defined in
1669
+
1670
+ [packages/core/src/components/DataTable/utils/exportUtils.ts:188](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/utils/exportUtils.ts#L188)
1671
+
1672
+ ___
1673
+
1674
+ ### exportToCSV
1675
+
1676
+ ▸ **exportToCSV**\<`TData`\>(`data`, `columns`, `filename?`, `options?`): `Promise`\<`void`\>
1677
+
1678
+ Exports DataTable data to CSV format
1679
+
1680
+ #### Type parameters
1681
+
1682
+ | Name | Type |
1683
+ | :------ | :------ |
1684
+ | `TData` | extends [`DataRecord`](interfaces/DataRecord.md) |
1685
+
1686
+ #### Parameters
1687
+
1688
+ | Name | Type | Default value | Description |
1689
+ | :------ | :------ | :------ | :------ |
1690
+ | `data` | `TData`[] | `undefined` | Array of data objects to export |
1691
+ | `columns` | [`ExportColumn`](interfaces/ExportColumn.md)[] | `undefined` | Column definitions for mapping |
1692
+ | `filename` | `string` | `"download.csv"` | Optional filename for download (default: "download.csv") |
1693
+ | `options` | `Object` | `{}` | Optional export configuration |
1694
+ | `options.locale?` | `string` | `undefined` | - |
1695
+ | `options.sanitizeForSecurity?` | `boolean` | `undefined` | - |
1696
+
1697
+ #### Returns
1698
+
1699
+ `Promise`\<`void`\>
1700
+
1701
+ Promise that resolves when export is complete, rejects on error
1702
+
1703
+ **`Example`**
1704
+
1705
+ ```tsx
1706
+ // Export user data
1707
+ const users = [
1708
+ { id: 1, name: 'John Doe', email: 'john@example.com' },
1709
+ { id: 2, name: 'Jane Smith', email: 'jane@example.com' }
1710
+ ];
1711
+
1712
+ const columns = [
1713
+ { accessorKey: 'name', header: 'Name' },
1714
+ { accessorKey: 'email', header: 'Email' }
1715
+ ];
1716
+
1717
+ try {
1718
+ await exportToCSV(users, columns, 'users.csv', { locale: 'en-US' });
1719
+ showSuccessToast('Data exported successfully');
1720
+ } catch (error) {
1721
+ showErrorToast('Failed to export data');
1722
+ }
1723
+ ```
1724
+
1725
+ **`Remarks`**
1726
+
1727
+ - Automatically handles special characters in data
1728
+ - Uses column headers for CSV headers
1729
+ - Sanitizes data to prevent CSV injection
1730
+ - Triggers browser download
1731
+ - Throws error if export fails
1732
+
1733
+ #### Defined in
1734
+
1735
+ [packages/core/src/components/DataTable/utils/exportUtils.ts:336](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/DataTable/utils/exportUtils.ts#L336)
1736
+
1737
+ ___
1738
+
1308
1739
  ### Dialog
1309
1740
 
1310
1741
  ▸ **Dialog**(`props`, `deprecatedLegacyContext?`): `ReactNode`
@@ -1637,7 +2068,7 @@ This component provides secure event selection with:
1637
2068
 
1638
2069
  #### Defined in
1639
2070
 
1640
- [packages/core/src/components/EventSelector/EventSelector.tsx:130](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/EventSelector/EventSelector.tsx#L130)
2071
+ [packages/core/src/components/EventSelector/EventSelector.tsx:131](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/EventSelector/EventSelector.tsx#L131)
1641
2072
 
1642
2073
  ___
1643
2074
 
@@ -1668,7 +2099,7 @@ React element with file display
1668
2099
 
1669
2100
  #### Defined in
1670
2101
 
1671
- [packages/core/src/components/FileDisplay/FileDisplay.tsx:803](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/FileDisplay.tsx#L803)
2102
+ [packages/core/src/components/FileDisplay/FileDisplay.tsx:769](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/FileDisplay/FileDisplay.tsx#L769)
1672
2103
 
1673
2104
  ___
1674
2105
 
@@ -2260,7 +2691,7 @@ function CustomNavigation() {
2260
2691
 
2261
2692
  #### Defined in
2262
2693
 
2263
- [packages/core/src/components/NavigationMenu/NavigationMenu.tsx:397](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/NavigationMenu/NavigationMenu.tsx#L397)
2694
+ [packages/core/src/components/NavigationMenu/NavigationMenu.tsx:398](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/NavigationMenu/NavigationMenu.tsx#L398)
2264
2695
 
2265
2696
  ___
2266
2697
 
@@ -2291,7 +2722,7 @@ Security: Only shows organisations the user has valid access to
2291
2722
 
2292
2723
  #### Defined in
2293
2724
 
2294
- [packages/core/src/components/OrganisationSelector/OrganisationSelector.tsx:96](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/OrganisationSelector/OrganisationSelector.tsx#L96)
2725
+ [packages/core/src/components/OrganisationSelector/OrganisationSelector.tsx:97](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/OrganisationSelector/OrganisationSelector.tsx#L97)
2295
2726
 
2296
2727
  ___
2297
2728
 
@@ -2462,7 +2893,7 @@ function AdminApp() {
2462
2893
 
2463
2894
  #### Defined in
2464
2895
 
2465
- [packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:344](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L344)
2896
+ [packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx:345](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceAppLayout/PaceAppLayout.tsx#L345)
2466
2897
 
2467
2898
  ___
2468
2899
 
@@ -2506,7 +2937,7 @@ JSX.Element - The rendered login page with enhanced functionality
2506
2937
 
2507
2938
  #### Defined in
2508
2939
 
2509
- [packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx:166](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx#L166)
2940
+ [packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx:167](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PaceLoginPage/PaceLoginPage.tsx#L167)
2510
2941
 
2511
2942
  ___
2512
2943
 
@@ -2530,26 +2961,6 @@ ___
2530
2961
 
2531
2962
  ___
2532
2963
 
2533
- ### PasswordResetForm
2534
-
2535
- ▸ **PasswordResetForm**(`«destructured»`): `Element`
2536
-
2537
- #### Parameters
2538
-
2539
- | Name | Type |
2540
- | :------ | :------ |
2541
- | `«destructured»` | `PasswordResetFormProps` |
2542
-
2543
- #### Returns
2544
-
2545
- `Element`
2546
-
2547
- #### Defined in
2548
-
2549
- [packages/core/src/components/PasswordReset/PasswordResetForm.tsx:94](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PasswordReset/PasswordResetForm.tsx#L94)
2550
-
2551
- ___
2552
-
2553
2964
  ### Progress
2554
2965
 
2555
2966
  ▸ **Progress**(`props`): `ReactNode`
@@ -2611,7 +3022,80 @@ React element with route protection logic
2611
3022
 
2612
3023
  #### Defined in
2613
3024
 
2614
- [packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx:132](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx#L132)
3025
+ [packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx:133](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/ProtectedRoute/ProtectedRoute.tsx#L133)
3026
+
3027
+ ___
3028
+
3029
+ ### EventLogo
3030
+
3031
+ ▸ **EventLogo**(`props`): `Element`
3032
+
3033
+ Component for displaying event logos with fallback to initials
3034
+
3035
+ This component is context-aware and automatically detects whether it's being used
3036
+ in a public or authenticated context. It uses FileDisplay internally to fetch and
3037
+ display event logos from storage, with automatic fallback to event initials if no
3038
+ logo is available.
3039
+
3040
+ #### Parameters
3041
+
3042
+ | Name | Type | Description |
3043
+ | :------ | :------ | :------ |
3044
+ | `props` | [`EventLogoProps`](interfaces/EventLogoProps.md) | Logo configuration and styling |
3045
+
3046
+ #### Returns
3047
+
3048
+ `Element`
3049
+
3050
+ React element with event logo or fallback
3051
+
3052
+ #### Defined in
3053
+
3054
+ [packages/core/src/components/PublicLayout/EventLogo.tsx:100](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/EventLogo.tsx#L100)
3055
+
3056
+ ___
3057
+
3058
+ ### EventLogoCompact
3059
+
3060
+ ▸ **EventLogoCompact**(`props`): `Element`
3061
+
3062
+ Compact event logo for small spaces
3063
+
3064
+ #### Parameters
3065
+
3066
+ | Name | Type |
3067
+ | :------ | :------ |
3068
+ | `props` | [`EventLogoProps`](interfaces/EventLogoProps.md) |
3069
+
3070
+ #### Returns
3071
+
3072
+ `Element`
3073
+
3074
+ #### Defined in
3075
+
3076
+ [packages/core/src/components/PublicLayout/EventLogo.tsx:154](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/EventLogo.tsx#L154)
3077
+
3078
+ ___
3079
+
3080
+ ### EventLogoLarge
3081
+
3082
+ ▸ **EventLogoLarge**(`props`): `Element`
3083
+
3084
+ Large event logo for prominent display
3085
+
3086
+ #### Parameters
3087
+
3088
+ | Name | Type |
3089
+ | :------ | :------ |
3090
+ | `props` | [`EventLogoProps`](interfaces/EventLogoProps.md) |
3091
+
3092
+ #### Returns
3093
+
3094
+ `Element`
3095
+
3096
+ #### Defined in
3097
+
3098
+ [packages/core/src/components/PublicLayout/EventLogo.tsx:167](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/EventLogo.tsx#L167)
2615
3099
 
2616
3100
  ___
2617
3101
 
@@ -2741,61 +3225,13 @@ Context checker component that immediately identifies authentication context iss
2741
3225
  This component will immediately log to console if authentication context
2742
3226
  is being triggered in a public page.
2743
3227
 
2744
- #### Parameters
2745
-
2746
- | Name | Type |
2747
- | :------ | :------ |
2748
- | `«destructured»` | `PublicPageContextCheckerProps` |
2749
-
2750
- #### Returns
2751
-
2752
- ``null`` \| `Element`
2753
-
2754
- #### Defined in
2755
-
2756
- [packages/core/src/components/PublicLayout/PublicPageContextChecker.tsx:27](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageContextChecker.tsx#L27)
2757
-
2758
- ___
2759
-
2760
- ### PublicPageDebugger
2761
-
2762
- ▸ **PublicPageDebugger**(`«destructured»`): ``null`` \| `Element`
2763
-
2764
- Debugger component that logs context information
2765
-
2766
- This component helps identify why authentication context
2767
- is being triggered in public pages.
2768
-
2769
- #### Parameters
2770
-
2771
- | Name | Type |
2772
- | :------ | :------ |
2773
- | `«destructured»` | `PublicPageDebuggerProps` |
2774
-
2775
- #### Returns
2776
-
2777
- ``null`` \| `Element`
2778
-
2779
- #### Defined in
2780
-
2781
- [packages/core/src/components/PublicLayout/PublicPageDebugger.tsx:27](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageDebugger.tsx#L27)
2782
-
2783
- ___
2784
-
2785
- ### PublicPageDiagnostic
2786
-
2787
- ▸ **PublicPageDiagnostic**(`«destructured»`): ``null`` \| `Element`
2788
-
2789
- Diagnostic component that identifies authentication context issues
2790
-
2791
- This component will help you identify exactly where the problem is
2792
- in your public page implementation.
3228
+ Only enabled in development mode when VITE_ENABLE_DEBUG_LOGS is 'true'
2793
3229
 
2794
3230
  #### Parameters
2795
3231
 
2796
3232
  | Name | Type |
2797
3233
  | :------ | :------ |
2798
- | `«destructured»` | `PublicPageDiagnosticProps` |
3234
+ | `«destructured»` | `PublicPageContextCheckerProps` |
2799
3235
 
2800
3236
  #### Returns
2801
3237
 
@@ -2803,7 +3239,7 @@ in your public page implementation.
2803
3239
 
2804
3240
  #### Defined in
2805
3241
 
2806
- [packages/core/src/components/PublicLayout/PublicPageDiagnostic.tsx:27](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageDiagnostic.tsx#L27)
3242
+ [packages/core/src/components/PublicLayout/PublicPageContextChecker.tsx:30](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageContextChecker.tsx#L30)
2807
3243
 
2808
3244
  ___
2809
3245
 
@@ -2960,7 +3396,7 @@ This provider:
2960
3396
 
2961
3397
  #### Defined in
2962
3398
 
2963
- [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:70](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L70)
3399
+ [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:71](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L71)
2964
3400
 
2965
3401
  ___
2966
3402
 
@@ -2978,7 +3414,7 @@ Public page context with environment variables
2978
3414
 
2979
3415
  #### Defined in
2980
3416
 
2981
- [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:128](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L128)
3417
+ [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:129](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L129)
2982
3418
 
2983
3419
  ___
2984
3420
 
@@ -2996,7 +3432,7 @@ True if we're in a public page context
2996
3432
 
2997
3433
  #### Defined in
2998
3434
 
2999
- [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:143](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L143)
3435
+ [packages/core/src/components/PublicLayout/PublicPageProvider.tsx:144](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/PublicLayout/PublicPageProvider.tsx#L144)
3000
3436
 
3001
3437
  ___
3002
3438
 
@@ -3168,7 +3604,7 @@ ___
3168
3604
 
3169
3605
  | Name | Type | Description |
3170
3606
  | :------ | :------ | :------ |
3171
- | `props` | `SessionRestorationLoaderProps` | - |
3607
+ | `props` | [`SessionRestorationLoaderProps`](interfaces/SessionRestorationLoaderProps.md) | - |
3172
3608
  | `deprecatedLegacyContext?` | `any` | **`See`** [React Docs](https://legacy.reactjs.org/docs/legacy-context.html#referencing-context-in-lifecycle-methods) |
3173
3609
 
3174
3610
  #### Returns
@@ -3177,7 +3613,7 @@ ___
3177
3613
 
3178
3614
  #### Defined in
3179
3615
 
3180
- [packages/core/src/components/SessionRestorationLoader.tsx:19](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/SessionRestorationLoader.tsx#L19)
3616
+ [packages/core/src/components/SessionRestorationLoader/SessionRestorationLoader.tsx:19](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/components/SessionRestorationLoader/SessionRestorationLoader.tsx#L19)
3181
3617
 
3182
3618
  ___
3183
3619
 
@@ -3797,7 +4233,7 @@ Object containing event data, loading state, error, and refetch function
3797
4233
 
3798
4234
  #### Defined in
3799
4235
 
3800
- [packages/core/src/hooks/public/usePublicEvent.ts:99](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L99)
4236
+ [packages/core/src/hooks/public/usePublicEvent.ts:100](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L100)
3801
4237
 
3802
4238
  ___
3803
4239
 
@@ -3814,7 +4250,7 @@ Useful for testing or when you need to force refresh all data
3814
4250
 
3815
4251
  #### Defined in
3816
4252
 
3817
- [packages/core/src/hooks/public/usePublicEvent.ts:410](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L410)
4253
+ [packages/core/src/hooks/public/usePublicEvent.ts:411](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L411)
3818
4254
 
3819
4255
  ___
3820
4256
 
@@ -3835,7 +4271,7 @@ Get cache statistics for debugging
3835
4271
 
3836
4272
  #### Defined in
3837
4273
 
3838
- [packages/core/src/hooks/public/usePublicEvent.ts:421](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L421)
4274
+ [packages/core/src/hooks/public/usePublicEvent.ts:422](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicEvent.ts#L422)
3839
4275
 
3840
4276
  ___
3841
4277
 
@@ -3866,7 +4302,7 @@ Object containing file data, loading state, error, and refetch function
3866
4302
 
3867
4303
  #### Defined in
3868
4304
 
3869
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:89](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L89)
4305
+ [packages/core/src/hooks/public/usePublicFileDisplay.ts:90](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L90)
3870
4306
 
3871
4307
  ___
3872
4308
 
@@ -3883,7 +4319,7 @@ Useful for testing or when you need to force refresh all data
3883
4319
 
3884
4320
  #### Defined in
3885
4321
 
3886
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:542](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L542)
4322
+ [packages/core/src/hooks/public/usePublicFileDisplay.ts:398](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L398)
3887
4323
 
3888
4324
  ___
3889
4325
 
@@ -3904,7 +4340,7 @@ Get cache statistics for debugging
3904
4340
 
3905
4341
  #### Defined in
3906
4342
 
3907
- [packages/core/src/hooks/public/usePublicFileDisplay.ts:553](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L553)
4343
+ [packages/core/src/hooks/public/usePublicFileDisplay.ts:409](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/public/usePublicFileDisplay.ts#L409)
3908
4344
 
3909
4345
  ___
3910
4346
 
@@ -4143,7 +4579,7 @@ function PublicPageLayout({ event }) {
4143
4579
 
4144
4580
  #### Defined in
4145
4581
 
4146
- [packages/core/src/hooks/useEventTheme.ts:92](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useEventTheme.ts#L92)
4582
+ [packages/core/src/hooks/useEventTheme.ts:95](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useEventTheme.ts#L95)
4147
4583
 
4148
4584
  ___
4149
4585
 
@@ -4183,7 +4619,7 @@ function MyComponent() {
4183
4619
 
4184
4620
  #### Defined in
4185
4621
 
4186
- [packages/core/src/hooks/useEvents.ts:49](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useEvents.ts#L49)
4622
+ [packages/core/src/hooks/useEvents.ts:50](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useEvents.ts#L50)
4187
4623
 
4188
4624
  ___
4189
4625
 
@@ -4219,7 +4655,7 @@ ___
4219
4655
 
4220
4656
  #### Defined in
4221
4657
 
4222
- [packages/core/src/hooks/useFileReference.ts:16](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L16)
4658
+ [packages/core/src/hooks/useFileReference.ts:19](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L19)
4223
4659
 
4224
4660
  ___
4225
4661
 
@@ -4258,7 +4694,7 @@ ___
4258
4694
 
4259
4695
  #### Defined in
4260
4696
 
4261
- [packages/core/src/hooks/useFileReference.ts:199](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L199)
4697
+ [packages/core/src/hooks/useFileReference.ts:202](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L202)
4262
4698
 
4263
4699
  ___
4264
4700
 
@@ -4291,7 +4727,7 @@ Hook for getting a file reference by ID
4291
4727
 
4292
4728
  #### Defined in
4293
4729
 
4294
- [packages/core/src/hooks/useFileReference.ts:301](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L301)
4730
+ [packages/core/src/hooks/useFileReference.ts:304](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L304)
4295
4731
 
4296
4732
  ___
4297
4733
 
@@ -4335,7 +4771,7 @@ For more control, use useFileReference() directly and manage URLs yourself.
4335
4771
 
4336
4772
  #### Defined in
4337
4773
 
4338
- [packages/core/src/hooks/useFileReference.ts:374](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L374)
4774
+ [packages/core/src/hooks/useFileReference.ts:377](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useFileReference.ts#L377)
4339
4775
 
4340
4776
  ___
4341
4777
 
@@ -4355,7 +4791,7 @@ ___
4355
4791
 
4356
4792
  #### Defined in
4357
4793
 
4358
- [packages/core/src/hooks/useInactivityTracker.ts:127](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useInactivityTracker.ts#L127)
4794
+ [packages/core/src/hooks/useInactivityTracker.ts:128](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useInactivityTracker.ts#L128)
4359
4795
 
4360
4796
  ___
4361
4797
 
@@ -4393,7 +4829,7 @@ ___
4393
4829
 
4394
4830
  #### Defined in
4395
4831
 
4396
- [packages/core/src/hooks/useOrganisationSecurity.ts:39](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useOrganisationSecurity.ts#L39)
4832
+ [packages/core/src/hooks/useOrganisationSecurity.ts:40](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useOrganisationSecurity.ts#L40)
4397
4833
 
4398
4834
  ___
4399
4835
 
@@ -4448,7 +4884,7 @@ ___
4448
4884
 
4449
4885
  #### Defined in
4450
4886
 
4451
- [packages/core/src/hooks/useSessionRestoration.ts:25](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useSessionRestoration.ts#L25)
4887
+ [packages/core/src/hooks/useSessionRestoration.ts:28](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/hooks/useSessionRestoration.ts#L28)
4452
4888
 
4453
4889
  ___
4454
4890
 
@@ -4492,7 +4928,7 @@ ___
4492
4928
 
4493
4929
  #### Defined in
4494
4930
 
4495
- [packages/core/src/providers/services/EventServiceProvider.tsx:35](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/EventServiceProvider.tsx#L35)
4931
+ [packages/core/src/providers/services/EventServiceProvider.tsx:36](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/EventServiceProvider.tsx#L36)
4496
4932
 
4497
4933
  ___
4498
4934
 
@@ -4512,7 +4948,7 @@ ___
4512
4948
 
4513
4949
  #### Defined in
4514
4950
 
4515
- [packages/core/src/providers/services/InactivityServiceProvider.tsx:32](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/InactivityServiceProvider.tsx#L32)
4951
+ [packages/core/src/providers/services/InactivityServiceProvider.tsx:33](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/InactivityServiceProvider.tsx#L33)
4516
4952
 
4517
4953
  ___
4518
4954
 
@@ -4532,7 +4968,7 @@ ___
4532
4968
 
4533
4969
  #### Defined in
4534
4970
 
4535
- [packages/core/src/providers/services/OrganisationServiceProvider.tsx:29](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/OrganisationServiceProvider.tsx#L29)
4971
+ [packages/core/src/providers/services/OrganisationServiceProvider.tsx:30](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/OrganisationServiceProvider.tsx#L30)
4536
4972
 
4537
4973
  ___
4538
4974
 
@@ -4546,7 +4982,7 @@ ___
4546
4982
 
4547
4983
  #### Defined in
4548
4984
 
4549
- [packages/core/src/providers/services/UnifiedAuthProvider.tsx:116](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L116)
4985
+ [packages/core/src/providers/services/UnifiedAuthProvider.tsx:117](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L117)
4550
4986
 
4551
4987
  ___
4552
4988
 
@@ -4566,7 +5002,7 @@ ___
4566
5002
 
4567
5003
  #### Defined in
4568
5004
 
4569
- [packages/core/src/providers/services/UnifiedAuthProvider.tsx:514](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L514)
5005
+ [packages/core/src/providers/services/UnifiedAuthProvider.tsx:515](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/providers/services/UnifiedAuthProvider.tsx#L515)
4570
5006
 
4571
5007
  ___
4572
5008
 
@@ -5073,7 +5509,7 @@ Setup RBAC system
5073
5509
 
5074
5510
  #### Defined in
5075
5511
 
5076
- [packages/core/src/rbac/api.ts:39](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L39)
5512
+ [packages/core/src/rbac/api.ts:42](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L42)
5077
5513
 
5078
5514
  ___
5079
5515
 
@@ -5108,7 +5544,7 @@ const accessLevel = await getAccessLevel({
5108
5544
 
5109
5545
  #### Defined in
5110
5546
 
5111
- [packages/core/src/rbac/api.ts:90](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L90)
5547
+ [packages/core/src/rbac/api.ts:93](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L93)
5112
5548
 
5113
5549
  ___
5114
5550
 
@@ -5147,7 +5583,7 @@ const permissions = await getPermissionMap({
5147
5583
 
5148
5584
  #### Defined in
5149
5585
 
5150
- [packages/core/src/rbac/api.ts:116](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L116)
5586
+ [packages/core/src/rbac/api.ts:119](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L119)
5151
5587
 
5152
5588
  ___
5153
5589
 
@@ -5169,7 +5605,7 @@ ___
5169
5605
 
5170
5606
  #### Defined in
5171
5607
 
5172
- [packages/core/src/rbac/api.ts:124](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L124)
5608
+ [packages/core/src/rbac/api.ts:127](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L127)
5173
5609
 
5174
5610
  ___
5175
5611
 
@@ -5191,7 +5627,7 @@ ___
5191
5627
 
5192
5628
  #### Defined in
5193
5629
 
5194
- [packages/core/src/rbac/api.ts:132](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L132)
5630
+ [packages/core/src/rbac/api.ts:135](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L135)
5195
5631
 
5196
5632
  ___
5197
5633
 
@@ -5226,7 +5662,7 @@ const canManage = await isPermitted({
5226
5662
 
5227
5663
  #### Defined in
5228
5664
 
5229
- [packages/core/src/rbac/api.ts:156](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L156)
5665
+ [packages/core/src/rbac/api.ts:159](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L159)
5230
5666
 
5231
5667
  ___
5232
5668
 
@@ -5250,7 +5686,7 @@ Promise resolving to permission result
5250
5686
 
5251
5687
  #### Defined in
5252
5688
 
5253
- [packages/core/src/rbac/api.ts:182](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L182)
5689
+ [packages/core/src/rbac/api.ts:185](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L185)
5254
5690
 
5255
5691
  ___
5256
5692
 
@@ -5274,7 +5710,7 @@ Promise<boolean> - True if user has permission
5274
5710
 
5275
5711
  #### Defined in
5276
5712
 
5277
- [packages/core/src/rbac/api.ts:215](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L215)
5713
+ [packages/core/src/rbac/api.ts:218](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L218)
5278
5714
 
5279
5715
  ___
5280
5716
 
@@ -5302,7 +5738,7 @@ Promise resolving to true if user has any permission
5302
5738
 
5303
5739
  #### Defined in
5304
5740
 
5305
- [packages/core/src/rbac/api.ts:225](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L225)
5741
+ [packages/core/src/rbac/api.ts:228](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L228)
5306
5742
 
5307
5743
  ___
5308
5744
 
@@ -5330,7 +5766,7 @@ Promise resolving to true if user has all permissions
5330
5766
 
5331
5767
  #### Defined in
5332
5768
 
5333
- [packages/core/src/rbac/api.ts:253](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L253)
5769
+ [packages/core/src/rbac/api.ts:256](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/api.ts#L256)
5334
5770
 
5335
5771
  ___
5336
5772
 
@@ -5443,7 +5879,7 @@ React element with enhanced navigation menu
5443
5879
 
5444
5880
  #### Defined in
5445
5881
 
5446
- [packages/core/src/rbac/components/EnhancedNavigationMenu.tsx:112](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/EnhancedNavigationMenu.tsx#L112)
5882
+ [packages/core/src/rbac/components/EnhancedNavigationMenu.tsx:113](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/EnhancedNavigationMenu.tsx#L113)
5447
5883
 
5448
5884
  ___
5449
5885
 
@@ -5471,7 +5907,7 @@ React element with navigation permission enforcement
5471
5907
 
5472
5908
  #### Defined in
5473
5909
 
5474
- [packages/core/src/rbac/components/NavigationGuard.tsx:113](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationGuard.tsx#L113)
5910
+ [packages/core/src/rbac/components/NavigationGuard.tsx:114](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationGuard.tsx#L114)
5475
5911
 
5476
5912
  ___
5477
5913
 
@@ -5498,7 +5934,7 @@ React element with navigation permission context
5498
5934
 
5499
5935
  #### Defined in
5500
5936
 
5501
- [packages/core/src/rbac/components/NavigationProvider.tsx:165](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationProvider.tsx#L165)
5937
+ [packages/core/src/rbac/components/NavigationProvider.tsx:167](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationProvider.tsx#L167)
5502
5938
 
5503
5939
  ___
5504
5940
 
@@ -5520,7 +5956,7 @@ Error if used outside of NavigationProvider
5520
5956
 
5521
5957
  #### Defined in
5522
5958
 
5523
- [packages/core/src/rbac/components/NavigationProvider.tsx:328](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationProvider.tsx#L328)
5959
+ [packages/core/src/rbac/components/NavigationProvider.tsx:331](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/NavigationProvider.tsx#L331)
5524
5960
 
5525
5961
  ___
5526
5962
 
@@ -5548,7 +5984,7 @@ React element with permission enforcement
5548
5984
 
5549
5985
  #### Defined in
5550
5986
 
5551
- [packages/core/src/rbac/components/PagePermissionGuard.tsx:534](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L534)
5987
+ [packages/core/src/rbac/components/PagePermissionGuard.tsx:546](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionGuard.tsx#L546)
5552
5988
 
5553
5989
  ___
5554
5990
 
@@ -5575,7 +6011,7 @@ React element with page permission context
5575
6011
 
5576
6012
  #### Defined in
5577
6013
 
5578
- [packages/core/src/rbac/components/PagePermissionProvider.tsx:125](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L125)
6014
+ [packages/core/src/rbac/components/PagePermissionProvider.tsx:128](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L128)
5579
6015
 
5580
6016
  ___
5581
6017
 
@@ -5597,7 +6033,7 @@ Error if used outside of PagePermissionProvider
5597
6033
 
5598
6034
  #### Defined in
5599
6035
 
5600
- [packages/core/src/rbac/components/PagePermissionProvider.tsx:264](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L264)
6036
+ [packages/core/src/rbac/components/PagePermissionProvider.tsx:267](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PagePermissionProvider.tsx#L267)
5601
6037
 
5602
6038
  ___
5603
6039
 
@@ -5625,7 +6061,7 @@ React element with permission enforcement
5625
6061
 
5626
6062
  #### Defined in
5627
6063
 
5628
- [packages/core/src/rbac/components/PermissionEnforcer.tsx:117](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L117)
6064
+ [packages/core/src/rbac/components/PermissionEnforcer.tsx:121](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/PermissionEnforcer.tsx#L121)
5629
6065
 
5630
6066
  ___
5631
6067
 
@@ -5652,7 +6088,7 @@ React element with role-based routing
5652
6088
 
5653
6089
  #### Defined in
5654
6090
 
5655
- [packages/core/src/rbac/components/RoleBasedRouter.tsx:181](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L181)
6091
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:182](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L182)
5656
6092
 
5657
6093
  ___
5658
6094
 
@@ -5674,7 +6110,7 @@ Error if used outside of RoleBasedRouter
5674
6110
 
5675
6111
  #### Defined in
5676
6112
 
5677
- [packages/core/src/rbac/components/RoleBasedRouter.tsx:395](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L395)
6113
+ [packages/core/src/rbac/components/RoleBasedRouter.tsx:397](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/RoleBasedRouter.tsx#L397)
5678
6114
 
5679
6115
  ___
5680
6116
 
@@ -5701,7 +6137,7 @@ React element with secure data context
5701
6137
 
5702
6138
  #### Defined in
5703
6139
 
5704
- [packages/core/src/rbac/components/SecureDataProvider.tsx:135](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L135)
6140
+ [packages/core/src/rbac/components/SecureDataProvider.tsx:136](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L136)
5705
6141
 
5706
6142
  ___
5707
6143
 
@@ -5723,7 +6159,7 @@ Error if used outside of SecureDataProvider
5723
6159
 
5724
6160
  #### Defined in
5725
6161
 
5726
- [packages/core/src/rbac/components/SecureDataProvider.tsx:309](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L309)
6162
+ [packages/core/src/rbac/components/SecureDataProvider.tsx:313](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/components/SecureDataProvider.tsx#L313)
5727
6163
 
5728
6164
  ___
5729
6165
 
@@ -5824,7 +6260,7 @@ RBACEngine instance
5824
6260
 
5825
6261
  #### Defined in
5826
6262
 
5827
- [packages/core/src/rbac/engine.ts:613](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/engine.ts#L613)
6263
+ [packages/core/src/rbac/engine.ts:621](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/engine.ts#L621)
5828
6264
 
5829
6265
  ___
5830
6266
 
@@ -5877,7 +6313,7 @@ function MyComponent() {
5877
6313
 
5878
6314
  #### Defined in
5879
6315
 
5880
- [packages/core/src/rbac/hooks/usePermissions.ts:49](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L49)
6316
+ [packages/core/src/rbac/hooks/usePermissions.ts:50](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L50)
5881
6317
 
5882
6318
  ___
5883
6319
 
@@ -5925,7 +6361,7 @@ function MyComponent() {
5925
6361
 
5926
6362
  #### Defined in
5927
6363
 
5928
- [packages/core/src/rbac/hooks/usePermissions.ts:217](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L217)
6364
+ [packages/core/src/rbac/hooks/usePermissions.ts:220](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L220)
5929
6365
 
5930
6366
  ___
5931
6367
 
@@ -5975,7 +6411,7 @@ function MyComponent() {
5975
6411
 
5976
6412
  #### Defined in
5977
6413
 
5978
- [packages/core/src/rbac/hooks/usePermissions.ts:375](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L375)
6414
+ [packages/core/src/rbac/hooks/usePermissions.ts:379](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L379)
5979
6415
 
5980
6416
  ___
5981
6417
 
@@ -6032,7 +6468,7 @@ function MyComponent() {
6032
6468
 
6033
6469
  #### Defined in
6034
6470
 
6035
- [packages/core/src/rbac/hooks/usePermissions.ts:450](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L450)
6471
+ [packages/core/src/rbac/hooks/usePermissions.ts:454](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L454)
6036
6472
 
6037
6473
  ___
6038
6474
 
@@ -6083,7 +6519,7 @@ function MyComponent() {
6083
6519
 
6084
6520
  #### Defined in
6085
6521
 
6086
- [packages/core/src/rbac/hooks/usePermissions.ts:533](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L533)
6522
+ [packages/core/src/rbac/hooks/usePermissions.ts:537](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L537)
6087
6523
 
6088
6524
  ___
6089
6525
 
@@ -6134,7 +6570,7 @@ function MyComponent() {
6134
6570
 
6135
6571
  #### Defined in
6136
6572
 
6137
- [packages/core/src/rbac/hooks/usePermissions.ts:619](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L619)
6573
+ [packages/core/src/rbac/hooks/usePermissions.ts:623](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L623)
6138
6574
 
6139
6575
  ___
6140
6576
 
@@ -6185,7 +6621,7 @@ function MyComponent() {
6185
6621
 
6186
6622
  #### Defined in
6187
6623
 
6188
- [packages/core/src/rbac/hooks/usePermissions.ts:704](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L704)
6624
+ [packages/core/src/rbac/hooks/usePermissions.ts:708](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/usePermissions.ts#L708)
6189
6625
 
6190
6626
  ___
6191
6627
 
@@ -6248,7 +6684,7 @@ const permission = useCan(userId, resolvedScope, permission);
6248
6684
 
6249
6685
  #### Defined in
6250
6686
 
6251
- [packages/core/src/rbac/hooks/useResolvedScope.ts:61](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResolvedScope.ts#L61)
6687
+ [packages/core/src/rbac/hooks/useResolvedScope.ts:64](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/hooks/useResolvedScope.ts#L64)
6252
6688
 
6253
6689
  ___
6254
6690
 
@@ -6294,7 +6730,7 @@ True if valid, false otherwise
6294
6730
 
6295
6731
  #### Defined in
6296
6732
 
6297
- [packages/core/src/rbac/permissions.ts:156](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L156)
6733
+ [packages/core/src/rbac/permissions.ts:159](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L159)
6298
6734
 
6299
6735
  ___
6300
6736
 
@@ -6333,7 +6769,7 @@ Empty array (function deprecated)
6333
6769
 
6334
6770
  #### Defined in
6335
6771
 
6336
- [packages/core/src/rbac/permissions.ts:188](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L188)
6772
+ [packages/core/src/rbac/permissions.ts:191](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/rbac/permissions.ts#L191)
6337
6773
 
6338
6774
  ___
6339
6775
 
@@ -6493,7 +6929,7 @@ const palette = parseAndNormalizeEventColours(colours);
6493
6929
 
6494
6930
  #### Defined in
6495
6931
 
6496
- [packages/core/src/theming/parseEventColours.ts:68](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/parseEventColours.ts#L68)
6932
+ [packages/core/src/theming/parseEventColours.ts:54](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/parseEventColours.ts#L54)
6497
6933
 
6498
6934
  ___
6499
6935
 
@@ -6516,7 +6952,7 @@ Uses document.documentElement.style.setProperty() for runtime updates.
6516
6952
 
6517
6953
  #### Defined in
6518
6954
 
6519
- [packages/core/src/theming/runtime.ts:64](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L64)
6955
+ [packages/core/src/theming/runtime.ts:70](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L70)
6520
6956
 
6521
6957
  ___
6522
6958
 
@@ -6533,7 +6969,7 @@ This allows the browser to fall back to static CSS values.
6533
6969
 
6534
6970
  #### Defined in
6535
6971
 
6536
- [packages/core/src/theming/runtime.ts:116](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L116)
6972
+ [packages/core/src/theming/runtime.ts:120](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L120)
6537
6973
 
6538
6974
  ___
6539
6975
 
@@ -6556,7 +6992,7 @@ Use this in your SSR setup to avoid FOUC
6556
6992
 
6557
6993
  #### Defined in
6558
6994
 
6559
- [packages/core/src/theming/runtime.ts:194](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L194)
6995
+ [packages/core/src/theming/runtime.ts:198](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L198)
6560
6996
 
6561
6997
  ___
6562
6998
 
@@ -6572,7 +7008,7 @@ Checks if dynamic theming is currently active
6572
7008
 
6573
7009
  #### Defined in
6574
7010
 
6575
- [packages/core/src/theming/runtime.ts:201](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L201)
7011
+ [packages/core/src/theming/runtime.ts:205](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L205)
6576
7012
 
6577
7013
  ___
6578
7014
 
@@ -6589,7 +7025,7 @@ Useful for debugging or persistence
6589
7025
 
6590
7026
  #### Defined in
6591
7027
 
6592
- [packages/core/src/theming/runtime.ts:215](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L215)
7028
+ [packages/core/src/theming/runtime.ts:219](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/theming/runtime.ts#L219)
6593
7029
 
6594
7030
  ___
6595
7031
 
@@ -6611,7 +7047,7 @@ Set the current application configuration
6611
7047
 
6612
7048
  #### Defined in
6613
7049
 
6614
- [packages/core/src/utils/appConfig.ts:16](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/appConfig.ts#L16)
7050
+ [packages/core/src/utils/app/appConfig.ts:16](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/app/appConfig.ts#L16)
6615
7051
 
6616
7052
  ___
6617
7053
 
@@ -6627,7 +7063,7 @@ Get the current application configuration
6627
7063
 
6628
7064
  #### Defined in
6629
7065
 
6630
- [packages/core/src/utils/appConfig.ts:23](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/appConfig.ts#L23)
7066
+ [packages/core/src/utils/app/appConfig.ts:23](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/app/appConfig.ts#L23)
6631
7067
 
6632
7068
  ___
6633
7069
 
@@ -6643,7 +7079,7 @@ Get the current app name
6643
7079
 
6644
7080
  #### Defined in
6645
7081
 
6646
- [packages/core/src/utils/appConfig.ts:38](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/appConfig.ts#L38)
7082
+ [packages/core/src/utils/app/appConfig.ts:38](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/app/appConfig.ts#L38)
6647
7083
 
6648
7084
  ___
6649
7085
 
@@ -6659,7 +7095,40 @@ Get the current app ID
6659
7095
 
6660
7096
  #### Defined in
6661
7097
 
6662
- [packages/core/src/utils/appConfig.ts:45](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/appConfig.ts#L45)
7098
+ [packages/core/src/utils/app/appConfig.ts:45](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/app/appConfig.ts#L45)
7099
+
7100
+ ___
7101
+
7102
+ ### useSessionTracking
7103
+
7104
+ ▸ **useSessionTracking**(`supabaseClient`, `appName?`): `Object`
7105
+
7106
+ Hook for manual session tracking (event switches and session expiration).
7107
+
7108
+ Note: Login and logout tracking is automatically handled by UnifiedAuthProvider.
7109
+ You should only use this hook for tracking event switches or session expirations.
7110
+
7111
+ #### Parameters
7112
+
7113
+ | Name | Type | Description |
7114
+ | :------ | :------ | :------ |
7115
+ | `supabaseClient` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> | Supabase client instance |
7116
+ | `appName?` | `string` | Optional application name for tracking |
7117
+
7118
+ #### Returns
7119
+
7120
+ `Object`
7121
+
7122
+ Object containing tracking functions for event switches and session expiration
7123
+
7124
+ | Name | Type |
7125
+ | :------ | :------ |
7126
+ | `trackEventSwitch` | (`eventId`: `string`) => `Promise`\<`void`\> |
7127
+ | `trackSessionExpired` | () => `Promise`\<`void`\> |
7128
+
7129
+ #### Defined in
7130
+
7131
+ [packages/core/src/utils/context/sessionTracking.ts:25](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/context/sessionTracking.ts#L25)
6663
7132
 
6664
7133
  ___
6665
7134
 
@@ -6679,7 +7148,7 @@ ___
6679
7148
 
6680
7149
  #### Defined in
6681
7150
 
6682
- [packages/core/src/utils/cn.ts:5](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/cn.ts#L5)
7151
+ [packages/core/src/utils/core/cn.ts:5](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/core/cn.ts#L5)
6683
7152
 
6684
7153
  ___
6685
7154
 
@@ -6701,7 +7170,7 @@ Format a date as a readable string in "dd mmm yyyy" format (e.g., "15 Jun 2024")
6701
7170
 
6702
7171
  #### Defined in
6703
7172
 
6704
- [packages/core/src/utils/formatting.ts:8](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting.ts#L8)
7173
+ [packages/core/src/utils/formatting/formatting.ts:8](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting/formatting.ts#L8)
6705
7174
 
6706
7175
  ___
6707
7176
 
@@ -6725,7 +7194,7 @@ Format a number as a currency
6725
7194
 
6726
7195
  #### Defined in
6727
7196
 
6728
- [packages/core/src/utils/formatting.ts:24](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting.ts#L24)
7197
+ [packages/core/src/utils/formatting/formatting.ts:24](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting/formatting.ts#L24)
6729
7198
 
6730
7199
  ___
6731
7200
 
@@ -6749,7 +7218,7 @@ Format a number with custom options
6749
7218
 
6750
7219
  #### Defined in
6751
7220
 
6752
- [packages/core/src/utils/formatting.ts:34](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting.ts#L34)
7221
+ [packages/core/src/utils/formatting/formatting.ts:34](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting/formatting.ts#L34)
6753
7222
 
6754
7223
  ___
6755
7224
 
@@ -6794,7 +7263,7 @@ formatPercent(0.8123, 'en-US', { preserveDecimals: true, maxDecimals: 2 }) // '0
6794
7263
 
6795
7264
  #### Defined in
6796
7265
 
6797
- [packages/core/src/utils/formatting.ts:71](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting.ts#L71)
7266
+ [packages/core/src/utils/formatting/formatting.ts:71](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting/formatting.ts#L71)
6798
7267
 
6799
7268
  ___
6800
7269
 
@@ -6817,7 +7286,7 @@ Format a large number with abbreviations (K, M, B)
6817
7286
 
6818
7287
  #### Defined in
6819
7288
 
6820
- [packages/core/src/utils/formatting.ts:115](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting.ts#L115)
7289
+ [packages/core/src/utils/formatting/formatting.ts:115](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting/formatting.ts#L115)
6821
7290
 
6822
7291
  ___
6823
7292
 
@@ -6839,7 +7308,7 @@ Format a file size in bytes to a human-readable string
6839
7308
 
6840
7309
  #### Defined in
6841
7310
 
6842
- [packages/core/src/utils/formatting.ts:125](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting.ts#L125)
7311
+ [packages/core/src/utils/formatting/formatting.ts:125](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/formatting/formatting.ts#L125)
6843
7312
 
6844
7313
  ___
6845
7314
 
@@ -6865,40 +7334,7 @@ Secure data access utilities
6865
7334
 
6866
7335
  #### Defined in
6867
7336
 
6868
- [packages/core/src/utils/secureDataAccess.ts:76](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/secureDataAccess.ts#L76)
6869
-
6870
- ___
6871
-
6872
- ### useSessionTracking
6873
-
6874
- ▸ **useSessionTracking**(`supabaseClient`, `appName?`): `Object`
6875
-
6876
- Hook for manual session tracking (event switches and session expiration).
6877
-
6878
- Note: Login and logout tracking is automatically handled by UnifiedAuthProvider.
6879
- You should only use this hook for tracking event switches or session expirations.
6880
-
6881
- #### Parameters
6882
-
6883
- | Name | Type | Description |
6884
- | :------ | :------ | :------ |
6885
- | `supabaseClient` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> | Supabase client instance |
6886
- | `appName?` | `string` | Optional application name for tracking |
6887
-
6888
- #### Returns
6889
-
6890
- `Object`
6891
-
6892
- Object containing tracking functions for event switches and session expiration
6893
-
6894
- | Name | Type |
6895
- | :------ | :------ |
6896
- | `trackEventSwitch` | (`eventId`: `string`) => `Promise`\<`void`\> |
6897
- | `trackSessionExpired` | () => `Promise`\<`void`\> |
6898
-
6899
- #### Defined in
6900
-
6901
- [packages/core/src/utils/sessionTracking.ts:22](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/sessionTracking.ts#L22)
7337
+ [packages/core/src/utils/security/secureDataAccess.ts:76](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/security/secureDataAccess.ts#L76)
6902
7338
 
6903
7339
  ___
6904
7340
 
@@ -6994,7 +7430,7 @@ Generate a file path based on organization-first structure
6994
7430
 
6995
7431
  #### Defined in
6996
7432
 
6997
- [packages/core/src/utils/storage/helpers.ts:20](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L20)
7433
+ [packages/core/src/utils/storage/helpers.ts:23](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L23)
6998
7434
 
6999
7435
  ___
7000
7436
 
@@ -7017,7 +7453,7 @@ Sanitizes the original filename to remove spaces and invalid characters for stor
7017
7453
 
7018
7454
  #### Defined in
7019
7455
 
7020
- [packages/core/src/utils/storage/helpers.ts:51](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L51)
7456
+ [packages/core/src/utils/storage/helpers.ts:54](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L54)
7021
7457
 
7022
7458
  ___
7023
7459
 
@@ -7041,7 +7477,7 @@ Extract file metadata from a File object
7041
7477
 
7042
7478
  #### Defined in
7043
7479
 
7044
- [packages/core/src/utils/storage/helpers.ts:78](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L78)
7480
+ [packages/core/src/utils/storage/helpers.ts:81](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L81)
7045
7481
 
7046
7482
  ___
7047
7483
 
@@ -7065,7 +7501,7 @@ Upload a file to Supabase storage with app segregation
7065
7501
 
7066
7502
  #### Defined in
7067
7503
 
7068
- [packages/core/src/utils/storage/helpers.ts:152](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L152)
7504
+ [packages/core/src/utils/storage/helpers.ts:159](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L159)
7069
7505
 
7070
7506
  ___
7071
7507
 
@@ -7091,7 +7527,7 @@ Public URL for the file
7091
7527
 
7092
7528
  #### Defined in
7093
7529
 
7094
- [packages/core/src/utils/storage/helpers.ts:224](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L224)
7530
+ [packages/core/src/utils/storage/helpers.ts:231](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L231)
7095
7531
 
7096
7532
  ___
7097
7533
 
@@ -7118,7 +7554,7 @@ Signed URL with expiration timestamp, or null if failed
7118
7554
 
7119
7555
  #### Defined in
7120
7556
 
7121
- [packages/core/src/utils/storage/helpers.ts:320](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L320)
7557
+ [packages/core/src/utils/storage/helpers.ts:327](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L327)
7122
7558
 
7123
7559
  ___
7124
7560
 
@@ -7144,7 +7580,7 @@ Success status and optional error message
7144
7580
 
7145
7581
  #### Defined in
7146
7582
 
7147
- [packages/core/src/utils/storage/helpers.ts:355](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L355)
7583
+ [packages/core/src/utils/storage/helpers.ts:362](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L362)
7148
7584
 
7149
7585
  ___
7150
7586
 
@@ -7169,7 +7605,7 @@ List of files with metadata
7169
7605
 
7170
7606
  #### Defined in
7171
7607
 
7172
- [packages/core/src/utils/storage/helpers.ts:389](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L389)
7608
+ [packages/core/src/utils/storage/helpers.ts:396](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L396)
7173
7609
 
7174
7610
  ___
7175
7611
 
@@ -7195,7 +7631,7 @@ File blob with metadata, or null if failed
7195
7631
 
7196
7632
  #### Defined in
7197
7633
 
7198
- [packages/core/src/utils/storage/helpers.ts:449](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L449)
7634
+ [packages/core/src/utils/storage/helpers.ts:456](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L456)
7199
7635
 
7200
7636
  ___
7201
7637
 
@@ -7222,4 +7658,4 @@ Move a file to archived location (soft delete)
7222
7658
 
7223
7659
  #### Defined in
7224
7660
 
7225
- [packages/core/src/utils/storage/helpers.ts:502](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L502)
7661
+ [packages/core/src/utils/storage/helpers.ts:509](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/helpers.ts#L509)